OpenWrt – Blame information for rev 3
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # |
2 | # Copyright (C) 2006-2011 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 host tools |
||
8 | # |
||
9 | curdir:=tools |
||
10 | |||
11 | # subdirectories to descend into |
||
12 | tools-y := |
||
13 | |||
14 | ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) |
||
15 | BUILD_TOOLCHAIN := y |
||
16 | ifdef CONFIG_GCC_USE_GRAPHITE |
||
17 | BUILD_ISL = y |
||
18 | endif |
||
19 | endif |
||
20 | ifneq ($(CONFIG_SDK)$(CONFIG_PACKAGE_kmod-b43)$(CONFIG_PACKAGE_b43legacy-firmware)$(CONFIG_BRCMSMAC_USE_FW_FROM_WL),) |
||
21 | BUILD_B43_TOOLS = y |
||
22 | endif |
||
23 | |||
24 | tools-$(BUILD_TOOLCHAIN) += gmp mpfr mpc libelf expat |
||
25 | tools-y += m4 libtool autoconf automake flex bison pkg-config mklibs zlib |
||
26 | tools-y += sstrip make-ext4fs e2fsprogs mtd-utils mkimage |
||
27 | tools-y += firmware-utils patch-image quilt padjffs2 |
||
28 | tools-y += mm-macros missing-macros cmake scons bc findutils gengetopt patchelf |
||
29 | tools-y += mtools dosfstools libressl |
||
30 | tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2 |
||
31 | tools-$(CONFIG_TARGET_x86) += qemu |
||
32 | tools-$(CONFIG_TARGET_mxs) += elftosb sdimage |
||
3 | office | 33 | tools-$(CONFIG_TARGET_ar71xx) += lzma-old squashfs |
1 | office | 34 | tools-$(CONFIG_USES_MINOR) += kernel2minor |
3 | office | 35 | tools-y += lzma squashfs4 |
1 | office | 36 | tools-$(BUILD_B43_TOOLS) += b43-tools |
37 | tools-$(BUILD_ISL) += isl |
||
38 | tools-$(CONFIG_USE_SPARSE) += sparse |
||
3 | office | 39 | tools-$(CONFIG_TARGET_apm821xx) += genext2fs |
1 | office | 40 | |
41 | # builddir dependencies |
||
42 | $(curdir)/bison/compile := $(curdir)/flex/compile |
||
43 | $(curdir)/flex/compile := $(curdir)/libtool/compile |
||
44 | $(curdir)/libtool/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/automake/compile $(curdir)/missing-macros/compile |
||
45 | $(curdir)/squashfs/compile := $(curdir)/lzma-old/compile |
||
3 | office | 46 | $(curdir)/squashfs4/compile := $(curdir)/xz/compile $(curdir)/zlib/compile |
1 | office | 47 | $(curdir)/quilt/compile := $(curdir)/autoconf/compile $(curdir)/findutils/compile |
48 | $(curdir)/autoconf/compile := $(curdir)/m4/compile |
||
49 | $(curdir)/automake/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/pkg-config/compile $(curdir)/xz/compile |
||
50 | $(curdir)/gmp/compile := $(curdir)/libtool/compile |
||
51 | $(curdir)/mpc/compile := $(curdir)/mpfr/compile $(curdir)/gmp/compile |
||
52 | $(curdir)/mpfr/compile := $(curdir)/gmp/compile |
||
53 | $(curdir)/mtd-utils/compile := $(curdir)/libtool/compile $(curdir)/e2fsprogs/compile $(curdir)/zlib/compile |
||
54 | $(curdir)/mklibs/compile := $(curdir)/libtool/compile |
||
55 | $(curdir)/qemu/compile := $(curdir)/e2fsprogs/compile $(curdir)/zlib/compile |
||
56 | $(curdir)/upslug2/compile := $(curdir)/libtool/compile |
||
57 | $(curdir)/mm-macros/compile := $(curdir)/libtool/compile |
||
58 | $(curdir)/missing-macros/compile := $(curdir)/autoconf/compile |
||
59 | $(curdir)/e2fsprogs/compile := $(curdir)/libtool/compile |
||
60 | $(curdir)/libelf/compile := $(curdir)/libtool/compile |
||
61 | $(curdir)/sdcc/compile := $(curdir)/bison/compile |
||
62 | $(curdir)/b43-tools/compile := $(curdir)/bison/compile |
||
63 | $(curdir)/padjffs2/compile := $(curdir)/findutils/compile |
||
64 | $(curdir)/isl/compile := $(curdir)/gmp/compile |
||
65 | $(curdir)/bc/compile := $(curdir)/bison/compile |
||
66 | $(curdir)/findutils/compile := $(curdir)/bison/compile |
||
67 | $(curdir)/gengetopt/compile := $(curdir)/libtool/compile |
||
68 | $(curdir)/patchelf/compile := $(curdir)/libtool/compile |
||
69 | $(curdir)/dosfstools/compile := $(curdir)/autoconf/compile $(curdir)/automake/compile |
||
70 | $(curdir)/libressl/compile := $(curdir)/pkg-config/compile |
||
71 | $(curdir)/mkimage/compile += $(curdir)/libressl/compile |
||
72 | $(curdir)/firmware-utils/compile += $(curdir)/libressl/compile $(curdir)/zlib/compile |
||
73 | $(curdir)/cmake/compile += $(curdir)/libressl/compile |
||
74 | $(curdir)/zlib/compile := $(curdir)/cmake/compile |
||
75 | $(curdir)/wrt350nv2-builder/compile := $(curdir)/zlib/compile |
||
76 | $(curdir)/lzma-old/compile := $(curdir)/zlib/compile |
||
77 | $(curdir)/make-ext4fs/compile := $(curdir)/zlib/compile |
||
78 | |||
79 | ifneq ($(HOST_OS),Linux) |
||
80 | tools-y += coreutils |
||
81 | endif |
||
82 | |||
83 | ifneq ($(CONFIG_CCACHE)$(CONFIG_SDK),) |
||
84 | $(foreach tool, $(filter-out xz patch,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/ccache/compile)) |
||
85 | tools-y += ccache |
||
86 | endif |
||
87 | |||
88 | # in case there is no patch tool on the host we need to make patch tool a |
||
89 | # dependency for tools which have patches directory |
||
90 | $(foreach tool, $(tools-y), $(if $(wildcard $(curdir)/$(tool)/patches),$(eval $(curdir)/$(tool)/compile += $(curdir)/patch/compile))) |
||
91 | |||
92 | $(foreach tool, $(filter-out xz,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/xz/compile)) |
||
93 | |||
94 | # make any tool depend on tar, xz and patch to ensure that archives can be unpacked and patched properly |
||
95 | tools-core := tar xz patch |
||
96 | |||
97 | $(foreach tool, $(tools-y), $(eval $(curdir)/$(tool)/compile += $(patsubst %,$(curdir)/%/compile,$(tools-core)))) |
||
98 | tools-y += $(tools-core) |
||
99 | |||
100 | # make core tools depend on sed and flock |
||
3 | office | 101 | $(foreach tool, $(tools-core), $(eval $(curdir)/$(tool)/compile += $(curdir)/sed/compile)) |
1 | office | 102 | |
3 | office | 103 | $(curdir)/sed/compile := $(curdir)/flock/compile |
1 | office | 104 | tools-y += flock sed |
105 | |||
106 | $(curdir)/autoremove := 1 |
||
107 | $(curdir)/builddirs := $(tools-y) $(tools-dep) $(tools-) |
||
108 | $(curdir)/builddirs-default := $(tools-y) |
||
109 | |||
110 | ifdef CHECK_ALL |
||
111 | $(curdir)/builddirs-check:=$($(curdir)/builddirs) |
||
112 | $(curdir)/builddirs-download:=$($(curdir)/builddirs) |
||
113 | endif |
||
114 | |||
115 | ifndef DUMP_TARGET_DB |
||
116 | define PrepareStaging |
||
117 | @for dir in $(1); do ( \ |
||
118 | $(if $(QUIET),,set -x;) \ |
||
119 | mkdir -p "$$dir"; \ |
||
120 | cd "$$dir"; \ |
||
121 | mkdir -p bin lib include stamp; \ |
||
122 | ); done |
||
123 | endef |
||
124 | |||
125 | # preparatory work |
||
126 | $(STAGING_DIR)/.prepared: $(TMP_DIR)/.build |
||
127 | $(call PrepareStaging,$(STAGING_DIR)) |
||
128 | mkdir -p $(BUILD_DIR)/stamp |
||
129 | touch $@ |
||
130 | |||
131 | $(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build |
||
132 | $(call PrepareStaging,$(STAGING_DIR_HOST)) |
||
133 | mkdir -p $(BUILD_DIR_HOST)/stamp $(STAGING_DIR_HOST)/include/sys |
||
134 | $(INSTALL_DATA) $(TOPDIR)/tools/include/*.h $(STAGING_DIR_HOST)/include/ |
||
135 | $(INSTALL_DATA) $(TOPDIR)/tools/include/sys/*.h $(STAGING_DIR_HOST)/include/sys/ |
||
136 | ln -sf lib $(STAGING_DIR_HOST)/lib64 |
||
137 | touch $@ |
||
138 | |||
139 | endif |
||
140 | |||
141 | $(curdir)//prepare = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared |
||
142 | $(curdir)//compile = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared |
||
143 | |||
144 | # prerequisites for the individual targets |
||
145 | $(curdir)/ := .config prereq |
||
146 | |||
147 | $(curdir)/install: $(curdir)/compile |
||
148 | |||
149 | tools_enabled = $(foreach tool,$(sort $(tools-y) $(tools-)),$(if $(filter $(tool),$(tools-y)),y,n)) |
||
150 | $(eval $(call stampfile,$(curdir),tools,compile,,_$(subst $(space),,$(tools_enabled)))) |
||
151 | $(eval $(call stampfile,$(curdir),tools,check,$(TMP_DIR)/.build)) |
||
152 | $(eval $(call subdir,$(curdir))) |