1#
2# Copyright (C) 2008-2009 Industrie Dial Face S.p.A.
3#               Luigi 'Comio' Mantellini <luigi.mantellini@idf-hit.com>
4# Copyright (C) 2006-2008 OpenWrt.org
5#
6# This is free software, licensed under the GNU General Public License v2.
7# See /LICENSE for more information.
8#
9
10include $(TOPDIR)/rules.mk
11include $(INCLUDE_DIR)/kernel.mk
12include $(INCLUDE_DIR)/host.mk
13include $(INCLUDE_DIR)/version.mk
14
15override MAKEFLAGS=
16
17TOOLCHAIN_NAME:=$(VERSION_DIST)-Toolchain-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))_gcc-$(GCCV)$(DIR_SUFFIX).$(HOST_OS)-$(HOST_ARCH)
18TOOLCHAIN_BUILD_DIR:=$(BUILD_DIR)/$(TOOLCHAIN_NAME)
19EXCLUDE_DIRS:=*/ccache \
20	*/initial \
21	*/stamp \
22	*/stampfiles \
23	*/man \
24	*/info
25
26all: compile
27
28TOOLCHAIN_PREFIX:=$(TOOLCHAIN_BUILD_DIR)/toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)$(DIR_SUFFIX)
29
30$(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2: clean
31	mkdir -p $(TOOLCHAIN_BUILD_DIR)
32	$(TAR) -cf - -C $(TOPDIR)/staging_dir/  \
33	       $(foreach exclude,$(EXCLUDE_DIRS),--exclude="$(exclude)") \
34	       toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)$(DIR_SUFFIX) | \
35	       $(TAR) -xf - -C $(TOOLCHAIN_BUILD_DIR)
36
37	$(CP)  $(TOPDIR)/LICENSE ./files/README.TOOLCHAIN \
38		$(TOOLCHAIN_BUILD_DIR)/
39
40	$(CP) ./files/wrapper.sh $(TOOLCHAIN_PREFIX)/bin/$(REAL_GNU_TARGET_NAME)-wrapper.sh
41	chmod +x $(TOOLCHAIN_PREFIX)/bin/$(REAL_GNU_TARGET_NAME)-wrapper.sh
42	(cd $(TOOLCHAIN_PREFIX)/bin; \
43		for app in cc gcc g++ c++ cpp ld as ; do \
44			[ -f $(REAL_GNU_TARGET_NAME)-$${app} ] && mv $(REAL_GNU_TARGET_NAME)-$${app} $(REAL_GNU_TARGET_NAME)-$${app}.bin ; \
45			ln -sf $(REAL_GNU_TARGET_NAME)-wrapper.sh $(REAL_GNU_TARGET_NAME)-$${app} ; \
46		done; \
47	)
48
49	@-( \
50		find \
51			$(TOOLCHAIN_BUILD_DIR)/*/bin \
52			$(TOOLCHAIN_BUILD_DIR)/*/*/bin \
53			$(TOOLCHAIN_BUILD_DIR)/*/libexec \
54			-type f; \
55	) | xargs strip 2>/dev/null >/dev/null
56
57	echo REVISION:="$(REVISION)" > $(TOOLCHAIN_BUILD_DIR)/version.mk
58	find $(TOOLCHAIN_BUILD_DIR) -name .git | $(XARGS) rm -rf
59	find $(TOOLCHAIN_BUILD_DIR) -name .svn | $(XARGS) rm -rf
60	find $(TOOLCHAIN_BUILD_DIR) -name CVS | $(XARGS) rm -rf
61	(cd $(BUILD_DIR); \
62		tar cfj $@ $(TOOLCHAIN_NAME); \
63	)
64
65download:
66prepare:
67compile: $(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2
68install: compile
69
70clean:
71	rm -rf $(TOOLCHAIN_BUILD_DIR) $(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2
72