Makefile 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # $Id$
  2. #-
  3. # This file is part of the OpenADK project. OpenADK is copyrighted
  4. # material, please see the LICENCE file in the top-level directory.
  5. include $(TOPDIR)/rules.mk
  6. TARGETS:=binutils gmp mpfr gcc
  7. ifeq ($(ADK_TARGET_LIB_GLIBC),y)
  8. TARGETS+=glibc
  9. LIBC:=glibc
  10. else
  11. TARGETS+=uClibc
  12. LIBC:=uClibc
  13. endif
  14. TARGETS+=gdb
  15. DOWNLOAD:=kernel-headers-download $(patsubst %,%-download,$(TARGETS))
  16. TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS))
  17. TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
  18. all: install
  19. install: $(TARGETS_INSTALL)
  20. clean: $(TARGETS_CLEAN)
  21. download: $(DOWNLOAD)
  22. $(LIBC)-prepare: kernel-headers-prepare
  23. binutils-prepare: $(LIBC)-prepare
  24. gcc-configure: binutils-install gmp-install mpfr-install
  25. $(LIBC)-compile: gcc-configure
  26. gcc-compile: $(LIBC)-install
  27. $(STAGING_TOOLS):
  28. @mkdir -p $(STAGING_TOOLS)/lib
  29. @mkdir -p $(STAGING_TOOLS)/include
  30. @mkdir -p $(STAGING_TOOLS)/$(REAL_GNU_TARGET_NAME)
  31. @ln -sf ../lib $(STAGING_TOOLS)/$(REAL_GNU_TARGET_NAME)/lib
  32. $(TOOLCHAIN_BUILD_DIR):
  33. @mkdir -p $(TOOLCHAIN_BUILD_DIR)
  34. %-download:
  35. $(TRACE) toolchain/$(patsubst %-download,%,$@)/download
  36. $(MAKE) -C $(patsubst %-download,%,$@) fetch
  37. %-prepare: $(STAGING_TOOLS) $(TOOLCHAIN_BUILD_DIR)
  38. $(TRACE) toolchain/$(patsubst %-prepare,%,$@)/prepare
  39. @if test x"$(patsubst %-prepare,%,$@)" = x"$(LIBC)"; then \
  40. $(MAKE) -C $(patsubst %-prepare,%,$@) prepare \
  41. $(MAKE_TRACE); \
  42. else \
  43. $(MAKE) -C $(patsubst %-prepare,%,$@) prepare \
  44. CC='$(HOSTCC)' CFLAGS='$(HOSTCFLAGS)' \
  45. $(MAKE_TRACE); \
  46. fi
  47. %-configure: %-prepare
  48. $(TRACE) toolchain/$(patsubst %-configure,%,$@)/configure
  49. @if test x"$(patsubst %-configure,%,$@)" = x"$(LIBC)"; then \
  50. $(MAKE) -C $(patsubst %-configure,%,$@) configure \
  51. $(MAKE_TRACE); \
  52. else \
  53. $(MAKE) -C $(patsubst %-configure,%,$@) configure \
  54. CC='$(HOSTCC)' CFLAGS='$(HOSTCFLAGS)' \
  55. $(MAKE_TRACE); \
  56. fi
  57. %-compile: %-configure
  58. $(TRACE) toolchain/$(patsubst %-compile,%,$@)/compile
  59. @if test x"$(patsubst %-compile,%,$@)" = x"$(LIBC)"; then \
  60. $(MAKE) -C $(patsubst %-compile,%,$@) compile \
  61. $(MAKE_TRACE); \
  62. else \
  63. $(MAKE) -C $(patsubst %-compile,%,$@) compile \
  64. CC='$(HOSTCC)' CFLAGS='$(HOSTCFLAGS)' \
  65. $(MAKE_TRACE); \
  66. fi
  67. %-install: %-compile
  68. $(TRACE) toolchain/$(patsubst %-install,%,$@)/install
  69. @if test x"$(patsubst %-install,%,$@)" = x"$(LIBC)"; then \
  70. $(MAKE) -C $(patsubst %-install,%,$@) install \
  71. $(MAKE_TRACE); \
  72. else \
  73. $(MAKE) -C $(patsubst %-install,%,$@) install \
  74. CC='$(HOSTCC)' CFLAGS='$(HOSTCFLAGS)' \
  75. $(MAKE_TRACE); \
  76. fi
  77. %-clean:
  78. $(TRACE) toolchain/$(patsubst %-clean,%,$@)/clean
  79. @$(MAKE) -C $(patsubst %-clean,%,$@) clean $(MAKE_TRACE)