diff options
author | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2013-12-26 19:59:50 +0100 |
---|---|---|
committer | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2013-12-26 19:59:50 +0100 |
commit | 70e07d993dd411eb26a0ed0f620421430595e33f (patch) | |
tree | 1ab29fbf56cdc15c3918da1a28cfc63ae500c48a /mk | |
parent | 661c99a49330b8c4b5083e8f5b6aec07871bf056 (diff) | |
download | embtoolkit-70e07d993dd411eb26a0ed0f620421430595e33f.tar.gz embtoolkit-70e07d993dd411eb26a0ed0f620421430595e33f.tar.bz2 embtoolkit-70e07d993dd411eb26a0ed0f620421430595e33f.tar.xz |
Toolchain: eglibc: save build time by avoiding gcc 3 stages
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'mk')
-rw-r--r-- | mk/eglibc.mk | 95 | ||||
-rw-r--r-- | mk/toolchain.mk | 10 |
2 files changed, 13 insertions, 92 deletions
diff --git a/mk/eglibc.mk b/mk/eglibc.mk index d002088..f9fa4eb 100644 --- a/mk/eglibc.mk +++ b/mk/eglibc.mk @@ -29,13 +29,6 @@ EGLIBC_SVN_SITE := http://www.eglibc.org/svn EGLIBC_SRC_DIR := $(call __embtk_pkg_localsvn,eglibc) EGLIBC_BUILD_DIR := $(embtk_toolsb)/eglibc-build -EGLIBC_HEADERS_NAME := eglibc_headers -EGLIBC_HEADERS_VERSION := $(EGLIBC_VERSION) -EGLIBC_HEADERS_SVN_SITE := $(EGLIBC_SVN_SITE) -EGLIBC_HEADERS_SRC_DIR := $(EGLIBC_SRC_DIR) -EGLIBC_HEADERS_BUILD_DIR := $(embtk_toolsb)/eglibc-headers-build -EGLIBC_HEADERS_KCONFIGS_NAME := EGLIBC - __embtk_eglibc_cflags := $(filter-out $(__clang_cflags),$(TARGET_CFLAGS)) __embtk_eglibc_cflags += $(EMBTK_TARGET_MCPU) __embtk_eglibc_cflags += $(EMBTK_TARGET_ABI) $(EMBTK_TARGET_FLOAT_CFLAGS) @@ -44,8 +37,7 @@ __embtk_eglibc_cflags += $(EMBTK_TARGET_MARCH) -pipe embtk_eglibc_cflags := $(subst -O0,-O1,$(__embtk_eglibc_cflags)) # Hard or soft floating point in eglibc? -embtk_eglibc_floattype := $(if $(CONFIG_EMBTK_SOFTFLOAT), \ - --with-fp=no,--with-fp=yes) +embtk_eglibc_floattype := $(if $(CONFIG_EMBTK_SOFTFLOAT),--with-fp=no,--with-fp=yes) # Versioning in eglibc embtk_eglibc_versioning-$(CONFIG_EMBTK_EGLIBC_DISABLE_VERSIONING) := \ @@ -55,7 +47,6 @@ embtk_eglibc-sunrpc-$(CONFIG_KEMBTK_EGLIBC_OPTION_EGLIBC_SUNRPC) := \ embtk_eglibc_optgroups_f := $(EMBTK_ROOT)/mk/eglibc/eglibc-$(EGLIBC_VERSION)-options.mk eglibc_optgroups_f := $(EGLIBC_BUILD_DIR)/option-groups.config -eglibc_headers_optgroups_f := $(EGLIBC_HEADERS_BUILD_DIR)/option-groups.config ifeq ($(embtk_buildhost_os_type),bsd) embtk_eglibc_buildcflags := -I/usr/local/include @@ -63,71 +54,6 @@ embtk_eglibc_buildldflags := -L/usr/local/lib -lintl endif # -# Install dummy eglibc needed to build gcc stage 2 -# -define __embtk_install_eglibc_dummy - $(TARGETGCC) -nostdlib -nostartfiles -shared -x c /dev/null \ - -o $(embtk_sysroot)/$(LIBDIR)/libc.so.6 - echo '/* GNU ld script - Dummy eglibc linker script. */' \ - > $(embtk_sysroot)/usr/$(LIBDIR)/libc.so - $(TARGETGCC) -Wl,--verbose 2>&1 | sed -n '/OUTPUT_FORMAT/,/)/p' \ - >> $(embtk_sysroot)/usr/$(LIBDIR)/libc.so - echo 'GROUP(AS_NEEDED(libc.so.6))' \ - >> $(embtk_sysroot)/usr/$(LIBDIR)/libc.so -endef - -# -# eglibc headers install -# - -define embtk_configure_eglibc_headers - cd $(EGLIBC_HEADERS_BUILD_DIR); \ - BUILD_CC=$(HOSTCC_CACHED) \ - CFLAGS="$(embtk_eglibc_cflags)" \ - CC=$(TARGETGCC) \ - CXX=$(TARGETGCXX) \ - AR=$(TARGETAR) \ - RANLIB=$(TARGETRANLIB) \ - READELF=$(TARGETREADELF) \ - NM=$(TARGETNM) \ - OBJCOPY=$(TARGETOBJCOPY) \ - OBJDUMP=$(TARGETDUMP) \ - $(CONFIG_EMBTK_SHELL) $(EGLIBC_SRC_DIR)/libc/configure \ - --prefix=/usr --with-headers=$(embtk_sysroot)/usr/include \ - --host=$(STRICT_GNU_TARGET) \ - --target=$(STRICT_GNU_TARGET) \ - --build=$(HOST_BUILD) \ - $(embtk_eglibc_floattype) --disable-profile --without-gd --without-cvs \ - --enable-add-ons --enable-kernel="2.6.27" \ - $(embtk_eglibc_versioning-y) \ - $(embtk_eglibc-sunrpc-y) \ - --with-bugurl=$(EMBTK_BUGURL) - touch $(call __embtk_pkg_dotconfigured_f,eglibc_headers) -endef - -define __embtk_install_eglibc_headers - $(call embtk_pinfo,"Installing eglibc headers...") - $(call embtk_download_pkg,eglibc) - touch `find $(EGLIBC_SRC_DIR) -name configure` - $(embtk_parse_eglibc_optgroups) - $(embtk_configure_eglibc_headers) - $(MAKE) -C $(EGLIBC_HEADERS_BUILD_DIR) install-headers \ - install_root=$(embtk_sysroot) install-bootstrap-headers=yes && \ - $(MAKE) -C $(EGLIBC_HEADERS_BUILD_DIR) csu/subdir_lib - cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crt1.o $(embtk_sysroot)/usr/$(LIBDIR)/ - cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crti.o $(embtk_sysroot)/usr/$(LIBDIR)/ - cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crtn.o $(embtk_sysroot)/usr/$(LIBDIR)/ - $(__embtk_install_eglibc_dummy) - touch $(call __embtk_pkg_dotinstalled_f,eglibc_headers) - $(call __embtk_pkg_gen_dotkconfig_f,eglibc_headers) -endef - -define embtk_install_eglibc_headers - $(if $(call __embtk_pkg_installed-y,eglibc_headers),true, \ - $(__embtk_install_eglibc_headers)) -endef - -# # eglibc install # @@ -160,6 +86,9 @@ endef define __embtk_install_eglibc $(call embtk_pinfo,"Installing eglibc...") + $(call embtk_download_pkg,eglibc) + touch `find $(EGLIBC_SRC_DIR) -name configure` + $(embtk_parse_eglibc_optgroups) $(embtk_configure_eglibc) PATH=$(PATH):$(embtk_tools)/bin/ $(MAKE) -C $(EGLIBC_BUILD_DIR) $(J) \ BUILD_CFLAGS="$(embtk_eglibc_buildcflags)" \ @@ -184,10 +113,6 @@ define embtk_cleanup_eglibc rm -rf $(EGLIBC_BUILD_DIR) endef -define embtk_cleanup_eglibc_headers - rm -rf $(EGLIBC_HEADERS_BUILD_DIR) -endef - # # options groups parsing # @@ -195,11 +120,9 @@ __embtk_get_eglibc_optgroups = grep "CONFIG_KEMBTK_EGLIBC_" $(EMBTK_DOTCONFIG) \ | sed -e 's/CONFIG_KEMBTK_EGLIBC_*//g' | sed -e 's/"//g' define embtk_parse_eglibc_optgroups mkdir -p $(EGLIBC_BUILD_DIR) - mkdir -p $(EGLIBC_HEADERS_BUILD_DIR) - cat $(embtk_eglibc_optgroups_f) > $(eglibc_headers_optgroups_f) - echo "###############################" >> $(eglibc_headers_optgroups_f) - echo "# From embtk-$(EMBTK_VERSION) #" >> $(eglibc_headers_optgroups_f) - echo "###############################" >> $(eglibc_headers_optgroups_f) - $(__embtk_get_eglibc_optgroups) >> $(eglibc_headers_optgroups_f) - cp $(eglibc_headers_optgroups_f) $(eglibc_optgroups_f) + cat $(embtk_eglibc_optgroups_f) > $(eglibc_optgroups_f) + echo "###############################" >> $(eglibc_optgroups_f) + echo "# From embtk-$(EMBTK_VERSION) #" >> $(eglibc_optgroups_f) + echo "###############################" >> $(eglibc_optgroups_f) + $(__embtk_get_eglibc_optgroups) >> $(eglibc_optgroups_f) endef diff --git a/mk/toolchain.mk b/mk/toolchain.mk index f46ede2..6161007 100644 --- a/mk/toolchain.mk +++ b/mk/toolchain.mk @@ -155,14 +155,12 @@ AUTOTOOLS_INSTALL += automake_install # GNU sed include mk/gsed.mk -__toolchain_gsed-y := $(if $(findstring bsd,$(embtk_buildhost_os_type)),gsed_install) # BSD make include mk/bmake.mk # GNU make include mk/gmake.mk -__toolchain_gmake-y := $(if $(findstring bsd,$(embtk_buildhost_os_type)),gmake_install) # Toolchain internals __xtools_compiler-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) := clangllvm-$(LLVM_VERSION) @@ -178,9 +176,10 @@ TOOLCHAIN_BUILD_DIR := $(TOOLCHAIN_DIR) TOOLCHAIN_SRC_DIR := $(TOOLCHAIN_DIR) TOOLCHAIN_PRE_DEPS-y := ccache_install $(AUTOTOOLS_INSTALL) -TOOLCHAIN_PRE_DEPS-y += $(__toolchain_gsed-y) $(__toolchain_gmake-y) -TOOLCHAIN_PRE_DEPS-y += $(if $(CONFIG_EMBTK_TOOLCHAIN_PREDEP_GPERF_HOST), \ - gperf_host_install) +ifeq ($(embtk_buildhost_os_type),bsd) +TOOLCHAIN_PRE_DEPS-y += gsed_install gmake_install +endif +TOOLCHAIN_PRE_DEPS-$(CONFIG_EMBTK_TOOLCHAIN_PREDEP_GPERF_HOST) += gperf_host_install __gcc3_toolchain-$(CONFIG_EMBTK_GCC_ONLY_TOOLCHAIN) := gcc3_install __gcc3_toolchain-$(CONFIG_EMBTK_GCC_DEFAULT_TOOLCHAIN) := gcc3_install @@ -205,7 +204,6 @@ TOOLCHAIN_DEPS-y := linux_headers_install gmp_host_install TOOLCHAIN_DEPS-y += mpfr_host_install mpc_host_install binutils_install TOOLCHAIN_DEPS-$(CONFIG_EMBTK_HAVE_LLVM) += llvm_install TOOLCHAIN_DEPS-y += gcc1_install -TOOLCHAIN_DEPS-$(CONFIG_EMBTK_CLIB_EGLIBC) += $(embtk_clib)_headers_install gcc2_install TOOLCHAIN_DEPS-$(CONFIG_EMBTK_CLIB_UCLIBC) += $(embtk_clib)_headers_install gcc2_install TOOLCHAIN_DEPS-y += $(embtk_clib)_install TOOLCHAIN_DEPS-y += $(__gcc3_toolchain-y) $(__llvm_compiler-rt-y) |