1 2020-11-06 Simon J Gerraty <sjg@beast.crufty.net>
3 * install-mk (MK_VERSION): 20201106
5 * meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed
6 args to tweak extensions for local deps.
8 2020-11-01 Simon J Gerraty <sjg@beast.crufty.net>
10 * install-mk (MK_VERSION): 20201101
12 * dirdeps.mk: most leaf makefiles are not suitable for building
13 dirdeps.cache so if RELDIR is not "." use dirdeps.mk
15 2020-10-28 Simon J Gerraty <sjg@beast.crufty.net>
17 * install-mk (MK_VERSION): 20201028
19 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE
20 when building dirdeps.cache for leaf directory use -f dirdeps.mk
22 * sys.vars.mk: add M_JOT and M_RANGE
24 2020-10-01 Simon J Gerraty <sjg@beast.crufty.net>
26 * install-mk (MK_VERSION): 20201001
28 * meta2deps.{py,sh}: throw an error if we don't see filemon version
30 2020-09-09 Simon J Gerraty <sjg@beast.crufty.net>
32 * install-mk (MK_VERSION): 20200909
34 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target
36 2020-08-26 Simon J Gerraty <sjg@beast.crufty.net>
38 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic
39 (even more rare that use of static cache is playing clever tricks
42 2020-08-16 Simon J Gerraty <sjg@beast.crufty.net>
44 * dirdeps-cache-update.mk: allow
45 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we
46 actually update STATIC_DIRDEPS_CACHE.
48 * stage-install.sh: create dest directory if needed
49 before running install(1)
51 2020-08-10 Simon J Gerraty <sjg@beast.crufty.net>
53 * dirdeps-targets.mk: include Makefile.dirdeps.options
55 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE
57 2020-08-09 Simon J Gerraty <sjg@beast.crufty.net>
59 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty
61 * dirdeps-cache-update.mk: building parallel cache update
62 under the context of dirdeps-cached would be ideal, but
63 is problematic, so it runs as a sibling.
64 Use cache-built target to ensure we wait for it to complete if
67 2020-08-06 Simon J Gerraty <sjg@beast.crufty.net>
69 * install-mk (MK_VERSION): 20200806
71 * dirdeps-options: allow TARGET_SPEC to affect option values.
72 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_*
74 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined
75 before looking for STATIC_DIRDEPS_CACHE
77 2020-08-05 Simon J Gerraty <sjg@beast.crufty.net>
79 * host-target.mk: Darwin use MACHINE for HOST_ARCH too
81 * dirdeps-options.mk: improve debug output
83 2020-07-22 Simon J Gerraty <sjg@beast.crufty.net>
85 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE
86 for use by dirdeps-cache-update.mk
88 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE
89 for use by dirdeps-cache-update.mk even if we don't use it.
91 * dirdeps-cache-update.mk: we only need worry about the background
92 update case, with the above, the update from DIRDEPS_CACHE is
95 * meta2deps.py: R 1234 . is not interesting
97 2020-07-20 Simon J Gerraty <sjg@beast.crufty.net>
99 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE
101 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS
102 allows use of lower case for pseudo options.
104 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE
106 2020-07-18 Simon J Gerraty <sjg@beast.crufty.net>
108 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache
109 which allows us to have a static cache for expensive targets.
110 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE
111 to regenerate the dirdeps.cache it is a copy of.
113 2020-07-17 Simon J Gerraty <sjg@beast.crufty.net>
115 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense.
117 2020-07-16 Simon J Gerraty <sjg@beast.crufty.net>
119 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record
120 load averages at intervals during build.
122 2020-07-15 Simon J Gerraty <sjg@beast.crufty.net>
124 * install-mk (MK_VERSION): 20200715
126 * dirdeps.mk: tweak Checking line to make matching Finished
127 lines for post-build analysis easier.
129 * meta.autodep.mk: use !defined(WITHOUT_META_STATS)
131 * progs.mk: avoid prog.mk outputting multiple Finished lines
133 2020-07-11 Simon J Gerraty <sjg@beast.crufty.net>
135 * dirdeps.mk: further optimize dirdeps.cache
136 generate a DIRDEPS.${.TARGET} list for other purposes
137 and improve the layout.
139 2020-07-10 Simon J Gerraty <sjg@beast.crufty.net>
141 * dirdeps.mk: optimize content of dirdeps.cache
143 2020-06-28 Simon J Gerraty <sjg@beast.crufty.net>
145 * sys/*.mk: make it easier for local*sys.mk to customize by
148 2020-06-22 Simon J Gerraty <sjg@beast.crufty.net>
150 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0
151 it is much safer to guard local depends with a simple check for
154 2020-06-10 Simon J Gerraty <sjg@beast.crufty.net>
156 * install-mk (MK_VERSION): 20200610
158 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok
160 2020-06-06 Simon J Gerraty <sjg@beast.crufty.net>
162 * install-mk (MK_VERSION): 20200606
164 * dirdeps-targets.mk: allow for filtering of .TARGETS
166 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove
167 entries - and we don't care about 'W'rite entries.
168 Also ignore absolute paths that do not exist.
170 2020-05-25 Simon J Gerraty <sjg@beast.crufty.net>
172 * install-mk (MK_VERSION): 20200525
174 * init.mk: expand and simplify handling of qualified vars
175 like CPPFLAGS.${.TARGET:T}
177 2020-05-15 Simon J Gerraty <sjg@beast.crufty.net>
179 * install-mk (MK_VERSION): 20200515
181 * dirdeps.mk: set _debug_* earlier and allow passing -d*
182 flags to submake when building DIRDEPS_CACHE
184 2020-05-09 Simon J Gerraty <sjg@beast.crufty.net>
186 * whats.mk: more easily extensible
188 2020-05-02 Simon J Gerraty <sjg@beast.crufty.net>
190 * whats.mk: greatly simplify by adding what.c to SRCS
192 2020-05-01 Simon J Gerraty <sjg@beast.crufty.net>
194 * whats.mk: for libs take care how we add to *OBJS
196 * lib.mk: : works better with whats.mk
198 2020-04-25 Simon J Gerraty <sjg@beast.crufty.net>
200 * install-mk (MK_VERSION): 20200420
202 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep
203 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC}
205 2020-04-16 Simon J Gerraty <sjg@beast.crufty.net>
207 * install-mk (MK_VERSION): 20200416
209 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to
210 interfere with user env.
212 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL
214 * autodep.mk: use MAKE_SHELL.
216 2019-11-21 Simon J Gerraty <sjg@beast.crufty.net>
218 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of
219 wasted effort, and unexport _meta_files when no longer needed as
220 it consumes space we need for command line.
222 2019-11-11 Simon J Gerraty <sjg@beast.crufty.net>
224 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add
225 DIRDEP_USE_PRELUDE at start - facilitates job distribution
227 2019-10-04 Simon J Gerraty <sjg@beast.crufty.net>
229 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST
230 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid
231 TARGET_SPEC qualified depend files.
233 2019-10-02 Simon J Gerraty <sjg@beast.crufty.net>
235 * dirdeps-targets.mk: encapsulate logic for finding top-level
236 targets to set initial DIRDEPS for DIRDEPS_BUILD
238 2019-09-27 Simon J Gerraty <sjg@beast.crufty.net>
240 * install-mk (MK_VERSION): 20190911
242 * compiler.mk: set COMPILER_TYPE
244 2019-07-17 Simon J Gerraty <sjg@beast.crufty.net>
246 * install-mk (MK_VERSION): 20190704
248 * sys/Darwin.mk: support for Objective-C and clang
250 2019-05-30 Simon J Gerraty <sjg@beast.crufty.net>
252 * dirdeps.mk: avoid insanely long command line when generating cache
254 2019-05-23 Simon J Gerraty <sjg@beast.crufty.net>
256 * install-mk (MK_VERSION): 20190505
258 * whats.mk: handle corner case SHLIB defined but not LIB
260 2018-09-19 Simon J Gerraty <sjg@beast.crufty.net>
262 * install-mk (MK_VERSION): 20180919
264 * dirdeps-options.mk: .undef cannot handle var that expands to
267 2018-07-08 Simon J Gerraty <sjg@beast.crufty.net>
269 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc.
271 2018-06-01 Simon J Gerraty <sjg@beast.crufty.net>
273 * meta.autodep.mk: export META_FILES to avoid command line limit
274 * gendirdeps.mk: if we have lots of .meta files put them in
277 2018-05-28 Simon J Gerraty <sjg@beast.crufty.net>
279 * dirdeps-options.mk: use local.dirdeps-options.mk
280 not local.dirdeps-option.mk
282 2018-04-20 Simon J Gerraty <sjg@beast.crufty.net>
284 * install-mk (MK_VERSION): 20180420
285 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0
286 ie. we are building something.
288 2018-04-14 Simon J Gerraty <sjg@beast.crufty.net>
290 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS.
292 2018-04-05 Simon J Gerraty <sjg@beast.crufty.net>
294 * install-mk (MK_VERSION): 20180405
296 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER
299 2018-01-18 Simon J Gerraty <sjg@beast.crufty.net>
301 * install-mk (MK_VERSION): 20180118
303 * ldorder.mk: let make compute correct link order
305 2017-12-12 Simon J Gerraty <sjg@beast.crufty.net>
307 * install-mk (MK_VERSION): 20171212
309 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER
311 2017-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
313 * install-mk (MK_VERSION): 20171111
315 * lib.mk: ensure META_NOECHO is set
317 2017-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
319 * Allow for host32 on rare occasions.
321 2017-10-18 Simon J. Gerraty <sjg@bad.crufty.net>
323 * install-mk (MK_VERSION): 20171018
325 * whats.mk: include what_thing in what_uuid to avoid problem
326 when building multiple apps in the same directory.
328 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
330 * install-mk (MK_VERSION): 20170812
332 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can
333 add dependencies for config.recheck and config.gen
335 2017-06-30 Simon J. Gerraty <sjg@bad.crufty.net>
337 * install-mk (MK_VERSION): 20170630
339 * meta.stage.mk: avoid triggering stage_* targets with nothing to do.
341 2017-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
343 * meta2deps.py: take special care of '..'
345 2017-05-15 Simon J. Gerraty <sjg@bad.crufty.net>
347 * install-mk (MK_VERSION): 20170515
349 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is
350 useful/necessary for a Makefile.depend file to export some knobs.
351 This is complicated when we are doing DIRDEPS_CACHE, so we will
352 handle export of any variables listed in DEP_EXPORT_VARS.
354 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
356 * install-mk (MK_VERSION): 20170505
358 * meta2deps.py: fix botched indenation.
360 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
362 * sys/*.mk: Remove setting of MAKE it is unnecessary and
363 in many cases wrong (basname rather than full path)
365 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk
367 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc
369 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
371 * install-mk (MK_VERSION): 20170501
373 * doc.mk: fix typo in DOC_INSTALL_OWN
375 * inc.mk: handle INCGROUPS similar to freebsd
377 * files.mk: add something for files too
379 * add staging logic to lib.mk prog.mk etc.
381 2017-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
383 * install-mk (MK_VERSION): 20170424
385 * dirdeps.mk: set NO_DIRDEPS when bootstrapping.
386 also target of bootstrap-this when sed is needed should be ${_want:T}
388 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
390 * install-mk (MK_VERSION): 20170418
392 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a
393 prefix match for .CURDIR - in which case .CURDIR *is* __objdir.
395 2017-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
397 * install-mk (MK_VERSION): 20170401
399 * meta2deps.py: add is_src so we can check if obj dependency
400 is also a src dependency.
402 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
404 * install-mk (MK_VERSION): 20170326
406 * meta.stage.mk: do nothing if NO_STAGING is defined.
408 2017-03-24 Simon J. Gerraty <sjg@bad.crufty.net>
410 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc.
412 2017-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
414 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_*
416 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
418 * install-mk (MK_VERSION): 20170301
420 * dirdeps.mk (_build_all_dirs): update this outside test for empty
423 * meta.stage.mk: allow multiple inclusion to the extent it makes
426 2017-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
428 * prog.mk (install_links): depends on realinstall
430 2017-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
432 * install-mk (MK_VERSION): 20170212
434 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries
436 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
438 * install-mk (MK_VERSION): 20170130
440 * dirdeps.mk: use :range if we can.
442 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130
444 * meta2deps.py: clean paths without using realpath() where possible.
447 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
449 * install-mk (MK_VERSION): 20161212
451 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir,
452 rather than when we detect pid change.
454 2016-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
456 * install-mk (MK_VERSION): 20161207
458 * meta.stage.mk: add stage_as_and_symlink for staging packages.
459 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able
460 to use foo.tgz to reference the latest staged version - so we
461 make foo.tgz a symlink to it.
462 Using a target to do both operations ensures we stay in sync.
464 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
466 * install-mk (MK_VERSION): 20161126
468 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk
469 so it can add dependencies.
471 2016-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
473 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE
474 do that they can influence the result correctly.
476 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC
478 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST
479 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST
481 2016-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
483 * dirdeps.mk: remove dependence on jot (normal situations anyway).
484 Before we read another Makefile.depend* set DEP_* vars from
485 _DEP_TARGET_SPEC in case it uses any of them with :=
486 When bootstrapping, trim any ,* from extention of chosen _src
487 Makefile.depend* to get the machine value we subst for.
489 2016-09-30 Simon J. Gerraty <sjg@bad.crufty.net>
491 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to
492 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER
494 * sys.mk: extract some bits to sys.{debug,vars}.mk
495 for easier re-use by others.
497 2016-09-23 Simon Gerraty <sjg@sjg-mba13>
499 * lib.mk: Use ${PICO} for extension for PIC objects.
500 default to .pico (like NetBSD) safe on case insensitive filesystem.
502 2016-08-19 Simon J. Gerraty <sjg@bad.crufty.net>
504 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default
506 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
508 * install-mk (MK_VERSION): 20160815
510 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only
511 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date.
513 2016-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
515 * meta.sys.mk (.MAKE.META.IGNORE_PATHS):
516 in meta mode we can ignore the mtime of makefiles
518 2016-08-02 Simon J. Gerraty <sjg@bad.crufty.net>
520 * install-mk (MK_VERSION): 20160802
522 * lib.mk (libinstall): depends on beforinstall
524 * prog.mk (proginstall): depends on beforinstall
525 patch from Lauri Tirkkonen
527 * dirdeps.mk (bootstrap): When bootstrapping; creat
528 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via
529 .MAKE.DEPENDFILE_BOOTSTRAP_SED
531 * dirdeps.mk: move some comments to where they make sense.
533 2016-07-27 Simon J. Gerraty <sjg@bad.crufty.net>
535 * dirdeps.mk (DIRDEPS_CACHE): no dirname.
537 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
539 * install-mk (MK_VERSION): 20160602
540 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk
541 do not apply :T to META_XTRAS
542 patch from Bryan Drewery at FreeBSD.org.
544 2016-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
546 * install-mk (MK_VERSION): 20160530
547 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH
550 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
552 * install-mk (MK_VERSION): 20160512
554 * dpadd.mk: always include local.dpadd.mk if it exists
555 remove some things that better belong in local.dpadd.mk
556 skip INCLUDES_* for staged libs unless SRC_* defined.
558 * own.mk: add INCLUDEDIR
560 2016-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
562 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no
563 TARGET_MACHINE - :E will be empty or match part of path, use
566 2016-04-07 Simon J. Gerraty <sjg@bad.crufty.net>
568 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to
571 * dirdeps.mk: move the logic that allows for
572 make -f dirdeps.mk some/dir.${TARGET_SPEC}
573 inside the check for !target(_DIRDEP_USE)
575 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
577 * Use <> when including local*.mk and others which may exist
578 elsewhere so that user can better control what they get.
580 * meta.autodep.mk (NO_FILEMON_COOKIE):
581 create a cookie if we ever build dir with nofilemon
582 so that UPDATE_DEPENDFILE will be forced to NO until cleaned.
584 2016-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
586 * install-mk (MK_VERSION): 20160401
588 * meta2deps.py: fix old print statement when debugging.
590 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X
591 patch from Bryan Drewery
593 2016-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
595 * install-mk (MK_VERSION): 20160317 (St. Pats)
597 * warnings.mk: g++ does not like -Wimplicit
599 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the
600 pelthora of common suffixes for C++
602 * lib.mk: use .So for shared objects
604 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
606 * install-mk (MK_VERSION): 20160315
608 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1)
609 normally only applies to scripts.
611 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as
614 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
616 * install-mk (MK_VERSION): 20160310
618 * dirdeps.mk: use targets rather than a list to track DIRDEPS that
619 we have processed; the list gets very inefficient as number of
622 * sys.dependfile.mk: fix comment wrt MACHINE
624 * meta.autodep.mk: ignore staged DPADDs when bootstrapping.
625 patch from Bryan Drewery
627 2016-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
629 * meta2deps.sh: don't ignore subdirs.
630 patch from Bryan Drewery
632 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
634 * install-mk (MK_VERSION): 20160226
636 * gendirdeps.mk: mark _DEPENDFILE .NOMETA
638 2016-02-20 Simon J. Gerraty <sjg@bad.crufty.net>
640 * dirdeps.mk: we shouldn't normally include .depend but if we do
641 use .dinclude if we can.
643 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
645 * install-mk (MK_VERSION): 20160218
646 * sys.clean-env.mk: with recent change to Var_Subst()
647 we cannot use the '$$' trick, but .export-literal does the job
649 * auto.dep.mk: make use .dinclude if we can.
652 2016-02-05 Simon J. Gerraty <sjg@bad.crufty.net>
655 Add _build_all_dirs such that local.dirdeps.mk can
656 add fully qualified dirs to it.
657 These will be built normally but the current
658 DEP_RELDIR will not depend on then (to avoid cycles).
659 This makes it easy to hook things like unit-tests into build.
662 2016-01-21 Simon J. Gerraty <sjg@bad.crufty.net>
664 * dirdeps.mk: add bootstrap-empty
666 2015-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
668 * install-mk (MK_VERSION): 20151212
669 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist.
670 only apply :tA to __objdir when comparing to .OBJDIR
672 2015-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
674 * install-mk (MK_VERSION): 20151111
676 * meta.sys.mk: include sys.dependfile.mk
678 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk
679 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD
680 include local.sys.env.mk early
681 include local.sys.mk later
683 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk
685 2015-11-13 Simon J. Gerraty <sjg@bad.crufty.net>
687 * meta.sys.mk (META_COOKIE_TOUCH):
688 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie
690 * meta.stage.mk: stage_libs should ignore SYMLINKS.
692 2015-10-23 Simon J. Gerraty <sjg@bad.crufty.net>
694 * install-mk (MK_VERSION): 20151022
696 * sys.mk: BSD/OS does not have 'type' as a shell builtin.
698 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
700 * install-mk (MK_VERSION): 20151020
702 * dirdeps.mk: Add logic for
703 make -f dirdeps.mk some/dir.${TARGET_SPEC}
705 2015-10-14 Simon J. Gerraty <sjg@bad.crufty.net>
707 * install-mk (MK_VERSION): 20151010
709 2015-10-02 Simon J. Gerraty <sjg@bad.crufty.net>
711 * meta.stage.mk: use staging: ${STAGE_TARGETS:...
712 to have stage_lins run last in non-jobs mode.
713 Use .ORDER only for jobs mode.
715 2015-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
717 * rst2htm.mk: allow for per target flags etc.
719 2015-09-01 Simon J. Gerraty <sjg@bad.crufty.net>
721 * install-mk (MK_VERSION): 20150901
723 * doc.mk: create dir if needed use DOC_INSTALL_OWN
725 2015-06-15 Simon J. Gerraty <sjg@bad.crufty.net>
727 * install-mk (MK_VERSION): 20150615
729 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too.
730 Follow make's normal precedence rules.
732 * gendirdeps.mk: allow customization of the header.
734 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}';
736 * meta.autodep.mk: ignore dirdeps.cache*
738 * meta.stage.mk: when bootstrapping options it can be handy to
739 throw warnings rather than errors for staging conflicts.
741 * meta.sys.mk: include local.meta.sys.mk for customization
743 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
745 * install-mk (MK_VERSION): 20150606
747 * dirdeps.mk: don't rely on manually maintained Makefile.depend
748 to set DEP_RELDIR and reset DIRDEPS.
749 By setting DEP_RELDIR ourselves we can skip :tA
751 * gendirdeps.mk: skip setting DEP_RELDIR.
753 2015-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
755 * dirdeps.mk: avoid wildcards like make(bootstrap*)
757 2015-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
759 * install-mk (MK_VERSION): 20150520
761 * dirdeps.mk: when we are building dirdeps cache file we *want*
762 meta_oodate to look at all the Makefile.depend files, so
763 set .MAKE.DEPENDFILE to something that won't match.
765 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique
766 so first use absolute path as key.
767 Also skip staging at level 0.
769 2015-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
771 * install-mk (MK_VERSION): 20150430
773 * dirdeps.mk: fix _count_dirdeps for non-cache case.
775 2015-04-16 Simon J. Gerraty <sjg@bad.crufty.net>
777 * install-mk (MK_VERSION): 20150411
780 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES.
781 it is here mainly for documentation purposes, since
782 if using auto.obj.mk it is better done via sys.mk
784 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
786 * install-mk (MK_VERSION): 20150401
788 * meta2deps.sh: support @list
790 * meta2deps.py: updates from Juniper
792 o skip bogus input files.
793 o treat 'M' and 'L' as both an 'R' and a 'W'
795 2015-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
797 * install-mk (MK_VERSION): 20150303
799 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache
800 which is built via sub-make so we have a .meta file to tell if
802 The dirdeps-cache contains the same dependency rules that we
803 normaly construct on the fly.
804 This adds a few seconds overhead when the cache is out of date,
805 but for a large target, the savings can be significant (10-20min).
807 2014-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
809 * install-mk (MK_VERSION): 20141118
811 * meta.stage.mk: add stale_staged
813 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked
814 only useful under very rare conditions such as
815 FreeBSD's make universe.
817 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto
819 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
821 * install-mk (MK_VERSION): 20141111
823 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts
825 2014-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
827 * FILES: include mkopt.sh which allows handling options in shell
828 scripts in a manner compatible with options.mk
830 2014-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
832 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used
833 for GENDIRDEPS_FILTER to avoid surprises.
835 2014-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
837 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by
838 the time it is applied to __depdirs they have.
840 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes
841 expects patterns like *.${MACHINE}
843 * cython.mk (pyprefix?): use pyprefix to find python bits
844 since prefix might be something else (where we install our
847 2014-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
849 * install-mk (MK_VERSION): 20140911
851 * dirdeps.mk: add bootstrap target to simplify adding support for
854 2014-09-01 Simon J. Gerraty <sjg@bad.crufty.net>
856 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and
857 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable
858 Makefile.depend files.
860 2014-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
862 * install-mk (MK_VERSION): 20140828
864 * cython.mk: capture logic for building python extension modules
867 2014-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
869 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant
871 2014-08-02 Simon J. Gerraty <sjg@bad.crufty.net>
873 * install-mk (MK_VERSION): 20140801
875 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to
876 identify the autodep.mk variant.
878 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its
879 initial value does not match .MAKE.DEPENDFILE_PREFIX
881 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS
883 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
885 * install-mk (MK_VERSION): 20140522
887 * lib.mk: use CC to link shlib for linux too
888 patch from Brendan MacDonell
890 2014-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
892 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats
893 if WITH_META_STATS is defined.
895 2014-05-02 Simon J. Gerraty <sjg@bad.crufty.net>
897 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS)
898 to supress dirdeps outside of .CURDIR.
900 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
902 * Fix spelling errors - patch from Pedro Giffuni
904 2014-03-14 Simon J. Gerraty <sjg@bad.crufty.net>
906 * install-mk (MK_VERSION): 20140314
908 * dirdeps.mk (beforedirdeps): a handy hook
910 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run
911 to visit leaf dirs to be intercepted (eg. for distributed
914 * dirdeps.mk (__depdirs): ensure // don't sneak in
916 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in
919 2014-02-21 Simon J. Gerraty <sjg@bad.crufty.net>
921 * rst2htm.mk (RST2PDF): add support for rst2pdf
923 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
925 * install-mk (MK_VERSION): bump version
926 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if
929 2014-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
931 * options.mk: avoid :U so this isn't bmake dependent
933 2014-02-09 Simon J. Gerraty <sjg@bad.crufty.net>
935 * options.mk: cleanup and simplify semanitcs
936 NO_* dominates all, if both WITH_* and WITHOUT_*
937 are defined then result is DOMINATE_* which defaults to "no".
938 Ie. WITHOUT_ normally wins.
940 2013-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
942 * install-mk (MK_VERSION): bump version
943 * meta2deps.py: convert to print function for python3 compat.
944 we also need to open files with mode 'r' rather than 'rb'
945 otherwise we get bytes instead of strings.
947 2013-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
949 * install-mk (MK_VERSION): bump version
951 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE
952 apply the same filtering (M_dep_qual_fixes) when setting _machines
954 Also fix the filtering of Makefile.depend files - for reporting
955 what we are looking for (M_dep_qual_fixes can get confused by
957 Add some more debug info.
959 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
961 * gendirdeps.mk (_objtops): fix typo also
962 while processing M2D_OBJROOTS to gather qualdir_list
963 qualify $ql with loop iterator to ensure correct results.
965 2013-08-01 Simon J. Gerraty <sjg@bad.crufty.net>
967 * install-mk (MK_VERSION): 20130801
968 * libs.mk: update to match progs.mk
970 2013-07-26 Simon J. Gerraty <sjg@bad.crufty.net>
972 * install-mk (MK_VERSION): 20130726
973 some updates from Juniper and FreeBSD
974 o meta2deps.py: indicate file and line number when we hit parse
976 also allow @file to provide huge list of .meta files.
977 * meta2deps.py: add try_parse() to cleanup the above.
979 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
981 * install-mk (MK_VERSION): 20130716
982 * own.mk: add GPROG as an option
983 * prog.mk: honor MK_GPROF==yes
985 2013-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
987 * install-mk (MK_VERSION): 20130505
988 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC
989 for when $MACHINE isn't enough for objdir distinction.
990 Bring meta2deps.sh closer to par with meta2deps.py.
992 2013-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
994 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all'
995 also if the target 'beforeinstall' exists, make it depend on
996 .dirdep (incase it uses STAGE_INSTALL).
998 2013-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
1000 * install-mk (MK_VERSION): 20130401 ;-)
1001 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as
1002 wrapper around install(1).
1003 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_
1005 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1007 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized.
1008 * install-mk (MK_VERSION): bump version
1010 2013-03-21 Simon J. Gerraty <sjg@bad.crufty.net>
1012 * install-mk (MK_VERSION): bump version
1013 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose
1014 any trailing /., rather apply :tA only when needed.
1015 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files.
1016 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance
1018 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC.
1020 2013-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
1022 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT
1023 it is simpler to just not update when say building for "host"
1024 (where we know we apply filters to DIRDEPS), and using a
1025 non-machine qualified dependfile.
1027 2013-03-16 Simon J. Gerraty <sjg@bad.crufty.net>
1029 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR
1030 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC
1031 * gendirdeps.mk: ensure _objroot has trailing / if it needs it.
1032 * meta2deps.py: if machine is "host", then also trim
1033 self.host_target from any OBJROOTS.
1036 2013-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
1038 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine
1039 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists
1040 but _DEPENDFILE does not, compare the new _DEPENDFILE against
1041 .MAKE.DEPENDFILE_DEFAULT and discard if the same.
1043 2013-03-08 Simon J. Gerraty <sjg@bad.crufty.net>
1045 * meta.stage.mk: use STAGE_TARGETS to control .ORDER
1046 and hook to all: via staging:
1048 2013-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
1050 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT):
1051 use a separate variable for the default .MAKE.DEPENDFILE value
1052 so that it can be controlled independently of
1053 .MAKE.DEPENDFILE_PREFERENCE
1055 * meta.stage.mk: throw error if cp fails etc.
1056 Stage*() return early if passed no args.
1059 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
1061 * install-mk (MK_VERSION): bump version
1062 * gendirdeps.mk: handle multiple M2D_OBJROOTS better.
1064 2013-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
1066 * install-mk (MK_VERSION): bump version to 20130210
1067 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py
1069 o dirdeps.mk now fully supports TARGET_SPEC consisting of more
1071 o no longer use DEP_MACHINE from Makefile.depend* so remove it.
1073 2013-01-23 Simon J. Gerraty <sjg@bad.crufty.net>
1075 * install-mk (MK_VERSION): bump version to 20130123
1076 * meta.stage.mk: add stage_links (hard links).
1077 if doing hard links, we add dest to link as well.
1078 Default the stage dir for [sym]links to STAGE_OBJTOP since
1079 these are typically specified as absolute paths.
1080 Add -m "mode" flag to StageFiles and StageAs.
1082 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1084 * install-mk (MK_VERSION): bump version to 20121111
1085 * autoconf.mk: avoid meta mode seeing changed commands for config.status
1086 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps
1087 in case we were found via .../mk
1088 * sys.clean-env.mk: move it from examples, we and others use it
1090 * FILES: add srctop.mk and options.mk
1091 * own.mk: convert to using options.mk
1092 which is modeled after FreeBSD's handling of MK_*
1094 This allows MK_* for boolean knobs to not be confused
1095 with MK* which can be commands.
1097 * examples/sys.clean-env.mk: add WITH[OUT]_ to
1098 MAKE_ENV_SAVE_PREFIX_LIST.
1099 Mention that HOME=/var/empty might be a good idea.
1101 2012-11-08 Simon J. Gerraty <sjg@bad.crufty.net>
1103 * sys.dependfile.mk: if not depend file exists, $MACHINE
1104 specific ones are supported but not the default,
1105 check if any exist and follow suit.
1107 2012-11-06 Simon J. Gerraty <sjg@bad.crufty.net>
1109 * install-mk (MK_VERSION): bump version to 20121106
1111 2012-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
1113 * import latest dirdeps.mk and meta2deps.py from Juniper.
1114 * progs.mk: add MAN and CXXFLAGS to PROG_VARS
1115 also add PROGS_TARGETS and pass on PROG_CXX if it seems
1118 2012-11-04 Simon J. Gerraty <sjg@bad.crufty.net>
1120 * meta.stage.mk: update CLEANFILES
1121 remove redundant cp of .dirdep from STAGE_AS_SCRIPT.
1122 * progs.mk: Add LDADD to PROG_VARS
1124 2012-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
1126 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in
1127 _STAGED_DIRS so that these can be turned into filters for
1130 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1132 * install-mk (MK_VERSION): bump version to 20121010
1133 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing
1134 target.dirdep matches .dirdep
1136 2012-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
1138 * install-mk (MK_VERSION): bump version to 20120808
1139 * import latest meta2deps.py from Juniper.
1141 2012-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
1143 * install-mk (MK_VERSION): bump version to 20120711
1144 * dep.mk: add explicit dependencies on SRCS after applying
1146 * meta.autodep.mk: add explicit dependencies on SRCS after
1147 applying SRCS_DEP_FILTER
1148 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed.
1150 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
1152 * install-mk (MK_VERSION): bump version to 20120626
1153 * meta.sys.mk: ignore PYTHON if it does not exist
1154 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable.
1155 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any
1156 entries ending in .${MACHINE} to decide if qualified _dirdep is
1158 * gendirdeps.mk: only produce unqualified deps if no
1159 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE}
1160 * meta.subdir.mk: apply SUBDIRDEPS_FILTER
1162 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1164 * install-mk (MK_VERSION): bump version to 20120420
1165 * add sys.dependfile.mk so we can experiment with
1166 .MAKE.DEPENDFILE_PREFERENCE
1167 * meta.autodep.mk: _DEPENDFILE is precious!
1169 2012-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
1171 * install-mk (MK_VERSION): bump version to 20120315
1172 * install-new.mk: avoid being interrupted
1174 2012-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
1176 * man.mk: MAN might have multiple values so be careful with exists().
1178 2012-01-19 Simon J. Gerraty <sjg@bad.crufty.net>
1180 * install-mk (MK_VERSION): bump version to 20120112
1181 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled
1182 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}'
1184 2011-12-03 Simon J. Gerraty <sjg@bad.crufty.net>
1186 * install-mk (MK_VERSION): bump version to 20111201
1187 * import dirdeps.mk from Juniper sjg@
1188 o more consistent handling of DEP_MACHINE, especially when
1189 dealing with an odd Makefile.depend, when normally using
1190 Makefile.depend.${MACHINE}
1192 2011-11-22 Simon J. Gerraty <sjg@bad.crufty.net>
1194 * install-mk (MK_VERSION): bump version to 20111122
1195 * meta.autodep.mk: add some debug output, be more crisp about
1196 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend
1198 2011-11-13 Simon J. Gerraty <sjg@bad.crufty.net>
1200 * install-mk (MK_VERSION): bump version to 20111111
1201 it's too cool to miss
1202 * import meta* updates from Juniper sjg@
1203 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are
1204 normally using Makefile.depend.${MACHINE}), handy for
1205 read-only manually maintained dependencies.
1206 o meta2deps.py add a clear 'ERROR:' token if an exception is raised.
1207 o gendirdeps.mk if ERROR: from meta2deps.py do not update
1210 2011-10-30 Simon J. Gerraty <sjg@bad.crufty.net>
1212 * install-new.mk separate the cmp and copy logic to its own function.
1214 2011-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
1216 * install-mk (MK_VERSION): bump version to 20111028
1217 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto
1218 * subdir.mk: ensure _SUBDIRUSE is provided
1219 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk
1220 * meta.subdir.mk: always allow for Makefile.depend
1222 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1224 * install-mk (MK_VERSION): bump version to 20111010
1225 o minor tweak to *dirdeps.mk from Juniper sjg@
1227 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
1229 * install-mk (MK_VERSION): bump version to 20111001
1230 o add meta2deps.py from Juniper sjg@
1231 o tweak gendirdeps.mk to work with meta2deps.py when not
1233 * autoconf.mk: add autoconf-input as a hook for regenerating
1234 AUTOCONF_INPUTS (configure).
1236 2011-08-24 Simon J. Gerraty <sjg@bad.crufty.net>
1238 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful
1239 trigger for updating Makefile.depend*
1241 2011-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
1243 * install-mk (MK_VERSION): bump version to 20110808
1244 * obj.mk: minor cleanup
1245 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too.
1247 2011-08-01 Simon J. Gerraty <sjg@bad.crufty.net>
1249 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the
1252 2011-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
1254 * meta.autodep.mk: if XMAKE_META_FILE is set
1255 the makefile uses a foreign make, and so dependencies
1256 can only be gathered from a clean tree build.
1258 2011-06-24 Simon J. Gerraty <sjg@bad.crufty.net>
1260 * install-mk (MK_VERSION): bump version to 20110622
1261 * meta.autodep.mk: improve bootstraping
1263 2011-06-10 Simon J. Gerraty <sjg@bad.crufty.net>
1265 * yacc.mk: handle the corner case of .c being removed
1268 2011-06-08 Simon J. Gerraty <sjg@bad.crufty.net>
1270 * yacc.mk: do .y.h and .y.c separately
1272 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1274 * install-mk (MK_VERSION): bump version to 20110606
1275 * don't store SRC_DIRDEPS in Makefile.depend* by default
1276 not everyone needs it.
1278 2011-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1280 * install-mk (MK_VERSION): bump version to 20110505
1281 first release including meta mode makefiles
1283 2011-05-02 Simon J. Gerraty <sjg@bad.crufty.net>
1285 * meta.stage.mk: add STAGE_AS_SETS and stage_as
1286 for things that need to be staged with different names.
1288 2011-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
1290 * meta.stage.mk: add notion of STAGE_SETS
1291 so a makefile can stage to multiple dirs
1293 2011-04-03 Simon J. Gerraty <sjg@bad.crufty.net>
1295 * rst2htm.mk: convert rst to s5 (slides) or plain html depending
1298 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1300 * install-mk (MK_VERSION): bump version to 20110330
1302 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
1304 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0
1305 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest.
1306 * sys.mk: re-define M_whence in terms of M_type.
1307 M_type is useful for checking if something is a builtin.
1309 2011-03-16 Simon J. Gerraty <sjg@bad.crufty.net>
1311 * meta.stage.mk: add stage_symlinks and leverage StageLinks for
1314 2011-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
1316 * dirdeps.mk: correct value for _depdir_files depends on
1318 Add our copyright - just to make it clear we have frobbed this
1320 DEP_MACHINE needs to be set to MACHINE each time, if using only
1321 Makefile.depend (cf. Makefile.depend.${MACHINE})
1323 * meta.stage.mk: meta mode version of staging
1325 * init.mk, final.mk: include local.*.mk to simplify customization
1327 2011-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
1329 * auto.obj.mk: just because we are doing mk destroy, we should
1330 still set .OBJDIR correctly if it exists.
1332 * install-mk (mksrc): do not exclude meta.sys.mk
1334 2011-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
1336 * host-target.mk: set/export _HOST_ARCH etc separately,
1337 catch junk resulting from uname -p, so we can find sys/Linux.mk
1340 2011-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1342 * meta.sys.mk: throw an error if /dev/filemon is missing and we
1343 expected to be updating Makefile.depend*
1345 2011-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
1347 * install-mk (MK_VERSION): bump version to 20110214
1348 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES
1350 2010-09-25 Simon J. Gerraty <sjg@bad.crufty.net>
1352 * meta.sys.mk: not valid for older bmake
1354 2010-09-24 Simon J. Gerraty <sjg@bad.crufty.net>
1356 * install-mk (MK_VERSION): bump version to 20100919
1357 include dirdeps.mk et al from Juniper Networks,
1358 for meta mode - requires filemon(9).
1359 * sys.mk, subdir.mk: Add hooks for meta mode.
1360 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk
1361 to make turning it on/off simple.
1363 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
1365 * install-mk (MK_VERSION): bump version to 20100616
1366 * fix typo in sys.mk
1368 2010-06-12 Simon J. Gerraty <sjg@bad.crufty.net>
1370 * install-mk (MK_VERSION): bump version to 20100612
1371 * lib.mk: remove duplicate addition to SOBJS
1373 2010-06-10 Simon J. Gerraty <sjg@bad.crufty.net>
1375 * sys.mk: Add a means of selectively turning on debug flags.
1376 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg"
1377 will act as if we did make -dv if .CURDIR ends in lib/sjg
1378 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at
1379 the start of sys.mk rather than the end.
1380 This only makes sense for leaf dirs, so we check that
1383 2010-06-09 Simon J. Gerraty <sjg@bad.crufty.net>
1385 * install-mk (MK_VERSION): bump version to 20100608
1386 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al.
1387 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606
1388 also make it easier for folk to tweak
1390 2010-06-08 Simon J. Gerraty <sjg@bad.crufty.net>
1392 * install-mk (MK_VERSION): bump version to 20100606
1393 do not install examples/*
1394 * FILES: add examples/sys.clean-env.mk
1395 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR
1396 this requires bmake-20100606 or later to work.
1398 2010-05-13 Simon J. Gerraty <sjg@bad.crufty.net>
1400 * sys.mk (M_tA): better simulate the result of :tA if not available.
1402 2010-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1404 * sys.mk: canonicalize MAKE_VERSION
1405 old versions reported bmake-<src-date> build-<build-date>
1406 whereas we only care about <src-date>
1408 2010-04-25 Simon J. Gerraty <sjg@bad.crufty.net>
1410 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored
1411 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION
1414 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
1416 * dpadd.mk: use LDADD_* if defined.
1418 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
1420 * install-mk (MK_VERSION): bump version to 20100420
1421 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy
1422 * autoconf.mk allow AUTO_AUTOCONF
1424 2010-04-19 Simon J. Gerraty <sjg@bad.crufty.net>
1426 * obj.mk: add objwarn to keep freebsd makefiles happy
1427 * auto.obj.mk: ensure Mkdirs is available.
1428 * FILES: add auto.dep.mk - a simpler version of autodep.mk
1429 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if
1431 fix/simplify the tests for when to run mkdep.
1432 * auto.dep.mk: add some explanation of how/what we do.
1433 * autodep.mk: skip the .OPTIONAL frobbing of .depend
1434 bmake's FROM_DEPEND flag makes it redundant.
1436 2010-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
1438 * install-mk (MK_VERSION): bump version to 20100404
1439 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE.
1440 * obj.mk: protect from multiple inclusion even as bsd.obj.mk
1441 Also create a target _SUBDIRUSE so that we can be used without
1444 2010-04-12 Simon J. Gerraty <sjg@bad.crufty.net>
1446 * dep.mk: use <> when .including so can override.
1448 2010-01-11 Simon J. Gerraty <sjg@bad.crufty.net>
1450 * lib.mk (SHLIB_LINKS): ensure a string comparison.
1452 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
1454 * install-mk (MK_VERSION): bump version to 20100102
1455 * own.mk: ensure PRINTOBJDIR works
1456 * autoconf.mk: pass on CONFIGURE_ARGS
1457 * init.mk: handle COPTS.${.IMPSRC:T} etc.
1458 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION
1459 fix handling of symlinks for darwin
1460 * libnames.mk: add DSHLIBEXT for libs which only exist as shared.
1461 * man.mk: suppress chown when not root.
1462 * rst2htm.mk: allow srcs from multiple locations.
1463 * sys.mk: M_whence, stop after 1st line of output.
1464 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT
1465 * sys/SunOS.mk: we need to export PATH
1467 2009-12-23 Simon J. Gerraty <sjg@void.crufty.net>
1469 * install-mk (MK_VERSION): bump version
1472 2009-12-17 Simon J. Gerraty <sjg@void.crufty.net>
1474 * sys.mk,libnames.mk add .-include <local.*>
1475 this allows local customization without the need to edit the
1478 2009-12-14 Simon J. Gerraty <sjg@void.crufty.net>
1480 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up
1481 older versions already installed.
1483 2009-12-13 Simon J. Gerraty <sjg@void.crufty.net>
1485 * stage.mk (.stage-install): generalize lib.mk's .libinstall
1486 * rules.mk rules for generic Makefile.
1487 * inc.mk install for includes.
1489 2009-12-11 Simon J. Gerraty <sjg@void.crufty.net>
1491 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check
1492 this, so provide it if using native make.
1494 2009-12-10 Simon J. Gerraty <sjg@void.crufty.net>
1496 * FILES: move all the platform *.sys.mk files to sys/*.mk
1497 * Rename Generic.sys.mk to sys.mk - we always want it.
1499 2009-11-17 Simon J. Gerraty <sjg@void.crufty.net>
1501 * install-mk (MK_VERSION): bump version
1502 * host-target.mk: only export the expensive stuff
1503 * Generic.sys.mk (sys_mk): for SunOS we need to look for
1504 ${HOST_OS}.${HOST_OSMAJOR} too!
1506 2009-11-07 Simon J. Gerraty <sjg@void.crufty.net>
1508 * install-mk (MK_VERSION): bump version
1509 * lib.mk: if sys.mk doesn't give us an lorder, don't use it.
1510 based on patch from Greg Olszewski.
1511 * Generic.sys.mk: if we have nothing to work with
1512 set LORDER etc only if we can find it.
1514 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
1516 * install-mk (MK_VERSION): bump version
1517 * man.mk: cleanman: remove CLEANMAN if defined.
1519 2009-09-04 Simon J. Gerraty <sjg@void.crufty.net>
1521 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk
1523 2009-07-17 Simon J. Gerraty <sjg@void.crufty.net>
1525 * install-mk (MK_VERSION): bump version
1529 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
1531 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail.
1533 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
1535 * install-mk (MK_VERSION): bump version
1536 man.mk: ensure we generate *.cat1 etc in .
1538 2008-07-16 Simon J. Gerraty <sjg@void.crufty.net>
1540 * install-mk (MK_VERSION): bump version
1543 2007-11-25 Simon J. Gerraty <sjg@void.crufty.net>
1545 * Generic.sys.mk: Allow os specific sys.mk to be in a
1546 subdir of ${.PARSEDIR}
1548 2007-11-22 Simon J. Gerraty <sjg@void.crufty.net>
1550 * install-mk (MK_VERSION): bump version
1552 * dpadd.mk introduce DPMAGIC_LIBS_*
1554 2007-04-30 Simon J. Gerraty <sjg@void.crufty.net>
1556 * install-mk (MK_VERSION): bump version
1558 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog
1559 depend files and ensure clean is called for each lib/prog.
1561 2007-03-27 Simon J. Gerraty <sjg@void.crufty.net>
1563 * autodep.mk (.depend): delete lines that do not start with
1564 space and do not contain ':'
1566 2007-02-16 Simon J. Gerraty <sjg@void.crufty.net>
1568 * autodep.mk (.depend): gcc may wrap lines if pathnames are long
1569 so make sure the transform for .OPTIONAL copes.
1571 2007-02-03 Simon J. Gerraty <sjg@void.crufty.net>
1573 * install-mk (MK_VERSION): bump version
1575 * own.mk: make sure RM and LN are defined.
1577 * obj.mk: fix a typo, and objlink target.
1579 2006-12-30 Simon J. Gerraty <sjg@void.crufty.net>
1581 * install-mk (MK_VERSION): bump version
1582 * added libs.mk - analogous to progs.mk
1583 make both of them always inlcude {lib,prog}.mk
1585 2006-12-28 Simon J. Gerraty <sjg@void.crufty.net>
1587 * progs.mk: add a means of building multiple apps in one dir.
1589 2006-11-26 Simon J. Gerraty <sjg@void.crufty.net>
1591 * install-mk (MK_VERSION): bump version to 20061126
1593 * warnings.mk: detect invalid WARNINGS_SET
1595 * warnings.mk: use ${.TARGET:T:R}.o when looking for target
1598 * For .cc sources, turn off warnings that g++ vomits on.
1600 2006-11-08 Simon J. Gerraty <sjg@void.crufty.net>
1602 * own.mk: if __initialized__ target doesn't exist and we are
1603 FreeBSD we got here directly from sys.mk
1605 2006-11-06 Simon J. Gerraty <sjg@void.crufty.net>
1607 * install-mk (MK_VERSION): bump version to 20061106
1610 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
1612 * install-mk (MK_VERSION): bump version to 20060318
1614 * autodep.mk: avoid := when modifying OBJS into __dependsrcs
1616 2006-03-02 Simon J. Gerraty <sjg@void.crufty.net>
1618 * install-mk (MK_VERSION): bump version to 20060302
1619 * autodep.mk: use -MF et al to help gcc+ccache DTRT.
1621 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
1623 * install-mk (MK_VERSION): bump version to 20060301
1624 * autodep.mk (.depend):
1625 if MAKE_VERSION is newer than 20050530 we can make .END depend on
1626 .depend and make .depend depend on __depsrcs that exist.
1627 * dpadd.mk: add SRC_PATHADD
1629 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
1631 * install-mk (MK_VERSION): bump version to 20051104
1632 * prog.mk: remove all the LIBC?= junk, use
1633 .-include libnames.mk instead (none by default).
1634 also if USE_DPADD_MK is set, include that.
1636 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
1638 * install-mk (MK_VERSION): bump version to 20051001
1639 Add UnixWare.sys.mk from Klaus Heinz.
1641 2005-04-05 Simon J. Gerraty <sjg@void.crufty.net>
1643 * install-mk: always install *.sys.mk and if need be symlink one
1646 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
1648 * subdir.mk, own.mk: use .MAKE rather than MAKE
1650 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
1652 * own.mk: don't use NetBSD's _SRC_TOP_ it can
1653 cause confusion. Also don't take just 'mk' as a
1656 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
1658 * warnings.mk: overhauled, now very powerful.
1660 2004-02-03 Simon J. Gerraty <sjg@void.crufty.net>
1662 * Generic.sys.mk: need to use ${.PARSEDIR} with exists().
1664 2004-02-01 Simon J. Gerraty <sjg@void.crufty.net>
1666 * install-mk (MK_VERSION): bump version to 20040201
1667 * extract HOST_TARGET stuff to host-target.mk so own.mk and
1668 Generic.sys.mk can share.
1669 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR.
1671 2003-09-30 Simon J. Gerraty <sjg@void.crufty.net>
1673 * install-mk (MK_VERSION): 20030930
1674 * rename generic.sys.mk to Generic.sys.mk
1675 so that it does not get installed (unless being used as sys.mk)
1676 * set OS and ROOT_GROUP for those that we know the value.
1677 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so
1678 we don't do it again for each sub-make.
1680 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
1682 * install-mk (MK_VERSION): 20030928
1683 Add some extra *.sys.mk from bootstrap-pkgsrc
1684 some of these likely still need work.
1685 Make everything default to root:wheel ownership,
1686 sys.mk can set ROOT_GROUP accordingly.
1688 2003-08-07 Simon J. Gerraty <sjg@void.crufty.net>
1690 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR
1691 not the portable ones.
1693 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
1695 * install-mk: add ability to use cp -f when updating
1696 destination .mk files. Also now possible to play games with
1697 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk
1698 into dest - not recommended unless you seriously want to.
1700 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
1702 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc
1703 for semi-compatability with NetBSD.
1705 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
1707 * install-mk: add a version indicator
1709 2003-07-22 Simon J. Gerraty <sjg@void.crufty.net>
1711 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null
1713 * install-mk: Allow FORCE_SYS_MK to come from env