2006-04-26 23:08:19 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
if [ x"$1" = x ]; then
|
2009-01-24 04:09:26 +08:00
|
|
|
printf "Usage:\n $0 [arch-config]...\n"
|
2009-01-18 18:14:58 +08:00
|
|
|
printf "arch-config values supported for native builds:\n"
|
|
|
|
printf " amd64, ppc, sparc32, sparc64, x86\n"
|
|
|
|
printf "arch-config values supported for cross compiled builds:\n"
|
|
|
|
printf " cross-ppc, cross-sparc32, cross-sparc64, cross-x86\n"
|
2006-04-26 23:08:19 +08:00
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2009-01-24 04:09:26 +08:00
|
|
|
# This is needed because viewvc messes with the permissions of executables:
|
|
|
|
chmod 755 utils/dist/debian/rules
|
|
|
|
chmod 755 config/scripts/switch-arch
|
|
|
|
chmod 755 config/scripts/archname
|
|
|
|
chmod 755 config/scripts/reldir
|
|
|
|
chmod 755 config/scripts/crosscflags
|
|
|
|
HOSTARCH=`config/scripts/archname`
|
2006-04-26 23:08:19 +08:00
|
|
|
|
2009-01-24 04:09:26 +08:00
|
|
|
echo "Configuring OpenBIOS on $HOSTARCH for $*"
|
|
|
|
for RULES_ARCH in $*; do
|
|
|
|
ARCH=`cat config/examples/${RULES_ARCH}_rules.xml |grep "^ARCH" |cut -d\= -f2|tr -d \ `
|
|
|
|
OBJDIR=obj-$ARCH
|
|
|
|
printf "Initializing build tree $OBJDIR..."
|
|
|
|
rm -rf "$OBJDIR"
|
|
|
|
mkdir "$OBJDIR"
|
|
|
|
mkdir -p $OBJDIR/target
|
|
|
|
mkdir -p $OBJDIR/target/include
|
|
|
|
mkdir -p $OBJDIR/target/arch
|
|
|
|
mkdir -p $OBJDIR/target/arch/unix
|
|
|
|
mkdir -p $OBJDIR/target/arch/$ARCH
|
|
|
|
mkdir -p $OBJDIR/target/arch/ppc
|
|
|
|
mkdir -p $OBJDIR/target/arch/ppc/briq # no autodetection of those..
|
|
|
|
mkdir -p $OBJDIR/target/arch/ppc/pearpc
|
|
|
|
mkdir -p $OBJDIR/target/arch/ppc/qemu
|
|
|
|
mkdir -p $OBJDIR/target/arch/ppc/mol
|
|
|
|
mkdir -p $OBJDIR/target/arch/x86
|
|
|
|
mkdir -p $OBJDIR/target/arch/x86/xbox
|
|
|
|
mkdir -p $OBJDIR/target/libgcc
|
|
|
|
mkdir -p $OBJDIR/target/kernel
|
|
|
|
mkdir -p $OBJDIR/target/modules
|
|
|
|
mkdir -p $OBJDIR/target/fs
|
|
|
|
mkdir -p $OBJDIR/target/fs/grubfs
|
|
|
|
mkdir -p $OBJDIR/target/fs/hfs
|
|
|
|
mkdir -p $OBJDIR/target/fs/hfsplus
|
|
|
|
mkdir -p $OBJDIR/target/drivers
|
|
|
|
mkdir -p $OBJDIR/target/libc
|
|
|
|
mkdir -p $OBJDIR/host/include
|
|
|
|
mkdir -p $OBJDIR/host/kernel
|
|
|
|
mkdir -p $OBJDIR/forth
|
|
|
|
ln -s ../../../include/$ARCH $OBJDIR/target/include/asm
|
|
|
|
#compile the host binary with target settings instead
|
|
|
|
#ln -s ../../../include/$HOSTARCH $OBJDIR/host/include/asm
|
|
|
|
echo "ok."
|
|
|
|
|
|
|
|
cd $OBJDIR
|
|
|
|
SRCDIR=..
|
|
|
|
ODIR=.
|
|
|
|
|
|
|
|
printf "Creating target Makefile..."
|
|
|
|
ln -s $SRCDIR/config/examples/${RULES_ARCH}_rules.xml $ODIR/rules.xml
|
|
|
|
ln -s $SRCDIR/config/examples/${RULES_ARCH}_config.xml $ODIR/config.xml
|
|
|
|
xsltproc $SRCDIR/config/xml/xinclude.xsl $SRCDIR/build.xml > $ODIR/build-full.xml
|
|
|
|
xsltproc $SRCDIR/config/xml/makefile.xsl $ODIR/build-full.xml > $ODIR/Makefile
|
|
|
|
echo "ok."
|
|
|
|
printf "Creating config files..."
|
|
|
|
xsltproc $SRCDIR/config/xml/config-c.xsl $SRCDIR/config/examples/${RULES_ARCH}_config.xml > $ODIR/host/include/autoconf.h
|
|
|
|
xsltproc $SRCDIR/config/xml/config-c.xsl $SRCDIR/config/examples/${RULES_ARCH}_config.xml > $ODIR/target/include/autoconf.h
|
|
|
|
xsltproc $SRCDIR/config/xml/config-forth.xsl $SRCDIR/config/examples/${RULES_ARCH}_config.xml > $ODIR/forth/config.fs
|
|
|
|
echo "ok."
|
|
|
|
cd $SRCDIR
|
|
|
|
done
|