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

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