mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
92 lines
2.0 KiB
Cheetah
92 lines
2.0 KiB
Cheetah
#! stdtmpl(subsChar='?') | standard
|
|
#proc GenerateBuildScript(c: TConfigData): string =
|
|
# result = "#! /bin/sh\n# Generated by niminst\n"
|
|
CC="gcc"
|
|
LINKER="gcc"
|
|
COMP_FLAGS="-w -O3 -fno-strict-aliasing"
|
|
LINK_FLAGS=""
|
|
# add(result, "# platform detection\n")
|
|
ucpu=`uname -m`
|
|
uos=`uname`
|
|
|
|
# add(result, "# convert to lower case:\n")
|
|
upcu=`echo $ucpu | tr "[:upper:]" "[:lower:]"`
|
|
uos=`echo $uos | tr "[:upper:]" "[:lower:]"`
|
|
|
|
case $uos in
|
|
*linux* )
|
|
myos="linux"
|
|
LINK_FLAGS="$LINK_FLAGS -ldl -lm"
|
|
;;
|
|
*freebsd* )
|
|
myos="freebsd"
|
|
LINK_FLAGS="$LINK_FLAGS -lm"
|
|
;;
|
|
*openbsd* )
|
|
myos="openbsd"
|
|
LINK_FLAGS="$LINK_FLAGS -lm"
|
|
;;
|
|
*netbsd* )
|
|
myos="netbsd"
|
|
LINK_FLAGS="$LINK_FLAGS -lm"
|
|
;;
|
|
*darwin* )
|
|
myos="macosx"
|
|
LINK_FLAGS="$LINK_FLAGS -ldl -lm"
|
|
;;
|
|
*aix* )
|
|
myos="aix"
|
|
LINK_FLAGS="$LINK_FLAGS -ldl -lm"
|
|
;;
|
|
*solaris* | *sun* )
|
|
myos="solaris"
|
|
LINK_FLAGS="$LINK_FLAGS -ldl -lm"
|
|
;;
|
|
*)
|
|
echo "Error: unknown operating system: $uos"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
case $ucpu in
|
|
*i386* | *i486* | *i586* | *i686* )
|
|
mycpu="i386" ;;
|
|
*amd*64* | *x86-64* | *x86_64* )
|
|
mycpu="amd64" ;;
|
|
*sparc*|*sun* )
|
|
mycpu="sparc" ;;
|
|
*power* )
|
|
mycpu="powerpc" ;;
|
|
*mips* )
|
|
mycpu="mips" ;;
|
|
*)
|
|
echo "Error: unknown processor: $ucpu"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# add(result, "# call the compiler:\n")
|
|
|
|
case $myos in
|
|
# for osA in 1..c.oses.len:
|
|
?{c.oses[osA-1]})
|
|
case $mycpu in
|
|
# for cpuA in 1..c.cpus.len:
|
|
?{c.cpus[cpuA-1]})
|
|
# var linkCmd = ""
|
|
# for f in items(c.cfiles[osA][cpuA]):
|
|
echo "$CC $COMP_FLAGS -Ibuild -c ?{f} -o ?{changeFileExt(f, "o")}"
|
|
$CC $COMP_FLAGS -Ibuild -c ?{f} -o ?{changeFileExt(f, "o")} || exit 1
|
|
# add(linkCmd, " \\\n" & changeFileExt(f, "o"))
|
|
# end for
|
|
echo "$LINKER $LINK_FLAGS -o ?{c.binPaths[0]}/?{toLower(c.name)} ?linkCmd"
|
|
$LINKER $LINK_FLAGS -o ?{c.binPaths[0]}/?{toLower(c.name)} ?linkCmd || exit 1
|
|
;;
|
|
# end for
|
|
esac
|
|
;;
|
|
# end for
|
|
esac
|
|
|
|
echo "SUCCESS"
|