aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc/initial
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-07-20 20:57:21 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-07-20 20:57:21 +0000
commit5149ed151d7ce6f4bdb14a7ad5611777afff1091 (patch)
tree3b9f21234bfd8744d1204b1f2d06b607c001a0e3 /toolchain/gcc/initial
parentebeaea35fda9f26a12beb7ec9101dd7624356d8c (diff)
downloadupstream-5149ed151d7ce6f4bdb14a7ad5611777afff1091.tar.gz
upstream-5149ed151d7ce6f4bdb14a7ad5611777afff1091.tar.bz2
upstream-5149ed151d7ce6f4bdb14a7ad5611777afff1091.zip
gcc: split up the build process into three distinct stages (minimal, initial, final), to clean up the dependency handling nastiness and to improve support for rebuilding parts of the toolchain
SVN-Revision: 22319
Diffstat (limited to 'toolchain/gcc/initial')
-rw-r--r--toolchain/gcc/initial/Makefile32
1 files changed, 32 insertions, 0 deletions
diff --git a/toolchain/gcc/initial/Makefile b/toolchain/gcc/initial/Makefile
new file mode 100644
index 0000000000..8cc6b3be14
--- /dev/null
+++ b/toolchain/gcc/initial/Makefile
@@ -0,0 +1,32 @@
+GCC_VARIANT:=initial
+
+include ../common.mk
+
+GCC_CONFIGURE += \
+ --with-newlib \
+ --with-sysroot=$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev \
+ --enable-languages=c \
+ --disable-shared \
+ --disable-threads \
+
+define Host/Compile
+ $(CP) $(BUILD_DIR_TOOLCHAIN)/linux-dev/* $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/
+ $(GCC_MAKE) -C $(GCC_BUILD_DIR) \
+ all-build-libiberty \
+ all-gcc \
+ $(if $(GCC_BUILD_TARGET_LIBGCC),all-target-libgcc)
+endef
+
+define Host/Install
+ $(GCC_MAKE) -C $(GCC_BUILD_DIR) \
+ install-gcc \
+ $(if $(GCC_BUILD_TARGET_LIBGCC),install-target-libgcc)
+
+ # XXX: glibc insists on linking against libgcc_eh
+ ( cd $(TOOLCHAIN_DIR)/usr/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) ; \
+ [ -e libgcc_eh.a ] || ln -sf libgcc.a libgcc_eh.a ; \
+ cp libgcc.a libgcc_initial.a; \
+ )
+endef
+
+$(eval $(call HostBuild))