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

SCM Repository

ViewVC logotype

Contents of /trunk/freewrt/mk/build.mk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2715 - (show annotations) (download)
Tue Jun 5 14:52:44 2007 UTC (6 years, 8 months ago) by tg
File size: 4122 byte(s)
• 1.0 -> scripts/param.h, paxmirabilis: MFC the new version from trunk
• both 1.0 and trunk: implement “make targz”, “make tarbz2”
  (I like the gzip(1)d versions better though)
• 1.0 -> package/config/Makefile: quieten the “clean” target to be consistent
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_PACKAGE_BASE_FILES}),m)
46 $(MAKE) -f mk/build.mk tools/install toolchain/install target/config-prepare target/compile package/compile
47 @echo Running allmodconfig succeeded.
48 else
49 $(MAKE) -f mk/build.mk tools/install toolchain/install target/config-prepare target/compile package/compile root_clean package/install target/install package_index
50 endif
51
52 package_index:
53 -cd ${PACKAGE_DIR} && \
54 ${MBSH} ${TOPDIR}/scripts/ipkg-make-index.sh . >Packages
55
56 $(DISTDIR):
57 mkdir -p $(DISTDIR)
58
59 $(BUILD_DIR):
60 mkdir -p $(BUILD_DIR)
61
62 $(PACKAGE_DIR):
63 mkdir -p ${PACKAGE_DIR}/.stamps
64
65 package/%: ${TOPDIR}/.cfg/FWRT_HAVE_DOT_CONFIG
66 @$(TRACE) $@
67 $(MAKE) -C package $(patsubst package/%,%,$@)
68
69 target/%: ${TOPDIR}/.cfg/FWRT_HAVE_DOT_CONFIG
70 @$(TRACE) $@
71 $(MAKE) -C target $(patsubst target/%,%,$@)
72
73 toolchain/%:
74 @$(TRACE) $@
75 $(MAKE) -C toolchain $(patsubst toolchain/%,%,$@)
76
77 tools/%:
78 @$(TRACE) $@
79 $(MAKE) -C tools $(patsubst tools/%,%,$@)
80
81 #############################################################
82 #
83 # Cleanup and misc junk
84 #
85 #############################################################
86 root_clean:
87 @$(TRACE) root_clean
88 rm -rf $(BUILD_DIR)/linux-*/root $(BUILD_DIR)/root
89
90 clean:
91 @$(TRACE) clean
92 $(MAKE) -C $(CONFIG) clean
93 rm -rf $(BUILD_DIR) $(BIN_DIR) ${TOPDIR}/.cfg
94 rm -f ${TOPDIR}/package/*/info.mk
95
96 cleandir:
97 @$(TRACE) cleandir
98 $(MAKE) -C $(CONFIG) clean
99 rm -rf $(BUILD_DIR) $(BIN_DIR) ${TOPDIR}/.cfg
100 rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
101 rm -f .tmpconfig.h ${TOPDIR}/package/*/info.mk
102
103 distclean:
104 @$(TRACE) distclean
105 $(MAKE) -C $(CONFIG) clean
106 rm -rf $(BUILD_DIR) $(BIN_DIR) $(DISTDIR) ${TOPDIR}/.cfg
107 rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
108 rm -f .config* .tmpconfig.h ${TOPDIR}/package/*/info.mk
109
110 else # ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y)
111
112 include $(TOPDIR)/lbin/prereq.mk
113
114 all: menuconfig
115 @echo "Start the build with \"make\" or with \"make v\" to be verbose"
116
117 # configuration
118 # ---------------------------------------------------------------------------
119
120 $(CONFIG)/conf:
121 $(MAKE) -C $(CONFIG) conf
122 $(CONFIG)/mconf:
123 $(MAKE) -C $(CONFIG)
124
125 menuconfig: $(CONFIG)/mconf
126 -touch .config
127 $(CONFIG)/mconf $(CONFIG_CONFIG_IN)
128 ${POSTCONFIG}
129
130 _config: $(CONFIG)/conf
131 -touch .config
132 $(CONFIG)/conf ${W} $(CONFIG_CONFIG_IN)
133 ${POSTCONFIG}
134
135 # add patterns for config symbols to always restore from default here
136 RESTORE_PATTERNS := BUSYBOX CCACHE FWRT_RUNTIME
137 .NOTPARALLEL: _mconfig
138 _mconfig: ${CONFIG}/conf _mconfig2 _config
139 _mconfig2: ${CONFIG}/conf
140 ${CONFIG}/conf -m ${RCONFIG}
141 ${MBSH} scripts/restore-defaultconf.sh ${RESTORE_PATTERNS}
142
143 tools/%:
144 $(MAKE) -C tools $(patsubst tools/%,%,$@)
145
146 distclean:
147 $(MAKE) -C $(CONFIG) clean
148 rm -rf $(BUILD_DIR) $(BIN_DIR) $(DISTDIR) ${TOPDIR}/.cfg tools_build
149 rm -rf $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
150 rm -f .config* .tmpconfig.h ${TOPDIR}/package/*/info.mk
151
152 endif # ifeq ($(strip $(FWRT_HAVE_DOT_CONFIG)),y)

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