English Language flag
// Log In
// CVSweb
Project: FreeWRT
// Summary // Activity // Search // Tracker // Lists // News // SCM // Wiki

SCM Repository

ViewVC logotype

Contents of /branches/common-nfo/mk/build.mk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3427 - (show annotations) (download)
Wed Aug 8 11:08:41 2007 UTC (6 years, 6 months ago) by tg
File size: 4117 byte(s)
merge in trunk rev. 3426
1 # $FreeWRT$
2 #-
3 # This file is part of the FreeWRT project. FreeWRT is copyrighted
4 # material, please see the LICENCE file in the top-level directory
5 # or at http://www.freewrt.org/licence for details.
6
7 TOPDIR=${shell pwd}
8 export TOPDIR
9
10 CONFIG_CONFIG_IN = Config.in
11 CONFIG = tools/config
12
13 noconfig_targets:= menuconfig \
14 _config \
15 _mconfig \
16 tags
17
18 MAKECLEAN_SYMBOLS= FWRT_ISOMATH FWRT_UNICODE _ FWRT_IPV6
19 POSTCONFIG= @\
20 what=cleandir; \
21 for symbol in ${MAKECLEAN_SYMBOLS}; do \
22 if [[ $$symbol = _ ]]; then \
23 what=clean; \
24 continue; \
25 fi; \
26 newval=$$(grep -e "^$$symbol=" -e "^\# $$symbol " .config); \
27 oldval=$$(cat .cfg/"$$symbol" 2>&-); \
28 [[ $$newval = $$oldval ]] && continue; \
29 echo >&2 "WARNING: Options have changed, run 'make" \
30 "$$what' first!"; \
31 break; \
32 done
33
34 # Pull in the user's configuration file
35 ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
36 -include $(TOPDIR)/.config
37 endif
38
39 ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y)
40 include $(TOPDIR)/rules.mk
41 include ${TOPDIR}/mk/split-cfg.mk
42
43 all: world
44
45 .NOTPARALLEL:
46 .PHONY: all world clean cleandir distclean image_clean
47
48 world: $(DISTDIR) $(BUILD_DIR) $(PACKAGE_DIR) ${TOPDIR}/.cfg/FWRT_HAVE_DOT_CONFIG
49 BASH='${BASH}' ${MBSH} ${TOPDIR}/scripts/scan-pkgs.sh
50 ifeq ($(strip ${FWRT_PACKAGE_BASE_FILES}),m)
51 $(MAKE) -f mk/build.mk tools/install toolchain/install target/config-prepare target/compile package/compile package_index
52 else
53 $(MAKE) -f mk/build.mk tools/install toolchain/install target/config-prepare target/compile package/compile root_clean package/install target/install package_index
54 endif
55
56 package_index:
57 -cd ${PACKAGE_DIR} && \
58 ${MBSH} ${TOPDIR}/scripts/ipkg-make-index.sh . >Packages
59
60 $(DISTDIR):
61 mkdir -p $(DISTDIR)
62
63 $(BUILD_DIR):
64 mkdir -p $(BUILD_DIR)
65
66 $(PACKAGE_DIR):
67 mkdir -p ${PACKAGE_DIR}/.stamps
68
69 package/%: ${TOPDIR}/.cfg/FWRT_HAVE_DOT_CONFIG
70 @$(TRACE) $@
71 $(MAKE) -C package $(patsubst package/%,%,$@)
72
73 target/%: ${TOPDIR}/.cfg/FWRT_HAVE_DOT_CONFIG
74 @$(TRACE) $@
75 $(MAKE) -C target $(patsubst target/%,%,$@)
76
77 toolchain/%:
78 @$(TRACE) $@
79 $(MAKE) -C toolchain $(patsubst toolchain/%,%,$@)
80
81 tools/%:
82 @$(TRACE) $@
83 $(MAKE) -C tools $(patsubst tools/%,%,$@)
84
85 #############################################################
86 #
87 # Cleanup and misc junk
88 #
89 #############################################################
90 root_clean:
91 @$(TRACE) root_clean
92 rm -rf $(BUILD_DIR)/linux-*/root $(BUILD_DIR)/root
93
94 clean:
95 @$(TRACE) clean
96 $(MAKE) -C $(CONFIG) clean
97 rm -rf $(BUILD_DIR) $(BIN_DIR) ${TOPDIR}/.cfg
98
99 cleandir:
100 @$(TRACE) cleandir
101 $(MAKE) -C $(CONFIG) clean
102 rm -rf $(BUILD_DIR) $(BIN_DIR) ${TOPDIR}/.cfg
103 rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
104 rm -f .tmpconfig.h
105
106 distclean:
107 @$(TRACE) distclean
108 $(MAKE) -C $(CONFIG) clean
109 rm -rf $(BUILD_DIR) $(BIN_DIR) $(DISTDIR) ${TOPDIR}/.cfg
110 rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
111 rm -f .config* .tmpconfig.h
112
113 else # ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y)
114
115 include $(TOPDIR)/lbin/prereq.mk
116
117 all: menuconfig
118 @echo "Start the build with \"make\" or with \"make v\" to be verbose"
119
120 # configuration
121 # ---------------------------------------------------------------------------
122
123 $(CONFIG)/conf:
124 $(MAKE) -C $(CONFIG) conf
125 $(CONFIG)/mconf:
126 $(MAKE) -C $(CONFIG)
127
128 menuconfig: $(CONFIG)/mconf
129 -touch .config
130 $(CONFIG)/mconf $(CONFIG_CONFIG_IN)
131 ${POSTCONFIG}
132
133 _config: $(CONFIG)/conf
134 -touch .config
135 $(CONFIG)/conf ${W} $(CONFIG_CONFIG_IN)
136 ${POSTCONFIG}
137
138 # add patterns for config symbols to always restore from default here
139 RESTORE_PATTERNS := CCACHE FWRT_RUNTIME
140 .NOTPARALLEL: _mconfig
141 _mconfig: ${CONFIG}/conf _mconfig2 _config
142 _mconfig2: ${CONFIG}/conf
143 ${CONFIG}/conf -M ${RCONFIG}
144 ${MBSH} scripts/restore-defaultconf.sh ${RESTORE_PATTERNS}
145
146 tools/%:
147 $(MAKE) -C tools $(patsubst tools/%,%,$@)
148
149 distclean:
150 $(MAKE) -C $(CONFIG) clean
151 rm -rf $(BUILD_DIR) $(BIN_DIR) $(DISTDIR) ${TOPDIR}/.cfg tools_build
152 rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
153 rm -f .config* .tmpconfig.h ${TOPDIR}/package/*/info.mk
154
155 endif # ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y)

root@freewrt.org:443
ViewVC Help
Powered by ViewVC 1.1.20