VirtualBox

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

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

o A real attempt at fixing the double quoting problem on windows. ash seems to want a

space between a double quote enclosing the last argument on the commandline and the
double quote enclosing the commandline (the -c argument). Also, defined HAVE_CYGWIN_SHELL.

o Fixed a newline escape problem when using batch_mode_shell on windows with kmk_ash.

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