Makefile 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #
  2. # Copyright (C) 2006 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. # Main makefile for the toolchain
  8. #
  9. include $(TOPDIR)/rules.mk
  10. TARGETS-y:=kernel-headers
  11. TARGETS-$(CONFIG_GDB) += gdb
  12. ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
  13. TARGETS-y+=binutils gcc uClibc
  14. endif
  15. TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y))
  16. TARGETS_PREPARE:=$(patsubst %,%-prepare,$(TARGETS-y))
  17. TARGETS_COMPILE:=$(patsubst %,%-compile,$(TARGETS-y))
  18. TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y))
  19. TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y))
  20. STAMP:=$(STAGING_DIR)/stampfiles/.toolchain_installed
  21. all: install
  22. download: $(TARGETS_DOWNLOAD)
  23. compile: $(TARGETS_COMPILE)
  24. install: $(STAMP)
  25. clean: $(TARGETS_CLEAN)
  26. ifneq ($(shell $(SCRIPT_DIR)/timestamp.pl -p . $(STAMP)),$(STAMP))
  27. $(STAMP): $(TARGETS_INSTALL)
  28. endif
  29. uClibc-prepare: kernel-headers-prepare
  30. ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
  31. binutils-prepare: uClibc-prepare
  32. gcc-prepare: binutils-install
  33. uClibc-compile: gcc-compile
  34. endif
  35. gcc-install: uClibc-install
  36. $(STAMP):
  37. mkdir -p $(shell dirname $@)
  38. touch $@
  39. $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME):
  40. @mkdir -p $@
  41. @ln -sf ../lib $@/lib
  42. $(TOOLCHAIN_BUILD_DIR):
  43. @mkdir -p $@
  44. %-prereq %-download %-clean: FORCE
  45. $(MAKE) -C $* $(patsubst $*-%,%,$@)
  46. %-prepare: $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) $(TOOLCHAIN_BUILD_DIR)
  47. $(MAKE) -C $* $(patsubst $*-%,%,$@)
  48. %-compile: %-prepare FORCE
  49. $(MAKE) -C $* $(patsubst $*-%,%,$@)
  50. %-install: %-compile FORCE
  51. $(MAKE) -C $* $(patsubst $*-%,%,$@)