---
 include/host-build.mk        |    1 +
 package/base-files/Makefile  |    2 +-
 package/kexec-tools/Makefile |    2 +-
 rules.mk                     |    4 ++--
 toolchain/Config.in          |   13 +++++++++++++
 toolchain/Config.version     |   15 +++++++++++++++
 toolchain/Makefile           |    4 ++++
 toolchain/binutils/Makefile  |    2 +-
 toolchain/gcc/Makefile       |    8 ++++++--
 toolchain/uClibc/Config.in   |    4 ++--
 toolchain/uClibc/Makefile    |    2 +-
 11 files changed, 47 insertions(+), 10 deletions(-)
 create mode 100644 toolchain/Config.version

diff --git a/include/host-build.mk b/include/host-build.mk
index 8a8d6de..7b3356d 100644
--- a/include/host-build.mk
+++ b/include/host-build.mk
@@ -82,6 +82,7 @@ define Download/default
   FILE:=$(PKG_SOURCE)
   URL:=$(PKG_SOURCE_URL)
   PROTO:=$(PKG_SOURCE_PROTO)
+  SUBDIR:=$(PKG_SOURCE_SUBDIR)
   VERSION:=$(PKG_SOURCE_VERSION)
   MD5SUM:=$(PKG_MD5SUM)
 endef
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index bec33c8..17422c4 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -88,7 +88,7 @@ endef
 define Package/uclibc/Default
   SECTION:=libs
   CATEGORY:=Base system
-  DEPENDS:[EMAIL PROTECTED]
+  DEPENDS:[EMAIL PROTECTED]&&@USE_UCLIBC
   URL:=http://uclibc.org/
   VERSION:=$(UCLIBC_VERSION)$(UCLIBC_PATCHVER)-$(PKG_RELEASE)
 endef
diff --git a/package/kexec-tools/Makefile b/package/kexec-tools/Makefile
index 951d41a..34def60 100644
--- a/package/kexec-tools/Makefile
+++ b/package/kexec-tools/Makefile
@@ -37,7 +37,7 @@ define Package/kexec-tools/config
 endef
 
 CONFIGURE_ARGS = \
-               --target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-uclibc \
+               
--target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-$(CONFIG_TARGET_SUFFIX) \
                --host=$(GNU_TARGET_NAME)-uclibc \
                --build=$(GNU_HOST_NAME) \
                --program-prefix="" \
diff --git a/rules.mk b/rules.mk
index 7153a04..a86d8f5 100644
--- a/rules.mk
+++ b/rules.mk
@@ -57,9 +57,9 @@ IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg
 
 ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
   -include $(TOOLCHAIN_DIR)/info.mk
-  REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if 
$(CONFIG_EABI_SUPPORT),gnueabi)
+  REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-$(CONFIG_TARGET_SUFFIX)$(if 
$(CONFIG_EABI_SUPPORT),gnueabi)
   GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
-  TARGET_CROSS:=$(if 
$(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if 
$(CONFIG_EABI_SUPPORT),gnueabi)-)
+  TARGET_CROSS:=$(if 
$(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-linux-$(CONFIG_TARGET_SUFFIX)$(if
 $(CONFIG_EABI_SUPPORT),gnueabi)-)
 endif
 
 
TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(STAGING_DIR_HOST)/bin:$(STAGING_DIR)/host/bin:$(PATH)
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 1a465f5..6ecddf4 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -41,6 +41,18 @@ menuconfig EXTRA_TARGET_ARCH
 
 source "toolchain/binutils/Config.in"
 source "toolchain/gcc/Config.in"
+
+choice
+       prompt "LIBC implementation" if TOOLCHAINOPTS
+       default USE_UCLIBC
+       help
+           Select the LIBC implementation between uClibc and... uClibc.
+
+        config USE_UCLIBC
+           bool "Use uClibC"
+endchoice
+
+
 source "toolchain/uClibc/Config.in"
 
 config GDB
@@ -92,3 +104,4 @@ config TARGET_OPTIMIZATION
 
 source "toolchain/gcc/Config.version"
 source "toolchain/uClibc/Config.version"
+source "toolchain/Config.version"
diff --git a/toolchain/Config.version b/toolchain/Config.version
new file mode 100644
index 0000000..19d3eab
--- /dev/null
+++ b/toolchain/Config.version
@@ -0,0 +1,15 @@
+config USE_UCLIBC
+        bool
+        default y if !TOOLCHAINOPTS
+
+config TARGET_SUFFIX
+        string
+        default "uclibc"        if USE_UCLIBC
+        default "gnu"           if USE_EGLIBC || USE_GLIBC
+        default "uclibc"
+
+config LIBC_IMPLEMENTATION
+       string
+       default "UCLIBC"        if USE_UCLIBC
+       default "EGLIBC"        if USE_EGLIBC
+       default "GLIBC"         if USE_GLIBC
diff --git a/toolchain/Makefile b/toolchain/Makefile
index 4afcc43..8d0f91b 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -9,11 +9,14 @@
 curdir:=toolchain
 
 # subdirectories to descend into
+ifeq ($(CONFIG_USE_UCLIBC),y)
 $(curdir)/builddirs := kernel-headers $(if $(CONFIG_GDB),gdb) $(if 
$(CONFIG_NATIVE_TOOLCHAIN),,binutils gcc uClibc)
+endif
 $(curdir)/builddirs-compile:=. $(filter-out 
kernel-headers,$($(curdir)/builddirs))
 $(curdir)/builddirs-install:=$($(curdir)/builddirs-compile)
 
 # builddir dependencies
+ifeq ($(CONFIG_USE_UCLIBC),y)
 $(curdir)/uClibc/prepare:=$(curdir)/kernel-headers/prepare
 ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
   $(curdir)/binutils/prepare:=$(curdir)/uClibc/prepare
@@ -22,6 +25,7 @@ ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
   $(curdir)/gcc/install:=$(curdir)/uClibc/compile
   $(curdir)/uClibc/install:=$(curdir)/gcc/install
 endif
+endif
 
 ifneq ($(ARCH),)
   $(TOOLCHAIN_DIR)/info.mk: .config
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 8682fa5..e44d2b4 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -24,7 +24,7 @@ BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN)
 
 include $(INCLUDE_DIR)/host-build.mk
 
-EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call 
qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc)
+EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call 
qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(CONFIG_TARGET_SUFFIX))
 
 define Build/Configure
        $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index ef5ab22..0b27592 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -40,7 +40,11 @@ BUILD_DIR2:=$(BUILD_DIR_HOST)/gcc-$(PKG_VERSION)-final
 SEP:=,
 TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if 
$(CONFIG_INSTALL_LIBGCJ),$(SEP)java)"
 
-EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-biarch 
--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc)
+EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-biarch 
--enable-targets=$(call 
qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(CONFIG_TARGET_SUFFIX))
+
+ifeq ($(CONFIG_USE_UCLIBC),y)
+GCC_SYSROOT=$(BUILD_DIR_HOST)/uClibc_dev/
+endif
 
 define Stage1/Configure
        $(SED) 's,TARGET_CROSS=.*,TARGET_CROSS=$(REAL_GNU_TARGET_NAME)-,' 
$(TOOLCHAIN_DIR)/info.mk
@@ -55,7 +59,7 @@ define Stage1/Configure
                --target=$(REAL_GNU_TARGET_NAME) \
                --enable-languages=c \
                --disable-shared \
-               --with-sysroot=$(BUILD_DIR_HOST)/uClibc_dev/ \
+               --with-sysroot=$(GCC_SYSROOT) \
                --disable-__cxa_atexit \
                --enable-target-optspace \
                --with-gnu-ld \
diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in
index 6c89fd2..cb48dc0 100644
--- a/toolchain/uClibc/Config.in
+++ b/toolchain/uClibc/Config.in
@@ -1,7 +1,7 @@
 # Choose uclibc version.
 
 choice
-       prompt "uClibc Version" if TOOLCHAINOPTS
+       prompt "uClibc Version" if TOOLCHAINOPTS && USE_UCLIBC
        default UCLIBC_VERSION_0_9_29
        help
          Select the version of uClibc you wish to use.
@@ -20,7 +20,7 @@ endchoice
 
 config UCLIBC_EXTRA_VERSION
        string
-       prompt "Extra uClibc version" if TOOLCHAINOPTS
+       prompt "Extra uClibc version" if TOOLCHAINOPTS && USE_UCLIBC
        default "snapshot"   if UCLIBC_VERSION_SNAPSHOT
        default ".2"         if UCLIBC_VERSION_0_9_28
        default ""
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index e6f2b7b..5154ab6 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -50,7 +50,7 @@ STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.uclibc_installed
 STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.uclibc-utils_installed
 
 UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
-               -e 's/i.86/i386/' \
+               -e 's/i.86/x86/' \
                -e 's/sparc.*/sparc/' \
                -e 's/arm.*/arm/g' \
                -e 's/avr32.*/avr32/g' \
-- 
1.5.4.3

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to