VirtualBox

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

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

Added mv as builtin command.

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