OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # |
2 | # Copyright (C) 2006-2010 OpenWrt.org |
||
3 | # |
||
4 | # This is free software, licensed under the GNU General Public License v2. |
||
5 | # See /LICENSE for more information. |
||
6 | # |
||
7 | |||
8 | include $(INCLUDE_DIR)/download.mk |
||
9 | |||
10 | HOST_BUILD_DIR ?= $(BUILD_DIR_HOST)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION)) |
||
11 | HOST_INSTALL_DIR ?= $(HOST_BUILD_DIR)/host-install |
||
12 | HOST_BUILD_PARALLEL ?= |
||
13 | |||
14 | HOST_MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j)) |
||
15 | |||
16 | ifeq ($(strip $(HOST_BUILD_PARALLEL)),0) |
||
17 | HOST_JOBS?=-j1 |
||
18 | else |
||
19 | HOST_JOBS?=$(if $(HOST_BUILD_PARALLEL),$(HOST_MAKE_J),-j1) |
||
20 | endif |
||
21 | |||
22 | include $(INCLUDE_DIR)/unpack.mk |
||
23 | include $(INCLUDE_DIR)/depends.mk |
||
24 | include $(INCLUDE_DIR)/quilt.mk |
||
25 | |||
26 | BUILD_TYPES += host |
||
27 | HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared$(if $(HOST_QUILT)$(DUMP),,$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPENDS),))_$(call confvar,CONFIG_AUTOREMOVE $(HOST_PREPARED_DEPENDS))) |
||
28 | HOST_STAMP_CONFIGURED:=$(HOST_BUILD_DIR)/.configured |
||
29 | HOST_STAMP_BUILT:=$(HOST_BUILD_DIR)/.built |
||
30 | HOST_BUILD_PREFIX?=$(if $(IS_PACKAGE_BUILD),$(STAGING_DIR_HOSTPKG),$(STAGING_DIR_HOST)) |
||
31 | HOST_STAMP_INSTALLED:=$(HOST_BUILD_PREFIX)/stamp/.$(PKG_NAME)_installed |
||
32 | |||
33 | override MAKEFLAGS= |
||
34 | |||
35 | include $(INCLUDE_DIR)/autotools.mk |
||
36 | |||
37 | _host_target:=$(if $(HOST_QUILT),,.) |
||
38 | |||
39 | Host/Patch:=$(Host/Patch/Default) |
||
40 | ifneq ($(strip $(HOST_UNPACK)),) |
||
41 | define Host/Prepare/Default |
||
42 | $(HOST_UNPACK) |
||
43 | [ ! -d ./src/ ] || $(CP) ./src/* $(HOST_BUILD_DIR) |
||
44 | $(Host/Patch) |
||
45 | endef |
||
46 | endif |
||
47 | |||
48 | define Host/Prepare |
||
49 | $(call Host/Prepare/Default) |
||
50 | endef |
||
51 | |||
52 | HOST_CONFIGURE_VARS = \ |
||
53 | CC="$(HOSTCC)" \ |
||
54 | CFLAGS="$(HOST_CFLAGS)" \ |
||
55 | CXX="$(HOSTCXX)" \ |
||
56 | CPPFLAGS="$(HOST_CPPFLAGS)" \ |
||
57 | LDFLAGS="$(HOST_LDFLAGS)" \ |
||
58 | CONFIG_SHELL="$(SHELL)" |
||
59 | |||
60 | HOST_CONFIGURE_ARGS = \ |
||
61 | --target=$(GNU_HOST_NAME) \ |
||
62 | --host=$(GNU_HOST_NAME) \ |
||
63 | --build=$(GNU_HOST_NAME) \ |
||
64 | --program-prefix="" \ |
||
65 | --program-suffix="" \ |
||
66 | --prefix=$(HOST_BUILD_PREFIX) \ |
||
67 | --exec-prefix=$(HOST_BUILD_PREFIX) \ |
||
68 | --sysconfdir=$(HOST_BUILD_PREFIX)/etc \ |
||
69 | --localstatedir=$(HOST_BUILD_PREFIX)/var \ |
||
70 | --sbindir=$(HOST_BUILD_PREFIX)/bin |
||
71 | |||
72 | HOST_MAKE_VARS = \ |
||
73 | CFLAGS="$(HOST_CFLAGS)" \ |
||
74 | CPPFLAGS="$(HOST_CPPFLAGS)" \ |
||
75 | CXXFLAGS="$(HOST_CXXFLAGS)" \ |
||
76 | LDFLAGS="$(HOST_LDFLAGS)" |
||
77 | |||
78 | HOST_MAKE_FLAGS = |
||
79 | |||
80 | HOST_CONFIGURE_CMD = $(BASH) ./configure |
||
81 | |||
82 | ifeq ($(HOST_OS),Darwin) |
||
83 | HOST_CONFIG_SITE:=$(INCLUDE_DIR)/site/darwin |
||
84 | endif |
||
85 | |||
86 | define Host/Configure/Default |
||
87 | $(if $(HOST_CONFIGURE_PARALLEL),+)(cd $(HOST_BUILD_DIR)/$(3); \ |
||
88 | if [ -x configure ]; then \ |
||
89 | $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_BUILD_DIR)/$(3)/ && \ |
||
90 | $(HOST_CONFIGURE_VARS) \ |
||
91 | $(2) \ |
||
92 | $(HOST_CONFIGURE_CMD) \ |
||
93 | $(HOST_CONFIGURE_ARGS) \ |
||
94 | $(1); \ |
||
95 | fi \ |
||
96 | ) |
||
97 | endef |
||
98 | |||
99 | define Host/Configure |
||
100 | $(call Host/Configure/Default) |
||
101 | endef |
||
102 | |||
103 | define Host/Compile/Default |
||
104 | +$(HOST_MAKE_VARS) \ |
||
105 | $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \ |
||
106 | $(HOST_MAKE_FLAGS) \ |
||
107 | $(1) |
||
108 | endef |
||
109 | |||
110 | define Host/Compile |
||
111 | $(call Host/Compile/Default) |
||
112 | endef |
||
113 | |||
114 | define Host/Install/Default |
||
115 | $(call Host/Compile/Default,install) |
||
116 | endef |
||
117 | |||
118 | define Host/Install |
||
119 | $(call Host/Install/Default,$(HOST_BUILD_PREFIX)) |
||
120 | endef |
||
121 | |||
122 | |||
123 | ifneq ($(if $(HOST_QUILT),,$(CONFIG_AUTOREBUILD)),) |
||
124 | define HostHost/Autoclean |
||
125 | $(call rdep,${CURDIR} $(PKG_FILE_DEPENDS),$(HOST_STAMP_PREPARED)) |
||
126 | $(if $(if $(Host/Compile),$(filter prepare,$(MAKECMDGOALS)),1),,$(call rdep,$(HOST_BUILD_DIR),$(HOST_STAMP_BUILT))) |
||
127 | endef |
||
128 | endif |
||
129 | |||
130 | define Host/Exports/Default |
||
131 | $(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR_HOST)/share/aclocal $$(STAGING_DIR_HOST)/share/aclocal-* $(if $(IS_PACKAGE_BUILD),$$(STAGING_DIR)/host/share/aclocal $$(STAGING_DIR_HOSTPKG)/share/aclocal $$(STAGING_DIR)/host/share/aclocal-*)),-I $$(p)) |
||
132 | $(1) : export STAGING_PREFIX=$$(HOST_BUILD_PREFIX) |
||
133 | $(1) : export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig:$$(HOST_BUILD_PREFIX)/lib/pkgconfig |
||
134 | $(1) : export PKG_CONFIG_LIBDIR=$$(HOST_BUILD_PREFIX)/lib/pkgconfig |
||
135 | $(if $(CONFIG_CCACHE),$(1) : export CCACHE_DIR:=$(STAGING_DIR_HOST)/ccache) |
||
136 | $(if $(HOST_CONFIG_SITE),$(1) : export CONFIG_SITE:=$(HOST_CONFIG_SITE)) |
||
137 | $(if $(IS_PACKAGE_BUILD),$(1) : export PATH=$$(TARGET_PATH_PKG)) |
||
138 | endef |
||
139 | Host/Exports=$(Host/Exports/Default) |
||
140 | |||
141 | .NOTPARALLEL: |
||
142 | |||
143 | ifndef DUMP |
||
144 | define HostBuild/Core |
||
145 | $(if $(HOST_QUILT),$(Host/Quilt)) |
||
146 | $(if $(DUMP),,$(call HostHost/Autoclean)) |
||
147 | |||
148 | $(HOST_STAMP_PREPARED): |
||
149 | @-rm -rf $(HOST_BUILD_DIR) |
||
150 | @mkdir -p $(HOST_BUILD_DIR) |
||
151 | $(foreach hook,$(Hooks/HostPrepare/Pre),$(call $(hook))$(sep)) |
||
152 | $(call Host/Prepare) |
||
153 | $(foreach hook,$(Hooks/HostPrepare/Post),$(call $(hook))$(sep)) |
||
154 | touch $$@ |
||
155 | |||
156 | $(call Host/Exports,$(HOST_STAMP_CONFIGURED)) |
||
157 | $(HOST_STAMP_CONFIGURED): $(HOST_STAMP_PREPARED) |
||
158 | $(foreach hook,$(Hooks/HostConfigure/Pre),$(call $(hook))$(sep)) |
||
159 | $(call Host/Configure) |
||
160 | $(foreach hook,$(Hooks/HostConfigure/Post),$(call $(hook))$(sep)) |
||
161 | touch $$@ |
||
162 | |||
163 | $(call Host/Exports,$(HOST_STAMP_BUILT)) |
||
164 | $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) |
||
165 | $(foreach hook,$(Hooks/HostCompile/Pre),$(call $(hook))$(sep)) |
||
166 | $(call Host/Compile) |
||
167 | $(foreach hook,$(Hooks/HostCompile/Post),$(call $(hook))$(sep)) |
||
168 | touch $$@ |
||
169 | |||
170 | $(call Host/Exports,$(HOST_STAMP_INSTALLED)) |
||
171 | $(HOST_STAMP_INSTALLED): $(HOST_STAMP_BUILT) $(if $(FORCE_HOST_INSTALL),FORCE) |
||
172 | $(call Host/Install,$(HOST_BUILD_PREFIX)) |
||
173 | $(foreach hook,$(Hooks/HostInstall/Post),$(call $(hook))$(sep)) |
||
174 | mkdir -p $$(shell dirname $$@) |
||
175 | touch $(HOST_STAMP_BUILT) |
||
176 | touch $$@ |
||
177 | |||
178 | $(call DefaultTargets,$(patsubst %,host-%,$(DEFAULT_SUBDIR_TARGETS))) |
||
179 | ifndef STAMP_BUILT |
||
180 | $(foreach t,$(DEFAULT_SUBDIR_TARGETS), |
||
181 | $(t): host-$(t) |
||
182 | .$(t): .host-$(t) |
||
183 | ) |
||
184 | clean-build: host-clean-build |
||
185 | endif |
||
186 | |||
187 | $(_host_target)host-prepare: $(HOST_STAMP_PREPARED) |
||
188 | $(_host_target)host-configure: $(HOST_STAMP_CONFIGURED) |
||
189 | $(_host_target)host-compile: $(HOST_STAMP_BUILT) $(HOST_STAMP_INSTALLED) |
||
190 | host-install: host-compile |
||
191 | |||
192 | host-clean-build: FORCE |
||
193 | rm -rf $(HOST_BUILD_DIR) $(HOST_STAMP_BUILT) |
||
194 | |||
195 | host-clean: host-clean-build |
||
196 | $(call Host/Clean) |
||
197 | $(call Host/Uninstall) |
||
198 | rm -rf $(HOST_STAMP_INSTALLED) |
||
199 | |||
200 | ifneq ($(CONFIG_AUTOREMOVE),) |
||
201 | host-compile: |
||
202 | $(FIND) $(HOST_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' | \ |
||
203 | $(XARGS) rm -rf |
||
204 | endif |
||
205 | endef |
||
206 | endif |
||
207 | |||
208 | define HostBuild |
||
209 | $(HostBuild/Core) |
||
210 | $(if $(if $(PKG_HOST_ONLY),,$(STAMP_PREPARED)),,$(if $(strip $(PKG_SOURCE_URL)),$(call Download,default))) |
||
211 | endef |