Author: stepan
Date: 2009-04-29 21:15:52 +0200 (Wed, 29 Apr 2009)
New Revision: 92

Modified:
   trunk/filo/build.sh
Log:
update filo build script to better cope with cross compilers.


Modified: trunk/filo/build.sh
===================================================================
--- trunk/filo/build.sh 2009-04-27 08:05:50 UTC (rev 91)
+++ trunk/filo/build.sh 2009-04-29 19:15:52 UTC (rev 92)
@@ -9,23 +9,43 @@
        fi
 done
 
-OS=`uname -s`
-if [ "$OS" = "Darwin" -o "$OS" = "SunOS" -o "${OS:0:6}" = "CYGWIN" ]; then
-    MAKEFLAGS="                        \
-       AS=i386-elf-as          \
-       CC=i386-elf-gcc         \
-       AR=i386-elf-ar          \
-       LD=i386-elf-ld          \
-       STRIP=i386-elf-strip    \
-       NM=i386-elf-nm          \
-       HOSTCC=gcc              \
-       -j                      \
-       "
+GCCPREFIX=invalid
+for gccprefixes in `pwd`/../crossgcc/xgcc/bin/i386-elf- i386-elf- ""; do
+       TMP=`mktemp /tmp/temp.XXXX`
+       echo "mov %eax, %eax" > ${TMP}.s
+       printf "\x7fELF" > ${TMP}.compare
+       if which ${gccprefixes}as 2>/dev/null >/dev/null; then
+               printf ""
+       else
+               continue
+       fi
+       if ${gccprefixes}as --32 -o ${TMP}.o ${TMP}.s; then
+               head -c 4 ${TMP}.o > ${TMP}.test
+               if cmp ${TMP}.test ${TMP}.compare; then
+                       GCCPREFIX=$gccprefixes
+                       rm -f $TMP ${TMP}.s ${TMP}.o ${TMP}.compare ${TMP}.test
+                       break
+               fi
+       fi
+       rm -f $TMP ${TMP}.s ${TMP}.o ${TMP}.compare ${TMP}.test
+done
+
+if [ "$GCCPREFIX" = "invalid" ]; then
+       echo no suitable gcc found
+       exit 1
 fi
-if [ "$OS" = "Linux" ]; then
-    MAKEFLAGS='CC="gcc -m32" LD="ld -b elf32-i386" HOSTCC="gcc" AS="as --32"'
-fi
 
+MAKEFLAGS=" \
+       AS=\"${GCCPREFIX}as --32\"              \
+       CC=\"${GCCPREFIX}gcc -m32\"             \
+       AR=\"${GCCPREFIX}ar\"                   \
+       LD=\"${GCCPREFIX}ld -b elf32-i386\"     \
+       STRIP=\"${GCCPREFIX}strip\"             \
+       NM=\"${GCCPREFIX}nm\"                   \
+       HOSTCC=gcc                              \
+       -j                                      \
+"
+
 $MAKE distclean
 cp configs/$CONFIG ./.config
 $MAKE oldconfig


-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to