VirtualBox

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

Last change on this file since 611 was 611, checked in by bird, 18 years ago

Added cat as builtin command.

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