# 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
;;
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"
arg=${arg/,/ }
_ldflags=$_ldflags" ${arg}"
;;
- -l)
+ -l|-L)
+ _libs=$_libs" $1$2"
shift
- _libs=$_libs" -l$1"
;;
- -l*)
+ -l*|-L*)
_libs=$_libs" $1"
;;
+ -v|--version|-V)
+ _verarg=$_verarg" $1"
+ ;;
+ --inv=ld)
+ _actas=ld
+ ;;
+ -print-prog-name=ld)
+ echo $0 --inv=ld
+ exit 0
+ ;;
*)
_miscargs=$_miscargs" $1"
;;
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() {
+ if [[ "x$GCCPROXY_DEBUG" != "x" ]]; then
+ echo --- $*
+ fi
+ $*
+ return $?
+}
+
+_ldflags="-lposix -lpsocket "$_ldflags
+
+cfgfile=`mktemp`
+make --no-print-directory -f $BASEDIR/getconfig.mk ARCH=x86 TYPE=$_linktype > $cfgfile
+. $cfgfile
+rm $cfgfile
+
+#echo "_compile = $_compile, _preproc = $_preproc"
+
+if [[ "x$_actas" == "xld" ]]; then
+ run $_LD $LDFLAGS $_ldflags $_outfile $_miscargs $LIBGCC_PATH $_libs
+ exit $?
+fi
+
+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 $_libs $LIBGCC_PATH
+ _rv=$?
rm $tmpout
+ exit $_rv
else
- $_LD $LDFLAGS $_ldflags $_miscargs $_outfile $LIBGCC_PATH
-fi; fi
+ run $_LD $_ldflags $_miscargs $_outfile $LDFLAGS $_libs $LIBGCC_PATH
+fi