summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2009-05-16 00:53:20 +0200
committerAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2009-05-16 00:53:20 +0200
commitc89a30c2ce2c40b5fdbb84a543857c4b5cdb7567 (patch)
tree3a460b6fb4fbd866aac35d7a8617f14716a47031
parentc3bedde72e98d23fa3f6ff1b9fe8f5b1a0e68f6a (diff)
downloadembtoolkit-c89a30c2ce2c40b5fdbb84a543857c4b5cdb7567.tar.gz
embtoolkit-c89a30c2ce2c40b5fdbb84a543857c4b5cdb7567.tar.bz2
embtoolkit-c89a30c2ce2c40b5fdbb84a543857c4b5cdb7567.tar.xz
Toolchain: Introduction of eglibc headers install and gcc second stage build and install
Signed-off-by: Abdoulaye Walsimou Gaye <walsimou@walsimou.com>
-rw-r--r--mk/eglibc.mk53
-rw-r--r--mk/gcc.mk8
-rw-r--r--mk/toolchain.mk6
3 files changed, 62 insertions, 5 deletions
diff --git a/mk/eglibc.mk b/mk/eglibc.mk
index 3e10924..5d2d45e 100644
--- a/mk/eglibc.mk
+++ b/mk/eglibc.mk
@@ -21,3 +21,56 @@
# \author GAYE Abdoulaye Walsimou, <walsimou@walsimou.com>
# \date May 2009
#########################################################################################
+EGLIBC_VERSION := $(subst ",,$(strip $(CONFIG_EMBTK_EGLIBC_VERSION_STRING)))
+EGLIBC_SITE := http://www.eglibc.org
+EGLIBC_PACKAGE := eglibc-$(EGLIBC_VERSION).tar.bz2
+EGLIBC_HEADERS_BUILD_DIR := $(TOOLS_BUILD)/eglibc-headers
+EGLIBC_BUILD_DIR := $(TOOLS_BUILD)/eglibc
+
+#Hard or soft floating point
+ifeq ($(CONFIG_EMBTK_SOFTFLOAT),y)
+EGLIBC_FLOAT_TYPE := "--with-fp=no"
+else
+EGLIBC_FLOAT_TYPE := "--with-fp=yes"
+endif
+
+eglibc-headers_install: $(EGLIBC_HEADERS_BUILD_DIR)/.installed
+
+$(EGLIBC_HEADERS_BUILD_DIR)/.installed: eglibc_download $(EGLIBC_HEADERS_BUILD_DIR)/.decompressed \
+ $(EGLIBC_HEADERS_BUILD_DIR)/.configured
+ $(call INSTALL_MESSAGE,"headers eglibc-$(EGLIBC_VERSION)")
+ $(MAKE) -C $(EGLIBC_HEADERS_BUILD_DIR) install-headers install_root=$(SYSROOT) \
+ install-bootstrap-headers=yes && \
+ $(MAKE) -C $(EGLIBC_HEADERS_BUILD_DIR) csu/subdir_lib
+ @cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crt1.o $(SYSROOT)/usr/lib/
+ @cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crti.o $(SYSROOT)/usr/lib/
+ @cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crtn.o $(SYSROOT)/usr/lib/
+ $(TOOLS)/bin/$(GNU_TARGET)-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o \
+ $(SYSROOT)/usr/lib/libc.so
+ @touch $@
+
+eglibc_download:
+ @echo "downloading eglibc"
+
+$(EGLIBC_HEADERS_BUILD_DIR)/.decompressed:
+ $(call DECOMPRESS_MESSAGE,$(EGLIBC_PACKAGE))
+ @tar -C $(TOOLS_BUILD) -xjf $(DOWNLOAD_DIR)/$(EGLIBC_PACKAGE)
+ @cp -R $(TOOLS_BUILD)/eglibc-$(EGLIBC_VERSION)/ports \
+ $(TOOLS_BUILD)/eglibc-$(EGLIBC_VERSION)/libc/
+ @mkdir -p $(EGLIBC_HEADERS_BUILD_DIR)
+ @mkdir -p $(EGLIBC_BUILD_DIR)
+ @touch $@
+
+$(EGLIBC_HEADERS_BUILD_DIR)/.configured:
+ $(call CONFIGURE_MESSAGE,eglibc-$(EGLIBC_VERSION))
+ @cd $(EGLIBC_HEADERS_BUILD_DIR); BUILD_CC=gcc \
+ CC=$(TOOLS)/bin/$(GNU_TARGET)-gcc \
+ CXX=$(TOOLS)/bin/$(GNU_TARGET)-g++ \
+ AR=$(TOOLS)/bin/$(GNU_TARGET)-ar \
+ RANLIB=$(TOOLS)/bin/$(GNU_TARGET)-ranlib \
+ $(TOOLS_BUILD)/eglibc-$(EGLIBC_VERSION)/libc/configure --prefix=/usr \
+ --with-headers=$(SYSROOT)/usr/include \
+ --host=$(GNU_TARGET) --build=$(HOST_BUILD) $(EGLIBC_FLOAT_TYPE) --disable-nls \
+ --disable-profile --without-gd --without-cvs --enable-add-ons
+ @touch $@
+
diff --git a/mk/gcc.mk b/mk/gcc.mk
index b1bcd83..d8489a3 100644
--- a/mk/gcc.mk
+++ b/mk/gcc.mk
@@ -31,9 +31,9 @@ GCC3_BUILD_DIR := $(TOOLS_BUILD)/gcc3
#Hard or soft floating point
ifeq ($(CONFIG_EMBTK_SOFTFLOAT),y)
-FLOAT_TYPE := soft
+GCC_FLOAT_TYPE := soft
else
-FLOAT_TYPE := hard
+GCC_FLOAT_TYPE := hard
endif
gcc1_install: $(GCC1_BUILD_DIR)/.built
@@ -60,7 +60,7 @@ $(GCC1_BUILD_DIR)/.configured:
$(call CONFIGURE_MESSAGE,gcc-$(GCC_VERSION))
@cd $(GCC1_BUILD_DIR); $(TOOLS_BUILD)/gcc-$(GCC_VERSION)/configure \
--prefix=$(TOOLS) --with-sysroot=$(SYSROOT) --target=$(GNU_TARGET) \
- --with-arch=$(GNU_TARGET_ARCH) --with-float=$(FLOAT_TYPE) \
+ --with-arch=$(GNU_TARGET_ARCH) --with-float=$(GCC_FLOAT_TYPE) \
--host=$(HOST_ARCH) --build=$(HOST_BUILD) \
--without-headers --with-newlib --disable-shared --disable-threads \
--disable-libssp --disable-libgomp --disable-libmudflap --disable-nls \
@@ -78,7 +78,7 @@ $(GCC2_BUILD_DIR)/.configured:
@mkdir -p $(GCC2_BUILD_DIR)
@cd $(GCC2_BUILD_DIR); $(TOOLS_BUILD)/gcc-$(GCC_VERSION)/configure \
--prefix=$(TOOLS) --with-sysroot=$(SYSROOT) --target=$(GNU_TARGET) \
- --with-arch=$(GNU_TARGET_ARCH) --with-float=$(FLOAT_TYPE) \
+ --with-arch=$(GNU_TARGET_ARCH) --with-float=$(GCC_FLOAT_TYPE) \
--host=$(HOST_ARCH) --build=$(HOST_BUILD) \
--disable-libssp --disable-libgomp --disable-libmudflap \
--enable-languages=c --with-gmp=$(GMP_HOST_DIR) \
diff --git a/mk/toolchain.mk b/mk/toolchain.mk
index 4bae83f..150c029 100644
--- a/mk/toolchain.mk
+++ b/mk/toolchain.mk
@@ -37,6 +37,10 @@ include $(EMBTK_ROOT)/mk/gcc.mk
#linux kernel headers
include $(EMBTK_ROOT)/mk/kernel-headers.mk
+#EGLIBC
+include $(EMBTK_ROOT)/mk/eglibc.mk
+
#targets
-buildtoolchain: gmphost_install mpfrhost_install binutils_install gcc1_install
+buildtoolchain: gmphost_install mpfrhost_install binutils_install gcc1_install \
+ eglibc-headers_install gcc2_install