xref: /freebsd/contrib/bmake/mk/ChangeLog (revision 1729d2f741a12a42c61ed5308ee156a0d1cd1918)
12026-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* gendirdeps.mk: also apply ':S,/$,,' and ':C,/(\.[^.]*)$,\1,'
4	when setting DIRDEPS prior to saving.
5
6	* dirdeps.mk: when debugging it is handy to be able to skip
7	recursing so if DEBUG_DIRDEPS contains 'norecurse' we will only
8	process the immediate DIRDEPS.
9	Also if DEBUG_DIRDEPS contains '-V' we process sections normally
10	skipped when doing 'make -V'.
11	o ensure we do not get duplicate build dirs due to someone
12	adding a trailing '/' or '/.${TARGET_SPEC}' to a DIRDEPS entry.
13	Add ':S,/$,,' when setting '__depdirs' and
14	add ':C,/(\.[^.]*)$,\1,' when setting '__qual_depdirs'.
15
162026-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
17
18	* install-mk (MK_VERSION): 20260424
19
20	* Use MK_META_AUTODEP to control use of meta.autodep.mk
21	so it can be used independently of MK_DIRDEPS_BUILD for
22	bootstrapping.
23
24	* sys.vars.mk (M_type): use :sh rather than :sh1 to avoid
25	surprises in a .for loop.
26
272026-03-12  Simon J Gerraty  <sjg@beast.crufty.net>
28
29	* install-mk (MK_VERSION): 20260313
30
31	* sys.vars.mk: use .MAKE.VERSION
32	M_type can simply use '$x'
33
342026-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
35
36	* install-mk (MK_VERSION): 20260222
37
38	* dirdeps.mk, sys.mk: add dependent option
39	UPDATE_DIRDEPS_CACHE/DIRDEPS_CACHE.
40	It can be useful to use -DWITHOUT_UPDATE_DIRDEPS_CACHE to
41	temporarily treat dynamic DIRDEPS_CACHE as static.
42
432026-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
44
45	* meta.autodep.mk (${_DEPENDFILE}): add .NOMETA
46
472026-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
48
49	* rust.mk: better accommodation for RUST_LIBS.
50	Set RUST_{LIBS,PROGS}_CARGO_BUILD_OUTPUT_LIST to
51	simplify staging.
52
532025-12-08  Simon J Gerraty  <sjg@beast.crufty.net>
54
55	* install-mk (MK_VERSION): 20251207
56
57	* sys.vars.mk: replace MAKE_POSIX_SHELL usage with isPOSIX_SHELL
58	Using ${isPOSIX_SHELL:U:Nfalse} provides a boolean for make
59	and ${isPOSIX_SHELL:Ufalse} does the same for target scripts.
60	Both will be false if isPOSIX_SHELL is not set or set to false.
61
62	This has the advantage that if only POSIX shells are expected
63	sys.mk (or something it includes) can simply do isPOSIX_SHELL?=:
64
652025-11-18  Simon J Gerraty  <sjg@beast.crufty.net>
66
67	* sys.vars.mk: set MAKE_POSIX_SHELL to 1 if .SHELL is POSIX, 0 if not.
68	set isPOSIX_SHELL for use in target scripts.
69
70	* meta.stage.mk: set MAKE_POSIX_SHELL if needed.
71
72	* install-new.mk: use ${isPOSIX_SHELL:Ufalse} to see if we can
73	avoid running 'expr'.
74
75	* install-new.mk: Allow use of cp or mv - controlled by CPMV_OP
76	(default mv).
77
782025-11-13  Simon J Gerraty  <sjg@beast.crufty.net>
79
80	* sys.vars.mk: add M_sh1 so we can handle older bmake that does
81	not support :sh1
82
832025-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
84
85	* install-mk (MK_VERSION): 20251111
86
87	* meta2deps.sh: reset some vars for each new meta file
88	set meta_file to path of meta file.
89	If meta2deps appears in DEBUG_SH set -x.
90
912025-09-16  Simon J Gerraty  <sjg@beast.crufty.net>
92
93	* options.mk: Add OPTIONS_DEFAULT_DEPENDENT_REQUIRED of the form
94	OPTION/REQUIRED[/VALUE]
95	if OPTION is $VALUE (default is "yes"), then REQUIRED must be too.
96	We add OPTIONS_DEFAULT_DEPENDENT_REQUIRED (sans any /{yes,no}) to
97	OPTIONS_DEFAULT_DEPENDENT so DEPENDENT/REQUIRED follow the same
98	processing.
99
100	Also add OPTIONS_FORCED_VALUES of the form OPTION/{yes,no}
101	we add any OPTIONS_FORCED_NO and OPTIONS_FORCED_YES before
102	processing.
103
104	Simplify the processing of OPTIONS_DEFAULT_VALUES and
105	OPTIONS_DEFAULT_DEPENDENT by splitting the tuples and use two
106	iterator variables in the .for loops.
107
1082025-08-09  Simon J Gerraty  <sjg@beast.crufty.net>
109
110	* install-mk (MK_VERSION): 20250808
111
112	* replace sjg license with just BSD-2-Clause SPDX tag
113
1142025-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
115
116	* install-mk (MK_VERSION): 20250724
117
118	* meta2deps: Allow X record to have 3 or 4 args.
119	V4 filemon on Linux produces 3
120	V5 filemon on FreeBSD produces 4
121
1222025-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
123
124	* install-mk (MK_VERSION): 20250721
125
126	* meta2deps.{py,sh}: detect corrupted filemon output (an issue on
127	Linux) by checking each record type has the correct number of
128	words.  Throw an error if necessary so that gendirdeps.mk will not
129	update Makefile.depend
130
1312025-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
132
133	* prog.mk: .MADE is a special source not a target!
134
1352025-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
136
137	* install-mk (MK_VERSION): 20250528
138
139	* add dirdeps2dplibs.mk
140
1412025-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
142
143	* install-mk (MK_VERSION): 20250518
144
145	* meta.autodep.mk (META_FILES): re-work to fix filtering.
146	if OPTIMIZE_OBJECT_META_FILES==yes
147	provide a default META_FILE_OBJ_FILTER that selects a valid
148	.SUFFIX to match *o.meta, there's no guarantee that it will be as
149	simple as .o or .So etc.
150	We have to defer evaluation until the target script is run
151	for any of these filters to have any effect.
152	Use :S,${.OBJDIR}/,, rather than :T incase there are objects
153	in sub-dirs.
154
155	* lib.mk: leverage ${.SUFFIXES} when setting dependencies.
156
157	* add UPDATE_DEPENDFILE as a dependent option - follows
158	DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for
159	UPDATE_DEPENDFILE when we think it should be yes.
160	This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE
161	without overriding UPDATE_DEPENDFILE directly - which can lead to
162	trouble.
163
1642025-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
165
166	* install-mk (MK_VERSION): 20250515
167
168	* meta2deps.py: resolve the target of a Move or Link first
169	and track the last path resolved, then if the src is a relative
170	path we can easily use that last path to resolve the src correctly.
171
172	* meta2deps.sh: for a Move or Link add the dir of target path to
173	the list used to resolve the src path.
174
1752025-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
176
177	* init.mk: include Skipping ${RELDIR} when _SKIP_BUILD is not empty.
178
1792025-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
180
181	* install-mk (MK_VERSION): 20250414
182
183	* init.mk: check ONLY_*_LIST and NOT_*_LIST for SKIP_BUILD_VAR_LIST
184	to set _SKIP_BUILD
185
186	* genfiles.mk: add FILTER support
187
188	* rst2htm.mk: latest docutils drops .py extensions
189
1902025-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
191
192	* install-mk (MK_VERSION): 20250326
193
194	* auto.obj.mk: fix and simplify handling of relative __objdir,
195	convert it to absolute before checking against .OBJDIR
196
1972025-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
198
199	* install-mk (MK_VERSION): 20250314
200
201	* meta.stage.mk: StageFiles --subdir: preserve the dir part of
202	each file under $dest
203
2042025-03-12  Simon J Gerraty  <sjg@beast.crufty.net>
205
206	* meta.autodep.mk: do a better job of handling MAKESYSPATH in
207	GENDIRDEPS_ENV.  If we have MAKE_VERSION >= 20230123 we can just
208	use .SYSPATH, otherwise it is a bit more complicated.
209
2102025-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
211
212	* rust.mk: use RUST_LIBS and RUST_PROGS
213
2142025-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
215
216	* install-mk (MK_VERSION): 20250101
217
218	* use W flag to :S and :C rather than :tW
219
2202024-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
221
222	* rust.mk: add RUSTFLAGS if needed
223
2242024-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
225
226	* init.mk (OBJS_SRCS_FILTER): apply this as
227	${OBJS_SRCS_FILTER:ts:} as we do in FreeBSD.
228
2292024-12-03  Simon J Gerraty  <sjg@beast.crufty.net>
230
231	* install-mk (MK_VERSION): 20241202
232
233	* setopts.sh: needed by newlog.sh
234
2352024-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
236
237	* meta.sys.mk: add META_MODE_XTRAS to META_MODE to make it
238	easier to add things like 'env' when debugging.
239
240	* install-mk (MK_VERSION): 20241122
241
242	* rust.mk: rename CARGO* to RUST_CARGO* so I don't feel
243	like this makefile should be renamed to cargo.mk
244
2452024-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
246
247	* dirdeps.mk: add DIRDEPS_CACHED_ENV to dirdeps-cached and
248	DIRDEP_USE_EPILOGUE to _DIRDEP_USE
249
2502024-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
251
252	* meta.sys.mk: if MK_META_ERROR_TARGET is yes and NEWLOG_SH is
253	set, and ERROR_LOGDIR already exists, hook _rotateErrorLog to
254	.BEGIN target.
255
2562024-10-27  Simon J Gerraty  <sjg@beast.crufty.net>
257
258	* options.mk: add support for DEBUG_OPTIONS (similar to
259	DEBUG_DIRDEPS) to allow us to see where options get set.
260	Eg. DEBUG_OPTIONS="STAGING*" gives:
261
262	bmake[1]: "mk/options.mk" line 89: sys.mk: MK_STAGING=yes (MK_DIRDEPS_BUILD=no)
263	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING=yes
264	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING_PROG=no
265	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_MAN=yes (MK_STAGING=yes)
266	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_PROG=no (MK_STAGING=yes)
267	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_RUST=no (MK_STAGING_PROG=no)
268
269	* own.mk: fix setting of STAGE_OBJTOP (normally set by sys.dirdeps.mk)
270
2712024-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
272
273	* rust.mk: add some documentation and support for staging
274
2752024-10-25  Simon J Gerraty  <sjg@beast.crufty.net>
276
277	* rust.mk: a means of integrating Rust projects into a larger build.
278
2792024-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
280
281	* dirdeps-targets.mk: if DEBUG_DIRDEPS_TARGETS and we found
282	STATIC_DIRDEPS_CACHE, report its relative path.
283
2842024-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
285
286	* dirdeps.mk: tweak the debug message for "Loading" a
287	Makefile.depend file, always report what the actual makefile is
288	with the DIRDEP it is for.
289	Remove the redundant "Looking" message.
290
2912024-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
292
293	* meta2deps.py: when raising AssertionError include meta file name
294	with $SB trimmed if possible.
295
2962024-09-23  Simon J Gerraty  <sjg@beast.crufty.net>
297
298	* meta2deps.py: replace assert() with raise AssertionError when we
299	detect missing eXits, to ensure a meaningful message gets into
300	log.
301
3022024-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
303
304	* install-mk (MK_VERSION): 20240921
305
306	* FILES: add genfiles.mk
307
3082024-09-20  Simon J Gerraty  <sjg@beast.crufty.net>
309
310	* install-mk (MK_VERSION): 20240920
311
312	* cython.mk: Get PYTHON_VERSION from PYTHON
313
3142024-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
315
316	* subdir.mk: add ${SUBDIR.yes} - allows for SUBDIR.${MK_*}
317	  and handle subdir with '-' in its name.
318
3192024-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
320
321	* install-mk (MK_VERSION): 20240820
322
323	* links.mk: Allow a filter to be applied to SYMLINKS etc.
324	It is up to [BUILD_][SYM]LINKS_FILTER to do something sane.
325	Also only claim we are making a symlink if the value changed.
326
3272024-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
328
329	* install-mk (MK_VERSION): 20240616
330
331	* dirdeps.mk: apply DEP_DIRDEPS_BUILD_DIR_FILTER after we have
332	computed build dirs, since some filters cannot be easily expressed via
333	DEP_DIRDEPS_FILTER.
334
3352024-05-31  Simon J Gerraty  <sjg@beast.crufty.net>
336
337	* dirdeps.mk: move reset of DIRDEPS_EXPORT_VARS
338	until after we a finished with it if building a cache.
339
3402024-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
341
342	* install-mk (MK_VERSION): 20240504
343
344	* dirdeps.mk: allow BUILD_DIRDEPS_OVERRIDES to pass overrides to
345	sub-make building DIRDEPS_CACHE.
346
3472024-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
348
349	* meta.autodep.mk: do not override start_utc
350
3512024-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
352
353	* sys.dirdeps.mk: set defaults for DEP_* at level 0 too.
354	These help when first include of Makefile.depend happens in a leaf
355	dir.
356
357	* install-mk (MK_VERSION): 20240414
358
3592024-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
360
361	* install-mk (MK_VERSION): 20240408
362
363	* init.mk: allow for _ as well as . to join V
364	and Q from QUALIFIED_VAR_LIST and VAR_QUALIFIER_LIST.
365
366	* progs.mk: avoid overlap between PROG_VARS and
367	init.mk's QUALIFIED_VAR_LIST since PROG would also
368	match its VAR_QUALIFIER_LIST,
369	libs.mk does not have the same issue.
370
371	* subdir.mk: _SUBDIRUSE for realinstall should run install
372	remove include of ${.CURDIR}/Makefile.inc that can be done via
373	local.subdir.mk where needed
374
375	* own.mk: do not conflict with man.mk
376
3772024-03-19  Simon J Gerraty  <sjg@beast.crufty.net>
378
379	* install-mk (MK_VERSION): 20240314
380
381	* add sys/Cygwin.mk from Christian Franke
382
3832024-03-09  Simon J Gerraty  <sjg@beast.crufty.net>
384
385	* install-mk (MK_VERSION): 20240309
386
387	* meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not
388	want to save the .ERROR_META_FILE
389
3902024-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
391
392	* install-mk (MK_VERSION): 20240220
393
394	* sys.dirdeps.mk, dirdeps-targets.mk, init.mk:
395	do not set .MAIN: dirdeps in sys.dirdeps.mk
396	dirdeps-targets.mk will do that for top-level builds
397	and init.mk will do it for others.
398	This allows a Makefile which has no need of 'dirdeps' to
399	set .MAIN for itself and "just work".
400
4012024-02-18  Simon J Gerraty  <sjg@beast.crufty.net>
402
403	* bsd.*.mk: for makefiles that get a bsd. symlink,
404	use _this in  multiple inclusion tags since .PARSEFILE will not
405	DTRT when such a makefile is included directly by Makefile and
406	automatically (without bsd. prefix).
407	Since we cannot guarantee that our sys.mk will be used, we provide
408	a default _this in each makefile that gets a bsd. prefix such that
409	the value is the same regardless of bsd. prefix.
410
411	* subdir.mk: drop the !target guard on $SUBDIR_TARGETS
412
4132024-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
414
415	* install-mk (MK_VERSION): 20240212
416
417	* SPDX-License-Identifier: BSD-2-Clause
418	Add SPDX-License-Identifier to inidicate that I consider
419	my copyright on any of these makefiles equivalent to BSD-2-Clause
420
421	* autoconf.mk: allow for configure.ac as currently recommended
422
423	* subdir.mk: support @auto
424	which is replaced with each subdir that
425	has a [Mm]akefile.
426
427	* subdir.mk: include local.subdir.mk if it exists.
428
429	* subdir.mk: rework to handle .WAIT
430
4312024-02-11  Simon J Gerraty  <sjg@beast.crufty.net>
432
433	* subdir.mk: _SUBDIRUSE report the target we are entering subdirs for.
434
4352024-02-10  Simon J Gerraty  <sjg@beast.crufty.net>
436
437	* prog.mk: treat empty SRCS the same as undefined
438
4392024-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
440
441	* Avoid undefined errors in lint (-dL) mode
442
443	* man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7)
444
4452024-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
446
447	* install-mk (MK_VERSION): 20240128
448
449	* FILES: add ccm.dep.mk for C++ modules
450	add suffixes.mk for common location for generic SUFFIX rules.
451
452	* auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk
453	replace OBJ_EXTENSIONS with OBJ_SUFFIXES
454
455	* autodep.mk: leverage CXX_SUFFIXES for __depsrcs
456	and update style (spaces around = etc)
457
458	* init.mk: add OBJS_SRCS_FILTER to filter SRCS when
459	setting OBJS
460
461	* meta2deps.py: handle multiple ./ embedded in path better.
462
4632024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
464
465	* install-mk (MK_VERSION): 20240105
466	* dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same
467	limits on command line length, so skip export of lists to env.
468
4692023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
470
471	* man.mk: add logic for staging man pages
472
4732023-11-28  Simon J Gerraty  <sjg@beast.crufty.net>
474
475	* jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating
476	point.  This keeps JOB_MAX numeric incase another makefile does
477	comparisons.
478
4792023-11-04  Simon J Gerraty  <sjg@beast.crufty.net>
480
481	* dpadd.mk: add support for DPLIBS_QUALIFIER_LIST
482
483	* gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
484
4852023-10-03  Simon J Gerraty  <sjg@beast.crufty.net>
486
487	* compiler.mk (COMPILER_VERSION): clang at least is into
488	double digit major versions.
489
4902023-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
491
492	* install-mk (MK_VERSION): 20231001
493
494	* set _CCLINK in init.mk so lib.mk can use it for default SHLIB_LD
495
496	* lib.mk (cleanlib): use LD_solink so we remove all the right files.
497	Use -Wl for -soname since we now default to linking with CC
498	We should not need SHLIB_LDSTARTFILE or SHLIB_LDENDFILE when linking
499	with CC.
500
5012023-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
502
503	* init.mk (QUALIFIED_VAR_LIST): Add SRCS
504
5052023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
506
507	* jobs.mk (JOB_MAX): use -jC if we can
508	we actually use JOB_MAX_C which defaults to 1.33C
509
5102023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
511
512	* now_utc: %s only works with :localtime
513
5142023-07-14  Simon J Gerraty  <sjg@beast.crufty.net>
515
516	* install-sh: ignore -c as claimed and only insist on
517	a directory for destination when more than one file to copy.
518
519	* sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and
520	${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64)
521
5222023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
523
524	* install-mk (MK_VERSION): 20230711
525
526	* sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible
527	install(1)
528
529	* sys/IRIX.mk:  when setting ROOT_GROUP only match the first :0:
530	set INSTALL to install-sh rather than pathname that may not exist
531	(yet).
532
5332023-07-07  Simon J Gerraty  <sjg@beast.crufty.net>
534
535	* dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE
536	normally this is empty - for the default target, but there are
537	use-cases where we might set it to something else.
538
5392023-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
540
541	* install-mk (MK_VERSION): 20230704
542
543	* dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output
544	when DEBUG_DIRDEPS is in effect.
545	Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n
546	can greatly improve readability.
547
5482023-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
549
550	* meta.autodep.mk (beforegendirdeps): allow tasks to be done
551	at END but before gendirdeps
552
5532023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
554
555	* install-mk (MK_VERSION): 20230522
556
557	* host-target.mk: deal with garbage from uname -m on
558	Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH
559	these days so just leave it be.
560	For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get
561	arm64 and x86_64 in HOST_TARGET.
562
5632023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
564
565	* sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older
566	versions of bmake.
567
568	* dirdeps.mk (TARGET_SPEC_VARS.host):
569	While *most* projects need only DEP_MACHINE for host,
570	there is always an exception.  So we allow for
571	TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS.
572	The default will *just work* for most projects.
573	We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC
574	based on DEP_MACHINE.
575	Allow for M_dep_qual_fixes.host to be different too
576	and take care to apply the right set.
577
5782023-05-14  Simon J Gerraty  <sjg@beast.crufty.net>
579
580	* sys.dirdeps.mk: we *do* want to override OBJTOP
581	and if MAKEOBJDIR was not in env as we want it;
582	put it there - carefully.
583	Ensure OBJROOT ends in / or - (/ preferred)
584	Add more comments to explain what/why.
585
5862023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
587
588	* install-mk (MK_VERSION): 20230512
589
590	* dirdeps.mk: take care not to qualify "host" dirdeps
591
592	* sys.dirdeps.mk (OBJTOP): must use ?=
593
5942023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
595
596	* meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no"
597	suppress processing of .depend
598
5992023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
600
601	* dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP
602
603	* meta.sys.mk sys.dirdeps.mk:
604	originally DIRDEPS_BUILD and META_MODE were the same thing,
605	but META_MODE is useful by itself.
606	Move things from meta.sys.mk which actually pertain to
607	DIRDEPS_BUILD to sys.dirdeps.mk
608
6092023-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
610
611	* install-mk (MK_VERSION): 20230504 May the Forth be with you
612
613	* dirdeps.mk: as with meta.sys.mk we treat "host" as special.
614	DEP_TARGET_SPEC is just ${DEP_MACHINE}
615
616	* meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at
617	level > 0 since these are often refered to in Makefile.depend*
618
6192023-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
620
621	* jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and
622	anything in ${JOB_LOG_START}
623
624	* jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}}
625	or a scripts subdir before searching $PATH.
626
627	* FILES: include newlog.sh for jobs.mk
628
6292023-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
630
631	* install-mk (MK_VERSION): 20230420
632
633	* lib.mk: include LDFLAGS and LDADD when linking shared libs
634
635	* gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc
636	via local.meta.sys.mk rather than local.gendirdeps.mk
637	so DEP_* variables can be set at level 1+ to avoid syntax errors
638	when used in conditionals in manually maintained Makefile.depend
639	files.
640
641	* dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines
642
6432023-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
644
645	* dirdeps.mk: check we were not included by
646	Makefile.depend.options as the result is bad.
647
6482023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
649
650	* install-mk (MK_VERSION): 20230414
651
652	* meta.sys.mk: since we have :range we can put the logic for
653	processing TARGET_SPEC from env here.
654
655	* dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including
656	local.dirdeps-missing.mk, also improve debug output.
657
658	* dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC
659	we need to use :M*[/.]* same as for when actually setting DIRDEPS
660	from the targets on command line.
661
6622023-04-12  Simon J Gerraty  <sjg@beast.crufty.net>
663
664	* Add jobs.mk
665
6662023-03-21  Simon J Gerraty  <sjg@beast.crufty.net>
667
668	* install-mk (MK_VERSION): 20230321
669
670	* meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter
671	STAGE_LIBS for SHLIB_LINKS.
672
673	* autoconf.mk: add .WAIT after config.status
674
6752023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
676
677	* sys.vars.mk: add M_Index to report the index of a word in a list.
678
6792023-02-15  Simon J Gerraty  <sjg@beast.crufty.net>
680
681	* install-mk (MK_VERSION): 20230215
682
683	* warnings.mk: allow better control of -Werror
684	allow -Wno-error or similar to be added if
685	WARNINGS_SET < WERROR_SET
686	account for COMPILER_TYPE
687
6882023-01-29  Simon J Gerraty  <sjg@beast.crufty.net>
689
690	* autoconf.mk: hook config.status to beforebuild.
691
692	* whats.mk: what*.c is NOTMAIN
693
6942023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
695
696	* install-mk (MK_VERSION): 20230127
697	control umask so directories are created with suitable mode.
698
6992023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
700
701	* install-mk (MK_VERSION): 20230120
702
703	* sys.vars.mk: add M_On and M_Onr also cleanup to be more
704	consistent wrt testing MAKE_VERSION
705
7062023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
707
708	* install-mk (MK_VERSION): 20230112
709
710	* meta2deps.{py,sh}: assert if filemon data is truncated
711	we should see the '# Bye bye' record - assert if we do not.
712
7132022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
714
715	* install-mk (MK_VERSION): 20220909
716
717	* sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings
718
7192022-09-06  Simon J Gerraty  <sjg@beast.crufty.net>
720
721	* dirdeps-options.mk: explain the need to use
722	${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to
723	${TARGET_SPEC_VAR}
724
7252022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
726
727	* install-mk (MK_VERSION): 20220903
728
729	* M_cmpv handle more than 3 dots and clear leading 0's
730
7312022-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
732
733	* install-mk (MK_VERSION): 20220720
734
735	* prog.mk: handle PROG_CXX for more than just NetBSD
736
7372022-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
738
739	* install-mk (MK_VERSION): 20220620
740
741	* yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER
742	rather than just suffix rules
743
7442022-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
745
746	* install-mk (MK_VERSION): 20220422
747
748	* gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no"
749	do not capture any local depends in Makefile.depend
750
7512022-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
752
753	* install-mk (MK_VERSION): 20220323
754	* posix.mk: default rules for .POSIX:
755
7562022-03-17  Simon J Gerraty  <sjg@beast.crufty.net>
757
758	* sys/*.mk: remove l from ARFLAGS
759
7602022-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
761
762	* install-mk (MK_VERSION): 20220314
763
764	* dirdeps-options.mk: allow options to be per RELDIR
765	try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed
766	with ${DEP_RELDIR}.
767
7682022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
769
770	* install-mk (MK_VERSION): 20220214
771
772	* cc-wrap.mk: fix :@ modifier
773
7742022-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
775
776	* install-mk (MK_VERSION): 20220206
777
778	* cc-wrap.mk: docuement how CCACHE etc might be set for
779	maximum flexibility
780
7812022-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
782
783	* sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT
784
7852022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
786
787	* install-mk (MK_VERSION): 20220204
788
789	* host-target.mk: use .MAKE.OS if available
790
7912022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
792
793	* install-mk (MK_VERSION): 20220202
794
795	* cc-wrap.mk: allow other entries in CC_WRAP_FILTER
796	We add our filter on extensions last, so prior filters
797	can apply to the whole value of .IMPSRC
798
7992022-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
800
801	* cc-wrap.mk: take advantage of target local variables to
802	wrap compilers like CC CXX with wrappers like ccache distcc etc
803
8042022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
805
806	* meta2deps: we do not expect any trace data for setid apps
807
8082022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
809
810	* dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed
811	to sub-make using DIRDEPS_CACHE
812
8132022-01-07  Simon J Gerraty  <sjg@beast.crufty.net>
814
815	* dirdeps.mk: use _cache_script to minimize the number of shells
816	forked when generating dirdeps.cache
817
8182022-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
819
820	* install-mk (MK_VERSION): 20220101
821
822	* dirdeps.mk: initialize DEP_* and _debug_reldir earlier.
823	If initial DIRDEPS are from command line, create the target
824	_dirdeps_cmdline as an indication.
825
8262022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
827
828	* init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD
829	at top-level only some targets are allowed at level 0,
830	for leaf makefiles only the default (all) target is restricted
831
8322021-12-28  Simon J Gerraty  <sjg@beast.crufty.net>
833
834	* install-mk (MK_VERSION): 20211228
835
836	* meta2deps.py: filemon on Linux is not as reliable as we might
837	like, we do not want to update DIRDEPS if filemon output is
838	incomplete.   Track pids that we 'E'xec and make sure we see an
839	e'X'it for each one.  Throw an error if we are missing any 'X'
840	records.
841
8422021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
843
844	* sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes.
845
846	* meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON
847	is something else.
848
849	* meta.autodep.mk: we can now reference ${.SUFFIXES}
850
851	* meta2deps.py: derive a list of dirdep extensions from
852	TARGET_SPEC to trim from dirdeps.
853
854	* dirdeps.mk: flip the computation of qualified vs unqualified
855	dirdeps - it is much simpler to check for unqualified first.
856
8572021-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
858
859	* install-mk (MK_VERSION): 20211212
860
861	* auto.dep.mk: rearrange so that the trivial implementation
862	for recent bmake is more obvious.
863
8642021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
865
866	* install-mk (MK_VERSION): 20211207
867
868	* Ensure guard targets are .NOTMAIN
869
870	* meta.sys.mk: check for nofilemon support when we skip level 0
871
872	* auto.dep.mk: make this usable in meta mode
873	for platforms that cannot use meta.autodep.mk
874
875	* meta2deps.py: avoid confusion if MACHINE and another
876	TARGET_SPEC_VAR have same value.
877
8782021-11-27  Simon J Gerraty  <sjg@beast.crufty.net>
879
880	* dirdeps.mk: when building dirdeps.cache, minimize the amount of
881	data put into env, by stripping ${SRCTOP}/ from each entry.
882	A long sandbox name can double the amount of memory consumed and
883	in extreme cases cause failure.
884	While we are at it, strip ${SRCTOP}/ from a lot of the debug output.
885
8862021-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
887
888	* install-mk (MK_VERSION): 20211111
889
890	* meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail
891	so fallback to cp if necessary.
892
8932021-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
894
895	* man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year
896	old cmt2doc.pl
897
8982021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
899
900	* meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f}
901	as the symlink (rare)
902
9032021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
904
905	* autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not
906	been read, throw an error after running configure telling user to
907	restart.
908
9092021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
910
911	* install-mk (MK_VERSION): 20211011
912
913	* Add support for SCO_SV
914
9152021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
916
917	* install-mk (MK_VERSION): 20211001
918
919	* man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more
920	flexibility
921
9222021-09-13  Simon J Gerraty  <sjg@beast.crufty.net>
923
924	* options.mk (describe-options): print options and their values
925	  and optional description
926
9272021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
928
929	* install-mk (MK_VERSION): 20210911
930
931	* options.mk (show-options): print options and their values
932
9332021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
934
935	* install-mk (MK_VERSION): 20210909
936
937	* lib.mk: apply patch from <daniel@octaforge.org>
938	to fix shared libs on Linux
939
9402021-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
941
942	* install-mk (MK_VERSION): 20210808
943
944	* options.mk: issue warning for WITH_*=no
945
9462021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
947
948	* install-mk (MK_VERSION): 20210616
949
950	* dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find
951	depend files to read, anchor MACHINE at , or end of string
952	to avoid prefix match.
953
9542021-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
955
956	* install-mk (MK_VERSION): 20210504
957
958	* dirdeps.mk: re-implement ALL_MACHINES support to better
959	cater for local complexities, when ONLY_TARGET_SPEC_LIST
960	is not set. local.dirdeps.mk can set
961	DIRDEPS_ALL_MACHINES_FILTER and/or
962	DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get
963	from listing all existing Makefile.depend.*
964
9652021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
966
967	* install-mk (MK_VERSION): 20210420
968
969	* dirdeps.mk: revert previous - not always safe.
970
9712021-03-20  Simon J Gerraty  <sjg@beast.crufty.net>
972
973	* install-mk (MK_VERSION): 20210321
974
975	* dirdeps.mk: when generating dirdeps.cache
976	we only need to hook the initial DIRDEPS to the
977	dirdeps target.  That and any _build_xtra_dirs (like tests which
978	should not be hooked directly to the dependency graph - to avoid
979	cycles)
980
9812021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
982
983	* install-mk (MK_VERSION): 20210130
984
985	* dirdeps.mk: expr 2 - 1 - 1 exits with a bad status
986	  we need to  guard against this in DIRDEP_LOADAVG_REPORT.
987
988	* dirdeps.mk: restore respect for TARGET_MACHINE
989
9902021-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
991
992	* install-mk (MK_VERSION): 20210101
993
994	* dirdeps.mk: first time we are read, just use TARGET_SPEC for
995	_DEP_TARGET_SPEC
996
9972020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
998
999	* sys.mk (MAKE_SHELL): use ${.SHELL:Ush}
1000	and use := when setting SHELL
1001
10022020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1003
1004	* install-mk (MK_VERSION): 20201221
1005
1006	* dirdeps-options.mk: latest bmake allows only one arg to .undef
1007
10082020-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
1009
1010	* dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS
1011	so that any directory can be treated as a target.
1012
10132020-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
1014
1015	* install-mk (MK_VERSION): 20201126
1016
1017	* own.mk: use .MAKE.{UID,GID} if available.
1018
1019	* init.mk: suppress _SKIP_BUILD warning if doing -V
1020
10212020-11-20  Simon J Gerraty  <sjg@beast.crufty.net>
1022
1023	* install-mk (MK_VERSION): 20201120
1024
1025	* init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS
1026
1027	* dirdeps-targets.mk: fix typo in comment
1028
10292020-11-06  Simon J Gerraty  <sjg@beast.crufty.net>
1030
1031	* install-mk (MK_VERSION): 20201106
1032
1033	* meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed
1034	args to tweak extensions for local deps.
1035
10362020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1037
1038	* install-mk (MK_VERSION): 20201101
1039
1040	* dirdeps.mk: most leaf makefiles are not suitable for building
1041	dirdeps.cache so if RELDIR is not "." use dirdeps.mk
1042
10432020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1044
1045	* install-mk (MK_VERSION): 20201028
1046
1047	* dirdeps.mk: if we don't have :range use equivalent of M_RANGE
1048	when building dirdeps.cache for leaf directory use -f dirdeps.mk
1049
1050	* sys.vars.mk: add M_JOT and M_RANGE
1051
10522020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1053
1054	* install-mk (MK_VERSION): 20201001
1055
1056	* meta2deps.{py,sh}: throw an error if we don't see filemon version
1057
10582020-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
1059
1060	* install-mk (MK_VERSION): 20200909
1061
1062	* dirdeps-cache-update.mk: use cache_update_dirdep as guard target
1063
10642020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1065
1066	* dirdeps.mk: ensure we cannot confuse a static cache for dynamic
1067	(even more rare that use of static cache is playing clever tricks
1068	with it)
1069
10702020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
1071
1072	* dirdeps-cache-update.mk: allow
1073	MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we
1074	actually update STATIC_DIRDEPS_CACHE.
1075
1076	* stage-install.sh: create dest directory if needed
1077	before running install(1)
1078
10792020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
1080
1081	* dirdeps-targets.mk: include Makefile.dirdeps.options
1082
1083	* dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE
1084
10852020-08-09  Simon J Gerraty  <sjg@beast.crufty.net>
1086
1087	* dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty
1088
1089	* dirdeps-cache-update.mk: building parallel cache update
1090	under the context of dirdeps-cached would be ideal, but
1091	is problematic, so it runs as a sibling.
1092	Use cache-built target to ensure we wait for it to complete if
1093	necessary.
1094
10952020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
1096
1097	* install-mk (MK_VERSION): 20200806
1098
1099	* dirdeps-options: allow TARGET_SPEC to affect option values.
1100	Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_*
1101
1102	* dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined
1103	before looking for STATIC_DIRDEPS_CACHE
1104
11052020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
1106
1107	* host-target.mk: Darwin use MACHINE for HOST_ARCH too
1108
1109	* dirdeps-options.mk: improve debug output
1110
11112020-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
1112
1113	* dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE
1114	for use by dirdeps-cache-update.mk
1115
1116	* dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE
1117	for use by dirdeps-cache-update.mk even if we don't use it.
1118
1119	* dirdeps-cache-update.mk: we only need worry about the background
1120	update case, with the above, the update from DIRDEPS_CACHE is
1121	simple.
1122
1123	* meta2deps.py: R 1234 . is not interesting
1124
11252020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
1126
1127	* sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE
1128
1129	* dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS
1130	allows use of lower case for pseudo options.
1131
1132	* dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE
1133
11342020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
1135
1136	* dirdeps-targets.mk: Look for Makefile.dirdeps.cache
1137	which allows us to have a static cache for expensive targets.
1138	Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE
1139	to regenerate the dirdeps.cache it is a copy of.
1140
11412020-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
1142
1143	* Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense.
1144
11452020-07-16  Simon J Gerraty  <sjg@beast.crufty.net>
1146
1147	* dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record
1148	load averages at intervals during build.
1149
11502020-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
1151
1152	* install-mk (MK_VERSION): 20200715
1153
1154	* dirdeps.mk: tweak Checking line to make matching Finished
1155	lines for post-build analysis easier.
1156
1157	* meta.autodep.mk: use !defined(WITHOUT_META_STATS)
1158
1159	* progs.mk: avoid prog.mk outputting multiple Finished lines
1160
11612020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
1162
1163	* dirdeps.mk: further optimize dirdeps.cache
1164	generate a DIRDEPS.${.TARGET} list for other purposes
1165	and improve the layout.
1166
11672020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
1168
1169	* dirdeps.mk: optimize content of dirdeps.cache
1170
11712020-06-28  Simon J Gerraty  <sjg@beast.crufty.net>
1172
1173	* sys/*.mk: make it easier for local*sys.mk to customize by
1174	using ?=
1175
11762020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
1177
1178	* gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0
1179	it is much safer to guard local depends with a simple check for
1180	.MAKE.LEVEL > 0
1181
11822020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
1183
1184	* install-mk (MK_VERSION): 20200610
1185
1186	* mkopt.sh: this needs posix shell so #!/bin/sh should be ok
1187
11882020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
1189
1190	* install-mk (MK_VERSION): 20200606
1191
1192	* dirdeps-targets.mk: allow for filtering of .TARGETS
1193
1194	* meta2deps.py: fix bug in processing 'L'ink and 'M'ove
1195	entries - and we don't care about 'W'rite entries.
1196	Also ignore absolute paths that do not exist.
1197
11982020-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
1199
1200	* install-mk (MK_VERSION): 20200525
1201
1202	* init.mk: expand and simplify handling of qualified vars
1203	like CPPFLAGS.${.TARGET:T}
1204
12052020-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
1206
1207	* install-mk (MK_VERSION): 20200515
1208
1209	* dirdeps.mk: set _debug_* earlier and allow passing -d*
1210	flags to submake when building DIRDEPS_CACHE
1211
12122020-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
1213
1214	* whats.mk: more easily extensible
1215
12162020-05-02  Simon J Gerraty  <sjg@beast.crufty.net>
1217
1218	* whats.mk: greatly simplify by adding what.c to SRCS
1219
12202020-05-01  Simon J Gerraty  <sjg@beast.crufty.net>
1221
1222	* whats.mk: for libs take care how we add to *OBJS
1223
1224	* lib.mk: : works better with whats.mk
1225
12262020-04-25  Simon J Gerraty  <sjg@beast.crufty.net>
1227
1228	* install-mk (MK_VERSION): 20200420
1229
1230	* meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep
1231	contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC}
1232
12332020-04-16  Simon J Gerraty  <sjg@beast.crufty.net>
1234
1235	* install-mk (MK_VERSION): 20200416
1236
1237	* sys/*.mk: set MAKE_SHELL rather than SHELL so as not to
1238	  interfere with user env.
1239
1240	* sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL
1241
1242	* autodep.mk: use MAKE_SHELL.
1243
12442019-11-21  Simon J Gerraty  <sjg@beast.crufty.net>
1245
1246	* gendirdeps.mk: clear .SUFFIXES to avoid a lot of
1247	  wasted effort, and unexport _meta_files when no longer needed as
1248	  it consumes space we need for command line.
1249
12502019-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1251
1252	* dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add
1253	  DIRDEP_USE_PRELUDE at start - facilitates job distribution
1254
12552019-10-04  Simon J Gerraty  <sjg@beast.crufty.net>
1256
1257	* dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST
1258	defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid
1259	TARGET_SPEC qualified depend files.
1260
12612019-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1262
1263	* dirdeps-targets.mk: encapsulate logic for finding top-level
1264	  targets to set initial DIRDEPS for DIRDEPS_BUILD
1265
12662019-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1267
1268	* install-mk (MK_VERSION): 20190911
1269
1270	* compiler.mk: set COMPILER_TYPE
1271
12722019-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
1273
1274	* install-mk (MK_VERSION): 20190704
1275
1276	* sys/Darwin.mk: support for Objective-C and clang
1277
12782019-05-30  Simon J Gerraty  <sjg@beast.crufty.net>
1279
1280	* dirdeps.mk: avoid insanely long command line when generating cache
1281
12822019-05-23  Simon J Gerraty  <sjg@beast.crufty.net>
1283
1284	* install-mk (MK_VERSION): 20190505
1285
1286	* whats.mk: handle corner case SHLIB defined but not LIB
1287
12882018-09-19  Simon J Gerraty  <sjg@beast.crufty.net>
1289
1290	* install-mk (MK_VERSION): 20180919
1291
1292	* dirdeps-options.mk: .undef cannot handle var that expands to
1293	  more than one var.
1294
12952018-07-08  Simon J Gerraty  <sjg@beast.crufty.net>
1296
1297	* meta.stage.mk: allow wildcards in STAGE_FILES.* etc.
1298
12992018-06-01  Simon J Gerraty  <sjg@beast.crufty.net>
1300
1301	* meta.autodep.mk: export META_FILES to avoid command line limit
1302	* gendirdeps.mk: if we have lots of .meta files put them in
1303	  an @list
1304
13052018-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
1306
1307	* dirdeps-options.mk: use local.dirdeps-options.mk
1308	  not local.dirdeps-option.mk
1309
13102018-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1311
1312	* install-mk (MK_VERSION): 20180420
1313	* dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0
1314	  ie. we are building something.
1315
13162018-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
1317
1318	* FILES: add dirdeps-options.mk to deal with optional DIRDEPS.
1319
13202018-04-05  Simon J Gerraty  <sjg@beast.crufty.net>
1321
1322	* install-mk (MK_VERSION): 20180405
1323
1324	* ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER
1325	  if needed.
1326
13272018-01-18  Simon J Gerraty  <sjg@beast.crufty.net>
1328
1329	* install-mk (MK_VERSION): 20180118
1330
1331	* ldorder.mk: let make compute correct link order
1332
13332017-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1334
1335	* install-mk (MK_VERSION): 20171212
1336
1337	* gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER
1338
13392017-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1340
1341	* install-mk (MK_VERSION): 20171111
1342
1343	* lib.mk: ensure META_NOECHO is set
1344
13452017-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1346
1347	* Allow for host32 on rare occasions.
1348
13492017-10-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1350
1351	* install-mk (MK_VERSION): 20171018
1352
1353	* whats.mk: include what_thing in what_uuid to avoid problem
1354	  when building multiple apps in the same directory.
1355
13562017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1357
1358	* install-mk (MK_VERSION): 20170812
1359
1360	* autoconf.mk: Use CONFIGURE_DEPS so Makefile can
1361	  add dependencies for config.recheck and config.gen
1362
13632017-06-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1364
1365	* install-mk (MK_VERSION): 20170630
1366
1367	* meta.stage.mk: avoid triggering stage_* targets with nothing to do.
1368
13692017-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1370
1371	* meta2deps.py: take special care of '..'
1372
13732017-05-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1374
1375	* install-mk (MK_VERSION): 20170515
1376
1377	* dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is
1378	useful/necessary for a Makefile.depend file to export some knobs.
1379	This is complicated when we are doing DIRDEPS_CACHE, so we will
1380	handle export of any variables listed in DEP_EXPORT_VARS.
1381
13822017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1383
1384	* install-mk (MK_VERSION): 20170505
1385
1386	* meta2deps.py: fix botched indenation.
1387
13882017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1389
1390	* sys/*.mk: Remove setting of MAKE it is unnecessary and
1391	  in many cases wrong (basname rather than full path)
1392
1393	* scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk
1394
1395	* init.mk: define realbuild to simplify logic in {lib,prog}.mk etc
1396
13972017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1398
1399	* install-mk (MK_VERSION): 20170501
1400
1401	* doc.mk: fix typo in DOC_INSTALL_OWN
1402
1403	* inc.mk: handle INCGROUPS similar to freebsd
1404
1405	* files.mk: add something for files too
1406
1407	* add staging logic to lib.mk prog.mk etc.
1408
14092017-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1410
1411	* install-mk (MK_VERSION): 20170424
1412
1413	* dirdeps.mk: set NO_DIRDEPS when bootstrapping.
1414	  also target of bootstrap-this when sed is needed should be ${_want:T}
1415
14162017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1417
1418	* install-mk (MK_VERSION): 20170418
1419
1420	* auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a
1421	  prefix match for .CURDIR - in which case .CURDIR *is* __objdir.
1422
14232017-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1424
1425	* install-mk (MK_VERSION): 20170401
1426
1427	* meta2deps.py: add is_src so we can check if obj dependency
1428	  is also a src dependency.
1429
14302017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1431
1432	* install-mk (MK_VERSION): 20170326
1433
1434	* meta.stage.mk: do nothing if NO_STAGING is defined.
1435
14362017-03-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1437
1438	* auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc.
1439
14402017-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1441
1442	* mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_*
1443
14442017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1445
1446	* install-mk (MK_VERSION): 20170301
1447
1448	* dirdeps.mk (_build_all_dirs): update this outside test for empty
1449	  DIRDEPS.
1450
1451	* meta.stage.mk: allow multiple inclusion to the extent it makes
1452	  sense.
1453
14542017-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1455
1456	* prog.mk (install_links): depends on realinstall
1457
14582017-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1459
1460	* install-mk (MK_VERSION): 20170212
1461
1462	* dpadd.mk: avoid applying :T:R twice to DPLIBS entries
1463
14642017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1465
1466	* install-mk (MK_VERSION): 20170130
1467
1468	* dirdeps.mk: use :range if we can.
1469
1470	* sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130
1471
1472	* meta2deps.py: clean paths without using realpath() where possible.
1473	  fix sort_unique.
1474
14752016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1476
1477	* install-mk (MK_VERSION): 20161212
1478
1479	* meta2deps.py: set pid_cwd[pid] when we process 'C'hdir,
1480	rather than when we detect pid change.
1481
14822016-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1483
1484	* install-mk (MK_VERSION): 20161207
1485
1486	* meta.stage.mk: add stage_as_and_symlink for staging packages.
1487	  We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able
1488	  to use foo.tgz to reference the latest staged version - so we
1489	  make foo.tgz a symlink to it.
1490	  Using a target to do both operations ensures we stay in sync.
1491
14922016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1493
1494	* install-mk (MK_VERSION): 20161126
1495
1496	* dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk
1497	  so it can add dependencies.
1498
14992016-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1500
1501	* dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE
1502	  do that they can influence the result correctly.
1503
1504	* dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC
1505
1506	* dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST
1507	  similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST
1508
15092016-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1510
1511	* dirdeps.mk: remove dependence on jot (normal situations anyway).
1512	  Before we read another Makefile.depend* set DEP_* vars from
1513	  _DEP_TARGET_SPEC in case it uses any of them with :=
1514	  When bootstrapping, trim any ,* from extention of chosen _src
1515	  Makefile.depend* to get the machine value we subst for.
1516
15172016-09-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1518
1519	* dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to
1520	  DEP_SKIP_DIR and DEP_DIRDEPS_FILTER
1521
1522	* sys.mk: extract some bits to sys.{debug,vars}.mk
1523	  for easier re-use by others.
1524
15252016-09-23  Simon Gerraty  <sjg@sjg-mba13>
1526
1527	* lib.mk: Use ${PICO} for extension for PIC objects.
1528	  default to .pico (like NetBSD) safe on case insensitive filesystem.
1529
15302016-08-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1531
1532	* meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default
1533
15342016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1535
1536	* install-mk (MK_VERSION): 20160815
1537
1538	* dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only
1539	consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date.
1540
15412016-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1542
1543	* meta.sys.mk (.MAKE.META.IGNORE_PATHS):
1544	  in meta mode we can ignore the mtime of makefiles
1545
15462016-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1547
1548	* install-mk (MK_VERSION): 20160802
1549
1550	* lib.mk (libinstall): depends on beforinstall
1551
1552	* prog.mk (proginstall): depends on beforinstall
1553	  patch from Lauri Tirkkonen
1554
1555	* dirdeps.mk (bootstrap): When bootstrapping; creat
1556	.MAKE.DEPENDFILE_DEFAULT and allow additional filtering via
1557	.MAKE.DEPENDFILE_BOOTSTRAP_SED
1558
1559	* dirdeps.mk: move some comments to where they make sense.
1560
15612016-07-27  Simon J. Gerraty  <sjg@bad.crufty.net>
1562
1563	* dirdeps.mk (DIRDEPS_CACHE): no dirname.
1564
15652016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1566
1567	* install-mk (MK_VERSION): 20160602
1568	* meta.autodep.mk: when passing META_FILES to gendirdeps.mk
1569	  do not apply :T to META_XTRAS
1570	  patch from Bryan Drewery at FreeBSD.org.
1571
15722016-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1573
1574	* install-mk (MK_VERSION): 20160530
1575	* meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH
1576	  make it so.
1577
15782016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1579
1580	* install-mk (MK_VERSION): 20160512
1581
1582	* dpadd.mk: always include local.dpadd.mk if it exists
1583	  remove some things that better belong in local.dpadd.mk
1584	  skip INCLUDES_* for staged libs unless SRC_* defined.
1585
1586	* own.mk: add INCLUDEDIR
1587
15882016-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1589
1590	* dirdeps.mk: when doing -f dirdeps.mk if target suppies no
1591	  TARGET_MACHINE - :E will be empty or match part of path, use
1592	  ${MACHINE}
1593
15942016-04-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1595
1596	* meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to
1597	  NO_FILEMON_COOKIE
1598
1599	* dirdeps.mk: move the logic that allows for
1600	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1601	  inside the check for !target(_DIRDEP_USE)
1602
16032016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1604
1605	* Use <> when including local*.mk and others which may exist
1606	  elsewhere so that user can better control what they get.
1607
1608	* meta.autodep.mk (NO_FILEMON_COOKIE):
1609	  create a cookie if we ever build dir with nofilemon
1610	  so that UPDATE_DEPENDFILE will be forced to NO until cleaned.
1611
16122016-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1613
1614	* install-mk (MK_VERSION): 20160401
1615
1616	* meta2deps.py: fix old print statement when debugging.
1617
1618	* gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X
1619	  patch from Bryan Drewery
1620
16212016-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1622
1623	* install-mk (MK_VERSION): 20160317 (St. Pats)
1624
1625	* warnings.mk: g++ does not like -Wimplicit
1626
1627	* sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the
1628	  pelthora of common suffixes for C++
1629
1630	* lib.mk: use .So for shared objects
1631
16322016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1633
1634	* install-mk (MK_VERSION): 20160315
1635
1636	* meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1)
1637	  normally only applies to scripts.
1638
1639	* dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as
1640	  well as outside it.
1641
16422016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1643
1644	* install-mk (MK_VERSION): 20160310
1645
1646	* dirdeps.mk: use targets rather than a list to track DIRDEPS that
1647	  we have processed; the list gets very inefficient as number of
1648	  DIRDEPS gets large.
1649
1650	* sys.dependfile.mk: fix comment wrt MACHINE
1651
1652	* meta.autodep.mk: ignore staged DPADDs when bootstrapping.
1653	  patch from Bryan Drewery
1654
16552016-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1656
1657	* meta2deps.sh: don't ignore subdirs.
1658	  patch from Bryan Drewery
1659
16602016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1661
1662	* install-mk (MK_VERSION): 20160226
1663
1664	* gendirdeps.mk: mark _DEPENDFILE .NOMETA
1665
16662016-02-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1667
1668	* dirdeps.mk: we shouldn't normally include .depend but if we do
1669	  use .dinclude if we can.
1670
16712016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1672
1673	* install-mk (MK_VERSION): 20160218
1674	* sys.clean-env.mk: with recent change to Var_Subst()
1675	  we cannot use the '$$' trick, but .export-literal does the job
1676	  we need.
1677	* auto.dep.mk: make use .dinclude if we can.
1678
1679
16802016-02-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1681
1682	* dirdeps.mk:
1683	  Add _build_all_dirs such that local.dirdeps.mk can
1684	  add fully qualified dirs to it.
1685	  These will be built normally but the current
1686	  DEP_RELDIR will not depend on then (to avoid cycles).
1687	  This makes it easy to hook things like unit-tests into build.
1688
1689
16902016-01-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1691
1692	* dirdeps.mk: add bootstrap-empty
1693
16942015-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1695
1696	* install-mk (MK_VERSION): 20151212
1697	* auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist.
1698	  only apply :tA to __objdir when comparing to .OBJDIR
1699
17002015-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1701
1702	* install-mk (MK_VERSION): 20151111
1703
1704	* meta.sys.mk: include sys.dependfile.mk
1705
1706	* sys.mk (OPTIONS_DEFAULT_NO): use options.mk
1707	  to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD
1708	  include local.sys.env.mk early
1709	  include local.sys.mk later
1710
1711	* own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk
1712
17132015-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1714
1715	* meta.sys.mk (META_COOKIE_TOUCH):
1716	  add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie
1717
1718	* meta.stage.mk: stage_libs should ignore SYMLINKS.
1719
17202015-10-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1721
1722	* install-mk (MK_VERSION): 20151022
1723
1724	* sys.mk: BSD/OS does not have 'type' as a shell builtin.
1725
17262015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1727
1728	* install-mk (MK_VERSION): 20151020
1729
1730	* dirdeps.mk: Add logic for
1731	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1732
17332015-10-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1734
1735	* install-mk (MK_VERSION): 20151010
1736
17372015-10-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1738
1739	* meta.stage.mk: use staging: ${STAGE_TARGETS:...
1740	  to have stage_lins run last in non-jobs mode.
1741	  Use .ORDER only for jobs mode.
1742
17432015-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1744
1745	* rst2htm.mk: allow for per target flags etc.
1746
17472015-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1748
1749	* install-mk (MK_VERSION): 20150901
1750
1751	* doc.mk: create dir if needed use DOC_INSTALL_OWN
1752
17532015-06-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1754
1755	* install-mk (MK_VERSION): 20150615
1756
1757	* auto.obj.mk: allow use of MAKEOBJDIRPREFIX too.
1758	  Follow make's normal precedence rules.
1759
1760	* gendirdeps.mk: allow customization of the header.
1761	  eg. for FreeBSD:
1762	  GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}';
1763
1764	* meta.autodep.mk: ignore dirdeps.cache*
1765
1766	* meta.stage.mk: when bootstrapping options it can be handy to
1767	  throw warnings rather than errors for staging conflicts.
1768
1769	* meta.sys.mk: include local.meta.sys.mk for customization
1770
17712015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1772
1773	* install-mk (MK_VERSION): 20150606
1774
1775	* dirdeps.mk: don't rely on manually maintained Makefile.depend
1776	  to set DEP_RELDIR and reset DIRDEPS.
1777	  By setting DEP_RELDIR ourselves we can skip :tA
1778
1779	* gendirdeps.mk: skip setting DEP_RELDIR.
1780
17812015-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1782
1783	* dirdeps.mk: avoid wildcards like make(bootstrap*)
1784
17852015-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1786
1787	* install-mk (MK_VERSION): 20150520
1788
1789	* dirdeps.mk: when we are building dirdeps cache file we *want*
1790	  meta_oodate to look at all the Makefile.depend files, so
1791	  set .MAKE.DEPENDFILE to something that won't match.
1792
1793	* meta.stage.mk: for STAGE_AS_* basename of file may not be unique
1794	  so first use absolute path as key.
1795	  Also skip staging at level 0.
1796
17972015-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1798
1799	* install-mk (MK_VERSION): 20150430
1800
1801	* dirdeps.mk: fix _count_dirdeps for non-cache case.
1802
18032015-04-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1804
1805	* install-mk (MK_VERSION): 20150411
1806	  bump version
1807
1808	* own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES.
1809	  it is here mainly for documentation purposes, since
1810	  if using auto.obj.mk it is better done via sys.mk
1811
18122015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1813
1814	* install-mk (MK_VERSION): 20150401
1815
1816	* meta2deps.sh: support @list
1817
1818	* meta2deps.py: updates from Juniper
1819	  o add EXCLUDES
1820	  o skip bogus input files.
1821	  o treat 'M' and 'L' as both an 'R' and a 'W'
1822
18232015-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1824
1825	* install-mk (MK_VERSION): 20150303
1826
1827	* dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache
1828	  which is built via sub-make so we have a .meta file to tell if
1829	  it is out-of-date.
1830	  The dirdeps-cache contains the same dependency rules that we
1831	  normaly construct on the fly.
1832	  This adds a few seconds overhead when the cache is out of date,
1833	  but for a large target, the savings can be significant (10-20min).
1834
18352014-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1836
1837	* install-mk (MK_VERSION): 20141118
1838
1839	* meta.stage.mk: add stale_staged
1840
1841	* dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked
1842	  only useful under very rare conditions such as
1843	  FreeBSD's make universe.
1844
1845	* auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto
1846
18472014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1848
1849	* install-mk (MK_VERSION): 20141111
1850
1851	* mkopt.sh: use consistent semantics for _mk_opt and _mk_opts
1852
18532014-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1854
1855	* FILES: include mkopt.sh which allows handling options in shell
1856	  scripts in a manner compatible with options.mk
1857
18582014-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1859
1860	* meta.stage.mk: ensure only _STAGED_DIRS under objroot are used
1861	  for GENDIRDEPS_FILTER to avoid surprises.
1862
18632014-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1864
1865	* dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by
1866	  the time it is applied to __depdirs they have.
1867
1868	* dirdeps.mk fix filtering of _machines since M_dep_qual_fixes
1869	  expects patterns like *.${MACHINE}
1870
1871	* cython.mk (pyprefix?): use pyprefix to find python bits
1872	  since prefix might be something else (where we install our
1873	  stuff)
1874
18752014-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1876
1877	* install-mk (MK_VERSION): 20140911
1878
1879	* dirdeps.mk: add bootstrap target to simplify adding support for
1880	  new MACHINE.
1881
18822014-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1883
1884	* gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and
1885	  GENDIRDEPS_FILTER_VARS to make it easier to produce sharable
1886	  Makefile.depend files.
1887
18882014-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1889
1890	* install-mk (MK_VERSION): 20140828
1891
1892	* cython.mk: capture logic for building python extension modules
1893	  with Cython.
1894
18952014-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1896
1897	* meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant
1898
18992014-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1900
1901	* install-mk (MK_VERSION): 20140801
1902
1903	* dep.mk: use explicit MKDEP_MK rather than overload MKDEP to
1904	identify the autodep.mk variant.
1905
1906	* sys.dependfile.mk: delete .MAKE.DEPENDFILE if its
1907	initial value does not match .MAKE.DEPENDFILE_PREFIX
1908
1909	* meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS
1910
19112014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1912
1913	* install-mk (MK_VERSION): 20140522
1914
1915	* lib.mk: use CC to link shlib for linux too
1916	  patch from Brendan MacDonell
1917
19182014-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1919
1920	* meta.autodep.mk: add _reldir_{finish,failed} for gathering stats
1921	  if WITH_META_STATS is defined.
1922
19232014-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1924
1925	* dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS)
1926	  to supress dirdeps outside of .CURDIR.
1927
19282014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1929
1930	* Fix spelling errors - patch from Pedro Giffuni
1931
19322014-03-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1933
1934	* install-mk (MK_VERSION): 20140314
1935
1936	* dirdeps.mk (beforedirdeps): a handy hook
1937
1938	* dirdeps.mk (DIRDEP_MAKE): allow the actual command we run
1939	  to visit leaf dirs to be intercepted (eg. for distributed
1940	  build).
1941
1942	* dirdeps.mk (__depdirs): ensure // don't sneak in
1943
1944	* gendirdeps.mk (DIRDEPS): ensure // don't sneak in
1945
1946
19472014-02-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1948
1949	* rst2htm.mk (RST2PDF): add support for rst2pdf
1950
19512014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1952
1953	* install-mk (MK_VERSION): bump version
1954	* dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if
1955	  available.
1956
19572014-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1958
1959	* options.mk: avoid :U so this isn't bmake dependent
1960
19612014-02-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1962
1963	* options.mk: cleanup and simplify semanitcs
1964	  NO_* dominates all, if both WITH_* and WITHOUT_*
1965	  are defined then result is DOMINATE_* which defaults to "no".
1966	  Ie. WITHOUT_ normally wins.
1967
19682013-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1969
1970	* install-mk (MK_VERSION): bump version
1971	* meta2deps.py: convert to print function for python3 compat.
1972	  we also need to open files with mode 'r' rather than 'rb'
1973	  otherwise we get bytes instead of strings.
1974
19752013-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1976
1977	* install-mk (MK_VERSION): bump version
1978
1979	* dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE
1980	  apply the same filtering (M_dep_qual_fixes) when setting _machines
1981	  as _build_dirs.
1982	  Also fix the filtering of Makefile.depend files - for reporting
1983	  what we are looking for (M_dep_qual_fixes can get confused by
1984	  Makefile.depend)
1985	  Add some more debug info.
1986
19872013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1988
1989	* gendirdeps.mk (_objtops): fix typo also
1990	  while processing M2D_OBJROOTS to gather qualdir_list
1991	  qualify $ql with loop iterator to ensure correct results.
1992
19932013-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1994
1995	* install-mk (MK_VERSION): 20130801
1996	* libs.mk: update to match progs.mk
1997
19982013-07-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1999
2000	* install-mk (MK_VERSION): 20130726
2001	  some updates from Juniper and FreeBSD
2002	  o meta2deps.py: indicate file and line number when we hit parse
2003	    errors
2004	    also allow @file to provide huge list of .meta files.
2005	* meta2deps.py: add try_parse() to cleanup the above.
2006
20072013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2008
2009	* install-mk (MK_VERSION): 20130716
2010	* own.mk: add GPROG as an option
2011	* prog.mk: honor MK_GPROF==yes
2012
20132013-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2014
2015	* install-mk (MK_VERSION): 20130505
2016	* gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC
2017	  for when $MACHINE isn't enough for objdir distinction.
2018	  Bring meta2deps.sh closer to par with meta2deps.py.
2019
20202013-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2021
2022	* meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all'
2023	  also if the target 'beforeinstall' exists, make it depend on
2024	  .dirdep (incase it uses STAGE_INSTALL).
2025
20262013-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2027
2028	* install-mk (MK_VERSION): 20130401 ;-)
2029	* meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as
2030	  wrapper around install(1).
2031	* options.mk (OPTION_PREFIX): Allow a prefix other than MK_
2032
20332013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2034
2035	* meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized.
2036	* install-mk (MK_VERSION): bump version
2037
20382013-03-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2039
2040	* install-mk (MK_VERSION): bump version
2041	* gendirdeps.mk: do not apply :tA to DPADD entries, since we lose
2042	  any trailing /., rather apply :tA only when needed.
2043	* gendirdeps.mk: better mimic meta2deps handling of .dirdep files.
2044	* meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance
2045	  consistently.
2046	* dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC.
2047
20482013-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2049
2050	* gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT
2051	  it is simpler to just not update when say building for "host"
2052	  (where we know we apply filters to DIRDEPS), and using a
2053	  non-machine qualified dependfile.
2054
20552013-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2056
2057	* dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR
2058	  and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC
2059	* gendirdeps.mk: ensure _objroot has trailing / if it needs it.
2060	* meta2deps.py: if machine is "host", then also trim
2061	  self.host_target from any OBJROOTS.
2062
2063
20642013-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2065
2066	* gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine
2067	  qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists
2068	  but _DEPENDFILE does not, compare the new _DEPENDFILE against
2069	  .MAKE.DEPENDFILE_DEFAULT and discard if the same.
2070
20712013-03-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2072
2073	* meta.stage.mk: use STAGE_TARGETS to control .ORDER
2074	  and hook to all: via staging:
2075
20762013-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2077
2078	* sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT):
2079	  use a separate variable for the default .MAKE.DEPENDFILE value
2080	  so that it can be controlled independently of
2081	  .MAKE.DEPENDFILE_PREFERENCE
2082
2083	* meta.stage.mk: throw error if cp fails etc.
2084	  Stage*() return early if passed no args.
2085	  .ORDER stage_*
2086
20872013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2088
2089	* install-mk (MK_VERSION): bump version
2090	* gendirdeps.mk: handle multiple M2D_OBJROOTS better.
2091
20922013-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2093
2094	* install-mk (MK_VERSION): bump version to 20130210
2095	* import latest dirdeps.mk, gendirdeps.mk and meta2deps.py
2096	  from Juniper.
2097	  o dirdeps.mk now fully supports TARGET_SPEC consisting of more
2098	    than just MACHINE.
2099	  o no longer use DEP_MACHINE from Makefile.depend* so remove it.
2100
21012013-01-23  Simon J. Gerraty  <sjg@bad.crufty.net>
2102
2103	* install-mk (MK_VERSION): bump version to 20130123
2104	* meta.stage.mk: add stage_links (hard links).
2105	  if doing hard links, we add dest to link as well.
2106	  Default the stage dir for [sym]links to STAGE_OBJTOP since
2107	  these are typically specified as absolute paths.
2108	  Add -m "mode" flag to StageFiles and StageAs.
2109
21102012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2111
2112	* install-mk (MK_VERSION): bump version to 20121111
2113	* autoconf.mk: avoid meta mode seeing changed commands for config.status
2114	* meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps
2115	  in case we were found via .../mk
2116	* sys.clean-env.mk: move it from examples, we and others use it
2117	  "as is".
2118	* FILES: add srctop.mk and options.mk
2119	* own.mk: convert to using options.mk
2120	  which is modeled after FreeBSD's handling of MK_*
2121	  but more flexible.
2122	  This allows MK_* for boolean knobs to not be confused
2123	  with MK* which can be commands.
2124
2125	* examples/sys.clean-env.mk: add WITH[OUT]_ to
2126	  MAKE_ENV_SAVE_PREFIX_LIST.
2127	  Mention that HOME=/var/empty might be a good idea.
2128
21292012-11-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2130
2131	* sys.dependfile.mk: if not depend file exists, $MACHINE
2132	  specific ones are supported but not the default,
2133	  check if any exist and follow suit.
2134
21352012-11-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2136
2137	* install-mk (MK_VERSION): bump version to 20121106
2138
21392012-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2140
2141	* import latest dirdeps.mk and meta2deps.py from Juniper.
2142	* progs.mk: add MAN and CXXFLAGS to PROG_VARS
2143	  also add PROGS_TARGETS and pass on PROG_CXX if it seems
2144	  appropriate.
2145
21462012-11-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2147
2148	* meta.stage.mk: update CLEANFILES
2149	  remove redundant cp of .dirdep from STAGE_AS_SCRIPT.
2150	* progs.mk: Add LDADD to PROG_VARS
2151
21522012-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2153
2154	* meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in
2155	  _STAGED_DIRS so that these can be turned into filters for
2156	  GENDIRDEPS_FILTER.
2157
21582012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2159
2160	* install-mk (MK_VERSION): bump version to 20121010
2161	* meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing
2162	target.dirdep matches .dirdep
2163
21642012-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2165
2166	* install-mk (MK_VERSION): bump version to 20120808
2167	* import latest meta2deps.py from Juniper.
2168
21692012-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2170
2171	* install-mk (MK_VERSION): bump version to 20120711
2172	* dep.mk: add explicit dependencies on SRCS after applying
2173	  SRCS_DEP_FILTER
2174	* meta.autodep.mk: add explicit dependencies on SRCS after
2175	  applying SRCS_DEP_FILTER
2176	* meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed.
2177
21782012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2179
2180	* install-mk (MK_VERSION): bump version to 20120626
2181	* meta.sys.mk: ignore PYTHON if it does not exist
2182	  compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable.
2183	* meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any
2184	  entries ending in .${MACHINE} to decide if qualified _dirdep is
2185	  needed.
2186	* gendirdeps.mk: only produce unqualified deps if no
2187	  .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE}
2188	* meta.subdir.mk: apply SUBDIRDEPS_FILTER
2189
21902012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2191
2192	* install-mk (MK_VERSION): bump version to 20120420
2193	* add sys.dependfile.mk so we can experiment with
2194	  .MAKE.DEPENDFILE_PREFERENCE
2195	* meta.autodep.mk: _DEPENDFILE is precious!
2196
21972012-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2198
2199	* install-mk (MK_VERSION): bump version to 20120315
2200	* install-new.mk: avoid being interrupted
2201
22022012-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2203
2204	* man.mk: MAN might have multiple values so be careful with exists().
2205
22062012-01-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2207
2208	* install-mk (MK_VERSION): bump version to 20120112
2209	* fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled
2210	  as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}'
2211
22122011-12-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2213
2214	* install-mk (MK_VERSION):  bump version to 20111201
2215	* import dirdeps.mk from Juniper sjg@
2216	  o more consistent handling of DEP_MACHINE, especially when
2217	    dealing with an odd Makefile.depend, when normally using
2218	    Makefile.depend.${MACHINE}
2219
22202011-11-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2221
2222	* install-mk (MK_VERSION): bump version to 20111122
2223	* meta.autodep.mk: add some debug output, be more crisp about
2224	  updating.  Use ${.ALLTARGETS:M*.o} as a clue for .depend
2225
22262011-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2227
2228	* install-mk (MK_VERSION): bump version to 20111111
2229	  it's too cool to miss
2230	* import meta* updates from Juniper sjg@
2231	  o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are
2232	    normally using Makefile.depend.${MACHINE}), handy for
2233	    read-only manually maintained dependencies.
2234	  o meta2deps.py add a clear 'ERROR:' token if an exception is raised.
2235	  o gendirdeps.mk if ERROR: from meta2deps.py do not update
2236	    anything.
2237
22382011-10-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2239
2240	* install-new.mk separate the cmp and copy logic to its own function.
2241
22422011-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2243
2244	* install-mk (MK_VERSION): bump version to 20111028
2245	* sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto
2246	* subdir.mk: ensure _SUBDIRUSE is provided
2247	* meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk
2248	* meta.subdir.mk: always allow for Makefile.depend
2249
22502011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2251
2252	* install-mk (MK_VERSION): bump version to 20111010
2253	  o minor tweak to *dirdeps.mk from Juniper sjg@
2254
22552011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2256
2257	* install-mk (MK_VERSION): bump version to 20111001
2258	  o add meta2deps.py from Juniper sjg@
2259	  o tweak gendirdeps.mk to work with meta2deps.py when not
2260	    cross-building
2261	* autoconf.mk: add autoconf-input as a hook for regenerating
2262	  AUTOCONF_INPUTS (configure).
2263
22642011-08-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2265
2266	* meta.autodep.mk: if we do not have OBJS, .depend isn't a useful
2267	  trigger for updating Makefile.depend*
2268
22692011-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2270
2271	* install-mk (MK_VERSION): bump version to 20110808
2272	* obj.mk: minor cleanup
2273	* auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too.
2274
22752011-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2276
2277	* auto.obj.mk (.OBJDIR): throw an error if we cannot use the
2278	  specified dir.
2279
22802011-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2281
2282	* meta.autodep.mk: if XMAKE_META_FILE is set
2283	  the makefile uses a foreign make, and so dependencies
2284	  can only be gathered from a clean tree build.
2285
22862011-06-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2287
2288	* install-mk (MK_VERSION): bump version to 20110622
2289	* meta.autodep.mk: improve bootstraping
2290
22912011-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2292
2293	* yacc.mk: handle the corner case of .c being removed
2294	  while .h remains.
2295
22962011-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2297
2298	* yacc.mk: do .y.h and .y.c separately
2299
23002011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2301
2302	* install-mk (MK_VERSION): bump version to 20110606
2303	* don't store SRC_DIRDEPS in Makefile.depend* by default
2304	  not everyone needs it.
2305
23062011-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2307
2308	* install-mk (MK_VERSION): bump version to 20110505
2309	  first release including meta mode makefiles
2310
23112011-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2312
2313	* meta.stage.mk: add STAGE_AS_SETS and stage_as
2314	  for things that need to be staged with different names.
2315
23162011-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2317
2318	* meta.stage.mk: add notion of STAGE_SETS
2319	  so a makefile can stage to multiple dirs
2320
23212011-04-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2322
2323	* rst2htm.mk: convert rst to s5 (slides) or plain html depending
2324	  on target name.
2325
23262011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2327
2328	* install-mk (MK_VERSION): bump version to 20110330
2329
23302011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
2331
2332	* sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0
2333	  can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest.
2334	* sys.mk: re-define M_whence in terms of M_type.
2335	  M_type is useful for checking if something is a builtin.
2336
23372011-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2338
2339	* meta.stage.mk: add stage_symlinks and leverage StageLinks for
2340	  stage_libs
2341
23422011-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2343
2344	* dirdeps.mk: correct value for _depdir_files depends on
2345	  .MAKE.DEPENDFILE
2346	  Add our copyright - just to make it clear we have frobbed this
2347	  quite a bit.
2348	  DEP_MACHINE needs to be set to MACHINE each time, if using only
2349	  Makefile.depend (cf. Makefile.depend.${MACHINE})
2350
2351	* meta.stage.mk: meta mode version of staging
2352
2353	* init.mk, final.mk: include local.*.mk to simplify customization
2354
23552011-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2356
2357	* auto.obj.mk: just because we are doing mk destroy, we should
2358	  still set .OBJDIR correctly if it exists.
2359
2360	* install-mk (mksrc): do not exclude meta.sys.mk
2361
23622011-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2363
2364	* host-target.mk: set/export _HOST_ARCH etc separately,
2365	  catch junk resulting from uname -p, so we can find sys/Linux.mk
2366	  correctly.
2367
23682011-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2369
2370	* meta.sys.mk: throw an error if /dev/filemon is missing and we
2371	  expected to be updating Makefile.depend*
2372
23732011-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2374
2375	* install-mk (MK_VERSION): bump version to 20110214
2376	* meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES
2377
23782010-09-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2379
2380	* meta.sys.mk: not valid for older bmake
2381
23822010-09-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2383
2384	* install-mk (MK_VERSION): bump version to 20100919
2385	include dirdeps.mk et al from Juniper Networks,
2386	for meta mode - requires filemon(9).
2387	* sys.mk, subdir.mk: Add hooks for meta mode.
2388	we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk
2389	to make turning it on/off simple.
2390
23912010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2392
2393	* install-mk (MK_VERSION): bump version to 20100616
2394	* fix typo in sys.mk
2395
23962010-06-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2397
2398	* install-mk (MK_VERSION): bump version to 20100612
2399	* lib.mk: remove duplicate addition to SOBJS
2400
24012010-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2402
2403	* sys.mk: Add a means of selectively turning on debug flags.
2404	  Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg"
2405	  will act as if we did make -dv if .CURDIR ends in lib/sjg
2406	  DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at
2407	  the start of sys.mk rather than the end.
2408	  This only makes sense for leaf dirs, so we check that
2409	  .MAKE.LEVEL > 0
2410
24112010-06-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2412
2413	* install-mk (MK_VERSION): bump version to 20100608
2414	* sys.mk: include sys.env.mk later so it can use M_ListToSkip et al.
2415	* examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606
2416	  also make it easier for folk to tweak
2417
24182010-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2419
2420	* install-mk (MK_VERSION): bump version to 20100606
2421	  do not install examples/*
2422	* FILES: add examples/sys.clean-env.mk
2423	* examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR
2424	  this requires bmake-20100606 or later to work.
2425
24262010-05-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2427
2428	* sys.mk (M_tA): better simulate the result of :tA if not available.
2429
24302010-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2431
2432	* sys.mk: canonicalize MAKE_VERSION
2433	  old versions reported bmake-<src-date> build-<build-date>
2434	  whereas we only care about <src-date>
2435
24362010-04-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2437
2438	* install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored
2439	* lib.mk: we only build the shared lib if SHLIB_FULLVERSION
2440	  is !empty
2441
24422010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2443
2444	* dpadd.mk: use LDADD_* if defined.
2445
24462010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2447
2448	* install-mk (MK_VERSION): bump version to 20100420
2449	* sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy
2450	* autoconf.mk allow AUTO_AUTOCONF
2451
24522010-04-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2453
2454	* obj.mk: add objwarn to keep freebsd makefiles happy
2455	* auto.obj.mk: ensure Mkdirs is available.
2456	* FILES: add auto.dep.mk - a simpler version of autodep.mk
2457	* dep.mk: auto.dep.mk does not do 'make depend' so ignore it if
2458	  asked to do that.
2459	  fix/simplify the tests for when to run mkdep.
2460	* auto.dep.mk: add some explanation of how/what we do.
2461	* autodep.mk: skip the .OPTIONAL frobbing of .depend
2462	  bmake's FROM_DEPEND flag makes it redundant.
2463
24642010-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2465
2466	* install-mk (MK_VERSION): bump version to 20100404
2467	* subdir.mk: protect from multiple inclusion using _SUBDIRUSE.
2468	* obj.mk: protect from multiple inclusion even as bsd.obj.mk
2469	Also create a target _SUBDIRUSE so that we can  be used without
2470	subdir.mk
2471
24722010-04-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2473
2474	* dep.mk: use <> when .including so can override.
2475
24762010-01-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2477
2478	* lib.mk (SHLIB_LINKS): ensure a string comparison.
2479
24802010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2481
2482	* install-mk (MK_VERSION): bump version to 20100102
2483	* own.mk: ensure PRINTOBJDIR works
2484	* autoconf.mk: pass on CONFIGURE_ARGS
2485	* init.mk: handle COPTS.${.IMPSRC:T} etc.
2486	* lib.mk: allow sys.mk to control SHLIB_FULLVERSION
2487	  fix handling of symlinks for darwin
2488	* libnames.mk: add DSHLIBEXT for libs which only exist as shared.
2489	* man.mk: suppress chown when not root.
2490	* rst2htm.mk: allow srcs from multiple locations.
2491	* sys.mk: M_whence, stop after 1st line of output.
2492	* sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT
2493	* sys/SunOS.mk: we need to export PATH
2494
24952009-12-23  Simon J. Gerraty  <sjg@void.crufty.net>
2496
2497	* install-mk (MK_VERSION): bump version
2498	  include rst2htm.mk
2499
25002009-12-17  Simon J. Gerraty  <sjg@void.crufty.net>
2501
2502	* sys.mk,libnames.mk add .-include <local.*>
2503	  this allows local customization without the need to edit the
2504	  distributed files.
2505
25062009-12-14  Simon J. Gerraty  <sjg@void.crufty.net>
2507
2508	* dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up
2509	  older versions already installed.
2510
25112009-12-13  Simon J. Gerraty  <sjg@void.crufty.net>
2512
2513	* stage.mk (.stage-install): generalize lib.mk's .libinstall
2514	* rules.mk rules for generic Makefile.
2515	* inc.mk install for includes.
2516
25172009-12-11  Simon J. Gerraty  <sjg@void.crufty.net>
2518
2519	* sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check
2520	  this, so provide it if using native make.
2521
25222009-12-10  Simon J. Gerraty  <sjg@void.crufty.net>
2523
2524	* FILES: move all the platform *.sys.mk files to sys/*.mk
2525	* Rename Generic.sys.mk to sys.mk - we always want it.
2526
25272009-11-17  Simon J. Gerraty  <sjg@void.crufty.net>
2528
2529	* install-mk (MK_VERSION): bump version
2530	* host-target.mk: only export the expensive stuff
2531	* Generic.sys.mk (sys_mk): for SunOS we need to look for
2532	  ${HOST_OS}.${HOST_OSMAJOR} too!
2533
25342009-11-07  Simon J. Gerraty  <sjg@void.crufty.net>
2535
2536	* install-mk (MK_VERSION): bump version
2537	* lib.mk: if sys.mk doesn't give us an lorder, don't use it.
2538	  based on patch from Greg Olszewski.
2539	* Generic.sys.mk: if we have nothing to work with
2540	set LORDER etc only if we can find it.
2541
25422009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
2543
2544	* install-mk (MK_VERSION): bump version
2545	* man.mk: cleanman: remove CLEANMAN if defined.
2546
25472009-09-04  Simon J. Gerraty  <sjg@void.crufty.net>
2548
2549	* SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk
2550
25512009-07-17  Simon J. Gerraty  <sjg@void.crufty.net>
2552
2553	* install-mk (MK_VERSION): bump version
2554	include auto.obj.mk
2555
2556
25572009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
2558
2559	* prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail.
2560
25612008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
2562
2563	* install-mk (MK_VERSION): bump version
2564	man.mk: ensure we generate *.cat1 etc in .
2565
25662008-07-16  Simon J. Gerraty  <sjg@void.crufty.net>
2567
2568	* install-mk (MK_VERSION): bump version
2569	add prlist.mk
2570
25712007-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
2572
2573	* Generic.sys.mk: Allow os specific sys.mk to be in a
2574	subdir of ${.PARSEDIR}
2575
25762007-11-22  Simon J. Gerraty  <sjg@void.crufty.net>
2577
2578	* install-mk (MK_VERSION): bump version
2579	* general cleanup
2580	* dpadd.mk introduce DPMAGIC_LIBS_*
2581
25822007-04-30  Simon J. Gerraty  <sjg@void.crufty.net>
2583
2584	* install-mk (MK_VERSION): bump version
2585
2586	* libs.mk, progs.mk, autodep.mk: allow for per lib/prog
2587	depend files and ensure clean is called for each lib/prog.
2588
25892007-03-27  Simon J. Gerraty  <sjg@void.crufty.net>
2590
2591	* autodep.mk (.depend): delete lines that do not start with
2592	space and do not contain ':'
2593
25942007-02-16  Simon J. Gerraty  <sjg@void.crufty.net>
2595
2596	* autodep.mk (.depend): gcc may wrap lines if pathnames are long
2597	so make sure the transform for .OPTIONAL copes.
2598
25992007-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2600
2601	* install-mk (MK_VERSION): bump version
2602
2603	* own.mk: make sure RM and LN are defined.
2604
2605	* obj.mk: fix a typo, and objlink target.
2606
26072006-12-30  Simon J. Gerraty  <sjg@void.crufty.net>
2608
2609	* install-mk (MK_VERSION): bump version
2610	* added libs.mk - analogous to progs.mk
2611	  make both of them always inlcude {lib,prog}.mk
2612
26132006-12-28  Simon J. Gerraty  <sjg@void.crufty.net>
2614
2615	* progs.mk: add a means of building multiple apps in one dir.
2616
26172006-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
2618
2619	* install-mk (MK_VERSION): bump version to 20061126
2620
2621	* warnings.mk: detect invalid WARNINGS_SET
2622
2623	* warnings.mk: use ${.TARGET:T:R}.o when looking for target
2624	specific warnings.
2625
2626	* For .cc sources, turn off warnings that g++ vomits on.
2627
26282006-11-08  Simon J. Gerraty  <sjg@void.crufty.net>
2629
2630	* own.mk: if __initialized__ target doesn't exist and we are
2631	FreeBSD we got here directly from sys.mk
2632
26332006-11-06  Simon J. Gerraty  <sjg@void.crufty.net>
2634
2635	* install-mk (MK_VERSION): bump version to 20061106
2636	add scripts.mk
2637
26382006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
2639
2640	* install-mk (MK_VERSION): bump version to 20060318
2641
2642	* autodep.mk: avoid := when modifying OBJS into __dependsrcs
2643
26442006-03-02  Simon J. Gerraty  <sjg@void.crufty.net>
2645
2646	* install-mk (MK_VERSION): bump version to 20060302
2647	* autodep.mk: use -MF et al to help gcc+ccache DTRT.
2648
26492006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
2650
2651	* install-mk (MK_VERSION): bump version to 20060301
2652	* autodep.mk (.depend):
2653	if MAKE_VERSION is newer than  20050530 we can make .END depend on
2654	.depend and make .depend depend on __depsrcs that exist.
2655	* dpadd.mk: add SRC_PATHADD
2656
26572005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
2658
2659	* install-mk (MK_VERSION): bump version to 20051104
2660	* prog.mk: remove all the LIBC?= junk, use
2661	.-include libnames.mk instead (none by default).
2662	also if USE_DPADD_MK is set, include that.
2663
26642005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2665
2666	* install-mk (MK_VERSION): bump version to 20051001
2667	Add UnixWare.sys.mk from Klaus Heinz.
2668
26692005-04-05  Simon J. Gerraty  <sjg@void.crufty.net>
2670
2671	* install-mk: always install *.sys.mk and if need be symlink one
2672	to sys.mk
2673
26742005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
2675
2676	* subdir.mk, own.mk: use .MAKE rather than MAKE
2677
26782004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
2679
2680	* own.mk: don't use NetBSD's _SRC_TOP_ it can
2681	cause confusion.  Also don't take just 'mk' as a
2682	srctop indicator.
2683
26842004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
2685
2686	* warnings.mk: overhauled, now very powerful.
2687
26882004-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2689
2690	* Generic.sys.mk: need to use ${.PARSEDIR} with exists().
2691
26922004-02-01  Simon J. Gerraty  <sjg@void.crufty.net>
2693
2694	* install-mk (MK_VERSION): bump version to 20040201
2695	* extract HOST_TARGET stuff to host-target.mk so own.mk and
2696	Generic.sys.mk can share.
2697	* fix typo in autodep.mk _SUBDIRUSE not _SUBDIR.
2698
26992003-09-30  Simon J. Gerraty  <sjg@void.crufty.net>
2700
2701	* install-mk (MK_VERSION): 20030930
2702	* rename generic.sys.mk to Generic.sys.mk
2703	so that it does not get installed (unless being used as sys.mk)
2704	* set OS and ROOT_GROUP for those that we know the value.
2705	for others (eg. Generic.sys.mk) wrap the != in an .ifndef so
2706	we don't do it again for each sub-make.
2707
27082003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
2709
2710	* install-mk (MK_VERSION): 20030928
2711	Add some extra *.sys.mk from bootstrap-pkgsrc
2712	some of these likely still need work.
2713	Make everything default to root:wheel ownership,
2714	sys.mk can set ROOT_GROUP accordingly.
2715
27162003-08-07  Simon J. Gerraty  <sjg@void.crufty.net>
2717
2718	* install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR
2719	not the portable ones.
2720
27212003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
2722
2723	* install-mk: add ability to use cp -f when updating
2724	destination .mk files.  Also now possible to play games with
2725	FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk
2726	into dest - not recommended unless you seriously want to.
2727
27282003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
2729
2730	* own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc
2731	for semi-compatability with NetBSD.
2732
27332003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
2734
2735	* install-mk: add a version indicator
2736
27372003-07-22  Simon J. Gerraty  <sjg@void.crufty.net>
2738
2739	* prog.mk: don't try and use ${LIBCRT0} if its /dev/null
2740
2741	* install-mk: Allow FORCE_SYS_MK to come from env
2742
2743
2744
2745