summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/config/scripts/switch-arch
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/openbios/config/scripts/switch-arch')
-rwxr-xr-xqemu/roms/openbios/config/scripts/switch-arch441
1 files changed, 0 insertions, 441 deletions
diff --git a/qemu/roms/openbios/config/scripts/switch-arch b/qemu/roms/openbios/config/scripts/switch-arch
deleted file mode 100755
index ab3b4ce69..000000000
--- a/qemu/roms/openbios/config/scripts/switch-arch
+++ /dev/null
@@ -1,441 +0,0 @@
-#!/bin/sh
-
-#
-# MOLPATH is needed if you want to build openbios-mol.elf
-#
-MOLPATH=$HOME/mol-0.9.71
-
-if [ x"$1" = x -o "$1" = "-help" ]; then
- printf "Usage:\n $0 [arch-config]...\n"
- printf "arch-config values supported for native or cross compiled builds:\n"
- printf " amd64, ppc, sparc32, sparc64, x86\n\n"
- printf "Add \"unix-\" prefix to compile openbios-unix executable (native only)\n"
- printf "Add \"builtin-\" prefix to compile openbios-builtin executables\n\n"
- printf "Without prefixes, builtin and unix targets are selected\n\n"
- printf "Special targets: mol-ppc briq-ppc pearpc-ppc qemu-ppc qemu-ppc64 xbox-x86\n\n"
- printf "Example: $0 builtin-sparc32 unix-amd64 builtin-amd64\n"
- exit 0
-fi
-
-is_bigendian()
-{
- cpu=$1
-
- if test "$cpu" = "powerpc" -o "$cpu" = "ppc" \
- -o "$cpu" = "powerpc64" -o "$cpu" = "ppc64" \
- -o "$cpu" = "mips" -o "$cpu" = "s390" \
- -o "$cpu" = "sparc32" -o "$cpu" = "sparc64" \
- -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
- echo yes
- else
- echo no
- fi
-}
-
-longbits()
-{
- cpu=$1
- if test "$cpu" = "sparc64" -o "$cpu" = "ia64" \
- -o "$cpu" = "amd64" -o "$cpu" = "x86_64" \
- -o "$cpu" = "powerpc64" -o "$cpu" = "ppc64" \
- -o "$cpu" = "alpha"; then
- echo 64
- else
- echo 32
- fi
-}
-
-basearch()
-{
- arch=$1
- case $arch in
- powerpc|ppc64|powerpc64)
- echo ppc
- ;;
- *)
- echo $arch
- ;;
- esac
-}
-
-crosscflags()
-{
- host=$1
- target=$2
-
- hostbigendian=$(is_bigendian $host)
- hostlongbits=$(longbits $host)
-
- targetbigendian=$(is_bigendian $target)
- targetlongbits=$(longbits $target)
-
- if test "$targetbigendian" = "$hostbigendian"; then
- cflags="-USWAP_ENDIANNESS"
- else
- cflags="-DSWAP_ENDIANNESS"
- fi
-
- if test "$targetlongbits" = "$hostlongbits"; then
- cflags="$cflags -DNATIVE_BITWIDTH_EQUALS_HOST_BITWIDTH"
- elif test "$targetlongbits" -lt "$hostlongbits"; then
- cflags="$cflags -DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH"
- else
- cflags="$cflags -DNATIVE_BITWIDTH_LARGER_THAN_HOST_BITWIDTH"
- fi
-
- if test "$target" = "sparc64" -o "$target" = "ia64" \
- -o "$target" = "amd64" -o "$target" = "x86_64" \
- -o "$target" = "alpha"; then
- if test "$host" = "x86"; then
- cflags="$cflags -DNEED_FAKE_INT128_T"
- elif test "$host" = "arm"; then
- cflags="$cflags -DNEED_FAKE_INT128_T"
- elif test "$host" = "ppc" -a `uname -s` = "Darwin"; then
- cflags="$cflags -DNEED_FAKE_INT128_T"
- fi
- fi
-
- CROSSCFLAGS=$cflags
-}
-
-archname()
-{
- HOSTARCH=`uname -m | sed -e s/i.86/x86/ -e s/i86pc/x86/ \
- -e s/sun4u/sparc64/ -e s/sparc$/sparc32/ \
- -e s/arm.*/arm/ -e s/sa110/arm/ -e s/x86_64/amd64/ \
- -e "s/Power Macintosh/ppc/"`
-}
-
-select_prefix()
-{
- BASEARCH=$(basearch $ARCH)
- for target_arch ; do
- TARGETS="${target_arch}-unknown-linux-gnu- ${target_arch}-linux-gnu- ${target_arch}-linux- ${target_arch}-elf- ${target_arch}-eabi-"
-
- if [ x"$CROSS_COMPILE" != "x" ]; then
- TARGETS=$CROSS_COMPILE
- fi
-
- for TARGET in $TARGETS
- do
- if type ${TARGET}gcc > /dev/null 2>&1
- then
- return
- fi
- done
- if [ "$BASEARCH" = "$(basearch $HOSTARCH)" ]; then
- TARGET=""
- return
- fi
- done
- echo "ERROR: no $* cross-compiler found !" 1>&2
- exit 1
-}
-
-config_set_boolean()
-{
- option=`echo $1 | tr a-z A-Z`
- echo "<option name=\"$option\" type=\"boolean\" value=\"true\" />"
-}
-
-exists()
-{
- type "$1" >/dev/null 2>&1
-}
-
-
-SRCDIR=`dirname "$0"`/../..
-BUILDDIR=`pwd`
-
-# make source path absolute
-SRCDIR=`cd "$SRCDIR"; pwd`
-
-if test "x$HOSTARCH" = "x"; then
- archname
-fi
-
-VERSION=`head $SRCDIR/VERSION`
-
-echo "Configuring OpenBIOS on $HOSTARCH for $*"
-
-if exists toke; then
- :
-else
- echo "Unable to locate toke executable from the fcode-utils package - aborting"
- exit 1
-fi
-
-target_list=""
-for target in $*; do
- case $target in
- unix-*|builtin-*|plain-*|mol-ppc|briq-ppc|pearpc-ppc|qemu-ppc|qemu-ppc64|xbox-x86)
- target_list="$target_list $target"
- ;;
- cross-*)
- echo "\"cross-\" prefix is no longer needed"
- target=`echo $target | sed s/cross-//g`
- target_list="$target_list builtin-$target"
- ;;
- *)
- #default: build builtin and if possible, unix target
- target_list="$target_list builtin-$target unix-$target"
- ;;
- esac
-done
-
-arch_list=""
-for target in $target_list; do
- arch=`echo $target | sed s/.*-//g`
- if ! test -f $SRCDIR/config/examples/${arch}_config.xml; then
- echo "Cannot find $SRCDIR/config/examples/${arch}_config.xml" >&2
- exit 1
- fi
- if ! echo $arch_list | grep -q "$arch"; then
- arch_list="$arch_list $arch"
- fi
-done
-
-for ARCH in $arch_list; do
- unix="no"
- builtin="no"
- plain="no"
- mol="no"
- briq="no"
- pearpc="no"
- qemu="no"
- xbox="no"
- cross="no"
-
- for target in $target_list; do
- case $target in
- *-$ARCH)
- :
- ;;
- *)
- continue
- ;;
- esac
- case $target in
- mol-ppc)
- mol="yes"
- ;;
- briq-ppc)
- briq="yes"
- ;;
- pearpc-ppc)
- pearpc="yes"
- ;;
- builtin-ppc|qemu-ppc|builtin-ppc64|qemu-ppc64)
- qemu="yes"
- ;;
- xbox-x86)
- xbox="yes"
- ;;
- builtin-sparc32)
- builtin="yes"
- qemu="yes"
- ;;
- builtin-sparc64)
- builtin="yes"
- qemu="yes"
- ;;
- unix-*)
- if [ "$ARCH" != "$HOSTARCH" ]; then
- # Can't cross compile Unix target
- continue
- fi
- unix="yes"
- ;;
- builtin-*)
- builtin="yes"
- ;;
- plain-*)
- plain="yes"
- ;;
- esac
- done
-
- case $ARCH in
- amd64)
- select_prefix x86_64
- CFLAGS="-fno-builtin"
- AS_FLAGS=
- ;;
-
- ppc)
- select_prefix powerpc powerpc64
- if [ "$unix" = "no" ]; then
- # 604 cpu includes support for PReP as well as Mac
- CFLAGS="-m32 -mcpu=604 -msoft-float -fno-builtin-bcopy -fno-builtin-log2"
- AS_FLAGS="-m32"
- else
- CFLAGS="-fno-builtin"
- AS_FLAGS=
- fi
- ;;
-
- ppc64)
- select_prefix powerpc64
-
- # 970 cpu is used in all 64-bit Macs but disable altivec
- CFLAGS="-mcpu=970 -mno-altivec -Wa,-a64 -m64 -msoft-float -fno-builtin"
- AS_FLAGS="-Wa,-a64"
- ;;
-
- sparc32)
- select_prefix sparc sparc64
- CFLAGS="-Wa,-xarch=v8 -Wa,-32 -m32 -mcpu=supersparc -fno-builtin"
- AS_FLAGS="-Wa,-xarch=v8 -Wa,-32"
- ;;
-
- sparc64)
- select_prefix sparc64
- CFLAGS="-Wa,-xarch=v9b -Wa,-64 -m64 -mcpu=ultrasparc -mcmodel=medany -fno-builtin"
- AS_FLAGS="-Wa,-xarch=v9b -Wa,-64"
- ;;
-
- x86)
- select_prefix i486
- CFLAGS="-fno-builtin -m32"
- AS_FLAGS="-Wa,-32"
- ;;
- esac
- if [ "$ARCH" != "$HOSTARCH" -o `uname -s` = "Darwin" ]; then
- cross="yes"
- fi
- crosscflags $HOSTARCH $ARCH
- OBJDIR=$BUILDDIR/obj-$ARCH
- ODIRS="$ODIRS $OBJDIR"
-
- 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/libgcc
- mkdir -p $OBJDIR/target/kernel
- mkdir -p $OBJDIR/target/libopenbios
- mkdir -p $OBJDIR/target/packages
- 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/fs/iso9660
- mkdir -p $OBJDIR/target/fs/ext2
- 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 $SRCDIR/include/arch/$BASEARCH $OBJDIR/target/include/asm
- #compile the host binary with target settings instead
- #ln -s $SRCDIR/include/arch/$HOSTARCH $OBJDIR/host/include/asm
- if [ "$mol" = "yes" ]; then
- printf "\nUsing MOL path $MOLPATH...\n"
- mkdir -p $OBJDIR/target/arch/ppc/mol
- ln -s $MOLPATH/src/shared/osi_calls.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/shared/osi.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/shared/prom.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/include/boothelper_sh.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/include/video_sh.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/include/pseudofs_sh.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/include/kbd_sh.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/drivers/disk/include/scsi_sh.h $OBJDIR/target/include/
- ln -s $MOLPATH/src/drivers/disk/include/ablk_sh.h $OBJDIR/target/include/
- fi
- if [ "$briq" = "yes" ]; then
- mkdir -p $OBJDIR/target/arch/ppc/briq
- fi
- if [ "$pearpc" = "yes" ]; then
- mkdir -p $OBJDIR/target/arch/ppc/pearpc
- fi
- if [ "$qemu" = "yes" ]; then
- mkdir -p $OBJDIR/target/arch/ppc/qemu
- fi
- if [ "$xbox" = "yes" ]; then
- mkdir -p $OBJDIR/target/arch/x86/xbox
- fi
- echo "ok."
-
- ODIR=$OBJDIR
-
- printf "Creating target config.mak..."
- echo "ARCH=$ARCH" > $ODIR/config.mak
- if [ "$cross" = "yes" ]; then
- echo "TARGET=$TARGET" >> $ODIR/config.mak
- fi
- echo "CFLAGS=$CFLAGS" >> $ODIR/config.mak
- echo "AS_FLAGS=$AS_FLAGS" >> $ODIR/config.mak
- echo "HOSTARCH?=$HOSTARCH" >> $ODIR/config.mak
- echo "CROSSCFLAGS=$CROSSCFLAGS" >> $ODIR/config.mak
- echo "VERSION=\"$VERSION\"" >> $ODIR/config.mak
- echo "SRCDIR=$SRCDIR" >> $ODIR/config.mak
- echo "ok."
-
- printf "Creating target rules.mak..."
- ln -s $SRCDIR/config/xml/rules.xml $ODIR/rules.xml
- echo "<?xml version=\"1.0\"?><config>" > $ODIR/config.xml
- # Generic
- config_set_boolean CONFIG_$ARCH >> $ODIR/config.xml
- if [ "$BASEARCH" != "$ARCH" ]; then
- config_set_boolean CONFIG_$BASEARCH >> $ODIR/config.xml
- fi
- if [ "$mol" = "yes" ]; then
- config_set_boolean CONFIG_MOL >> $ODIR/config.xml
- fi
- if [ "$briq" = "yes" ]; then
- config_set_boolean CONFIG_BRIQ >> $ODIR/config.xml
- fi
- if [ "$pearpc" = "yes" ]; then
- config_set_boolean CONFIG_PEARPC >> $ODIR/config.xml
- fi
- if [ "$qemu" = "yes" ]; then
- config_set_boolean CONFIG_QEMU >> $ODIR/config.xml
- fi
- if [ "$xbox" = "yes" ]; then
- config_set_boolean CONFIG_XBOX >> $ODIR/config.xml
- fi
- if [ "$targetbigendian" = "yes" ]; then
- config_set_boolean CONFIG_BIG_ENDIAN >> $ODIR/config.xml
- else
- config_set_boolean CONFIG_LITTLE_ENDIAN >> $ODIR/config.xml
- fi
- # Kernel binaries
- if [ "$plain" = "yes" ]; then
- config_set_boolean CONFIG_IMAGE_ELF >> $ODIR/config.xml
- fi
- if [ "$builtin" = "yes" ]; then
- config_set_boolean CONFIG_IMAGE_ELF_EMBEDDED >> $ODIR/config.xml
- fi
- # Build hosted Unix binary?
- if [ "$unix" = "yes" ]; then
- config_set_boolean CONFIG_HOST_UNIX >> $ODIR/config.xml
- #config_set_boolean CONFIG_UNIX_QT >> $ODIR/config.xml
- #config_set_boolean CONFIG_PLUGINS >> $ODIR/config.xml
- fi
- cat $SRCDIR/config/examples/${ARCH}_config.xml >> $ODIR/config.xml
-
- cd $ODIR
- echo "</config>" >> $ODIR/config.xml
- ln -s $SRCDIR/Makefile.target $ODIR/Makefile
- xsltproc $SRCDIR/config/xml/xinclude.xsl $SRCDIR/build.xml > $ODIR/build-full.xml
- xsltproc $SRCDIR/config/xml/makefile.xsl $ODIR/build-full.xml > $ODIR/rules.mak
- echo "ok."
- printf "Creating config files..."
- xsltproc $SRCDIR/config/xml/config-c.xsl $ODIR/config.xml > $ODIR/host/include/autoconf.h
- xsltproc $SRCDIR/config/xml/config-c.xsl $ODIR/config.xml > $ODIR/target/include/autoconf.h
- xsltproc $SRCDIR/config/xml/config-forth.xsl $ODIR/config.xml > $ODIR/forth/config.fs
- echo "ok."
-
- cd $BUILDDIR
-done
-
-if [ "$SRCDIR" != "$BUILDDIR" ]; then
- ln -s $SRCDIR/Makefile $BUILDDIR
-fi
-
-echo "ODIRS=$ODIRS" >> $BUILDDIR/config-host.mak
-echo "TARGETS=$arch_list" >> $BUILDDIR/config-host.mak