#!/bin/sh

me="$0"
scriptdir=${0%/*}
scriptdir=$(realpath $scriptdir)
me=${scriptdir}/${me##*/}

PACKAGENAME=nim
VERSION=-2.2.8
VERSIONPATCH=

. ${scriptdir}/functions.sh

PATCHES="
patches/${PACKAGENAME}/nim-nim-gdb_fix_interpreter.patch
patches/${PACKAGENAME}/nim-atari-2.2.8.patch
"
EXTRA_DIST="
"

unpack_archive

cd "$srcdir"

cd "$MINT_BUILD_DIR"

COMMON_CFLAGS="-O2 -fomit-frame-pointer ${ELF_CFLAGS}"

CONFIGURE_FLAGS="--host=${TARGET} --prefix=${prefix}
	--mandir=${prefix}/share/man
"

cd "$MINT_BUILD_DIR"

rm -f bin/nim bin/nim_csources* bin/nim_dbg bin/nimble bin/nimgrep bin/nimpretty bin/nimsuggest bin/testament bin/atlas

./build_all.sh

if test -d /usr/lib64 -a $host = linux64; then
	BUILD_LIBDIR=lib64
else
	BUILD_LIBDIR=lib
fi


mkdir -p "${THISPKG_DIR}"
./koch install "${THISPKG_DIR}" || exit 1
# some binaries aren't installed at target location by koch
cp ./bin/* "${THISPKG_DIR}/nim/bin/"
rm -f ${THISPKG_DIR}/nim/bin/empty.txt ${THISPKG_DIR}/nim/bin/nim_csources* ${THISPKG_DIR}/nim/bin/*.bat

cd "${THISPKG_DIR}" || exit 1
mkdir -p \
	${prefix#/}/bin \
	${prefix#/}/${BUILD_LIBDIR}/${TARGET}-nim/bin

# strip all symbols from binaries
for i in nim nimble nim_dbg nimgrep nimpretty nimsuggest; do
	strip --strip-all nim/bin/$i
done

# move executables to final location (or delete what isn't needed)
rm -f nim/lib/pure/unidecode/gen.py
rm -f nim/bin/atlas
rm -f nim/bin/testament
rm -f nim/nim.nimble
mv nim/bin/* ${prefix#/}/${BUILD_LIBDIR}/${TARGET}-nim/bin

for i in nim nimble nim_dbg nim-gdb nimgrep nimpretty nimsuggest; do
	# nim requires symlinks to executables, as it looks for its
	# standard library by resolving the link and then checking for
	# parent paths, which is quite unusual...
	ln -s ../${BUILD_LIBDIR}/${TARGET}-nim/bin/$i ${prefix#/}/bin/${TARGET}-$i
done

mv nim/compiler* ${prefix#/}/${BUILD_LIBDIR}/${TARGET}-nim/
mv nim/lib       ${prefix#/}/${BUILD_LIBDIR}/${TARGET}-nim/
mv nim/doc       ${prefix#/}/${BUILD_LIBDIR}/${TARGET}-nim/
mv nim/config    ${prefix#/}/${BUILD_LIBDIR}/${TARGET}-nim/
rmdir nim/data nim/bin nim


TARNAME=${PACKAGENAME}${VERSION}-${TARGET##*-}${VERSIONPATCH}-bin-${host}
${TAR} ${TAR_OPTS} -Jcf ${DIST_DIR}/${TARNAME}.tar.xz ${prefix#/}


TARNAME=${PACKAGENAME}${VERSION}-${TARGET##*-}${VERSIONPATCH}

cd "$BUILD_DIR"
${TAR} ${TAR_OPTS} -Jcf ${DIST_DIR}/${TARNAME}.tar.xz ${PATCHES} ${OTHER_PATCHES}
cp -p "$me" ${DIST_DIR}/${PACKAGENAME}${VERSION}${VERSIONPATCH}-build.sh

# Now go back and build the atari executables


# clean up
cd "${BUILD_DIR}" || exit 1
if test "$KEEP_PKGDIR" != yes; then
	rm -rf "${THISPKG_DIR}"
fi
if test "$KEEP_SRCDIR" != yes; then
	rm -rf "${srcdir}"
fi
