VirtualBox

source: kBuild/trunk/src/gmake/Makefile.kmk@ 587

Last change on this file since 587 was 586, checked in by bird, 19 years ago

header + footer - rules only won't do if BUILD_TARGET* is tested for.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.8 KB
Line 
1# $Id: Makefile.kmk 586 2006-11-24 05:15:50Z bird $
2
3
4DEPTH = ../..
5include $(PATH_KBUILD)/header.kmk
6
7#
8# kmk
9#
10PROGRAMS += kmk
11
12kmk_TEMPLATE = BIN
13kmk_DEPS = $(PATH_TARGET)/config.h
14kmk_INCS = $(PATH_TARGET) .
15kmk_INCS.darwin = glob
16kmk_INCS.freebsd = glob
17#ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
18#kmk_INCS += kmkbuiltin/w32
19#endif
20
21kmk_DEFS = \
22 HAVE_CONFIG_H \
23 NO_ARCHIVES \
24 CONFIG_NO_DEFAULT_SUFFIXES \
25 CONFIG_NO_DEFAULT_PATTERN_RULES \
26 CONFIG_NO_DEFAULT_TERMINAL_RULES \
27 CONFIG_NO_DEFAULT_SUFFIX_RULES \
28 CONFIG_NO_DEFAULT_VARIABLES \
29 CONFIG_WITH_EXTENDED_NOTPARALLEL \
30 CONFIG_WITH_INCLUDEDEP \
31 CONFIG_WITH_TOUPPER_TOLOWER \
32 KMK \
33 \
34 KMK_HELPERS \
35 VARIABLE_HASH \
36 CONFIG_WITH_OPTIMIZATION_HACKS \
37 CONFIG_WITH_VALUE_LENGTH \
38 CONFIG_WITH_COMPARE \
39 \
40 BUILD_PLATFORM=\"$(BUILD_TARGET)\" \
41 BUILD_PLATFORM_ARCH=\"$(BUILD_TARGET_ARCH)\" \
42 BUILD_PLATFORM_CPU=\"$(BUILD_TARGET_CPU)\"
43
44kmk_SOURCES = \
45 main.c \
46 read.c \
47 hash.c \
48 strcache.c \
49 variable.c \
50 ar.c \
51 arscan.c \
52 commands.c \
53 default.c \
54 dir.c \
55 expand.c \
56 file.c \
57 function.c \
58 implicit.c \
59 job.c \
60 misc.c \
61 remake.c \
62 rule.c \
63 signame.c \
64 version.c \
65 vpath.c \
66 remote-stub.c \
67 kbuild.c
68
69ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
70kmk_SOURCES += \
71 getopt.c \
72 getopt1.c \
73 getloadavg.c \
74 w32/subproc/misc.c \
75 w32/subproc/sub_proc.c \
76 w32/subproc/w32err.c \
77 glob/glob.c \
78 glob/fnmatch.c \
79 w32/compat/dirent.c \
80 w32/pathstuff.c
81endif
82
83kmk_SOURCES.freebsd = \
84 glob/glob.c \
85 glob/fnmatch.c
86
87kmk_SOURCES.darwin = \
88 glob/glob.c \
89 glob/fnmatch.c
90
91#
92# kmkbuiltin commands
93#
94kmk_DEFS += CONFIG_WITH_KMK_BUILTIN
95kmk_SOURCES += \
96 kmkbuiltin.c \
97 kmkbuiltin/append.c \
98 kmkbuiltin/cp.c \
99 kmkbuiltin/cp_utils.c \
100 kmkbuiltin/echo.c \
101 kmkbuiltin/install.c \
102 kmkbuiltin/mkdir.c \
103 kmkbuiltin/ln.c \
104 kmkbuiltin/rm.c \
105 \
106 kmkbuiltin/err.c \
107 kmkbuiltin/setmode.c \
108 kmkbuiltin/strmode.c \
109 kmkbuiltin/strlcpy.c
110
111ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
112kmk_SOURCES += \
113 kmkbuiltin/mscfakes.c \
114 kmkbuiltin/fts.c
115endif
116
117kmk_SOURCES.darwin += \
118 kmkbuiltin/darwin.c
119
120
121#
122# Standalone kmkbuiltin commands.
123#
124PROGRAMS += kmk_append kmk_cp kmk_echo kmk_mkdir kmk_install kmk_ln kmk_rm
125
126kmk_append_TEMPLATE = BIN
127kmk_append_DEFS = kmk_builtin_append=main
128kmk_append_INCS = .
129kmk_append_SOURCES = \
130 kmkbuiltin/append.c \
131 kmkbuiltin/err.c
132
133kmk_cp_TEMPLATE = BIN
134kmk_cp_DEFS = kmk_builtin_cp=main
135kmk_cp_SOURCES = \
136 kmkbuiltin/cp.c \
137 kmkbuiltin/cp_utils.c \
138 kmkbuiltin/strlcpy.c \
139 kmkbuiltin/err.c
140ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
141kmk_cp_INCS += $(PATH_TARGET) .
142kmk_cp_DEFS += HAVE_CONFIG_H
143kmk_cp_SOURCES += \
144 kmkbuiltin/mscfakes.c \
145 kmkbuiltin/fts.c \
146 w32/compat/dirent.c \
147 getopt.c \
148 getopt1.c
149endif
150kmk_cp_SOURCES.darwin = \
151 kmkbuiltin/darwin.c
152
153kmk_echo_TEMPLATE = BIN
154kmk_echo_DEFS = kmk_builtin_echo=main
155kmk_echo_SOURCES = \
156 kmkbuiltin/echo.c
157ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
158kmk_echo_SOURCES += \
159 kmkbuiltin/mscfakes.c \
160 kmkbuiltin/err.c
161endif
162
163kmk_install_TEMPLATE = BIN
164kmk_install_DEFS = kmk_builtin_install=main
165kmk_install_SOURCES = \
166 kmkbuiltin/install.c \
167 kmkbuiltin/err.c \
168 kmkbuiltin/strmode.c \
169 kmkbuiltin/setmode.c
170ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
171kmk_install_INCS += $(PATH_TARGET) .
172kmk_install_DEFS += HAVE_CONFIG_H
173kmk_install_SOURCES += \
174 kmkbuiltin/mscfakes.c \
175 getopt.c \
176 getopt1.c
177endif
178
179kmk_ln_TEMPLATE = BIN
180kmk_ln_DEFS = kmk_builtin_ln=main
181kmk_ln_SOURCES = \
182 kmkbuiltin/ln.c \
183 kmkbuiltin/err.c
184ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
185kmk_ln_INCS += $(PATH_TARGET) .
186kmk_ln_DEFS += HAVE_CONFIG_H
187kmk_ln_SOURCES += \
188 kmkbuiltin/mscfakes.c\
189 getopt.c \
190 getopt1.c
191endif
192
193kmk_mkdir_TEMPLATE = BIN
194kmk_mkdir_DEFS = kmk_builtin_mkdir=main
195kmk_mkdir_SOURCES = \
196 kmkbuiltin/mkdir.c \
197 kmkbuiltin/err.c \
198 kmkbuiltin/setmode.c
199ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
200kmk_mkdir_INCS += $(PATH_TARGET) .
201kmk_mkdir_DEFS += HAVE_CONFIG_H
202kmk_mkdir_SOURCES += \
203 kmkbuiltin/mscfakes.c \
204 getopt.c \
205 getopt1.c
206endif
207
208kmk_rm_TEMPLATE = BIN
209kmk_rm_DEFS = kmk_builtin_rm=main
210kmk_rm_SOURCES = \
211 kmkbuiltin/rm.c \
212 kmkbuiltin/err.c \
213 kmkbuiltin/strmode.c
214ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
215kmk_rm_INCS += $(PATH_TARGET) .
216kmk_rm_DEFS += HAVE_CONFIG_H
217kmk_rm_SOURCES += \
218 kmkbuiltin/mscfakes.c\
219 getopt.c \
220 getopt1.c
221endif
222
223
224
225#
226# kmk_gmake - almost plain GNU Make.
227#
228PROGRAMS += kmk_gmake
229kmk_gmake_TEMPLATE = BIN
230kmk_gmake_DEPS = $(PATH_TARGET)/config.h
231kmk_gmake_INCS = $(PATH_TARGET) .
232kmk_gmake_INCS.darwin = glob
233kmk_gmake_INCS.freebsd = glob
234
235
236kmk_gmake_DEFS = \
237 HAVE_CONFIG_H \
238 NO_ARCHIVES \
239 CONFIG_WITH_TOUPPER_TOLOWER
240
241kmk_gmake_SOURCES = \
242 main.c \
243 read.c \
244 hash.c \
245 strcache.c \
246 variable.c \
247 ar.c \
248 arscan.c \
249 commands.c \
250 default.c \
251 dir.c \
252 expand.c \
253 file.c \
254 function.c \
255 implicit.c \
256 job.c \
257 misc.c \
258 remake.c \
259 rule.c \
260 signame.c \
261 version.c \
262 vpath.c \
263 remote-stub.c
264
265ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),)
266kmk_gmake_SOURCES += \
267 getopt.c \
268 getopt1.c \
269 getloadavg.c \
270 w32/subproc/misc.c \
271 w32/subproc/sub_proc.c \
272 w32/subproc/w32err.c \
273 glob/glob.c \
274 glob/fnmatch.c \
275 w32/compat/dirent.c \
276 w32/pathstuff.c
277endif
278
279kmk_gmake_SOURCES.freebsd = \
280 glob/glob.c \
281 glob/fnmatch.c
282
283kmk_gmake_SOURCES.darwin = \
284 glob/glob.c \
285 glob/fnmatch.c
286
287
288
289include $(PATH_KBUILD)/footer.kmk
290
291
292#
293# Use checked in config.h instead of running ./Configure for it.
294#
295config.h.$(BUILD_TARGET) := config.h.$(BUILD_TARGET)
296config.h.win := config.h.W32
297config.h.win32 := config.h.W32
298config.h.win64 := config.h.W32
299config.h.nt := config.h.W32
300
301$(PATH_TARGET)/config.h: $(config.h.$(BUILD_TARGET))
302 $(MKDIR) -p $(dir $@)
303 $(CP) $^ $@
304
305
306#
307# Some tests.
308#
309parallel: parallel_1 parallel_2 parallel_3 parallel_4 parallel_5
310parallel_1 parallel_2 parallel_3 parallel_4 parallel_5:
311 echo $@_start ; sleep 1; echo $@_done
312
313test:
314 echo "1"
315 echo "2"
316 echo "3"
317 echo "4"
318
319
320#
321# Shell execution tests.
322#
323test_shell: test_shell_quoting test_shell_double_quoting test_shell_newline
324
325# shell double and single quoting check (was busted on windows in 3.81).
326test_shell_quoting:
327 $(ECHO_EXT) "double quoted sTrInG"
328 $(ECHO_EXT) "double quoted sTrInG" | $(SED_EXT) -e "s/sTrInG/string/g"
329 $(ECHO_EXT) 'single quoted sTrInG' | $(SED_EXT) -e 's/sTrInG/string/g'
330 $(ECHO) "This string should not be printed with double quotes."
331 $(ECHO) 'This string should not be printed with single quotes.'
332 ( echo " #define PWD \"`pwd`\""; )
333
334test_shell_double_quoting:
335 $(ECHO_EXT) "foo foo foo" | $(SED_EXT) -e \
336 "s/foo/$@/" -e \
337 "s/foo/works/" \
338 -e "s/foo/\!/"
339
340test_shell_double_quoting2:
341 $(ECHO_EXT) "foo foo foo" | $(SED_EXT) -e \
342 "s/foo/$@/" -e \
343 "s/foo/works/" \
344 -e\
345 "s/foo/\!/"
346
347# when using batch mode shell, the newline got escaped twice and spoiling everything.
348test_shell_newline:
349 $(ECHO_EXT) "foo foo foo" | $(SED_EXT) -e \
350 's/foo/$@/' -e \
351 's/foo/works/' \
352 -e 's/foo/\!/'
353
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette