Tools/GCCProxy - Fixing issues discovered in compilation of SpiderWeb
[tpg/acess2.git] / Tools / GCCProxy / gccproxy.sh
index 11dd9e4..515f5d7 100755 (executable)
@@ -12,18 +12,18 @@ fullpath=`readlink -f "$fullpath"`
 # Get base directory
 BASEDIR=`dirname "$fullpath"`
 
-cfgfile=`mktemp`
-make --no-print-directory -f $BASEDIR/getconfig.mk ARCH=x86 > $cfgfile
-#echo $cfgfile
-#cat $cfgfile
-. $cfgfile
-rm $cfgfile
-
 _miscargs=""
 _compile=0
+_linktype=Applications
 
 while [[ $# -gt 0 ]]; do
        case "$1" in
+       -E)
+               _preproc=1
+               ;;
+       -M)
+               _makedep=1
+               ;;
        -c)
                _compile=1
                ;;
@@ -31,9 +31,13 @@ while [[ $# -gt 0 ]]; do
                shift
                _outfile="-o $1"
                ;;
-       -I)
+       -shared)
+               _ldflags=$_ldflags" -shared -lc -lgcc"
+               _linktype=Libraries
+               ;;
+       -I|-D|-O)
+               _cflags=$_cflags" $1 $2"
                shift
-               _cflags=$_cflags" -I$1"
                ;;
        -I*|-D*|-O*)
                _cflags=$_cflags" $1"
@@ -44,11 +48,11 @@ while [[ $# -gt 0 ]]; do
                arg=${arg/,/ }
                _ldflags=$_ldflags" ${arg}"
                ;;
-       -l)
+       -l|-L)
+               _libs=$_libs" $1$2"
                shift
-               _libs=$_libs" -l$1"
                ;;
-       -l*)
+       -l*|-L*)
                _libs=$_libs" $1"
                ;;
        *)
@@ -58,15 +62,31 @@ while [[ $# -gt 0 ]]; do
        shift
 done
 
-if [[ $_compile -eq 1 ]]; then
-#      echo $_CC $CFLAGS $*
-       $_CC $CFLAGS $_miscargs -c $_outfile
-else if echo " $_miscargs" | grep '\.c' >/dev/null; then
+run() {
+       echo --- $*
+       $*
+       return $?
+}
+
+cfgfile=`mktemp`
+make --no-print-directory -f $BASEDIR/getconfig.mk ARCH=x86 TYPE=$_linktype > $cfgfile
+. $cfgfile
+rm $cfgfile
+
+#echo "_compile = $_compile, _preproc = $_preproc"
+
+if [[ $_preproc -eq 1 ]]; then
+       run $_CC -E $CFLAGS $_cflags $_miscargs $_outfile
+elif [[ $_makedep -eq 1 ]]; then
+       run $_CC -M $CFLAGS $_cflags $_miscargs $_outfile
+elif [[ $_compile -eq 1 ]]; then
+       run $_CC $CFLAGS $_cflags $_miscargs -c $_outfile
+elif echo " $_miscargs" | grep '\.c' >/dev/null; then
        tmpout=`mktemp acess_gccproxy.XXXXXXXXXX.o --tmpdir`
-       $_CC $CFLAGS $_miscargs -c -o $tmpout
-       $_LD $LDFLAGS $_ldflags $_libs $tmpout $_outfile
+       run $_CC $CFLAGS $_cflags $_miscargs -c -o $tmpout
+       run $_LD $LDFLAGS $_ldflags $_libs $tmpout $_outfile -lgcc $_libs
        rm $tmpout
 else
-       $_LD $LDFLAGS $_ldflags $_miscargs $_outfile $LIBGCC_PATH
-fi; fi
+       run $_LD$_ldflags $_miscargs $_outfile $LDFLAGS  $_libs
+fi
 

UCC git Repository :: git.ucc.asn.au