tools: put libs after objects
authorAlexis Laferrière <alexis.laf@xymus.net>
Fri, 10 Feb 2012 20:35:22 +0000 (15:35 -0500)
committerJean Privat <jean@pryen.org>
Fri, 10 Feb 2012 20:36:21 +0000 (15:36 -0500)
Extern libs (given by --cc-lib-name) should also appears after the objects.

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

bin/gccx
src/compiling/compiling_base.nit

index 3f2890d..8159f30 100755 (executable)
--- a/bin/gccx
+++ b/bin/gccx
@@ -19,6 +19,7 @@
 
 OPTS="-g" # option for compiler call
 objs="" # List of .o files
+libs=""
 CC="cc" # Default compiler call
 ext="_savo _sav" # Default flavor to reuse
 out="a.out"  # Default output binary filename
@@ -35,6 +36,7 @@ Usage: $e [options] modulename [options for module execution]
 -R          Force full recompilation
 -O          Compile with optimizations
 -i          Use the intel compiler instead of gcc
+-l          C library to link with
 -ll         Use the clang compiler (llvm) instead of gcc
 -I path     Add a include directory
 -o name     Call name the executable
@@ -79,6 +81,7 @@ while [ $stop = false ]; do
                -R) recompile=true; shift;;
                -O) OPTS="$OPTS -O2" ext="_savo"; shift;;
                -i) CC="/opt/intel/cc/10.1.015/bin/icc -O2" ext="_savi"; shift;;
+               -l) libs="$libs -l$2"; shift;;
                -ll) CC="clang --ansi --pedantic -O3"; ext="_savll"; shift;;
                -I) OPTS="$OPTS -I $2"; shift; shift;;
                -o) out="$2"; shift; shift;;
@@ -158,6 +161,6 @@ fi
 done
 
 if [ $vverbose = true  ] ; then
-       echo "* $CC $OPTS $objs -lm -o $out" >&2
+       echo "* $CC $OPTS $objs -lm $libs -o $out" >&2
 fi
-$CC $OPTS $objs -lm -o "$out"
+$CC $OPTS $objs -lm $libs -o "$out"
index a53a4e2..d90e883 100644 (file)
@@ -106,7 +106,7 @@ class CProgram
                end
                if tc.boost then f.write(" -O")
                if not tc.cc_link then f.write(" -x \"-c\"")
-               for l in tc.cc_libs do f.write(" -x \"-l {l}\"")
+               for l in tc.cc_libs do f.write(" -l {l}")
                for lp in tc.cc_lib_paths do f.write(" -x \"-L {lp}\"")
                for ip in tc.cc_include_paths do f.write(" -x \"-I {ip}\"")
                f.write(" \"$@\" \\\n  {files.join("\\\n  ")}\n")