xref: /freebsd/contrib/bmake/mk/ChangeLog (revision 34a3834eadd03bec7703b8fbf9123f27b1114986)
12026-03-12  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* install-mk (MK_VERSION): 20260313
4
5	* sys.vars.mk: use .MAKE.VERSION
6	M_type can simply use '$x'
7
82026-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
9
10	* install-mk (MK_VERSION): 20260222
11
12	* dirdeps.mk, sys.mk: add dependent option
13	UPDATE_DIRDEPS_CACHE/DIRDEPS_CACHE.
14	It can be useful to use -DWITHOUT_UPDATE_DIRDEPS_CACHE to
15	temporarily treat dynamic DIRDEPS_CACHE as static.
16
172026-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
18
19	* meta.autodep.mk (${_DEPENDFILE}): add .NOMETA
20
212026-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
22
23	* rust.mk: better accommodation for RUST_LIBS.
24	Set RUST_{LIBS,PROGS}_CARGO_BUILD_OUTPUT_LIST to
25	simplify staging.
26
272025-12-08  Simon J Gerraty  <sjg@beast.crufty.net>
28
29	* install-mk (MK_VERSION): 20251207
30
31	* sys.vars.mk: replace MAKE_POSIX_SHELL usage with isPOSIX_SHELL
32	Using ${isPOSIX_SHELL:U:Nfalse} provides a boolean for make
33	and ${isPOSIX_SHELL:Ufalse} does the same for target scripts.
34	Both will be false if isPOSIX_SHELL is not set or set to false.
35
36	This has the advantage that if only POSIX shells are expected
37	sys.mk (or something it includes) can simply do isPOSIX_SHELL?=:
38
392025-11-18  Simon J Gerraty  <sjg@beast.crufty.net>
40
41	* sys.vars.mk: set MAKE_POSIX_SHELL to 1 if .SHELL is POSIX, 0 if not.
42	set isPOSIX_SHELL for use in target scripts.
43
44	* meta.stage.mk: set MAKE_POSIX_SHELL if needed.
45
46	* install-new.mk: use ${isPOSIX_SHELL:Ufalse} to see if we can
47	avoid running 'expr'.
48
49	* install-new.mk: Allow use of cp or mv - controlled by CPMV_OP
50	(default mv).
51
522025-11-13  Simon J Gerraty  <sjg@beast.crufty.net>
53
54	* sys.vars.mk: add M_sh1 so we can handle older bmake that does
55	not support :sh1
56
572025-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
58
59	* install-mk (MK_VERSION): 20251111
60
61	* meta2deps.sh: reset some vars for each new meta file
62	set meta_file to path of meta file.
63	If meta2deps appears in DEBUG_SH set -x.
64
652025-09-16  Simon J Gerraty  <sjg@beast.crufty.net>
66
67	* options.mk: Add OPTIONS_DEFAULT_DEPENDENT_REQUIRED of the form
68	OPTION/REQUIRED[/VALUE]
69	if OPTION is $VALUE (default is "yes"), then REQUIRED must be too.
70	We add OPTIONS_DEFAULT_DEPENDENT_REQUIRED (sans any /{yes,no}) to
71	OPTIONS_DEFAULT_DEPENDENT so DEPENDENT/REQUIRED follow the same
72	processing.
73
74	Also add OPTIONS_FORCED_VALUES of the form OPTION/{yes,no}
75	we add any OPTIONS_FORCED_NO and OPTIONS_FORCED_YES before
76	processing.
77
78	Simplify the processing of OPTIONS_DEFAULT_VALUES and
79	OPTIONS_DEFAULT_DEPENDENT by splitting the tuples and use two
80	iterator variables in the .for loops.
81
822025-08-09  Simon J Gerraty  <sjg@beast.crufty.net>
83
84	* install-mk (MK_VERSION): 20250808
85
86	* replace sjg license with just BSD-2-Clause SPDX tag
87
882025-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
89
90	* install-mk (MK_VERSION): 20250724
91
92	* meta2deps: Allow X record to have 3 or 4 args.
93	V4 filemon on Linux produces 3
94	V5 filemon on FreeBSD produces 4
95
962025-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
97
98	* install-mk (MK_VERSION): 20250721
99
100	* meta2deps.{py,sh}: detect corrupted filemon output (an issue on
101	Linux) by checking each record type has the correct number of
102	words.  Throw an error if necessary so that gendirdeps.mk will not
103	update Makefile.depend
104
1052025-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
106
107	* prog.mk: .MADE is a special source not a target!
108
1092025-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
110
111	* install-mk (MK_VERSION): 20250528
112
113	* add dirdeps2dplibs.mk
114
1152025-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
116
117	* install-mk (MK_VERSION): 20250518
118
119	* meta.autodep.mk (META_FILES): re-work to fix filtering.
120	if OPTIMIZE_OBJECT_META_FILES==yes
121	provide a default META_FILE_OBJ_FILTER that selects a valid
122	.SUFFIX to match *o.meta, there's no guarantee that it will be as
123	simple as .o or .So etc.
124	We have to defer evaluation until the target script is run
125	for any of these filters to have any effect.
126	Use :S,${.OBJDIR}/,, rather than :T incase there are objects
127	in sub-dirs.
128
129	* lib.mk: leverage ${.SUFFIXES} when setting dependencies.
130
131	* add UPDATE_DEPENDFILE as a dependent option - follows
132	DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for
133	UPDATE_DEPENDFILE when we think it should be yes.
134	This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE
135	without overriding UPDATE_DEPENDFILE directly - which can lead to
136	trouble.
137
1382025-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
139
140	* install-mk (MK_VERSION): 20250515
141
142	* meta2deps.py: resolve the target of a Move or Link first
143	and track the last path resolved, then if the src is a relative
144	path we can easily use that last path to resolve the src correctly.
145
146	* meta2deps.sh: for a Move or Link add the dir of target path to
147	the list used to resolve the src path.
148
1492025-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
150
151	* init.mk: include Skipping ${RELDIR} when _SKIP_BUILD is not empty.
152
1532025-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
154
155	* install-mk (MK_VERSION): 20250414
156
157	* init.mk: check ONLY_*_LIST and NOT_*_LIST for SKIP_BUILD_VAR_LIST
158	to set _SKIP_BUILD
159
160	* genfiles.mk: add FILTER support
161
162	* rst2htm.mk: latest docutils drops .py extensions
163
1642025-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
165
166	* install-mk (MK_VERSION): 20250326
167
168	* auto.obj.mk: fix and simplify handling of relative __objdir,
169	convert it to absolute before checking against .OBJDIR
170
1712025-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
172
173	* install-mk (MK_VERSION): 20250314
174
175	* meta.stage.mk: StageFiles --subdir: preserve the dir part of
176	each file under $dest
177
1782025-03-12  Simon J Gerraty  <sjg@beast.crufty.net>
179
180	* meta.autodep.mk: do a better job of handling MAKESYSPATH in
181	GENDIRDEPS_ENV.  If we have MAKE_VERSION >= 20230123 we can just
182	use .SYSPATH, otherwise it is a bit more complicated.
183
1842025-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
185
186	* rust.mk: use RUST_LIBS and RUST_PROGS
187
1882025-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
189
190	* install-mk (MK_VERSION): 20250101
191
192	* use W flag to :S and :C rather than :tW
193
1942024-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
195
196	* rust.mk: add RUSTFLAGS if needed
197
1982024-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
199
200	* init.mk (OBJS_SRCS_FILTER): apply this as
201	${OBJS_SRCS_FILTER:ts:} as we do in FreeBSD.
202
2032024-12-03  Simon J Gerraty  <sjg@beast.crufty.net>
204
205	* install-mk (MK_VERSION): 20241202
206
207	* setopts.sh: needed by newlog.sh
208
2092024-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
210
211	* meta.sys.mk: add META_MODE_XTRAS to META_MODE to make it
212	easier to add things like 'env' when debugging.
213
214	* install-mk (MK_VERSION): 20241122
215
216	* rust.mk: rename CARGO* to RUST_CARGO* so I don't feel
217	like this makefile should be renamed to cargo.mk
218
2192024-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
220
221	* dirdeps.mk: add DIRDEPS_CACHED_ENV to dirdeps-cached and
222	DIRDEP_USE_EPILOGUE to _DIRDEP_USE
223
2242024-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
225
226	* meta.sys.mk: if MK_META_ERROR_TARGET is yes and NEWLOG_SH is
227	set, and ERROR_LOGDIR already exists, hook _rotateErrorLog to
228	.BEGIN target.
229
2302024-10-27  Simon J Gerraty  <sjg@beast.crufty.net>
231
232	* options.mk: add support for DEBUG_OPTIONS (similar to
233	DEBUG_DIRDEPS) to allow us to see where options get set.
234	Eg. DEBUG_OPTIONS="STAGING*" gives:
235
236	bmake[1]: "mk/options.mk" line 89: sys.mk: MK_STAGING=yes (MK_DIRDEPS_BUILD=no)
237	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING=yes
238	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING_PROG=no
239	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_MAN=yes (MK_STAGING=yes)
240	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_PROG=no (MK_STAGING=yes)
241	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_RUST=no (MK_STAGING_PROG=no)
242
243	* own.mk: fix setting of STAGE_OBJTOP (normally set by sys.dirdeps.mk)
244
2452024-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
246
247	* rust.mk: add some documentation and support for staging
248
2492024-10-25  Simon J Gerraty  <sjg@beast.crufty.net>
250
251	* rust.mk: a means of integrating Rust projects into a larger build.
252
2532024-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
254
255	* dirdeps-targets.mk: if DEBUG_DIRDEPS_TARGETS and we found
256	STATIC_DIRDEPS_CACHE, report its relative path.
257
2582024-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
259
260	* dirdeps.mk: tweak the debug message for "Loading" a
261	Makefile.depend file, always report what the actual makefile is
262	with the DIRDEP it is for.
263	Remove the redundant "Looking" message.
264
2652024-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
266
267	* meta2deps.py: when raising AssertionError include meta file name
268	with $SB trimmed if possible.
269
2702024-09-23  Simon J Gerraty  <sjg@beast.crufty.net>
271
272	* meta2deps.py: replace assert() with raise AssertionError when we
273	detect missing eXits, to ensure a meaningful message gets into
274	log.
275
2762024-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
277
278	* install-mk (MK_VERSION): 20240921
279
280	* FILES: add genfiles.mk
281
2822024-09-20  Simon J Gerraty  <sjg@beast.crufty.net>
283
284	* install-mk (MK_VERSION): 20240920
285
286	* cython.mk: Get PYTHON_VERSION from PYTHON
287
2882024-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
289
290	* subdir.mk: add ${SUBDIR.yes} - allows for SUBDIR.${MK_*}
291	  and handle subdir with '-' in its name.
292
2932024-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
294
295	* install-mk (MK_VERSION): 20240820
296
297	* links.mk: Allow a filter to be applied to SYMLINKS etc.
298	It is up to [BUILD_][SYM]LINKS_FILTER to do something sane.
299	Also only claim we are making a symlink if the value changed.
300
3012024-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
302
303	* install-mk (MK_VERSION): 20240616
304
305	* dirdeps.mk: apply DEP_DIRDEPS_BUILD_DIR_FILTER after we have
306	computed build dirs, since some filters cannot be easily expressed via
307	DEP_DIRDEPS_FILTER.
308
3092024-05-31  Simon J Gerraty  <sjg@beast.crufty.net>
310
311	* dirdeps.mk: move reset of DIRDEPS_EXPORT_VARS
312	until after we a finished with it if building a cache.
313
3142024-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
315
316	* install-mk (MK_VERSION): 20240504
317
318	* dirdeps.mk: allow BUILD_DIRDEPS_OVERRIDES to pass overrides to
319	sub-make building DIRDEPS_CACHE.
320
3212024-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
322
323	* meta.autodep.mk: do not override start_utc
324
3252024-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
326
327	* sys.dirdeps.mk: set defaults for DEP_* at level 0 too.
328	These help when first include of Makefile.depend happens in a leaf
329	dir.
330
331	* install-mk (MK_VERSION): 20240414
332
3332024-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
334
335	* install-mk (MK_VERSION): 20240408
336
337	* init.mk: allow for _ as well as . to join V
338	and Q from QUALIFIED_VAR_LIST and VAR_QUALIFIER_LIST.
339
340	* progs.mk: avoid overlap between PROG_VARS and
341	init.mk's QUALIFIED_VAR_LIST since PROG would also
342	match its VAR_QUALIFIER_LIST,
343	libs.mk does not have the same issue.
344
345	* subdir.mk: _SUBDIRUSE for realinstall should run install
346	remove include of ${.CURDIR}/Makefile.inc that can be done via
347	local.subdir.mk where needed
348
349	* own.mk: do not conflict with man.mk
350
3512024-03-19  Simon J Gerraty  <sjg@beast.crufty.net>
352
353	* install-mk (MK_VERSION): 20240314
354
355	* add sys/Cygwin.mk from Christian Franke
356
3572024-03-09  Simon J Gerraty  <sjg@beast.crufty.net>
358
359	* install-mk (MK_VERSION): 20240309
360
361	* meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not
362	want to save the .ERROR_META_FILE
363
3642024-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
365
366	* install-mk (MK_VERSION): 20240220
367
368	* sys.dirdeps.mk, dirdeps-targets.mk, init.mk:
369	do not set .MAIN: dirdeps in sys.dirdeps.mk
370	dirdeps-targets.mk will do that for top-level builds
371	and init.mk will do it for others.
372	This allows a Makefile which has no need of 'dirdeps' to
373	set .MAIN for itself and "just work".
374
3752024-02-18  Simon J Gerraty  <sjg@beast.crufty.net>
376
377	* bsd.*.mk: for makefiles that get a bsd. symlink,
378	use _this in  multiple inclusion tags since .PARSEFILE will not
379	DTRT when such a makefile is included directly by Makefile and
380	automatically (without bsd. prefix).
381	Since we cannot guarantee that our sys.mk will be used, we provide
382	a default _this in each makefile that gets a bsd. prefix such that
383	the value is the same regardless of bsd. prefix.
384
385	* subdir.mk: drop the !target guard on $SUBDIR_TARGETS
386
3872024-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
388
389	* install-mk (MK_VERSION): 20240212
390
391	* SPDX-License-Identifier: BSD-2-Clause
392	Add SPDX-License-Identifier to inidicate that I consider
393	my copyright on any of these makefiles equivalent to BSD-2-Clause
394
395	* autoconf.mk: allow for configure.ac as currently recommended
396
397	* subdir.mk: support @auto
398	which is replaced with each subdir that
399	has a [Mm]akefile.
400
401	* subdir.mk: include local.subdir.mk if it exists.
402
403	* subdir.mk: rework to handle .WAIT
404
4052024-02-11  Simon J Gerraty  <sjg@beast.crufty.net>
406
407	* subdir.mk: _SUBDIRUSE report the target we are entering subdirs for.
408
4092024-02-10  Simon J Gerraty  <sjg@beast.crufty.net>
410
411	* prog.mk: treat empty SRCS the same as undefined
412
4132024-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
414
415	* Avoid undefined errors in lint (-dL) mode
416
417	* man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7)
418
4192024-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
420
421	* install-mk (MK_VERSION): 20240128
422
423	* FILES: add ccm.dep.mk for C++ modules
424	add suffixes.mk for common location for generic SUFFIX rules.
425
426	* auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk
427	replace OBJ_EXTENSIONS with OBJ_SUFFIXES
428
429	* autodep.mk: leverage CXX_SUFFIXES for __depsrcs
430	and update style (spaces around = etc)
431
432	* init.mk: add OBJS_SRCS_FILTER to filter SRCS when
433	setting OBJS
434
435	* meta2deps.py: handle multiple ./ embedded in path better.
436
4372024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
438
439	* install-mk (MK_VERSION): 20240105
440	* dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same
441	limits on command line length, so skip export of lists to env.
442
4432023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
444
445	* man.mk: add logic for staging man pages
446
4472023-11-28  Simon J Gerraty  <sjg@beast.crufty.net>
448
449	* jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating
450	point.  This keeps JOB_MAX numeric incase another makefile does
451	comparisons.
452
4532023-11-04  Simon J Gerraty  <sjg@beast.crufty.net>
454
455	* dpadd.mk: add support for DPLIBS_QUALIFIER_LIST
456
457	* gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
458
4592023-10-03  Simon J Gerraty  <sjg@beast.crufty.net>
460
461	* compiler.mk (COMPILER_VERSION): clang at least is into
462	double digit major versions.
463
4642023-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
465
466	* install-mk (MK_VERSION): 20231001
467
468	* set _CCLINK in init.mk so lib.mk can use it for default SHLIB_LD
469
470	* lib.mk (cleanlib): use LD_solink so we remove all the right files.
471	Use -Wl for -soname since we now default to linking with CC
472	We should not need SHLIB_LDSTARTFILE or SHLIB_LDENDFILE when linking
473	with CC.
474
4752023-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
476
477	* init.mk (QUALIFIED_VAR_LIST): Add SRCS
478
4792023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
480
481	* jobs.mk (JOB_MAX): use -jC if we can
482	we actually use JOB_MAX_C which defaults to 1.33C
483
4842023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
485
486	* now_utc: %s only works with :localtime
487
4882023-07-14  Simon J Gerraty  <sjg@beast.crufty.net>
489
490	* install-sh: ignore -c as claimed and only insist on
491	a directory for destination when more than one file to copy.
492
493	* sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and
494	${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64)
495
4962023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
497
498	* install-mk (MK_VERSION): 20230711
499
500	* sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible
501	install(1)
502
503	* sys/IRIX.mk:  when setting ROOT_GROUP only match the first :0:
504	set INSTALL to install-sh rather than pathname that may not exist
505	(yet).
506
5072023-07-07  Simon J Gerraty  <sjg@beast.crufty.net>
508
509	* dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE
510	normally this is empty - for the default target, but there are
511	use-cases where we might set it to something else.
512
5132023-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
514
515	* install-mk (MK_VERSION): 20230704
516
517	* dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output
518	when DEBUG_DIRDEPS is in effect.
519	Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n
520	can greatly improve readability.
521
5222023-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
523
524	* meta.autodep.mk (beforegendirdeps): allow tasks to be done
525	at END but before gendirdeps
526
5272023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
528
529	* install-mk (MK_VERSION): 20230522
530
531	* host-target.mk: deal with garbage from uname -m on
532	Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH
533	these days so just leave it be.
534	For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get
535	arm64 and x86_64 in HOST_TARGET.
536
5372023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
538
539	* sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older
540	versions of bmake.
541
542	* dirdeps.mk (TARGET_SPEC_VARS.host):
543	While *most* projects need only DEP_MACHINE for host,
544	there is always an exception.  So we allow for
545	TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS.
546	The default will *just work* for most projects.
547	We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC
548	based on DEP_MACHINE.
549	Allow for M_dep_qual_fixes.host to be different too
550	and take care to apply the right set.
551
5522023-05-14  Simon J Gerraty  <sjg@beast.crufty.net>
553
554	* sys.dirdeps.mk: we *do* want to override OBJTOP
555	and if MAKEOBJDIR was not in env as we want it;
556	put it there - carefully.
557	Ensure OBJROOT ends in / or - (/ preferred)
558	Add more comments to explain what/why.
559
5602023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
561
562	* install-mk (MK_VERSION): 20230512
563
564	* dirdeps.mk: take care not to qualify "host" dirdeps
565
566	* sys.dirdeps.mk (OBJTOP): must use ?=
567
5682023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
569
570	* meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no"
571	suppress processing of .depend
572
5732023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
574
575	* dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP
576
577	* meta.sys.mk sys.dirdeps.mk:
578	originally DIRDEPS_BUILD and META_MODE were the same thing,
579	but META_MODE is useful by itself.
580	Move things from meta.sys.mk which actually pertain to
581	DIRDEPS_BUILD to sys.dirdeps.mk
582
5832023-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
584
585	* install-mk (MK_VERSION): 20230504 May the Forth be with you
586
587	* dirdeps.mk: as with meta.sys.mk we treat "host" as special.
588	DEP_TARGET_SPEC is just ${DEP_MACHINE}
589
590	* meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at
591	level > 0 since these are often refered to in Makefile.depend*
592
5932023-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
594
595	* jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and
596	anything in ${JOB_LOG_START}
597
598	* jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}}
599	or a scripts subdir before searching $PATH.
600
601	* FILES: include newlog.sh for jobs.mk
602
6032023-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
604
605	* install-mk (MK_VERSION): 20230420
606
607	* lib.mk: include LDFLAGS and LDADD when linking shared libs
608
609	* gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc
610	via local.meta.sys.mk rather than local.gendirdeps.mk
611	so DEP_* variables can be set at level 1+ to avoid syntax errors
612	when used in conditionals in manually maintained Makefile.depend
613	files.
614
615	* dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines
616
6172023-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
618
619	* dirdeps.mk: check we were not included by
620	Makefile.depend.options as the result is bad.
621
6222023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
623
624	* install-mk (MK_VERSION): 20230414
625
626	* meta.sys.mk: since we have :range we can put the logic for
627	processing TARGET_SPEC from env here.
628
629	* dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including
630	local.dirdeps-missing.mk, also improve debug output.
631
632	* dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC
633	we need to use :M*[/.]* same as for when actually setting DIRDEPS
634	from the targets on command line.
635
6362023-04-12  Simon J Gerraty  <sjg@beast.crufty.net>
637
638	* Add jobs.mk
639
6402023-03-21  Simon J Gerraty  <sjg@beast.crufty.net>
641
642	* install-mk (MK_VERSION): 20230321
643
644	* meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter
645	STAGE_LIBS for SHLIB_LINKS.
646
647	* autoconf.mk: add .WAIT after config.status
648
6492023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
650
651	* sys.vars.mk: add M_Index to report the index of a word in a list.
652
6532023-02-15  Simon J Gerraty  <sjg@beast.crufty.net>
654
655	* install-mk (MK_VERSION): 20230215
656
657	* warnings.mk: allow better control of -Werror
658	allow -Wno-error or similar to be added if
659	WARNINGS_SET < WERROR_SET
660	account for COMPILER_TYPE
661
6622023-01-29  Simon J Gerraty  <sjg@beast.crufty.net>
663
664	* autoconf.mk: hook config.status to beforebuild.
665
666	* whats.mk: what*.c is NOTMAIN
667
6682023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
669
670	* install-mk (MK_VERSION): 20230127
671	control umask so directories are created with suitable mode.
672
6732023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
674
675	* install-mk (MK_VERSION): 20230120
676
677	* sys.vars.mk: add M_On and M_Onr also cleanup to be more
678	consistent wrt testing MAKE_VERSION
679
6802023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
681
682	* install-mk (MK_VERSION): 20230112
683
684	* meta2deps.{py,sh}: assert if filemon data is truncated
685	we should see the '# Bye bye' record - assert if we do not.
686
6872022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
688
689	* install-mk (MK_VERSION): 20220909
690
691	* sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings
692
6932022-09-06  Simon J Gerraty  <sjg@beast.crufty.net>
694
695	* dirdeps-options.mk: explain the need to use
696	${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to
697	${TARGET_SPEC_VAR}
698
6992022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
700
701	* install-mk (MK_VERSION): 20220903
702
703	* M_cmpv handle more than 3 dots and clear leading 0's
704
7052022-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
706
707	* install-mk (MK_VERSION): 20220720
708
709	* prog.mk: handle PROG_CXX for more than just NetBSD
710
7112022-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
712
713	* install-mk (MK_VERSION): 20220620
714
715	* yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER
716	rather than just suffix rules
717
7182022-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
719
720	* install-mk (MK_VERSION): 20220422
721
722	* gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no"
723	do not capture any local depends in Makefile.depend
724
7252022-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
726
727	* install-mk (MK_VERSION): 20220323
728	* posix.mk: default rules for .POSIX:
729
7302022-03-17  Simon J Gerraty  <sjg@beast.crufty.net>
731
732	* sys/*.mk: remove l from ARFLAGS
733
7342022-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
735
736	* install-mk (MK_VERSION): 20220314
737
738	* dirdeps-options.mk: allow options to be per RELDIR
739	try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed
740	with ${DEP_RELDIR}.
741
7422022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
743
744	* install-mk (MK_VERSION): 20220214
745
746	* cc-wrap.mk: fix :@ modifier
747
7482022-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
749
750	* install-mk (MK_VERSION): 20220206
751
752	* cc-wrap.mk: docuement how CCACHE etc might be set for
753	maximum flexibility
754
7552022-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
756
757	* sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT
758
7592022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
760
761	* install-mk (MK_VERSION): 20220204
762
763	* host-target.mk: use .MAKE.OS if available
764
7652022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
766
767	* install-mk (MK_VERSION): 20220202
768
769	* cc-wrap.mk: allow other entries in CC_WRAP_FILTER
770	We add our filter on extensions last, so prior filters
771	can apply to the whole value of .IMPSRC
772
7732022-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
774
775	* cc-wrap.mk: take advantage of target local variables to
776	wrap compilers like CC CXX with wrappers like ccache distcc etc
777
7782022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
779
780	* meta2deps: we do not expect any trace data for setid apps
781
7822022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
783
784	* dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed
785	to sub-make using DIRDEPS_CACHE
786
7872022-01-07  Simon J Gerraty  <sjg@beast.crufty.net>
788
789	* dirdeps.mk: use _cache_script to minimize the number of shells
790	forked when generating dirdeps.cache
791
7922022-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
793
794	* install-mk (MK_VERSION): 20220101
795
796	* dirdeps.mk: initialize DEP_* and _debug_reldir earlier.
797	If initial DIRDEPS are from command line, create the target
798	_dirdeps_cmdline as an indication.
799
8002022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
801
802	* init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD
803	at top-level only some targets are allowed at level 0,
804	for leaf makefiles only the default (all) target is restricted
805
8062021-12-28  Simon J Gerraty  <sjg@beast.crufty.net>
807
808	* install-mk (MK_VERSION): 20211228
809
810	* meta2deps.py: filemon on Linux is not as reliable as we might
811	like, we do not want to update DIRDEPS if filemon output is
812	incomplete.   Track pids that we 'E'xec and make sure we see an
813	e'X'it for each one.  Throw an error if we are missing any 'X'
814	records.
815
8162021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
817
818	* sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes.
819
820	* meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON
821	is something else.
822
823	* meta.autodep.mk: we can now reference ${.SUFFIXES}
824
825	* meta2deps.py: derive a list of dirdep extensions from
826	TARGET_SPEC to trim from dirdeps.
827
828	* dirdeps.mk: flip the computation of qualified vs unqualified
829	dirdeps - it is much simpler to check for unqualified first.
830
8312021-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
832
833	* install-mk (MK_VERSION): 20211212
834
835	* auto.dep.mk: rearrange so that the trivial implementation
836	for recent bmake is more obvious.
837
8382021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
839
840	* install-mk (MK_VERSION): 20211207
841
842	* Ensure guard targets are .NOTMAIN
843
844	* meta.sys.mk: check for nofilemon support when we skip level 0
845
846	* auto.dep.mk: make this usable in meta mode
847	for platforms that cannot use meta.autodep.mk
848
849	* meta2deps.py: avoid confusion if MACHINE and another
850	TARGET_SPEC_VAR have same value.
851
8522021-11-27  Simon J Gerraty  <sjg@beast.crufty.net>
853
854	* dirdeps.mk: when building dirdeps.cache, minimize the amount of
855	data put into env, by stripping ${SRCTOP}/ from each entry.
856	A long sandbox name can double the amount of memory consumed and
857	in extreme cases cause failure.
858	While we are at it, strip ${SRCTOP}/ from a lot of the debug output.
859
8602021-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
861
862	* install-mk (MK_VERSION): 20211111
863
864	* meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail
865	so fallback to cp if necessary.
866
8672021-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
868
869	* man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year
870	old cmt2doc.pl
871
8722021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
873
874	* meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f}
875	as the symlink (rare)
876
8772021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
878
879	* autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not
880	been read, throw an error after running configure telling user to
881	restart.
882
8832021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
884
885	* install-mk (MK_VERSION): 20211011
886
887	* Add support for SCO_SV
888
8892021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
890
891	* install-mk (MK_VERSION): 20211001
892
893	* man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more
894	flexibility
895
8962021-09-13  Simon J Gerraty  <sjg@beast.crufty.net>
897
898	* options.mk (describe-options): print options and their values
899	  and optional description
900
9012021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
902
903	* install-mk (MK_VERSION): 20210911
904
905	* options.mk (show-options): print options and their values
906
9072021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
908
909	* install-mk (MK_VERSION): 20210909
910
911	* lib.mk: apply patch from <daniel@octaforge.org>
912	to fix shared libs on Linux
913
9142021-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
915
916	* install-mk (MK_VERSION): 20210808
917
918	* options.mk: issue warning for WITH_*=no
919
9202021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
921
922	* install-mk (MK_VERSION): 20210616
923
924	* dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find
925	depend files to read, anchor MACHINE at , or end of string
926	to avoid prefix match.
927
9282021-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
929
930	* install-mk (MK_VERSION): 20210504
931
932	* dirdeps.mk: re-implement ALL_MACHINES support to better
933	cater for local complexities, when ONLY_TARGET_SPEC_LIST
934	is not set. local.dirdeps.mk can set
935	DIRDEPS_ALL_MACHINES_FILTER and/or
936	DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get
937	from listing all existing Makefile.depend.*
938
9392021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
940
941	* install-mk (MK_VERSION): 20210420
942
943	* dirdeps.mk: revert previous - not always safe.
944
9452021-03-20  Simon J Gerraty  <sjg@beast.crufty.net>
946
947	* install-mk (MK_VERSION): 20210321
948
949	* dirdeps.mk: when generating dirdeps.cache
950	we only need to hook the initial DIRDEPS to the
951	dirdeps target.  That and any _build_xtra_dirs (like tests which
952	should not be hooked directly to the dependency graph - to avoid
953	cycles)
954
9552021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
956
957	* install-mk (MK_VERSION): 20210130
958
959	* dirdeps.mk: expr 2 - 1 - 1 exits with a bad status
960	  we need to  guard against this in DIRDEP_LOADAVG_REPORT.
961
962	* dirdeps.mk: restore respect for TARGET_MACHINE
963
9642021-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
965
966	* install-mk (MK_VERSION): 20210101
967
968	* dirdeps.mk: first time we are read, just use TARGET_SPEC for
969	_DEP_TARGET_SPEC
970
9712020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
972
973	* sys.mk (MAKE_SHELL): use ${.SHELL:Ush}
974	and use := when setting SHELL
975
9762020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
977
978	* install-mk (MK_VERSION): 20201221
979
980	* dirdeps-options.mk: latest bmake allows only one arg to .undef
981
9822020-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
983
984	* dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS
985	so that any directory can be treated as a target.
986
9872020-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
988
989	* install-mk (MK_VERSION): 20201126
990
991	* own.mk: use .MAKE.{UID,GID} if available.
992
993	* init.mk: suppress _SKIP_BUILD warning if doing -V
994
9952020-11-20  Simon J Gerraty  <sjg@beast.crufty.net>
996
997	* install-mk (MK_VERSION): 20201120
998
999	* init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS
1000
1001	* dirdeps-targets.mk: fix typo in comment
1002
10032020-11-06  Simon J Gerraty  <sjg@beast.crufty.net>
1004
1005	* install-mk (MK_VERSION): 20201106
1006
1007	* meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed
1008	args to tweak extensions for local deps.
1009
10102020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1011
1012	* install-mk (MK_VERSION): 20201101
1013
1014	* dirdeps.mk: most leaf makefiles are not suitable for building
1015	dirdeps.cache so if RELDIR is not "." use dirdeps.mk
1016
10172020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1018
1019	* install-mk (MK_VERSION): 20201028
1020
1021	* dirdeps.mk: if we don't have :range use equivalent of M_RANGE
1022	when building dirdeps.cache for leaf directory use -f dirdeps.mk
1023
1024	* sys.vars.mk: add M_JOT and M_RANGE
1025
10262020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1027
1028	* install-mk (MK_VERSION): 20201001
1029
1030	* meta2deps.{py,sh}: throw an error if we don't see filemon version
1031
10322020-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
1033
1034	* install-mk (MK_VERSION): 20200909
1035
1036	* dirdeps-cache-update.mk: use cache_update_dirdep as guard target
1037
10382020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1039
1040	* dirdeps.mk: ensure we cannot confuse a static cache for dynamic
1041	(even more rare that use of static cache is playing clever tricks
1042	with it)
1043
10442020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
1045
1046	* dirdeps-cache-update.mk: allow
1047	MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we
1048	actually update STATIC_DIRDEPS_CACHE.
1049
1050	* stage-install.sh: create dest directory if needed
1051	before running install(1)
1052
10532020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
1054
1055	* dirdeps-targets.mk: include Makefile.dirdeps.options
1056
1057	* dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE
1058
10592020-08-09  Simon J Gerraty  <sjg@beast.crufty.net>
1060
1061	* dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty
1062
1063	* dirdeps-cache-update.mk: building parallel cache update
1064	under the context of dirdeps-cached would be ideal, but
1065	is problematic, so it runs as a sibling.
1066	Use cache-built target to ensure we wait for it to complete if
1067	necessary.
1068
10692020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
1070
1071	* install-mk (MK_VERSION): 20200806
1072
1073	* dirdeps-options: allow TARGET_SPEC to affect option values.
1074	Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_*
1075
1076	* dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined
1077	before looking for STATIC_DIRDEPS_CACHE
1078
10792020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
1080
1081	* host-target.mk: Darwin use MACHINE for HOST_ARCH too
1082
1083	* dirdeps-options.mk: improve debug output
1084
10852020-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
1086
1087	* dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE
1088	for use by dirdeps-cache-update.mk
1089
1090	* dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE
1091	for use by dirdeps-cache-update.mk even if we don't use it.
1092
1093	* dirdeps-cache-update.mk: we only need worry about the background
1094	update case, with the above, the update from DIRDEPS_CACHE is
1095	simple.
1096
1097	* meta2deps.py: R 1234 . is not interesting
1098
10992020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
1100
1101	* sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE
1102
1103	* dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS
1104	allows use of lower case for pseudo options.
1105
1106	* dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE
1107
11082020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
1109
1110	* dirdeps-targets.mk: Look for Makefile.dirdeps.cache
1111	which allows us to have a static cache for expensive targets.
1112	Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE
1113	to regenerate the dirdeps.cache it is a copy of.
1114
11152020-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
1116
1117	* Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense.
1118
11192020-07-16  Simon J Gerraty  <sjg@beast.crufty.net>
1120
1121	* dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record
1122	load averages at intervals during build.
1123
11242020-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
1125
1126	* install-mk (MK_VERSION): 20200715
1127
1128	* dirdeps.mk: tweak Checking line to make matching Finished
1129	lines for post-build analysis easier.
1130
1131	* meta.autodep.mk: use !defined(WITHOUT_META_STATS)
1132
1133	* progs.mk: avoid prog.mk outputting multiple Finished lines
1134
11352020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
1136
1137	* dirdeps.mk: further optimize dirdeps.cache
1138	generate a DIRDEPS.${.TARGET} list for other purposes
1139	and improve the layout.
1140
11412020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
1142
1143	* dirdeps.mk: optimize content of dirdeps.cache
1144
11452020-06-28  Simon J Gerraty  <sjg@beast.crufty.net>
1146
1147	* sys/*.mk: make it easier for local*sys.mk to customize by
1148	using ?=
1149
11502020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
1151
1152	* gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0
1153	it is much safer to guard local depends with a simple check for
1154	.MAKE.LEVEL > 0
1155
11562020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
1157
1158	* install-mk (MK_VERSION): 20200610
1159
1160	* mkopt.sh: this needs posix shell so #!/bin/sh should be ok
1161
11622020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
1163
1164	* install-mk (MK_VERSION): 20200606
1165
1166	* dirdeps-targets.mk: allow for filtering of .TARGETS
1167
1168	* meta2deps.py: fix bug in processing 'L'ink and 'M'ove
1169	entries - and we don't care about 'W'rite entries.
1170	Also ignore absolute paths that do not exist.
1171
11722020-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
1173
1174	* install-mk (MK_VERSION): 20200525
1175
1176	* init.mk: expand and simplify handling of qualified vars
1177	like CPPFLAGS.${.TARGET:T}
1178
11792020-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
1180
1181	* install-mk (MK_VERSION): 20200515
1182
1183	* dirdeps.mk: set _debug_* earlier and allow passing -d*
1184	flags to submake when building DIRDEPS_CACHE
1185
11862020-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
1187
1188	* whats.mk: more easily extensible
1189
11902020-05-02  Simon J Gerraty  <sjg@beast.crufty.net>
1191
1192	* whats.mk: greatly simplify by adding what.c to SRCS
1193
11942020-05-01  Simon J Gerraty  <sjg@beast.crufty.net>
1195
1196	* whats.mk: for libs take care how we add to *OBJS
1197
1198	* lib.mk: : works better with whats.mk
1199
12002020-04-25  Simon J Gerraty  <sjg@beast.crufty.net>
1201
1202	* install-mk (MK_VERSION): 20200420
1203
1204	* meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep
1205	contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC}
1206
12072020-04-16  Simon J Gerraty  <sjg@beast.crufty.net>
1208
1209	* install-mk (MK_VERSION): 20200416
1210
1211	* sys/*.mk: set MAKE_SHELL rather than SHELL so as not to
1212	  interfere with user env.
1213
1214	* sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL
1215
1216	* autodep.mk: use MAKE_SHELL.
1217
12182019-11-21  Simon J Gerraty  <sjg@beast.crufty.net>
1219
1220	* gendirdeps.mk: clear .SUFFIXES to avoid a lot of
1221	  wasted effort, and unexport _meta_files when no longer needed as
1222	  it consumes space we need for command line.
1223
12242019-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1225
1226	* dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add
1227	  DIRDEP_USE_PRELUDE at start - facilitates job distribution
1228
12292019-10-04  Simon J Gerraty  <sjg@beast.crufty.net>
1230
1231	* dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST
1232	defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid
1233	TARGET_SPEC qualified depend files.
1234
12352019-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1236
1237	* dirdeps-targets.mk: encapsulate logic for finding top-level
1238	  targets to set initial DIRDEPS for DIRDEPS_BUILD
1239
12402019-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1241
1242	* install-mk (MK_VERSION): 20190911
1243
1244	* compiler.mk: set COMPILER_TYPE
1245
12462019-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
1247
1248	* install-mk (MK_VERSION): 20190704
1249
1250	* sys/Darwin.mk: support for Objective-C and clang
1251
12522019-05-30  Simon J Gerraty  <sjg@beast.crufty.net>
1253
1254	* dirdeps.mk: avoid insanely long command line when generating cache
1255
12562019-05-23  Simon J Gerraty  <sjg@beast.crufty.net>
1257
1258	* install-mk (MK_VERSION): 20190505
1259
1260	* whats.mk: handle corner case SHLIB defined but not LIB
1261
12622018-09-19  Simon J Gerraty  <sjg@beast.crufty.net>
1263
1264	* install-mk (MK_VERSION): 20180919
1265
1266	* dirdeps-options.mk: .undef cannot handle var that expands to
1267	  more than one var.
1268
12692018-07-08  Simon J Gerraty  <sjg@beast.crufty.net>
1270
1271	* meta.stage.mk: allow wildcards in STAGE_FILES.* etc.
1272
12732018-06-01  Simon J Gerraty  <sjg@beast.crufty.net>
1274
1275	* meta.autodep.mk: export META_FILES to avoid command line limit
1276	* gendirdeps.mk: if we have lots of .meta files put them in
1277	  an @list
1278
12792018-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
1280
1281	* dirdeps-options.mk: use local.dirdeps-options.mk
1282	  not local.dirdeps-option.mk
1283
12842018-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1285
1286	* install-mk (MK_VERSION): 20180420
1287	* dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0
1288	  ie. we are building something.
1289
12902018-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
1291
1292	* FILES: add dirdeps-options.mk to deal with optional DIRDEPS.
1293
12942018-04-05  Simon J Gerraty  <sjg@beast.crufty.net>
1295
1296	* install-mk (MK_VERSION): 20180405
1297
1298	* ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER
1299	  if needed.
1300
13012018-01-18  Simon J Gerraty  <sjg@beast.crufty.net>
1302
1303	* install-mk (MK_VERSION): 20180118
1304
1305	* ldorder.mk: let make compute correct link order
1306
13072017-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1308
1309	* install-mk (MK_VERSION): 20171212
1310
1311	* gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER
1312
13132017-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1314
1315	* install-mk (MK_VERSION): 20171111
1316
1317	* lib.mk: ensure META_NOECHO is set
1318
13192017-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1320
1321	* Allow for host32 on rare occasions.
1322
13232017-10-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1324
1325	* install-mk (MK_VERSION): 20171018
1326
1327	* whats.mk: include what_thing in what_uuid to avoid problem
1328	  when building multiple apps in the same directory.
1329
13302017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1331
1332	* install-mk (MK_VERSION): 20170812
1333
1334	* autoconf.mk: Use CONFIGURE_DEPS so Makefile can
1335	  add dependencies for config.recheck and config.gen
1336
13372017-06-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1338
1339	* install-mk (MK_VERSION): 20170630
1340
1341	* meta.stage.mk: avoid triggering stage_* targets with nothing to do.
1342
13432017-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1344
1345	* meta2deps.py: take special care of '..'
1346
13472017-05-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1348
1349	* install-mk (MK_VERSION): 20170515
1350
1351	* dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is
1352	useful/necessary for a Makefile.depend file to export some knobs.
1353	This is complicated when we are doing DIRDEPS_CACHE, so we will
1354	handle export of any variables listed in DEP_EXPORT_VARS.
1355
13562017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1357
1358	* install-mk (MK_VERSION): 20170505
1359
1360	* meta2deps.py: fix botched indenation.
1361
13622017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1363
1364	* sys/*.mk: Remove setting of MAKE it is unnecessary and
1365	  in many cases wrong (basname rather than full path)
1366
1367	* scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk
1368
1369	* init.mk: define realbuild to simplify logic in {lib,prog}.mk etc
1370
13712017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1372
1373	* install-mk (MK_VERSION): 20170501
1374
1375	* doc.mk: fix typo in DOC_INSTALL_OWN
1376
1377	* inc.mk: handle INCGROUPS similar to freebsd
1378
1379	* files.mk: add something for files too
1380
1381	* add staging logic to lib.mk prog.mk etc.
1382
13832017-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1384
1385	* install-mk (MK_VERSION): 20170424
1386
1387	* dirdeps.mk: set NO_DIRDEPS when bootstrapping.
1388	  also target of bootstrap-this when sed is needed should be ${_want:T}
1389
13902017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1391
1392	* install-mk (MK_VERSION): 20170418
1393
1394	* auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a
1395	  prefix match for .CURDIR - in which case .CURDIR *is* __objdir.
1396
13972017-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1398
1399	* install-mk (MK_VERSION): 20170401
1400
1401	* meta2deps.py: add is_src so we can check if obj dependency
1402	  is also a src dependency.
1403
14042017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1405
1406	* install-mk (MK_VERSION): 20170326
1407
1408	* meta.stage.mk: do nothing if NO_STAGING is defined.
1409
14102017-03-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1411
1412	* auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc.
1413
14142017-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1415
1416	* mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_*
1417
14182017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1419
1420	* install-mk (MK_VERSION): 20170301
1421
1422	* dirdeps.mk (_build_all_dirs): update this outside test for empty
1423	  DIRDEPS.
1424
1425	* meta.stage.mk: allow multiple inclusion to the extent it makes
1426	  sense.
1427
14282017-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1429
1430	* prog.mk (install_links): depends on realinstall
1431
14322017-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1433
1434	* install-mk (MK_VERSION): 20170212
1435
1436	* dpadd.mk: avoid applying :T:R twice to DPLIBS entries
1437
14382017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1439
1440	* install-mk (MK_VERSION): 20170130
1441
1442	* dirdeps.mk: use :range if we can.
1443
1444	* sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130
1445
1446	* meta2deps.py: clean paths without using realpath() where possible.
1447	  fix sort_unique.
1448
14492016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1450
1451	* install-mk (MK_VERSION): 20161212
1452
1453	* meta2deps.py: set pid_cwd[pid] when we process 'C'hdir,
1454	rather than when we detect pid change.
1455
14562016-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1457
1458	* install-mk (MK_VERSION): 20161207
1459
1460	* meta.stage.mk: add stage_as_and_symlink for staging packages.
1461	  We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able
1462	  to use foo.tgz to reference the latest staged version - so we
1463	  make foo.tgz a symlink to it.
1464	  Using a target to do both operations ensures we stay in sync.
1465
14662016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1467
1468	* install-mk (MK_VERSION): 20161126
1469
1470	* dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk
1471	  so it can add dependencies.
1472
14732016-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1474
1475	* dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE
1476	  do that they can influence the result correctly.
1477
1478	* dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC
1479
1480	* dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST
1481	  similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST
1482
14832016-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1484
1485	* dirdeps.mk: remove dependence on jot (normal situations anyway).
1486	  Before we read another Makefile.depend* set DEP_* vars from
1487	  _DEP_TARGET_SPEC in case it uses any of them with :=
1488	  When bootstrapping, trim any ,* from extention of chosen _src
1489	  Makefile.depend* to get the machine value we subst for.
1490
14912016-09-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1492
1493	* dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to
1494	  DEP_SKIP_DIR and DEP_DIRDEPS_FILTER
1495
1496	* sys.mk: extract some bits to sys.{debug,vars}.mk
1497	  for easier re-use by others.
1498
14992016-09-23  Simon Gerraty  <sjg@sjg-mba13>
1500
1501	* lib.mk: Use ${PICO} for extension for PIC objects.
1502	  default to .pico (like NetBSD) safe on case insensitive filesystem.
1503
15042016-08-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1505
1506	* meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default
1507
15082016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1509
1510	* install-mk (MK_VERSION): 20160815
1511
1512	* dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only
1513	consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date.
1514
15152016-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1516
1517	* meta.sys.mk (.MAKE.META.IGNORE_PATHS):
1518	  in meta mode we can ignore the mtime of makefiles
1519
15202016-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1521
1522	* install-mk (MK_VERSION): 20160802
1523
1524	* lib.mk (libinstall): depends on beforinstall
1525
1526	* prog.mk (proginstall): depends on beforinstall
1527	  patch from Lauri Tirkkonen
1528
1529	* dirdeps.mk (bootstrap): When bootstrapping; creat
1530	.MAKE.DEPENDFILE_DEFAULT and allow additional filtering via
1531	.MAKE.DEPENDFILE_BOOTSTRAP_SED
1532
1533	* dirdeps.mk: move some comments to where they make sense.
1534
15352016-07-27  Simon J. Gerraty  <sjg@bad.crufty.net>
1536
1537	* dirdeps.mk (DIRDEPS_CACHE): no dirname.
1538
15392016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1540
1541	* install-mk (MK_VERSION): 20160602
1542	* meta.autodep.mk: when passing META_FILES to gendirdeps.mk
1543	  do not apply :T to META_XTRAS
1544	  patch from Bryan Drewery at FreeBSD.org.
1545
15462016-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1547
1548	* install-mk (MK_VERSION): 20160530
1549	* meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH
1550	  make it so.
1551
15522016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1553
1554	* install-mk (MK_VERSION): 20160512
1555
1556	* dpadd.mk: always include local.dpadd.mk if it exists
1557	  remove some things that better belong in local.dpadd.mk
1558	  skip INCLUDES_* for staged libs unless SRC_* defined.
1559
1560	* own.mk: add INCLUDEDIR
1561
15622016-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1563
1564	* dirdeps.mk: when doing -f dirdeps.mk if target suppies no
1565	  TARGET_MACHINE - :E will be empty or match part of path, use
1566	  ${MACHINE}
1567
15682016-04-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1569
1570	* meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to
1571	  NO_FILEMON_COOKIE
1572
1573	* dirdeps.mk: move the logic that allows for
1574	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1575	  inside the check for !target(_DIRDEP_USE)
1576
15772016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1578
1579	* Use <> when including local*.mk and others which may exist
1580	  elsewhere so that user can better control what they get.
1581
1582	* meta.autodep.mk (NO_FILEMON_COOKIE):
1583	  create a cookie if we ever build dir with nofilemon
1584	  so that UPDATE_DEPENDFILE will be forced to NO until cleaned.
1585
15862016-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1587
1588	* install-mk (MK_VERSION): 20160401
1589
1590	* meta2deps.py: fix old print statement when debugging.
1591
1592	* gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X
1593	  patch from Bryan Drewery
1594
15952016-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1596
1597	* install-mk (MK_VERSION): 20160317 (St. Pats)
1598
1599	* warnings.mk: g++ does not like -Wimplicit
1600
1601	* sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the
1602	  pelthora of common suffixes for C++
1603
1604	* lib.mk: use .So for shared objects
1605
16062016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1607
1608	* install-mk (MK_VERSION): 20160315
1609
1610	* meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1)
1611	  normally only applies to scripts.
1612
1613	* dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as
1614	  well as outside it.
1615
16162016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1617
1618	* install-mk (MK_VERSION): 20160310
1619
1620	* dirdeps.mk: use targets rather than a list to track DIRDEPS that
1621	  we have processed; the list gets very inefficient as number of
1622	  DIRDEPS gets large.
1623
1624	* sys.dependfile.mk: fix comment wrt MACHINE
1625
1626	* meta.autodep.mk: ignore staged DPADDs when bootstrapping.
1627	  patch from Bryan Drewery
1628
16292016-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1630
1631	* meta2deps.sh: don't ignore subdirs.
1632	  patch from Bryan Drewery
1633
16342016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1635
1636	* install-mk (MK_VERSION): 20160226
1637
1638	* gendirdeps.mk: mark _DEPENDFILE .NOMETA
1639
16402016-02-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1641
1642	* dirdeps.mk: we shouldn't normally include .depend but if we do
1643	  use .dinclude if we can.
1644
16452016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1646
1647	* install-mk (MK_VERSION): 20160218
1648	* sys.clean-env.mk: with recent change to Var_Subst()
1649	  we cannot use the '$$' trick, but .export-literal does the job
1650	  we need.
1651	* auto.dep.mk: make use .dinclude if we can.
1652
1653
16542016-02-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1655
1656	* dirdeps.mk:
1657	  Add _build_all_dirs such that local.dirdeps.mk can
1658	  add fully qualified dirs to it.
1659	  These will be built normally but the current
1660	  DEP_RELDIR will not depend on then (to avoid cycles).
1661	  This makes it easy to hook things like unit-tests into build.
1662
1663
16642016-01-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1665
1666	* dirdeps.mk: add bootstrap-empty
1667
16682015-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1669
1670	* install-mk (MK_VERSION): 20151212
1671	* auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist.
1672	  only apply :tA to __objdir when comparing to .OBJDIR
1673
16742015-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1675
1676	* install-mk (MK_VERSION): 20151111
1677
1678	* meta.sys.mk: include sys.dependfile.mk
1679
1680	* sys.mk (OPTIONS_DEFAULT_NO): use options.mk
1681	  to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD
1682	  include local.sys.env.mk early
1683	  include local.sys.mk later
1684
1685	* own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk
1686
16872015-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1688
1689	* meta.sys.mk (META_COOKIE_TOUCH):
1690	  add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie
1691
1692	* meta.stage.mk: stage_libs should ignore SYMLINKS.
1693
16942015-10-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1695
1696	* install-mk (MK_VERSION): 20151022
1697
1698	* sys.mk: BSD/OS does not have 'type' as a shell builtin.
1699
17002015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1701
1702	* install-mk (MK_VERSION): 20151020
1703
1704	* dirdeps.mk: Add logic for
1705	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1706
17072015-10-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1708
1709	* install-mk (MK_VERSION): 20151010
1710
17112015-10-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1712
1713	* meta.stage.mk: use staging: ${STAGE_TARGETS:...
1714	  to have stage_lins run last in non-jobs mode.
1715	  Use .ORDER only for jobs mode.
1716
17172015-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1718
1719	* rst2htm.mk: allow for per target flags etc.
1720
17212015-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1722
1723	* install-mk (MK_VERSION): 20150901
1724
1725	* doc.mk: create dir if needed use DOC_INSTALL_OWN
1726
17272015-06-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1728
1729	* install-mk (MK_VERSION): 20150615
1730
1731	* auto.obj.mk: allow use of MAKEOBJDIRPREFIX too.
1732	  Follow make's normal precedence rules.
1733
1734	* gendirdeps.mk: allow customization of the header.
1735	  eg. for FreeBSD:
1736	  GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}';
1737
1738	* meta.autodep.mk: ignore dirdeps.cache*
1739
1740	* meta.stage.mk: when bootstrapping options it can be handy to
1741	  throw warnings rather than errors for staging conflicts.
1742
1743	* meta.sys.mk: include local.meta.sys.mk for customization
1744
17452015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1746
1747	* install-mk (MK_VERSION): 20150606
1748
1749	* dirdeps.mk: don't rely on manually maintained Makefile.depend
1750	  to set DEP_RELDIR and reset DIRDEPS.
1751	  By setting DEP_RELDIR ourselves we can skip :tA
1752
1753	* gendirdeps.mk: skip setting DEP_RELDIR.
1754
17552015-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1756
1757	* dirdeps.mk: avoid wildcards like make(bootstrap*)
1758
17592015-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1760
1761	* install-mk (MK_VERSION): 20150520
1762
1763	* dirdeps.mk: when we are building dirdeps cache file we *want*
1764	  meta_oodate to look at all the Makefile.depend files, so
1765	  set .MAKE.DEPENDFILE to something that won't match.
1766
1767	* meta.stage.mk: for STAGE_AS_* basename of file may not be unique
1768	  so first use absolute path as key.
1769	  Also skip staging at level 0.
1770
17712015-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1772
1773	* install-mk (MK_VERSION): 20150430
1774
1775	* dirdeps.mk: fix _count_dirdeps for non-cache case.
1776
17772015-04-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1778
1779	* install-mk (MK_VERSION): 20150411
1780	  bump version
1781
1782	* own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES.
1783	  it is here mainly for documentation purposes, since
1784	  if using auto.obj.mk it is better done via sys.mk
1785
17862015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1787
1788	* install-mk (MK_VERSION): 20150401
1789
1790	* meta2deps.sh: support @list
1791
1792	* meta2deps.py: updates from Juniper
1793	  o add EXCLUDES
1794	  o skip bogus input files.
1795	  o treat 'M' and 'L' as both an 'R' and a 'W'
1796
17972015-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1798
1799	* install-mk (MK_VERSION): 20150303
1800
1801	* dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache
1802	  which is built via sub-make so we have a .meta file to tell if
1803	  it is out-of-date.
1804	  The dirdeps-cache contains the same dependency rules that we
1805	  normaly construct on the fly.
1806	  This adds a few seconds overhead when the cache is out of date,
1807	  but for a large target, the savings can be significant (10-20min).
1808
18092014-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1810
1811	* install-mk (MK_VERSION): 20141118
1812
1813	* meta.stage.mk: add stale_staged
1814
1815	* dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked
1816	  only useful under very rare conditions such as
1817	  FreeBSD's make universe.
1818
1819	* auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto
1820
18212014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1822
1823	* install-mk (MK_VERSION): 20141111
1824
1825	* mkopt.sh: use consistent semantics for _mk_opt and _mk_opts
1826
18272014-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1828
1829	* FILES: include mkopt.sh which allows handling options in shell
1830	  scripts in a manner compatible with options.mk
1831
18322014-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1833
1834	* meta.stage.mk: ensure only _STAGED_DIRS under objroot are used
1835	  for GENDIRDEPS_FILTER to avoid surprises.
1836
18372014-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1838
1839	* dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by
1840	  the time it is applied to __depdirs they have.
1841
1842	* dirdeps.mk fix filtering of _machines since M_dep_qual_fixes
1843	  expects patterns like *.${MACHINE}
1844
1845	* cython.mk (pyprefix?): use pyprefix to find python bits
1846	  since prefix might be something else (where we install our
1847	  stuff)
1848
18492014-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1850
1851	* install-mk (MK_VERSION): 20140911
1852
1853	* dirdeps.mk: add bootstrap target to simplify adding support for
1854	  new MACHINE.
1855
18562014-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1857
1858	* gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and
1859	  GENDIRDEPS_FILTER_VARS to make it easier to produce sharable
1860	  Makefile.depend files.
1861
18622014-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1863
1864	* install-mk (MK_VERSION): 20140828
1865
1866	* cython.mk: capture logic for building python extension modules
1867	  with Cython.
1868
18692014-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1870
1871	* meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant
1872
18732014-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1874
1875	* install-mk (MK_VERSION): 20140801
1876
1877	* dep.mk: use explicit MKDEP_MK rather than overload MKDEP to
1878	identify the autodep.mk variant.
1879
1880	* sys.dependfile.mk: delete .MAKE.DEPENDFILE if its
1881	initial value does not match .MAKE.DEPENDFILE_PREFIX
1882
1883	* meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS
1884
18852014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1886
1887	* install-mk (MK_VERSION): 20140522
1888
1889	* lib.mk: use CC to link shlib for linux too
1890	  patch from Brendan MacDonell
1891
18922014-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1893
1894	* meta.autodep.mk: add _reldir_{finish,failed} for gathering stats
1895	  if WITH_META_STATS is defined.
1896
18972014-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1898
1899	* dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS)
1900	  to supress dirdeps outside of .CURDIR.
1901
19022014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1903
1904	* Fix spelling errors - patch from Pedro Giffuni
1905
19062014-03-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1907
1908	* install-mk (MK_VERSION): 20140314
1909
1910	* dirdeps.mk (beforedirdeps): a handy hook
1911
1912	* dirdeps.mk (DIRDEP_MAKE): allow the actual command we run
1913	  to visit leaf dirs to be intercepted (eg. for distributed
1914	  build).
1915
1916	* dirdeps.mk (__depdirs): ensure // don't sneak in
1917
1918	* gendirdeps.mk (DIRDEPS): ensure // don't sneak in
1919
1920
19212014-02-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1922
1923	* rst2htm.mk (RST2PDF): add support for rst2pdf
1924
19252014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1926
1927	* install-mk (MK_VERSION): bump version
1928	* dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if
1929	  available.
1930
19312014-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1932
1933	* options.mk: avoid :U so this isn't bmake dependent
1934
19352014-02-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1936
1937	* options.mk: cleanup and simplify semanitcs
1938	  NO_* dominates all, if both WITH_* and WITHOUT_*
1939	  are defined then result is DOMINATE_* which defaults to "no".
1940	  Ie. WITHOUT_ normally wins.
1941
19422013-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1943
1944	* install-mk (MK_VERSION): bump version
1945	* meta2deps.py: convert to print function for python3 compat.
1946	  we also need to open files with mode 'r' rather than 'rb'
1947	  otherwise we get bytes instead of strings.
1948
19492013-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1950
1951	* install-mk (MK_VERSION): bump version
1952
1953	* dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE
1954	  apply the same filtering (M_dep_qual_fixes) when setting _machines
1955	  as _build_dirs.
1956	  Also fix the filtering of Makefile.depend files - for reporting
1957	  what we are looking for (M_dep_qual_fixes can get confused by
1958	  Makefile.depend)
1959	  Add some more debug info.
1960
19612013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1962
1963	* gendirdeps.mk (_objtops): fix typo also
1964	  while processing M2D_OBJROOTS to gather qualdir_list
1965	  qualify $ql with loop iterator to ensure correct results.
1966
19672013-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1968
1969	* install-mk (MK_VERSION): 20130801
1970	* libs.mk: update to match progs.mk
1971
19722013-07-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1973
1974	* install-mk (MK_VERSION): 20130726
1975	  some updates from Juniper and FreeBSD
1976	  o meta2deps.py: indicate file and line number when we hit parse
1977	    errors
1978	    also allow @file to provide huge list of .meta files.
1979	* meta2deps.py: add try_parse() to cleanup the above.
1980
19812013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1982
1983	* install-mk (MK_VERSION): 20130716
1984	* own.mk: add GPROG as an option
1985	* prog.mk: honor MK_GPROF==yes
1986
19872013-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1988
1989	* install-mk (MK_VERSION): 20130505
1990	* gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC
1991	  for when $MACHINE isn't enough for objdir distinction.
1992	  Bring meta2deps.sh closer to par with meta2deps.py.
1993
19942013-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1995
1996	* meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all'
1997	  also if the target 'beforeinstall' exists, make it depend on
1998	  .dirdep (incase it uses STAGE_INSTALL).
1999
20002013-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2001
2002	* install-mk (MK_VERSION): 20130401 ;-)
2003	* meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as
2004	  wrapper around install(1).
2005	* options.mk (OPTION_PREFIX): Allow a prefix other than MK_
2006
20072013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2008
2009	* meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized.
2010	* install-mk (MK_VERSION): bump version
2011
20122013-03-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2013
2014	* install-mk (MK_VERSION): bump version
2015	* gendirdeps.mk: do not apply :tA to DPADD entries, since we lose
2016	  any trailing /., rather apply :tA only when needed.
2017	* gendirdeps.mk: better mimic meta2deps handling of .dirdep files.
2018	* meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance
2019	  consistently.
2020	* dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC.
2021
20222013-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2023
2024	* gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT
2025	  it is simpler to just not update when say building for "host"
2026	  (where we know we apply filters to DIRDEPS), and using a
2027	  non-machine qualified dependfile.
2028
20292013-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2030
2031	* dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR
2032	  and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC
2033	* gendirdeps.mk: ensure _objroot has trailing / if it needs it.
2034	* meta2deps.py: if machine is "host", then also trim
2035	  self.host_target from any OBJROOTS.
2036
2037
20382013-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2039
2040	* gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine
2041	  qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists
2042	  but _DEPENDFILE does not, compare the new _DEPENDFILE against
2043	  .MAKE.DEPENDFILE_DEFAULT and discard if the same.
2044
20452013-03-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2046
2047	* meta.stage.mk: use STAGE_TARGETS to control .ORDER
2048	  and hook to all: via staging:
2049
20502013-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2051
2052	* sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT):
2053	  use a separate variable for the default .MAKE.DEPENDFILE value
2054	  so that it can be controlled independently of
2055	  .MAKE.DEPENDFILE_PREFERENCE
2056
2057	* meta.stage.mk: throw error if cp fails etc.
2058	  Stage*() return early if passed no args.
2059	  .ORDER stage_*
2060
20612013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2062
2063	* install-mk (MK_VERSION): bump version
2064	* gendirdeps.mk: handle multiple M2D_OBJROOTS better.
2065
20662013-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2067
2068	* install-mk (MK_VERSION): bump version to 20130210
2069	* import latest dirdeps.mk, gendirdeps.mk and meta2deps.py
2070	  from Juniper.
2071	  o dirdeps.mk now fully supports TARGET_SPEC consisting of more
2072	    than just MACHINE.
2073	  o no longer use DEP_MACHINE from Makefile.depend* so remove it.
2074
20752013-01-23  Simon J. Gerraty  <sjg@bad.crufty.net>
2076
2077	* install-mk (MK_VERSION): bump version to 20130123
2078	* meta.stage.mk: add stage_links (hard links).
2079	  if doing hard links, we add dest to link as well.
2080	  Default the stage dir for [sym]links to STAGE_OBJTOP since
2081	  these are typically specified as absolute paths.
2082	  Add -m "mode" flag to StageFiles and StageAs.
2083
20842012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2085
2086	* install-mk (MK_VERSION): bump version to 20121111
2087	* autoconf.mk: avoid meta mode seeing changed commands for config.status
2088	* meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps
2089	  in case we were found via .../mk
2090	* sys.clean-env.mk: move it from examples, we and others use it
2091	  "as is".
2092	* FILES: add srctop.mk and options.mk
2093	* own.mk: convert to using options.mk
2094	  which is modeled after FreeBSD's handling of MK_*
2095	  but more flexible.
2096	  This allows MK_* for boolean knobs to not be confused
2097	  with MK* which can be commands.
2098
2099	* examples/sys.clean-env.mk: add WITH[OUT]_ to
2100	  MAKE_ENV_SAVE_PREFIX_LIST.
2101	  Mention that HOME=/var/empty might be a good idea.
2102
21032012-11-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2104
2105	* sys.dependfile.mk: if not depend file exists, $MACHINE
2106	  specific ones are supported but not the default,
2107	  check if any exist and follow suit.
2108
21092012-11-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2110
2111	* install-mk (MK_VERSION): bump version to 20121106
2112
21132012-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2114
2115	* import latest dirdeps.mk and meta2deps.py from Juniper.
2116	* progs.mk: add MAN and CXXFLAGS to PROG_VARS
2117	  also add PROGS_TARGETS and pass on PROG_CXX if it seems
2118	  appropriate.
2119
21202012-11-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2121
2122	* meta.stage.mk: update CLEANFILES
2123	  remove redundant cp of .dirdep from STAGE_AS_SCRIPT.
2124	* progs.mk: Add LDADD to PROG_VARS
2125
21262012-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2127
2128	* meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in
2129	  _STAGED_DIRS so that these can be turned into filters for
2130	  GENDIRDEPS_FILTER.
2131
21322012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2133
2134	* install-mk (MK_VERSION): bump version to 20121010
2135	* meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing
2136	target.dirdep matches .dirdep
2137
21382012-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2139
2140	* install-mk (MK_VERSION): bump version to 20120808
2141	* import latest meta2deps.py from Juniper.
2142
21432012-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2144
2145	* install-mk (MK_VERSION): bump version to 20120711
2146	* dep.mk: add explicit dependencies on SRCS after applying
2147	  SRCS_DEP_FILTER
2148	* meta.autodep.mk: add explicit dependencies on SRCS after
2149	  applying SRCS_DEP_FILTER
2150	* meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed.
2151
21522012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2153
2154	* install-mk (MK_VERSION): bump version to 20120626
2155	* meta.sys.mk: ignore PYTHON if it does not exist
2156	  compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable.
2157	* meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any
2158	  entries ending in .${MACHINE} to decide if qualified _dirdep is
2159	  needed.
2160	* gendirdeps.mk: only produce unqualified deps if no
2161	  .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE}
2162	* meta.subdir.mk: apply SUBDIRDEPS_FILTER
2163
21642012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2165
2166	* install-mk (MK_VERSION): bump version to 20120420
2167	* add sys.dependfile.mk so we can experiment with
2168	  .MAKE.DEPENDFILE_PREFERENCE
2169	* meta.autodep.mk: _DEPENDFILE is precious!
2170
21712012-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2172
2173	* install-mk (MK_VERSION): bump version to 20120315
2174	* install-new.mk: avoid being interrupted
2175
21762012-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2177
2178	* man.mk: MAN might have multiple values so be careful with exists().
2179
21802012-01-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2181
2182	* install-mk (MK_VERSION): bump version to 20120112
2183	* fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled
2184	  as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}'
2185
21862011-12-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2187
2188	* install-mk (MK_VERSION):  bump version to 20111201
2189	* import dirdeps.mk from Juniper sjg@
2190	  o more consistent handling of DEP_MACHINE, especially when
2191	    dealing with an odd Makefile.depend, when normally using
2192	    Makefile.depend.${MACHINE}
2193
21942011-11-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2195
2196	* install-mk (MK_VERSION): bump version to 20111122
2197	* meta.autodep.mk: add some debug output, be more crisp about
2198	  updating.  Use ${.ALLTARGETS:M*.o} as a clue for .depend
2199
22002011-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2201
2202	* install-mk (MK_VERSION): bump version to 20111111
2203	  it's too cool to miss
2204	* import meta* updates from Juniper sjg@
2205	  o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are
2206	    normally using Makefile.depend.${MACHINE}), handy for
2207	    read-only manually maintained dependencies.
2208	  o meta2deps.py add a clear 'ERROR:' token if an exception is raised.
2209	  o gendirdeps.mk if ERROR: from meta2deps.py do not update
2210	    anything.
2211
22122011-10-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2213
2214	* install-new.mk separate the cmp and copy logic to its own function.
2215
22162011-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2217
2218	* install-mk (MK_VERSION): bump version to 20111028
2219	* sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto
2220	* subdir.mk: ensure _SUBDIRUSE is provided
2221	* meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk
2222	* meta.subdir.mk: always allow for Makefile.depend
2223
22242011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2225
2226	* install-mk (MK_VERSION): bump version to 20111010
2227	  o minor tweak to *dirdeps.mk from Juniper sjg@
2228
22292011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2230
2231	* install-mk (MK_VERSION): bump version to 20111001
2232	  o add meta2deps.py from Juniper sjg@
2233	  o tweak gendirdeps.mk to work with meta2deps.py when not
2234	    cross-building
2235	* autoconf.mk: add autoconf-input as a hook for regenerating
2236	  AUTOCONF_INPUTS (configure).
2237
22382011-08-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2239
2240	* meta.autodep.mk: if we do not have OBJS, .depend isn't a useful
2241	  trigger for updating Makefile.depend*
2242
22432011-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2244
2245	* install-mk (MK_VERSION): bump version to 20110808
2246	* obj.mk: minor cleanup
2247	* auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too.
2248
22492011-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2250
2251	* auto.obj.mk (.OBJDIR): throw an error if we cannot use the
2252	  specified dir.
2253
22542011-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2255
2256	* meta.autodep.mk: if XMAKE_META_FILE is set
2257	  the makefile uses a foreign make, and so dependencies
2258	  can only be gathered from a clean tree build.
2259
22602011-06-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2261
2262	* install-mk (MK_VERSION): bump version to 20110622
2263	* meta.autodep.mk: improve bootstraping
2264
22652011-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2266
2267	* yacc.mk: handle the corner case of .c being removed
2268	  while .h remains.
2269
22702011-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2271
2272	* yacc.mk: do .y.h and .y.c separately
2273
22742011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2275
2276	* install-mk (MK_VERSION): bump version to 20110606
2277	* don't store SRC_DIRDEPS in Makefile.depend* by default
2278	  not everyone needs it.
2279
22802011-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2281
2282	* install-mk (MK_VERSION): bump version to 20110505
2283	  first release including meta mode makefiles
2284
22852011-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2286
2287	* meta.stage.mk: add STAGE_AS_SETS and stage_as
2288	  for things that need to be staged with different names.
2289
22902011-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2291
2292	* meta.stage.mk: add notion of STAGE_SETS
2293	  so a makefile can stage to multiple dirs
2294
22952011-04-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2296
2297	* rst2htm.mk: convert rst to s5 (slides) or plain html depending
2298	  on target name.
2299
23002011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2301
2302	* install-mk (MK_VERSION): bump version to 20110330
2303
23042011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
2305
2306	* sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0
2307	  can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest.
2308	* sys.mk: re-define M_whence in terms of M_type.
2309	  M_type is useful for checking if something is a builtin.
2310
23112011-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2312
2313	* meta.stage.mk: add stage_symlinks and leverage StageLinks for
2314	  stage_libs
2315
23162011-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2317
2318	* dirdeps.mk: correct value for _depdir_files depends on
2319	  .MAKE.DEPENDFILE
2320	  Add our copyright - just to make it clear we have frobbed this
2321	  quite a bit.
2322	  DEP_MACHINE needs to be set to MACHINE each time, if using only
2323	  Makefile.depend (cf. Makefile.depend.${MACHINE})
2324
2325	* meta.stage.mk: meta mode version of staging
2326
2327	* init.mk, final.mk: include local.*.mk to simplify customization
2328
23292011-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2330
2331	* auto.obj.mk: just because we are doing mk destroy, we should
2332	  still set .OBJDIR correctly if it exists.
2333
2334	* install-mk (mksrc): do not exclude meta.sys.mk
2335
23362011-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2337
2338	* host-target.mk: set/export _HOST_ARCH etc separately,
2339	  catch junk resulting from uname -p, so we can find sys/Linux.mk
2340	  correctly.
2341
23422011-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2343
2344	* meta.sys.mk: throw an error if /dev/filemon is missing and we
2345	  expected to be updating Makefile.depend*
2346
23472011-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2348
2349	* install-mk (MK_VERSION): bump version to 20110214
2350	* meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES
2351
23522010-09-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2353
2354	* meta.sys.mk: not valid for older bmake
2355
23562010-09-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2357
2358	* install-mk (MK_VERSION): bump version to 20100919
2359	include dirdeps.mk et al from Juniper Networks,
2360	for meta mode - requires filemon(9).
2361	* sys.mk, subdir.mk: Add hooks for meta mode.
2362	we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk
2363	to make turning it on/off simple.
2364
23652010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2366
2367	* install-mk (MK_VERSION): bump version to 20100616
2368	* fix typo in sys.mk
2369
23702010-06-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2371
2372	* install-mk (MK_VERSION): bump version to 20100612
2373	* lib.mk: remove duplicate addition to SOBJS
2374
23752010-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2376
2377	* sys.mk: Add a means of selectively turning on debug flags.
2378	  Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg"
2379	  will act as if we did make -dv if .CURDIR ends in lib/sjg
2380	  DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at
2381	  the start of sys.mk rather than the end.
2382	  This only makes sense for leaf dirs, so we check that
2383	  .MAKE.LEVEL > 0
2384
23852010-06-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2386
2387	* install-mk (MK_VERSION): bump version to 20100608
2388	* sys.mk: include sys.env.mk later so it can use M_ListToSkip et al.
2389	* examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606
2390	  also make it easier for folk to tweak
2391
23922010-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2393
2394	* install-mk (MK_VERSION): bump version to 20100606
2395	  do not install examples/*
2396	* FILES: add examples/sys.clean-env.mk
2397	* examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR
2398	  this requires bmake-20100606 or later to work.
2399
24002010-05-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2401
2402	* sys.mk (M_tA): better simulate the result of :tA if not available.
2403
24042010-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2405
2406	* sys.mk: canonicalize MAKE_VERSION
2407	  old versions reported bmake-<src-date> build-<build-date>
2408	  whereas we only care about <src-date>
2409
24102010-04-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2411
2412	* install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored
2413	* lib.mk: we only build the shared lib if SHLIB_FULLVERSION
2414	  is !empty
2415
24162010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2417
2418	* dpadd.mk: use LDADD_* if defined.
2419
24202010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2421
2422	* install-mk (MK_VERSION): bump version to 20100420
2423	* sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy
2424	* autoconf.mk allow AUTO_AUTOCONF
2425
24262010-04-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2427
2428	* obj.mk: add objwarn to keep freebsd makefiles happy
2429	* auto.obj.mk: ensure Mkdirs is available.
2430	* FILES: add auto.dep.mk - a simpler version of autodep.mk
2431	* dep.mk: auto.dep.mk does not do 'make depend' so ignore it if
2432	  asked to do that.
2433	  fix/simplify the tests for when to run mkdep.
2434	* auto.dep.mk: add some explanation of how/what we do.
2435	* autodep.mk: skip the .OPTIONAL frobbing of .depend
2436	  bmake's FROM_DEPEND flag makes it redundant.
2437
24382010-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2439
2440	* install-mk (MK_VERSION): bump version to 20100404
2441	* subdir.mk: protect from multiple inclusion using _SUBDIRUSE.
2442	* obj.mk: protect from multiple inclusion even as bsd.obj.mk
2443	Also create a target _SUBDIRUSE so that we can  be used without
2444	subdir.mk
2445
24462010-04-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2447
2448	* dep.mk: use <> when .including so can override.
2449
24502010-01-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2451
2452	* lib.mk (SHLIB_LINKS): ensure a string comparison.
2453
24542010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2455
2456	* install-mk (MK_VERSION): bump version to 20100102
2457	* own.mk: ensure PRINTOBJDIR works
2458	* autoconf.mk: pass on CONFIGURE_ARGS
2459	* init.mk: handle COPTS.${.IMPSRC:T} etc.
2460	* lib.mk: allow sys.mk to control SHLIB_FULLVERSION
2461	  fix handling of symlinks for darwin
2462	* libnames.mk: add DSHLIBEXT for libs which only exist as shared.
2463	* man.mk: suppress chown when not root.
2464	* rst2htm.mk: allow srcs from multiple locations.
2465	* sys.mk: M_whence, stop after 1st line of output.
2466	* sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT
2467	* sys/SunOS.mk: we need to export PATH
2468
24692009-12-23  Simon J. Gerraty  <sjg@void.crufty.net>
2470
2471	* install-mk (MK_VERSION): bump version
2472	  include rst2htm.mk
2473
24742009-12-17  Simon J. Gerraty  <sjg@void.crufty.net>
2475
2476	* sys.mk,libnames.mk add .-include <local.*>
2477	  this allows local customization without the need to edit the
2478	  distributed files.
2479
24802009-12-14  Simon J. Gerraty  <sjg@void.crufty.net>
2481
2482	* dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up
2483	  older versions already installed.
2484
24852009-12-13  Simon J. Gerraty  <sjg@void.crufty.net>
2486
2487	* stage.mk (.stage-install): generalize lib.mk's .libinstall
2488	* rules.mk rules for generic Makefile.
2489	* inc.mk install for includes.
2490
24912009-12-11  Simon J. Gerraty  <sjg@void.crufty.net>
2492
2493	* sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check
2494	  this, so provide it if using native make.
2495
24962009-12-10  Simon J. Gerraty  <sjg@void.crufty.net>
2497
2498	* FILES: move all the platform *.sys.mk files to sys/*.mk
2499	* Rename Generic.sys.mk to sys.mk - we always want it.
2500
25012009-11-17  Simon J. Gerraty  <sjg@void.crufty.net>
2502
2503	* install-mk (MK_VERSION): bump version
2504	* host-target.mk: only export the expensive stuff
2505	* Generic.sys.mk (sys_mk): for SunOS we need to look for
2506	  ${HOST_OS}.${HOST_OSMAJOR} too!
2507
25082009-11-07  Simon J. Gerraty  <sjg@void.crufty.net>
2509
2510	* install-mk (MK_VERSION): bump version
2511	* lib.mk: if sys.mk doesn't give us an lorder, don't use it.
2512	  based on patch from Greg Olszewski.
2513	* Generic.sys.mk: if we have nothing to work with
2514	set LORDER etc only if we can find it.
2515
25162009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
2517
2518	* install-mk (MK_VERSION): bump version
2519	* man.mk: cleanman: remove CLEANMAN if defined.
2520
25212009-09-04  Simon J. Gerraty  <sjg@void.crufty.net>
2522
2523	* SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk
2524
25252009-07-17  Simon J. Gerraty  <sjg@void.crufty.net>
2526
2527	* install-mk (MK_VERSION): bump version
2528	include auto.obj.mk
2529
2530
25312009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
2532
2533	* prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail.
2534
25352008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
2536
2537	* install-mk (MK_VERSION): bump version
2538	man.mk: ensure we generate *.cat1 etc in .
2539
25402008-07-16  Simon J. Gerraty  <sjg@void.crufty.net>
2541
2542	* install-mk (MK_VERSION): bump version
2543	add prlist.mk
2544
25452007-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
2546
2547	* Generic.sys.mk: Allow os specific sys.mk to be in a
2548	subdir of ${.PARSEDIR}
2549
25502007-11-22  Simon J. Gerraty  <sjg@void.crufty.net>
2551
2552	* install-mk (MK_VERSION): bump version
2553	* general cleanup
2554	* dpadd.mk introduce DPMAGIC_LIBS_*
2555
25562007-04-30  Simon J. Gerraty  <sjg@void.crufty.net>
2557
2558	* install-mk (MK_VERSION): bump version
2559
2560	* libs.mk, progs.mk, autodep.mk: allow for per lib/prog
2561	depend files and ensure clean is called for each lib/prog.
2562
25632007-03-27  Simon J. Gerraty  <sjg@void.crufty.net>
2564
2565	* autodep.mk (.depend): delete lines that do not start with
2566	space and do not contain ':'
2567
25682007-02-16  Simon J. Gerraty  <sjg@void.crufty.net>
2569
2570	* autodep.mk (.depend): gcc may wrap lines if pathnames are long
2571	so make sure the transform for .OPTIONAL copes.
2572
25732007-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2574
2575	* install-mk (MK_VERSION): bump version
2576
2577	* own.mk: make sure RM and LN are defined.
2578
2579	* obj.mk: fix a typo, and objlink target.
2580
25812006-12-30  Simon J. Gerraty  <sjg@void.crufty.net>
2582
2583	* install-mk (MK_VERSION): bump version
2584	* added libs.mk - analogous to progs.mk
2585	  make both of them always inlcude {lib,prog}.mk
2586
25872006-12-28  Simon J. Gerraty  <sjg@void.crufty.net>
2588
2589	* progs.mk: add a means of building multiple apps in one dir.
2590
25912006-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
2592
2593	* install-mk (MK_VERSION): bump version to 20061126
2594
2595	* warnings.mk: detect invalid WARNINGS_SET
2596
2597	* warnings.mk: use ${.TARGET:T:R}.o when looking for target
2598	specific warnings.
2599
2600	* For .cc sources, turn off warnings that g++ vomits on.
2601
26022006-11-08  Simon J. Gerraty  <sjg@void.crufty.net>
2603
2604	* own.mk: if __initialized__ target doesn't exist and we are
2605	FreeBSD we got here directly from sys.mk
2606
26072006-11-06  Simon J. Gerraty  <sjg@void.crufty.net>
2608
2609	* install-mk (MK_VERSION): bump version to 20061106
2610	add scripts.mk
2611
26122006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
2613
2614	* install-mk (MK_VERSION): bump version to 20060318
2615
2616	* autodep.mk: avoid := when modifying OBJS into __dependsrcs
2617
26182006-03-02  Simon J. Gerraty  <sjg@void.crufty.net>
2619
2620	* install-mk (MK_VERSION): bump version to 20060302
2621	* autodep.mk: use -MF et al to help gcc+ccache DTRT.
2622
26232006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
2624
2625	* install-mk (MK_VERSION): bump version to 20060301
2626	* autodep.mk (.depend):
2627	if MAKE_VERSION is newer than  20050530 we can make .END depend on
2628	.depend and make .depend depend on __depsrcs that exist.
2629	* dpadd.mk: add SRC_PATHADD
2630
26312005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
2632
2633	* install-mk (MK_VERSION): bump version to 20051104
2634	* prog.mk: remove all the LIBC?= junk, use
2635	.-include libnames.mk instead (none by default).
2636	also if USE_DPADD_MK is set, include that.
2637
26382005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2639
2640	* install-mk (MK_VERSION): bump version to 20051001
2641	Add UnixWare.sys.mk from Klaus Heinz.
2642
26432005-04-05  Simon J. Gerraty  <sjg@void.crufty.net>
2644
2645	* install-mk: always install *.sys.mk and if need be symlink one
2646	to sys.mk
2647
26482005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
2649
2650	* subdir.mk, own.mk: use .MAKE rather than MAKE
2651
26522004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
2653
2654	* own.mk: don't use NetBSD's _SRC_TOP_ it can
2655	cause confusion.  Also don't take just 'mk' as a
2656	srctop indicator.
2657
26582004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
2659
2660	* warnings.mk: overhauled, now very powerful.
2661
26622004-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2663
2664	* Generic.sys.mk: need to use ${.PARSEDIR} with exists().
2665
26662004-02-01  Simon J. Gerraty  <sjg@void.crufty.net>
2667
2668	* install-mk (MK_VERSION): bump version to 20040201
2669	* extract HOST_TARGET stuff to host-target.mk so own.mk and
2670	Generic.sys.mk can share.
2671	* fix typo in autodep.mk _SUBDIRUSE not _SUBDIR.
2672
26732003-09-30  Simon J. Gerraty  <sjg@void.crufty.net>
2674
2675	* install-mk (MK_VERSION): 20030930
2676	* rename generic.sys.mk to Generic.sys.mk
2677	so that it does not get installed (unless being used as sys.mk)
2678	* set OS and ROOT_GROUP for those that we know the value.
2679	for others (eg. Generic.sys.mk) wrap the != in an .ifndef so
2680	we don't do it again for each sub-make.
2681
26822003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
2683
2684	* install-mk (MK_VERSION): 20030928
2685	Add some extra *.sys.mk from bootstrap-pkgsrc
2686	some of these likely still need work.
2687	Make everything default to root:wheel ownership,
2688	sys.mk can set ROOT_GROUP accordingly.
2689
26902003-08-07  Simon J. Gerraty  <sjg@void.crufty.net>
2691
2692	* install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR
2693	not the portable ones.
2694
26952003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
2696
2697	* install-mk: add ability to use cp -f when updating
2698	destination .mk files.  Also now possible to play games with
2699	FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk
2700	into dest - not recommended unless you seriously want to.
2701
27022003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
2703
2704	* own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc
2705	for semi-compatability with NetBSD.
2706
27072003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
2708
2709	* install-mk: add a version indicator
2710
27112003-07-22  Simon J. Gerraty  <sjg@void.crufty.net>
2712
2713	* prog.mk: don't try and use ${LIBCRT0} if its /dev/null
2714
2715	* install-mk: Allow FORCE_SYS_MK to come from env
2716
2717
2718
2719