## SUCH DAMAGE.
# GCC wrapper for libpayload
+# let's not recurse.
+# This is a hack, I know, but it makes sure that really simple user errors
+# don't fork-bomb your machine.
+echo "CC = $CC"
+
+b=`basename $CC`
+if [ "$b" = "lpgcc" ]; then
+CC=""
+fi
+
+
if [ "$CC" != "" ]; then
DEFAULT_CC=$CC
# This will set the _LIBDIR and _INCDIR variables used below
. $BASE/lp.functions
+# include libpayload config
+. $BASE/../libpayload.config
+
_LDSCRIPT="-Wl,-T,$_LIBDIR/libpayload.ldscript"
trygccoption() {
shift
done
-_CFLAGS="-m32 -nostdinc -nostdlib -I$_INCDIR"
+if [ "$CONFIG_TARGET_I386" = "y" ]; then
+ _ARCHINCDIR=$_INCDIR/i386
+ _ARCHLIBDIR=$_LIBDIR/i386
+fi
+
+if [ "$CONFIG_TARGET_POWERPC" = "y" ]; then
+ _ARCHINCDIR=$_INCDIR/powerpc
+ _ARCHLIBDIR=$_LIBDIR/powerpc
+fi
+
+_CFLAGS="-m32 -nostdinc -nostdlib -I$_INCDIR -I$_ARCHINCDIR -D__LIBPAYLOAD__=1"
# Check for the -fno-stack-protector silliness
else
_LIBGCC=`$DEFAULT_CC -m32 -print-libgcc-file-name`
if [ $DEBUGME -eq 1 ]; then
- echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $_LIBDIR/i386/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC"
+ echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $_ARCHLIBDIR/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC"
fi
- # Note: i386/head.o must be the first object being linked, because it
+ # Note: $_ARCHLIBDIR/head.o must be the first object being linked, because it
# contains a Multiboot header. The Multiboot standard requires this
# header to be placed below 0x2000 in the resulting image. See:
# http://www.gnu.org/software/grub/manual/multiboot/html_node/OS-image-format.html
- $DEFAULT_CC $_CFLAGS $_LDFLAGS $_LIBDIR/i386/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC
+ $DEFAULT_CC $_CFLAGS $_LDFLAGS $_ARCHLIBDIR/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC
fi