summary refs log tree commit diff stats
path: root/tools/build.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build.tmpl')
-rwxr-xr-xtools/build.tmpl97
1 files changed, 97 insertions, 0 deletions
diff --git a/tools/build.tmpl b/tools/build.tmpl
new file mode 100755
index 000000000..3ac9252a3
--- /dev/null
+++ b/tools/build.tmpl
@@ -0,0 +1,97 @@
+#subsChar ?
+#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, "# write ``build/platdef.c`` file\n")
+cat >build/platdef.c <<EOF
+char* nimOS(void) { return "$myos"; }
+char* nimCPU(void) { return "$mycpu"; }
+EOF
+#  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 = "build/platdef.o"
+#      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    
+    $CC $COMP_FLAGS -Ibuild -c build/platdef.c -o build/platdef.o || exit 1
+    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"