From 3a8043bab978f234a6ff8bbbeab1790821bfa4b1 Mon Sep 17 00:00:00 2001
From: Blue Swirl <blauwirbel@gmail.com>
Date: Tue, 23 Feb 2010 21:36:44 +0000
Subject: [PATCH] Improve compilation

Autodetect cross compilation, so cross- prefix is no longer needed.

Add unix- prefix to enable openbios-unix build for selected target.

Unify cross and native configuration.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
---
 config/examples/amd64_config.xml         |   10 ----
 config/examples/cross-ppc_config.xml     |   88 ------------------------------
 config/examples/cross-sparc32_config.xml |   82 ----------------------------
 config/examples/cross-sparc64_config.xml |   86 -----------------------------
 config/examples/cross-x86_config.xml     |   75 -------------------------
 config/examples/ppc_config.xml           |    9 ---
 config/examples/sparc32_config.xml       |    9 ---
 config/examples/sparc64_config.xml       |    9 ---
 config/examples/x86_config.xml           |   10 ----
 config/scripts/switch-arch               |   69 ++++++++++++++++++-----
 10 files changed, 54 insertions(+), 393 deletions(-)
 delete mode 100644 config/examples/cross-ppc_config.xml
 delete mode 100644 config/examples/cross-sparc32_config.xml
 delete mode 100644 config/examples/cross-sparc64_config.xml
 delete mode 100644 config/examples/cross-x86_config.xml

diff --git a/config/examples/amd64_config.xml b/config/examples/amd64_config.xml
index c5f3c86..1d98b4e 100644
--- a/config/examples/amd64_config.xml
+++ b/config/examples/amd64_config.xml
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<config>
-
   <!-- generic -->
   <option name="CONFIG_AMD64" type="boolean" value="true"/>
   <option name="CONFIG_LITTLE_ENDIAN" type="boolean" value="true"/>
@@ -10,11 +7,6 @@
   <option name="CONFIG_IMAGE_ELF_EMBEDDED" type="boolean" value="true"/>
   <option name="CONFIG_IMAGE_ELF_MULTIBOOT" type="boolean" value="true"/>
 
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="true"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
   <!-- Kernel Debugging -->
   <option name="CONFIG_DEBUG" type="boolean" value="true"/>
   <option name="CONFIG_DEBUG_BOOT" type="boolean" value="true"/>
@@ -67,5 +59,3 @@
   <option name="CONFIG_DRIVER_IDE" type="boolean" value="true"/>
   <option name="CONFIG_IDE_NUM_CHANNELS" type="integer" value="4"/>
   <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/>
-
-</config>
diff --git a/config/examples/cross-ppc_config.xml b/config/examples/cross-ppc_config.xml
deleted file mode 100644
index da4d7d4..0000000
--- a/config/examples/cross-ppc_config.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0"?>
-<config>
-
-  <!-- generic -->
-  <option name="CONFIG_PPC" type="boolean" value="true"/>
-  <option name="CONFIG_MOL" type="boolean" value="false"/>
-  <option name="CONFIG_BRIQ" type="boolean" value="false"/>
-  <option name="CONFIG_PEARPC" type="boolean" value="false"/>
-  <option name="CONFIG_QEMU" type="boolean" value="true"/>
-  <option name="CONFIG_BIG_ENDIAN" type="boolean" value="true"/>
-
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="false"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
-  <!-- Kernel Debugging -->
-  <option name="CONFIG_DEBUG" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_DSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_RSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_DICTIONARY" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERNAL" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERPRETER" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_CONSOLE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_CONSOLE_SERIAL" type="boolean" value="true"/>
-  <option name="CONFIG_SERIAL_PORT" type="integer" value="0"/>
-  <option name="CONFIG_SERIAL_SPEED" type="integer" value="115200"/>
-  <option name="CONFIG_DEBUG_CONSOLE_VGA" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="false"/>
-
-
-  <!-- Module Configuration -->
-  <option name="CONFIG_CMDLINE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBLOCKER" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X8" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X16" type="boolean" value="false"/>
-  <option name="CONFIG_OFMEM" type="boolean" value="true"/>
-  <option name="CONFIG_OFMEM_MALLOC_ALIGN" type="integer" value="4"/>
-  <option name="CONFIG_VGA_WIDTH" type="integer" value="800"/>
-  <option name="CONFIG_VGA_HEIGHT" type="integer" value="600"/>
-  <option name="CONFIG_VGA_DEPTH" type="integer" value="8"/>
-
-  <!-- Filesystem Configuration -->
-  <option name="CONFIG_DISK_LABEL" type="boolean" value="true"/>
-  <option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
-  <option name="CONFIG_MAC_PARTS" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_MAC_PARTS" type="boolean" value="false"/>
-  <option name="CONFIG_PC_PARTS" type="boolean" value="true"/>
-  <option name="CONFIG_FS" type="boolean" value="true"/>
-  <option name="CONFIG_HFS" type="boolean" value="true"/>
-  <option name="CONFIG_HFSP" type="boolean" value="true"/>
-  <option name="CONFIG_ISO9660" type="boolean" value="true"/>
-  <option name="CONFIG_EXT2" type="boolean" value="true"/>
-  <option name="CONFIG_GRUBFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_EXT2FS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_FAT" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_JFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_MINIX" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_REISERFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_XFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_UFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_ISO9660" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_FFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_VSTAFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_NTFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_AFFS" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/>
-
-  <!-- Miscellaneous -->
-  <option name="CONFIG_LINUXBIOS" type="boolean" value="false"/>
-
-  <!-- Drivers -->
-  <option name="CONFIG_DRIVER_PCI" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_PCI" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_IDE" type="boolean" value="true"/>
-  <option name="CONFIG_IDE_NUM_CHANNELS" type="integer" value="2"/>
-  <option name="CONFIG_IDE_FIRST_UNIT" type="integer" value="1"/>
-  <option name="CONFIG_IDE_DEV_NAME" type="string" value="ata-%d"/>
-  <option name="CONFIG_IDE_DEV_TYPE" type="string" value="ata"/>
-  <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_ADB" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_VGA" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_MACIO" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_ESCC" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/>
-  <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0xf0000510"/>
-</config>
diff --git a/config/examples/cross-sparc32_config.xml b/config/examples/cross-sparc32_config.xml
deleted file mode 100644
index 759ca0d..0000000
--- a/config/examples/cross-sparc32_config.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0"?>
-<config>
-
-  <!-- generic -->
-  <option name="CONFIG_SPARC" type="boolean" value="true"/>
-  <option name="CONFIG_SPARC32" type="boolean" value="true"/>
-  <option name="CONFIG_BIG_ENDIAN" type="boolean" value="true"/>
-
-  <!-- kernel binaries (SPARC32) -->
-  <option name="CONFIG_IMAGE_ELF" type="boolean" value="false"/>
-  <option name="CONFIG_IMAGE_ELF_EMBEDDED" type="boolean" value="true"/>
-  <option name="CONFIG_IMAGE_ELF_MULTIBOOT" type="boolean" value="true"/>
-
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="false"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
-  <!-- Kernel Debugging -->
-  <option name="CONFIG_DEBUG" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_DSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_RSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_DICTIONARY" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERNAL" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERPRETER" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_CONSOLE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_CONSOLE_SERIAL" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_CONSOLE_VIDEO" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_ESP" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_SUN_PARTS" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_OBP" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_IOMMU" type="boolean" value="false"/>
-  <option name="CONFIG_SERIAL_PORT" type="integer" value="0"/>
-  <option name="CONFIG_SERIAL_SPEED" type="integer" value="9600"/>
-  <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="false"/>
-
-
-  <!-- Module Configuration -->
-  <option name="CONFIG_CMDLINE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBLOCKER" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X8" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X16" type="boolean" value="false"/>
-
-  <!-- Filesystem Configuration -->
-  <option name="CONFIG_DISK_LABEL" type="boolean" value="true"/>
-  <option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
-  <option name="CONFIG_PC_PARTS" type="boolean" value="false"/>
-  <option name="CONFIG_SUN_PARTS" type="boolean" value="true"/>
-  <option name="CONFIG_FS" type="boolean" value="true"/>
-  <option name="CONFIG_HFS" type="boolean" value="false"/>
-  <option name="CONFIG_HFSP" type="boolean" value="false"/>
-  <option name="CONFIG_GRUBFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_EXT2FS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_FAT" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_JFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_MINIX" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_REISERFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_XFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_UFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_ISO9660" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_FFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_VSTAFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_NTFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_AFFS" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_EXT2FS" type="boolean" value="false"/>
-
-  <!-- Miscellaneous -->
-  <option name="CONFIG_LINUXBIOS" type="boolean" value="false"/>
-
-  <!-- Drivers -->
-  <option name="CONFIG_DRIVER_SBUS" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_OBIO" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_ESP" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_FLOPPY" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_FLOPPY" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_ESCC" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_ESCC_SUN" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/>
-  <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0xd00000510ULL"/>
-</config>
diff --git a/config/examples/cross-sparc64_config.xml b/config/examples/cross-sparc64_config.xml
deleted file mode 100644
index 02b1fd3..0000000
--- a/config/examples/cross-sparc64_config.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0"?>
-<config>
-
-  <!-- generic -->
-  <option name="CONFIG_SPARC" type="boolean" value="true"/>
-  <option name="CONFIG_SPARC64" type="boolean" value="true"/>
-  <option name="CONFIG_QEMU" type="boolean" value="true"/>
-  <option name="CONFIG_BIG_ENDIAN" type="boolean" value="true"/>
-
-  <!-- kernel binaries (SPARC64) -->
-  <option name="CONFIG_IMAGE_ELF" type="boolean" value="false"/>
-  <option name="CONFIG_IMAGE_ELF_EMBEDDED" type="boolean" value="true"/>
-  <option name="CONFIG_IMAGE_ELF_MULTIBOOT" type="boolean" value="true"/>
-
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="false"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
-  <!-- Kernel Debugging -->
-  <option name="CONFIG_DEBUG" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_DSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_RSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_DICTIONARY" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERNAL" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERPRETER" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_CONSOLE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_CONSOLE_SERIAL" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_SUN_PARTS" type="boolean" value="false"/>
-  <option name="CONFIG_SERIAL_PORT" type="integer" value="0"/>
-  <option name="CONFIG_SERIAL_SPEED" type="integer" value="115200"/>
-  <option name="CONFIG_DEBUG_CONSOLE_VGA" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="false"/>
-
-
-  <!-- Module Configuration -->
-  <option name="CONFIG_CMDLINE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBLOCKER" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X8" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X16" type="boolean" value="false"/>
-  <option name="CONFIG_OFMEM" type="boolean" value="true"/>
-  <option name="CONFIG_OFMEM_MALLOC_ALIGN" type="integer" value="8"/>
-
-  <!-- Filesystem Configuration -->
-  <option name="CONFIG_DISK_LABEL" type="boolean" value="true"/>
-  <option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
-  <option name="CONFIG_PC_PARTS" type="boolean" value="false"/>
-  <option name="CONFIG_SUN_PARTS" type="boolean" value="true"/>
-  <option name="CONFIG_FS" type="boolean" value="true"/>
-  <option name="CONFIG_HFS" type="boolean" value="false"/>
-  <option name="CONFIG_HFSP" type="boolean" value="false"/>
-  <option name="CONFIG_GRUBFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_EXT2FS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_FAT" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_JFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_MINIX" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_REISERFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_XFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_UFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_ISO9660" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_FFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_VSTAFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_NTFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_AFFS" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_EXT2FS" type="boolean" value="false"/>
-
-  <!-- Miscellaneous -->
-  <option name="CONFIG_LINUXBIOS" type="boolean" value="false"/>
-
-  <!-- Drivers -->
-  <option name="CONFIG_DRIVER_PCI" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_PCI" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_IDE" type="boolean" value="true"/>
-  <option name="CONFIG_IDE_NUM_CHANNELS" type="integer" value="2"/>
-  <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_FLOPPY" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_FLOPPY" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_VGA" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_EBUS" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_PC_KBD" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_PC_SERIAL" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/>
-  <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0x510"/>
-</config>
diff --git a/config/examples/cross-x86_config.xml b/config/examples/cross-x86_config.xml
deleted file mode 100644
index 865ad07..0000000
--- a/config/examples/cross-x86_config.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0"?>
-<config>
-
-  <!-- generic -->
-  <option name="CONFIG_X86" type="boolean" value="true"/>
-  <option name="CONFIG_LITTLE_ENDIAN" type="boolean" value="true"/>
-  <option name="CONFIG_XBOX" type="boolean" value="false"/>
-
-  <!-- kernel binaries (AMD64) -->
-  <option name="CONFIG_IMAGE_ELF" type="boolean" value="true"/>
-  <option name="CONFIG_IMAGE_ELF_EMBEDDED" type="boolean" value="true"/>
-  <option name="CONFIG_IMAGE_ELF_MULTIBOOT" type="boolean" value="true"/>
-
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="false"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
-  <!-- Kernel Debugging -->
-  <option name="CONFIG_DEBUG" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_BOOT" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_DSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_RSTACK" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_DICTIONARY" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERNAL" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_INTERPRETER" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_CONSOLE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_CONSOLE_SERIAL" type="boolean" value="true"/>
-  <option name="CONFIG_SERIAL_PORT" type="boolean" value="true"/>
-  <option name="CONFIG_SERIAL_SPEED" type="integer" value="115200"/>
-  <option name="CONFIG_DEBUG_CONSOLE_VGA" type="boolean" value="true"/>
-
-
-  <!-- Module Configuration -->
-  <option name="CONFIG_CMDLINE" type="boolean" value="true"/>
-  <option name="CONFIG_DEBLOCKER" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X8" type="boolean" value="true"/>
-  <option name="CONFIG_FONT_8X16" type="boolean" value="false"/>
-
-  <!-- Filesystem Configuration -->
-  <option name="CONFIG_DISK_LABEL" type="boolean" value="true"/>
-  <option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
-  <option name="CONFIG_PC_PARTS" type="boolean" value="true"/>
-  <option name="CONFIG_FS" type="boolean" value="true"/>
-  <option name="CONFIG_HFS" type="boolean" value="false"/>
-  <option name="CONFIG_HFSP" type="boolean" value="false"/>
-  <option name="CONFIG_GRUBFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_EXT2FS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_FAT" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_JFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_MINIX" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_REISERFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_XFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_UFS" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_ISO9660" type="boolean" value="true"/>
-  <option name="CONFIG_FSYS_FFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_VSTAFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_NTFS" type="boolean" value="false"/>
-  <option name="CONFIG_FSYS_AFFS" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/>
-
-  <!-- Miscellaneous -->
-  <option name="CONFIG_LINUXBIOS" type="boolean" value="true"/>
-
-  <!-- Drivers -->
-  <option name="CONFIG_DRIVER_PCI" type="boolean" value="true"/>
-  <option name="CONFIG_DEBUG_PCI" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_IDE" type="boolean" value="true"/>
-  <option name="CONFIG_IDE_NUM_CHANNELS" type="integer" value="4"/>
-  <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/>
-  <option name="CONFIG_DRIVER_VGA" type="boolean" value="true"/>
-  <option name="CONFIG_DRIVER_FLOPPY" type="boolean" value="false"/>
-  <option name="CONFIG_DEBUG_FLOPPY" type="boolean" value="false"/>
-
-</config>
diff --git a/config/examples/ppc_config.xml b/config/examples/ppc_config.xml
index 01139d7..a7ba62f 100644
--- a/config/examples/ppc_config.xml
+++ b/config/examples/ppc_config.xml
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<config>
-
   <!-- generic -->
   <option name="CONFIG_PPC" type="boolean" value="true"/>
   <option name="CONFIG_MOL" type="boolean" value="false"/>
@@ -9,11 +6,6 @@
   <option name="CONFIG_QEMU" type="boolean" value="true"/>
   <option name="CONFIG_BIG_ENDIAN" type="boolean" value="true"/>
 
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="false"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
   <!-- Kernel Debugging -->
   <option name="CONFIG_DEBUG" type="boolean" value="true"/>
   <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/>
@@ -86,4 +78,3 @@
   <option name="CONFIG_DRIVER_ESCC" type="boolean" value="true"/>
   <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/>
   <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0xf0000510"/>
-</config>
diff --git a/config/examples/sparc32_config.xml b/config/examples/sparc32_config.xml
index 065edb0..4992d43 100644
--- a/config/examples/sparc32_config.xml
+++ b/config/examples/sparc32_config.xml
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<config>
-
   <!-- generic -->
   <option name="CONFIG_SPARC" type="boolean" value="true"/>
   <option name="CONFIG_SPARC32" type="boolean" value="true"/>
@@ -11,11 +8,6 @@
   <option name="CONFIG_IMAGE_ELF_EMBEDDED" type="boolean" value="true"/>
   <option name="CONFIG_IMAGE_ELF_MULTIBOOT" type="boolean" value="true"/>
 
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="true"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
   <!-- Kernel Debugging -->
   <option name="CONFIG_DEBUG" type="boolean" value="true"/>
   <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/>
@@ -79,4 +71,3 @@
   <option name="CONFIG_DRIVER_ESCC_SUN" type="boolean" value="true"/>
   <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/>
   <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0xd00000510ULL"/>
-</config>
diff --git a/config/examples/sparc64_config.xml b/config/examples/sparc64_config.xml
index 48f88d2..8b0ce7d 100644
--- a/config/examples/sparc64_config.xml
+++ b/config/examples/sparc64_config.xml
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<config>
-
   <!-- generic -->
   <option name="CONFIG_SPARC" type="boolean" value="true"/>
   <option name="CONFIG_SPARC64" type="boolean" value="true"/>
@@ -12,11 +9,6 @@
   <option name="CONFIG_IMAGE_ELF_EMBEDDED" type="boolean" value="true"/>
   <option name="CONFIG_IMAGE_ELF_MULTIBOOT" type="boolean" value="true"/>
 
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="true"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
   <!-- Kernel Debugging -->
   <option name="CONFIG_DEBUG" type="boolean" value="true"/>
   <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/>
@@ -83,4 +75,3 @@
   <option name="CONFIG_DRIVER_PC_SERIAL" type="boolean" value="true"/>
   <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/>
   <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0x510"/>
-</config>
diff --git a/config/examples/x86_config.xml b/config/examples/x86_config.xml
index 8211704..5932e7b 100644
--- a/config/examples/x86_config.xml
+++ b/config/examples/x86_config.xml
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<config>
-
   <!-- generic -->
   <option name="CONFIG_X86" type="boolean" value="true"/>
   <option name="CONFIG_LITTLE_ENDIAN" type="boolean" value="true"/>
@@ -11,11 +8,6 @@
   <option name="CONFIG_IMAGE_ELF_EMBEDDED" type="boolean" value="true"/>
   <option name="CONFIG_IMAGE_ELF_MULTIBOOT" type="boolean" value="true"/>
 
-  <!-- Build hosted UNIX Binary -->
-  <option name="CONFIG_HOST_UNIX" type="boolean" value="true"/>
-  <option name="CONFIG_UNIX_QT" type="boolean" value="false"/>
-  <option name="CONFIG_PLUGINS" type="boolean" value="false"/>
-
   <!-- Kernel Debugging -->
   <option name="CONFIG_DEBUG" type="boolean" value="true"/>
   <option name="CONFIG_DEBUG_BOOT" type="boolean" value="true"/>
@@ -71,5 +63,3 @@
   <option name="CONFIG_DRIVER_VGA" type="boolean" value="true"/>
   <option name="CONFIG_DRIVER_FLOPPY" type="boolean" value="false"/>
   <option name="CONFIG_DEBUG_FLOPPY" type="boolean" value="false"/>
-
-</config>
diff --git a/config/scripts/switch-arch b/config/scripts/switch-arch
index 9aae7ba..dd7ddc6 100755
--- a/config/scripts/switch-arch
+++ b/config/scripts/switch-arch
@@ -7,10 +7,9 @@ MOLPATH=$HOME/mol-0.9.71
 
 if [ x"$1" = x ]; then
   printf "Usage:\n  $0 [arch-config]...\n"
-  printf "arch-config values supported for native builds:\n"
+  printf "arch-config values supported for native or cross compiled 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"
+  printf "add \"unix-\" prefix to compile openbios-unix executable\n"
   exit 0
 fi
 
@@ -100,6 +99,11 @@ select_prefix()
     exit 1
 }
 
+config_set_boolean()
+{
+    echo "<option name=\"$1\" type=\"boolean\" value=\"true\" />"
+}
+
 if ! test -f utils/dist/debian/rules; then
 	echo "switch-arch must be run from the top-level source directory" >&2
 	exit 1
@@ -117,13 +121,31 @@ fi
 VERSION=`head VERSION`
 
 echo "Configuring OpenBIOS on $HOSTARCH for $*"
-for RULES_ARCH in $*; do
-    if ! test -f config/examples/${RULES_ARCH}_config.xml; then
-	echo "Cannot find config/examples/${RULES_ARCH}_config.xml" >&2
+for ARCH in $*; do
+    unix="no"
+    cross="no"
+
+    case $ARCH in
+        unix-*)
+        ARCH=`echo $ARCH | sed s/unix-//g`
+        unix="yes"
+        ;;
+        cross-*)
+        echo "\"cross-\" prefix is no longer needed"
+        ARCH=`echo $ARCH | sed s/cross-//g`
+        cross="yes"
+        ;;
+    esac
+
+    if [ "$ARCH" != "$HOSTARCH" ]; then
+        cross="yes"
+    fi
+
+    if ! test -f config/examples/${ARCH}_config.xml; then
+        echo "Cannot find config/examples/${ARCH}_config.xml" >&2
 	exit 1
     fi
 
-    ARCH=`echo $RULES_ARCH | sed s/cross-//g`
     case $ARCH in
         amd64)
         select_prefix x86_64
@@ -133,7 +155,11 @@ for RULES_ARCH in $*; do
 
         ppc)
         select_prefix powerpc
-        CFLAGS="-msoft-float -fno-builtin-bcopy -fno-builtin-log2"
+        if [ "$unix" = "no" ]; then
+            CFLAGS="-msoft-float -fno-builtin-bcopy -fno-builtin-log2"
+        else
+            CFLAGS="-fno-builtin"
+        fi
         AS_FLAGS=
         ;;
 
@@ -155,11 +181,15 @@ for RULES_ARCH in $*; do
         AS_FLAGS="-Wa,-32"
         ;;
     esac
-    if test "$ARCH" = "$RULES_ARCH"; then
+    crosscflags $HOSTARCH $ARCH
+    if [ "$cross" = "no" ]; then
         TARGET=""
     fi
-    crosscflags $HOSTARCH $ARCH
-    OBJDIR=obj-$ARCH
+    if [ "$unix" = "yes" ]; then
+        OBJDIR=obj-unix
+    else
+        OBJDIR=obj-$ARCH
+    fi
     printf "Initializing build tree $OBJDIR..."
     rm -rf "$OBJDIR"
     mkdir "$OBJDIR"
@@ -206,16 +236,25 @@ for RULES_ARCH in $*; do
     echo "HOSTARCH?=$HOSTARCH" >> $ODIR/config.mak
     echo "CROSSCFLAGS=$CROSSCFLAGS" >> $ODIR/config.mak
     echo "VERSION=\"$VERSION\"" >> $ODIR/config.mak
+
     ln -s $SRCDIR/config/xml/rules.xml $ODIR/rules.xml
-    ln -s $SRCDIR/config/examples/${RULES_ARCH}_config.xml $ODIR/config.xml
+    echo "<?xml version=\"1.0\"?><config>" > $ODIR/config.xml
+    cat $SRCDIR/config/examples/${ARCH}_config.xml >> $ODIR/config.xml
+    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
+
+    echo "</config>" >> $ODIR/config.xml
     ln -s ../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 $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
+    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."
 
     grep CONFIG_MOL $ODIR/forth/config.fs >/dev/null && ( \
-- 
1.5.6.5

