2 # Copyright (C) 2007 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 SUBTARGETS
:=clean download prepare compile
install update refresh prereq
dist distcheck
10 subtarget-default
= $(filter-out .
, \
11 $(if
$($(1)/builddirs-
$(2)),$($(1)/builddirs-
$(2)), \
12 $(if
$($(1)/builddirs-default
),$($(1)/builddirs-default
), \
16 $(call warn_eval
,$(1),t
,T
,$(1)/$(2): $($(1)/) $(foreach bd
,$(call subtarget-default
,$(1),$(2)),$(1)/$(bd
)/$(2)))
21 lastdir
=$(word $(words $(subst /, ,$(1))),$(subst /, ,$(1)))
22 diralias
=$(if
$(findstring $(1),$(call lastdir
,$(1))),,$(call lastdir
,$(1)))
24 # Parameters: <subdir>
26 $(call warn
,$(1),d
,D
$(1))
27 $(foreach bd
,$($(1)/builddirs
),
28 $(call warn
,$(1),d
,BD
$(1)/$(bd
))
29 $(foreach target
,$(SUBTARGETS
),
30 $(foreach btype
,$(buildtypes-
$(bd
)),
31 $(call warn_eval
,$(1)/$(bd
),t
,T
,$(1)/$(bd
)/$(btype
)/$(target
): $(if
$(QUILT
),,$($(1)/$(bd
)/$(btype
)/$(target
)) $(call
$(1)//$(btype
)/$(target
),$(1)/$(bd
)/$(btype
))))
32 +$$(SUBMAKE
) -C
$(1)/$(bd
) $(btype
)-$(target
) $(if
$(findstring $(bd
),$($(1)/builddirs-ignore-
$(btype
)-$(target
))), ||
$(call MESSAGE
, ERROR
: $(1)/$(bd
) [$(btype
)] failed to build.
))
33 $$(if
$(call debug
,$(1)/$(bd
),v
),,.SILENT
: $(1)/$(bd
)/$(btype
)/$(target
))
34 $(if
$(call diralias
,$(bd
)),$(call warn_eval
,$(1)/$(bd
),l
,T
,$(1)/$(call diralias
,$(bd
))/$(btype
)/$(target
): $(1)/$(bd
)/$(btype
)/$(target
)))
36 $(call warn_eval
,$(1)/$(bd
),t
,T
,$(1)/$(bd
)/$(target
): $(if
$(QUILT
),,$($(1)/$(bd
)/$(target
)) $(call
$(1)//$(target
),$(1)/$(bd
))))
37 $(if
$(BUILD_LOG
),@mkdir
-p
$(BUILD_LOG_DIR
)/$(1)/$(bd
))
38 +$(if
$(BUILD_LOG
),set
-o pipefail
;) $$(SUBMAKE
) -C
$(1)/$(bd
) $(target
) $(if
$(BUILD_LOG
),SILENT
= 2>&1 | tee
$(BUILD_LOG_DIR
)/$(1)/$(bd
)/$(target
).txt
) $(if
$(findstring $(bd
),$($(1)/builddirs-ignore-
$(target
))), ||
$(call MESSAGE
, ERROR
: $(1)/$(bd
) failed to build.
))
39 $$(if
$(call debug
,$(1)/$(bd
),v
),,.SILENT
: $(1)/$(bd
)/$(target
))
42 $(call warn_eval
,$(1)/$(bd
),l
,T
,$(1)/$(bd
)-$(target
): $(1)/$(bd
)/$(target
))
44 $(if
$(call diralias
,$(bd
)),$(call warn_eval
,$(1)/$(bd
),l
,T
,$(1)/$(call diralias
,$(bd
))/$(target
): $(1)/$(bd
)/$(target
)))
47 $(foreach target
,$(SUBTARGETS
),$(call subtarget
,$(1),$(target
)))
50 # Parameters: <subdir> <name> <target> <depends> <config options>
52 $(1)/stamp-
$(3):=$(STAGING_DIR
)/stamp
/.
$(2)_
$(3)$(if
$(5),_
$(call confvar
,$(5)))
53 $$($(1)/stamp-
$(3)): $(TMP_DIR
)/.build
$(4)
54 @
+$(SCRIPT_DIR
)/timestamp.pl
-n
$$($(1)/stamp-
$(3)) $(1) $(4) || \
55 $(MAKE
) $$($(1)/flags-
$(3)) $(1)/$(3)
56 @mkdir
-p
$$$$(dirname
$$($(1)/stamp-
$(3)))
57 @touch
$$($(1)/stamp-
$(3))
59 $$(if
$(call debug
,$(1),v
),,.SILENT
: $$($(1)/stamp-
$(3)))
61 .PRECIOUS
: $$($(1)/stamp-
$(3)) # work around a make bug
63 $(1)//clean:=$(1)/stamp-
$(3)/clean
64 $(1)/stamp-
$(3)/clean: FORCE
65 @
rm -f
$$($(1)/stamp-
$(3))
This page took 0.046267 seconds and 5 git commands to generate.