xref: /freebsd/contrib/bmake/mk/ChangeLog (revision 5dfe1956df4b37af4892aaff3fafe70c0d6d7466)
12026-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* install-mk (MK_VERSION): 20260704
4
52026-07-03  Simon J Gerraty  <sjg@beast.crufty.net>
6
7	* dirdeps.mk: make use of alternation support in latest bmake
8	when setting .MAKE.META.IGNORE_FILTER so we can get both
9	Makefile.depend* and *.mk to make cache out-of-date.
10
112026-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
12
13	* meta2deps.py: detect corrupted filemon data on Linux,
14	caused by lost newlines.
15
162026-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
17
18	* install-mk (MK_VERSION): 20260621
19
20	* gendirdeps.mk: more debug output
21
22	* meta.autodep.mk: remove extra } from GENDIRDEPS_ENV
23
242026-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
25
26	* install-mk (MK_VERSION): 20260619
27
28	* install-new.mk: for POSIX_SHELL we need .new*
29	rather than just .new
30
312026-05-21  Simon J Gerraty  <sjg@beast.crufty.net>
32
33	* meta2deps.{py,sh}: skip pathnames with spaces - not worth the pain.
34
352026-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
36
37	* gendirdeps.mk: also apply ':S,/$,,' and ':C,/(\.[^.]*)$,\1,'
38	when setting DIRDEPS prior to saving.
39
40	* dirdeps.mk: when debugging it is handy to be able to skip
41	recursing so if DEBUG_DIRDEPS contains 'norecurse' we will only
42	process the immediate DIRDEPS.
43	Also if DEBUG_DIRDEPS contains '-V' we process sections normally
44	skipped when doing 'make -V'.
45	o ensure we do not get duplicate build dirs due to someone
46	adding a trailing '/' or '/.${TARGET_SPEC}' to a DIRDEPS entry.
47	Add ':S,/$,,' when setting '__depdirs' and
48	add ':C,/(\.[^.]*)$,\1,' when setting '__qual_depdirs'.
49
502026-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
51
52	* install-mk (MK_VERSION): 20260424
53
54	* Use MK_META_AUTODEP to control use of meta.autodep.mk
55	so it can be used independently of MK_DIRDEPS_BUILD for
56	bootstrapping.
57
58	* sys.vars.mk (M_type): use :sh rather than :sh1 to avoid
59	surprises in a .for loop.
60
612026-03-12  Simon J Gerraty  <sjg@beast.crufty.net>
62
63	* install-mk (MK_VERSION): 20260313
64
65	* sys.vars.mk: use .MAKE.VERSION
66	M_type can simply use '$x'
67
682026-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
69
70	* install-mk (MK_VERSION): 20260222
71
72	* dirdeps.mk, sys.mk: add dependent option
73	UPDATE_DIRDEPS_CACHE/DIRDEPS_CACHE.
74	It can be useful to use -DWITHOUT_UPDATE_DIRDEPS_CACHE to
75	temporarily treat dynamic DIRDEPS_CACHE as static.
76
772026-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
78
79	* meta.autodep.mk (${_DEPENDFILE}): add .NOMETA
80
812026-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
82
83	* rust.mk: better accommodation for RUST_LIBS.
84	Set RUST_{LIBS,PROGS}_CARGO_BUILD_OUTPUT_LIST to
85	simplify staging.
86
872025-12-08  Simon J Gerraty  <sjg@beast.crufty.net>
88
89	* install-mk (MK_VERSION): 20251207
90
91	* sys.vars.mk: replace MAKE_POSIX_SHELL usage with isPOSIX_SHELL
92	Using ${isPOSIX_SHELL:U:Nfalse} provides a boolean for make
93	and ${isPOSIX_SHELL:Ufalse} does the same for target scripts.
94	Both will be false if isPOSIX_SHELL is not set or set to false.
95
96	This has the advantage that if only POSIX shells are expected
97	sys.mk (or something it includes) can simply do isPOSIX_SHELL?=:
98
992025-11-18  Simon J Gerraty  <sjg@beast.crufty.net>
100
101	* sys.vars.mk: set MAKE_POSIX_SHELL to 1 if .SHELL is POSIX, 0 if not.
102	set isPOSIX_SHELL for use in target scripts.
103
104	* meta.stage.mk: set MAKE_POSIX_SHELL if needed.
105
106	* install-new.mk: use ${isPOSIX_SHELL:Ufalse} to see if we can
107	avoid running 'expr'.
108
109	* install-new.mk: Allow use of cp or mv - controlled by CPMV_OP
110	(default mv).
111
1122025-11-13  Simon J Gerraty  <sjg@beast.crufty.net>
113
114	* sys.vars.mk: add M_sh1 so we can handle older bmake that does
115	not support :sh1
116
1172025-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
118
119	* install-mk (MK_VERSION): 20251111
120
121	* meta2deps.sh: reset some vars for each new meta file
122	set meta_file to path of meta file.
123	If meta2deps appears in DEBUG_SH set -x.
124
1252025-09-16  Simon J Gerraty  <sjg@beast.crufty.net>
126
127	* options.mk: Add OPTIONS_DEFAULT_DEPENDENT_REQUIRED of the form
128	OPTION/REQUIRED[/VALUE]
129	if OPTION is $VALUE (default is "yes"), then REQUIRED must be too.
130	We add OPTIONS_DEFAULT_DEPENDENT_REQUIRED (sans any /{yes,no}) to
131	OPTIONS_DEFAULT_DEPENDENT so DEPENDENT/REQUIRED follow the same
132	processing.
133
134	Also add OPTIONS_FORCED_VALUES of the form OPTION/{yes,no}
135	we add any OPTIONS_FORCED_NO and OPTIONS_FORCED_YES before
136	processing.
137
138	Simplify the processing of OPTIONS_DEFAULT_VALUES and
139	OPTIONS_DEFAULT_DEPENDENT by splitting the tuples and use two
140	iterator variables in the .for loops.
141
1422025-08-09  Simon J Gerraty  <sjg@beast.crufty.net>
143
144	* install-mk (MK_VERSION): 20250808
145
146	* replace sjg license with just BSD-2-Clause SPDX tag
147
1482025-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
149
150	* install-mk (MK_VERSION): 20250724
151
152	* meta2deps: Allow X record to have 3 or 4 args.
153	V4 filemon on Linux produces 3
154	V5 filemon on FreeBSD produces 4
155
1562025-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
157
158	* install-mk (MK_VERSION): 20250721
159
160	* meta2deps.{py,sh}: detect corrupted filemon output (an issue on
161	Linux) by checking each record type has the correct number of
162	words.  Throw an error if necessary so that gendirdeps.mk will not
163	update Makefile.depend
164
1652025-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
166
167	* prog.mk: .MADE is a special source not a target!
168
1692025-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
170
171	* install-mk (MK_VERSION): 20250528
172
173	* add dirdeps2dplibs.mk
174
1752025-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
176
177	* install-mk (MK_VERSION): 20250518
178
179	* meta.autodep.mk (META_FILES): re-work to fix filtering.
180	if OPTIMIZE_OBJECT_META_FILES==yes
181	provide a default META_FILE_OBJ_FILTER that selects a valid
182	.SUFFIX to match *o.meta, there's no guarantee that it will be as
183	simple as .o or .So etc.
184	We have to defer evaluation until the target script is run
185	for any of these filters to have any effect.
186	Use :S,${.OBJDIR}/,, rather than :T incase there are objects
187	in sub-dirs.
188
189	* lib.mk: leverage ${.SUFFIXES} when setting dependencies.
190
191	* add UPDATE_DEPENDFILE as a dependent option - follows
192	DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for
193	UPDATE_DEPENDFILE when we think it should be yes.
194	This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE
195	without overriding UPDATE_DEPENDFILE directly - which can lead to
196	trouble.
197
1982025-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
199
200	* install-mk (MK_VERSION): 20250515
201
202	* meta2deps.py: resolve the target of a Move or Link first
203	and track the last path resolved, then if the src is a relative
204	path we can easily use that last path to resolve the src correctly.
205
206	* meta2deps.sh: for a Move or Link add the dir of target path to
207	the list used to resolve the src path.
208
2092025-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
210
211	* init.mk: include Skipping ${RELDIR} when _SKIP_BUILD is not empty.
212
2132025-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
214
215	* install-mk (MK_VERSION): 20250414
216
217	* init.mk: check ONLY_*_LIST and NOT_*_LIST for SKIP_BUILD_VAR_LIST
218	to set _SKIP_BUILD
219
220	* genfiles.mk: add FILTER support
221
222	* rst2htm.mk: latest docutils drops .py extensions
223
2242025-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
225
226	* install-mk (MK_VERSION): 20250326
227
228	* auto.obj.mk: fix and simplify handling of relative __objdir,
229	convert it to absolute before checking against .OBJDIR
230
2312025-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
232
233	* install-mk (MK_VERSION): 20250314
234
235	* meta.stage.mk: StageFiles --subdir: preserve the dir part of
236	each file under $dest
237
2382025-03-12  Simon J Gerraty  <sjg@beast.crufty.net>
239
240	* meta.autodep.mk: do a better job of handling MAKESYSPATH in
241	GENDIRDEPS_ENV.  If we have MAKE_VERSION >= 20230123 we can just
242	use .SYSPATH, otherwise it is a bit more complicated.
243
2442025-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
245
246	* rust.mk: use RUST_LIBS and RUST_PROGS
247
2482025-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
249
250	* install-mk (MK_VERSION): 20250101
251
252	* use W flag to :S and :C rather than :tW
253
2542024-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
255
256	* rust.mk: add RUSTFLAGS if needed
257
2582024-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
259
260	* init.mk (OBJS_SRCS_FILTER): apply this as
261	${OBJS_SRCS_FILTER:ts:} as we do in FreeBSD.
262
2632024-12-03  Simon J Gerraty  <sjg@beast.crufty.net>
264
265	* install-mk (MK_VERSION): 20241202
266
267	* setopts.sh: needed by newlog.sh
268
2692024-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
270
271	* meta.sys.mk: add META_MODE_XTRAS to META_MODE to make it
272	easier to add things like 'env' when debugging.
273
274	* install-mk (MK_VERSION): 20241122
275
276	* rust.mk: rename CARGO* to RUST_CARGO* so I don't feel
277	like this makefile should be renamed to cargo.mk
278
2792024-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
280
281	* dirdeps.mk: add DIRDEPS_CACHED_ENV to dirdeps-cached and
282	DIRDEP_USE_EPILOGUE to _DIRDEP_USE
283
2842024-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
285
286	* meta.sys.mk: if MK_META_ERROR_TARGET is yes and NEWLOG_SH is
287	set, and ERROR_LOGDIR already exists, hook _rotateErrorLog to
288	.BEGIN target.
289
2902024-10-27  Simon J Gerraty  <sjg@beast.crufty.net>
291
292	* options.mk: add support for DEBUG_OPTIONS (similar to
293	DEBUG_DIRDEPS) to allow us to see where options get set.
294	Eg. DEBUG_OPTIONS="STAGING*" gives:
295
296	bmake[1]: "mk/options.mk" line 89: sys.mk: MK_STAGING=yes (MK_DIRDEPS_BUILD=no)
297	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING=yes
298	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING_PROG=no
299	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_MAN=yes (MK_STAGING=yes)
300	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_PROG=no (MK_STAGING=yes)
301	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_RUST=no (MK_STAGING_PROG=no)
302
303	* own.mk: fix setting of STAGE_OBJTOP (normally set by sys.dirdeps.mk)
304
3052024-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
306
307	* rust.mk: add some documentation and support for staging
308
3092024-10-25  Simon J Gerraty  <sjg@beast.crufty.net>
310
311	* rust.mk: a means of integrating Rust projects into a larger build.
312
3132024-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
314
315	* dirdeps-targets.mk: if DEBUG_DIRDEPS_TARGETS and we found
316	STATIC_DIRDEPS_CACHE, report its relative path.
317
3182024-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
319
320	* dirdeps.mk: tweak the debug message for "Loading" a
321	Makefile.depend file, always report what the actual makefile is
322	with the DIRDEP it is for.
323	Remove the redundant "Looking" message.
324
3252024-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
326
327	* meta2deps.py: when raising AssertionError include meta file name
328	with $SB trimmed if possible.
329
3302024-09-23  Simon J Gerraty  <sjg@beast.crufty.net>
331
332	* meta2deps.py: replace assert() with raise AssertionError when we
333	detect missing eXits, to ensure a meaningful message gets into
334	log.
335
3362024-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
337
338	* install-mk (MK_VERSION): 20240921
339
340	* FILES: add genfiles.mk
341
3422024-09-20  Simon J Gerraty  <sjg@beast.crufty.net>
343
344	* install-mk (MK_VERSION): 20240920
345
346	* cython.mk: Get PYTHON_VERSION from PYTHON
347
3482024-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
349
350	* subdir.mk: add ${SUBDIR.yes} - allows for SUBDIR.${MK_*}
351	  and handle subdir with '-' in its name.
352
3532024-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
354
355	* install-mk (MK_VERSION): 20240820
356
357	* links.mk: Allow a filter to be applied to SYMLINKS etc.
358	It is up to [BUILD_][SYM]LINKS_FILTER to do something sane.
359	Also only claim we are making a symlink if the value changed.
360
3612024-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
362
363	* install-mk (MK_VERSION): 20240616
364
365	* dirdeps.mk: apply DEP_DIRDEPS_BUILD_DIR_FILTER after we have
366	computed build dirs, since some filters cannot be easily expressed via
367	DEP_DIRDEPS_FILTER.
368
3692024-05-31  Simon J Gerraty  <sjg@beast.crufty.net>
370
371	* dirdeps.mk: move reset of DIRDEPS_EXPORT_VARS
372	until after we a finished with it if building a cache.
373
3742024-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
375
376	* install-mk (MK_VERSION): 20240504
377
378	* dirdeps.mk: allow BUILD_DIRDEPS_OVERRIDES to pass overrides to
379	sub-make building DIRDEPS_CACHE.
380
3812024-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
382
383	* meta.autodep.mk: do not override start_utc
384
3852024-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
386
387	* sys.dirdeps.mk: set defaults for DEP_* at level 0 too.
388	These help when first include of Makefile.depend happens in a leaf
389	dir.
390
391	* install-mk (MK_VERSION): 20240414
392
3932024-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
394
395	* install-mk (MK_VERSION): 20240408
396
397	* init.mk: allow for _ as well as . to join V
398	and Q from QUALIFIED_VAR_LIST and VAR_QUALIFIER_LIST.
399
400	* progs.mk: avoid overlap between PROG_VARS and
401	init.mk's QUALIFIED_VAR_LIST since PROG would also
402	match its VAR_QUALIFIER_LIST,
403	libs.mk does not have the same issue.
404
405	* subdir.mk: _SUBDIRUSE for realinstall should run install
406	remove include of ${.CURDIR}/Makefile.inc that can be done via
407	local.subdir.mk where needed
408
409	* own.mk: do not conflict with man.mk
410
4112024-03-19  Simon J Gerraty  <sjg@beast.crufty.net>
412
413	* install-mk (MK_VERSION): 20240314
414
415	* add sys/Cygwin.mk from Christian Franke
416
4172024-03-09  Simon J Gerraty  <sjg@beast.crufty.net>
418
419	* install-mk (MK_VERSION): 20240309
420
421	* meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not
422	want to save the .ERROR_META_FILE
423
4242024-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
425
426	* install-mk (MK_VERSION): 20240220
427
428	* sys.dirdeps.mk, dirdeps-targets.mk, init.mk:
429	do not set .MAIN: dirdeps in sys.dirdeps.mk
430	dirdeps-targets.mk will do that for top-level builds
431	and init.mk will do it for others.
432	This allows a Makefile which has no need of 'dirdeps' to
433	set .MAIN for itself and "just work".
434
4352024-02-18  Simon J Gerraty  <sjg@beast.crufty.net>
436
437	* bsd.*.mk: for makefiles that get a bsd. symlink,
438	use _this in  multiple inclusion tags since .PARSEFILE will not
439	DTRT when such a makefile is included directly by Makefile and
440	automatically (without bsd. prefix).
441	Since we cannot guarantee that our sys.mk will be used, we provide
442	a default _this in each makefile that gets a bsd. prefix such that
443	the value is the same regardless of bsd. prefix.
444
445	* subdir.mk: drop the !target guard on $SUBDIR_TARGETS
446
4472024-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
448
449	* install-mk (MK_VERSION): 20240212
450
451	* SPDX-License-Identifier: BSD-2-Clause
452	Add SPDX-License-Identifier to inidicate that I consider
453	my copyright on any of these makefiles equivalent to BSD-2-Clause
454
455	* autoconf.mk: allow for configure.ac as currently recommended
456
457	* subdir.mk: support @auto
458	which is replaced with each subdir that
459	has a [Mm]akefile.
460
461	* subdir.mk: include local.subdir.mk if it exists.
462
463	* subdir.mk: rework to handle .WAIT
464
4652024-02-11  Simon J Gerraty  <sjg@beast.crufty.net>
466
467	* subdir.mk: _SUBDIRUSE report the target we are entering subdirs for.
468
4692024-02-10  Simon J Gerraty  <sjg@beast.crufty.net>
470
471	* prog.mk: treat empty SRCS the same as undefined
472
4732024-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
474
475	* Avoid undefined errors in lint (-dL) mode
476
477	* man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7)
478
4792024-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
480
481	* install-mk (MK_VERSION): 20240128
482
483	* FILES: add ccm.dep.mk for C++ modules
484	add suffixes.mk for common location for generic SUFFIX rules.
485
486	* auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk
487	replace OBJ_EXTENSIONS with OBJ_SUFFIXES
488
489	* autodep.mk: leverage CXX_SUFFIXES for __depsrcs
490	and update style (spaces around = etc)
491
492	* init.mk: add OBJS_SRCS_FILTER to filter SRCS when
493	setting OBJS
494
495	* meta2deps.py: handle multiple ./ embedded in path better.
496
4972024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
498
499	* install-mk (MK_VERSION): 20240105
500	* dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same
501	limits on command line length, so skip export of lists to env.
502
5032023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
504
505	* man.mk: add logic for staging man pages
506
5072023-11-28  Simon J Gerraty  <sjg@beast.crufty.net>
508
509	* jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating
510	point.  This keeps JOB_MAX numeric incase another makefile does
511	comparisons.
512
5132023-11-04  Simon J Gerraty  <sjg@beast.crufty.net>
514
515	* dpadd.mk: add support for DPLIBS_QUALIFIER_LIST
516
517	* gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
518
5192023-10-03  Simon J Gerraty  <sjg@beast.crufty.net>
520
521	* compiler.mk (COMPILER_VERSION): clang at least is into
522	double digit major versions.
523
5242023-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
525
526	* install-mk (MK_VERSION): 20231001
527
528	* set _CCLINK in init.mk so lib.mk can use it for default SHLIB_LD
529
530	* lib.mk (cleanlib): use LD_solink so we remove all the right files.
531	Use -Wl for -soname since we now default to linking with CC
532	We should not need SHLIB_LDSTARTFILE or SHLIB_LDENDFILE when linking
533	with CC.
534
5352023-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
536
537	* init.mk (QUALIFIED_VAR_LIST): Add SRCS
538
5392023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
540
541	* jobs.mk (JOB_MAX): use -jC if we can
542	we actually use JOB_MAX_C which defaults to 1.33C
543
5442023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
545
546	* now_utc: %s only works with :localtime
547
5482023-07-14  Simon J Gerraty  <sjg@beast.crufty.net>
549
550	* install-sh: ignore -c as claimed and only insist on
551	a directory for destination when more than one file to copy.
552
553	* sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and
554	${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64)
555
5562023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
557
558	* install-mk (MK_VERSION): 20230711
559
560	* sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible
561	install(1)
562
563	* sys/IRIX.mk:  when setting ROOT_GROUP only match the first :0:
564	set INSTALL to install-sh rather than pathname that may not exist
565	(yet).
566
5672023-07-07  Simon J Gerraty  <sjg@beast.crufty.net>
568
569	* dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE
570	normally this is empty - for the default target, but there are
571	use-cases where we might set it to something else.
572
5732023-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
574
575	* install-mk (MK_VERSION): 20230704
576
577	* dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output
578	when DEBUG_DIRDEPS is in effect.
579	Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n
580	can greatly improve readability.
581
5822023-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
583
584	* meta.autodep.mk (beforegendirdeps): allow tasks to be done
585	at END but before gendirdeps
586
5872023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
588
589	* install-mk (MK_VERSION): 20230522
590
591	* host-target.mk: deal with garbage from uname -m on
592	Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH
593	these days so just leave it be.
594	For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get
595	arm64 and x86_64 in HOST_TARGET.
596
5972023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
598
599	* sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older
600	versions of bmake.
601
602	* dirdeps.mk (TARGET_SPEC_VARS.host):
603	While *most* projects need only DEP_MACHINE for host,
604	there is always an exception.  So we allow for
605	TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS.
606	The default will *just work* for most projects.
607	We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC
608	based on DEP_MACHINE.
609	Allow for M_dep_qual_fixes.host to be different too
610	and take care to apply the right set.
611
6122023-05-14  Simon J Gerraty  <sjg@beast.crufty.net>
613
614	* sys.dirdeps.mk: we *do* want to override OBJTOP
615	and if MAKEOBJDIR was not in env as we want it;
616	put it there - carefully.
617	Ensure OBJROOT ends in / or - (/ preferred)
618	Add more comments to explain what/why.
619
6202023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
621
622	* install-mk (MK_VERSION): 20230512
623
624	* dirdeps.mk: take care not to qualify "host" dirdeps
625
626	* sys.dirdeps.mk (OBJTOP): must use ?=
627
6282023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
629
630	* meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no"
631	suppress processing of .depend
632
6332023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
634
635	* dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP
636
637	* meta.sys.mk sys.dirdeps.mk:
638	originally DIRDEPS_BUILD and META_MODE were the same thing,
639	but META_MODE is useful by itself.
640	Move things from meta.sys.mk which actually pertain to
641	DIRDEPS_BUILD to sys.dirdeps.mk
642
6432023-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
644
645	* install-mk (MK_VERSION): 20230504 May the Forth be with you
646
647	* dirdeps.mk: as with meta.sys.mk we treat "host" as special.
648	DEP_TARGET_SPEC is just ${DEP_MACHINE}
649
650	* meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at
651	level > 0 since these are often refered to in Makefile.depend*
652
6532023-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
654
655	* jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and
656	anything in ${JOB_LOG_START}
657
658	* jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}}
659	or a scripts subdir before searching $PATH.
660
661	* FILES: include newlog.sh for jobs.mk
662
6632023-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
664
665	* install-mk (MK_VERSION): 20230420
666
667	* lib.mk: include LDFLAGS and LDADD when linking shared libs
668
669	* gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc
670	via local.meta.sys.mk rather than local.gendirdeps.mk
671	so DEP_* variables can be set at level 1+ to avoid syntax errors
672	when used in conditionals in manually maintained Makefile.depend
673	files.
674
675	* dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines
676
6772023-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
678
679	* dirdeps.mk: check we were not included by
680	Makefile.depend.options as the result is bad.
681
6822023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
683
684	* install-mk (MK_VERSION): 20230414
685
686	* meta.sys.mk: since we have :range we can put the logic for
687	processing TARGET_SPEC from env here.
688
689	* dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including
690	local.dirdeps-missing.mk, also improve debug output.
691
692	* dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC
693	we need to use :M*[/.]* same as for when actually setting DIRDEPS
694	from the targets on command line.
695
6962023-04-12  Simon J Gerraty  <sjg@beast.crufty.net>
697
698	* Add jobs.mk
699
7002023-03-21  Simon J Gerraty  <sjg@beast.crufty.net>
701
702	* install-mk (MK_VERSION): 20230321
703
704	* meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter
705	STAGE_LIBS for SHLIB_LINKS.
706
707	* autoconf.mk: add .WAIT after config.status
708
7092023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
710
711	* sys.vars.mk: add M_Index to report the index of a word in a list.
712
7132023-02-15  Simon J Gerraty  <sjg@beast.crufty.net>
714
715	* install-mk (MK_VERSION): 20230215
716
717	* warnings.mk: allow better control of -Werror
718	allow -Wno-error or similar to be added if
719	WARNINGS_SET < WERROR_SET
720	account for COMPILER_TYPE
721
7222023-01-29  Simon J Gerraty  <sjg@beast.crufty.net>
723
724	* autoconf.mk: hook config.status to beforebuild.
725
726	* whats.mk: what*.c is NOTMAIN
727
7282023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
729
730	* install-mk (MK_VERSION): 20230127
731	control umask so directories are created with suitable mode.
732
7332023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
734
735	* install-mk (MK_VERSION): 20230120
736
737	* sys.vars.mk: add M_On and M_Onr also cleanup to be more
738	consistent wrt testing MAKE_VERSION
739
7402023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
741
742	* install-mk (MK_VERSION): 20230112
743
744	* meta2deps.{py,sh}: assert if filemon data is truncated
745	we should see the '# Bye bye' record - assert if we do not.
746
7472022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
748
749	* install-mk (MK_VERSION): 20220909
750
751	* sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings
752
7532022-09-06  Simon J Gerraty  <sjg@beast.crufty.net>
754
755	* dirdeps-options.mk: explain the need to use
756	${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to
757	${TARGET_SPEC_VAR}
758
7592022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
760
761	* install-mk (MK_VERSION): 20220903
762
763	* M_cmpv handle more than 3 dots and clear leading 0's
764
7652022-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
766
767	* install-mk (MK_VERSION): 20220720
768
769	* prog.mk: handle PROG_CXX for more than just NetBSD
770
7712022-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
772
773	* install-mk (MK_VERSION): 20220620
774
775	* yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER
776	rather than just suffix rules
777
7782022-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
779
780	* install-mk (MK_VERSION): 20220422
781
782	* gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no"
783	do not capture any local depends in Makefile.depend
784
7852022-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
786
787	* install-mk (MK_VERSION): 20220323
788	* posix.mk: default rules for .POSIX:
789
7902022-03-17  Simon J Gerraty  <sjg@beast.crufty.net>
791
792	* sys/*.mk: remove l from ARFLAGS
793
7942022-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
795
796	* install-mk (MK_VERSION): 20220314
797
798	* dirdeps-options.mk: allow options to be per RELDIR
799	try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed
800	with ${DEP_RELDIR}.
801
8022022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
803
804	* install-mk (MK_VERSION): 20220214
805
806	* cc-wrap.mk: fix :@ modifier
807
8082022-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
809
810	* install-mk (MK_VERSION): 20220206
811
812	* cc-wrap.mk: docuement how CCACHE etc might be set for
813	maximum flexibility
814
8152022-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
816
817	* sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT
818
8192022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
820
821	* install-mk (MK_VERSION): 20220204
822
823	* host-target.mk: use .MAKE.OS if available
824
8252022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
826
827	* install-mk (MK_VERSION): 20220202
828
829	* cc-wrap.mk: allow other entries in CC_WRAP_FILTER
830	We add our filter on extensions last, so prior filters
831	can apply to the whole value of .IMPSRC
832
8332022-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
834
835	* cc-wrap.mk: take advantage of target local variables to
836	wrap compilers like CC CXX with wrappers like ccache distcc etc
837
8382022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
839
840	* meta2deps: we do not expect any trace data for setid apps
841
8422022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
843
844	* dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed
845	to sub-make using DIRDEPS_CACHE
846
8472022-01-07  Simon J Gerraty  <sjg@beast.crufty.net>
848
849	* dirdeps.mk: use _cache_script to minimize the number of shells
850	forked when generating dirdeps.cache
851
8522022-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
853
854	* install-mk (MK_VERSION): 20220101
855
856	* dirdeps.mk: initialize DEP_* and _debug_reldir earlier.
857	If initial DIRDEPS are from command line, create the target
858	_dirdeps_cmdline as an indication.
859
8602022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
861
862	* init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD
863	at top-level only some targets are allowed at level 0,
864	for leaf makefiles only the default (all) target is restricted
865
8662021-12-28  Simon J Gerraty  <sjg@beast.crufty.net>
867
868	* install-mk (MK_VERSION): 20211228
869
870	* meta2deps.py: filemon on Linux is not as reliable as we might
871	like, we do not want to update DIRDEPS if filemon output is
872	incomplete.   Track pids that we 'E'xec and make sure we see an
873	e'X'it for each one.  Throw an error if we are missing any 'X'
874	records.
875
8762021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
877
878	* sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes.
879
880	* meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON
881	is something else.
882
883	* meta.autodep.mk: we can now reference ${.SUFFIXES}
884
885	* meta2deps.py: derive a list of dirdep extensions from
886	TARGET_SPEC to trim from dirdeps.
887
888	* dirdeps.mk: flip the computation of qualified vs unqualified
889	dirdeps - it is much simpler to check for unqualified first.
890
8912021-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
892
893	* install-mk (MK_VERSION): 20211212
894
895	* auto.dep.mk: rearrange so that the trivial implementation
896	for recent bmake is more obvious.
897
8982021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
899
900	* install-mk (MK_VERSION): 20211207
901
902	* Ensure guard targets are .NOTMAIN
903
904	* meta.sys.mk: check for nofilemon support when we skip level 0
905
906	* auto.dep.mk: make this usable in meta mode
907	for platforms that cannot use meta.autodep.mk
908
909	* meta2deps.py: avoid confusion if MACHINE and another
910	TARGET_SPEC_VAR have same value.
911
9122021-11-27  Simon J Gerraty  <sjg@beast.crufty.net>
913
914	* dirdeps.mk: when building dirdeps.cache, minimize the amount of
915	data put into env, by stripping ${SRCTOP}/ from each entry.
916	A long sandbox name can double the amount of memory consumed and
917	in extreme cases cause failure.
918	While we are at it, strip ${SRCTOP}/ from a lot of the debug output.
919
9202021-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
921
922	* install-mk (MK_VERSION): 20211111
923
924	* meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail
925	so fallback to cp if necessary.
926
9272021-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
928
929	* man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year
930	old cmt2doc.pl
931
9322021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
933
934	* meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f}
935	as the symlink (rare)
936
9372021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
938
939	* autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not
940	been read, throw an error after running configure telling user to
941	restart.
942
9432021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
944
945	* install-mk (MK_VERSION): 20211011
946
947	* Add support for SCO_SV
948
9492021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
950
951	* install-mk (MK_VERSION): 20211001
952
953	* man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more
954	flexibility
955
9562021-09-13  Simon J Gerraty  <sjg@beast.crufty.net>
957
958	* options.mk (describe-options): print options and their values
959	  and optional description
960
9612021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
962
963	* install-mk (MK_VERSION): 20210911
964
965	* options.mk (show-options): print options and their values
966
9672021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
968
969	* install-mk (MK_VERSION): 20210909
970
971	* lib.mk: apply patch from <daniel@octaforge.org>
972	to fix shared libs on Linux
973
9742021-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
975
976	* install-mk (MK_VERSION): 20210808
977
978	* options.mk: issue warning for WITH_*=no
979
9802021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
981
982	* install-mk (MK_VERSION): 20210616
983
984	* dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find
985	depend files to read, anchor MACHINE at , or end of string
986	to avoid prefix match.
987
9882021-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
989
990	* install-mk (MK_VERSION): 20210504
991
992	* dirdeps.mk: re-implement ALL_MACHINES support to better
993	cater for local complexities, when ONLY_TARGET_SPEC_LIST
994	is not set. local.dirdeps.mk can set
995	DIRDEPS_ALL_MACHINES_FILTER and/or
996	DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get
997	from listing all existing Makefile.depend.*
998
9992021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1000
1001	* install-mk (MK_VERSION): 20210420
1002
1003	* dirdeps.mk: revert previous - not always safe.
1004
10052021-03-20  Simon J Gerraty  <sjg@beast.crufty.net>
1006
1007	* install-mk (MK_VERSION): 20210321
1008
1009	* dirdeps.mk: when generating dirdeps.cache
1010	we only need to hook the initial DIRDEPS to the
1011	dirdeps target.  That and any _build_xtra_dirs (like tests which
1012	should not be hooked directly to the dependency graph - to avoid
1013	cycles)
1014
10152021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
1016
1017	* install-mk (MK_VERSION): 20210130
1018
1019	* dirdeps.mk: expr 2 - 1 - 1 exits with a bad status
1020	  we need to  guard against this in DIRDEP_LOADAVG_REPORT.
1021
1022	* dirdeps.mk: restore respect for TARGET_MACHINE
1023
10242021-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
1025
1026	* install-mk (MK_VERSION): 20210101
1027
1028	* dirdeps.mk: first time we are read, just use TARGET_SPEC for
1029	_DEP_TARGET_SPEC
1030
10312020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1032
1033	* sys.mk (MAKE_SHELL): use ${.SHELL:Ush}
1034	and use := when setting SHELL
1035
10362020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1037
1038	* install-mk (MK_VERSION): 20201221
1039
1040	* dirdeps-options.mk: latest bmake allows only one arg to .undef
1041
10422020-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
1043
1044	* dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS
1045	so that any directory can be treated as a target.
1046
10472020-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
1048
1049	* install-mk (MK_VERSION): 20201126
1050
1051	* own.mk: use .MAKE.{UID,GID} if available.
1052
1053	* init.mk: suppress _SKIP_BUILD warning if doing -V
1054
10552020-11-20  Simon J Gerraty  <sjg@beast.crufty.net>
1056
1057	* install-mk (MK_VERSION): 20201120
1058
1059	* init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS
1060
1061	* dirdeps-targets.mk: fix typo in comment
1062
10632020-11-06  Simon J Gerraty  <sjg@beast.crufty.net>
1064
1065	* install-mk (MK_VERSION): 20201106
1066
1067	* meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed
1068	args to tweak extensions for local deps.
1069
10702020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1071
1072	* install-mk (MK_VERSION): 20201101
1073
1074	* dirdeps.mk: most leaf makefiles are not suitable for building
1075	dirdeps.cache so if RELDIR is not "." use dirdeps.mk
1076
10772020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1078
1079	* install-mk (MK_VERSION): 20201028
1080
1081	* dirdeps.mk: if we don't have :range use equivalent of M_RANGE
1082	when building dirdeps.cache for leaf directory use -f dirdeps.mk
1083
1084	* sys.vars.mk: add M_JOT and M_RANGE
1085
10862020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1087
1088	* install-mk (MK_VERSION): 20201001
1089
1090	* meta2deps.{py,sh}: throw an error if we don't see filemon version
1091
10922020-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
1093
1094	* install-mk (MK_VERSION): 20200909
1095
1096	* dirdeps-cache-update.mk: use cache_update_dirdep as guard target
1097
10982020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1099
1100	* dirdeps.mk: ensure we cannot confuse a static cache for dynamic
1101	(even more rare that use of static cache is playing clever tricks
1102	with it)
1103
11042020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
1105
1106	* dirdeps-cache-update.mk: allow
1107	MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we
1108	actually update STATIC_DIRDEPS_CACHE.
1109
1110	* stage-install.sh: create dest directory if needed
1111	before running install(1)
1112
11132020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
1114
1115	* dirdeps-targets.mk: include Makefile.dirdeps.options
1116
1117	* dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE
1118
11192020-08-09  Simon J Gerraty  <sjg@beast.crufty.net>
1120
1121	* dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty
1122
1123	* dirdeps-cache-update.mk: building parallel cache update
1124	under the context of dirdeps-cached would be ideal, but
1125	is problematic, so it runs as a sibling.
1126	Use cache-built target to ensure we wait for it to complete if
1127	necessary.
1128
11292020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
1130
1131	* install-mk (MK_VERSION): 20200806
1132
1133	* dirdeps-options: allow TARGET_SPEC to affect option values.
1134	Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_*
1135
1136	* dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined
1137	before looking for STATIC_DIRDEPS_CACHE
1138
11392020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
1140
1141	* host-target.mk: Darwin use MACHINE for HOST_ARCH too
1142
1143	* dirdeps-options.mk: improve debug output
1144
11452020-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
1146
1147	* dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE
1148	for use by dirdeps-cache-update.mk
1149
1150	* dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE
1151	for use by dirdeps-cache-update.mk even if we don't use it.
1152
1153	* dirdeps-cache-update.mk: we only need worry about the background
1154	update case, with the above, the update from DIRDEPS_CACHE is
1155	simple.
1156
1157	* meta2deps.py: R 1234 . is not interesting
1158
11592020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
1160
1161	* sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE
1162
1163	* dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS
1164	allows use of lower case for pseudo options.
1165
1166	* dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE
1167
11682020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
1169
1170	* dirdeps-targets.mk: Look for Makefile.dirdeps.cache
1171	which allows us to have a static cache for expensive targets.
1172	Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE
1173	to regenerate the dirdeps.cache it is a copy of.
1174
11752020-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
1176
1177	* Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense.
1178
11792020-07-16  Simon J Gerraty  <sjg@beast.crufty.net>
1180
1181	* dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record
1182	load averages at intervals during build.
1183
11842020-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
1185
1186	* install-mk (MK_VERSION): 20200715
1187
1188	* dirdeps.mk: tweak Checking line to make matching Finished
1189	lines for post-build analysis easier.
1190
1191	* meta.autodep.mk: use !defined(WITHOUT_META_STATS)
1192
1193	* progs.mk: avoid prog.mk outputting multiple Finished lines
1194
11952020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
1196
1197	* dirdeps.mk: further optimize dirdeps.cache
1198	generate a DIRDEPS.${.TARGET} list for other purposes
1199	and improve the layout.
1200
12012020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
1202
1203	* dirdeps.mk: optimize content of dirdeps.cache
1204
12052020-06-28  Simon J Gerraty  <sjg@beast.crufty.net>
1206
1207	* sys/*.mk: make it easier for local*sys.mk to customize by
1208	using ?=
1209
12102020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
1211
1212	* gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0
1213	it is much safer to guard local depends with a simple check for
1214	.MAKE.LEVEL > 0
1215
12162020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
1217
1218	* install-mk (MK_VERSION): 20200610
1219
1220	* mkopt.sh: this needs posix shell so #!/bin/sh should be ok
1221
12222020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
1223
1224	* install-mk (MK_VERSION): 20200606
1225
1226	* dirdeps-targets.mk: allow for filtering of .TARGETS
1227
1228	* meta2deps.py: fix bug in processing 'L'ink and 'M'ove
1229	entries - and we don't care about 'W'rite entries.
1230	Also ignore absolute paths that do not exist.
1231
12322020-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
1233
1234	* install-mk (MK_VERSION): 20200525
1235
1236	* init.mk: expand and simplify handling of qualified vars
1237	like CPPFLAGS.${.TARGET:T}
1238
12392020-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
1240
1241	* install-mk (MK_VERSION): 20200515
1242
1243	* dirdeps.mk: set _debug_* earlier and allow passing -d*
1244	flags to submake when building DIRDEPS_CACHE
1245
12462020-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
1247
1248	* whats.mk: more easily extensible
1249
12502020-05-02  Simon J Gerraty  <sjg@beast.crufty.net>
1251
1252	* whats.mk: greatly simplify by adding what.c to SRCS
1253
12542020-05-01  Simon J Gerraty  <sjg@beast.crufty.net>
1255
1256	* whats.mk: for libs take care how we add to *OBJS
1257
1258	* lib.mk: : works better with whats.mk
1259
12602020-04-25  Simon J Gerraty  <sjg@beast.crufty.net>
1261
1262	* install-mk (MK_VERSION): 20200420
1263
1264	* meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep
1265	contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC}
1266
12672020-04-16  Simon J Gerraty  <sjg@beast.crufty.net>
1268
1269	* install-mk (MK_VERSION): 20200416
1270
1271	* sys/*.mk: set MAKE_SHELL rather than SHELL so as not to
1272	  interfere with user env.
1273
1274	* sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL
1275
1276	* autodep.mk: use MAKE_SHELL.
1277
12782019-11-21  Simon J Gerraty  <sjg@beast.crufty.net>
1279
1280	* gendirdeps.mk: clear .SUFFIXES to avoid a lot of
1281	  wasted effort, and unexport _meta_files when no longer needed as
1282	  it consumes space we need for command line.
1283
12842019-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1285
1286	* dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add
1287	  DIRDEP_USE_PRELUDE at start - facilitates job distribution
1288
12892019-10-04  Simon J Gerraty  <sjg@beast.crufty.net>
1290
1291	* dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST
1292	defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid
1293	TARGET_SPEC qualified depend files.
1294
12952019-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1296
1297	* dirdeps-targets.mk: encapsulate logic for finding top-level
1298	  targets to set initial DIRDEPS for DIRDEPS_BUILD
1299
13002019-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1301
1302	* install-mk (MK_VERSION): 20190911
1303
1304	* compiler.mk: set COMPILER_TYPE
1305
13062019-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
1307
1308	* install-mk (MK_VERSION): 20190704
1309
1310	* sys/Darwin.mk: support for Objective-C and clang
1311
13122019-05-30  Simon J Gerraty  <sjg@beast.crufty.net>
1313
1314	* dirdeps.mk: avoid insanely long command line when generating cache
1315
13162019-05-23  Simon J Gerraty  <sjg@beast.crufty.net>
1317
1318	* install-mk (MK_VERSION): 20190505
1319
1320	* whats.mk: handle corner case SHLIB defined but not LIB
1321
13222018-09-19  Simon J Gerraty  <sjg@beast.crufty.net>
1323
1324	* install-mk (MK_VERSION): 20180919
1325
1326	* dirdeps-options.mk: .undef cannot handle var that expands to
1327	  more than one var.
1328
13292018-07-08  Simon J Gerraty  <sjg@beast.crufty.net>
1330
1331	* meta.stage.mk: allow wildcards in STAGE_FILES.* etc.
1332
13332018-06-01  Simon J Gerraty  <sjg@beast.crufty.net>
1334
1335	* meta.autodep.mk: export META_FILES to avoid command line limit
1336	* gendirdeps.mk: if we have lots of .meta files put them in
1337	  an @list
1338
13392018-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
1340
1341	* dirdeps-options.mk: use local.dirdeps-options.mk
1342	  not local.dirdeps-option.mk
1343
13442018-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1345
1346	* install-mk (MK_VERSION): 20180420
1347	* dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0
1348	  ie. we are building something.
1349
13502018-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
1351
1352	* FILES: add dirdeps-options.mk to deal with optional DIRDEPS.
1353
13542018-04-05  Simon J Gerraty  <sjg@beast.crufty.net>
1355
1356	* install-mk (MK_VERSION): 20180405
1357
1358	* ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER
1359	  if needed.
1360
13612018-01-18  Simon J Gerraty  <sjg@beast.crufty.net>
1362
1363	* install-mk (MK_VERSION): 20180118
1364
1365	* ldorder.mk: let make compute correct link order
1366
13672017-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1368
1369	* install-mk (MK_VERSION): 20171212
1370
1371	* gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER
1372
13732017-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1374
1375	* install-mk (MK_VERSION): 20171111
1376
1377	* lib.mk: ensure META_NOECHO is set
1378
13792017-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1380
1381	* Allow for host32 on rare occasions.
1382
13832017-10-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1384
1385	* install-mk (MK_VERSION): 20171018
1386
1387	* whats.mk: include what_thing in what_uuid to avoid problem
1388	  when building multiple apps in the same directory.
1389
13902017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1391
1392	* install-mk (MK_VERSION): 20170812
1393
1394	* autoconf.mk: Use CONFIGURE_DEPS so Makefile can
1395	  add dependencies for config.recheck and config.gen
1396
13972017-06-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1398
1399	* install-mk (MK_VERSION): 20170630
1400
1401	* meta.stage.mk: avoid triggering stage_* targets with nothing to do.
1402
14032017-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1404
1405	* meta2deps.py: take special care of '..'
1406
14072017-05-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1408
1409	* install-mk (MK_VERSION): 20170515
1410
1411	* dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is
1412	useful/necessary for a Makefile.depend file to export some knobs.
1413	This is complicated when we are doing DIRDEPS_CACHE, so we will
1414	handle export of any variables listed in DEP_EXPORT_VARS.
1415
14162017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1417
1418	* install-mk (MK_VERSION): 20170505
1419
1420	* meta2deps.py: fix botched indenation.
1421
14222017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1423
1424	* sys/*.mk: Remove setting of MAKE it is unnecessary and
1425	  in many cases wrong (basname rather than full path)
1426
1427	* scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk
1428
1429	* init.mk: define realbuild to simplify logic in {lib,prog}.mk etc
1430
14312017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1432
1433	* install-mk (MK_VERSION): 20170501
1434
1435	* doc.mk: fix typo in DOC_INSTALL_OWN
1436
1437	* inc.mk: handle INCGROUPS similar to freebsd
1438
1439	* files.mk: add something for files too
1440
1441	* add staging logic to lib.mk prog.mk etc.
1442
14432017-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1444
1445	* install-mk (MK_VERSION): 20170424
1446
1447	* dirdeps.mk: set NO_DIRDEPS when bootstrapping.
1448	  also target of bootstrap-this when sed is needed should be ${_want:T}
1449
14502017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1451
1452	* install-mk (MK_VERSION): 20170418
1453
1454	* auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a
1455	  prefix match for .CURDIR - in which case .CURDIR *is* __objdir.
1456
14572017-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1458
1459	* install-mk (MK_VERSION): 20170401
1460
1461	* meta2deps.py: add is_src so we can check if obj dependency
1462	  is also a src dependency.
1463
14642017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1465
1466	* install-mk (MK_VERSION): 20170326
1467
1468	* meta.stage.mk: do nothing if NO_STAGING is defined.
1469
14702017-03-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1471
1472	* auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc.
1473
14742017-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1475
1476	* mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_*
1477
14782017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1479
1480	* install-mk (MK_VERSION): 20170301
1481
1482	* dirdeps.mk (_build_all_dirs): update this outside test for empty
1483	  DIRDEPS.
1484
1485	* meta.stage.mk: allow multiple inclusion to the extent it makes
1486	  sense.
1487
14882017-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1489
1490	* prog.mk (install_links): depends on realinstall
1491
14922017-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1493
1494	* install-mk (MK_VERSION): 20170212
1495
1496	* dpadd.mk: avoid applying :T:R twice to DPLIBS entries
1497
14982017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1499
1500	* install-mk (MK_VERSION): 20170130
1501
1502	* dirdeps.mk: use :range if we can.
1503
1504	* sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130
1505
1506	* meta2deps.py: clean paths without using realpath() where possible.
1507	  fix sort_unique.
1508
15092016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1510
1511	* install-mk (MK_VERSION): 20161212
1512
1513	* meta2deps.py: set pid_cwd[pid] when we process 'C'hdir,
1514	rather than when we detect pid change.
1515
15162016-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1517
1518	* install-mk (MK_VERSION): 20161207
1519
1520	* meta.stage.mk: add stage_as_and_symlink for staging packages.
1521	  We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able
1522	  to use foo.tgz to reference the latest staged version - so we
1523	  make foo.tgz a symlink to it.
1524	  Using a target to do both operations ensures we stay in sync.
1525
15262016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1527
1528	* install-mk (MK_VERSION): 20161126
1529
1530	* dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk
1531	  so it can add dependencies.
1532
15332016-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1534
1535	* dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE
1536	  do that they can influence the result correctly.
1537
1538	* dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC
1539
1540	* dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST
1541	  similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST
1542
15432016-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1544
1545	* dirdeps.mk: remove dependence on jot (normal situations anyway).
1546	  Before we read another Makefile.depend* set DEP_* vars from
1547	  _DEP_TARGET_SPEC in case it uses any of them with :=
1548	  When bootstrapping, trim any ,* from extention of chosen _src
1549	  Makefile.depend* to get the machine value we subst for.
1550
15512016-09-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1552
1553	* dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to
1554	  DEP_SKIP_DIR and DEP_DIRDEPS_FILTER
1555
1556	* sys.mk: extract some bits to sys.{debug,vars}.mk
1557	  for easier re-use by others.
1558
15592016-09-23  Simon Gerraty  <sjg@sjg-mba13>
1560
1561	* lib.mk: Use ${PICO} for extension for PIC objects.
1562	  default to .pico (like NetBSD) safe on case insensitive filesystem.
1563
15642016-08-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1565
1566	* meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default
1567
15682016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1569
1570	* install-mk (MK_VERSION): 20160815
1571
1572	* dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only
1573	consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date.
1574
15752016-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1576
1577	* meta.sys.mk (.MAKE.META.IGNORE_PATHS):
1578	  in meta mode we can ignore the mtime of makefiles
1579
15802016-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1581
1582	* install-mk (MK_VERSION): 20160802
1583
1584	* lib.mk (libinstall): depends on beforinstall
1585
1586	* prog.mk (proginstall): depends on beforinstall
1587	  patch from Lauri Tirkkonen
1588
1589	* dirdeps.mk (bootstrap): When bootstrapping; creat
1590	.MAKE.DEPENDFILE_DEFAULT and allow additional filtering via
1591	.MAKE.DEPENDFILE_BOOTSTRAP_SED
1592
1593	* dirdeps.mk: move some comments to where they make sense.
1594
15952016-07-27  Simon J. Gerraty  <sjg@bad.crufty.net>
1596
1597	* dirdeps.mk (DIRDEPS_CACHE): no dirname.
1598
15992016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1600
1601	* install-mk (MK_VERSION): 20160602
1602	* meta.autodep.mk: when passing META_FILES to gendirdeps.mk
1603	  do not apply :T to META_XTRAS
1604	  patch from Bryan Drewery at FreeBSD.org.
1605
16062016-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1607
1608	* install-mk (MK_VERSION): 20160530
1609	* meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH
1610	  make it so.
1611
16122016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1613
1614	* install-mk (MK_VERSION): 20160512
1615
1616	* dpadd.mk: always include local.dpadd.mk if it exists
1617	  remove some things that better belong in local.dpadd.mk
1618	  skip INCLUDES_* for staged libs unless SRC_* defined.
1619
1620	* own.mk: add INCLUDEDIR
1621
16222016-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1623
1624	* dirdeps.mk: when doing -f dirdeps.mk if target suppies no
1625	  TARGET_MACHINE - :E will be empty or match part of path, use
1626	  ${MACHINE}
1627
16282016-04-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1629
1630	* meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to
1631	  NO_FILEMON_COOKIE
1632
1633	* dirdeps.mk: move the logic that allows for
1634	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1635	  inside the check for !target(_DIRDEP_USE)
1636
16372016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1638
1639	* Use <> when including local*.mk and others which may exist
1640	  elsewhere so that user can better control what they get.
1641
1642	* meta.autodep.mk (NO_FILEMON_COOKIE):
1643	  create a cookie if we ever build dir with nofilemon
1644	  so that UPDATE_DEPENDFILE will be forced to NO until cleaned.
1645
16462016-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1647
1648	* install-mk (MK_VERSION): 20160401
1649
1650	* meta2deps.py: fix old print statement when debugging.
1651
1652	* gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X
1653	  patch from Bryan Drewery
1654
16552016-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1656
1657	* install-mk (MK_VERSION): 20160317 (St. Pats)
1658
1659	* warnings.mk: g++ does not like -Wimplicit
1660
1661	* sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the
1662	  pelthora of common suffixes for C++
1663
1664	* lib.mk: use .So for shared objects
1665
16662016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1667
1668	* install-mk (MK_VERSION): 20160315
1669
1670	* meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1)
1671	  normally only applies to scripts.
1672
1673	* dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as
1674	  well as outside it.
1675
16762016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1677
1678	* install-mk (MK_VERSION): 20160310
1679
1680	* dirdeps.mk: use targets rather than a list to track DIRDEPS that
1681	  we have processed; the list gets very inefficient as number of
1682	  DIRDEPS gets large.
1683
1684	* sys.dependfile.mk: fix comment wrt MACHINE
1685
1686	* meta.autodep.mk: ignore staged DPADDs when bootstrapping.
1687	  patch from Bryan Drewery
1688
16892016-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1690
1691	* meta2deps.sh: don't ignore subdirs.
1692	  patch from Bryan Drewery
1693
16942016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1695
1696	* install-mk (MK_VERSION): 20160226
1697
1698	* gendirdeps.mk: mark _DEPENDFILE .NOMETA
1699
17002016-02-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1701
1702	* dirdeps.mk: we shouldn't normally include .depend but if we do
1703	  use .dinclude if we can.
1704
17052016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1706
1707	* install-mk (MK_VERSION): 20160218
1708	* sys.clean-env.mk: with recent change to Var_Subst()
1709	  we cannot use the '$$' trick, but .export-literal does the job
1710	  we need.
1711	* auto.dep.mk: make use .dinclude if we can.
1712
1713
17142016-02-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1715
1716	* dirdeps.mk:
1717	  Add _build_all_dirs such that local.dirdeps.mk can
1718	  add fully qualified dirs to it.
1719	  These will be built normally but the current
1720	  DEP_RELDIR will not depend on then (to avoid cycles).
1721	  This makes it easy to hook things like unit-tests into build.
1722
1723
17242016-01-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1725
1726	* dirdeps.mk: add bootstrap-empty
1727
17282015-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1729
1730	* install-mk (MK_VERSION): 20151212
1731	* auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist.
1732	  only apply :tA to __objdir when comparing to .OBJDIR
1733
17342015-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1735
1736	* install-mk (MK_VERSION): 20151111
1737
1738	* meta.sys.mk: include sys.dependfile.mk
1739
1740	* sys.mk (OPTIONS_DEFAULT_NO): use options.mk
1741	  to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD
1742	  include local.sys.env.mk early
1743	  include local.sys.mk later
1744
1745	* own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk
1746
17472015-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1748
1749	* meta.sys.mk (META_COOKIE_TOUCH):
1750	  add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie
1751
1752	* meta.stage.mk: stage_libs should ignore SYMLINKS.
1753
17542015-10-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1755
1756	* install-mk (MK_VERSION): 20151022
1757
1758	* sys.mk: BSD/OS does not have 'type' as a shell builtin.
1759
17602015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1761
1762	* install-mk (MK_VERSION): 20151020
1763
1764	* dirdeps.mk: Add logic for
1765	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1766
17672015-10-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1768
1769	* install-mk (MK_VERSION): 20151010
1770
17712015-10-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1772
1773	* meta.stage.mk: use staging: ${STAGE_TARGETS:...
1774	  to have stage_lins run last in non-jobs mode.
1775	  Use .ORDER only for jobs mode.
1776
17772015-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1778
1779	* rst2htm.mk: allow for per target flags etc.
1780
17812015-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1782
1783	* install-mk (MK_VERSION): 20150901
1784
1785	* doc.mk: create dir if needed use DOC_INSTALL_OWN
1786
17872015-06-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1788
1789	* install-mk (MK_VERSION): 20150615
1790
1791	* auto.obj.mk: allow use of MAKEOBJDIRPREFIX too.
1792	  Follow make's normal precedence rules.
1793
1794	* gendirdeps.mk: allow customization of the header.
1795	  eg. for FreeBSD:
1796	  GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}';
1797
1798	* meta.autodep.mk: ignore dirdeps.cache*
1799
1800	* meta.stage.mk: when bootstrapping options it can be handy to
1801	  throw warnings rather than errors for staging conflicts.
1802
1803	* meta.sys.mk: include local.meta.sys.mk for customization
1804
18052015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1806
1807	* install-mk (MK_VERSION): 20150606
1808
1809	* dirdeps.mk: don't rely on manually maintained Makefile.depend
1810	  to set DEP_RELDIR and reset DIRDEPS.
1811	  By setting DEP_RELDIR ourselves we can skip :tA
1812
1813	* gendirdeps.mk: skip setting DEP_RELDIR.
1814
18152015-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1816
1817	* dirdeps.mk: avoid wildcards like make(bootstrap*)
1818
18192015-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1820
1821	* install-mk (MK_VERSION): 20150520
1822
1823	* dirdeps.mk: when we are building dirdeps cache file we *want*
1824	  meta_oodate to look at all the Makefile.depend files, so
1825	  set .MAKE.DEPENDFILE to something that won't match.
1826
1827	* meta.stage.mk: for STAGE_AS_* basename of file may not be unique
1828	  so first use absolute path as key.
1829	  Also skip staging at level 0.
1830
18312015-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1832
1833	* install-mk (MK_VERSION): 20150430
1834
1835	* dirdeps.mk: fix _count_dirdeps for non-cache case.
1836
18372015-04-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1838
1839	* install-mk (MK_VERSION): 20150411
1840	  bump version
1841
1842	* own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES.
1843	  it is here mainly for documentation purposes, since
1844	  if using auto.obj.mk it is better done via sys.mk
1845
18462015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1847
1848	* install-mk (MK_VERSION): 20150401
1849
1850	* meta2deps.sh: support @list
1851
1852	* meta2deps.py: updates from Juniper
1853	  o add EXCLUDES
1854	  o skip bogus input files.
1855	  o treat 'M' and 'L' as both an 'R' and a 'W'
1856
18572015-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1858
1859	* install-mk (MK_VERSION): 20150303
1860
1861	* dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache
1862	  which is built via sub-make so we have a .meta file to tell if
1863	  it is out-of-date.
1864	  The dirdeps-cache contains the same dependency rules that we
1865	  normaly construct on the fly.
1866	  This adds a few seconds overhead when the cache is out of date,
1867	  but for a large target, the savings can be significant (10-20min).
1868
18692014-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1870
1871	* install-mk (MK_VERSION): 20141118
1872
1873	* meta.stage.mk: add stale_staged
1874
1875	* dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked
1876	  only useful under very rare conditions such as
1877	  FreeBSD's make universe.
1878
1879	* auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto
1880
18812014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1882
1883	* install-mk (MK_VERSION): 20141111
1884
1885	* mkopt.sh: use consistent semantics for _mk_opt and _mk_opts
1886
18872014-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1888
1889	* FILES: include mkopt.sh which allows handling options in shell
1890	  scripts in a manner compatible with options.mk
1891
18922014-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1893
1894	* meta.stage.mk: ensure only _STAGED_DIRS under objroot are used
1895	  for GENDIRDEPS_FILTER to avoid surprises.
1896
18972014-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1898
1899	* dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by
1900	  the time it is applied to __depdirs they have.
1901
1902	* dirdeps.mk fix filtering of _machines since M_dep_qual_fixes
1903	  expects patterns like *.${MACHINE}
1904
1905	* cython.mk (pyprefix?): use pyprefix to find python bits
1906	  since prefix might be something else (where we install our
1907	  stuff)
1908
19092014-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1910
1911	* install-mk (MK_VERSION): 20140911
1912
1913	* dirdeps.mk: add bootstrap target to simplify adding support for
1914	  new MACHINE.
1915
19162014-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1917
1918	* gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and
1919	  GENDIRDEPS_FILTER_VARS to make it easier to produce sharable
1920	  Makefile.depend files.
1921
19222014-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1923
1924	* install-mk (MK_VERSION): 20140828
1925
1926	* cython.mk: capture logic for building python extension modules
1927	  with Cython.
1928
19292014-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1930
1931	* meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant
1932
19332014-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1934
1935	* install-mk (MK_VERSION): 20140801
1936
1937	* dep.mk: use explicit MKDEP_MK rather than overload MKDEP to
1938	identify the autodep.mk variant.
1939
1940	* sys.dependfile.mk: delete .MAKE.DEPENDFILE if its
1941	initial value does not match .MAKE.DEPENDFILE_PREFIX
1942
1943	* meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS
1944
19452014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1946
1947	* install-mk (MK_VERSION): 20140522
1948
1949	* lib.mk: use CC to link shlib for linux too
1950	  patch from Brendan MacDonell
1951
19522014-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1953
1954	* meta.autodep.mk: add _reldir_{finish,failed} for gathering stats
1955	  if WITH_META_STATS is defined.
1956
19572014-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1958
1959	* dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS)
1960	  to supress dirdeps outside of .CURDIR.
1961
19622014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1963
1964	* Fix spelling errors - patch from Pedro Giffuni
1965
19662014-03-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1967
1968	* install-mk (MK_VERSION): 20140314
1969
1970	* dirdeps.mk (beforedirdeps): a handy hook
1971
1972	* dirdeps.mk (DIRDEP_MAKE): allow the actual command we run
1973	  to visit leaf dirs to be intercepted (eg. for distributed
1974	  build).
1975
1976	* dirdeps.mk (__depdirs): ensure // don't sneak in
1977
1978	* gendirdeps.mk (DIRDEPS): ensure // don't sneak in
1979
1980
19812014-02-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1982
1983	* rst2htm.mk (RST2PDF): add support for rst2pdf
1984
19852014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1986
1987	* install-mk (MK_VERSION): bump version
1988	* dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if
1989	  available.
1990
19912014-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1992
1993	* options.mk: avoid :U so this isn't bmake dependent
1994
19952014-02-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1996
1997	* options.mk: cleanup and simplify semanitcs
1998	  NO_* dominates all, if both WITH_* and WITHOUT_*
1999	  are defined then result is DOMINATE_* which defaults to "no".
2000	  Ie. WITHOUT_ normally wins.
2001
20022013-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2003
2004	* install-mk (MK_VERSION): bump version
2005	* meta2deps.py: convert to print function for python3 compat.
2006	  we also need to open files with mode 'r' rather than 'rb'
2007	  otherwise we get bytes instead of strings.
2008
20092013-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2010
2011	* install-mk (MK_VERSION): bump version
2012
2013	* dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE
2014	  apply the same filtering (M_dep_qual_fixes) when setting _machines
2015	  as _build_dirs.
2016	  Also fix the filtering of Makefile.depend files - for reporting
2017	  what we are looking for (M_dep_qual_fixes can get confused by
2018	  Makefile.depend)
2019	  Add some more debug info.
2020
20212013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2022
2023	* gendirdeps.mk (_objtops): fix typo also
2024	  while processing M2D_OBJROOTS to gather qualdir_list
2025	  qualify $ql with loop iterator to ensure correct results.
2026
20272013-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2028
2029	* install-mk (MK_VERSION): 20130801
2030	* libs.mk: update to match progs.mk
2031
20322013-07-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2033
2034	* install-mk (MK_VERSION): 20130726
2035	  some updates from Juniper and FreeBSD
2036	  o meta2deps.py: indicate file and line number when we hit parse
2037	    errors
2038	    also allow @file to provide huge list of .meta files.
2039	* meta2deps.py: add try_parse() to cleanup the above.
2040
20412013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2042
2043	* install-mk (MK_VERSION): 20130716
2044	* own.mk: add GPROG as an option
2045	* prog.mk: honor MK_GPROF==yes
2046
20472013-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2048
2049	* install-mk (MK_VERSION): 20130505
2050	* gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC
2051	  for when $MACHINE isn't enough for objdir distinction.
2052	  Bring meta2deps.sh closer to par with meta2deps.py.
2053
20542013-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2055
2056	* meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all'
2057	  also if the target 'beforeinstall' exists, make it depend on
2058	  .dirdep (incase it uses STAGE_INSTALL).
2059
20602013-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2061
2062	* install-mk (MK_VERSION): 20130401 ;-)
2063	* meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as
2064	  wrapper around install(1).
2065	* options.mk (OPTION_PREFIX): Allow a prefix other than MK_
2066
20672013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2068
2069	* meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized.
2070	* install-mk (MK_VERSION): bump version
2071
20722013-03-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2073
2074	* install-mk (MK_VERSION): bump version
2075	* gendirdeps.mk: do not apply :tA to DPADD entries, since we lose
2076	  any trailing /., rather apply :tA only when needed.
2077	* gendirdeps.mk: better mimic meta2deps handling of .dirdep files.
2078	* meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance
2079	  consistently.
2080	* dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC.
2081
20822013-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2083
2084	* gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT
2085	  it is simpler to just not update when say building for "host"
2086	  (where we know we apply filters to DIRDEPS), and using a
2087	  non-machine qualified dependfile.
2088
20892013-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2090
2091	* dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR
2092	  and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC
2093	* gendirdeps.mk: ensure _objroot has trailing / if it needs it.
2094	* meta2deps.py: if machine is "host", then also trim
2095	  self.host_target from any OBJROOTS.
2096
2097
20982013-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2099
2100	* gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine
2101	  qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists
2102	  but _DEPENDFILE does not, compare the new _DEPENDFILE against
2103	  .MAKE.DEPENDFILE_DEFAULT and discard if the same.
2104
21052013-03-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2106
2107	* meta.stage.mk: use STAGE_TARGETS to control .ORDER
2108	  and hook to all: via staging:
2109
21102013-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2111
2112	* sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT):
2113	  use a separate variable for the default .MAKE.DEPENDFILE value
2114	  so that it can be controlled independently of
2115	  .MAKE.DEPENDFILE_PREFERENCE
2116
2117	* meta.stage.mk: throw error if cp fails etc.
2118	  Stage*() return early if passed no args.
2119	  .ORDER stage_*
2120
21212013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2122
2123	* install-mk (MK_VERSION): bump version
2124	* gendirdeps.mk: handle multiple M2D_OBJROOTS better.
2125
21262013-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2127
2128	* install-mk (MK_VERSION): bump version to 20130210
2129	* import latest dirdeps.mk, gendirdeps.mk and meta2deps.py
2130	  from Juniper.
2131	  o dirdeps.mk now fully supports TARGET_SPEC consisting of more
2132	    than just MACHINE.
2133	  o no longer use DEP_MACHINE from Makefile.depend* so remove it.
2134
21352013-01-23  Simon J. Gerraty  <sjg@bad.crufty.net>
2136
2137	* install-mk (MK_VERSION): bump version to 20130123
2138	* meta.stage.mk: add stage_links (hard links).
2139	  if doing hard links, we add dest to link as well.
2140	  Default the stage dir for [sym]links to STAGE_OBJTOP since
2141	  these are typically specified as absolute paths.
2142	  Add -m "mode" flag to StageFiles and StageAs.
2143
21442012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2145
2146	* install-mk (MK_VERSION): bump version to 20121111
2147	* autoconf.mk: avoid meta mode seeing changed commands for config.status
2148	* meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps
2149	  in case we were found via .../mk
2150	* sys.clean-env.mk: move it from examples, we and others use it
2151	  "as is".
2152	* FILES: add srctop.mk and options.mk
2153	* own.mk: convert to using options.mk
2154	  which is modeled after FreeBSD's handling of MK_*
2155	  but more flexible.
2156	  This allows MK_* for boolean knobs to not be confused
2157	  with MK* which can be commands.
2158
2159	* examples/sys.clean-env.mk: add WITH[OUT]_ to
2160	  MAKE_ENV_SAVE_PREFIX_LIST.
2161	  Mention that HOME=/var/empty might be a good idea.
2162
21632012-11-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2164
2165	* sys.dependfile.mk: if not depend file exists, $MACHINE
2166	  specific ones are supported but not the default,
2167	  check if any exist and follow suit.
2168
21692012-11-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2170
2171	* install-mk (MK_VERSION): bump version to 20121106
2172
21732012-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2174
2175	* import latest dirdeps.mk and meta2deps.py from Juniper.
2176	* progs.mk: add MAN and CXXFLAGS to PROG_VARS
2177	  also add PROGS_TARGETS and pass on PROG_CXX if it seems
2178	  appropriate.
2179
21802012-11-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2181
2182	* meta.stage.mk: update CLEANFILES
2183	  remove redundant cp of .dirdep from STAGE_AS_SCRIPT.
2184	* progs.mk: Add LDADD to PROG_VARS
2185
21862012-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2187
2188	* meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in
2189	  _STAGED_DIRS so that these can be turned into filters for
2190	  GENDIRDEPS_FILTER.
2191
21922012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2193
2194	* install-mk (MK_VERSION): bump version to 20121010
2195	* meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing
2196	target.dirdep matches .dirdep
2197
21982012-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2199
2200	* install-mk (MK_VERSION): bump version to 20120808
2201	* import latest meta2deps.py from Juniper.
2202
22032012-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2204
2205	* install-mk (MK_VERSION): bump version to 20120711
2206	* dep.mk: add explicit dependencies on SRCS after applying
2207	  SRCS_DEP_FILTER
2208	* meta.autodep.mk: add explicit dependencies on SRCS after
2209	  applying SRCS_DEP_FILTER
2210	* meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed.
2211
22122012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2213
2214	* install-mk (MK_VERSION): bump version to 20120626
2215	* meta.sys.mk: ignore PYTHON if it does not exist
2216	  compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable.
2217	* meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any
2218	  entries ending in .${MACHINE} to decide if qualified _dirdep is
2219	  needed.
2220	* gendirdeps.mk: only produce unqualified deps if no
2221	  .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE}
2222	* meta.subdir.mk: apply SUBDIRDEPS_FILTER
2223
22242012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2225
2226	* install-mk (MK_VERSION): bump version to 20120420
2227	* add sys.dependfile.mk so we can experiment with
2228	  .MAKE.DEPENDFILE_PREFERENCE
2229	* meta.autodep.mk: _DEPENDFILE is precious!
2230
22312012-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2232
2233	* install-mk (MK_VERSION): bump version to 20120315
2234	* install-new.mk: avoid being interrupted
2235
22362012-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2237
2238	* man.mk: MAN might have multiple values so be careful with exists().
2239
22402012-01-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2241
2242	* install-mk (MK_VERSION): bump version to 20120112
2243	* fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled
2244	  as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}'
2245
22462011-12-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2247
2248	* install-mk (MK_VERSION):  bump version to 20111201
2249	* import dirdeps.mk from Juniper sjg@
2250	  o more consistent handling of DEP_MACHINE, especially when
2251	    dealing with an odd Makefile.depend, when normally using
2252	    Makefile.depend.${MACHINE}
2253
22542011-11-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2255
2256	* install-mk (MK_VERSION): bump version to 20111122
2257	* meta.autodep.mk: add some debug output, be more crisp about
2258	  updating.  Use ${.ALLTARGETS:M*.o} as a clue for .depend
2259
22602011-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2261
2262	* install-mk (MK_VERSION): bump version to 20111111
2263	  it's too cool to miss
2264	* import meta* updates from Juniper sjg@
2265	  o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are
2266	    normally using Makefile.depend.${MACHINE}), handy for
2267	    read-only manually maintained dependencies.
2268	  o meta2deps.py add a clear 'ERROR:' token if an exception is raised.
2269	  o gendirdeps.mk if ERROR: from meta2deps.py do not update
2270	    anything.
2271
22722011-10-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2273
2274	* install-new.mk separate the cmp and copy logic to its own function.
2275
22762011-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2277
2278	* install-mk (MK_VERSION): bump version to 20111028
2279	* sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto
2280	* subdir.mk: ensure _SUBDIRUSE is provided
2281	* meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk
2282	* meta.subdir.mk: always allow for Makefile.depend
2283
22842011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2285
2286	* install-mk (MK_VERSION): bump version to 20111010
2287	  o minor tweak to *dirdeps.mk from Juniper sjg@
2288
22892011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2290
2291	* install-mk (MK_VERSION): bump version to 20111001
2292	  o add meta2deps.py from Juniper sjg@
2293	  o tweak gendirdeps.mk to work with meta2deps.py when not
2294	    cross-building
2295	* autoconf.mk: add autoconf-input as a hook for regenerating
2296	  AUTOCONF_INPUTS (configure).
2297
22982011-08-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2299
2300	* meta.autodep.mk: if we do not have OBJS, .depend isn't a useful
2301	  trigger for updating Makefile.depend*
2302
23032011-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2304
2305	* install-mk (MK_VERSION): bump version to 20110808
2306	* obj.mk: minor cleanup
2307	* auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too.
2308
23092011-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2310
2311	* auto.obj.mk (.OBJDIR): throw an error if we cannot use the
2312	  specified dir.
2313
23142011-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2315
2316	* meta.autodep.mk: if XMAKE_META_FILE is set
2317	  the makefile uses a foreign make, and so dependencies
2318	  can only be gathered from a clean tree build.
2319
23202011-06-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2321
2322	* install-mk (MK_VERSION): bump version to 20110622
2323	* meta.autodep.mk: improve bootstraping
2324
23252011-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2326
2327	* yacc.mk: handle the corner case of .c being removed
2328	  while .h remains.
2329
23302011-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2331
2332	* yacc.mk: do .y.h and .y.c separately
2333
23342011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2335
2336	* install-mk (MK_VERSION): bump version to 20110606
2337	* don't store SRC_DIRDEPS in Makefile.depend* by default
2338	  not everyone needs it.
2339
23402011-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2341
2342	* install-mk (MK_VERSION): bump version to 20110505
2343	  first release including meta mode makefiles
2344
23452011-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2346
2347	* meta.stage.mk: add STAGE_AS_SETS and stage_as
2348	  for things that need to be staged with different names.
2349
23502011-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2351
2352	* meta.stage.mk: add notion of STAGE_SETS
2353	  so a makefile can stage to multiple dirs
2354
23552011-04-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2356
2357	* rst2htm.mk: convert rst to s5 (slides) or plain html depending
2358	  on target name.
2359
23602011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2361
2362	* install-mk (MK_VERSION): bump version to 20110330
2363
23642011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
2365
2366	* sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0
2367	  can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest.
2368	* sys.mk: re-define M_whence in terms of M_type.
2369	  M_type is useful for checking if something is a builtin.
2370
23712011-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2372
2373	* meta.stage.mk: add stage_symlinks and leverage StageLinks for
2374	  stage_libs
2375
23762011-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2377
2378	* dirdeps.mk: correct value for _depdir_files depends on
2379	  .MAKE.DEPENDFILE
2380	  Add our copyright - just to make it clear we have frobbed this
2381	  quite a bit.
2382	  DEP_MACHINE needs to be set to MACHINE each time, if using only
2383	  Makefile.depend (cf. Makefile.depend.${MACHINE})
2384
2385	* meta.stage.mk: meta mode version of staging
2386
2387	* init.mk, final.mk: include local.*.mk to simplify customization
2388
23892011-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2390
2391	* auto.obj.mk: just because we are doing mk destroy, we should
2392	  still set .OBJDIR correctly if it exists.
2393
2394	* install-mk (mksrc): do not exclude meta.sys.mk
2395
23962011-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2397
2398	* host-target.mk: set/export _HOST_ARCH etc separately,
2399	  catch junk resulting from uname -p, so we can find sys/Linux.mk
2400	  correctly.
2401
24022011-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2403
2404	* meta.sys.mk: throw an error if /dev/filemon is missing and we
2405	  expected to be updating Makefile.depend*
2406
24072011-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2408
2409	* install-mk (MK_VERSION): bump version to 20110214
2410	* meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES
2411
24122010-09-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2413
2414	* meta.sys.mk: not valid for older bmake
2415
24162010-09-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2417
2418	* install-mk (MK_VERSION): bump version to 20100919
2419	include dirdeps.mk et al from Juniper Networks,
2420	for meta mode - requires filemon(9).
2421	* sys.mk, subdir.mk: Add hooks for meta mode.
2422	we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk
2423	to make turning it on/off simple.
2424
24252010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2426
2427	* install-mk (MK_VERSION): bump version to 20100616
2428	* fix typo in sys.mk
2429
24302010-06-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2431
2432	* install-mk (MK_VERSION): bump version to 20100612
2433	* lib.mk: remove duplicate addition to SOBJS
2434
24352010-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2436
2437	* sys.mk: Add a means of selectively turning on debug flags.
2438	  Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg"
2439	  will act as if we did make -dv if .CURDIR ends in lib/sjg
2440	  DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at
2441	  the start of sys.mk rather than the end.
2442	  This only makes sense for leaf dirs, so we check that
2443	  .MAKE.LEVEL > 0
2444
24452010-06-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2446
2447	* install-mk (MK_VERSION): bump version to 20100608
2448	* sys.mk: include sys.env.mk later so it can use M_ListToSkip et al.
2449	* examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606
2450	  also make it easier for folk to tweak
2451
24522010-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2453
2454	* install-mk (MK_VERSION): bump version to 20100606
2455	  do not install examples/*
2456	* FILES: add examples/sys.clean-env.mk
2457	* examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR
2458	  this requires bmake-20100606 or later to work.
2459
24602010-05-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2461
2462	* sys.mk (M_tA): better simulate the result of :tA if not available.
2463
24642010-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2465
2466	* sys.mk: canonicalize MAKE_VERSION
2467	  old versions reported bmake-<src-date> build-<build-date>
2468	  whereas we only care about <src-date>
2469
24702010-04-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2471
2472	* install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored
2473	* lib.mk: we only build the shared lib if SHLIB_FULLVERSION
2474	  is !empty
2475
24762010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2477
2478	* dpadd.mk: use LDADD_* if defined.
2479
24802010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2481
2482	* install-mk (MK_VERSION): bump version to 20100420
2483	* sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy
2484	* autoconf.mk allow AUTO_AUTOCONF
2485
24862010-04-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2487
2488	* obj.mk: add objwarn to keep freebsd makefiles happy
2489	* auto.obj.mk: ensure Mkdirs is available.
2490	* FILES: add auto.dep.mk - a simpler version of autodep.mk
2491	* dep.mk: auto.dep.mk does not do 'make depend' so ignore it if
2492	  asked to do that.
2493	  fix/simplify the tests for when to run mkdep.
2494	* auto.dep.mk: add some explanation of how/what we do.
2495	* autodep.mk: skip the .OPTIONAL frobbing of .depend
2496	  bmake's FROM_DEPEND flag makes it redundant.
2497
24982010-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2499
2500	* install-mk (MK_VERSION): bump version to 20100404
2501	* subdir.mk: protect from multiple inclusion using _SUBDIRUSE.
2502	* obj.mk: protect from multiple inclusion even as bsd.obj.mk
2503	Also create a target _SUBDIRUSE so that we can  be used without
2504	subdir.mk
2505
25062010-04-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2507
2508	* dep.mk: use <> when .including so can override.
2509
25102010-01-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2511
2512	* lib.mk (SHLIB_LINKS): ensure a string comparison.
2513
25142010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2515
2516	* install-mk (MK_VERSION): bump version to 20100102
2517	* own.mk: ensure PRINTOBJDIR works
2518	* autoconf.mk: pass on CONFIGURE_ARGS
2519	* init.mk: handle COPTS.${.IMPSRC:T} etc.
2520	* lib.mk: allow sys.mk to control SHLIB_FULLVERSION
2521	  fix handling of symlinks for darwin
2522	* libnames.mk: add DSHLIBEXT for libs which only exist as shared.
2523	* man.mk: suppress chown when not root.
2524	* rst2htm.mk: allow srcs from multiple locations.
2525	* sys.mk: M_whence, stop after 1st line of output.
2526	* sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT
2527	* sys/SunOS.mk: we need to export PATH
2528
25292009-12-23  Simon J. Gerraty  <sjg@void.crufty.net>
2530
2531	* install-mk (MK_VERSION): bump version
2532	  include rst2htm.mk
2533
25342009-12-17  Simon J. Gerraty  <sjg@void.crufty.net>
2535
2536	* sys.mk,libnames.mk add .-include <local.*>
2537	  this allows local customization without the need to edit the
2538	  distributed files.
2539
25402009-12-14  Simon J. Gerraty  <sjg@void.crufty.net>
2541
2542	* dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up
2543	  older versions already installed.
2544
25452009-12-13  Simon J. Gerraty  <sjg@void.crufty.net>
2546
2547	* stage.mk (.stage-install): generalize lib.mk's .libinstall
2548	* rules.mk rules for generic Makefile.
2549	* inc.mk install for includes.
2550
25512009-12-11  Simon J. Gerraty  <sjg@void.crufty.net>
2552
2553	* sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check
2554	  this, so provide it if using native make.
2555
25562009-12-10  Simon J. Gerraty  <sjg@void.crufty.net>
2557
2558	* FILES: move all the platform *.sys.mk files to sys/*.mk
2559	* Rename Generic.sys.mk to sys.mk - we always want it.
2560
25612009-11-17  Simon J. Gerraty  <sjg@void.crufty.net>
2562
2563	* install-mk (MK_VERSION): bump version
2564	* host-target.mk: only export the expensive stuff
2565	* Generic.sys.mk (sys_mk): for SunOS we need to look for
2566	  ${HOST_OS}.${HOST_OSMAJOR} too!
2567
25682009-11-07  Simon J. Gerraty  <sjg@void.crufty.net>
2569
2570	* install-mk (MK_VERSION): bump version
2571	* lib.mk: if sys.mk doesn't give us an lorder, don't use it.
2572	  based on patch from Greg Olszewski.
2573	* Generic.sys.mk: if we have nothing to work with
2574	set LORDER etc only if we can find it.
2575
25762009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
2577
2578	* install-mk (MK_VERSION): bump version
2579	* man.mk: cleanman: remove CLEANMAN if defined.
2580
25812009-09-04  Simon J. Gerraty  <sjg@void.crufty.net>
2582
2583	* SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk
2584
25852009-07-17  Simon J. Gerraty  <sjg@void.crufty.net>
2586
2587	* install-mk (MK_VERSION): bump version
2588	include auto.obj.mk
2589
2590
25912009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
2592
2593	* prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail.
2594
25952008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
2596
2597	* install-mk (MK_VERSION): bump version
2598	man.mk: ensure we generate *.cat1 etc in .
2599
26002008-07-16  Simon J. Gerraty  <sjg@void.crufty.net>
2601
2602	* install-mk (MK_VERSION): bump version
2603	add prlist.mk
2604
26052007-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
2606
2607	* Generic.sys.mk: Allow os specific sys.mk to be in a
2608	subdir of ${.PARSEDIR}
2609
26102007-11-22  Simon J. Gerraty  <sjg@void.crufty.net>
2611
2612	* install-mk (MK_VERSION): bump version
2613	* general cleanup
2614	* dpadd.mk introduce DPMAGIC_LIBS_*
2615
26162007-04-30  Simon J. Gerraty  <sjg@void.crufty.net>
2617
2618	* install-mk (MK_VERSION): bump version
2619
2620	* libs.mk, progs.mk, autodep.mk: allow for per lib/prog
2621	depend files and ensure clean is called for each lib/prog.
2622
26232007-03-27  Simon J. Gerraty  <sjg@void.crufty.net>
2624
2625	* autodep.mk (.depend): delete lines that do not start with
2626	space and do not contain ':'
2627
26282007-02-16  Simon J. Gerraty  <sjg@void.crufty.net>
2629
2630	* autodep.mk (.depend): gcc may wrap lines if pathnames are long
2631	so make sure the transform for .OPTIONAL copes.
2632
26332007-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2634
2635	* install-mk (MK_VERSION): bump version
2636
2637	* own.mk: make sure RM and LN are defined.
2638
2639	* obj.mk: fix a typo, and objlink target.
2640
26412006-12-30  Simon J. Gerraty  <sjg@void.crufty.net>
2642
2643	* install-mk (MK_VERSION): bump version
2644	* added libs.mk - analogous to progs.mk
2645	  make both of them always inlcude {lib,prog}.mk
2646
26472006-12-28  Simon J. Gerraty  <sjg@void.crufty.net>
2648
2649	* progs.mk: add a means of building multiple apps in one dir.
2650
26512006-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
2652
2653	* install-mk (MK_VERSION): bump version to 20061126
2654
2655	* warnings.mk: detect invalid WARNINGS_SET
2656
2657	* warnings.mk: use ${.TARGET:T:R}.o when looking for target
2658	specific warnings.
2659
2660	* For .cc sources, turn off warnings that g++ vomits on.
2661
26622006-11-08  Simon J. Gerraty  <sjg@void.crufty.net>
2663
2664	* own.mk: if __initialized__ target doesn't exist and we are
2665	FreeBSD we got here directly from sys.mk
2666
26672006-11-06  Simon J. Gerraty  <sjg@void.crufty.net>
2668
2669	* install-mk (MK_VERSION): bump version to 20061106
2670	add scripts.mk
2671
26722006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
2673
2674	* install-mk (MK_VERSION): bump version to 20060318
2675
2676	* autodep.mk: avoid := when modifying OBJS into __dependsrcs
2677
26782006-03-02  Simon J. Gerraty  <sjg@void.crufty.net>
2679
2680	* install-mk (MK_VERSION): bump version to 20060302
2681	* autodep.mk: use -MF et al to help gcc+ccache DTRT.
2682
26832006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
2684
2685	* install-mk (MK_VERSION): bump version to 20060301
2686	* autodep.mk (.depend):
2687	if MAKE_VERSION is newer than  20050530 we can make .END depend on
2688	.depend and make .depend depend on __depsrcs that exist.
2689	* dpadd.mk: add SRC_PATHADD
2690
26912005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
2692
2693	* install-mk (MK_VERSION): bump version to 20051104
2694	* prog.mk: remove all the LIBC?= junk, use
2695	.-include libnames.mk instead (none by default).
2696	also if USE_DPADD_MK is set, include that.
2697
26982005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2699
2700	* install-mk (MK_VERSION): bump version to 20051001
2701	Add UnixWare.sys.mk from Klaus Heinz.
2702
27032005-04-05  Simon J. Gerraty  <sjg@void.crufty.net>
2704
2705	* install-mk: always install *.sys.mk and if need be symlink one
2706	to sys.mk
2707
27082005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
2709
2710	* subdir.mk, own.mk: use .MAKE rather than MAKE
2711
27122004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
2713
2714	* own.mk: don't use NetBSD's _SRC_TOP_ it can
2715	cause confusion.  Also don't take just 'mk' as a
2716	srctop indicator.
2717
27182004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
2719
2720	* warnings.mk: overhauled, now very powerful.
2721
27222004-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2723
2724	* Generic.sys.mk: need to use ${.PARSEDIR} with exists().
2725
27262004-02-01  Simon J. Gerraty  <sjg@void.crufty.net>
2727
2728	* install-mk (MK_VERSION): bump version to 20040201
2729	* extract HOST_TARGET stuff to host-target.mk so own.mk and
2730	Generic.sys.mk can share.
2731	* fix typo in autodep.mk _SUBDIRUSE not _SUBDIR.
2732
27332003-09-30  Simon J. Gerraty  <sjg@void.crufty.net>
2734
2735	* install-mk (MK_VERSION): 20030930
2736	* rename generic.sys.mk to Generic.sys.mk
2737	so that it does not get installed (unless being used as sys.mk)
2738	* set OS and ROOT_GROUP for those that we know the value.
2739	for others (eg. Generic.sys.mk) wrap the != in an .ifndef so
2740	we don't do it again for each sub-make.
2741
27422003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
2743
2744	* install-mk (MK_VERSION): 20030928
2745	Add some extra *.sys.mk from bootstrap-pkgsrc
2746	some of these likely still need work.
2747	Make everything default to root:wheel ownership,
2748	sys.mk can set ROOT_GROUP accordingly.
2749
27502003-08-07  Simon J. Gerraty  <sjg@void.crufty.net>
2751
2752	* install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR
2753	not the portable ones.
2754
27552003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
2756
2757	* install-mk: add ability to use cp -f when updating
2758	destination .mk files.  Also now possible to play games with
2759	FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk
2760	into dest - not recommended unless you seriously want to.
2761
27622003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
2763
2764	* own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc
2765	for semi-compatability with NetBSD.
2766
27672003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
2768
2769	* install-mk: add a version indicator
2770
27712003-07-22  Simon J. Gerraty  <sjg@void.crufty.net>
2772
2773	* prog.mk: don't try and use ${LIBCRT0} if its /dev/null
2774
2775	* install-mk: Allow FORCE_SYS_MK to come from env
2776
2777
2778
2779