1 2020-08-26 Simon J Gerraty <sjg@beast.crufty.net>
3 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic
4 (even more rare that use of static cache is playing clever tricks
7 2020-08-16 Simon J Gerraty <sjg@beast.crufty.net>
9 * dirdeps-cache-update.mk: allow
10 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we
11 actually update STATIC_DIRDEPS_CACHE.
13 * stage-install.sh: create dest directory if needed
14 before running install(1)
16 2020-08-10 Simon J Gerraty <sjg@beast.crufty.net>
18 * dirdeps-targets.mk: include Makefile.dirdeps.options
20 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE
22 2020-08-09 Simon J Gerraty <sjg@beast.crufty.net>
24 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty
26 * dirdeps-cache-update.mk: building parallel cache update
27 under the context of dirdeps-cached would be ideal, but
28 is problematic, so it runs as a sibling.
29 Use cache-built target to ensure we wait for it to complete if
32 2020-08-06 Simon J Gerraty <sjg@beast.crufty.net>
34 * install-mk (MK_VERSION): 20200806
36 * dirdeps-options: allow TARGET_SPEC to affect option values.
37 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_*
39 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined
40 before looking for STATIC_DIRDEPS_CACHE
42 2020-08-05 Simon J Gerraty <sjg@beast.crufty.net>
44 * host-target.mk: Darwin use MACHINE for HOST_ARCH too
46 * dirdeps-options.mk: improve debug output
48 2020-07-22 Simon J Gerraty <sjg@beast.crufty.net>
50 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE
51 for use by dirdeps-cache-update.mk
53 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE
54 for use by dirdeps-cache-update.mk even if we don't use it.
56 * dirdeps-cache-update.mk: we only need worry about the background
57 update case, with the above, the update from DIRDEPS_CACHE is
60 * meta2deps.py: R 1234 . is not interesting
62 2020-07-20 Simon J Gerraty <sjg@beast.crufty.net>
64 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE
66 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS
67 allows use of lower case for pseudo options.
69 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE
71 2020-07-18 Simon J Gerraty <sjg@beast.crufty.net>
73 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache
74 which allows us to have a static cache for expensive targets.
75 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE
76 to regenerate the dirdeps.cache it is a copy of.
78 2020-07-17 Simon J Gerraty <sjg@beast.crufty.net>
80 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense.
82 2020-07-16 Simon J Gerraty <sjg@beast.crufty.net>
84 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record
85 load averages at intervals during build.
87 2020-07-15 Simon J Gerraty <sjg@beast.crufty.net>
89 * install-mk (MK_VERSION): 20200715
91 * dirdeps.mk: tweak Checking line to make matching Finished
92 lines for post-build analysis easier.
94 * meta.autodep.mk: use !defined(WITHOUT_META_STATS)
96 * progs.mk: avoid prog.mk outputting multiple Finished lines
98 2020-07-11 Simon J Gerraty <sjg@beast.crufty.net>
100 * dirdeps.mk: further optimize dirdeps.cache
101 generate a DIRDEPS.${.TARGET} list for other purposes
102 and improve the layout.
104 2020-07-10 Simon J Gerraty <sjg@beast.crufty.net>
106 * dirdeps.mk: optimize content of dirdeps.cache
108 2020-06-28 Simon J Gerraty <sjg@beast.crufty.net>
110 * sys/*.mk: make it easier for local*sys.mk to customize by
113 2020-06-22 Simon J Gerraty <sjg@beast.crufty.net>
115 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0
116 it is much safer to guard local depends with a simple check for
119 2020-06-10 Simon J Gerraty <sjg@beast.crufty.net>
121 * install-mk (MK_VERSION): 20200610
123 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok
125 2020-06-06 Simon J Gerraty <sjg@beast.crufty.net>
127 * install-mk (MK_VERSION): 20200606
129 * dirdeps-targets.mk: allow for filtering of .TARGETS
131 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove
132 entries - and we don't care about 'W'rite entries.
133 Also ignore absolute paths that do not exist.
135 2020-05-25 Simon J Gerraty <sjg@beast.crufty.net>
137 * install-mk (MK_VERSION): 20200525
139 * init.mk: expand and simplify handling of qualified vars
140 like CPPFLAGS.${.TARGET:T}
142 2020-05-15 Simon J Gerraty <sjg@beast.crufty.net>
144 * install-mk (MK_VERSION): 20200515
146 * dirdeps.mk: set _debug_* earlier and allow passing -d*
147 flags to submake when building DIRDEPS_CACHE
149 2020-05-09 Simon J Gerraty <sjg@beast.crufty.net>
151 * whats.mk: more easily extensible
153 2020-05-02 Simon J Gerraty <sjg@beast.crufty.net>
155 * whats.mk: greatly simplify by adding what.c to SRCS
157 2020-05-01 Simon J Gerraty <sjg@beast.crufty.net>
159 * whats.mk: for libs take care how we add to *OBJS
161 * lib.mk: : works better with whats.mk
163 2020-04-25 Simon J Gerraty <sjg@beast.crufty.net>
165 * install-mk (MK_VERSION): 20200420
167 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep
168 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC}
170 2020-04-16 Simon J Gerraty <sjg@beast.crufty.net>
172 * install-mk (MK_VERSION): 20200416
174 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to
175 interfere with user env.
177 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL
179 * autodep.mk: use MAKE_SHELL.
181 2019-11-21 Simon J Gerraty <sjg@beast.crufty.net>
183 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of
184 wasted effort, and unexport _meta_files when no longer needed as
185 it consumes space we need for command line.
187 2019-11-11 Simon J Gerraty <sjg@beast.crufty.net>
189 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add
190 DIRDEP_USE_PRELUDE at start - facilitates job distribution
192 2019-10-04 Simon J Gerraty <sjg@beast.crufty.net>
194 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST
195 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid
196 TARGET_SPEC qualified depend files.
198 2019-10-02 Simon J Gerraty <sjg@beast.crufty.net>
200 * dirdeps-targets.mk: encapsulate logic for finding top-level
201 targets to set initial DIRDEPS for DIRDEPS_BUILD
203 2019-09-27 Simon J Gerraty <sjg@beast.crufty.net>
205 * install-mk (MK_VERSION): 20190911
207 * compiler.mk: set COMPILER_TYPE
209 2019-07-17 Simon J Gerraty <sjg@beast.crufty.net>
211 * install-mk (MK_VERSION): 20190704
213 * sys/Darwin.mk: support for Objective-C and clang
215 2019-05-30 Simon J Gerraty <sjg@beast.crufty.net>
217 * dirdeps.mk: avoid insanely long command line when generating cache
219 2019-05-23 Simon J Gerraty <sjg@beast.crufty.net>
221 * install-mk (MK_VERSION): 20190505
223 * whats.mk: handle corner case SHLIB defined but not LIB
225 2018-09-19 Simon J Gerraty <sjg@beast.crufty.net>
227 * install-mk (MK_VERSION): 20180919
229 * dirdeps-options.mk: .undef cannot handle var that expands to
232 2018-07-08 Simon J Gerraty <sjg@beast.crufty.net>
234 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc.
236 2018-06-01 Simon J Gerraty <sjg@beast.crufty.net>
238 * meta.autodep.mk: export META_FILES to avoid command line limit
239 * gendirdeps.mk: if we have lots of .meta files put them in
242 2018-05-28 Simon J Gerraty <sjg@beast.crufty.net>
244 * dirdeps-options.mk: use local.dirdeps-options.mk
245 not local.dirdeps-option.mk
247 2018-04-20 Simon J Gerraty <sjg@beast.crufty.net>
249 * install-mk (MK_VERSION): 20180420
250 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0
251 ie. we are building something.
253 2018-04-14 Simon J Gerraty <sjg@beast.crufty.net>
255 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS.
257 2018-04-05 Simon J Gerraty <sjg@beast.crufty.net>
259 * install-mk (MK_VERSION): 20180405
261 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER
264 2018-01-18 Simon J Gerraty <sjg@beast.crufty.net>
266 * install-mk (MK_VERSION): 20180118
268 * ldorder.mk: let make compute correct link order
270 2017-12-12 Simon J Gerraty <sjg@beast.crufty.net>
272 * install-mk (MK_VERSION): 20171212
274 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER
276 2017-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
278 * install-mk (MK_VERSION): 20171111
280 * lib.mk: ensure META_NOECHO is set
282 2017-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
284 * Allow for host32 on rare occasions.
286 2017-10-18 Simon J. Gerraty <sjg@bad.crufty.net>
288 * install-mk (MK_VERSION): 20171018
290 * whats.mk: include what_thing in what_uuid to avoid problem
291 when building multiple apps in the same directory.
293 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
295 * install-mk (MK_VERSION): 20170812
297 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can
298 add dependencies for config.recheck and config.gen
300 2017-06-30 Simon J. Gerraty <sjg@bad.crufty.net>
302 * install-mk (MK_VERSION): 20170630
304 * meta.stage.mk: avoid triggering stage_* targets with nothing to do.
306 2017-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
308 * meta2deps.py: take special care of '..'
310 2017-05-15 Simon J. Gerraty <sjg@bad.crufty.net>
312 * install-mk (MK_VERSION): 20170515
314 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is
315 useful/necessary for a Makefile.depend file to export some knobs.
316 This is complicated when we are doing DIRDEPS_CACHE, so we will
317 handle export of any variables listed in DEP_EXPORT_VARS.
319 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
321 * install-mk (MK_VERSION): 20170505
323 * meta2deps.py: fix botched indenation.
325 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
327 * sys/*.mk: Remove setting of MAKE it is unnecessary and
328 in many cases wrong (basname rather than full path)
330 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk
332 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc
334 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
336 * install-mk (MK_VERSION): 20170501
338 * doc.mk: fix typo in DOC_INSTALL_OWN
340 * inc.mk: handle INCGROUPS similar to freebsd
342 * files.mk: add something for files too
344 * add staging logic to lib.mk prog.mk etc.
346 2017-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
348 * install-mk (MK_VERSION): 20170424
350 * dirdeps.mk: set NO_DIRDEPS when bootstrapping.
351 also target of bootstrap-this when sed is needed should be ${_want:T}
353 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
355 * install-mk (MK_VERSION): 20170418
357 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a
358 prefix match for .CURDIR - in which case .CURDIR *is* __objdir.
360 2017-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
362 * install-mk (MK_VERSION): 20170401
364 * meta2deps.py: add is_src so we can check if obj dependency
365 is also a src dependency.
367 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
369 * install-mk (MK_VERSION): 20170326
371 * meta.stage.mk: do nothing if NO_STAGING is defined.
373 2017-03-24 Simon J. Gerraty <sjg@bad.crufty.net>
375 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc.
377 2017-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
379 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_*
381 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
383 * install-mk (MK_VERSION): 20170301
385 * dirdeps.mk (_build_all_dirs): update this outside test for empty
388 * meta.stage.mk: allow multiple inclusion to the extent it makes
391 2017-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
393 * prog.mk (install_links): depends on realinstall
395 2017-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
397 * install-mk (MK_VERSION): 20170212
399 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries
401 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
403 * install-mk (MK_VERSION): 20170130
405 * dirdeps.mk: use :range if we can.
407 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130
409 * meta2deps.py: clean paths without using realpath() where possible.
412 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
414 * install-mk (MK_VERSION): 20161212
416 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir,
417 rather than when we detect pid change.
419 2016-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
421 * install-mk (MK_VERSION): 20161207
423 * meta.stage.mk: add stage_as_and_symlink for staging packages.
424 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able
425 to use foo.tgz to reference the latest staged version - so we
426 make foo.tgz a symlink to it.
427 Using a target to do both operations ensures we stay in sync.
429 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
431 * install-mk (MK_VERSION): 20161126
433 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk
434 so it can add dependencies.
436 2016-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
438 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE
439 do that they can influence the result correctly.
441 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC
443 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST
444 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST
446 2016-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
448 * dirdeps.mk: remove dependence on jot (normal situations anyway).
449 Before we read another Makefile.depend* set DEP_* vars from
450 _DEP_TARGET_SPEC in case it uses any of them with :=
451 When bootstrapping, trim any ,* from extention of chosen _src
452 Makefile.depend* to get the machine value we subst for.
454 2016-09-30 Simon J. Gerraty <sjg@bad.crufty.net>
456 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to
457 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER
459 * sys.mk: extract some bits to sys.{debug,vars}.mk
460 for easier re-use by others.
462 2016-09-23 Simon Gerraty <sjg@sjg-mba13>
464 * lib.mk: Use ${PICO} for extension for PIC objects.
465 default to .pico (like NetBSD) safe on case insensitive filesystem.
467 2016-08-19 Simon J. Gerraty <sjg@bad.crufty.net>
469 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default
471 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
473 * install-mk (MK_VERSION): 20160815
475 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only
476 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date.
478 2016-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
480 * meta.sys.mk (.MAKE.META.IGNORE_PATHS):
481 in meta mode we can ignore the mtime of makefiles
483 2016-08-02 Simon J. Gerraty <sjg@bad.crufty.net>
485 * install-mk (MK_VERSION): 20160802
487 * lib.mk (libinstall): depends on beforinstall
489 * prog.mk (proginstall): depends on beforinstall
490 patch from Lauri Tirkkonen
492 * dirdeps.mk (bootstrap): When bootstrapping; creat
493 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via
494 .MAKE.DEPENDFILE_BOOTSTRAP_SED
496 * dirdeps.mk: move some comments to where they make sense.
498 2016-07-27 Simon J. Gerraty <sjg@bad.crufty.net>
500 * dirdeps.mk (DIRDEPS_CACHE): no dirname.
502 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
504 * install-mk (MK_VERSION): 20160602
505 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk
506 do not apply :T to META_XTRAS
507 patch from Bryan Drewery at FreeBSD.org.
509 2016-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
511 * install-mk (MK_VERSION): 20160530
512 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH
515 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
517 * install-mk (MK_VERSION): 20160512
519 * dpadd.mk: always include local.dpadd.mk if it exists
520 remove some things that better belong in local.dpadd.mk
521 skip INCLUDES_* for staged libs unless SRC_* defined.
523 * own.mk: add INCLUDEDIR
525 2016-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
527 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no
528 TARGET_MACHINE - :E will be empty or match part of path, use
531 2016-04-07 Simon J. Gerraty <sjg@bad.crufty.net>
533 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to
536 * dirdeps.mk: move the logic that allows for
537 make -f dirdeps.mk some/dir.${TARGET_SPEC}
538 inside the check for !target(_DIRDEP_USE)
540 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
542 * Use <> when including local*.mk and others which may exist
543 elsewhere so that user can better control what they get.
545 * meta.autodep.mk (NO_FILEMON_COOKIE):
546 create a cookie if we ever build dir with nofilemon
547 so that UPDATE_DEPENDFILE will be forced to NO until cleaned.
549 2016-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
551 * install-mk (MK_VERSION): 20160401
553 * meta2deps.py: fix old print statement when debugging.
555 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X
556 patch from Bryan Drewery
558 2016-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
560 * install-mk (MK_VERSION): 20160317 (St. Pats)
562 * warnings.mk: g++ does not like -Wimplicit
564 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the
565 pelthora of common suffixes for C++
567 * lib.mk: use .So for shared objects
569 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
571 * install-mk (MK_VERSION): 20160315
573 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1)
574 normally only applies to scripts.
576 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as
579 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
581 * install-mk (MK_VERSION): 20160310
583 * dirdeps.mk: use targets rather than a list to track DIRDEPS that
584 we have processed; the list gets very inefficient as number of
587 * sys.dependfile.mk: fix comment wrt MACHINE
589 * meta.autodep.mk: ignore staged DPADDs when bootstrapping.
590 patch from Bryan Drewery
592 2016-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
594 * meta2deps.sh: don't ignore subdirs.
595 patch from Bryan Drewery
597 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
599 * install-mk (MK_VERSION): 20160226
601 * gendirdeps.mk: mark _DEPENDFILE .NOMETA
603 2016-02-20 Simon J. Gerraty <sjg@bad.crufty.net>
605 * dirdeps.mk: we shouldn't normally include .depend but if we do
606 use .dinclude if we can.
608 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
610 * install-mk (MK_VERSION): 20160218
611 * sys.clean-env.mk: with recent change to Var_Subst()
612 we cannot use the '$$' trick, but .export-literal does the job
614 * auto.dep.mk: make use .dinclude if we can.
617 2016-02-05 Simon J. Gerraty <sjg@bad.crufty.net>
620 Add _build_all_dirs such that local.dirdeps.mk can
621 add fully qualified dirs to it.
622 These will be built normally but the current
623 DEP_RELDIR will not depend on then (to avoid cycles).
624 This makes it easy to hook things like unit-tests into build.
627 2016-01-21 Simon J. Gerraty <sjg@bad.crufty.net>
629 * dirdeps.mk: add bootstrap-empty
631 2015-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
633 * install-mk (MK_VERSION): 20151212
634 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist.
635 only apply :tA to __objdir when comparing to .OBJDIR
637 2015-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
639 * install-mk (MK_VERSION): 20151111
641 * meta.sys.mk: include sys.dependfile.mk
643 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk
644 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD
645 include local.sys.env.mk early
646 include local.sys.mk later
648 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk
650 2015-11-13 Simon J. Gerraty <sjg@bad.crufty.net>
652 * meta.sys.mk (META_COOKIE_TOUCH):
653 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie
655 * meta.stage.mk: stage_libs should ignore SYMLINKS.
657 2015-10-23 Simon J. Gerraty <sjg@bad.crufty.net>
659 * install-mk (MK_VERSION): 20151022
661 * sys.mk: BSD/OS does not have 'type' as a shell builtin.
663 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
665 * install-mk (MK_VERSION): 20151020
667 * dirdeps.mk: Add logic for
668 make -f dirdeps.mk some/dir.${TARGET_SPEC}
670 2015-10-14 Simon J. Gerraty <sjg@bad.crufty.net>
672 * install-mk (MK_VERSION): 20151010
674 2015-10-02 Simon J. Gerraty <sjg@bad.crufty.net>
676 * meta.stage.mk: use staging: ${STAGE_TARGETS:...
677 to have stage_lins run last in non-jobs mode.
678 Use .ORDER only for jobs mode.
680 2015-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
682 * rst2htm.mk: allow for per target flags etc.
684 2015-09-01 Simon J. Gerraty <sjg@bad.crufty.net>
686 * install-mk (MK_VERSION): 20150901
688 * doc.mk: create dir if needed use DOC_INSTALL_OWN
690 2015-06-15 Simon J. Gerraty <sjg@bad.crufty.net>
692 * install-mk (MK_VERSION): 20150615
694 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too.
695 Follow make's normal precedence rules.
697 * gendirdeps.mk: allow customization of the header.
699 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}';
701 * meta.autodep.mk: ignore dirdeps.cache*
703 * meta.stage.mk: when bootstrapping options it can be handy to
704 throw warnings rather than errors for staging conflicts.
706 * meta.sys.mk: include local.meta.sys.mk for customization
708 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
710 * install-mk (MK_VERSION): 20150606
712 * dirdeps.mk: don't rely on manually maintained Makefile.depend
713 to set DEP_RELDIR and reset DIRDEPS.
714 By setting DEP_RELDIR ourselves we can skip :tA
716 * gendirdeps.mk: skip setting DEP_RELDIR.
718 2015-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
720 * dirdeps.mk: avoid wildcards like make(bootstrap*)
722 2015-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
724 * install-mk (MK_VERSION): 20150520
726 * dirdeps.mk: when we are building dirdeps cache file we *want*
727 meta_oodate to look at all the Makefile.depend files, so
728 set .MAKE.DEPENDFILE to something that won't match.
730 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique
731 so first use absolute path as key.
732 Also skip staging at level 0.
734 2015-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
736 * install-mk (MK_VERSION): 20150430
738 * dirdeps.mk: fix _count_dirdeps for non-cache case.
740 2015-04-16 Simon J. Gerraty <sjg@bad.crufty.net>
742 * install-mk (MK_VERSION): 20150411
745 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES.
746 it is here mainly for documentation purposes, since
747 if using auto.obj.mk it is better done via sys.mk
749 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
751 * install-mk (MK_VERSION): 20150401
753 * meta2deps.sh: support @list
755 * meta2deps.py: updates from Juniper
757 o skip bogus input files.
758 o treat 'M' and 'L' as both an 'R' and a 'W'
760 2015-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
762 * install-mk (MK_VERSION): 20150303
764 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache
765 which is built via sub-make so we have a .meta file to tell if
767 The dirdeps-cache contains the same dependency rules that we
768 normaly construct on the fly.
769 This adds a few seconds overhead when the cache is out of date,
770 but for a large target, the savings can be significant (10-20min).
772 2014-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
774 * install-mk (MK_VERSION): 20141118
776 * meta.stage.mk: add stale_staged
778 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked
779 only useful under very rare conditions such as
780 FreeBSD's make universe.
782 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto
784 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
786 * install-mk (MK_VERSION): 20141111
788 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts
790 2014-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
792 * FILES: include mkopt.sh which allows handling options in shell
793 scripts in a manner compatible with options.mk
795 2014-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
797 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used
798 for GENDIRDEPS_FILTER to avoid surprises.
800 2014-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
802 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by
803 the time it is applied to __depdirs they have.
805 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes
806 expects patterns like *.${MACHINE}
808 * cython.mk (pyprefix?): use pyprefix to find python bits
809 since prefix might be something else (where we install our
812 2014-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
814 * install-mk (MK_VERSION): 20140911
816 * dirdeps.mk: add bootstrap target to simplify adding support for
819 2014-09-01 Simon J. Gerraty <sjg@bad.crufty.net>
821 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and
822 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable
823 Makefile.depend files.
825 2014-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
827 * install-mk (MK_VERSION): 20140828
829 * cython.mk: capture logic for building python extension modules
832 2014-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
834 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant
836 2014-08-02 Simon J. Gerraty <sjg@bad.crufty.net>
838 * install-mk (MK_VERSION): 20140801
840 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to
841 identify the autodep.mk variant.
843 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its
844 initial value does not match .MAKE.DEPENDFILE_PREFIX
846 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS
848 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
850 * install-mk (MK_VERSION): 20140522
852 * lib.mk: use CC to link shlib for linux too
853 patch from Brendan MacDonell
855 2014-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
857 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats
858 if WITH_META_STATS is defined.
860 2014-05-02 Simon J. Gerraty <sjg@bad.crufty.net>
862 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS)
863 to supress dirdeps outside of .CURDIR.
865 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
867 * Fix spelling errors - patch from Pedro Giffuni
869 2014-03-14 Simon J. Gerraty <sjg@bad.crufty.net>
871 * install-mk (MK_VERSION): 20140314
873 * dirdeps.mk (beforedirdeps): a handy hook
875 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run
876 to visit leaf dirs to be intercepted (eg. for distributed
879 * dirdeps.mk (__depdirs): ensure // don't sneak in
881 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in
884 2014-02-21 Simon J. Gerraty <sjg@bad.crufty.net>
886 * rst2htm.mk (RST2PDF): add support for rst2pdf
888 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
890 * install-mk (MK_VERSION): bump version
891 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if
894 2014-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
896 * options.mk: avoid :U so this isn't bmake dependent
898 2014-02-09 Simon J. Gerraty <sjg@bad.crufty.net>
900 * options.mk: cleanup and simplify semanitcs
901 NO_* dominates all, if both WITH_* and WITHOUT_*
902 are defined then result is DOMINATE_* which defaults to "no".
903 Ie. WITHOUT_ normally wins.
905 2013-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
907 * install-mk (MK_VERSION): bump version
908 * meta2deps.py: convert to print function for python3 compat.
909 we also need to open files with mode 'r' rather than 'rb'
910 otherwise we get bytes instead of strings.
912 2013-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
914 * install-mk (MK_VERSION): bump version
916 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE
917 apply the same filtering (M_dep_qual_fixes) when setting _machines
919 Also fix the filtering of Makefile.depend files - for reporting
920 what we are looking for (M_dep_qual_fixes can get confused by
922 Add some more debug info.
924 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
926 * gendirdeps.mk (_objtops): fix typo also
927 while processing M2D_OBJROOTS to gather qualdir_list
928 qualify $ql with loop iterator to ensure correct results.
930 2013-08-01 Simon J. Gerraty <sjg@bad.crufty.net>
932 * install-mk (MK_VERSION): 20130801
933 * libs.mk: update to match progs.mk
935 2013-07-26 Simon J. Gerraty <sjg@bad.crufty.net>
937 * install-mk (MK_VERSION): 20130726
938 some updates from Juniper and FreeBSD
939 o meta2deps.py: indicate file and line number when we hit parse
941 also allow @file to provide huge list of .meta files.
942 * meta2deps.py: add try_parse() to cleanup the above.
944 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
946 * install-mk (MK_VERSION): 20130716
947 * own.mk: add GPROG as an option
948 * prog.mk: honor MK_GPROF==yes
950 2013-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
952 * install-mk (MK_VERSION): 20130505
953 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC
954 for when $MACHINE isn't enough for objdir distinction.
955 Bring meta2deps.sh closer to par with meta2deps.py.
957 2013-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
959 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all'
960 also if the target 'beforeinstall' exists, make it depend on
961 .dirdep (incase it uses STAGE_INSTALL).
963 2013-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
965 * install-mk (MK_VERSION): 20130401 ;-)
966 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as
967 wrapper around install(1).
968 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_
970 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
972 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized.
973 * install-mk (MK_VERSION): bump version
975 2013-03-21 Simon J. Gerraty <sjg@bad.crufty.net>
977 * install-mk (MK_VERSION): bump version
978 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose
979 any trailing /., rather apply :tA only when needed.
980 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files.
981 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance
983 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC.
985 2013-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
987 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT
988 it is simpler to just not update when say building for "host"
989 (where we know we apply filters to DIRDEPS), and using a
990 non-machine qualified dependfile.
992 2013-03-16 Simon J. Gerraty <sjg@bad.crufty.net>
994 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR
995 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC
996 * gendirdeps.mk: ensure _objroot has trailing / if it needs it.
997 * meta2deps.py: if machine is "host", then also trim
998 self.host_target from any OBJROOTS.
1001 2013-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
1003 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine
1004 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists
1005 but _DEPENDFILE does not, compare the new _DEPENDFILE against
1006 .MAKE.DEPENDFILE_DEFAULT and discard if the same.
1008 2013-03-08 Simon J. Gerraty <sjg@bad.crufty.net>
1010 * meta.stage.mk: use STAGE_TARGETS to control .ORDER
1011 and hook to all: via staging:
1013 2013-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
1015 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT):
1016 use a separate variable for the default .MAKE.DEPENDFILE value
1017 so that it can be controlled independently of
1018 .MAKE.DEPENDFILE_PREFERENCE
1020 * meta.stage.mk: throw error if cp fails etc.
1021 Stage*() return early if passed no args.
1024 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
1026 * install-mk (MK_VERSION): bump version
1027 * gendirdeps.mk: handle multiple M2D_OBJROOTS better.
1029 2013-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
1031 * install-mk (MK_VERSION): bump version to 20130210
1032 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py
1034 o dirdeps.mk now fully supports TARGET_SPEC consisting of more
1036 o no longer use DEP_MACHINE from Makefile.depend* so remove it.
1038 2013-01-23 Simon J. Gerraty <sjg@bad.crufty.net>
1040 * install-mk (MK_VERSION): bump version to 20130123
1041 * meta.stage.mk: add stage_links (hard links).
1042 if doing hard links, we add dest to link as well.
1043 Default the stage dir for [sym]links to STAGE_OBJTOP since
1044 these are typically specified as absolute paths.
1045 Add -m "mode" flag to StageFiles and StageAs.
1047 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1049 * install-mk (MK_VERSION): bump version to 20121111
1050 * autoconf.mk: avoid meta mode seeing changed commands for config.status
1051 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps
1052 in case we were found via .../mk
1053 * sys.clean-env.mk: move it from examples, we and others use it
1055 * FILES: add srctop.mk and options.mk
1056 * own.mk: convert to using options.mk
1057 which is modeled after FreeBSD's handling of MK_*
1059 This allows MK_* for boolean knobs to not be confused
1060 with MK* which can be commands.
1062 * examples/sys.clean-env.mk: add WITH[OUT]_ to
1063 MAKE_ENV_SAVE_PREFIX_LIST.
1064 Mention that HOME=/var/empty might be a good idea.
1066 2012-11-08 Simon J. Gerraty <sjg@bad.crufty.net>
1068 * sys.dependfile.mk: if not depend file exists, $MACHINE
1069 specific ones are supported but not the default,
1070 check if any exist and follow suit.
1072 2012-11-06 Simon J. Gerraty <sjg@bad.crufty.net>
1074 * install-mk (MK_VERSION): bump version to 20121106
1076 2012-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
1078 * import latest dirdeps.mk and meta2deps.py from Juniper.
1079 * progs.mk: add MAN and CXXFLAGS to PROG_VARS
1080 also add PROGS_TARGETS and pass on PROG_CXX if it seems
1083 2012-11-04 Simon J. Gerraty <sjg@bad.crufty.net>
1085 * meta.stage.mk: update CLEANFILES
1086 remove redundant cp of .dirdep from STAGE_AS_SCRIPT.
1087 * progs.mk: Add LDADD to PROG_VARS
1089 2012-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
1091 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in
1092 _STAGED_DIRS so that these can be turned into filters for
1095 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1097 * install-mk (MK_VERSION): bump version to 20121010
1098 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing
1099 target.dirdep matches .dirdep
1101 2012-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
1103 * install-mk (MK_VERSION): bump version to 20120808
1104 * import latest meta2deps.py from Juniper.
1106 2012-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
1108 * install-mk (MK_VERSION): bump version to 20120711
1109 * dep.mk: add explicit dependencies on SRCS after applying
1111 * meta.autodep.mk: add explicit dependencies on SRCS after
1112 applying SRCS_DEP_FILTER
1113 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed.
1115 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
1117 * install-mk (MK_VERSION): bump version to 20120626
1118 * meta.sys.mk: ignore PYTHON if it does not exist
1119 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable.
1120 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any
1121 entries ending in .${MACHINE} to decide if qualified _dirdep is
1123 * gendirdeps.mk: only produce unqualified deps if no
1124 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE}
1125 * meta.subdir.mk: apply SUBDIRDEPS_FILTER
1127 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1129 * install-mk (MK_VERSION): bump version to 20120420
1130 * add sys.dependfile.mk so we can experiment with
1131 .MAKE.DEPENDFILE_PREFERENCE
1132 * meta.autodep.mk: _DEPENDFILE is precious!
1134 2012-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
1136 * install-mk (MK_VERSION): bump version to 20120315
1137 * install-new.mk: avoid being interrupted
1139 2012-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
1141 * man.mk: MAN might have multiple values so be careful with exists().
1143 2012-01-19 Simon J. Gerraty <sjg@bad.crufty.net>
1145 * install-mk (MK_VERSION): bump version to 20120112
1146 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled
1147 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}'
1149 2011-12-03 Simon J. Gerraty <sjg@bad.crufty.net>
1151 * install-mk (MK_VERSION): bump version to 20111201
1152 * import dirdeps.mk from Juniper sjg@
1153 o more consistent handling of DEP_MACHINE, especially when
1154 dealing with an odd Makefile.depend, when normally using
1155 Makefile.depend.${MACHINE}
1157 2011-11-22 Simon J. Gerraty <sjg@bad.crufty.net>
1159 * install-mk (MK_VERSION): bump version to 20111122
1160 * meta.autodep.mk: add some debug output, be more crisp about
1161 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend
1163 2011-11-13 Simon J. Gerraty <sjg@bad.crufty.net>
1165 * install-mk (MK_VERSION): bump version to 20111111
1166 it's too cool to miss
1167 * import meta* updates from Juniper sjg@
1168 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are
1169 normally using Makefile.depend.${MACHINE}), handy for
1170 read-only manually maintained dependencies.
1171 o meta2deps.py add a clear 'ERROR:' token if an exception is raised.
1172 o gendirdeps.mk if ERROR: from meta2deps.py do not update
1175 2011-10-30 Simon J. Gerraty <sjg@bad.crufty.net>
1177 * install-new.mk separate the cmp and copy logic to its own function.
1179 2011-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
1181 * install-mk (MK_VERSION): bump version to 20111028
1182 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto
1183 * subdir.mk: ensure _SUBDIRUSE is provided
1184 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk
1185 * meta.subdir.mk: always allow for Makefile.depend
1187 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1189 * install-mk (MK_VERSION): bump version to 20111010
1190 o minor tweak to *dirdeps.mk from Juniper sjg@
1192 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
1194 * install-mk (MK_VERSION): bump version to 20111001
1195 o add meta2deps.py from Juniper sjg@
1196 o tweak gendirdeps.mk to work with meta2deps.py when not
1198 * autoconf.mk: add autoconf-input as a hook for regenerating
1199 AUTOCONF_INPUTS (configure).
1201 2011-08-24 Simon J. Gerraty <sjg@bad.crufty.net>
1203 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful
1204 trigger for updating Makefile.depend*
1206 2011-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
1208 * install-mk (MK_VERSION): bump version to 20110808
1209 * obj.mk: minor cleanup
1210 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too.
1212 2011-08-01 Simon J. Gerraty <sjg@bad.crufty.net>
1214 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the
1217 2011-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
1219 * meta.autodep.mk: if XMAKE_META_FILE is set
1220 the makefile uses a foreign make, and so dependencies
1221 can only be gathered from a clean tree build.
1223 2011-06-24 Simon J. Gerraty <sjg@bad.crufty.net>
1225 * install-mk (MK_VERSION): bump version to 20110622
1226 * meta.autodep.mk: improve bootstraping
1228 2011-06-10 Simon J. Gerraty <sjg@bad.crufty.net>
1230 * yacc.mk: handle the corner case of .c being removed
1233 2011-06-08 Simon J. Gerraty <sjg@bad.crufty.net>
1235 * yacc.mk: do .y.h and .y.c separately
1237 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1239 * install-mk (MK_VERSION): bump version to 20110606
1240 * don't store SRC_DIRDEPS in Makefile.depend* by default
1241 not everyone needs it.
1243 2011-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1245 * install-mk (MK_VERSION): bump version to 20110505
1246 first release including meta mode makefiles
1248 2011-05-02 Simon J. Gerraty <sjg@bad.crufty.net>
1250 * meta.stage.mk: add STAGE_AS_SETS and stage_as
1251 for things that need to be staged with different names.
1253 2011-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
1255 * meta.stage.mk: add notion of STAGE_SETS
1256 so a makefile can stage to multiple dirs
1258 2011-04-03 Simon J. Gerraty <sjg@bad.crufty.net>
1260 * rst2htm.mk: convert rst to s5 (slides) or plain html depending
1263 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1265 * install-mk (MK_VERSION): bump version to 20110330
1267 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
1269 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0
1270 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest.
1271 * sys.mk: re-define M_whence in terms of M_type.
1272 M_type is useful for checking if something is a builtin.
1274 2011-03-16 Simon J. Gerraty <sjg@bad.crufty.net>
1276 * meta.stage.mk: add stage_symlinks and leverage StageLinks for
1279 2011-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
1281 * dirdeps.mk: correct value for _depdir_files depends on
1283 Add our copyright - just to make it clear we have frobbed this
1285 DEP_MACHINE needs to be set to MACHINE each time, if using only
1286 Makefile.depend (cf. Makefile.depend.${MACHINE})
1288 * meta.stage.mk: meta mode version of staging
1290 * init.mk, final.mk: include local.*.mk to simplify customization
1292 2011-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
1294 * auto.obj.mk: just because we are doing mk destroy, we should
1295 still set .OBJDIR correctly if it exists.
1297 * install-mk (mksrc): do not exclude meta.sys.mk
1299 2011-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
1301 * host-target.mk: set/export _HOST_ARCH etc separately,
1302 catch junk resulting from uname -p, so we can find sys/Linux.mk
1305 2011-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1307 * meta.sys.mk: throw an error if /dev/filemon is missing and we
1308 expected to be updating Makefile.depend*
1310 2011-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
1312 * install-mk (MK_VERSION): bump version to 20110214
1313 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES
1315 2010-09-25 Simon J. Gerraty <sjg@bad.crufty.net>
1317 * meta.sys.mk: not valid for older bmake
1319 2010-09-24 Simon J. Gerraty <sjg@bad.crufty.net>
1321 * install-mk (MK_VERSION): bump version to 20100919
1322 include dirdeps.mk et al from Juniper Networks,
1323 for meta mode - requires filemon(9).
1324 * sys.mk, subdir.mk: Add hooks for meta mode.
1325 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk
1326 to make turning it on/off simple.
1328 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
1330 * install-mk (MK_VERSION): bump version to 20100616
1331 * fix typo in sys.mk
1333 2010-06-12 Simon J. Gerraty <sjg@bad.crufty.net>
1335 * install-mk (MK_VERSION): bump version to 20100612
1336 * lib.mk: remove duplicate addition to SOBJS
1338 2010-06-10 Simon J. Gerraty <sjg@bad.crufty.net>
1340 * sys.mk: Add a means of selectively turning on debug flags.
1341 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg"
1342 will act as if we did make -dv if .CURDIR ends in lib/sjg
1343 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at
1344 the start of sys.mk rather than the end.
1345 This only makes sense for leaf dirs, so we check that
1348 2010-06-09 Simon J. Gerraty <sjg@bad.crufty.net>
1350 * install-mk (MK_VERSION): bump version to 20100608
1351 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al.
1352 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606
1353 also make it easier for folk to tweak
1355 2010-06-08 Simon J. Gerraty <sjg@bad.crufty.net>
1357 * install-mk (MK_VERSION): bump version to 20100606
1358 do not install examples/*
1359 * FILES: add examples/sys.clean-env.mk
1360 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR
1361 this requires bmake-20100606 or later to work.
1363 2010-05-13 Simon J. Gerraty <sjg@bad.crufty.net>
1365 * sys.mk (M_tA): better simulate the result of :tA if not available.
1367 2010-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1369 * sys.mk: canonicalize MAKE_VERSION
1370 old versions reported bmake-<src-date> build-<build-date>
1371 whereas we only care about <src-date>
1373 2010-04-25 Simon J. Gerraty <sjg@bad.crufty.net>
1375 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored
1376 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION
1379 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
1381 * dpadd.mk: use LDADD_* if defined.
1383 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
1385 * install-mk (MK_VERSION): bump version to 20100420
1386 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy
1387 * autoconf.mk allow AUTO_AUTOCONF
1389 2010-04-19 Simon J. Gerraty <sjg@bad.crufty.net>
1391 * obj.mk: add objwarn to keep freebsd makefiles happy
1392 * auto.obj.mk: ensure Mkdirs is available.
1393 * FILES: add auto.dep.mk - a simpler version of autodep.mk
1394 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if
1396 fix/simplify the tests for when to run mkdep.
1397 * auto.dep.mk: add some explanation of how/what we do.
1398 * autodep.mk: skip the .OPTIONAL frobbing of .depend
1399 bmake's FROM_DEPEND flag makes it redundant.
1401 2010-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
1403 * install-mk (MK_VERSION): bump version to 20100404
1404 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE.
1405 * obj.mk: protect from multiple inclusion even as bsd.obj.mk
1406 Also create a target _SUBDIRUSE so that we can be used without
1409 2010-04-12 Simon J. Gerraty <sjg@bad.crufty.net>
1411 * dep.mk: use <> when .including so can override.
1413 2010-01-11 Simon J. Gerraty <sjg@bad.crufty.net>
1415 * lib.mk (SHLIB_LINKS): ensure a string comparison.
1417 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
1419 * install-mk (MK_VERSION): bump version to 20100102
1420 * own.mk: ensure PRINTOBJDIR works
1421 * autoconf.mk: pass on CONFIGURE_ARGS
1422 * init.mk: handle COPTS.${.IMPSRC:T} etc.
1423 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION
1424 fix handling of symlinks for darwin
1425 * libnames.mk: add DSHLIBEXT for libs which only exist as shared.
1426 * man.mk: suppress chown when not root.
1427 * rst2htm.mk: allow srcs from multiple locations.
1428 * sys.mk: M_whence, stop after 1st line of output.
1429 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT
1430 * sys/SunOS.mk: we need to export PATH
1432 2009-12-23 Simon J. Gerraty <sjg@void.crufty.net>
1434 * install-mk (MK_VERSION): bump version
1437 2009-12-17 Simon J. Gerraty <sjg@void.crufty.net>
1439 * sys.mk,libnames.mk add .-include <local.*>
1440 this allows local customization without the need to edit the
1443 2009-12-14 Simon J. Gerraty <sjg@void.crufty.net>
1445 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up
1446 older versions already installed.
1448 2009-12-13 Simon J. Gerraty <sjg@void.crufty.net>
1450 * stage.mk (.stage-install): generalize lib.mk's .libinstall
1451 * rules.mk rules for generic Makefile.
1452 * inc.mk install for includes.
1454 2009-12-11 Simon J. Gerraty <sjg@void.crufty.net>
1456 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check
1457 this, so provide it if using native make.
1459 2009-12-10 Simon J. Gerraty <sjg@void.crufty.net>
1461 * FILES: move all the platform *.sys.mk files to sys/*.mk
1462 * Rename Generic.sys.mk to sys.mk - we always want it.
1464 2009-11-17 Simon J. Gerraty <sjg@void.crufty.net>
1466 * install-mk (MK_VERSION): bump version
1467 * host-target.mk: only export the expensive stuff
1468 * Generic.sys.mk (sys_mk): for SunOS we need to look for
1469 ${HOST_OS}.${HOST_OSMAJOR} too!
1471 2009-11-07 Simon J. Gerraty <sjg@void.crufty.net>
1473 * install-mk (MK_VERSION): bump version
1474 * lib.mk: if sys.mk doesn't give us an lorder, don't use it.
1475 based on patch from Greg Olszewski.
1476 * Generic.sys.mk: if we have nothing to work with
1477 set LORDER etc only if we can find it.
1479 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
1481 * install-mk (MK_VERSION): bump version
1482 * man.mk: cleanman: remove CLEANMAN if defined.
1484 2009-09-04 Simon J. Gerraty <sjg@void.crufty.net>
1486 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk
1488 2009-07-17 Simon J. Gerraty <sjg@void.crufty.net>
1490 * install-mk (MK_VERSION): bump version
1494 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
1496 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail.
1498 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
1500 * install-mk (MK_VERSION): bump version
1501 man.mk: ensure we generate *.cat1 etc in .
1503 2008-07-16 Simon J. Gerraty <sjg@void.crufty.net>
1505 * install-mk (MK_VERSION): bump version
1508 2007-11-25 Simon J. Gerraty <sjg@void.crufty.net>
1510 * Generic.sys.mk: Allow os specific sys.mk to be in a
1511 subdir of ${.PARSEDIR}
1513 2007-11-22 Simon J. Gerraty <sjg@void.crufty.net>
1515 * install-mk (MK_VERSION): bump version
1517 * dpadd.mk introduce DPMAGIC_LIBS_*
1519 2007-04-30 Simon J. Gerraty <sjg@void.crufty.net>
1521 * install-mk (MK_VERSION): bump version
1523 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog
1524 depend files and ensure clean is called for each lib/prog.
1526 2007-03-27 Simon J. Gerraty <sjg@void.crufty.net>
1528 * autodep.mk (.depend): delete lines that do not start with
1529 space and do not contain ':'
1531 2007-02-16 Simon J. Gerraty <sjg@void.crufty.net>
1533 * autodep.mk (.depend): gcc may wrap lines if pathnames are long
1534 so make sure the transform for .OPTIONAL copes.
1536 2007-02-03 Simon J. Gerraty <sjg@void.crufty.net>
1538 * install-mk (MK_VERSION): bump version
1540 * own.mk: make sure RM and LN are defined.
1542 * obj.mk: fix a typo, and objlink target.
1544 2006-12-30 Simon J. Gerraty <sjg@void.crufty.net>
1546 * install-mk (MK_VERSION): bump version
1547 * added libs.mk - analogous to progs.mk
1548 make both of them always inlcude {lib,prog}.mk
1550 2006-12-28 Simon J. Gerraty <sjg@void.crufty.net>
1552 * progs.mk: add a means of building multiple apps in one dir.
1554 2006-11-26 Simon J. Gerraty <sjg@void.crufty.net>
1556 * install-mk (MK_VERSION): bump version to 20061126
1558 * warnings.mk: detect invalid WARNINGS_SET
1560 * warnings.mk: use ${.TARGET:T:R}.o when looking for target
1563 * For .cc sources, turn off warnings that g++ vomits on.
1565 2006-11-08 Simon J. Gerraty <sjg@void.crufty.net>
1567 * own.mk: if __initialized__ target doesn't exist and we are
1568 FreeBSD we got here directly from sys.mk
1570 2006-11-06 Simon J. Gerraty <sjg@void.crufty.net>
1572 * install-mk (MK_VERSION): bump version to 20061106
1575 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
1577 * install-mk (MK_VERSION): bump version to 20060318
1579 * autodep.mk: avoid := when modifying OBJS into __dependsrcs
1581 2006-03-02 Simon J. Gerraty <sjg@void.crufty.net>
1583 * install-mk (MK_VERSION): bump version to 20060302
1584 * autodep.mk: use -MF et al to help gcc+ccache DTRT.
1586 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
1588 * install-mk (MK_VERSION): bump version to 20060301
1589 * autodep.mk (.depend):
1590 if MAKE_VERSION is newer than 20050530 we can make .END depend on
1591 .depend and make .depend depend on __depsrcs that exist.
1592 * dpadd.mk: add SRC_PATHADD
1594 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
1596 * install-mk (MK_VERSION): bump version to 20051104
1597 * prog.mk: remove all the LIBC?= junk, use
1598 .-include libnames.mk instead (none by default).
1599 also if USE_DPADD_MK is set, include that.
1601 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
1603 * install-mk (MK_VERSION): bump version to 20051001
1604 Add UnixWare.sys.mk from Klaus Heinz.
1606 2005-04-05 Simon J. Gerraty <sjg@void.crufty.net>
1608 * install-mk: always install *.sys.mk and if need be symlink one
1611 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
1613 * subdir.mk, own.mk: use .MAKE rather than MAKE
1615 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
1617 * own.mk: don't use NetBSD's _SRC_TOP_ it can
1618 cause confusion. Also don't take just 'mk' as a
1621 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
1623 * warnings.mk: overhauled, now very powerful.
1625 2004-02-03 Simon J. Gerraty <sjg@void.crufty.net>
1627 * Generic.sys.mk: need to use ${.PARSEDIR} with exists().
1629 2004-02-01 Simon J. Gerraty <sjg@void.crufty.net>
1631 * install-mk (MK_VERSION): bump version to 20040201
1632 * extract HOST_TARGET stuff to host-target.mk so own.mk and
1633 Generic.sys.mk can share.
1634 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR.
1636 2003-09-30 Simon J. Gerraty <sjg@void.crufty.net>
1638 * install-mk (MK_VERSION): 20030930
1639 * rename generic.sys.mk to Generic.sys.mk
1640 so that it does not get installed (unless being used as sys.mk)
1641 * set OS and ROOT_GROUP for those that we know the value.
1642 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so
1643 we don't do it again for each sub-make.
1645 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
1647 * install-mk (MK_VERSION): 20030928
1648 Add some extra *.sys.mk from bootstrap-pkgsrc
1649 some of these likely still need work.
1650 Make everything default to root:wheel ownership,
1651 sys.mk can set ROOT_GROUP accordingly.
1653 2003-08-07 Simon J. Gerraty <sjg@void.crufty.net>
1655 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR
1656 not the portable ones.
1658 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
1660 * install-mk: add ability to use cp -f when updating
1661 destination .mk files. Also now possible to play games with
1662 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk
1663 into dest - not recommended unless you seriously want to.
1665 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
1667 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc
1668 for semi-compatability with NetBSD.
1670 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
1672 * install-mk: add a version indicator
1674 2003-07-22 Simon J. Gerraty <sjg@void.crufty.net>
1676 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null
1678 * install-mk: Allow FORCE_SYS_MK to come from env