summaryrefslogtreecommitdiff
path: root/mk/gcc.mk
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2009-05-15 00:39:11 +0200
committerAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2009-05-15 00:39:11 +0200
commit685173f82604a41ba7d9a5bc0ff6cf39c4745360 (patch)
tree0a6c046674594fccd2b01e9ac1a3a96503002936 /mk/gcc.mk
parent90200724841624af2904daab36cf3f39610f3582 (diff)
downloadembtoolkit-685173f82604a41ba7d9a5bc0ff6cf39c4745360.tar.gz
embtoolkit-685173f82604a41ba7d9a5bc0ff6cf39c4745360.tar.bz2
embtoolkit-685173f82604a41ba7d9a5bc0ff6cf39c4745360.tar.xz
Toolchain: gcc: first and second stage target
Signed-off-by: Abdoulaye Walsimou Gaye <walsimou@walsimou.com>
Diffstat (limited to 'mk/gcc.mk')
-rw-r--r--mk/gcc.mk62
1 files changed, 62 insertions, 0 deletions
diff --git a/mk/gcc.mk b/mk/gcc.mk
index 22ab26e..df5539f 100644
--- a/mk/gcc.mk
+++ b/mk/gcc.mk
@@ -21,3 +21,65 @@
# \author GAYE Abdoulaye Walsimou, <walsimou@walsimou.com>
# \date May 2009
#########################################################################################
+
+GCC_VERSION := $(subst ",,$(strip $(CONFIG_EMBTK_GCC_VERSION_STRING)))
+GCC_SITE := ftp://ftp.lip6.fr/pub/gcc/releases/gcc-$(GCC_VERSION)
+GCC_PACKAGE := gcc-$(GCC_VERSION).tar.bz2
+GCC1_BUILD_DIR := $(TOOLS_BUILD)/gcc1
+GCC2_BUILD_DIR := $(TOOLS_BUILD)/gcc2
+GCC3_BUILD_DIR := $(TOOLS_BUILD)/gcc3
+
+#Hard or soft floating point
+ifeq ($(CONFIG_EMBTK_SOFTFLOAT),y)
+FLOAT_TYPE := soft
+else
+FLOAT_TYPE := hard
+endif
+
+gcc1_install: $(GCC1_BUILD_DIR)/.built
+
+gcc2_install: $(GCC2_BUILD_DIR)/.built
+
+#GCC first stage
+$(GCC1_BUILD_DIR)/.built: download_gcc $(GCC1_BUILD_DIR)/.decompressed \
+ $(GCC1_BUILD_DIR)/.configured
+ @cd $(GCC1_BUILD_DIR) && make && make install
+ @touch $@
+download_gcc:
+ @test -e $(DOWNLOAD_DIR)/$(GCC_PACKAGE) || \
+ wget -O $(DOWNLOAD_DIR)/$(GCC_PACKAGE) $(GCC_SITE)/$(GCC_PACKAGE)
+
+$(GCC1_BUILD_DIR)/.decompressed:
+ $(call DECOMPRESS_MESSAGE,$(GCC_PACKAGE))
+ @tar -C $(TOOLS_BUILD) -xjf $(DOWNLOAD_DIR)/$(GCC_PACKAGE)
+ @mkdir -p $(GCC1_BUILD_DIR)
+ @touch $@
+
+$(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) \
+ --host=$(HOST_ARCH) --build=$(HOST_BUILD) \
+ --without-headers --with-newlib --disable-shared --disable-threads \
+ --disable-libssp --disable-libgomp --disable-libmudflap \
+ --enable-languages=c --with-gmp=$(GMP_HOST_DIR) --with-mpfr=$(MPFR_HOST_DIR)
+ @touch $@
+
+#GCC second stage
+$(GCC2_BUILD_DIR)/.built: $(GCC2_BUILD_DIR)/.configured
+ @cd $(GCC2_BUILD_DIR) && make && make install
+ @touch $@
+
+$(GCC2_BUILD_DIR)/.configured:
+ $(call CONFIGURE_MESSAGE,gcc-$(GCC_VERSION))
+ @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) \
+ --host=$(HOST_ARCH) --build=$(HOST_BUILD) \
+ --disable-libssp --disable-libgomp --disable-libmudflap \
+ --enable-languages=c --with-gmp=$(GMP_HOST_DIR) \
+ --with-mpfr=$(MPFR_HOST_DIR)
+ @touch $@
+