diff options
author | Andrew Shadura <andrew@shadura.me> | 2015-07-25 14:44:29 +0200 |
---|---|---|
committer | Andrew Shadura <andrew@shadura.me> | 2015-07-25 14:44:29 +0200 |
commit | aba913436a8521abe405a04ed71388989e1d646f (patch) | |
tree | 0e2fea8c3ccf06ae3b370806810e382ca51f4a98 /examples | |
parent | 1d3d0bb1e461a81bc1a9cd4520958bd2b1db4c7f (diff) |
Imported Upstream version 0.25.0
Diffstat (limited to 'examples')
100 files changed, 1991 insertions, 156 deletions
diff --git a/examples/Makefile b/examples/Makefile index cc8dba9..0934f7b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -33,6 +33,7 @@ SUBDIR+= hello_xxzip SUBDIR+= hello_progs SUBDIR+= hello_progs2 SUBDIR+= tools +SUBDIR+= tools2 .ifdef WITH_require_tools SUBDIR+= hello_require_tools diff --git a/examples/hello_TARGETS/Makefile b/examples/hello_TARGETS/Makefile new file mode 100644 index 0000000..95fcf15 --- /dev/null +++ b/examples/hello_TARGETS/Makefile @@ -0,0 +1,15 @@ +SUBDIR = hello1 hello2 + +# additional recursive target +TARGETS += codingstylechk + +# We want to include man pages to the distribution tarball. +# For this we do the following: +# mkcmake manpages; tar -cf /tmp/tarball.tar . +TARGETS += _manpages # _manpages is a new recursive target +.PHONY: manpages +manpages: _manpages + @rm ${MKC_CACHEDIR}/_mkc* + +.include "test.mk" +.include <mkc.subdir.mk> diff --git a/examples/hello_TARGETS/Makefile.inc b/examples/hello_TARGETS/Makefile.inc new file mode 100644 index 0000000..b3f20f7 --- /dev/null +++ b/examples/hello_TARGETS/Makefile.inc @@ -0,0 +1,10 @@ +CSCHK = test hello1 = '${.CURDIR:T}' # something useful should be here + +.if make(codingstylechk) +MKCHECKS = no +.endif + +.PHONY: codingstylechk +codingstylechk: + @${_MESSAGE_V} "Coding style check for ${PROJECTNAME}"; \ + ${CSCHK} || { echo FAILED 1>&2; false; } diff --git a/examples/hello_TARGETS/expect.out b/examples/hello_TARGETS/expect.out new file mode 100644 index 0000000..e88091d --- /dev/null +++ b/examples/hello_TARGETS/expect.out @@ -0,0 +1,67 @@ +Hello World 1! +Hello World 2! +=========== all ============ +/objdir/Makefile +/objdir/Makefile.inc +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/hello1/Makefile +/objdir/hello1/hello1 +/objdir/hello1/hello1.1 +/objdir/hello1/hello1.c +/objdir/hello1/hello1.o +/objdir/hello1/hello1.pod +/objdir/hello2/Makefile +/objdir/hello2/hello2 +/objdir/hello2/hello2.1 +/objdir/hello2/hello2.c +/objdir/hello2/hello2.o +/objdir/hello2/hello2.pod +/objdir/hello_TARGETS.test.out.tmp +/objdir/test.mk +========= codingstylechk ========== +================================================== +codingstylechk ===> hello_TARGETS/hello1 +Coding style check for hello1 +================================================== +codingstylechk ===> hello_TARGETS/hello2 +Coding style check for hello2 +FAILED +*** Error code 1 + +Stop. +bmake: stopped in /objdir/hello2 +*** Error code 1 + +Stop. +bmake: stopped in /objdir +cschk ex=1 +============= files =============== +/objdir/Makefile +/objdir/Makefile.inc +/objdir/expect.out +/objdir/hello1/Makefile +/objdir/hello1/hello1.c +/objdir/hello1/hello1.pod +/objdir/hello2/Makefile +/objdir/hello2/hello2.c +/objdir/hello2/hello2.pod +/objdir/hello_TARGETS.test.out.tmp +/objdir/test.mk +=========== manpages ============ +/objdir/Makefile +/objdir/Makefile.inc +/objdir/expect.out +/objdir/hello1/Makefile +/objdir/hello1/hello1.1 +/objdir/hello1/hello1.c +/objdir/hello1/hello1.pod +/objdir/hello2/Makefile +/objdir/hello2/hello2.1 +/objdir/hello2/hello2.c +/objdir/hello2/hello2.pod +/objdir/hello_TARGETS.test.out.tmp +/objdir/test.mk diff --git a/examples/hello_TARGETS/hello1/Makefile b/examples/hello_TARGETS/hello1/Makefile new file mode 100644 index 0000000..d1e6601 --- /dev/null +++ b/examples/hello_TARGETS/hello1/Makefile @@ -0,0 +1,15 @@ +PROG = hello1 +MAN = hello1.1 + +WARNS = 4 + +CLEANFILES = hello1.1 + +_manpages: ${MAN} + +# the following is just a regression test for exporting TARGETS +.if empty(TARGETS:Mcoding*) +MKC_ERR_MSG = "qqq" +.endif + +.include <mkc.mk> diff --git a/examples/hello_TARGETS/hello1/hello1.c b/examples/hello_TARGETS/hello1/hello1.c new file mode 100644 index 0000000..026f7e0 --- /dev/null +++ b/examples/hello_TARGETS/hello1/hello1.c @@ -0,0 +1,8 @@ +#include <stdio.h> +#include <stdlib.h> + +int main (int argc, char **argv ) +{ + puts ("Hello World 1!"); + exit (0); +} diff --git a/examples/hello_TARGETS/hello1/hello1.pod b/examples/hello_TARGETS/hello1/hello1.pod new file mode 100644 index 0000000..92581bb --- /dev/null +++ b/examples/hello_TARGETS/hello1/hello1.pod @@ -0,0 +1,17 @@ +=head1 NAME + +hello1 - mk-configure example program + +=head1 INTRODCTION + +lalala + +=head1 STEP1 + +bla bla bla + +=head1 STEP2 + +bla bla bla + +=head1 BYE diff --git a/examples/hello_TARGETS/hello2/Makefile b/examples/hello_TARGETS/hello2/Makefile new file mode 100644 index 0000000..20ada21 --- /dev/null +++ b/examples/hello_TARGETS/hello2/Makefile @@ -0,0 +1,10 @@ +PROG = hello2 +MAN = hello2.1 + +WARNS = 4 + +CLEANFILES = hello2.1 + +_manpages: ${MAN} + +.include <mkc.mk> diff --git a/examples/hello_TARGETS/hello2/hello2.c b/examples/hello_TARGETS/hello2/hello2.c new file mode 100644 index 0000000..95331f9 --- /dev/null +++ b/examples/hello_TARGETS/hello2/hello2.c @@ -0,0 +1,8 @@ +#include <stdio.h> +#include <stdlib.h> + +int main (int argc, char **argv ) +{ + puts ("Hello World 2!"); + exit (0); +} diff --git a/examples/hello_TARGETS/hello2/hello2.pod b/examples/hello_TARGETS/hello2/hello2.pod new file mode 100644 index 0000000..4479946 --- /dev/null +++ b/examples/hello_TARGETS/hello2/hello2.pod @@ -0,0 +1,22 @@ +=head1 NAME + +hello2 - mk-configure example + +=head1 SYNOPSIS + +B<hello2> I<[options]> I<[files...]> + +=head1 DESCRIPTION + +bla bla bla + +=head1 AUTHOR + +Copyright (c) 2010 Aleksey Cheusov <vle@gmx.net> + +=head1 HOME + +L<http://sourceforge.net/projects/mk-configure> + +=head1 SEE ALSO +L<mk-configure(7)> diff --git a/examples/hello_TARGETS/test.mk b/examples/hello_TARGETS/test.mk new file mode 100644 index 0000000..6949660 --- /dev/null +++ b/examples/hello_TARGETS/test.mk @@ -0,0 +1,32 @@ +# I added "codingstylechk" to "test" just for mk-configure regr. test + +test: +.PHONY : test_output +test_output : + @:; \ + ${OBJDIR_hello1}/hello1; \ + ${OBJDIR_hello2}/hello2; \ + MKCATPAGES=yes; export MKCATPAGES; \ + \ + echo =========== all ============; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= codingstylechk ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir 2>/dev/null 1>&2; \ + { ${MAKE} ${MAKEFLAGS} codingstylechk 2>&1; echo cschk ex=$$?; } | \ + env NOSORT=1 mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ============= files ===============; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo =========== manpages ============; \ + env MKCATPAGES=no ${MAKE} ${MAKEFLAGS} cleandir 2>/dev/null 1>&2; \ + ${MAKE} ${MAKEFLAGS} manpages 2>/dev/null 1>&2; \ + find ${.OBJDIR} -type f | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}" + \ + ${MAKE} ${MAKEFLAGS} cleandir 2>/dev/null 1>&2 + +.include <mkc.minitest.mk> diff --git a/examples/hello_calc2/Makefile b/examples/hello_calc2/Makefile index 098b5af..c425b22 100644 --- a/examples/hello_calc2/Makefile +++ b/examples/hello_calc2/Makefile @@ -1,7 +1,8 @@ PROG = calc - SRCS = lex.l parser.y +DPSRCS = lex.c parser.c parser.h + YHEADER = 1 YPREFIX = calc_ LPREFIX = calc_ diff --git a/examples/hello_calc2/expect.out b/examples/hello_calc2/expect.out index a50aab6..d98c36f 100644 --- a/examples/hello_calc2/expect.out +++ b/examples/hello_calc2/expect.out @@ -49,6 +49,28 @@ /objdir/lex.l /objdir/parser.y /objdir/test.mk +========== depend =========== +/objdir/.depend +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_custom_prog_bison.err +/objdir/_mkc_custom_prog_bison.res +/objdir/_mkc_custom_prog_flex.err +/objdir/_mkc_custom_prog_flex.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/expressions.txt +/objdir/hello_calc2.test.out.tmp +/objdir/lex.c +/objdir/lex.d +/objdir/lex.l +/objdir/parser.c +/objdir/parser.d +/objdir/parser.h +/objdir/parser.y +/objdir/test.mk ======= distclean ========== /objdir/Makefile /objdir/expect.out diff --git a/examples/hello_calc2/test.mk b/examples/hello_calc2/test.mk index cf8cf2f..e533b28 100644 --- a/examples/hello_calc2/test.mk +++ b/examples/hello_calc2/test.mk @@ -3,13 +3,14 @@ test_output: @set -e; \ ${.OBJDIR}/calc < ${.CURDIR}/expressions.txt; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ @@ -24,6 +25,11 @@ test_output: find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ + echo ========== depend ===========; \ + ${MAKE} ${MAKEFLAGS} depend -j4 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ + \ echo ======= distclean ==========; \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR} -type f | \ diff --git a/examples/hello_compilers/test.mk b/examples/hello_compilers/test.mk index d917440..8709b94 100644 --- a/examples/hello_compilers/test.mk +++ b/examples/hello_compilers/test.mk @@ -3,19 +3,20 @@ test_output: @set -e; \ ${.OBJDIR}/compiler_test; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ diff --git a/examples/hello_customtests/expect.out b/examples/hello_customtests/expect.out index 92f48f1..bcf94d9 100644 --- a/examples/hello_customtests/expect.out +++ b/examples/hello_customtests/expect.out @@ -64,6 +64,8 @@ shtest is good: NO /objdir/hello_customtests.c /objdir/hello_customtests.test.out.tmp /objdir/test.mk +======= errorcheck + MAKEOBJDIR =========== +true_is_available=1 ======= distclean ========== /objdir/Makefile /objdir/custom_tests/alloca_in_alloca_h.c diff --git a/examples/hello_customtests/test.mk b/examples/hello_customtests/test.mk index 99e946e..adfedf7 100644 --- a/examples/hello_customtests/test.mk +++ b/examples/hello_customtests/test.mk @@ -1,7 +1,10 @@ +CLEANDIRS += ${.CURDIR}/testdir + .PHONY : test_output test_output: @set -e; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ @@ -11,13 +14,13 @@ test_output: ${.OBJDIR}/hello_customtests; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -26,6 +29,11 @@ test_output: find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ + echo ======= errorcheck + MAKEOBJDIR ===========; \ + mkdir ${.CURDIR}/testdir || true; \ + ${MAKE} ${MAKEFLAGS} errorcheck MAKEOBJDIR=${.CURDIR}/testdir > /dev/null; \ + printf 'true_is_available=%s\n' `cat ${.CURDIR}/testdir/_mkc_custom_true_is_available.res`; \ + \ echo ======= distclean ==========; \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR} -type f | \ diff --git a/examples/hello_customtests2/Makefile b/examples/hello_customtests2/Makefile index 98d8732..b3b6b9c 100644 --- a/examples/hello_customtests2/Makefile +++ b/examples/hello_customtests2/Makefile @@ -4,8 +4,11 @@ WARNS = 4 MKC_CUSTOM_DIR = ${.CURDIR}/../hello_customtests/custom_tests -MKC_CHECK_CUSTOM = alloca_in_stdlib_h -MKC_CHECK_CUSTOM += alloca_in_alloca_h +MKC_CHECK_CUSTOM = alloca_in_stdlib_h alloca_in_alloca_h \ + true_is_available + +# full path is for regression test +MKC_CUSTOM_FN.true_is_available = ${MKC_CUSTOM_DIR}/true_is_available MKC_REQD = 0.11.0 diff --git a/examples/hello_customtests2/expect.out b/examples/hello_customtests2/expect.out index bbf1f24..04eecd6 100644 --- a/examples/hello_customtests2/expect.out +++ b/examples/hello_customtests2/expect.out @@ -6,6 +6,8 @@ /objdir/_mkc_custom_alloca_in_alloca_h.res /objdir/_mkc_custom_alloca_in_stdlib_h.err /objdir/_mkc_custom_alloca_in_stdlib_h.res +/objdir/_mkc_custom_true_is_available.err +/objdir/_mkc_custom_true_is_available.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res /objdir/expect.out @@ -29,12 +31,16 @@ alloca(3) succeeded /objdir/_mkc_custom_alloca_in_alloca_h.res /objdir/_mkc_custom_alloca_in_stdlib_h.err /objdir/_mkc_custom_alloca_in_stdlib_h.res +/objdir/_mkc_custom_true_is_available.err +/objdir/_mkc_custom_true_is_available.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res /objdir/expect.out /objdir/hello_customtests2.c /objdir/hello_customtests2.test.out.tmp /objdir/test.mk +======= errorcheck + MAKEOBJDIR =========== +true_is_available=1 ======= distclean ========== /objdir/Makefile /objdir/expect.out diff --git a/examples/hello_customtests2/test.mk b/examples/hello_customtests2/test.mk index 438e4ab..b3ce488 100644 --- a/examples/hello_customtests2/test.mk +++ b/examples/hello_customtests2/test.mk @@ -1,7 +1,10 @@ +CLEANDIRS += ${.CURDIR}/testdir + .PHONY : test_output test_output: @set -e; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ @@ -11,13 +14,13 @@ test_output: ${.OBJDIR}/hello_customtests2; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -26,6 +29,11 @@ test_output: find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ + echo ======= errorcheck + MAKEOBJDIR ===========; \ + mkdir ${.CURDIR}/testdir || true; \ + ${MAKE} ${MAKEFLAGS} errorcheck MAKEOBJDIR=${.CURDIR}/testdir > /dev/null; \ + printf 'true_is_available=%s\n' `cat ${.CURDIR}/testdir/_mkc_custom_true_is_available.res`; \ + \ echo ======= distclean ==========; \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR} -type f | \ diff --git a/examples/hello_cxx/test.mk b/examples/hello_cxx/test.mk index f930d66..a961674 100644 --- a/examples/hello_cxx/test.mk +++ b/examples/hello_cxx/test.mk @@ -3,19 +3,20 @@ test_output: @set -e; \ ${.OBJDIR}/hello_cxx; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ diff --git a/examples/hello_cxxlib/test.mk b/examples/hello_cxxlib/test.mk index c0db93a..ce5dd80 100644 --- a/examples/hello_cxxlib/test.mk +++ b/examples/hello_cxxlib/test.mk @@ -1,6 +1,7 @@ .PHONY : test_output test_output: @set -e; \ + MKCATPAGES=yes; export MKCATPAGES; \ rm -rf ${.OBJDIR}${PREFIX}; \ LD_LIBRARY_PATH=${.CURDIR}/cxxlib:$$LD_LIBRARY_PATH; \ DYLD_LIBRARY_PATH=${.CURDIR}/cxxlib:$$LD_LIBRARY_PATH; \ @@ -12,13 +13,13 @@ test_output: mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ diff --git a/examples/hello_dictd/expect.out b/examples/hello_dictd/expect.out index bdcbe32..cbed363 100644 --- a/examples/hello_dictd/expect.out +++ b/examples/hello_dictd/expect.out @@ -268,6 +268,114 @@ libdz fake3 /objdir/libmaa/prime.c /objdir/libmaa/set.c /objdir/test.mk +=========== MKOBJDIRS=auto ============ +/objdir +/objdir/Makefile +/objdir/Makefile.inc +/objdir/dict +/objdir/dict/Makefile +/objdir/dict/dict.1 +/objdir/dict/dict.c +/objdir/dictd +/objdir/dictd/Makefile +/objdir/dictd/dictd.8 +/objdir/dictd/dictd.c +/objdir/dictfmt +/objdir/dictfmt/Makefile +/objdir/dictfmt/dictfmt.1 +/objdir/dictfmt/dictfmt.c +/objdir/dictzip +/objdir/dictzip/Makefile +/objdir/dictzip/dictzip.1 +/objdir/dictzip/dictzip.c +/objdir/doc +/objdir/doc/Makefile +/objdir/doc/doc.txt +/objdir/expect.out +/objdir/hello_dictd.test.out.tmp +/objdir/libcommon +/objdir/libcommon/Makefile +/objdir/libcommon/iswalnum.c +/objdir/libcommon/linkme.mk +/objdir/libcommon/str.c +/objdir/libdz +/objdir/libdz/Makefile +/objdir/libdz/dz.c +/objdir/libdz/export.sym +/objdir/libdz/linkme.mk +/objdir/libmaa +/objdir/libmaa/Makefile +/objdir/libmaa/export.sym +/objdir/libmaa/linkme.mk +/objdir/libmaa/log.c +/objdir/libmaa/prime.c +/objdir/libmaa/set.c +/objdir/test.mk +=== +/objdir/obj1/objdir +/objdir/obj1/objdir/dict +/objdir/obj1/objdir/dictd +/objdir/obj1/objdir/dictfmt +/objdir/obj1/objdir/dictzip +/objdir/obj1/objdir/libcommon +/objdir/obj1/objdir/libdz +/objdir/obj1/objdir/libmaa +=========== MKOBJDIRS=yes ============ +obj1 does not exist +=== +/objdir +/objdir/Makefile +/objdir/Makefile.inc +/objdir/dict +/objdir/dict/Makefile +/objdir/dict/dict.1 +/objdir/dict/dict.c +/objdir/dictd +/objdir/dictd/Makefile +/objdir/dictd/dictd.8 +/objdir/dictd/dictd.c +/objdir/dictfmt +/objdir/dictfmt/Makefile +/objdir/dictfmt/dictfmt.1 +/objdir/dictfmt/dictfmt.c +/objdir/dictzip +/objdir/dictzip/Makefile +/objdir/dictzip/dictzip.1 +/objdir/dictzip/dictzip.c +/objdir/doc +/objdir/doc/Makefile +/objdir/doc/doc.txt +/objdir/expect.out +/objdir/hello_dictd.test.out.tmp +/objdir/libcommon +/objdir/libcommon/Makefile +/objdir/libcommon/iswalnum.c +/objdir/libcommon/linkme.mk +/objdir/libcommon/str.c +/objdir/libdz +/objdir/libdz/Makefile +/objdir/libdz/dz.c +/objdir/libdz/export.sym +/objdir/libdz/linkme.mk +/objdir/libmaa +/objdir/libmaa/Makefile +/objdir/libmaa/export.sym +/objdir/libmaa/linkme.mk +/objdir/libmaa/log.c +/objdir/libmaa/prime.c +/objdir/libmaa/set.c +/objdir/test.mk +=== +/objdir/obj2/objdir +/objdir/obj2/objdir/dict +/objdir/obj2/objdir/dictd +/objdir/obj2/objdir/dictfmt +/objdir/obj2/objdir/dictzip +/objdir/obj2/objdir/libcommon +/objdir/obj2/objdir/libdz +/objdir/obj2/objdir/libmaa +/objdir/obj3 +=========== MKOBJDIRS=no ============ ======= errorcheck ========== /objdir/Makefile /objdir/Makefile.inc @@ -369,6 +477,60 @@ libdz fake3 /objdir/libmaa/set.o /objdir/libmaa/set.os /objdir/test.mk +======= -C dict all ========== +/objdir/Makefile +/objdir/Makefile.inc +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/dict/Makefile +/objdir/dict/dict +/objdir/dict/dict.1 +/objdir/dict/dict.c +/objdir/dict/dict.cat1 +/objdir/dict/dict.o +/objdir/dictd/Makefile +/objdir/dictd/dictd.8 +/objdir/dictd/dictd.c +/objdir/dictfmt/Makefile +/objdir/dictfmt/dictfmt.1 +/objdir/dictfmt/dictfmt.c +/objdir/dictzip/Makefile +/objdir/dictzip/dictzip.1 +/objdir/dictzip/dictzip.c +/objdir/doc/Makefile +/objdir/doc/doc.txt +/objdir/expect.out +/objdir/hello_dictd.test.out.tmp +/objdir/libcommon/Makefile +/objdir/libcommon/iswalnum.c +/objdir/libcommon/iswalnum.o +/objdir/libcommon/libcommon.a +/objdir/libcommon/linkme.mk +/objdir/libcommon/str.c +/objdir/libcommon/str.o +/objdir/libdz/Makefile +/objdir/libdz/dz.c +/objdir/libdz/export.sym +/objdir/libdz/linkme.mk +/objdir/libmaa/Makefile +/objdir/libmaa/export.sym +/objdir/libmaa/libmaa.a +/objdir/libmaa/libmaa.so +/objdir/libmaa/libmaa.so.1 +/objdir/libmaa/libmaa.so.1.2.0 +/objdir/libmaa/linkme.mk +/objdir/libmaa/log.c +/objdir/libmaa/log.o +/objdir/libmaa/log.os +/objdir/libmaa/prime.c +/objdir/libmaa/prime.o +/objdir/libmaa/prime.os +/objdir/libmaa/set.c +/objdir/libmaa/set.o +/objdir/libmaa/set.os +/objdir/test.mk ========= installdirs-dict ========== /objdir/prefix /objdir/prefix/bin @@ -390,8 +552,22 @@ libdz fake3 /objdir/prefix/man/cat1/dict.0 /objdir/prefix/man/man1 /objdir/prefix/man/man1/dict.1 +========= -Cdict install ========== +/objdir/prefix +/objdir/prefix/bin +/objdir/prefix/bin/dict +/objdir/prefix/lib +/objdir/prefix/lib/libmaa.a +/objdir/prefix/lib/libmaa.so +/objdir/prefix/lib/libmaa.so.1 +/objdir/prefix/lib/libmaa.so.1.2.0 +/objdir/prefix/man +/objdir/prefix/man/cat1 +/objdir/prefix/man/cat1/dict.0 +/objdir/prefix/man/man1 +/objdir/prefix/man/man1/dict.1 ======= uninstall-dict ========== -========== clean-dict =========== +========== -C dict clean =========== /objdir/Makefile /objdir/Makefile.inc /objdir/_mkc_compiler_type.err diff --git a/examples/hello_dictd/test.mk b/examples/hello_dictd/test.mk index ae6492f..1dd3944 100644 --- a/examples/hello_dictd/test.mk +++ b/examples/hello_dictd/test.mk @@ -1,6 +1,11 @@ +next_level != expr ${.MAKE.LEVEL} + 1 + .PHONY : test_output test_output : @set -e; \ + MKCATPAGES=yes; export MKCATPAGES; \ + SRCTOP=`pwd`; export SRCTOP; \ + \ rm -rf ${.OBJDIR}${PREFIX}; \ LD_LIBRARY_PATH=${.CURDIR}/libdz:${.CURDIR}/libmaa:$$LD_LIBRARY_PATH; \ DYLD_LIBRARY_PATH=${.CURDIR}/libdz:${.CURDIR}/libmaa:$$LD_LIBRARY_PATH; \ @@ -23,6 +28,7 @@ test_output : esac; \ \ echo =========== all ============; \ + ${MAKE} ${MAKEFLAGS} -j4 all > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ @@ -32,12 +38,12 @@ test_output : mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -55,15 +61,55 @@ test_output : ${MAKE} ${MAKEFLAGS} distclean > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + rm -rf ${.OBJDIR}${PREFIX} ${.OBJDIR}/usr; \ + echo =========== MKOBJDIRS=auto ============; \ + env TARGETS=fake ${MAKE} ${MAKEFLAGS} fake \ + MKCHECKS=no MAKEOBJDIRPREFIX=${.OBJDIR}/obj1 > /dev/null; \ + find ${.OBJDIR} -type d -o -type f -o -type l | grep -v obj1 | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + echo ===; \ + find ${.OBJDIR}/obj1/${.OBJDIR} -type d -o -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; rm -rf obj1; \ + \ + echo =========== MKOBJDIRS=yes ============; \ + env TARGETS=fake ${MAKE} ${MAKEFLAGS} fake \ + MKCHECKS=no MKOBJDIRS=yes MAKEOBJDIRPREFIX=${.OBJDIR}/obj1 > /dev/null; \ + printf '%s' 'obj1 '; \ + if test -d ${.OBJDIR}/obj1; then echo exists; else echo does not exist; fi; \ + rm -rf obj1; \ + echo ===; \ + ${MAKE} ${MAKEFLAGS} obj MKOBJDIRS=yes MAKEOBJDIRPREFIX=${.OBJDIR}/obj2 > /dev/null; \ + ${MAKE} ${MAKEFLAGS} obj MKOBJDIRS=yes MAKEOBJDIR=${.OBJDIR}/obj3 > /dev/null; \ + find ${.OBJDIR} -type d -o -type f -o -type l | grep -v 'obj[23]' | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + echo ===; \ + find ${.OBJDIR}/obj2/${.OBJDIR} ${.OBJDIR}/obj3 \ + -type d -o -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; rm -rf obj2 obj3; \ + \ + echo =========== MKOBJDIRS=no ============; \ + ${MAKE} ${MAKEFLAGS} obj MKOBJDIRS=no MAKEOBJDIRPREFIX=${.OBJDIR}/obj2 > /dev/null; \ + ${MAKE} ${MAKEFLAGS} obj MKOBJDIRS=no MAKEOBJDIR=${.OBJDIR}/obj3 > /dev/null; \ + find ${.OBJDIR} -type d -o -type f -o -type l | grep 'obj[23]' | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; rm -rf obj2 obj3; \ + \ echo ======= errorcheck ==========; \ ${MAKE} ${MAKEFLAGS} errorcheck > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ ${MAKE} ${MAKEFLAGS} cleandir > /dev/null; \ + \ echo ======= all-dict ==========; \ - ${MAKE} ${MAKEFLAGS} all-dict > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all-dict > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ======= -C dict all ==========; \ + ${MAKE} ${MAKEFLAGS} clean-dict > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} -C dict all > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ + \ echo ========= installdirs-dict ==========; \ ${MAKE} ${MAKEFLAGS} installdirs-dict DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ @@ -74,13 +120,19 @@ test_output : find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ + echo ========= -Cdict install ==========; \ + rm -rf ${.OBJDIR}${PREFIX} > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} -C dict install DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ echo ======= uninstall-dict ==========; \ - ${MAKE} ${MAKEFLAGS} uninstall-dict DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall-dict DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ - echo ========== clean-dict ===========; \ - ${MAKE} ${MAKEFLAGS} clean-dict > /dev/null; \ + echo ========== -C dict clean ===========; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} -C dict clean > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -101,14 +153,14 @@ test_output : mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======= uninstall-doc ==========; \ - ${MAKE} ${MAKEFLAGS} uninstall-doc DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall-doc DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo =========== all with NOSUBDIR ============; \ ${MAKE} ${MAKEFLAGS} distclean > /dev/null; \ NOSUBDIR='dictfmt dictzip'; export NOSUBDIR; \ - ${MAKE} ${MAKEFLAGS} all > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ diff --git a/examples/hello_files/shell_func.texinfo b/examples/hello_files/shell_func.texinfo index dd335be..fa0012e 100644 --- a/examples/hello_files/shell_func.texinfo +++ b/examples/hello_files/shell_func.texinfo @@ -15,8 +15,8 @@ This is fake! @titlepage @title shell_func info page -@subtitle Edition @value{EDITION}, Version @value{VERSION}. -@subtitle @value{UPDATE-MONTH} +@subtitle Edition 1, Version 7. +@subtitle 5 @author Aleksey Cheusov @page diff --git a/examples/hello_files/test.mk b/examples/hello_files/test.mk index 72afde2..c354e53 100644 --- a/examples/hello_files/test.mk +++ b/examples/hello_files/test.mk @@ -1,28 +1,28 @@ .PHONY : test_output test_output: @set -e; \ - MKHTML=yes; export MKHTML; \ - \ + MKCATPAGES=yes; export MKCATPAGES; \ rm -rf ${.OBJDIR}${PREFIX}; \ \ echo =========== all ============; \ + ${MAKE} ${MAKEFLAGS} -j4 all > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== all+html ==========; \ - ${MAKE} ${MAKEFLAGS} all \ - > /dev/null; \ + MKHTML=yes; export MKHTML; \ + ${MAKE} ${MAKEFLAGS} -j4 all > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ @@ -38,7 +38,7 @@ test_output: \ echo ==== install MKINSTALL=no ====; \ MKINSTALL=no; export MKINSTALL; \ - ${MAKE} ${MAKEFLAGS} all installdirs install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} -j4 all installdirs install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ diff --git a/examples/hello_glib2/test.mk b/examples/hello_glib2/test.mk index da83e2f..8604e62 100644 --- a/examples/hello_glib2/test.mk +++ b/examples/hello_glib2/test.mk @@ -3,19 +3,20 @@ test_output: @set -e; \ ${.OBJDIR}/hello_glib2 | sed 's,[0-9][0-9]*,N,'; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ diff --git a/examples/hello_lex/Makefile b/examples/hello_lex/Makefile index 211e442..e21d074 100644 --- a/examples/hello_lex/Makefile +++ b/examples/hello_lex/Makefile @@ -1,5 +1,7 @@ -PROG = hello_lex -SRCS = hello_lex.l +PROG = hello_lex +SRCS = hello_lex.l + +DPSRCS = hello_lex.c .include "test.mk" .include <mkc.prog.mk> diff --git a/examples/hello_lex/expect.out b/examples/hello_lex/expect.out index 4862fd7..7e6f996 100644 --- a/examples/hello_lex/expect.out +++ b/examples/hello_lex/expect.out @@ -33,13 +33,50 @@ /objdir/hello_lex.test.out.tmp /objdir/input.txt /objdir/test.mk -==== SHRTOUT=yes ==== +========== depend =========== +/objdir/.depend +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/_mkc_prog_lex.err +/objdir/_mkc_prog_lex.res +/objdir/expect.out +/objdir/hello_lex.c +/objdir/hello_lex.d +/objdir/hello_lex.l +/objdir/hello_lex.test.out.tmp +/objdir/input.txt +/objdir/test.mk +==== SHRTOUT=yes depend ==== checking for compiler mmm... nnn checking for program mmm... nnn checking for program mmm... nnn LEX: hello_lex.l +DEP: hello_lex.d +DEP: .depend +==== SHRTOUT=yes all ==== +LEX: hello_lex.l CC: hello_lex.c LD: hello_lex +/objdir/.depend +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/_mkc_prog_lex.err +/objdir/_mkc_prog_lex.res +/objdir/expect.out +/objdir/hello_lex +/objdir/hello_lex.c +/objdir/hello_lex.d +/objdir/hello_lex.l +/objdir/hello_lex.o +/objdir/hello_lex.test.out.tmp +/objdir/input.txt +/objdir/test.mk ======= distclean ========== /objdir/Makefile /objdir/expect.out diff --git a/examples/hello_lex/test.mk b/examples/hello_lex/test.mk index ad62ff6..53acf8e 100644 --- a/examples/hello_lex/test.mk +++ b/examples/hello_lex/test.mk @@ -3,19 +3,20 @@ test_output: @set -e; \ ${.OBJDIR}/hello_lex < ${.CURDIR}/input.txt; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -24,10 +25,23 @@ test_output: find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ - echo ==== SHRTOUT=yes ====; \ + echo ========== depend ===========; \ ${MAKE} ${MAKEFLAGS} distclean > /dev/null; \ + ${MAKE} ${MAKEFLAGS} depend -j4 > /dev/null; \ + find ${.OBJDIR} -type f | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ + \ + echo ==== SHRTOUT=yes depend ====; \ + ${MAKE} ${MAKEFLAGS} distclean > /dev/null; \ + env SHRTOUT=yes ${MAKE} ${MAKEFLAGS} depend 2>&1 |\ + mkc_test_helper2; \ + \ + echo ==== SHRTOUT=yes all ====; \ + ${MAKE} ${MAKEFLAGS} clean > /dev/null; \ env MKCATPAGES=no MKHTML=no SHRTOUT=yes ${MAKE} ${MAKEFLAGS} all 2>&1 |\ mkc_test_helper2; \ + find ${.OBJDIR} -type f | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ echo ======= distclean ==========; \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ diff --git a/examples/hello_lua/Makefile b/examples/hello_lua/Makefile index faba9c7..3e40bfb 100644 --- a/examples/hello_lua/Makefile +++ b/examples/hello_lua/Makefile @@ -3,7 +3,11 @@ PROJECTNAME = hello_lua LUA_LMODULES = foo.lua bar.lua LUA_CMODULE = baz -SCRIPTS = foobar +INSCRIPTS = foobar +SCRIPTS = ${INSCRIPTS} + +INTEXTS_REPLS = LUA ${PROG.lua} +MKC_CHECK_PROGS = lua .include "test.mk" .include <mkc.lib.mk> diff --git a/examples/hello_lua/expect.out b/examples/hello_lua/expect.out index df5630c..0e51847 100644 --- a/examples/hello_lua/expect.out +++ b/examples/hello_lua/expect.out @@ -19,6 +19,8 @@ foobarbaz /objdir/_mkc_pkgconfig_lua_libs.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res +/objdir/_mkc_prog_lua.err +/objdir/_mkc_prog_lua.res /objdir/_mkc_prog_pkg-config.err /objdir/_mkc_prog_pkg-config.res /objdir/bar.lua @@ -28,6 +30,7 @@ foobarbaz /objdir/expect.out /objdir/foo.lua /objdir/foobar +/objdir/foobar.in /objdir/hello_lua.test.out.tmp /objdir/test.mk ========= install ========== @@ -63,13 +66,15 @@ foobarbaz /objdir/_mkc_pkgconfig_lua_libs.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res +/objdir/_mkc_prog_lua.err +/objdir/_mkc_prog_lua.res /objdir/_mkc_prog_pkg-config.err /objdir/_mkc_prog_pkg-config.res /objdir/bar.lua /objdir/baz.c /objdir/expect.out /objdir/foo.lua -/objdir/foobar +/objdir/foobar.in /objdir/hello_lua.test.out.tmp /objdir/test.mk ======= distclean ========== @@ -78,7 +83,7 @@ foobarbaz /objdir/baz.c /objdir/expect.out /objdir/foo.lua -/objdir/foobar +/objdir/foobar.in /objdir/hello_lua.test.out.tmp /objdir/test.mk ========= install2 ========== @@ -97,6 +102,8 @@ foobarbaz /objdir/_mkc_pkgconfig_lua_libs.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res +/objdir/_mkc_prog_lua.err +/objdir/_mkc_prog_lua.res /objdir/_mkc_prog_pkg-config.err /objdir/_mkc_prog_pkg-config.res /objdir/bar.lua @@ -106,6 +113,7 @@ foobarbaz /objdir/expect.out /objdir/foo.lua /objdir/foobar +/objdir/foobar.in /objdir/hello_lua.test.out.tmp /objdir/home /objdir/home/cheusov diff --git a/examples/hello_lua/foobar b/examples/hello_lua/foobar.in index 249feb3..dd8714a 100755 --- a/examples/hello_lua/foobar +++ b/examples/hello_lua/foobar.in @@ -1,4 +1,4 @@ -#!/usr/bin/env lua +#!@LUA@ require "foo" require "bar" diff --git a/examples/hello_lua/test.mk b/examples/hello_lua/test.mk index cc8b0df..8b6fc91 100644 --- a/examples/hello_lua/test.mk +++ b/examples/hello_lua/test.mk @@ -5,22 +5,26 @@ test_output: @set -e; \ rm -rf ${.OBJDIR}/usr ${.OBJDIR}/opt; \ echo PROJECTNAME=${PROJECTNAME}; \ + LUA_PATH=${.CURDIR}/?.lua; \ + LUA_CPATH=${.OBJDIR}/?.so; \ + export LUA_PATH LUA_CPATH; \ ./foobar; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} PREFIX=/usr/local \ > /dev/null; \ find ${.OBJDIR}/usr -type f -o -type d | \ - mkc_test_helper "${PREFIX}" "${.OBJDIR}" | uniq; \ + mkc_test_helper /usr/local "${.OBJDIR}" | uniq; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} PREFIX=/usr/local > /dev/null; \ find ${.OBJDIR}/usr -type f | \ - mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + mkc_test_helper /usr/local "${.OBJDIR}"; \ \ echo ========== clean ===========; \ ${MAKE} ${MAKEFLAGS} clean > /dev/null; \ @@ -36,7 +40,7 @@ test_output: env PREFIX=/home/cheusov/local \ LUA_LMODDIR=/home/cheusov/local/share/lua/5.1 \ LUA_CMODDIR=/home/cheusov/local/lib/lua/5.1 \ - ${MAKE} ${MAKEFLAGS} all install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} all install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}" | uniq; \ diff --git a/examples/hello_lua2/test.mk b/examples/hello_lua2/test.mk index 9d1ec03..0cc6d20 100644 --- a/examples/hello_lua2/test.mk +++ b/examples/hello_lua2/test.mk @@ -4,22 +4,26 @@ CLEANDIRS += ${.OBJDIR}/home test_output: @set -e; \ rm -rf ${.OBJDIR}/usr; \ + LUA_PATH=${.CURDIR}/?.lua; \ + LUA_CPATH=${.OBJDIR}/?.so; \ + export LUA_PATH LUA_CPATH; \ ./foobar; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} PREFIX=/usr/local \ > /dev/null; \ find ${.OBJDIR}/usr -type f -o -type d | \ - mkc_test_helper "${PREFIX}" "${.OBJDIR}" | uniq; \ + mkc_test_helper /usr/local "${.OBJDIR}" | uniq; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} PREFIX=/usr/local > /dev/null; \ find ${.OBJDIR}/usr -type f | \ - mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + mkc_test_helper /usr/local "${.OBJDIR}"; \ \ echo ========== clean ===========; \ ${MAKE} ${MAKEFLAGS} clean DESTDIR=${.OBJDIR} > /dev/null; \ @@ -34,7 +38,7 @@ test_output: echo ========= install2 ==========; \ env PREFIX=/home/cheusov/local \ LUA_LMODDIR=/home/cheusov/local/share/lua/5.1 \ - ${MAKE} ${MAKEFLAGS} all install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} all install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}" | uniq; \ diff --git a/examples/hello_lua3/test.mk b/examples/hello_lua3/test.mk index fdf2745..dfe9e9f 100644 --- a/examples/hello_lua3/test.mk +++ b/examples/hello_lua3/test.mk @@ -3,19 +3,20 @@ test_output: @set -e; \ rm -rf ${.OBJDIR}/usr ${.OBJDIR}/opt; \ echo PROJECTNAME=${PROJECTNAME}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}/usr -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}" | uniq; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}/usr -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ diff --git a/examples/hello_plugins/test.mk b/examples/hello_plugins/test.mk index edcf9a7..9325880 100644 --- a/examples/hello_plugins/test.mk +++ b/examples/hello_plugins/test.mk @@ -4,24 +4,25 @@ test_output: rm -rf ${.OBJDIR}${PREFIX}; \ app/app plugin1/plugin1${DLL_EXT} plugin1/plugin1${DLL_EXT} | \ awk '$$3 == "address:" {$$4 = "0xF00DBEAF"} {print}'; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ echo ======== filelist ==========; \ - ${MAKE} ${MAKEFLAGS} filelist | sed 's/[.]bundle/.so/'; \ + ${MAKE} ${MAKEFLAGS} PREFIX=/usr/local filelist | sed 's/[.]bundle/.so/'; \ \ echo ========== clean ===========; \ ${MAKE} ${MAKEFLAGS} clean DESTDIR=${.OBJDIR} > /dev/null; \ diff --git a/examples/hello_plugins2/test.mk b/examples/hello_plugins2/test.mk index 2944de6..551cb99 100644 --- a/examples/hello_plugins2/test.mk +++ b/examples/hello_plugins2/test.mk @@ -3,19 +3,20 @@ test_output: @set -e; LC_ALL=C; export LC_ALL; \ rm -rf ${.OBJDIR}${PREFIX}; \ app/app plugin1/plugin1${DLL_EXT} plugin2/plugin2${DLL_EXT}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ diff --git a/examples/hello_progs/expect.out b/examples/hello_progs/expect.out index 925acc0..8a7e171 100644 --- a/examples/hello_progs/expect.out +++ b/examples/hello_progs/expect.out @@ -39,23 +39,47 @@ server: I am a server /objdir/server.c /objdir/server_puts.c /objdir/test.mk +========== depend =========== +/objdir/.depend +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/client.c +/objdir/client.d +/objdir/client_puts.c +/objdir/client_puts.d +/objdir/expect.out +/objdir/hello_progs.test.out.tmp +/objdir/server.c +/objdir/server.d +/objdir/server_puts.c +/objdir/server_puts.d +/objdir/test.mk ========== server =========== +/objdir/.depend /objdir/Makefile /objdir/_mkc_compiler_type.err /objdir/_mkc_compiler_type.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res /objdir/client.c +/objdir/client.d /objdir/client_puts.c +/objdir/client_puts.d /objdir/expect.out /objdir/hello_progs.test.out.tmp /objdir/server /objdir/server.c +/objdir/server.d /objdir/server.o /objdir/server_puts.c +/objdir/server_puts.d /objdir/server_puts.o /objdir/test.mk ========== client =========== +/objdir/.depend /objdir/Makefile /objdir/_mkc_compiler_type.err /objdir/_mkc_compiler_type.res @@ -63,13 +87,17 @@ server: I am a server /objdir/_mkc_prog_cc.res /objdir/client /objdir/client.c +/objdir/client.d /objdir/client.o /objdir/client_puts.c +/objdir/client_puts.d /objdir/client_puts.o /objdir/expect.out /objdir/hello_progs.test.out.tmp /objdir/server.c +/objdir/server.d /objdir/server_puts.c +/objdir/server_puts.d /objdir/test.mk ======= distclean ========== /objdir/Makefile diff --git a/examples/hello_progs/test.mk b/examples/hello_progs/test.mk index bd90e8b..a0741ca 100644 --- a/examples/hello_progs/test.mk +++ b/examples/hello_progs/test.mk @@ -5,19 +5,20 @@ test_output: ${.OBJDIR}/client; \ ${.OBJDIR}/server; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -26,6 +27,11 @@ test_output: find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ + echo ========== depend ===========; \ + ${MAKE} ${MAKEFLAGS} depend > /dev/null; \ + find ${.OBJDIR} -type f | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ + \ echo ========== server ===========; \ ${MAKE} ${MAKEFLAGS} server > /dev/null; \ find ${.OBJDIR} -type f | \ diff --git a/examples/hello_progs2/test.mk b/examples/hello_progs2/test.mk index bd90e8b..85cd685 100644 --- a/examples/hello_progs2/test.mk +++ b/examples/hello_progs2/test.mk @@ -5,19 +5,20 @@ test_output: ${.OBJDIR}/client; \ ${.OBJDIR}/server; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ diff --git a/examples/hello_scripts/expect.out b/examples/hello_scripts/expect.out index 957e6f7..72b1abb 100644 --- a/examples/hello_scripts/expect.out +++ b/examples/hello_scripts/expect.out @@ -10,7 +10,6 @@ Hello World 3! /objdir/expect.out /objdir/hello_scripts.test.out.tmp /objdir/hello_world.1 -/objdir/hello_world.cat1 /objdir/hello_world1 /objdir/hello_world2 /objdir/hello_world3 diff --git a/examples/hello_scripts/test.mk b/examples/hello_scripts/test.mk index f33a6a7..5449f8a 100644 --- a/examples/hello_scripts/test.mk +++ b/examples/hello_scripts/test.mk @@ -5,6 +5,7 @@ test_output: ${.CURDIR}/hello_world2; \ ${.CURDIR}/hello_world3; \ \ + MKCATPAGES=yes; export MKCATPAGES; \ rm -rf ${.OBJDIR}${PREFIX}; \ \ echo =========== all ============; \ @@ -12,13 +13,13 @@ test_output: mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ @@ -34,7 +35,7 @@ test_output: \ echo ==== install MKINSTALL=no ====; \ MKINSTALL=no; export MKINSTALL; \ - ${MAKE} ${MAKEFLAGS} all installdirs install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} -j4 all installdirs install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ diff --git a/examples/hello_sizeof/test.mk b/examples/hello_sizeof/test.mk index 174eb9d..1f6b6e2 100644 --- a/examples/hello_sizeof/test.mk +++ b/examples/hello_sizeof/test.mk @@ -3,19 +3,20 @@ test_output: @set -e; \ ${.OBJDIR}/sizeof_test | tr '1248' 'nnnn'; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ diff --git a/examples/hello_strlcpy/Makefile b/examples/hello_strlcpy/Makefile index 1ac88ee..f24ed5a 100644 --- a/examples/hello_strlcpy/Makefile +++ b/examples/hello_strlcpy/Makefile @@ -1,7 +1,7 @@ -MKC_SOURCE_FUNCLIBS = strlcpy -MKC_CHECK_FUNCS3 += strlcpy:string.h +MKC_SOURCE_FUNCLIBS = strlcpy getline +MKC_CHECK_FUNCS3 += strlcpy:string.h getline:stdio.h -PROG = hello4 +PROG = hello SRCS = hello.c WARNS = 4 diff --git a/examples/hello_strlcpy/expect.out b/examples/hello_strlcpy/expect.out index 060d314..d64ce75 100644 --- a/examples/hello_strlcpy/expect.out +++ b/examples/hello_strlcpy/expect.out @@ -25,18 +25,25 @@ /objdir/Makefile /objdir/_mkc_compiler_type.err /objdir/_mkc_compiler_type.res +/objdir/_mkc_func3_getline_stdio_h.c +/objdir/_mkc_func3_getline_stdio_h.err +/objdir/_mkc_func3_getline_stdio_h.res /objdir/_mkc_func3_strlcpy_string_h.c /objdir/_mkc_func3_strlcpy_string_h.err /objdir/_mkc_func3_strlcpy_string_h.res +/objdir/_mkc_funclib_getline.c +/objdir/_mkc_funclib_getline.err +/objdir/_mkc_funclib_getline.res /objdir/_mkc_funclib_strlcpy.c /objdir/_mkc_funclib_strlcpy.err /objdir/_mkc_funclib_strlcpy.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res /objdir/expect.out +/objdir/getline.c +/objdir/hello /objdir/hello.c /objdir/hello.o -/objdir/hello4 /objdir/hello_strlcpy.test.out.tmp /objdir/input.in /objdir/strlcpy.c @@ -44,21 +51,28 @@ ========= install ========== /objdir/prefix /objdir/prefix/bin -/objdir/prefix/bin/hello4 +/objdir/prefix/bin/hello ======== uninstall ========= ========== clean =========== /objdir/Makefile /objdir/_mkc_compiler_type.err /objdir/_mkc_compiler_type.res +/objdir/_mkc_func3_getline_stdio_h.c +/objdir/_mkc_func3_getline_stdio_h.err +/objdir/_mkc_func3_getline_stdio_h.res /objdir/_mkc_func3_strlcpy_string_h.c /objdir/_mkc_func3_strlcpy_string_h.err /objdir/_mkc_func3_strlcpy_string_h.res +/objdir/_mkc_funclib_getline.c +/objdir/_mkc_funclib_getline.err +/objdir/_mkc_funclib_getline.res /objdir/_mkc_funclib_strlcpy.c /objdir/_mkc_funclib_strlcpy.err /objdir/_mkc_funclib_strlcpy.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res /objdir/expect.out +/objdir/getline.c /objdir/hello.c /objdir/hello_strlcpy.test.out.tmp /objdir/input.in @@ -67,8 +81,13 @@ ======= distclean ========== /objdir/Makefile /objdir/expect.out +/objdir/getline.c /objdir/hello.c /objdir/hello_strlcpy.test.out.tmp /objdir/input.in /objdir/strlcpy.c /objdir/test.mk +======= CLEANFILES ========== +strlcpy.o +getline.o +hello.o diff --git a/examples/hello_strlcpy/getline.c b/examples/hello_strlcpy/getline.c new file mode 100644 index 0000000..777f5c4 --- /dev/null +++ b/examples/hello_strlcpy/getline.c @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2007-2013 by Aleksey Cheusov + * + * See LICENSE file in the distribution. + */ + +#include <stdio.h> +#include <stdlib.h> + +#include "decls.h" + +ssize_t +getline(char** lineptr, size_t* n, FILE* stream) +{ + int c; + size_t sz = 0; + + while (c = getc (stream), c != EOF){ + if (sz+1 >= *n){ + /* +2 is for `c' and 0-terminator */ + *n = *n * 3 / 2 + 2; + *lineptr = realloc (*lineptr, *n); + if (!*lineptr) + return -1; + } + + (*lineptr) [sz++] = (char) c; + if (c == '\n') + break; + } + + if (ferror (stdin)) + return (ssize_t) -1; + + if (!sz){ + if (feof (stdin)){ + return (ssize_t) -1; + }else if (!*n){ + *lineptr = malloc (1); + if (!*lineptr) + return -1; + + *n = 1; + } + } + + (*lineptr) [sz] = 0; + return sz; +} diff --git a/examples/hello_strlcpy/hello.c b/examples/hello_strlcpy/hello.c index b7dd661..177b6b5 100644 --- a/examples/hello_strlcpy/hello.c +++ b/examples/hello_strlcpy/hello.c @@ -5,14 +5,18 @@ size_t strlcpy(char *dst, const char *src, size_t siz); #endif +#ifndef HAVE_FUNC3_GETLINE_STDIO_H +ssize_t getline(char** lineptr, size_t* n, FILE* stream); +#endif + int main (int argc, char ** argv) { - char buf [2000]; + char *buf = NULL; + size_t size = 0; + ssize_t len = 0; char small_buf [10]; - size_t len; - - while (fgets (buf, sizeof (buf), stdin)){ + while (len = getline (&buf, &size, stdin), len != -1){ len = strlen (buf); if (len > 0 && buf [len-1] == '\n') buf [len-1] = 0; diff --git a/examples/hello_strlcpy/test.mk b/examples/hello_strlcpy/test.mk index ffa417d..e0155bb 100644 --- a/examples/hello_strlcpy/test.mk +++ b/examples/hello_strlcpy/test.mk @@ -1,33 +1,38 @@ .PHONY : test_output test_output: @set -e; \ - ${.OBJDIR}/hello4 < ${.CURDIR}/input.in; \ + ${.OBJDIR}/hello < ${.CURDIR}/input.in; \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ - find ${.OBJDIR} -type f | grep -v 'strlcpy[.]o' | \ + find ${.OBJDIR} -type f | grep -Ev '(strlcpy|getline)[.]o' | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ - grep -v 'strlcpy[.]o' | \ + grep -vE '(strlcpy|getline)[.]o' | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ - find ${.OBJDIR}${PREFIX} -type f | grep -v 'strlcpy[.]o' | \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR}${PREFIX} -type f | grep -vE '(strlcpy|getline)[.]o' | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========== clean ===========; \ - ${MAKE} ${MAKEFLAGS} clean DESTDIR=${.OBJDIR} > /dev/null; \ - find ${.OBJDIR} -type f | grep -v 'strlcpy[.]o' | \ + ${MAKE} ${MAKEFLAGS} clean > /dev/null; \ + find ${.OBJDIR} -type f | grep -vE '(strlcpy|getline)[.]o' | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======= distclean ==========; \ - ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ - find ${.OBJDIR} -type f | grep -v 'strlcpy[.]o' | \ - mkc_test_helper "${PREFIX}" "${.OBJDIR}" + ${MAKE} ${MAKEFLAGS} distclean > /dev/null; \ + find ${.OBJDIR} -type f | grep -vE '(strlcpy|getline)[.]o' | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ======= CLEANFILES ==========; \ + ${MAKE} ${MAKEFLAGS} print-values VARS='CLEANFILES' MKCHECKS=no | \ + awk '{for(i=1; i<=NF; ++i) if ($$i ~ /[.]o$$/) print $$i}' .include <mkc.minitest.mk> diff --git a/examples/hello_superfs/Makefile b/examples/hello_superfs/Makefile index c58ab37..81442e4 100644 --- a/examples/hello_superfs/Makefile +++ b/examples/hello_superfs/Makefile @@ -1,6 +1,4 @@ -SUBPRJ = mkfs_superfs fsck_superfs \ - docs \ - mkfs_superfs:tools fsck_superfs:tools +SUBPRJ = docs mkfs_superfs:tools fsck_superfs:tools SUBPRJ_DFLT = mkfs_superfs fsck_superfs docs diff --git a/examples/hello_superfs/expect.out b/examples/hello_superfs/expect.out index 542cf1c..45af717 100644 --- a/examples/hello_superfs/expect.out +++ b/examples/hello_superfs/expect.out @@ -14,14 +14,12 @@ /objdir/fsck_superfs/fsck_superfs /objdir/fsck_superfs/fsck_superfs.8 /objdir/fsck_superfs/fsck_superfs.c -/objdir/fsck_superfs/fsck_superfs.cat8 /objdir/fsck_superfs/fsck_superfs.o /objdir/hello_superfs.test.out.tmp /objdir/mkfs_superfs/Makefile /objdir/mkfs_superfs/mkfs_superfs /objdir/mkfs_superfs/mkfs_superfs.8 /objdir/mkfs_superfs/mkfs_superfs.c -/objdir/mkfs_superfs/mkfs_superfs.cat8 /objdir/mkfs_superfs/mkfs_superfs.o /objdir/test.mk ========= install ========== @@ -63,6 +61,30 @@ /objdir/mkfs_superfs/mkfs_superfs.8 /objdir/mkfs_superfs/mkfs_superfs.c /objdir/test.mk +========== depend =========== +/objdir/Makefile +/objdir/Makefile.inc +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/docs/LICENSE +/objdir/docs/Makefile +/objdir/docs/NEWS +/objdir/docs/README +/objdir/expect.out +/objdir/fsck_superfs/.depend +/objdir/fsck_superfs/Makefile +/objdir/fsck_superfs/fsck_superfs.8 +/objdir/fsck_superfs/fsck_superfs.c +/objdir/fsck_superfs/fsck_superfs.d +/objdir/hello_superfs.test.out.tmp +/objdir/mkfs_superfs/.depend +/objdir/mkfs_superfs/Makefile +/objdir/mkfs_superfs/mkfs_superfs.8 +/objdir/mkfs_superfs/mkfs_superfs.c +/objdir/mkfs_superfs/mkfs_superfs.d +/objdir/test.mk ======= distclean ========== /objdir/Makefile /objdir/Makefile.inc diff --git a/examples/hello_superfs/test.mk b/examples/hello_superfs/test.mk index 6ce8018..90f220d 100644 --- a/examples/hello_superfs/test.mk +++ b/examples/hello_superfs/test.mk @@ -1,21 +1,21 @@ .PHONY : test_output test_output: @set -e; \ - \ rm -rf ${.OBJDIR}${PREFIX}; \ + MKCATPAGES=yes; export MKCATPAGES; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ @@ -24,6 +24,11 @@ test_output: find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ + echo ========== depend ===========; \ + ${MAKE} ${MAKEFLAGS} depend DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ echo ======= distclean ==========; \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ @@ -37,7 +42,7 @@ test_output: \ echo ==== install MKINSTALL=no ====; \ MKINSTALL=no; export MKINSTALL; \ - ${MAKE} ${MAKEFLAGS} all installdirs install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} all installdirs install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ diff --git a/examples/hello_world/test.mk b/examples/hello_world/test.mk index adc16fd..6676191 100644 --- a/examples/hello_world/test.mk +++ b/examples/hello_world/test.mk @@ -5,6 +5,7 @@ tartf_cleanup= sed -e 's,^[.]/,,' -e 's,/$$,,' -e '/^[.]*$$/ d' .PHONY : test_output test_output: @set -e; LC_ALL=C; export LC_ALL; \ + MKCATPAGES=yes; export MKCATPAGES; \ echo PROJECTNAME=${PROJECTNAME}; \ ${.OBJDIR}/hello_world; \ rm -rf ${.OBJDIR}${PREFIX}; \ @@ -14,13 +15,13 @@ test_output: mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -30,21 +31,24 @@ test_output: mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ echo ======== bin_tar ===========; \ - ${MAKE} ${MAKEFLAGS} bin_tar > /dev/null; \ - ${TAR} -tf ${.CURDIR:T}.tar | sort | ${tartf_cleanup}; \ + ${MAKE} ${MAKEFLAGS} PREFIX=/usr/local bin_tar > /dev/null; \ + ${TAR} -tf ${.CURDIR:T}.tar | \ + sort | ${tartf_cleanup}; \ \ echo ======== bin_targz ===========; \ - ${MAKE} ${MAKEFLAGS} bin_targz > /dev/null; \ + ${MAKE} ${MAKEFLAGS} PREFIX=/usr/local bin_targz > /dev/null; \ ${GZIP} -dc ${.CURDIR:T}.tar.gz | \ - ${TAR} -tf - | sort | ${tartf_cleanup}; \ + ${TAR} -tf - | \ + sort | ${tartf_cleanup}; \ \ echo ======== bin_tarbz2 ===========; \ - ${MAKE} ${MAKEFLAGS} bin_tarbz2 > /dev/null; \ + ${MAKE} ${MAKEFLAGS} PREFIX=/usr/local bin_tarbz2 > /dev/null; \ ${BZIP2} -dc ${.CURDIR:T}.tar.bz2 | \ - ${TAR} -tf - | sort | ${tartf_cleanup}; \ + ${TAR} -tf - | \ + sort | ${tartf_cleanup}; \ \ echo ======= filelist ===========; \ - ${MAKE} ${MAKEFLAGS} filelist; \ + ${MAKE} ${MAKEFLAGS} PREFIX=/usr/local filelist; \ \ echo ======= distclean ==========; \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ diff --git a/examples/hello_xxzip/expect.out b/examples/hello_xxzip/expect.out index 61cec79..cb5f8cb 100644 --- a/examples/hello_xxzip/expect.out +++ b/examples/hello_xxzip/expect.out @@ -16,9 +16,14 @@ /objdir/xxzip /objdir/xxzip.1 /objdir/xxzip.c -/objdir/xxzip.cat1 /objdir/xxzip.o /objdir/xxzip.pod +===== all SHRTOUT=yes ====== +CC: xxzip.c +LD: xxzip +POD2MAN: xxzip.1 +NROFF: xxzip.cat1 +POD2HTML: tutorial.html ========= install ========== /objdir/prefix /objdir/prefix/bin diff --git a/examples/hello_xxzip/test.mk b/examples/hello_xxzip/test.mk index 1077edd..6b3fda0 100644 --- a/examples/hello_xxzip/test.mk +++ b/examples/hello_xxzip/test.mk @@ -1,20 +1,27 @@ .PHONY : test_output test_output: @set -e; \ + MKCATPAGES=yes; export MKCATPAGES; \ + \ rm -rf ${.OBJDIR}${PREFIX}; \ \ echo =========== all ============; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ + echo ===== all SHRTOUT=yes ======; \ + ${MAKE} ${MAKEFLAGS} clean > /dev/null; \ + ${MAKE} ${MAKEFLAGS} all SHRTOUT=yes 2>&1 | \ + mkc_test_helper2; \ + \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -24,7 +31,7 @@ test_output: mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ echo ======== filelist ==========; \ - ${MAKE} ${MAKEFLAGS} filelist; \ + ${MAKE} ${MAKEFLAGS} filelist PREFIX=/usr/local; \ \ echo ======= distclean ==========; \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ diff --git a/examples/hello_yacc/Makefile b/examples/hello_yacc/Makefile index b9713c3..cfb88da 100644 --- a/examples/hello_yacc/Makefile +++ b/examples/hello_yacc/Makefile @@ -1,6 +1,7 @@ -PROG = hello_calc +PROG = hello_calc +SRCS = calc.y -SRCS = calc.y +DPSRCS = calc.c .include "test.mk" .include <mkc.prog.mk> diff --git a/examples/hello_yacc/expect.out b/examples/hello_yacc/expect.out index 6f46ee5..b80f1ca 100644 --- a/examples/hello_yacc/expect.out +++ b/examples/hello_yacc/expect.out @@ -36,6 +36,22 @@ /objdir/hello_yacc.test.out.tmp /objdir/input.txt /objdir/test.mk +========== depend =========== +/objdir/.depend +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/_mkc_prog_yacc.err +/objdir/_mkc_prog_yacc.res +/objdir/calc.c +/objdir/calc.d +/objdir/calc.y +/objdir/expect.out +/objdir/hello_yacc.test.out.tmp +/objdir/input.txt +/objdir/test.mk ==== SHRTOUT=yes ==== YACC: calc.y CC: calc.c diff --git a/examples/hello_yacc/test.mk b/examples/hello_yacc/test.mk index 7617a5f..71840f8 100644 --- a/examples/hello_yacc/test.mk +++ b/examples/hello_yacc/test.mk @@ -1,6 +1,8 @@ .PHONY : test_output test_output: @set -e; \ + MKCATPAGES=yes; export MKCATPAGES; \ + \ ${.OBJDIR}/hello_calc < ${.CURDIR}/input.txt; \ rm -rf ${.OBJDIR}${PREFIX}; \ \ @@ -9,18 +11,23 @@ test_output: mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ echo ========== clean ===========; \ - ${MAKE} ${MAKEFLAGS} clean DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} clean > /dev/null; \ + find ${.OBJDIR} -type f | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ + \ + echo ========== depend ===========; \ + ${MAKE} ${MAKEFLAGS} depend > /dev/null; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -30,7 +37,7 @@ test_output: all 2>/dev/null | mkc_test_helper2; \ \ echo ======= distclean ==========; \ - ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} distclean > /dev/null; \ find ${.OBJDIR} -type f | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}" diff --git a/examples/subprojects/expect.out b/examples/subprojects/expect.out index 9331b5c..d26c974 100644 --- a/examples/subprojects/expect.out +++ b/examples/subprojects/expect.out @@ -19,7 +19,6 @@ My email is vle@gmx.net /objdir/hello/hello_subprojects.1 /objdir/hello/hello_subprojects.1.in /objdir/hello/hello_subprojects.c -/objdir/hello/hello_subprojects.cat1 /objdir/hello/hello_subprojects.o /objdir/hello/hello_subprojects2 /objdir/hello/hello_subprojects2.in @@ -37,7 +36,6 @@ My email is vle@gmx.net /objdir/libhello2/Makefile /objdir/libhello2/hello2.3 /objdir/libhello2/hello2.c -/objdir/libhello2/hello2.cat3 /objdir/libhello2/hello2.o /objdir/libhello2/include/hello2.h /objdir/libhello2/libhello2.a @@ -165,20 +163,17 @@ GEN: hello_subprojects2 /objdir/test.mk /objdir/version.mk ========= libhello1 ========== -/objdir /objdir/Makefile /objdir/_mkc_compiler_type.err /objdir/_mkc_compiler_type.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res /objdir/expect.out -/objdir/hello /objdir/hello/Makefile /objdir/hello/hello_subprojects.1.in /objdir/hello/hello_subprojects.c /objdir/hello/hello_subprojects2.in /objdir/hello/test.mk -/objdir/libhello1 /objdir/libhello1/Makefile /objdir/libhello1/hello1.c /objdir/libhello1/hello1.h @@ -189,31 +184,26 @@ GEN: hello_subprojects2 /objdir/libhello1/libhello1.so.1 /objdir/libhello1/libhello1.so.1.0 /objdir/libhello1/linkme.mk -/objdir/libhello2 /objdir/libhello2/Makefile /objdir/libhello2/hello2.3 /objdir/libhello2/hello2.c -/objdir/libhello2/include /objdir/libhello2/include/hello2.h /objdir/libhello2/linkme.mk /objdir/subprojects.test.out.tmp /objdir/test.mk /objdir/version.mk ========= all-libhello2 ========== -/objdir /objdir/Makefile /objdir/_mkc_compiler_type.err /objdir/_mkc_compiler_type.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res /objdir/expect.out -/objdir/hello /objdir/hello/Makefile /objdir/hello/hello_subprojects.1.in /objdir/hello/hello_subprojects.c /objdir/hello/hello_subprojects2.in /objdir/hello/test.mk -/objdir/libhello1 /objdir/libhello1/Makefile /objdir/libhello1/hello1.c /objdir/libhello1/hello1.h @@ -224,13 +214,11 @@ GEN: hello_subprojects2 /objdir/libhello1/libhello1.so.1 /objdir/libhello1/libhello1.so.1.0 /objdir/libhello1/linkme.mk -/objdir/libhello2 /objdir/libhello2/Makefile /objdir/libhello2/hello2.3 /objdir/libhello2/hello2.c /objdir/libhello2/hello2.cat3 /objdir/libhello2/hello2.o -/objdir/libhello2/include /objdir/libhello2/include/hello2.h /objdir/libhello2/libhello2.a /objdir/libhello2/linkme.mk @@ -238,27 +226,22 @@ GEN: hello_subprojects2 /objdir/test.mk /objdir/version.mk ========= cleandir-libhello1 ========== -/objdir /objdir/Makefile /objdir/expect.out -/objdir/hello /objdir/hello/Makefile /objdir/hello/hello_subprojects.1.in /objdir/hello/hello_subprojects.c /objdir/hello/hello_subprojects2.in /objdir/hello/test.mk -/objdir/libhello1 /objdir/libhello1/Makefile /objdir/libhello1/hello1.c /objdir/libhello1/hello1.h /objdir/libhello1/linkme.mk -/objdir/libhello2 /objdir/libhello2/Makefile /objdir/libhello2/hello2.3 /objdir/libhello2/hello2.c /objdir/libhello2/hello2.cat3 /objdir/libhello2/hello2.o -/objdir/libhello2/include /objdir/libhello2/include/hello2.h /objdir/libhello2/libhello2.a /objdir/libhello2/linkme.mk diff --git a/examples/subprojects/hello/hello_subprojects.1.in b/examples/subprojects/hello/hello_subprojects.1.in index 1a4710f..a4fea6d 100644 --- a/examples/subprojects/hello/hello_subprojects.1.in +++ b/examples/subprojects/hello/hello_subprojects.1.in @@ -9,7 +9,6 @@ hello\_world \- hello application .SH DESCRIPTION .B hello\_world outputs hello world message to stdout - .SH "CONFIGURATION FILE" .TP The configuration file should be here diff --git a/examples/subprojects/test.mk b/examples/subprojects/test.mk index 1869272..d3b88cc 100644 --- a/examples/subprojects/test.mk +++ b/examples/subprojects/test.mk @@ -1,6 +1,8 @@ .PHONY : test_output test_output : @set -e; \ + MKCATPAGES=yes; export MKCATPAGES; \ + \ echo PROJECTNAME=${PROJECTNAME}; \ rm -rf ${.OBJDIR}${PREFIX}; \ LD_LIBRARY_PATH=${.CURDIR}/libhello1:${.CURDIR}/libhello2:$$LD_LIBRARY_PATH; \ @@ -27,13 +29,13 @@ test_output : mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -55,24 +57,24 @@ test_output : \ echo ========= libhello1 ==========; \ ${MAKE} ${MAKEFLAGS} libhello1 DESTDIR=${.OBJDIR} > /dev/null; \ - find ${.OBJDIR} -type f -o -type l -o -type d | \ + find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= all-libhello2 ==========; \ - ${MAKE} ${MAKEFLAGS} all-libhello2 DESTDIR=${.OBJDIR} > /dev/null; \ - find ${.OBJDIR} -type f -o -type l -o -type d | \ + ${MAKE} ${MAKEFLAGS} -j4 all-libhello2 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= cleandir-libhello1 ==========; \ ${MAKE} ${MAKEFLAGS} cleandir-libhello1 DESTDIR=${.OBJDIR} > /dev/null; \ - find ${.OBJDIR} -type f -o -type l -o -type d | \ + find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ ${MAKE} ${MAKEFLAGS} distclean DESTDIR=${.OBJDIR} > /dev/null; \ \ echo ======= library dependencies =======; \ PREFIX=${.CURDIR}/usr; export PREFIX; \ - ${MAKE} ${MAKEFLAGS} all installdirs install >&2; \ + ${MAKE} ${MAKEFLAGS} all installdirs install -j3 >&2; \ LD_LIBRARY_PATH=${.CURDIR}/usr/lib; \ DYLD_LIBRARY_PATH=${.CURDIR}/usr/lib; \ export LD_LIBRARY_PATH DYLD_LIBRARY_PATH; \ diff --git a/examples/tools/Makefile b/examples/tools/Makefile index 64f67a1..5077390 100644 --- a/examples/tools/Makefile +++ b/examples/tools/Makefile @@ -1,6 +1,16 @@ SUBPRJ = libs/foo:tools/prog1 SUBPRJ += libs/bar:tools/prog2 SUBPRJ += libs/foo:tools/prog3 libs/bar:tools/prog3 +SUBPRJ += libs/qux:tools/prog4 + +# target "check" is used for testing because "test" is used by mk-configure +TARGETS = check + +NODEPS += check-libs/*:check check-libs/*:check-tools/* + +# for regression test only +_THISDIR_ = +.export _THISDIR_ .include "test.mk" .include <mkc.subprj.mk> diff --git a/examples/tools/expect.out b/examples/tools/expect.out index 84bf5b2..deaa7e3 100644 --- a/examples/tools/expect.out +++ b/examples/tools/expect.out @@ -3,19 +3,36 @@ This is a message #1 Message #2 This is a message #3 Message #3 +int_size=n OBJDIR_tools_prog1=/path/to/prog1 OBJDIR_tools_prog2=/path/to/prog2 OBJDIR_tools_prog3=/path/to/prog3 +OBJDIR_tools_prog4=/path/to/prog4 OBJDIR_libs_foo=/path/to/foo OBJDIR_libs_bar=/path/to/bar OBJDIR_prog3=/path/to/prog3 OBJDIR_bar=/path/to/bar +=========== check ============ +================================================== +check ===> tools/prog1 +================================================== +check ===> tools/prog2 +================================================== +check ===> tools/prog3 +================================================== +check ===> tools/prog4 +=========== check-tools/prog1 ============ +================================================== +check ===> tools/prog1 =========== all ============ /objdir/Makefile /objdir/_mkc_compiler_type.err /objdir/_mkc_compiler_type.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res +/objdir/_mkc_sizeof_int.c +/objdir/_mkc_sizeof_int.err +/objdir/_mkc_sizeof_int.res /objdir/expect.out /objdir/libs/bar/Makefile /objdir/libs/bar/bar.c @@ -29,6 +46,13 @@ OBJDIR_bar=/path/to/bar /objdir/libs/foo/foo.o /objdir/libs/foo/libfoo.a /objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/libqux.a +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h +/objdir/libs/qux/qux.h.in +/objdir/libs/qux/qux.o /objdir/test.mk /objdir/tools.test.out.tmp /objdir/tools/prog1/Makefile @@ -43,27 +67,40 @@ OBJDIR_bar=/path/to/bar /objdir/tools/prog3/prog3 /objdir/tools/prog3/prog3.c /objdir/tools/prog3/prog3.o +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4 +/objdir/tools/prog4/prog4.c +/objdir/tools/prog4/prog4.o ===== all SHRTOUT=yes ====== ================================================== -all ===> tools/libs/bar +all ===> libs/bar CC: bar.c AR: libbar.a ================================================== -all ===> tools/libs/foo +all ===> libs/foo CC: foo.c AR: libfoo.a ================================================== -all ===> tools/tools/prog1 +all ===> libs/qux +GEN: qux.h +CC: qux.c +AR: libqux.a +================================================== +all ===> tools/prog1 CC: prog1.c LD: prog1 ================================================== -all ===> tools/tools/prog2 +all ===> tools/prog2 CC: prog2.c LD: prog2 ================================================== -all ===> tools/tools/prog3 +all ===> tools/prog3 CC: prog3.c LD: prog3 +================================================== +all ===> tools/prog4 +CC: prog4.c +LD: prog4 ========= installdirs ========== /objdir/prefix /objdir/prefix/bin @@ -75,12 +112,15 @@ LD: prog3 /objdir/prefix/bin/prog1 /objdir/prefix/bin/prog2 /objdir/prefix/bin/prog3 +/objdir/prefix/bin/prog4 /objdir/prefix/include /objdir/prefix/include/bar.h /objdir/prefix/include/foo.h +/objdir/prefix/include/qux.h /objdir/prefix/lib /objdir/prefix/lib/libbar.a /objdir/prefix/lib/libfoo.a +/objdir/prefix/lib/libqux.a ======== uninstall ========= ========== clean =========== /objdir/Makefile @@ -88,6 +128,9 @@ LD: prog3 /objdir/_mkc_compiler_type.res /objdir/_mkc_prog_cc.err /objdir/_mkc_prog_cc.res +/objdir/_mkc_sizeof_int.c +/objdir/_mkc_sizeof_int.err +/objdir/_mkc_sizeof_int.res /objdir/expect.out /objdir/libs/bar/Makefile /objdir/libs/bar/bar.c @@ -97,6 +140,10 @@ LD: prog3 /objdir/libs/foo/foo.c /objdir/libs/foo/foo.h /objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in /objdir/test.mk /objdir/tools.test.out.tmp /objdir/tools/prog1/Makefile @@ -105,6 +152,8 @@ LD: prog3 /objdir/tools/prog2/prog2.c /objdir/tools/prog3/Makefile /objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c ======= cleandir ========== /objdir/Makefile /objdir/expect.out @@ -116,6 +165,10 @@ LD: prog3 /objdir/libs/foo/foo.c /objdir/libs/foo/foo.h /objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in /objdir/test.mk /objdir/tools.test.out.tmp /objdir/tools/prog1/Makefile @@ -124,6 +177,8 @@ LD: prog3 /objdir/tools/prog2/prog2.c /objdir/tools/prog3/Makefile /objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c ========= all-tools/prog1 ========== /objdir/Makefile /objdir/_mkc_compiler_type.err @@ -141,6 +196,43 @@ LD: prog3 /objdir/libs/foo/foo.o /objdir/libs/foo/libfoo.a /objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tools.test.out.tmp +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1 +/objdir/tools/prog1/prog1.c +/objdir/tools/prog1/prog1.o +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +========= -C tools/prog1 all ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/foo.o +/objdir/libs/foo/libfoo.a +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in /objdir/test.mk /objdir/tools.test.out.tmp /objdir/tools/prog1/Makefile @@ -151,6 +243,41 @@ LD: prog3 /objdir/tools/prog2/prog2.c /objdir/tools/prog3/Makefile /objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +========= all-prog1 ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/foo.o +/objdir/libs/foo/libfoo.a +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tools.test.out.tmp +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1 +/objdir/tools/prog1/prog1.c +/objdir/tools/prog1/prog1.o +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c ========= all-tools/prog2 ========== /objdir/Makefile /objdir/_mkc_compiler_type.err @@ -168,6 +295,10 @@ LD: prog3 /objdir/libs/foo/foo.c /objdir/libs/foo/foo.h /objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in /objdir/test.mk /objdir/tools.test.out.tmp /objdir/tools/prog1/Makefile @@ -178,6 +309,41 @@ LD: prog3 /objdir/tools/prog2/prog2.o /objdir/tools/prog3/Makefile /objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +========= -C tools/prog2 all ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/bar.o +/objdir/libs/bar/libbar.a +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tools.test.out.tmp +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2 +/objdir/tools/prog2/prog2.c +/objdir/tools/prog2/prog2.o +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c ========= all-tools/prog3 ========== /objdir/Makefile /objdir/_mkc_compiler_type.err @@ -197,6 +363,10 @@ LD: prog3 /objdir/libs/foo/foo.o /objdir/libs/foo/libfoo.a /objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in /objdir/test.mk /objdir/tools.test.out.tmp /objdir/tools/prog1/Makefile @@ -207,3 +377,42 @@ LD: prog3 /objdir/tools/prog3/prog3 /objdir/tools/prog3/prog3.c /objdir/tools/prog3/prog3.o +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +========= -C tools/prog4 all ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/_mkc_sizeof_int.c +/objdir/_mkc_sizeof_int.err +/objdir/_mkc_sizeof_int.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/libqux.a +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h +/objdir/libs/qux/qux.h.in +/objdir/libs/qux/qux.o +/objdir/test.mk +/objdir/tools.test.out.tmp +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4 +/objdir/tools/prog4/prog4.c +/objdir/tools/prog4/prog4.o diff --git a/examples/tools/libs/qux/Makefile b/examples/tools/libs/qux/Makefile new file mode 100644 index 0000000..345f614 --- /dev/null +++ b/examples/tools/libs/qux/Makefile @@ -0,0 +1,16 @@ +LIB = qux +SRCS = qux.c +INCS = qux.h + +MKC_CHECK_SIZEOF = int + +.include <mkc.configure.mk> + +INFILES = ${INCS} +INTEXTS_REPLS = int_size ${SIZEOF.int:U4} + +qux.o: qux.h + +WARNS = 4 + +.include <mkc.lib.mk> diff --git a/examples/tools/libs/qux/linkme.mk b/examples/tools/libs/qux/linkme.mk new file mode 100644 index 0000000..e81f93b --- /dev/null +++ b/examples/tools/libs/qux/linkme.mk @@ -0,0 +1,5 @@ +PATH.qux := ${.PARSEDIR} + +CPPFLAGS += -I${PATH.qux} +DPLIBDIRS += ${PATH.qux} +LDADD += -lqux diff --git a/examples/tools/libs/qux/qux.c b/examples/tools/libs/qux/qux.c new file mode 100644 index 0000000..78786db --- /dev/null +++ b/examples/tools/libs/qux/qux.c @@ -0,0 +1,6 @@ +#include "qux.h" + +int get_int_size (void) +{ + return INT_SIZE; +} diff --git a/examples/tools/libs/qux/qux.h.in b/examples/tools/libs/qux/qux.h.in new file mode 100644 index 0000000..0a41ce1 --- /dev/null +++ b/examples/tools/libs/qux/qux.h.in @@ -0,0 +1,4 @@ + +#define INT_SIZE @int_size@ + +int get_int_size (void); diff --git a/examples/tools/test.mk b/examples/tools/test.mk index ec9cff5..b65b319 100644 --- a/examples/tools/test.mk +++ b/examples/tools/test.mk @@ -1,27 +1,39 @@ +next_level != expr ${.MAKE.LEVEL} + 1 + .PHONY : test_output test_output : @set -e; \ + MKCATPAGES=yes; export MKCATPAGES; \ + SRCTOP=`pwd`; export SRCTOP; \ + \ echo PROJECTNAME=${PROJECTNAME}; \ rm -rf ${.OBJDIR}${PREFIX}; \ ${.CURDIR}/tools/prog1/prog1; \ ${.CURDIR}/tools/prog2/prog2; \ ${.CURDIR}/tools/prog3/prog3; \ + ${.CURDIR}/tools/prog4/prog4 | sed 's/=[0-9]/=n/'; \ echo OBJDIR_tools_prog1=${OBJDIR_tools_prog1} | mkc_test_helper_paths; \ echo OBJDIR_tools_prog2=${OBJDIR_tools_prog2} | mkc_test_helper_paths; \ echo OBJDIR_tools_prog3=${OBJDIR_tools_prog3} | mkc_test_helper_paths; \ + echo OBJDIR_tools_prog4=${OBJDIR_tools_prog4} | mkc_test_helper_paths; \ echo OBJDIR_libs_foo=${OBJDIR_libs_foo} | mkc_test_helper_paths; \ echo OBJDIR_libs_bar=${OBJDIR_libs_bar} | mkc_test_helper_paths; \ echo OBJDIR_prog3=${OBJDIR_prog3} | mkc_test_helper_paths; \ echo OBJDIR_bar=${OBJDIR_bar} | mkc_test_helper_paths; \ \ + echo =========== check ============; \ + ${MAKE} ${MAKEFLAGS} check 2>&1; \ + \ + echo =========== check-tools/prog1 ============; \ + ${MAKE} ${MAKEFLAGS} check-tools/prog1 2>&1; \ + \ echo =========== all ============; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ===== all SHRTOUT=yes ======; \ ${MAKE} ${MAKEFLAGS} clean > /dev/null; \ - env SHRTOUT=YES \ - ${MAKE} ${MAKEFLAGS} all 2>&1; \ + env SHRTOUT=YES ${MAKE} ${MAKEFLAGS} all 2>&1; \ \ echo ========= installdirs ==========; \ ${MAKE} ${MAKEFLAGS} installdirs DESTDIR=${.OBJDIR} \ @@ -30,13 +42,13 @@ test_output : mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= install ==========; \ - ${MAKE} ${MAKEFLAGS} install DESTDIR=${.OBJDIR} \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ======== uninstall =========; \ - ${MAKE} ${MAKEFLAGS} uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR}${PREFIX} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ \ @@ -51,19 +63,49 @@ test_output : mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= all-tools/prog1 ==========; \ - ${MAKE} ${MAKEFLAGS} all-tools/prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all-tools/prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= -C tools/prog1 all ==========; \ + ${MAKE} ${MAKEFLAGS} -j4 clean-tools/prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} -j4 \ + -C `pwd`/tools/prog1 all DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= all-prog1 ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all-prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} nodeps-all-prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} subdir-all-prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} prog1 DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= all-tools/prog2 ==========; \ ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ - ${MAKE} ${MAKEFLAGS} all-tools/prog2 DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all-tools/prog2 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= -C tools/prog2 all ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} -j4 \ + -C tools/prog2 all DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ echo ========= all-tools/prog3 ==========; \ ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ - ${MAKE} ${MAKEFLAGS} all-tools/prog3 DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all-tools/prog3 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= -C tools/prog4 all ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} \ + -j4 all-tools/prog4 DESTDIR=${.OBJDIR} > /dev/null; \ find ${.OBJDIR} -type f -o -type l | \ mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ \ diff --git a/examples/tools/tools/prog1/Makefile b/examples/tools/tools/prog1/Makefile index ce374a2..bca4588 100644 --- a/examples/tools/tools/prog1/Makefile +++ b/examples/tools/tools/prog1/Makefile @@ -5,5 +5,8 @@ WARNS = 4 MKC_REQD = 0.10.0 +check: + @: do something useful + .include "../../libs/foo/linkme.mk" .include <mkc.prog.mk> diff --git a/examples/tools/tools/prog2/Makefile b/examples/tools/tools/prog2/Makefile index 365c990..63ab936 100644 --- a/examples/tools/tools/prog2/Makefile +++ b/examples/tools/tools/prog2/Makefile @@ -5,5 +5,8 @@ WARNS = 4 MKC_REQD = 0.10.0 +check: + @: do something useful + .include "../../libs/bar/linkme.mk" .include <mkc.prog.mk> diff --git a/examples/tools/tools/prog3/Makefile b/examples/tools/tools/prog3/Makefile index 4927386..b361032 100644 --- a/examples/tools/tools/prog3/Makefile +++ b/examples/tools/tools/prog3/Makefile @@ -5,6 +5,9 @@ WARNS = 4 MKC_REQD = 0.10.0 +check: + @: do something useful + .include "../../libs/foo/linkme.mk" .include "../../libs/bar/linkme.mk" diff --git a/examples/tools/tools/prog4/Makefile b/examples/tools/tools/prog4/Makefile new file mode 100644 index 0000000..307f490 --- /dev/null +++ b/examples/tools/tools/prog4/Makefile @@ -0,0 +1,11 @@ +PROG = prog4 + +WARNS = 4 + +MKC_REQD = 0.10.0 + +check: + @: do something useful + +.include "../../libs/qux/linkme.mk" +.include <mkc.prog.mk> diff --git a/examples/tools/tools/prog4/prog4.c b/examples/tools/tools/prog4/prog4.c new file mode 100644 index 0000000..3b4d087 --- /dev/null +++ b/examples/tools/tools/prog4/prog4.c @@ -0,0 +1,9 @@ +#include <stdio.h> + +#include "qux.h" + +int main (int argc, char** argv) +{ + printf ("int_size=%d\n", get_int_size ()); + return 0; +} diff --git a/examples/tools2/Makefile b/examples/tools2/Makefile new file mode 100644 index 0000000..c370807 --- /dev/null +++ b/examples/tools2/Makefile @@ -0,0 +1,25 @@ +SUBPRJ = libs/foo:tools/prog1 +SUBPRJ += libs/bar:tools/prog2 +SUBPRJ += libs/foo:tools/prog3 libs/bar:tools/prog3 +SUBPRJ += libs/qux:tools/prog4 + +SUBPRJ += tools/prog1:tests/prog1 +SUBPRJ += tools/prog2:tests/prog2 +SUBPRJ += tools/prog3:tests/prog3 +SUBPRJ += tools/prog4:tests/prog4 + +NODEPS += check-*/*:check-*/* \ + all-tests/*:all \ + check-libs/*:check check-tools/*:check + +# target "check" is used for testing because "test" is used by mk-configure +TARGETS = check + +SHORTPRJNAME = no + +# for regression test only +_THISDIR_ = +.export _THISDIR_ + +.include "test.mk" +.include <mkc.subprj.mk> diff --git a/examples/tools2/expect.out b/examples/tools2/expect.out new file mode 100644 index 0000000..9d2783a --- /dev/null +++ b/examples/tools2/expect.out @@ -0,0 +1,448 @@ +PROJECTNAME=tools2 +This is a message #1 +Message #2 +This is a message #3 +Message #3 +int_size=n +OBJDIR_tools_prog1=/path/to/prog1 +OBJDIR_tools_prog2=/path/to/prog2 +OBJDIR_tools_prog3=/path/to/prog3 +OBJDIR_tools_prog4=/path/to/prog4 +OBJDIR_libs_foo=/path/to/foo +OBJDIR_libs_bar=/path/to/bar +OBJDIR_prog3= +OBJDIR_bar= +=========== check ============ +================================================== +check ===> tests/prog1 +ok +================================================== +check ===> tests/prog2 +ok +================================================== +check ===> tests/prog3 +ok +================================================== +check ===> tests/prog4 +ok +=========== check-tools/prog1 ============ +================================================== +check ===> tools/prog1 +=========== all ============ +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/_mkc_sizeof_int.c +/objdir/_mkc_sizeof_int.err +/objdir/_mkc_sizeof_int.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/bar.o +/objdir/libs/bar/libbar.a +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/foo.o +/objdir/libs/foo/libfoo.a +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/libqux.a +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h +/objdir/libs/qux/qux.h.in +/objdir/libs/qux/qux.o +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1 +/objdir/tools/prog1/prog1.c +/objdir/tools/prog1/prog1.o +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2 +/objdir/tools/prog2/prog2.c +/objdir/tools/prog2/prog2.o +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3 +/objdir/tools/prog3/prog3.c +/objdir/tools/prog3/prog3.o +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4 +/objdir/tools/prog4/prog4.c +/objdir/tools/prog4/prog4.o +/objdir/tools2.test.out.tmp +===== all SHRTOUT=yes ====== +================================================== +all ===> libs/bar +CC: bar.c +AR: libbar.a +================================================== +all ===> libs/foo +CC: foo.c +AR: libfoo.a +================================================== +all ===> libs/qux +GEN: qux.h +CC: qux.c +AR: libqux.a +================================================== +all ===> tools/prog1 +CC: prog1.c +LD: prog1 +================================================== +all ===> tools/prog2 +CC: prog2.c +LD: prog2 +================================================== +all ===> tools/prog3 +CC: prog3.c +LD: prog3 +================================================== +all ===> tools/prog4 +CC: prog4.c +LD: prog4 +========= installdirs ========== +/objdir/prefix +/objdir/prefix/bin +/objdir/prefix/include +/objdir/prefix/lib +========= install ========== +/objdir/prefix +/objdir/prefix/bin +/objdir/prefix/bin/prog1 +/objdir/prefix/bin/prog2 +/objdir/prefix/bin/prog3 +/objdir/prefix/bin/prog4 +/objdir/prefix/include +/objdir/prefix/include/bar.h +/objdir/prefix/include/foo.h +/objdir/prefix/include/qux.h +/objdir/prefix/lib +/objdir/prefix/lib/libbar.a +/objdir/prefix/lib/libfoo.a +/objdir/prefix/lib/libqux.a +======== uninstall ========= +========== clean =========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/_mkc_sizeof_int.c +/objdir/_mkc_sizeof_int.err +/objdir/_mkc_sizeof_int.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +/objdir/tools2.test.out.tmp +======= cleandir ========== +/objdir/Makefile +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +/objdir/tools2.test.out.tmp +========= all-tools/prog1 ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/foo.o +/objdir/libs/foo/libfoo.a +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1 +/objdir/tools/prog1/prog1.c +/objdir/tools/prog1/prog1.o +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +/objdir/tools2.test.out.tmp +========= -C tools/prog1 all ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/foo.o +/objdir/libs/foo/libfoo.a +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1 +/objdir/tools/prog1/prog1.c +/objdir/tools/prog1/prog1.o +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +/objdir/tools2.test.out.tmp +========= all-tools/prog2 ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/bar.o +/objdir/libs/bar/libbar.a +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2 +/objdir/tools/prog2/prog2.c +/objdir/tools/prog2/prog2.o +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +/objdir/tools2.test.out.tmp +========= -C tools/prog2 all ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/bar.o +/objdir/libs/bar/libbar.a +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2 +/objdir/tools/prog2/prog2.c +/objdir/tools/prog2/prog2.o +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +/objdir/tools2.test.out.tmp +========= all-tools/prog3 ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/bar.o +/objdir/libs/bar/libbar.a +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/foo.o +/objdir/libs/foo/libfoo.a +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h.in +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3 +/objdir/tools/prog3/prog3.c +/objdir/tools/prog3/prog3.o +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4.c +/objdir/tools2.test.out.tmp +========= -C tools/prog4 all ========== +/objdir/Makefile +/objdir/_mkc_compiler_type.err +/objdir/_mkc_compiler_type.res +/objdir/_mkc_prog_cc.err +/objdir/_mkc_prog_cc.res +/objdir/_mkc_sizeof_int.c +/objdir/_mkc_sizeof_int.err +/objdir/_mkc_sizeof_int.res +/objdir/expect.out +/objdir/libs/bar/Makefile +/objdir/libs/bar/bar.c +/objdir/libs/bar/bar.h +/objdir/libs/bar/linkme.mk +/objdir/libs/foo/Makefile +/objdir/libs/foo/foo.c +/objdir/libs/foo/foo.h +/objdir/libs/foo/linkme.mk +/objdir/libs/qux/Makefile +/objdir/libs/qux/libqux.a +/objdir/libs/qux/linkme.mk +/objdir/libs/qux/qux.c +/objdir/libs/qux/qux.h +/objdir/libs/qux/qux.h.in +/objdir/libs/qux/qux.o +/objdir/test.mk +/objdir/tests/prog1/Makefile +/objdir/tests/prog2/Makefile +/objdir/tests/prog3/Makefile +/objdir/tests/prog4/Makefile +/objdir/tools/prog1/Makefile +/objdir/tools/prog1/prog1.c +/objdir/tools/prog2/Makefile +/objdir/tools/prog2/prog2.c +/objdir/tools/prog3/Makefile +/objdir/tools/prog3/prog3.c +/objdir/tools/prog4/Makefile +/objdir/tools/prog4/prog4 +/objdir/tools/prog4/prog4.c +/objdir/tools/prog4/prog4.o +/objdir/tools2.test.out.tmp +========= MKRELOBJDIR ========== +obj/_mkc_compiler_type.err +obj/_mkc_compiler_type.res +obj/_mkc_prog_cc.err +obj/_mkc_prog_cc.res +obj/_mkc_sizeof_int.c +obj/_mkc_sizeof_int.err +obj/_mkc_sizeof_int.res +obj/libs/bar/bar.o +obj/libs/bar/libbar.a +obj/libs/foo/foo.o +obj/libs/foo/libfoo.a +obj/libs/qux/libqux.a +obj/libs/qux/qux.h +obj/libs/qux/qux.o +obj/tools/prog1/prog1 +obj/tools/prog1/prog1.o +obj/tools/prog2/prog2 +obj/tools/prog2/prog2.o +obj/tools/prog3/prog3 +obj/tools/prog3/prog3.o +obj/tools/prog4/prog4 +obj/tools/prog4/prog4.o diff --git a/examples/tools2/libs/bar/Makefile b/examples/tools2/libs/bar/Makefile new file mode 100644 index 0000000..4022796 --- /dev/null +++ b/examples/tools2/libs/bar/Makefile @@ -0,0 +1,7 @@ +LIB = bar +SRCS = bar.c +INCS = bar.h + +WARNS = 4 + +.include <mkc.lib.mk> diff --git a/examples/tools2/libs/bar/bar.c b/examples/tools2/libs/bar/bar.c new file mode 100644 index 0000000..8580fe7 --- /dev/null +++ b/examples/tools2/libs/bar/bar.c @@ -0,0 +1,6 @@ +#include "bar.h" + +const char *get_msg2 (void) +{ + return "Message #"; +} diff --git a/examples/tools2/libs/bar/bar.h b/examples/tools2/libs/bar/bar.h new file mode 100644 index 0000000..a434759 --- /dev/null +++ b/examples/tools2/libs/bar/bar.h @@ -0,0 +1 @@ +const char *get_msg2 (void); diff --git a/examples/tools2/libs/bar/linkme.mk b/examples/tools2/libs/bar/linkme.mk new file mode 100644 index 0000000..4eea0a9 --- /dev/null +++ b/examples/tools2/libs/bar/linkme.mk @@ -0,0 +1,5 @@ +PATH.bar := ${.PARSEDIR} + +CPPFLAGS += -I${PATH.bar} +DPLIBDIRS += libs/${PATH.bar:T} +LDADD += -lbar diff --git a/examples/tools2/libs/foo/Makefile b/examples/tools2/libs/foo/Makefile new file mode 100644 index 0000000..0003bee --- /dev/null +++ b/examples/tools2/libs/foo/Makefile @@ -0,0 +1,7 @@ +LIB = foo +SRCS = foo.c +INCS = foo.h + +WARNS = 4 + +.include <mkc.lib.mk> diff --git a/examples/tools2/libs/foo/foo.c b/examples/tools2/libs/foo/foo.c new file mode 100644 index 0000000..1d47523 --- /dev/null +++ b/examples/tools2/libs/foo/foo.c @@ -0,0 +1,6 @@ +#include "foo.h" + +const char *get_msg1 (void) +{ + return "This is a message #"; +} diff --git a/examples/tools2/libs/foo/foo.h b/examples/tools2/libs/foo/foo.h new file mode 100644 index 0000000..489e95b --- /dev/null +++ b/examples/tools2/libs/foo/foo.h @@ -0,0 +1 @@ +const char *get_msg1 (void); diff --git a/examples/tools2/libs/foo/linkme.mk b/examples/tools2/libs/foo/linkme.mk new file mode 100644 index 0000000..ad42ee4 --- /dev/null +++ b/examples/tools2/libs/foo/linkme.mk @@ -0,0 +1,5 @@ +PATH.foo := ${.PARSEDIR} + +CPPFLAGS += -I${PATH.foo} +DPLIBDIRS += libs/${PATH.foo:T} +LDADD += -lfoo diff --git a/examples/tools2/libs/qux/Makefile b/examples/tools2/libs/qux/Makefile new file mode 100644 index 0000000..345f614 --- /dev/null +++ b/examples/tools2/libs/qux/Makefile @@ -0,0 +1,16 @@ +LIB = qux +SRCS = qux.c +INCS = qux.h + +MKC_CHECK_SIZEOF = int + +.include <mkc.configure.mk> + +INFILES = ${INCS} +INTEXTS_REPLS = int_size ${SIZEOF.int:U4} + +qux.o: qux.h + +WARNS = 4 + +.include <mkc.lib.mk> diff --git a/examples/tools2/libs/qux/linkme.mk b/examples/tools2/libs/qux/linkme.mk new file mode 100644 index 0000000..82f5dd6 --- /dev/null +++ b/examples/tools2/libs/qux/linkme.mk @@ -0,0 +1,5 @@ +PATH.qux := ${.PARSEDIR} + +CPPFLAGS += -I${OBJDIR_libs_qux} +DPLIBDIRS += libs/${PATH.qux:T} +LDADD += -lqux diff --git a/examples/tools2/libs/qux/qux.c b/examples/tools2/libs/qux/qux.c new file mode 100644 index 0000000..78786db --- /dev/null +++ b/examples/tools2/libs/qux/qux.c @@ -0,0 +1,6 @@ +#include "qux.h" + +int get_int_size (void) +{ + return INT_SIZE; +} diff --git a/examples/tools2/libs/qux/qux.h.in b/examples/tools2/libs/qux/qux.h.in new file mode 100644 index 0000000..0a41ce1 --- /dev/null +++ b/examples/tools2/libs/qux/qux.h.in @@ -0,0 +1,4 @@ + +#define INT_SIZE @int_size@ + +int get_int_size (void); diff --git a/examples/tools2/test.mk b/examples/tools2/test.mk new file mode 100644 index 0000000..1c630f0 --- /dev/null +++ b/examples/tools2/test.mk @@ -0,0 +1,115 @@ +next_level != expr ${.MAKE.LEVEL} + 1 + +.PHONY : test_output +test_output : + @set -e; \ + MKCATPAGES=yes; export MKCATPAGES; \ + SRCTOP=`pwd`; export SRCTOP; \ + LC_ALL=C; export LC_ALL; \ + \ + echo PROJECTNAME=${PROJECTNAME}; \ + rm -rf ${.OBJDIR}${PREFIX}; \ + ${.CURDIR}/tools/prog1/prog1; \ + ${.CURDIR}/tools/prog2/prog2; \ + ${.CURDIR}/tools/prog3/prog3; \ + ${.CURDIR}/tools/prog4/prog4 | sed 's/=[0-9]/=n/'; \ + echo OBJDIR_tools_prog1=${OBJDIR_tools_prog1} | mkc_test_helper_paths; \ + echo OBJDIR_tools_prog2=${OBJDIR_tools_prog2} | mkc_test_helper_paths; \ + echo OBJDIR_tools_prog3=${OBJDIR_tools_prog3} | mkc_test_helper_paths; \ + echo OBJDIR_tools_prog4=${OBJDIR_tools_prog4} | mkc_test_helper_paths; \ + echo OBJDIR_libs_foo=${OBJDIR_libs_foo} | mkc_test_helper_paths; \ + echo OBJDIR_libs_bar=${OBJDIR_libs_bar} | mkc_test_helper_paths; \ + echo OBJDIR_prog3=${OBJDIR_prog3} | mkc_test_helper_paths; \ + echo OBJDIR_bar=${OBJDIR_bar} | mkc_test_helper_paths; \ + \ + echo =========== check ============; \ + ${MAKE} ${MAKEFLAGS} check 2>&1; \ + \ + echo =========== check-tools/prog1 ============; \ + ${MAKE} ${MAKEFLAGS} check-tools/prog1 2>&1; \ + \ + echo =========== all ============; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ===== all SHRTOUT=yes ======; \ + ${MAKE} ${MAKEFLAGS} clean > /dev/null; \ + env SHRTOUT=YES ${MAKE} ${MAKEFLAGS} all 2>&1; \ + \ + echo ========= installdirs ==========; \ + ${MAKE} ${MAKEFLAGS} installdirs DESTDIR=${.OBJDIR} \ + > /dev/null; \ + find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= install ==========; \ + ${MAKE} ${MAKEFLAGS} install -j3 DESTDIR=${.OBJDIR} \ + > /dev/null; \ + find ${.OBJDIR}${PREFIX} -type f -o -type l -o -type d | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ======== uninstall =========; \ + ${MAKE} ${MAKEFLAGS} -j4 uninstall DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR}${PREFIX} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ + \ + echo ========== clean ===========; \ + ${MAKE} ${MAKEFLAGS} clean DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}";\ + \ + echo ======= cleandir ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= all-tools/prog1 ==========; \ + ${MAKE} ${MAKEFLAGS} -j4 all-tools/prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= -C tools/prog1 all ==========; \ + ${MAKE} ${MAKEFLAGS} -j4 clean-tools/prog1 DESTDIR=${.OBJDIR} > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} -j4 \ + -C `pwd`/tools/prog1 all DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= all-tools/prog2 ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all-tools/prog2 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= -C tools/prog2 all ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} -j4 \ + -C tools/prog2 all DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= all-tools/prog3 ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + ${MAKE} ${MAKEFLAGS} -j4 all-tools/prog3 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= -C tools/prog4 all ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir DESTDIR=${.OBJDIR} > /dev/null; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} \ + -j4 all-tools/prog4 DESTDIR=${.OBJDIR} > /dev/null; \ + find ${.OBJDIR} -type f -o -type l | \ + mkc_test_helper "${PREFIX}" "${.OBJDIR}"; \ + \ + echo ========= MKRELOBJDIR ==========; \ + ${MAKE} ${MAKEFLAGS} cleandir > /dev/null; \ + MKRELOBJDIR=yes; export MKRELOBJDIR; \ + mkdir obj; \ + env init_make_level=${next_level} ${MAKE} ${MAKEFLAGS} \ + -j4 all > /dev/null; \ + find obj -type f -o -type l | sort; \ + rm -rf obj; \ + \ + ${MAKE} ${MAKEFLAGS} cleandir > /dev/null; \ + +.include <mkc.minitest.mk> diff --git a/examples/tools2/tests/prog1/Makefile b/examples/tools2/tests/prog1/Makefile new file mode 100644 index 0000000..157ce1c --- /dev/null +++ b/examples/tools2/tests/prog1/Makefile @@ -0,0 +1,8 @@ +check: + @if test "`${OBJDIR_tools_prog1}/prog1`" = 'This is a message #1'; then \ + echo ok; \ + else \ + echo FAILED; false; \ + fi + +.include <mkc.mk> diff --git a/examples/tools2/tests/prog2/Makefile b/examples/tools2/tests/prog2/Makefile new file mode 100644 index 0000000..bb706b8 --- /dev/null +++ b/examples/tools2/tests/prog2/Makefile @@ -0,0 +1,8 @@ +check: + @if test "`${OBJDIR_tools_prog2}/prog2`" = 'Message #2'; then \ + echo ok; \ + else \ + echo FAILED; false; \ + fi + +.include <mkc.mk> diff --git a/examples/tools2/tests/prog3/Makefile b/examples/tools2/tests/prog3/Makefile new file mode 100644 index 0000000..c4cdad8 --- /dev/null +++ b/examples/tools2/tests/prog3/Makefile @@ -0,0 +1,10 @@ +check: + @if test "`${OBJDIR_tools_prog3}/prog3 | tr '\012' ' '`" = \ + 'This is a message #3 Message #3 '; \ + then \ + echo ok; \ + else \ + echo FAILED; false; \ + fi + +.include <mkc.mk> diff --git a/examples/tools2/tests/prog4/Makefile b/examples/tools2/tests/prog4/Makefile new file mode 100644 index 0000000..fb34426 --- /dev/null +++ b/examples/tools2/tests/prog4/Makefile @@ -0,0 +1,8 @@ +check: + @if test "`${OBJDIR_tools_prog4}/prog4 | tr '248' 'nnn'`" = 'int_size=n'; then \ + echo ok; \ + else \ + echo FAILED; false; \ + fi + +.include <mkc.mk> diff --git a/examples/tools2/tools/prog1/Makefile b/examples/tools2/tools/prog1/Makefile new file mode 100644 index 0000000..bca4588 --- /dev/null +++ b/examples/tools2/tools/prog1/Makefile @@ -0,0 +1,12 @@ +PROG = prog1 + +CFLAGS += -DNUM=1 +WARNS = 4 + +MKC_REQD = 0.10.0 + +check: + @: do something useful + +.include "../../libs/foo/linkme.mk" +.include <mkc.prog.mk> diff --git a/examples/tools2/tools/prog1/prog1.c b/examples/tools2/tools/prog1/prog1.c new file mode 100644 index 0000000..87578e2 --- /dev/null +++ b/examples/tools2/tools/prog1/prog1.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#include "foo.h" + +int main (int argc, char** argv) +{ + printf ("%s", get_msg1 ()); + printf ("%d\n", NUM); + return 0; +} diff --git a/examples/tools2/tools/prog2/Makefile b/examples/tools2/tools/prog2/Makefile new file mode 100644 index 0000000..63ab936 --- /dev/null +++ b/examples/tools2/tools/prog2/Makefile @@ -0,0 +1,12 @@ +PROG = prog2 + +CFLAGS += -DNUM=2 +WARNS = 4 + +MKC_REQD = 0.10.0 + +check: + @: do something useful + +.include "../../libs/bar/linkme.mk" +.include <mkc.prog.mk> diff --git a/examples/tools2/tools/prog2/prog2.c b/examples/tools2/tools/prog2/prog2.c new file mode 100644 index 0000000..ed9553c --- /dev/null +++ b/examples/tools2/tools/prog2/prog2.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#include "bar.h" + +int main (int argc, char** argv) +{ + printf ("%s", get_msg2 ()); + printf ("%d\n", NUM); + return 0; +} diff --git a/examples/tools2/tools/prog3/Makefile b/examples/tools2/tools/prog3/Makefile new file mode 100644 index 0000000..b361032 --- /dev/null +++ b/examples/tools2/tools/prog3/Makefile @@ -0,0 +1,14 @@ +PROG = prog3 + +CFLAGS += -DNUM=3 +WARNS = 4 + +MKC_REQD = 0.10.0 + +check: + @: do something useful + +.include "../../libs/foo/linkme.mk" +.include "../../libs/bar/linkme.mk" + +.include <mkc.prog.mk> diff --git a/examples/tools2/tools/prog3/prog3.c b/examples/tools2/tools/prog3/prog3.c new file mode 100644 index 0000000..54b740b --- /dev/null +++ b/examples/tools2/tools/prog3/prog3.c @@ -0,0 +1,14 @@ +#include <stdio.h> + +#include "foo.h" +#include "bar.h" + +int main (int argc, char** argv) +{ + printf ("%s", get_msg1 ()); + printf ("%d\n", NUM); + + printf ("%s", get_msg2 ()); + printf ("%d\n", NUM); + return 0; +} diff --git a/examples/tools2/tools/prog4/Makefile b/examples/tools2/tools/prog4/Makefile new file mode 100644 index 0000000..307f490 --- /dev/null +++ b/examples/tools2/tools/prog4/Makefile @@ -0,0 +1,11 @@ +PROG = prog4 + +WARNS = 4 + +MKC_REQD = 0.10.0 + +check: + @: do something useful + +.include "../../libs/qux/linkme.mk" +.include <mkc.prog.mk> diff --git a/examples/tools2/tools/prog4/prog4.c b/examples/tools2/tools/prog4/prog4.c new file mode 100644 index 0000000..3b4d087 --- /dev/null +++ b/examples/tools2/tools/prog4/prog4.c @@ -0,0 +1,9 @@ +#include <stdio.h> + +#include "qux.h" + +int main (int argc, char** argv) +{ + printf ("int_size=%d\n", get_int_size ()); + return 0; +} |