Makefile 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #
  2. # Copyright (C) 2008-2009 Industrie Dial Face S.p.A.
  3. # Luigi 'Comio' Mantellini <[email protected]>
  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. include $(TOPDIR)/rules.mk
  10. include $(INCLUDE_DIR)/kernel.mk
  11. include $(INCLUDE_DIR)/version.mk
  12. override MAKEFLAGS=
  13. TOOLCHAIN_NAME:=$(VERSION_DIST_SANITIZED)-toolchain-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))_gcc-$(GCCV)$(DIR_SUFFIX).$(HOST_OS)-$(HOST_ARCH)
  14. TOOLCHAIN_BUILD_DIR:=$(BUILD_DIR)/$(TOOLCHAIN_NAME)
  15. EXCLUDE_DIRS:= \
  16. */initial \
  17. */stamp \
  18. */stampfiles \
  19. */man \
  20. */info
  21. all: compile
  22. TOOLCHAIN_PREFIX:=$(TOOLCHAIN_BUILD_DIR)/toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)$(DIR_SUFFIX)
  23. $(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2: clean
  24. mkdir -p $(TOOLCHAIN_BUILD_DIR)
  25. $(TAR) -cf - -C $(TOPDIR)/staging_dir/ \
  26. $(foreach exclude,$(EXCLUDE_DIRS),--exclude="$(exclude)") \
  27. toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)$(DIR_SUFFIX) | \
  28. $(TAR) -xf - -C $(TOOLCHAIN_BUILD_DIR)
  29. $(CP) \
  30. $(TOPDIR)/LICENSES \
  31. $(TOPDIR)/COPYING \
  32. ./files/README.TOOLCHAIN \
  33. $(TOOLCHAIN_BUILD_DIR)/
  34. $(CP) ./files/wrapper.sh $(TOOLCHAIN_PREFIX)/bin/$(REAL_GNU_TARGET_NAME)-wrapper.sh
  35. chmod +x $(TOOLCHAIN_PREFIX)/bin/$(REAL_GNU_TARGET_NAME)-wrapper.sh
  36. (cd $(TOOLCHAIN_PREFIX)/bin; \
  37. for app in cc gcc g++ c++ cpp ld as ; do \
  38. [ -f $(REAL_GNU_TARGET_NAME)-$${app} ] && mv $(REAL_GNU_TARGET_NAME)-$${app} $(REAL_GNU_TARGET_NAME)-$${app}.bin ; \
  39. ln -sf $(REAL_GNU_TARGET_NAME)-wrapper.sh $(REAL_GNU_TARGET_NAME)-$${app} ; \
  40. done; \
  41. )
  42. @-( \
  43. find \
  44. $(TOOLCHAIN_BUILD_DIR)/*/bin \
  45. $(TOOLCHAIN_BUILD_DIR)/*/*/bin \
  46. $(TOOLCHAIN_BUILD_DIR)/*/libexec \
  47. -type f; \
  48. ) | xargs strip 2>/dev/null >/dev/null
  49. echo REVISION:="$(REVISION)" > $(TOOLCHAIN_BUILD_DIR)/version.mk
  50. find $(TOOLCHAIN_BUILD_DIR) -name .git | $(XARGS) rm -rf
  51. find $(TOOLCHAIN_BUILD_DIR) -name .svn | $(XARGS) rm -rf
  52. find $(TOOLCHAIN_BUILD_DIR) -name CVS | $(XARGS) rm -rf
  53. mkdir -p $(BIN_DIR)
  54. (cd $(BUILD_DIR); \
  55. tar cfj $@ $(TOOLCHAIN_NAME); \
  56. )
  57. download:
  58. prepare:
  59. compile: $(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2
  60. install: compile
  61. clean:
  62. rm -rf $(TOOLCHAIN_BUILD_DIR) $(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2