VirtualBox

source: kBuild/trunk/src/kmk/Makefile.kmk@ 2799

Last change on this file since 2799 was 2799, checked in by bird, 10 years ago

Fixed glob.h inclusion issue causing stack corruption. Fixed alignment issue in the string expansion compiler. More makefile eval 'compiler' work.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 14.0 KB
Line 
1# $Id: Makefile.kmk 2799 2015-09-19 20:36:31Z bird $
2## @file
3# Sub-makefile for kmk / GNU Make.
4#
5
6#
7# Copyright (c) 2004-2011 knut st. osmundsen <[email protected]>
8#
9# This file is part of kBuild.
10#
11# kBuild is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 3 of the License, or
14# (at your option) any later version.
15#
16# kBuild is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with kBuild. If not, see <http://www.gnu.org/licenses/>
23#
24#
25
26SUB_DEPTH = ../..
27include $(KBUILD_PATH)/subheader.kmk
28
29
30#
31# Template for kmk and the kmk_* binaries in this makefile.
32#
33TEMPLATE_BIN-KMK = Template for src/gmake binaries
34TEMPLATE_BIN-KMK_EXTENDS = BIN-THREADED
35TEMPLATE_BIN-KMK_DEFS = \
36 HAVE_CONFIG_H \
37 $(TEMPLATE_BIN_DEFS) \
38 KBUILD_SVN_REV=$(KBUILD_SVN_REV) \
39 KBUILD_TYPE=\"$(KBUILD_TYPE)\"
40TEMPLATE_BIN-KMK_DEPS = \
41 $(kmk_0_OUTDIR)/config.h \
42 $(kmk_0_OUTDIR)/fts.h
43TEMPLATE_BIN-KMK_CLEAN = $(TEMPLATE_BIN-KMK_DEPS)
44TEMPLATE_BIN-KMK_DEPS.solaris = \
45 $(kmk_0_OUTDIR)/paths.h
46TEMPLATE_BIN-KMK_CLEAN.solaris = $(TEMPLATE_BIN-KMK_DEPS.solaris)
47TEMPLATE_BIN-KMK_DEPS.win = \
48 $(kmk_0_OUTDIR)/sysexits.h \
49 $(kmk_0_OUTDIR)/unistd.h \
50 $(kmk_0_OUTDIR)/paths.h \
51 $(kmk_0_OUTDIR)/grp.h \
52 $(kmk_0_OUTDIR)/pwd.h \
53 $(kmk_0_OUTDIR)/inttypes.h
54TEMPLATE_BIN-KMK_CFLAGS.win.amd64 = $(TEMPLATE_BIN-THREADED_CFLAGS.win.amd64) -wd4244 -wd4267
55TEMPLATE_BIN-KMK_CLEAN.win = $(TEMPLATE_BIN-KMK_DEPS.win)
56TEMPLATE_BIN-KMK_INCS = $(kmk_0_OUTDIR) . $(TEMPLATE_BIN-THREADED_INCS)
57ifneq ($(KBUILD_TARGET),os2)
58 TEMPLATE_BIN-KMK_INCS += glob
59endif
60TEMPLATE_BIN-KMK_LIBS = $(TEMPLATE_BIN-THREADED_LIBS) $(kmkmissing_1_TARGET) $(LIB_KUTIL)
61ifdef ELECTRIC_HEAP # for electric heap (see electric.c) - windows only.
62ifeq ($(KBUILD_TARGET),win)
63 TEMPLATE_BIN-KMK_CFLAGS = $(TEMPLATE_BIN-THREADED_CFLAGS) /FI$(kmk_DEFPATH)/electric.h -DELECTRIC_HEAP=1
64else
65 TEMPLATE_BIN-KMK_CFLAGS = $(TEMPLATE_BIN-THREADED_CFLAGS) -include $(kmk_DEFPATH)/electric.h -DELECTRIC_HEAP=1
66endif
67endif
68# GCC sanitizers.
69ifdef GCC_SANITIZERS
70 TEMPLATE_BIN-KMK_CFLAGS ?= $(TEMPLATE_BIN-THREADED_CFLAGS)
71 TEMPLATE_BIN-KMK_CFLAGS += -fsanitize=address -fsanitize=undefined -static-libubsan -D GCC_ADDRESS_SANITIZER
72 TEMPLATE_BIN-KMK_LDFLAGS ?= $(TEMPLATE_BIN-THREADED_LDFLAGS)
73 TEMPLATE_BIN-KMK_LDFLAGS += -fsanitize=address -fsanitize=undefined
74endif
75
76
77#
78# A library containing the missing features needed by kmk and the
79# kmk_* binaries. Saves a bit of work later on.
80#
81LIBRARIES += kmkmissing
82kmkmissing_TEMPLATE = BIN-KMK
83kmkmissing_DEFS = KMK
84kmkmissing_NOINST = 1
85kmkmissing_SOURCES = \
86 kmkbuiltin/err.c \
87 kmkbuiltin/fts.c \
88 kmkbuiltin/setmode.c \
89 kmkbuiltin/strmode.c \
90 kmkbuiltin/kbuild_version.c \
91 kmkbuiltin/kbuild_protection.c \
92 getopt.c \
93 getopt1.c \
94 electric.c
95ifneq ($(KBUILD_TARGET),os2)
96kmkmissing_SOURCES += \
97 glob/glob.c
98endif
99
100kmkmissing_SOURCES.darwin = \
101 kmkbuiltin/darwin.c \
102 glob/fnmatch.c
103
104kmkmissing_SOURCES.dragonfly = \
105 glob/fnmatch.c
106
107kmkmissing_SOURCES.freebsd = \
108 glob/fnmatch.c
109
110kmkmissing_SOURCES.haiku = \
111 kmkbuiltin/haikufakes.c \
112 glob/fnmatch.c
113
114kmkmissing_SOURCES.linux += \
115 kmkbuiltin/strlcpy.c
116
117kmkmissing_SOURCES.openbsd = \
118 kmkbuiltin/openbsd.c
119
120kmkmissing_SOURCES.solaris = \
121 kmkbuiltin/strlcpy.c \
122 kmkbuiltin/solfakes.c \
123 glob/fnmatch.c
124
125kmkmissing_SOURCES.win += \
126 kmkbuiltin/strlcpy.c \
127 kmkbuiltin/mscfakes.c \
128 glob/fnmatch.c \
129 getloadavg.c \
130 w32/subproc/misc.c \
131 w32/subproc/sub_proc.c \
132 w32/subproc/w32err.c \
133 w32/pathstuff.c \
134 w32/imagecache.c
135
136#
137# kmk
138#
139PROGRAMS += kmk
140
141kmk_TEMPLATE = BIN-KMK
142
143kmk_DEFS = \
144 NO_ARCHIVES \
145 EXPERIMENTAL \
146 CONFIG_WITH_TOUPPER_TOLOWER \
147 CONFIG_WITH_DEFINED \
148 CONFIG_WITH_EXPLICIT_MULTITARGET \
149 CONFIG_WITH_DOT_MUST_MAKE \
150 CONFIG_WITH_PREPEND_ASSIGNMENT \
151 CONFIG_WITH_LOCAL_VARIABLES \
152 CONFIG_WITH_2ND_TARGET_EXPANSION \
153 CONFIG_WITH_ALLOC_CACHES \
154 CONFIG_WITH_STRCACHE2 \
155 \
156 KMK \
157 KMK_HELPERS \
158 CONFIG_NO_DEFAULT_SUFFIXES \
159 CONFIG_NO_DEFAULT_PATTERN_RULES \
160 CONFIG_NO_DEFAULT_TERMINAL_RULES \
161 CONFIG_NO_DEFAULT_SUFFIX_RULES \
162 CONFIG_NO_DEFAULT_VARIABLES \
163 \
164 CONFIG_WITH_ABSPATHEX \
165 CONFIG_WITH_COMMANDS_FUNC \
166 CONFIG_WITH_DATE \
167 CONFIG_WITH_DEFINED_FUNCTIONS \
168 CONFIG_WITH_EVALPLUS \
169 CONFIG_WITH_FILE_SIZE \
170 CONFIG_WITH_LOOP_FUNCTIONS \
171 CONFIG_WITH_MATH \
172 CONFIG_WITH_NANOTS \
173 CONFIG_WITH_ROOT_FUNC \
174 CONFIG_WITH_RSORT \
175 CONFIG_WITH_STACK \
176 CONFIG_WITH_STRING_FUNCTIONS \
177 CONFIG_WITH_WHERE_FUNCTION \
178 CONFIG_WITH_WHICH \
179 CONFIG_WITH_XARGS \
180 \
181 CONFIG_WITH_EXTENDED_NOTPARALLEL \
182 CONFIG_WITH_INCLUDEDEP \
183 CONFIG_WITH_VALUE_LENGTH \
184 CONFIG_WITH_COMPARE \
185 CONFIG_WITH_SET_CONDITIONALS \
186 CONFIG_WITH_IF_CONDITIONALS \
187 CONFIG_WITH_PRINTF \
188 CONFIG_WITH_MINIMAL_STATS \
189 \
190 CONFIG_PRETTY_COMMAND_PRINTING \
191 CONFIG_WITH_PRINT_STATS_SWITCH \
192 CONFIG_WITH_PRINT_TIME_SWITCH \
193 CONFIG_WITH_RDONLY_VARIABLE_VALUE \
194 CONFIG_WITH_LAZY_DEPS_VARS \
195 CONFIG_WITH_MEMORY_OPTIMIZATIONS \
196 CONFIG_WITH_COMPILER \
197 \
198 KBUILD_HOST=\"$(KBUILD_TARGET)\" \
199 KBUILD_HOST_ARCH=\"$(KBUILD_TARGET_ARCH)\" \
200 KBUILD_HOST_CPU=\"$(KBUILD_TARGET_CPU)\"
201kmk_DEFS.x86 = CONFIG_WITH_OPTIMIZATION_HACKS
202kmk_DEFS.amd64 = CONFIG_WITH_OPTIMIZATION_HACKS
203kmk_DEFS.win = CONFIG_NEW_WIN32_CTRL_EVENT CONFIG_WITH_FAST_IS_SPACE
204kmk_DEFS.debug = CONFIG_WITH_MAKE_STATS
205ifdef CONFIG_WITH_MAKE_STATS
206 kmk_DEFS += CONFIG_WITH_MAKE_STATS
207endif
208ifdef CONFIG_WITH_EVAL_COMPILER
209 kmk_DEFS += CONFIG_WITH_EVAL_COMPILER
210endif
211ifdef CONFIG_WITH_COMPILER
212 kmk_DEFS += CONFIG_WITH_COMPILE_EVERYTHING
213endif
214
215kmk_SOURCES = \
216 main.c \
217 read.c \
218 hash.c \
219 strcache.c \
220 variable.c \
221 ar.c \
222 arscan.c \
223 commands.c \
224 default.c \
225 dir.c \
226 expand.c \
227 file.c \
228 function.c \
229 implicit.c \
230 job.c \
231 misc.c \
232 remake.c \
233 rule.c \
234 signame.c \
235 version.c \
236 vpath.c \
237 remote-stub.c \
238 \
239 alloccache.c \
240 expreval.c \
241 incdep.c \
242 strcache2.c \
243 kmk_cc_exec.c \
244 kbuild.c \
245 kbuild-object.c
246
247kmk_DEFS.freebsd.x86 = CONFIG_WITHOUT_THREADS
248
249#kmk_LIBS.solaris = malloc
250#kmk_DEFS.solaris += HAVE_MALLINFO
251
252#
253# kmkbuiltin commands
254#
255kmk_DEFS += CONFIG_WITH_KMK_BUILTIN
256kmk_LIBS += $(LIB_KUTIL) $(LIB_KDEP)
257kmk_SOURCES += \
258 kmkbuiltin.c \
259 kmkbuiltin/append.c \
260 kmkbuiltin/cat.c \
261 kmkbuiltin/chmod.c \
262 kmkbuiltin/cmp.c \
263 kmkbuiltin/cmp_util.c \
264 kmkbuiltin/cp.c \
265 kmkbuiltin/cp_utils.c \
266 kmkbuiltin/echo.c \
267 kmkbuiltin/expr.c \
268 kmkbuiltin/install.c \
269 kmkbuiltin/kDepIDB.c \
270 kmkbuiltin/kDepObj.c \
271 kmkbuiltin/md5sum.c \
272 kmkbuiltin/mkdir.c \
273 kmkbuiltin/mv.c \
274 kmkbuiltin/ln.c \
275 kmkbuiltin/printf.c \
276 kmkbuiltin/rm.c \
277 kmkbuiltin/rmdir.c \
278 kmkbuiltin/sleep.c \
279 kmkbuiltin/test.c \
280
281## @todo kmkbuiltin/redirect.c
282
283## Some profiling
284#kmk_SOURCES += kbuildprf.c
285#kmk_DEFS += open=prf_open read=prf_read lseek=prf_lseek close=prf_close
286##kmk_DEFS += KMK_PRF=1
287##kmkmissing_DEFS += KMK_PRF=1
288
289#
290# Standalone kmkbuiltin commands.
291#
292PROGRAMS += \
293 kmk_append \
294 kmk_cat \
295 kmk_chmod \
296 kmk_cp \
297 kmk_cmp \
298 kmk_echo \
299 kmk_expr \
300 kmk_md5sum \
301 kmk_mkdir \
302 kmk_mv \
303 kmk_install \
304 kmk_ln \
305 kmk_printf \
306 kmk_redirect \
307 kmk_rm \
308 kmk_rmdir \
309 kmk_sleep \
310 kmk_test \
311 kDepIDB \
312 kDepObj \
313
314kmk_append_TEMPLATE = BIN-KMK
315kmk_append_DEFS = kmk_builtin_append=main
316kmk_append_INCS = .
317kmk_append_SOURCES = \
318 kmkbuiltin/append.c
319
320kmk_cat_TEMPLATE = BIN-KMK
321kmk_cat_DEFS = kmk_builtin_cat=main
322kmk_cat_SOURCES = \
323 kmkbuiltin/cat.c
324
325kmk_chmod_TEMPLATE = BIN-KMK
326kmk_chmod_DEFS = kmk_builtin_chmod=main
327kmk_chmod_SOURCES = \
328 kmkbuiltin/chmod.c
329
330kmk_cmp_TEMPLATE = BIN-KMK
331kmk_cmp_DEFS = kmk_builtin_cmp=main
332kmk_cmp_SOURCES = \
333 kmkbuiltin/cmp.c \
334 kmkbuiltin/cmp_util.c
335
336kmk_cp_TEMPLATE = BIN-KMK
337kmk_cp_DEFS = kmk_builtin_cp=main
338kmk_cp_SOURCES = \
339 kmkbuiltin/cp.c \
340 kmkbuiltin/cp_utils.c \
341 kmkbuiltin/cmp_util.c
342
343kmk_echo_TEMPLATE = BIN-KMK
344kmk_echo_DEFS = kmk_builtin_echo=main
345kmk_echo_SOURCES = \
346 kmkbuiltin/echo.c
347
348kmk_expr_TEMPLATE = BIN-KMK
349kmk_expr_DEFS = kmk_builtin_expr=main
350kmk_expr_SOURCES = \
351 kmkbuiltin/expr.c
352
353kmk_install_TEMPLATE = BIN-KMK
354kmk_install_DEFS = kmk_builtin_install=main
355kmk_install_SOURCES = \
356 kmkbuiltin/install.c
357
358kmk_ln_TEMPLATE = BIN-KMK
359kmk_ln_DEFS = kmk_builtin_ln=main
360kmk_ln_SOURCES = \
361 kmkbuiltin/ln.c
362
363kmk_mkdir_TEMPLATE = BIN-KMK
364kmk_mkdir_DEFS = kmk_builtin_mkdir=main
365kmk_mkdir_SOURCES = \
366 kmkbuiltin/mkdir.c
367
368kmk_md5sum_TEMPLATE = BIN-KMK
369kmk_md5sum_DEFS = kmk_builtin_md5sum=main
370kmk_md5sum_SOURCES = \
371 kmkbuiltin/md5sum.c
372kmk_md5sum_LIBS = $(LIB_KUTIL)
373
374kmk_mv_TEMPLATE = BIN-KMK
375kmk_mv_DEFS = kmk_builtin_mv=main
376kmk_mv_SOURCES = \
377 kmkbuiltin/mv.c
378
379kmk_printf_TEMPLATE = BIN-KMK
380kmk_printf_DEFS = kmk_builtin_printf=main
381kmk_printf_SOURCES = \
382 kmkbuiltin/printf.c
383
384kmk_rm_TEMPLATE = BIN-KMK
385kmk_rm_DEFS = kmk_builtin_rm=main
386kmk_rm_SOURCES = \
387 kmkbuiltin/rm.c
388
389kmk_redirect_TEMPLATE = BIN-KMK
390kmk_redirect_DEFS = kmk_builtin_redirect=main
391kmk_redirect_SOURCES = \
392 kmkbuiltin/redirect.c
393kmk_redirect_SOURCES.win = \
394 ../lib/startuphacks-win.c
395
396kmk_rmdir_TEMPLATE = BIN-KMK
397kmk_rmdir_DEFS = kmk_builtin_rmdir=main
398kmk_rmdir_SOURCES = \
399 kmkbuiltin/rmdir.c
400
401kmk_sleep_TEMPLATE = BIN-KMK
402kmk_sleep_DEFS = kmk_builtin_sleep=main
403kmk_sleep_SOURCES = \
404 kmkbuiltin/sleep.c
405
406kmk_test_TEMPLATE = BIN-KMK
407kmk_test_DEFS = kmk_builtin_test=main
408kmk_test_SOURCES = \
409 kmkbuiltin/test.c
410
411kDepIDB_TEMPLATE = BIN-KMK
412kDepIDB_DEFS = kmk_builtin_kDepIDB=main
413kDepIDB_INCS = .
414kDepIDB_LIBS = $(LIB_KDEP)
415kDepIDB_SOURCES = \
416 kmkbuiltin/kDepIDB.c
417
418kDepObj_TEMPLATE = BIN-KMK
419kDepObj_DEFS = kmk_builtin_kDepObj=main
420kDepObj_INCS = .
421kDepObj_LIBS = $(LIB_KDEP)
422kDepObj_SOURCES = \
423 kmkbuiltin/kDepObj.c
424
425
426#
427# kmk_gmake - almost plain GNU Make.
428#
429PROGRAMS += kmk_gmake
430
431kmk_gmake_TEMPLATE = BIN-KMK
432kmk_gmake_DEFS = \
433 HAVE_CONFIG_H \
434 CONFIG_WITH_TOUPPER_TOLOWER \
435 EXPERIMENTAL
436# NO_ARCHIVES
437
438kmk_gmake_SOURCES = \
439 main.c \
440 read.c \
441 hash.c \
442 strcache.c \
443 variable.c \
444 ar.c \
445 arscan.c \
446 commands.c \
447 default.c \
448 dir.c \
449 expand.c \
450 file.c \
451 function.c \
452 implicit.c \
453 job.c \
454 misc.c \
455 remake.c \
456 rule.c \
457 signame.c \
458 version.c \
459 vpath.c \
460 remote-stub.c
461
462
463#
464# kmk_fmake - Faster GNU Make.
465#
466ifeq ($(USER),bird) # for experimental purposes only.
467PROGRAMS += kmk_fgmake
468endif
469
470kmk_fgmake_TEMPLATE = BIN-KMK
471kmk_fgmake_DEFS = \
472 HAVE_CONFIG_H \
473 NO_ARCHIVES \
474 CONFIG_WITH_TOUPPER_TOLOWER \
475 EXPERIMENTAL \
476 \
477 CONFIG_WITH_ALLOC_CACHES \
478 CONFIG_WITH_LAZY_DEPS_VARS \
479 CONFIG_WITH_STRCACHE2 \
480 CONFIG_WITH_VALUE_LENGTH \
481 CONFIG_WITH_RDONLY_VARIABLE_VALUE
482# TODO ?
483# CONFIG_WITH_PRINT_STATS_SWITCH \
484# CONFIG_WITH_EXTENDED_NOTPARALLEL \
485
486kmk_fgmake_SOURCES = \
487 main.c \
488 read.c \
489 hash.c \
490 strcache.c \
491 strcache2.c \
492 variable.c \
493 ar.c \
494 arscan.c \
495 commands.c \
496 default.c \
497 dir.c \
498 expand.c \
499 file.c \
500 function.c \
501 implicit.c \
502 job.c \
503 misc.c \
504 alloccache.c \
505 remake.c \
506 rule.c \
507 signame.c \
508 version.c \
509 vpath.c \
510 remote-stub.c
511
512
513include $(FILE_KBUILD_SUB_FOOTER)
514
515
516#
517# Use checked in config.h instead of running ./Configure for it.
518#
519kmk_config.h.$(KBUILD_TARGET) := $(kmk_DEFPATH)/config.h.$(KBUILD_TARGET)
520$(kmk_0_OUTDIR)/config.h: $(kmk_config.h.$(KBUILD_TARGET))
521 $(MKDIR) -p $(dir $@)
522 $(CP) $^ $@
523
524#
525# Some missing headers.
526#
527$(kmk_0_OUTDIR)/fts.h: $(kmk_DEFPATH)/kmkbuiltin/ftsfake.h | $(call DIRDEP,$(kmk_0_OUTDIR))
528 $(CP) $^ $@
529
530$(kmk_0_OUTDIR)/unistd.h: | $(call DIRDEP,$(kmk_0_OUTDIR))
531 $(ECHO_EXT) > $@
532
533$(kmk_0_OUTDIR)/sysexits.h: | $(call DIRDEP,$(kmk_0_OUTDIR))
534 $(ECHO_EXT) > $@
535
536$(kmk_0_OUTDIR)/inttypes.h: | $(call DIRDEP,$(kmk_0_OUTDIR))
537 $(ECHO_EXT) > $@
538
539$(kmk_0_OUTDIR)/paths.h: | $(call DIRDEP,$(kmk_0_OUTDIR))
540 $(ECHO_EXT) > $@
541
542$(kmk_0_OUTDIR)/pwd.h: | $(call DIRDEP,$(kmk_0_OUTDIR))
543 $(ECHO_EXT) > $@
544
545$(kmk_0_OUTDIR)/grp.h: | $(call DIRDEP,$(kmk_0_OUTDIR))
546 $(ECHO_EXT) > $@
547
548
549#
550# Some tests.
551#
552parallel: parallel_1 parallel_2 parallel_3 parallel_4 parallel_5
553parallel_1 parallel_2 parallel_3 parallel_4 parallel_5:
554 echo $@_start ; sleep 1; echo $@_done
555
556my_test:
557 echo "1"
558 echo "2"
559 echo "3"
560 echo "4"
561
562
563#
564# Shell execution tests.
565#
566test_shell: test_shell_quoting test_shell_double_quoting test_shell_newline
567
568# shell double and single quoting check (was busted on windows in 3.81).
569test_shell_quoting:
570 $(ECHO_EXT) "double quoted sTrInG"
571 $(ECHO_EXT) "double quoted sTrInG" | $(SED_EXT) -e "s/sTrInG/string/g"
572 $(ECHO_EXT) 'single quoted sTrInG' | $(SED_EXT) -e 's/sTrInG/string/g'
573 $(ECHO) "This string should not be printed with double quotes."
574 $(ECHO) 'This string should not be printed with single quotes.'
575 ( echo " #define PWD \"`pwd`\""; )
576
577test_shell_double_quoting:
578 $(ECHO_EXT) "foo foo foo" | $(SED_EXT) -e \
579 "s/foo/$@/" -e \
580 "s/foo/works/" \
581 -e "s/foo/\!/"
582
583test_shell_double_quoting2:
584 $(ECHO_EXT) "foo foo foo" | $(SED_EXT) -e \
585 "s/foo/$@/" -e \
586 "s/foo/works/" \
587 -e\
588 "s/foo/\!/"
589
590# when using batch mode shell, the newline got escaped twice and spoiling everything.
591test_shell_newline:
592 $(ECHO_EXT) "foo foo foo" | $(SED_EXT) -e \
593 's/foo/$@/' -e \
594 's/foo/works/' \
595 -e 's/foo/\!/'
596
597
598test_stack:
599 $(MAKE) -f $(kmk_DEFPATH)/testcase-stack.kmk
600
601test_math:
602 $(MAKE) -f $(kmk_DEFPATH)/testcase-math.kmk
603
604test_if1of:
605 $(MAKE) -f $(kmk_DEFPATH)/testcase-if1of.kmk
606
607test_local:
608 $(MAKE) -f $(kmk_DEFPATH)/testcase-local.kmk
609
610test_includedep:
611 $(MAKE) -f $(kmk_DEFPATH)/testcase-includedep.kmk
612
613test_root:
614 $(MAKE) -f $(kmk_DEFPATH)/testcase-root.kmk
615
616test_2ndtargetexp:
617 $(MAKE) -f $(kmk_DEFPATH)/testcase-2ndtargetexp.kmk
618
619test_30_continued_on_failure_worker:
620 this_executable_does_not_exist.exe
621 echo "We shouldn't see this..."
622
623test_30_continued_on_failure:
624 $(MAKE) -f $(MAKEFILE) test_30_continued_on_failure_worker; \
625 RC=$$?; \
626 if test $${RC} -ne 2; then \
627 echo "$@: FAILED - exit code $${RC} instead of 2."; \
628 exit 1; \
629 else \
630 echo "$@: SUCCESS"; \
631 fi
632
633test_lazy_deps_vars:
634 $(MAKE) -C $(kmk_DEFPATH) -f testcase-lazy-deps-vars.kmk
635
636
637test_all: \
638 test_math \
639 test_stack \
640 test_shell \
641 test_if1of \
642 test_local \
643 test_root \
644 test_includedep \
645 test_2ndtargetexp \
646 test_30_continued_on_failure \
647 test_lazy_deps_vars
648
649
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