2 # Copyright (C) 2006-2011 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 # Main makefile for the host tools
11 # subdirectories to descend into
14 ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN
),)
16 ifdef CONFIG_GCC_USE_GRAPHITE
17 ifneq ($(CONFIG_GCC_VERSION_4_8
),)
18 ifeq ($(CONFIG_GCC_USE_SYSTEM_PPL_CLOOG
),)
26 ifneq ($(CONFIG_SDK
)$(CONFIG_PACKAGE_kmod-b43
)$(CONFIG_PACKAGE_b43legacy-firmware
)$(CONFIG_BRCMSMAC_USE_FW_FROM_WL
),)
30 tools-
$(BUILD_TOOLCHAIN
) += gmp mpfr mpc libelf expat
31 tools-y
+= m4 libtool autoconf automake flex bison pkg-config sed mklibs
32 tools-y
+= sstrip make-ext4fs e2fsprogs mtd-utils mkimage
33 tools-y
+= firmware-utils patch-image patch quilt yaffs2 padjffs2
34 tools-y
+= mm-macros missing-macros xz cmake scons bc findutils gengetopt patchelf
35 tools-
$(CONFIG_TARGET_orion_generic
) += wrt350nv2-builder upslug2
36 tools-
$(CONFIG_powerpc
) += upx
37 tools-
$(CONFIG_TARGET_x86
) += qemu
38 tools-
$(CONFIG_TARGET_mxs
) += elftosb sdimage
39 tools-
$(CONFIG_TARGET_brcm2708
)$(CONFIG_TARGET_sunxi
)$(CONFIG_TARGET_mxs
)$(CONFIG_TARGET_omap
) += mtools dosfstools
40 tools-
$(CONFIG_TARGET_ar71xx
) += lzma-old squashfs
41 tools-
$(CONFIG_USES_MINOR
) += kernel2minor
42 tools-y
+= lzma squashfs4
43 tools-
$(BUILD_B43_TOOLS
) += b43-tools
44 tools-
$(BUILD_PPL_CLOOG
) += ppl cloog
45 tools-
$(BUILD_ISL
) += isl
46 tools-
$(CONFIG_USE_SPARSE
) += sparse
47 tools-
$(CONFIG_TARGET_apm821xx
) += genext2fs
49 # builddir dependencies
50 $(curdir
)/bison
/compile
:= $(curdir
)/flex
/install
51 $(curdir
)/flex
/compile
:= $(curdir
)/libtool
/install
52 $(curdir
)/pkg-config
/compile
:= $(curdir
)/sed
/install
53 $(curdir
)/libtool
/compile
:= $(curdir
)/sed
/install $(curdir
)/m4
/install $(curdir
)/autoconf
/install $(curdir
)/automake
/install $(curdir
)/missing-macros
/install
54 $(curdir
)/squashfs
/compile
:= $(curdir
)/lzma-old
/install
55 $(curdir
)/squashfs4
/compile
:= $(curdir
)/xz
/install
56 $(curdir
)/quilt
/compile
:= $(curdir
)/sed
/install $(curdir
)/autoconf
/install $(curdir
)/findutils
/install
57 $(curdir
)/autoconf
/compile
:= $(curdir
)/m4
/install
58 $(curdir
)/automake
/compile
:= $(curdir
)/m4
/install $(curdir
)/autoconf
/install $(curdir
)/pkg-config
/install $(curdir
)/xz
/install
59 $(curdir
)/gmp
/compile
:= $(curdir
)/libtool
/install
60 $(curdir
)/mpc
/compile
:= $(curdir
)/mpfr
/install $(curdir
)/gmp
/install
61 $(curdir
)/mpfr
/compile
:= $(curdir
)/gmp
/install
62 $(curdir
)/ppl
/compile
:= $(curdir
)/gmp
/install
63 $(curdir
)/cloog
/compile
:= $(curdir
)/ppl
/install
64 $(curdir
)/mtd-utils
/compile
:= $(curdir
)/e2fsprogs
/install $(curdir
)/xz
/install
65 $(curdir
)/mkimage
/compile
:= $(curdir
)/sed
/install
66 $(curdir
)/mklibs
/compile
:= $(curdir
)/libtool
/install
67 $(curdir
)/qemu
/compile
:= $(curdir
)/e2fsprogs
/install
68 $(curdir
)/upslug2
/compile
:= $(curdir
)/libtool
/install
69 $(curdir
)/mm-macros
/compile
:= $(curdir
)/libtool
/install
70 $(curdir
)/missing-macros
/compile
:= $(curdir
)/autoconf
/install
71 $(curdir
)/e2fsprogs
/compile
:= $(curdir
)/libtool
/install
72 $(curdir
)/libelf
/compile
:= $(curdir
)/libtool
/install
73 $(curdir
)/sdcc
/compile
:= $(curdir
)/bison
/install
74 $(curdir
)/b43-tools
/compile
:= $(curdir
)/bison
/install
75 $(curdir
)/padjffs2
/compile
:= $(curdir
)/findutils
/install
76 $(curdir
)/cloog
/compile
:= $(curdir
)/ppl
/install
77 $(curdir
)/isl
/compile
:= $(curdir
)/gmp
/install
78 $(curdir
)/bc
/compile
:= $(curdir
)/bison
/install
79 $(curdir
)/findutils
/compile
:= $(curdir
)/bison
/install
80 $(curdir
)/gengetopt
/compile
:= $(curdir
)/libtool
/install
81 $(curdir
)/patchelf
/compile
:= $(curdir
)/libtool
/install
82 ifeq ($(HOST_OS
),Darwin
)
84 $(curdir
)/mkimage
/compile
+= $(curdir
)/libressl
/install
85 $(curdir
)/firmware-utils
/compile
+= $(curdir
)/libressl
/install
88 ifneq ($(CONFIG_CCACHE
)$(CONFIG_SDK
),)
89 $(foreach tool
, $(filter-out patch
,$(tools-y
)), $(eval
$(curdir
)/$(tool
)/compile
+= $(curdir
)/ccache
/install))
93 # in case there is no patch tool on the host we need to make patch tool a
94 # dependency for tools which have patches directory
95 $(foreach tool
, $(tools-y
), $(if
$(wildcard $(curdir
)/$(tool
)/patches
),$(eval
$(curdir
)/$(tool
)/compile
+= $(curdir
)/patch
/install)))
97 $(foreach tool
, $(tools-y
), $(eval
$(curdir
)/$(tool
)/compile
+= $(curdir
)/tar/install))
100 $(curdir
)/tar/compile
:= $(curdir
)/flock
/install
103 $(curdir
)/builddirs
:= $(tools-y
) $(tools-dep
) $(tools-
)
104 $(curdir
)/builddirs-default
:= $(tools-y
)
106 ifndef DUMP_TARGET_DB
107 define PrepareStaging
108 @for
dir in
$(1); do
( \
109 $(if
$(QUIET
),,set
-x
;) \
112 mkdir
-p bin lib
include stamp
; \
117 $(STAGING_DIR
)/.prepared
: $(TMP_DIR
)/.build
118 $(call PrepareStaging
,$(STAGING_DIR
))
119 mkdir
-p
$(BUILD_DIR
)/stamp
122 $(STAGING_DIR_HOST
)/.prepared
: $(TMP_DIR
)/.build
123 $(call PrepareStaging
,$(STAGING_DIR_HOST
))
124 mkdir
-p
$(BUILD_DIR_HOST
)/stamp
$(STAGING_DIR_HOST
)/include/sys
125 $(INSTALL_DATA
) $(TOPDIR
)/tools
/include/*.h
$(STAGING_DIR_HOST
)/include/
126 $(INSTALL_DATA
) $(TOPDIR
)/tools
/include/sys
/*.h
$(STAGING_DIR_HOST
)/include/sys
/
127 ln
-sf lib
$(STAGING_DIR_HOST
)/lib64
132 $(curdir
)//prepare
= $(STAGING_DIR
)/.prepared
$(STAGING_DIR_HOST
)/.prepared
133 $(curdir
)//compile
= $(STAGING_DIR
)/.prepared
$(STAGING_DIR_HOST
)/.prepared
135 # prerequisites for the individual targets
136 $(curdir
)/ := .config prereq
137 $(curdir
)//install = $(1)/compile
139 tools_enabled
= $(foreach tool
,$(sort $(tools-y
) $(tools-
)),$(if
$(filter $(tool
),$(tools-y
)),y
,n
))
140 $(eval
$(call stampfile
,$(curdir
),tools
,install,,_
$(subst $(space
),,$(tools_enabled
))))
141 $(eval
$(call subdir
,$(curdir
)))