xref: /freebsd/contrib/bmake/mk/ChangeLog (revision 78ae60b447ebf420dd5cebfec30480866fd5cef4)
12024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* install-mk (MK_VERSION): 20240105
4	* dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same
5	limits on command line length, so skip export of lists to env.
6
72023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
8
9	* man.mk: add logic for staging man pages
10
112023-11-28  Simon J Gerraty  <sjg@beast.crufty.net>
12
13	* jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating
14	point.  This keeps JOB_MAX numeric incase another makefile does
15	comparisons.
16
172023-11-04  Simon J Gerraty  <sjg@beast.crufty.net>
18
19	* dpadd.mk: add support for DPLIBS_QUALIFIER_LIST
20
21	* gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
22
232023-10-03  Simon J Gerraty  <sjg@beast.crufty.net>
24
25	* compiler.mk (COMPILER_VERSION): clang at least is into
26	double digit major versions.
27
282023-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
29
30	* install-mk (MK_VERSION): 20231001
31
32	* set _CCLINK in init.mk so lib.mk can use it for default SHLIB_LD
33
34	* lib.mk (cleanlib): use LD_solink so we remove all the right files.
35	Use -Wl for -soname since we now default to linking with CC
36	We should not need SHLIB_LDSTARTFILE or SHLIB_LDENDFILE when linking
37	with CC.
38
392023-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
40
41	* init.mk (QUALIFIED_VAR_LIST): Add SRCS
42
432023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
44
45	* jobs.mk (JOB_MAX): use -jC if we can
46	we actually use JOB_MAX_C which defaults to 1.33C
47
482023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
49
50	* now_utc: %s only works with :localtime
51
522023-07-14  Simon J Gerraty  <sjg@beast.crufty.net>
53
54	* install-sh: ignore -c as claimed and only insist on
55	a directory for destination when more than one file to copy.
56
57	* sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and
58	${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64)
59
602023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
61
62	* install-mk (MK_VERSION): 20230711
63
64	* sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible
65	install(1)
66
67	* sys/IRIX.mk:  when setting ROOT_GROUP only match the first :0:
68	set INSTALL to install-sh rather than pathname that may not exist
69	(yet).
70
712023-07-07  Simon J Gerraty  <sjg@beast.crufty.net>
72
73	* dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE
74	normally this is empty - for the default target, but there are
75	use-cases where we might set it to something else.
76
772023-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
78
79	* install-mk (MK_VERSION): 20230704
80
81	* dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output
82	when DEBUG_DIRDEPS is in effect.
83	Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n
84	can greatly improve readability.
85
862023-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
87
88	* meta.autodep.mk (beforegendirdeps): allow tasks to be done
89	at END but before gendirdeps
90
912023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
92
93	* install-mk (MK_VERSION): 20230522
94
95	* host-target.mk: deal with garbage from uname -m on
96	Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH
97	these days so just leave it be.
98	For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get
99	arm64 and x86_64 in HOST_TARGET.
100
1012023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
102
103	* sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older
104	versions of bmake.
105
106	* dirdeps.mk (TARGET_SPEC_VARS.host):
107	While *most* projects need only DEP_MACHINE for host,
108	there is always an exception.  So we allow for
109	TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS.
110	The default will *just work* for most projects.
111	We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC
112	based on DEP_MACHINE.
113	Allow for M_dep_qual_fixes.host to be different too
114	and take care to apply the right set.
115
1162023-05-14  Simon J Gerraty  <sjg@beast.crufty.net>
117
118	* sys.dirdeps.mk: we *do* want to override OBJTOP
119	and if MAKEOBJDIR was not in env as we want it;
120	put it there - carefully.
121	Ensure OBJROOT ends in / or - (/ preferred)
122	Add more comments to explain what/why.
123
1242023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
125
126	* install-mk (MK_VERSION): 20230512
127
128	* dirdeps.mk: take care not to qualify "host" dirdeps
129
130	* sys.dirdeps.mk (OBJTOP): must use ?=
131
1322023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
133
134	* meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no"
135	suppress processing of .depend
136
1372023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
138
139	* dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP
140
141	* meta.sys.mk sys.dirdeps.mk:
142	originally DIRDEPS_BUILD and META_MODE were the same thing,
143	but META_MODE is useful by itself.
144	Move things from meta.sys.mk which actually pertain to
145	DIRDEPS_BUILD to sys.dirdeps.mk
146
1472023-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
148
149	* install-mk (MK_VERSION): 20230504 May the Forth be with you
150
151	* dirdeps.mk: as with meta.sys.mk we treat "host" as special.
152	DEP_TARGET_SPEC is just ${DEP_MACHINE}
153
154	* meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at
155	level > 0 since these are often refered to in Makefile.depend*
156
1572023-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
158
159	* jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and
160	anything in ${JOB_LOG_START}
161
162	* jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}}
163	or a scripts subdir before searching $PATH.
164
165	* FILES: include newlog.sh for jobs.mk
166
1672023-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
168
169	* install-mk (MK_VERSION): 20230420
170
171	* lib.mk: include LDFLAGS and LDADD when linking shared libs
172
173	* gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc
174	via local.meta.sys.mk rather than local.gendirdeps.mk
175	so DEP_* variables can be set at level 1+ to avoid syntax errors
176	when used in conditionals in manually maintained Makefile.depend
177	files.
178
179	* dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines
180
1812023-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
182
183	* dirdeps.mk: check we were not included by
184	Makefile.depend.options as the result is bad.
185
1862023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
187
188	* install-mk (MK_VERSION): 20230414
189
190	* meta.sys.mk: since we have :range we can put the logic for
191	processing TARGET_SPEC from env here.
192
193	* dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including
194	local.dirdeps-missing.mk, also improve debug output.
195
196	* dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC
197	we need to use :M*[/.]* same as for when actually setting DIRDEPS
198	from the targets on command line.
199
2002023-04-12  Simon J Gerraty  <sjg@beast.crufty.net>
201
202	* Add jobs.mk
203
2042023-03-21  Simon J Gerraty  <sjg@beast.crufty.net>
205
206	* install-mk (MK_VERSION): 20230321
207
208	* meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter
209	STAGE_LIBS for SHLIB_LINKS.
210
211	* autoconf.mk: add .WAIT after config.status
212
2132023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
214
215	* sys.vars.mk: add M_Index to report the index of a word in a list.
216
2172023-02-15  Simon J Gerraty  <sjg@beast.crufty.net>
218
219	* install-mk (MK_VERSION): 20230215
220
221	* warnings.mk: allow better control of -Werror
222	allow -Wno-error or similar to be added if
223	WARNINGS_SET < WERROR_SET
224	account for COMPILER_TYPE
225
2262023-01-29  Simon J Gerraty  <sjg@beast.crufty.net>
227
228	* autoconf.mk: hook config.status to beforebuild.
229
230	* whats.mk: what*.c is NOTMAIN
231
2322023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
233
234	* install-mk (MK_VERSION): 20230127
235	control umask so directories are created with suitable mode.
236
2372023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
238
239	* install-mk (MK_VERSION): 20230120
240
241	* sys.vars.mk: add M_On and M_Onr also cleanup to be more
242	consistent wrt testing MAKE_VERSION
243
2442023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
245
246	* install-mk (MK_VERSION): 20230112
247
248	* meta2deps.{py,sh}: assert if filemon data is truncated
249	we should see the '# Bye bye' record - assert if we do not.
250
2512022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
252
253	* install-mk (MK_VERSION): 20220909
254
255	* sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings
256
2572022-09-06  Simon J Gerraty  <sjg@beast.crufty.net>
258
259	* dirdeps-options.mk: explain the need to use
260	${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to
261	${TARGET_SPEC_VAR}
262
2632022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
264
265	* install-mk (MK_VERSION): 20220903
266
267	* M_cmpv handle more than 3 dots and clear leading 0's
268
2692022-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
270
271	* install-mk (MK_VERSION): 20220720
272
273	* prog.mk: handle PROG_CXX for more than just NetBSD
274
2752022-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
276
277	* install-mk (MK_VERSION): 20220620
278
279	* yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER
280	rather than just suffix rules
281
2822022-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
283
284	* install-mk (MK_VERSION): 20220422
285
286	* gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no"
287	do not capture any local depends in Makefile.depend
288
2892022-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
290
291	* install-mk (MK_VERSION): 20220323
292	* posix.mk: default rules for .POSIX:
293
2942022-03-17  Simon J Gerraty  <sjg@beast.crufty.net>
295
296	* sys/*.mk: remove l from ARFLAGS
297
2982022-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
299
300	* install-mk (MK_VERSION): 20220314
301
302	* dirdeps-options.mk: allow options to be per RELDIR
303	try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed
304	with ${DEP_RELDIR}.
305
3062022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
307
308	* install-mk (MK_VERSION): 20220214
309
310	* cc-wrap.mk: fix :@ modifier
311
3122022-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
313
314	* install-mk (MK_VERSION): 20220206
315
316	* cc-wrap.mk: docuement how CCACHE etc might be set for
317	maximum flexibility
318
3192022-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
320
321	* sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT
322
3232022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
324
325	* install-mk (MK_VERSION): 20220204
326
327	* host-target.mk: use .MAKE.OS if available
328
3292022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
330
331	* install-mk (MK_VERSION): 20220202
332
333	* cc-wrap.mk: allow other entries in CC_WRAP_FILTER
334	We add our filter on extensions last, so prior filters
335	can apply to the whole value of .IMPSRC
336
3372022-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
338
339	* cc-wrap.mk: take advantage of target local variables to
340	wrap compilers like CC CXX with wrappers like ccache distcc etc
341
3422022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
343
344	* meta2deps: we do not expect any trace data for setid apps
345
3462022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
347
348	* dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed
349	to sub-make using DIRDEPS_CACHE
350
3512022-01-07  Simon J Gerraty  <sjg@beast.crufty.net>
352
353	* dirdeps.mk: use _cache_script to minimize the number of shells
354	forked when generating dirdeps.cache
355
3562022-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
357
358	* install-mk (MK_VERSION): 20220101
359
360	* dirdeps.mk: initialize DEP_* and _debug_reldir earlier.
361	If initial DIRDEPS are from command line, create the target
362	_dirdeps_cmdline as an indication.
363
3642022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
365
366	* init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD
367	at top-level only some targets are allowed at level 0,
368	for leaf makefiles only the default (all) target is restricted
369
3702021-12-28  Simon J Gerraty  <sjg@beast.crufty.net>
371
372	* install-mk (MK_VERSION): 20211228
373
374	* meta2deps.py: filemon on Linux is not as reliable as we might
375	like, we do not want to update DIRDEPS if filemon output is
376	incomplete.   Track pids that we 'E'xec and make sure we see an
377	e'X'it for each one.  Throw an error if we are missing any 'X'
378	records.
379
3802021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
381
382	* sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes.
383
384	* meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON
385	is something else.
386
387	* meta.autodep.mk: we can now reference ${.SUFFIXES}
388
389	* meta2deps.py: derive a list of dirdep extensions from
390	TARGET_SPEC to trim from dirdeps.
391
392	* dirdeps.mk: flip the computation of qualified vs unqualified
393	dirdeps - it is much simpler to check for unqualified first.
394
3952021-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
396
397	* install-mk (MK_VERSION): 20211212
398
399	* auto.dep.mk: rearrange so that the trivial implementation
400	for recent bmake is more obvious.
401
4022021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
403
404	* install-mk (MK_VERSION): 20211207
405
406	* Ensure guard targets are .NOTMAIN
407
408	* meta.sys.mk: check for nofilemon support when we skip level 0
409
410	* auto.dep.mk: make this usable in meta mode
411	for platforms that cannot use meta.autodep.mk
412
413	* meta2deps.py: avoid confusion if MACHINE and another
414	TARGET_SPEC_VAR have same value.
415
4162021-11-27  Simon J Gerraty  <sjg@beast.crufty.net>
417
418	* dirdeps.mk: when building dirdeps.cache, minimize the amount of
419	data put into env, by stripping ${SRCTOP}/ from each entry.
420	A long sandbox name can double the amount of memory consumed and
421	in extreme cases cause failure.
422	While we are at it, strip ${SRCTOP}/ from a lot of the debug output.
423
4242021-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
425
426	* install-mk (MK_VERSION): 20211111
427
428	* meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail
429	so fallback to cp if necessary.
430
4312021-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
432
433	* man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year
434	old cmt2doc.pl
435
4362021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
437
438	* meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f}
439	as the symlink (rare)
440
4412021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
442
443	* autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not
444	been read, throw an error after running configure telling user to
445	restart.
446
4472021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
448
449	* install-mk (MK_VERSION): 20211011
450
451	* Add support for SCO_SV
452
4532021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
454
455	* install-mk (MK_VERSION): 20211001
456
457	* man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more
458	flexibility
459
4602021-09-13  Simon J Gerraty  <sjg@beast.crufty.net>
461
462	* options.mk (describe-options): print options and their values
463	  and optional description
464
4652021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
466
467	* install-mk (MK_VERSION): 20210911
468
469	* options.mk (show-options): print options and their values
470
4712021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
472
473	* install-mk (MK_VERSION): 20210909
474
475	* lib.mk: apply patch from <daniel@octaforge.org>
476	to fix shared libs on Linux
477
4782021-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
479
480	* install-mk (MK_VERSION): 20210808
481
482	* options.mk: issue warning for WITH_*=no
483
4842021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
485
486	* install-mk (MK_VERSION): 20210616
487
488	* dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find
489	depend files to read, anchor MACHINE at , or end of string
490	to avoid prefix match.
491
4922021-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
493
494	* install-mk (MK_VERSION): 20210504
495
496	* dirdeps.mk: re-implement ALL_MACHINES support to better
497	cater for local complexities, when ONLY_TARGET_SPEC_LIST
498	is not set. local.dirdeps.mk can set
499	DIRDEPS_ALL_MACHINES_FILTER and/or
500	DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get
501	from listing all existing Makefile.depend.*
502
5032021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
504
505	* install-mk (MK_VERSION): 20210420
506
507	* dirdeps.mk: revert previous - not always safe.
508
5092021-03-20  Simon J Gerraty  <sjg@beast.crufty.net>
510
511	* install-mk (MK_VERSION): 20210321
512
513	* dirdeps.mk: when generating dirdeps.cache
514	we only need to hook the initial DIRDEPS to the
515	dirdeps target.  That and any _build_xtra_dirs (like tests which
516	should not be hooked directly to the dependency graph - to avoid
517	cycles)
518
5192021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
520
521	* install-mk (MK_VERSION): 20210130
522
523	* dirdeps.mk: expr 2 - 1 - 1 exits with a bad status
524	  we need to  guard against this in DIRDEP_LOADAVG_REPORT.
525
526	* dirdeps.mk: restore respect for TARGET_MACHINE
527
5282021-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
529
530	* install-mk (MK_VERSION): 20210101
531
532	* dirdeps.mk: first time we are read, just use TARGET_SPEC for
533	_DEP_TARGET_SPEC
534
5352020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
536
537	* sys.mk (MAKE_SHELL): use ${.SHELL:Ush}
538	and use := when setting SHELL
539
5402020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
541
542	* install-mk (MK_VERSION): 20201221
543
544	* dirdeps-options.mk: latest bmake allows only one arg to .undef
545
5462020-12-11  Simon J Gerraty  <sjg@beast.crufty.net>
547
548	* dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS
549	so that any directory can be treated as a target.
550
5512020-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
552
553	* install-mk (MK_VERSION): 20201126
554
555	* own.mk: use .MAKE.{UID,GID} if available.
556
557	* init.mk: suppress _SKIP_BUILD warning if doing -V
558
5592020-11-20  Simon J Gerraty  <sjg@beast.crufty.net>
560
561	* install-mk (MK_VERSION): 20201120
562
563	* init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS
564
565	* dirdeps-targets.mk: fix typo in comment
566
5672020-11-06  Simon J Gerraty  <sjg@beast.crufty.net>
568
569	* install-mk (MK_VERSION): 20201106
570
571	* meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed
572	args to tweak extensions for local deps.
573
5742020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
575
576	* install-mk (MK_VERSION): 20201101
577
578	* dirdeps.mk: most leaf makefiles are not suitable for building
579	dirdeps.cache so if RELDIR is not "." use dirdeps.mk
580
5812020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
582
583	* install-mk (MK_VERSION): 20201028
584
585	* dirdeps.mk: if we don't have :range use equivalent of M_RANGE
586	when building dirdeps.cache for leaf directory use -f dirdeps.mk
587
588	* sys.vars.mk: add M_JOT and M_RANGE
589
5902020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
591
592	* install-mk (MK_VERSION): 20201001
593
594	* meta2deps.{py,sh}: throw an error if we don't see filemon version
595
5962020-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
597
598	* install-mk (MK_VERSION): 20200909
599
600	* dirdeps-cache-update.mk: use cache_update_dirdep as guard target
601
6022020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
603
604	* dirdeps.mk: ensure we cannot confuse a static cache for dynamic
605	(even more rare that use of static cache is playing clever tricks
606	with it)
607
6082020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
609
610	* dirdeps-cache-update.mk: allow
611	MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we
612	actually update STATIC_DIRDEPS_CACHE.
613
614	* stage-install.sh: create dest directory if needed
615	before running install(1)
616
6172020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
618
619	* dirdeps-targets.mk: include Makefile.dirdeps.options
620
621	* dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE
622
6232020-08-09  Simon J Gerraty  <sjg@beast.crufty.net>
624
625	* dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty
626
627	* dirdeps-cache-update.mk: building parallel cache update
628	under the context of dirdeps-cached would be ideal, but
629	is problematic, so it runs as a sibling.
630	Use cache-built target to ensure we wait for it to complete if
631	necessary.
632
6332020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
634
635	* install-mk (MK_VERSION): 20200806
636
637	* dirdeps-options: allow TARGET_SPEC to affect option values.
638	Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_*
639
640	* dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined
641	before looking for STATIC_DIRDEPS_CACHE
642
6432020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
644
645	* host-target.mk: Darwin use MACHINE for HOST_ARCH too
646
647	* dirdeps-options.mk: improve debug output
648
6492020-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
650
651	* dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE
652	for use by dirdeps-cache-update.mk
653
654	* dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE
655	for use by dirdeps-cache-update.mk even if we don't use it.
656
657	* dirdeps-cache-update.mk: we only need worry about the background
658	update case, with the above, the update from DIRDEPS_CACHE is
659	simple.
660
661	* meta2deps.py: R 1234 . is not interesting
662
6632020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
664
665	* sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE
666
667	* dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS
668	allows use of lower case for pseudo options.
669
670	* dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE
671
6722020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
673
674	* dirdeps-targets.mk: Look for Makefile.dirdeps.cache
675	which allows us to have a static cache for expensive targets.
676	Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE
677	to regenerate the dirdeps.cache it is a copy of.
678
6792020-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
680
681	* Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense.
682
6832020-07-16  Simon J Gerraty  <sjg@beast.crufty.net>
684
685	* dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record
686	load averages at intervals during build.
687
6882020-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
689
690	* install-mk (MK_VERSION): 20200715
691
692	* dirdeps.mk: tweak Checking line to make matching Finished
693	lines for post-build analysis easier.
694
695	* meta.autodep.mk: use !defined(WITHOUT_META_STATS)
696
697	* progs.mk: avoid prog.mk outputting multiple Finished lines
698
6992020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
700
701	* dirdeps.mk: further optimize dirdeps.cache
702	generate a DIRDEPS.${.TARGET} list for other purposes
703	and improve the layout.
704
7052020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
706
707	* dirdeps.mk: optimize content of dirdeps.cache
708
7092020-06-28  Simon J Gerraty  <sjg@beast.crufty.net>
710
711	* sys/*.mk: make it easier for local*sys.mk to customize by
712	using ?=
713
7142020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
715
716	* gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0
717	it is much safer to guard local depends with a simple check for
718	.MAKE.LEVEL > 0
719
7202020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
721
722	* install-mk (MK_VERSION): 20200610
723
724	* mkopt.sh: this needs posix shell so #!/bin/sh should be ok
725
7262020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
727
728	* install-mk (MK_VERSION): 20200606
729
730	* dirdeps-targets.mk: allow for filtering of .TARGETS
731
732	* meta2deps.py: fix bug in processing 'L'ink and 'M'ove
733	entries - and we don't care about 'W'rite entries.
734	Also ignore absolute paths that do not exist.
735
7362020-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
737
738	* install-mk (MK_VERSION): 20200525
739
740	* init.mk: expand and simplify handling of qualified vars
741	like CPPFLAGS.${.TARGET:T}
742
7432020-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
744
745	* install-mk (MK_VERSION): 20200515
746
747	* dirdeps.mk: set _debug_* earlier and allow passing -d*
748	flags to submake when building DIRDEPS_CACHE
749
7502020-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
751
752	* whats.mk: more easily extensible
753
7542020-05-02  Simon J Gerraty  <sjg@beast.crufty.net>
755
756	* whats.mk: greatly simplify by adding what.c to SRCS
757
7582020-05-01  Simon J Gerraty  <sjg@beast.crufty.net>
759
760	* whats.mk: for libs take care how we add to *OBJS
761
762	* lib.mk: : works better with whats.mk
763
7642020-04-25  Simon J Gerraty  <sjg@beast.crufty.net>
765
766	* install-mk (MK_VERSION): 20200420
767
768	* meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep
769	contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC}
770
7712020-04-16  Simon J Gerraty  <sjg@beast.crufty.net>
772
773	* install-mk (MK_VERSION): 20200416
774
775	* sys/*.mk: set MAKE_SHELL rather than SHELL so as not to
776	  interfere with user env.
777
778	* sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL
779
780	* autodep.mk: use MAKE_SHELL.
781
7822019-11-21  Simon J Gerraty  <sjg@beast.crufty.net>
783
784	* gendirdeps.mk: clear .SUFFIXES to avoid a lot of
785	  wasted effort, and unexport _meta_files when no longer needed as
786	  it consumes space we need for command line.
787
7882019-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
789
790	* dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add
791	  DIRDEP_USE_PRELUDE at start - facilitates job distribution
792
7932019-10-04  Simon J Gerraty  <sjg@beast.crufty.net>
794
795	* dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST
796	defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid
797	TARGET_SPEC qualified depend files.
798
7992019-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
800
801	* dirdeps-targets.mk: encapsulate logic for finding top-level
802	  targets to set initial DIRDEPS for DIRDEPS_BUILD
803
8042019-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
805
806	* install-mk (MK_VERSION): 20190911
807
808	* compiler.mk: set COMPILER_TYPE
809
8102019-07-17  Simon J Gerraty  <sjg@beast.crufty.net>
811
812	* install-mk (MK_VERSION): 20190704
813
814	* sys/Darwin.mk: support for Objective-C and clang
815
8162019-05-30  Simon J Gerraty  <sjg@beast.crufty.net>
817
818	* dirdeps.mk: avoid insanely long command line when generating cache
819
8202019-05-23  Simon J Gerraty  <sjg@beast.crufty.net>
821
822	* install-mk (MK_VERSION): 20190505
823
824	* whats.mk: handle corner case SHLIB defined but not LIB
825
8262018-09-19  Simon J Gerraty  <sjg@beast.crufty.net>
827
828	* install-mk (MK_VERSION): 20180919
829
830	* dirdeps-options.mk: .undef cannot handle var that expands to
831	  more than one var.
832
8332018-07-08  Simon J Gerraty  <sjg@beast.crufty.net>
834
835	* meta.stage.mk: allow wildcards in STAGE_FILES.* etc.
836
8372018-06-01  Simon J Gerraty  <sjg@beast.crufty.net>
838
839	* meta.autodep.mk: export META_FILES to avoid command line limit
840	* gendirdeps.mk: if we have lots of .meta files put them in
841	  an @list
842
8432018-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
844
845	* dirdeps-options.mk: use local.dirdeps-options.mk
846	  not local.dirdeps-option.mk
847
8482018-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
849
850	* install-mk (MK_VERSION): 20180420
851	* dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0
852	  ie. we are building something.
853
8542018-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
855
856	* FILES: add dirdeps-options.mk to deal with optional DIRDEPS.
857
8582018-04-05  Simon J Gerraty  <sjg@beast.crufty.net>
859
860	* install-mk (MK_VERSION): 20180405
861
862	* ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER
863	  if needed.
864
8652018-01-18  Simon J Gerraty  <sjg@beast.crufty.net>
866
867	* install-mk (MK_VERSION): 20180118
868
869	* ldorder.mk: let make compute correct link order
870
8712017-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
872
873	* install-mk (MK_VERSION): 20171212
874
875	* gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER
876
8772017-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
878
879	* install-mk (MK_VERSION): 20171111
880
881	* lib.mk: ensure META_NOECHO is set
882
8832017-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
884
885	* Allow for host32 on rare occasions.
886
8872017-10-18  Simon J. Gerraty  <sjg@bad.crufty.net>
888
889	* install-mk (MK_VERSION): 20171018
890
891	* whats.mk: include what_thing in what_uuid to avoid problem
892	  when building multiple apps in the same directory.
893
8942017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
895
896	* install-mk (MK_VERSION): 20170812
897
898	* autoconf.mk: Use CONFIGURE_DEPS so Makefile can
899	  add dependencies for config.recheck and config.gen
900
9012017-06-30  Simon J. Gerraty  <sjg@bad.crufty.net>
902
903	* install-mk (MK_VERSION): 20170630
904
905	* meta.stage.mk: avoid triggering stage_* targets with nothing to do.
906
9072017-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
908
909	* meta2deps.py: take special care of '..'
910
9112017-05-15  Simon J. Gerraty  <sjg@bad.crufty.net>
912
913	* install-mk (MK_VERSION): 20170515
914
915	* dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is
916	useful/necessary for a Makefile.depend file to export some knobs.
917	This is complicated when we are doing DIRDEPS_CACHE, so we will
918	handle export of any variables listed in DEP_EXPORT_VARS.
919
9202017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
921
922	* install-mk (MK_VERSION): 20170505
923
924	* meta2deps.py: fix botched indenation.
925
9262017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
927
928	* sys/*.mk: Remove setting of MAKE it is unnecessary and
929	  in many cases wrong (basname rather than full path)
930
931	* scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk
932
933	* init.mk: define realbuild to simplify logic in {lib,prog}.mk etc
934
9352017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
936
937	* install-mk (MK_VERSION): 20170501
938
939	* doc.mk: fix typo in DOC_INSTALL_OWN
940
941	* inc.mk: handle INCGROUPS similar to freebsd
942
943	* files.mk: add something for files too
944
945	* add staging logic to lib.mk prog.mk etc.
946
9472017-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
948
949	* install-mk (MK_VERSION): 20170424
950
951	* dirdeps.mk: set NO_DIRDEPS when bootstrapping.
952	  also target of bootstrap-this when sed is needed should be ${_want:T}
953
9542017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
955
956	* install-mk (MK_VERSION): 20170418
957
958	* auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a
959	  prefix match for .CURDIR - in which case .CURDIR *is* __objdir.
960
9612017-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
962
963	* install-mk (MK_VERSION): 20170401
964
965	* meta2deps.py: add is_src so we can check if obj dependency
966	  is also a src dependency.
967
9682017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
969
970	* install-mk (MK_VERSION): 20170326
971
972	* meta.stage.mk: do nothing if NO_STAGING is defined.
973
9742017-03-24  Simon J. Gerraty  <sjg@bad.crufty.net>
975
976	* auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc.
977
9782017-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
979
980	* mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_*
981
9822017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
983
984	* install-mk (MK_VERSION): 20170301
985
986	* dirdeps.mk (_build_all_dirs): update this outside test for empty
987	  DIRDEPS.
988
989	* meta.stage.mk: allow multiple inclusion to the extent it makes
990	  sense.
991
9922017-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
993
994	* prog.mk (install_links): depends on realinstall
995
9962017-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
997
998	* install-mk (MK_VERSION): 20170212
999
1000	* dpadd.mk: avoid applying :T:R twice to DPLIBS entries
1001
10022017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1003
1004	* install-mk (MK_VERSION): 20170130
1005
1006	* dirdeps.mk: use :range if we can.
1007
1008	* sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130
1009
1010	* meta2deps.py: clean paths without using realpath() where possible.
1011	  fix sort_unique.
1012
10132016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1014
1015	* install-mk (MK_VERSION): 20161212
1016
1017	* meta2deps.py: set pid_cwd[pid] when we process 'C'hdir,
1018	rather than when we detect pid change.
1019
10202016-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1021
1022	* install-mk (MK_VERSION): 20161207
1023
1024	* meta.stage.mk: add stage_as_and_symlink for staging packages.
1025	  We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able
1026	  to use foo.tgz to reference the latest staged version - so we
1027	  make foo.tgz a symlink to it.
1028	  Using a target to do both operations ensures we stay in sync.
1029
10302016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1031
1032	* install-mk (MK_VERSION): 20161126
1033
1034	* dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk
1035	  so it can add dependencies.
1036
10372016-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1038
1039	* dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE
1040	  do that they can influence the result correctly.
1041
1042	* dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC
1043
1044	* dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST
1045	  similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST
1046
10472016-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1048
1049	* dirdeps.mk: remove dependence on jot (normal situations anyway).
1050	  Before we read another Makefile.depend* set DEP_* vars from
1051	  _DEP_TARGET_SPEC in case it uses any of them with :=
1052	  When bootstrapping, trim any ,* from extention of chosen _src
1053	  Makefile.depend* to get the machine value we subst for.
1054
10552016-09-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1056
1057	* dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to
1058	  DEP_SKIP_DIR and DEP_DIRDEPS_FILTER
1059
1060	* sys.mk: extract some bits to sys.{debug,vars}.mk
1061	  for easier re-use by others.
1062
10632016-09-23  Simon Gerraty  <sjg@sjg-mba13>
1064
1065	* lib.mk: Use ${PICO} for extension for PIC objects.
1066	  default to .pico (like NetBSD) safe on case insensitive filesystem.
1067
10682016-08-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1069
1070	* meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default
1071
10722016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1073
1074	* install-mk (MK_VERSION): 20160815
1075
1076	* dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only
1077	consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date.
1078
10792016-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1080
1081	* meta.sys.mk (.MAKE.META.IGNORE_PATHS):
1082	  in meta mode we can ignore the mtime of makefiles
1083
10842016-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1085
1086	* install-mk (MK_VERSION): 20160802
1087
1088	* lib.mk (libinstall): depends on beforinstall
1089
1090	* prog.mk (proginstall): depends on beforinstall
1091	  patch from Lauri Tirkkonen
1092
1093	* dirdeps.mk (bootstrap): When bootstrapping; creat
1094	.MAKE.DEPENDFILE_DEFAULT and allow additional filtering via
1095	.MAKE.DEPENDFILE_BOOTSTRAP_SED
1096
1097	* dirdeps.mk: move some comments to where they make sense.
1098
10992016-07-27  Simon J. Gerraty  <sjg@bad.crufty.net>
1100
1101	* dirdeps.mk (DIRDEPS_CACHE): no dirname.
1102
11032016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1104
1105	* install-mk (MK_VERSION): 20160602
1106	* meta.autodep.mk: when passing META_FILES to gendirdeps.mk
1107	  do not apply :T to META_XTRAS
1108	  patch from Bryan Drewery at FreeBSD.org.
1109
11102016-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1111
1112	* install-mk (MK_VERSION): 20160530
1113	* meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH
1114	  make it so.
1115
11162016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1117
1118	* install-mk (MK_VERSION): 20160512
1119
1120	* dpadd.mk: always include local.dpadd.mk if it exists
1121	  remove some things that better belong in local.dpadd.mk
1122	  skip INCLUDES_* for staged libs unless SRC_* defined.
1123
1124	* own.mk: add INCLUDEDIR
1125
11262016-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1127
1128	* dirdeps.mk: when doing -f dirdeps.mk if target suppies no
1129	  TARGET_MACHINE - :E will be empty or match part of path, use
1130	  ${MACHINE}
1131
11322016-04-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1133
1134	* meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to
1135	  NO_FILEMON_COOKIE
1136
1137	* dirdeps.mk: move the logic that allows for
1138	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1139	  inside the check for !target(_DIRDEP_USE)
1140
11412016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1142
1143	* Use <> when including local*.mk and others which may exist
1144	  elsewhere so that user can better control what they get.
1145
1146	* meta.autodep.mk (NO_FILEMON_COOKIE):
1147	  create a cookie if we ever build dir with nofilemon
1148	  so that UPDATE_DEPENDFILE will be forced to NO until cleaned.
1149
11502016-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1151
1152	* install-mk (MK_VERSION): 20160401
1153
1154	* meta2deps.py: fix old print statement when debugging.
1155
1156	* gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X
1157	  patch from Bryan Drewery
1158
11592016-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1160
1161	* install-mk (MK_VERSION): 20160317 (St. Pats)
1162
1163	* warnings.mk: g++ does not like -Wimplicit
1164
1165	* sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the
1166	  pelthora of common suffixes for C++
1167
1168	* lib.mk: use .So for shared objects
1169
11702016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1171
1172	* install-mk (MK_VERSION): 20160315
1173
1174	* meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1)
1175	  normally only applies to scripts.
1176
1177	* dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as
1178	  well as outside it.
1179
11802016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1181
1182	* install-mk (MK_VERSION): 20160310
1183
1184	* dirdeps.mk: use targets rather than a list to track DIRDEPS that
1185	  we have processed; the list gets very inefficient as number of
1186	  DIRDEPS gets large.
1187
1188	* sys.dependfile.mk: fix comment wrt MACHINE
1189
1190	* meta.autodep.mk: ignore staged DPADDs when bootstrapping.
1191	  patch from Bryan Drewery
1192
11932016-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1194
1195	* meta2deps.sh: don't ignore subdirs.
1196	  patch from Bryan Drewery
1197
11982016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1199
1200	* install-mk (MK_VERSION): 20160226
1201
1202	* gendirdeps.mk: mark _DEPENDFILE .NOMETA
1203
12042016-02-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1205
1206	* dirdeps.mk: we shouldn't normally include .depend but if we do
1207	  use .dinclude if we can.
1208
12092016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1210
1211	* install-mk (MK_VERSION): 20160218
1212	* sys.clean-env.mk: with recent change to Var_Subst()
1213	  we cannot use the '$$' trick, but .export-literal does the job
1214	  we need.
1215	* auto.dep.mk: make use .dinclude if we can.
1216
1217
12182016-02-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1219
1220	* dirdeps.mk:
1221	  Add _build_all_dirs such that local.dirdeps.mk can
1222	  add fully qualified dirs to it.
1223	  These will be built normally but the current
1224	  DEP_RELDIR will not depend on then (to avoid cycles).
1225	  This makes it easy to hook things like unit-tests into build.
1226
1227
12282016-01-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1229
1230	* dirdeps.mk: add bootstrap-empty
1231
12322015-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1233
1234	* install-mk (MK_VERSION): 20151212
1235	* auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist.
1236	  only apply :tA to __objdir when comparing to .OBJDIR
1237
12382015-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1239
1240	* install-mk (MK_VERSION): 20151111
1241
1242	* meta.sys.mk: include sys.dependfile.mk
1243
1244	* sys.mk (OPTIONS_DEFAULT_NO): use options.mk
1245	  to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD
1246	  include local.sys.env.mk early
1247	  include local.sys.mk later
1248
1249	* own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk
1250
12512015-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1252
1253	* meta.sys.mk (META_COOKIE_TOUCH):
1254	  add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie
1255
1256	* meta.stage.mk: stage_libs should ignore SYMLINKS.
1257
12582015-10-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1259
1260	* install-mk (MK_VERSION): 20151022
1261
1262	* sys.mk: BSD/OS does not have 'type' as a shell builtin.
1263
12642015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1265
1266	* install-mk (MK_VERSION): 20151020
1267
1268	* dirdeps.mk: Add logic for
1269	  make -f dirdeps.mk some/dir.${TARGET_SPEC}
1270
12712015-10-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1272
1273	* install-mk (MK_VERSION): 20151010
1274
12752015-10-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1276
1277	* meta.stage.mk: use staging: ${STAGE_TARGETS:...
1278	  to have stage_lins run last in non-jobs mode.
1279	  Use .ORDER only for jobs mode.
1280
12812015-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1282
1283	* rst2htm.mk: allow for per target flags etc.
1284
12852015-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1286
1287	* install-mk (MK_VERSION): 20150901
1288
1289	* doc.mk: create dir if needed use DOC_INSTALL_OWN
1290
12912015-06-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1292
1293	* install-mk (MK_VERSION): 20150615
1294
1295	* auto.obj.mk: allow use of MAKEOBJDIRPREFIX too.
1296	  Follow make's normal precedence rules.
1297
1298	* gendirdeps.mk: allow customization of the header.
1299	  eg. for FreeBSD:
1300	  GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}';
1301
1302	* meta.autodep.mk: ignore dirdeps.cache*
1303
1304	* meta.stage.mk: when bootstrapping options it can be handy to
1305	  throw warnings rather than errors for staging conflicts.
1306
1307	* meta.sys.mk: include local.meta.sys.mk for customization
1308
13092015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1310
1311	* install-mk (MK_VERSION): 20150606
1312
1313	* dirdeps.mk: don't rely on manually maintained Makefile.depend
1314	  to set DEP_RELDIR and reset DIRDEPS.
1315	  By setting DEP_RELDIR ourselves we can skip :tA
1316
1317	* gendirdeps.mk: skip setting DEP_RELDIR.
1318
13192015-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1320
1321	* dirdeps.mk: avoid wildcards like make(bootstrap*)
1322
13232015-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1324
1325	* install-mk (MK_VERSION): 20150520
1326
1327	* dirdeps.mk: when we are building dirdeps cache file we *want*
1328	  meta_oodate to look at all the Makefile.depend files, so
1329	  set .MAKE.DEPENDFILE to something that won't match.
1330
1331	* meta.stage.mk: for STAGE_AS_* basename of file may not be unique
1332	  so first use absolute path as key.
1333	  Also skip staging at level 0.
1334
13352015-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1336
1337	* install-mk (MK_VERSION): 20150430
1338
1339	* dirdeps.mk: fix _count_dirdeps for non-cache case.
1340
13412015-04-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1342
1343	* install-mk (MK_VERSION): 20150411
1344	  bump version
1345
1346	* own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES.
1347	  it is here mainly for documentation purposes, since
1348	  if using auto.obj.mk it is better done via sys.mk
1349
13502015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1351
1352	* install-mk (MK_VERSION): 20150401
1353
1354	* meta2deps.sh: support @list
1355
1356	* meta2deps.py: updates from Juniper
1357	  o add EXCLUDES
1358	  o skip bogus input files.
1359	  o treat 'M' and 'L' as both an 'R' and a 'W'
1360
13612015-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1362
1363	* install-mk (MK_VERSION): 20150303
1364
1365	* dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache
1366	  which is built via sub-make so we have a .meta file to tell if
1367	  it is out-of-date.
1368	  The dirdeps-cache contains the same dependency rules that we
1369	  normaly construct on the fly.
1370	  This adds a few seconds overhead when the cache is out of date,
1371	  but for a large target, the savings can be significant (10-20min).
1372
13732014-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1374
1375	* install-mk (MK_VERSION): 20141118
1376
1377	* meta.stage.mk: add stale_staged
1378
1379	* dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked
1380	  only useful under very rare conditions such as
1381	  FreeBSD's make universe.
1382
1383	* auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto
1384
13852014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1386
1387	* install-mk (MK_VERSION): 20141111
1388
1389	* mkopt.sh: use consistent semantics for _mk_opt and _mk_opts
1390
13912014-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1392
1393	* FILES: include mkopt.sh which allows handling options in shell
1394	  scripts in a manner compatible with options.mk
1395
13962014-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1397
1398	* meta.stage.mk: ensure only _STAGED_DIRS under objroot are used
1399	  for GENDIRDEPS_FILTER to avoid surprises.
1400
14012014-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1402
1403	* dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by
1404	  the time it is applied to __depdirs they have.
1405
1406	* dirdeps.mk fix filtering of _machines since M_dep_qual_fixes
1407	  expects patterns like *.${MACHINE}
1408
1409	* cython.mk (pyprefix?): use pyprefix to find python bits
1410	  since prefix might be something else (where we install our
1411	  stuff)
1412
14132014-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1414
1415	* install-mk (MK_VERSION): 20140911
1416
1417	* dirdeps.mk: add bootstrap target to simplify adding support for
1418	  new MACHINE.
1419
14202014-09-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1421
1422	* gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and
1423	  GENDIRDEPS_FILTER_VARS to make it easier to produce sharable
1424	  Makefile.depend files.
1425
14262014-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1427
1428	* install-mk (MK_VERSION): 20140828
1429
1430	* cython.mk: capture logic for building python extension modules
1431	  with Cython.
1432
14332014-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1434
1435	* meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant
1436
14372014-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1438
1439	* install-mk (MK_VERSION): 20140801
1440
1441	* dep.mk: use explicit MKDEP_MK rather than overload MKDEP to
1442	identify the autodep.mk variant.
1443
1444	* sys.dependfile.mk: delete .MAKE.DEPENDFILE if its
1445	initial value does not match .MAKE.DEPENDFILE_PREFIX
1446
1447	* meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS
1448
14492014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1450
1451	* install-mk (MK_VERSION): 20140522
1452
1453	* lib.mk: use CC to link shlib for linux too
1454	  patch from Brendan MacDonell
1455
14562014-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1457
1458	* meta.autodep.mk: add _reldir_{finish,failed} for gathering stats
1459	  if WITH_META_STATS is defined.
1460
14612014-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1462
1463	* dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS)
1464	  to supress dirdeps outside of .CURDIR.
1465
14662014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1467
1468	* Fix spelling errors - patch from Pedro Giffuni
1469
14702014-03-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1471
1472	* install-mk (MK_VERSION): 20140314
1473
1474	* dirdeps.mk (beforedirdeps): a handy hook
1475
1476	* dirdeps.mk (DIRDEP_MAKE): allow the actual command we run
1477	  to visit leaf dirs to be intercepted (eg. for distributed
1478	  build).
1479
1480	* dirdeps.mk (__depdirs): ensure // don't sneak in
1481
1482	* gendirdeps.mk (DIRDEPS): ensure // don't sneak in
1483
1484
14852014-02-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1486
1487	* rst2htm.mk (RST2PDF): add support for rst2pdf
1488
14892014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1490
1491	* install-mk (MK_VERSION): bump version
1492	* dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if
1493	  available.
1494
14952014-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1496
1497	* options.mk: avoid :U so this isn't bmake dependent
1498
14992014-02-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1500
1501	* options.mk: cleanup and simplify semanitcs
1502	  NO_* dominates all, if both WITH_* and WITHOUT_*
1503	  are defined then result is DOMINATE_* which defaults to "no".
1504	  Ie. WITHOUT_ normally wins.
1505
15062013-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1507
1508	* install-mk (MK_VERSION): bump version
1509	* meta2deps.py: convert to print function for python3 compat.
1510	  we also need to open files with mode 'r' rather than 'rb'
1511	  otherwise we get bytes instead of strings.
1512
15132013-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1514
1515	* install-mk (MK_VERSION): bump version
1516
1517	* dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE
1518	  apply the same filtering (M_dep_qual_fixes) when setting _machines
1519	  as _build_dirs.
1520	  Also fix the filtering of Makefile.depend files - for reporting
1521	  what we are looking for (M_dep_qual_fixes can get confused by
1522	  Makefile.depend)
1523	  Add some more debug info.
1524
15252013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1526
1527	* gendirdeps.mk (_objtops): fix typo also
1528	  while processing M2D_OBJROOTS to gather qualdir_list
1529	  qualify $ql with loop iterator to ensure correct results.
1530
15312013-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1532
1533	* install-mk (MK_VERSION): 20130801
1534	* libs.mk: update to match progs.mk
1535
15362013-07-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1537
1538	* install-mk (MK_VERSION): 20130726
1539	  some updates from Juniper and FreeBSD
1540	  o meta2deps.py: indicate file and line number when we hit parse
1541	    errors
1542	    also allow @file to provide huge list of .meta files.
1543	* meta2deps.py: add try_parse() to cleanup the above.
1544
15452013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1546
1547	* install-mk (MK_VERSION): 20130716
1548	* own.mk: add GPROG as an option
1549	* prog.mk: honor MK_GPROF==yes
1550
15512013-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1552
1553	* install-mk (MK_VERSION): 20130505
1554	* gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC
1555	  for when $MACHINE isn't enough for objdir distinction.
1556	  Bring meta2deps.sh closer to par with meta2deps.py.
1557
15582013-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1559
1560	* meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all'
1561	  also if the target 'beforeinstall' exists, make it depend on
1562	  .dirdep (incase it uses STAGE_INSTALL).
1563
15642013-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1565
1566	* install-mk (MK_VERSION): 20130401 ;-)
1567	* meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as
1568	  wrapper around install(1).
1569	* options.mk (OPTION_PREFIX): Allow a prefix other than MK_
1570
15712013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1572
1573	* meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized.
1574	* install-mk (MK_VERSION): bump version
1575
15762013-03-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1577
1578	* install-mk (MK_VERSION): bump version
1579	* gendirdeps.mk: do not apply :tA to DPADD entries, since we lose
1580	  any trailing /., rather apply :tA only when needed.
1581	* gendirdeps.mk: better mimic meta2deps handling of .dirdep files.
1582	* meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance
1583	  consistently.
1584	* dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC.
1585
15862013-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1587
1588	* gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT
1589	  it is simpler to just not update when say building for "host"
1590	  (where we know we apply filters to DIRDEPS), and using a
1591	  non-machine qualified dependfile.
1592
15932013-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1594
1595	* dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR
1596	  and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC
1597	* gendirdeps.mk: ensure _objroot has trailing / if it needs it.
1598	* meta2deps.py: if machine is "host", then also trim
1599	  self.host_target from any OBJROOTS.
1600
1601
16022013-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1603
1604	* gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine
1605	  qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists
1606	  but _DEPENDFILE does not, compare the new _DEPENDFILE against
1607	  .MAKE.DEPENDFILE_DEFAULT and discard if the same.
1608
16092013-03-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1610
1611	* meta.stage.mk: use STAGE_TARGETS to control .ORDER
1612	  and hook to all: via staging:
1613
16142013-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1615
1616	* sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT):
1617	  use a separate variable for the default .MAKE.DEPENDFILE value
1618	  so that it can be controlled independently of
1619	  .MAKE.DEPENDFILE_PREFERENCE
1620
1621	* meta.stage.mk: throw error if cp fails etc.
1622	  Stage*() return early if passed no args.
1623	  .ORDER stage_*
1624
16252013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1626
1627	* install-mk (MK_VERSION): bump version
1628	* gendirdeps.mk: handle multiple M2D_OBJROOTS better.
1629
16302013-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1631
1632	* install-mk (MK_VERSION): bump version to 20130210
1633	* import latest dirdeps.mk, gendirdeps.mk and meta2deps.py
1634	  from Juniper.
1635	  o dirdeps.mk now fully supports TARGET_SPEC consisting of more
1636	    than just MACHINE.
1637	  o no longer use DEP_MACHINE from Makefile.depend* so remove it.
1638
16392013-01-23  Simon J. Gerraty  <sjg@bad.crufty.net>
1640
1641	* install-mk (MK_VERSION): bump version to 20130123
1642	* meta.stage.mk: add stage_links (hard links).
1643	  if doing hard links, we add dest to link as well.
1644	  Default the stage dir for [sym]links to STAGE_OBJTOP since
1645	  these are typically specified as absolute paths.
1646	  Add -m "mode" flag to StageFiles and StageAs.
1647
16482012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1649
1650	* install-mk (MK_VERSION): bump version to 20121111
1651	* autoconf.mk: avoid meta mode seeing changed commands for config.status
1652	* meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps
1653	  in case we were found via .../mk
1654	* sys.clean-env.mk: move it from examples, we and others use it
1655	  "as is".
1656	* FILES: add srctop.mk and options.mk
1657	* own.mk: convert to using options.mk
1658	  which is modeled after FreeBSD's handling of MK_*
1659	  but more flexible.
1660	  This allows MK_* for boolean knobs to not be confused
1661	  with MK* which can be commands.
1662
1663	* examples/sys.clean-env.mk: add WITH[OUT]_ to
1664	  MAKE_ENV_SAVE_PREFIX_LIST.
1665	  Mention that HOME=/var/empty might be a good idea.
1666
16672012-11-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1668
1669	* sys.dependfile.mk: if not depend file exists, $MACHINE
1670	  specific ones are supported but not the default,
1671	  check if any exist and follow suit.
1672
16732012-11-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1674
1675	* install-mk (MK_VERSION): bump version to 20121106
1676
16772012-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1678
1679	* import latest dirdeps.mk and meta2deps.py from Juniper.
1680	* progs.mk: add MAN and CXXFLAGS to PROG_VARS
1681	  also add PROGS_TARGETS and pass on PROG_CXX if it seems
1682	  appropriate.
1683
16842012-11-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1685
1686	* meta.stage.mk: update CLEANFILES
1687	  remove redundant cp of .dirdep from STAGE_AS_SCRIPT.
1688	* progs.mk: Add LDADD to PROG_VARS
1689
16902012-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1691
1692	* meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in
1693	  _STAGED_DIRS so that these can be turned into filters for
1694	  GENDIRDEPS_FILTER.
1695
16962012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1697
1698	* install-mk (MK_VERSION): bump version to 20121010
1699	* meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing
1700	target.dirdep matches .dirdep
1701
17022012-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1703
1704	* install-mk (MK_VERSION): bump version to 20120808
1705	* import latest meta2deps.py from Juniper.
1706
17072012-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1708
1709	* install-mk (MK_VERSION): bump version to 20120711
1710	* dep.mk: add explicit dependencies on SRCS after applying
1711	  SRCS_DEP_FILTER
1712	* meta.autodep.mk: add explicit dependencies on SRCS after
1713	  applying SRCS_DEP_FILTER
1714	* meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed.
1715
17162012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1717
1718	* install-mk (MK_VERSION): bump version to 20120626
1719	* meta.sys.mk: ignore PYTHON if it does not exist
1720	  compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable.
1721	* meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any
1722	  entries ending in .${MACHINE} to decide if qualified _dirdep is
1723	  needed.
1724	* gendirdeps.mk: only produce unqualified deps if no
1725	  .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE}
1726	* meta.subdir.mk: apply SUBDIRDEPS_FILTER
1727
17282012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1729
1730	* install-mk (MK_VERSION): bump version to 20120420
1731	* add sys.dependfile.mk so we can experiment with
1732	  .MAKE.DEPENDFILE_PREFERENCE
1733	* meta.autodep.mk: _DEPENDFILE is precious!
1734
17352012-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1736
1737	* install-mk (MK_VERSION): bump version to 20120315
1738	* install-new.mk: avoid being interrupted
1739
17402012-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1741
1742	* man.mk: MAN might have multiple values so be careful with exists().
1743
17442012-01-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1745
1746	* install-mk (MK_VERSION): bump version to 20120112
1747	* fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled
1748	  as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}'
1749
17502011-12-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1751
1752	* install-mk (MK_VERSION):  bump version to 20111201
1753	* import dirdeps.mk from Juniper sjg@
1754	  o more consistent handling of DEP_MACHINE, especially when
1755	    dealing with an odd Makefile.depend, when normally using
1756	    Makefile.depend.${MACHINE}
1757
17582011-11-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1759
1760	* install-mk (MK_VERSION): bump version to 20111122
1761	* meta.autodep.mk: add some debug output, be more crisp about
1762	  updating.  Use ${.ALLTARGETS:M*.o} as a clue for .depend
1763
17642011-11-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1765
1766	* install-mk (MK_VERSION): bump version to 20111111
1767	  it's too cool to miss
1768	* import meta* updates from Juniper sjg@
1769	  o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are
1770	    normally using Makefile.depend.${MACHINE}), handy for
1771	    read-only manually maintained dependencies.
1772	  o meta2deps.py add a clear 'ERROR:' token if an exception is raised.
1773	  o gendirdeps.mk if ERROR: from meta2deps.py do not update
1774	    anything.
1775
17762011-10-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1777
1778	* install-new.mk separate the cmp and copy logic to its own function.
1779
17802011-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1781
1782	* install-mk (MK_VERSION): bump version to 20111028
1783	* sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto
1784	* subdir.mk: ensure _SUBDIRUSE is provided
1785	* meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk
1786	* meta.subdir.mk: always allow for Makefile.depend
1787
17882011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1789
1790	* install-mk (MK_VERSION): bump version to 20111010
1791	  o minor tweak to *dirdeps.mk from Juniper sjg@
1792
17932011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1794
1795	* install-mk (MK_VERSION): bump version to 20111001
1796	  o add meta2deps.py from Juniper sjg@
1797	  o tweak gendirdeps.mk to work with meta2deps.py when not
1798	    cross-building
1799	* autoconf.mk: add autoconf-input as a hook for regenerating
1800	  AUTOCONF_INPUTS (configure).
1801
18022011-08-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1803
1804	* meta.autodep.mk: if we do not have OBJS, .depend isn't a useful
1805	  trigger for updating Makefile.depend*
1806
18072011-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1808
1809	* install-mk (MK_VERSION): bump version to 20110808
1810	* obj.mk: minor cleanup
1811	* auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too.
1812
18132011-08-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1814
1815	* auto.obj.mk (.OBJDIR): throw an error if we cannot use the
1816	  specified dir.
1817
18182011-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1819
1820	* meta.autodep.mk: if XMAKE_META_FILE is set
1821	  the makefile uses a foreign make, and so dependencies
1822	  can only be gathered from a clean tree build.
1823
18242011-06-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1825
1826	* install-mk (MK_VERSION): bump version to 20110622
1827	* meta.autodep.mk: improve bootstraping
1828
18292011-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1830
1831	* yacc.mk: handle the corner case of .c being removed
1832	  while .h remains.
1833
18342011-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1835
1836	* yacc.mk: do .y.h and .y.c separately
1837
18382011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1839
1840	* install-mk (MK_VERSION): bump version to 20110606
1841	* don't store SRC_DIRDEPS in Makefile.depend* by default
1842	  not everyone needs it.
1843
18442011-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1845
1846	* install-mk (MK_VERSION): bump version to 20110505
1847	  first release including meta mode makefiles
1848
18492011-05-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1850
1851	* meta.stage.mk: add STAGE_AS_SETS and stage_as
1852	  for things that need to be staged with different names.
1853
18542011-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1855
1856	* meta.stage.mk: add notion of STAGE_SETS
1857	  so a makefile can stage to multiple dirs
1858
18592011-04-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1860
1861	* rst2htm.mk: convert rst to s5 (slides) or plain html depending
1862	  on target name.
1863
18642011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1865
1866	* install-mk (MK_VERSION): bump version to 20110330
1867
18682011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
1869
1870	* sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0
1871	  can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest.
1872	* sys.mk: re-define M_whence in terms of M_type.
1873	  M_type is useful for checking if something is a builtin.
1874
18752011-03-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1876
1877	* meta.stage.mk: add stage_symlinks and leverage StageLinks for
1878	  stage_libs
1879
18802011-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1881
1882	* dirdeps.mk: correct value for _depdir_files depends on
1883	  .MAKE.DEPENDFILE
1884	  Add our copyright - just to make it clear we have frobbed this
1885	  quite a bit.
1886	  DEP_MACHINE needs to be set to MACHINE each time, if using only
1887	  Makefile.depend (cf. Makefile.depend.${MACHINE})
1888
1889	* meta.stage.mk: meta mode version of staging
1890
1891	* init.mk, final.mk: include local.*.mk to simplify customization
1892
18932011-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1894
1895	* auto.obj.mk: just because we are doing mk destroy, we should
1896	  still set .OBJDIR correctly if it exists.
1897
1898	* install-mk (mksrc): do not exclude meta.sys.mk
1899
19002011-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1901
1902	* host-target.mk: set/export _HOST_ARCH etc separately,
1903	  catch junk resulting from uname -p, so we can find sys/Linux.mk
1904	  correctly.
1905
19062011-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1907
1908	* meta.sys.mk: throw an error if /dev/filemon is missing and we
1909	  expected to be updating Makefile.depend*
1910
19112011-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1912
1913	* install-mk (MK_VERSION): bump version to 20110214
1914	* meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES
1915
19162010-09-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1917
1918	* meta.sys.mk: not valid for older bmake
1919
19202010-09-24  Simon J. Gerraty  <sjg@bad.crufty.net>
1921
1922	* install-mk (MK_VERSION): bump version to 20100919
1923	include dirdeps.mk et al from Juniper Networks,
1924	for meta mode - requires filemon(9).
1925	* sys.mk, subdir.mk: Add hooks for meta mode.
1926	we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk
1927	to make turning it on/off simple.
1928
19292010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1930
1931	* install-mk (MK_VERSION): bump version to 20100616
1932	* fix typo in sys.mk
1933
19342010-06-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1935
1936	* install-mk (MK_VERSION): bump version to 20100612
1937	* lib.mk: remove duplicate addition to SOBJS
1938
19392010-06-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1940
1941	* sys.mk: Add a means of selectively turning on debug flags.
1942	  Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg"
1943	  will act as if we did make -dv if .CURDIR ends in lib/sjg
1944	  DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at
1945	  the start of sys.mk rather than the end.
1946	  This only makes sense for leaf dirs, so we check that
1947	  .MAKE.LEVEL > 0
1948
19492010-06-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1950
1951	* install-mk (MK_VERSION): bump version to 20100608
1952	* sys.mk: include sys.env.mk later so it can use M_ListToSkip et al.
1953	* examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606
1954	  also make it easier for folk to tweak
1955
19562010-06-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1957
1958	* install-mk (MK_VERSION): bump version to 20100606
1959	  do not install examples/*
1960	* FILES: add examples/sys.clean-env.mk
1961	* examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR
1962	  this requires bmake-20100606 or later to work.
1963
19642010-05-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1965
1966	* sys.mk (M_tA): better simulate the result of :tA if not available.
1967
19682010-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1969
1970	* sys.mk: canonicalize MAKE_VERSION
1971	  old versions reported bmake-<src-date> build-<build-date>
1972	  whereas we only care about <src-date>
1973
19742010-04-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1975
1976	* install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored
1977	* lib.mk: we only build the shared lib if SHLIB_FULLVERSION
1978	  is !empty
1979
19802010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1981
1982	* dpadd.mk: use LDADD_* if defined.
1983
19842010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1985
1986	* install-mk (MK_VERSION): bump version to 20100420
1987	* sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy
1988	* autoconf.mk allow AUTO_AUTOCONF
1989
19902010-04-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1991
1992	* obj.mk: add objwarn to keep freebsd makefiles happy
1993	* auto.obj.mk: ensure Mkdirs is available.
1994	* FILES: add auto.dep.mk - a simpler version of autodep.mk
1995	* dep.mk: auto.dep.mk does not do 'make depend' so ignore it if
1996	  asked to do that.
1997	  fix/simplify the tests for when to run mkdep.
1998	* auto.dep.mk: add some explanation of how/what we do.
1999	* autodep.mk: skip the .OPTIONAL frobbing of .depend
2000	  bmake's FROM_DEPEND flag makes it redundant.
2001
20022010-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2003
2004	* install-mk (MK_VERSION): bump version to 20100404
2005	* subdir.mk: protect from multiple inclusion using _SUBDIRUSE.
2006	* obj.mk: protect from multiple inclusion even as bsd.obj.mk
2007	Also create a target _SUBDIRUSE so that we can  be used without
2008	subdir.mk
2009
20102010-04-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2011
2012	* dep.mk: use <> when .including so can override.
2013
20142010-01-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2015
2016	* lib.mk (SHLIB_LINKS): ensure a string comparison.
2017
20182010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2019
2020	* install-mk (MK_VERSION): bump version to 20100102
2021	* own.mk: ensure PRINTOBJDIR works
2022	* autoconf.mk: pass on CONFIGURE_ARGS
2023	* init.mk: handle COPTS.${.IMPSRC:T} etc.
2024	* lib.mk: allow sys.mk to control SHLIB_FULLVERSION
2025	  fix handling of symlinks for darwin
2026	* libnames.mk: add DSHLIBEXT for libs which only exist as shared.
2027	* man.mk: suppress chown when not root.
2028	* rst2htm.mk: allow srcs from multiple locations.
2029	* sys.mk: M_whence, stop after 1st line of output.
2030	* sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT
2031	* sys/SunOS.mk: we need to export PATH
2032
20332009-12-23  Simon J. Gerraty  <sjg@void.crufty.net>
2034
2035	* install-mk (MK_VERSION): bump version
2036	  include rst2htm.mk
2037
20382009-12-17  Simon J. Gerraty  <sjg@void.crufty.net>
2039
2040	* sys.mk,libnames.mk add .-include <local.*>
2041	  this allows local customization without the need to edit the
2042	  distributed files.
2043
20442009-12-14  Simon J. Gerraty  <sjg@void.crufty.net>
2045
2046	* dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up
2047	  older versions already installed.
2048
20492009-12-13  Simon J. Gerraty  <sjg@void.crufty.net>
2050
2051	* stage.mk (.stage-install): generalize lib.mk's .libinstall
2052	* rules.mk rules for generic Makefile.
2053	* inc.mk install for includes.
2054
20552009-12-11  Simon J. Gerraty  <sjg@void.crufty.net>
2056
2057	* sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check
2058	  this, so provide it if using native make.
2059
20602009-12-10  Simon J. Gerraty  <sjg@void.crufty.net>
2061
2062	* FILES: move all the platform *.sys.mk files to sys/*.mk
2063	* Rename Generic.sys.mk to sys.mk - we always want it.
2064
20652009-11-17  Simon J. Gerraty  <sjg@void.crufty.net>
2066
2067	* install-mk (MK_VERSION): bump version
2068	* host-target.mk: only export the expensive stuff
2069	* Generic.sys.mk (sys_mk): for SunOS we need to look for
2070	  ${HOST_OS}.${HOST_OSMAJOR} too!
2071
20722009-11-07  Simon J. Gerraty  <sjg@void.crufty.net>
2073
2074	* install-mk (MK_VERSION): bump version
2075	* lib.mk: if sys.mk doesn't give us an lorder, don't use it.
2076	  based on patch from Greg Olszewski.
2077	* Generic.sys.mk: if we have nothing to work with
2078	set LORDER etc only if we can find it.
2079
20802009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
2081
2082	* install-mk (MK_VERSION): bump version
2083	* man.mk: cleanman: remove CLEANMAN if defined.
2084
20852009-09-04  Simon J. Gerraty  <sjg@void.crufty.net>
2086
2087	* SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk
2088
20892009-07-17  Simon J. Gerraty  <sjg@void.crufty.net>
2090
2091	* install-mk (MK_VERSION): bump version
2092	include auto.obj.mk
2093
2094
20952009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
2096
2097	* prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail.
2098
20992008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
2100
2101	* install-mk (MK_VERSION): bump version
2102	man.mk: ensure we generate *.cat1 etc in .
2103
21042008-07-16  Simon J. Gerraty  <sjg@void.crufty.net>
2105
2106	* install-mk (MK_VERSION): bump version
2107	add prlist.mk
2108
21092007-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
2110
2111	* Generic.sys.mk: Allow os specific sys.mk to be in a
2112	subdir of ${.PARSEDIR}
2113
21142007-11-22  Simon J. Gerraty  <sjg@void.crufty.net>
2115
2116	* install-mk (MK_VERSION): bump version
2117	* general cleanup
2118	* dpadd.mk introduce DPMAGIC_LIBS_*
2119
21202007-04-30  Simon J. Gerraty  <sjg@void.crufty.net>
2121
2122	* install-mk (MK_VERSION): bump version
2123
2124	* libs.mk, progs.mk, autodep.mk: allow for per lib/prog
2125	depend files and ensure clean is called for each lib/prog.
2126
21272007-03-27  Simon J. Gerraty  <sjg@void.crufty.net>
2128
2129	* autodep.mk (.depend): delete lines that do not start with
2130	space and do not contain ':'
2131
21322007-02-16  Simon J. Gerraty  <sjg@void.crufty.net>
2133
2134	* autodep.mk (.depend): gcc may wrap lines if pathnames are long
2135	so make sure the transform for .OPTIONAL copes.
2136
21372007-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2138
2139	* install-mk (MK_VERSION): bump version
2140
2141	* own.mk: make sure RM and LN are defined.
2142
2143	* obj.mk: fix a typo, and objlink target.
2144
21452006-12-30  Simon J. Gerraty  <sjg@void.crufty.net>
2146
2147	* install-mk (MK_VERSION): bump version
2148	* added libs.mk - analogous to progs.mk
2149	  make both of them always inlcude {lib,prog}.mk
2150
21512006-12-28  Simon J. Gerraty  <sjg@void.crufty.net>
2152
2153	* progs.mk: add a means of building multiple apps in one dir.
2154
21552006-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
2156
2157	* install-mk (MK_VERSION): bump version to 20061126
2158
2159	* warnings.mk: detect invalid WARNINGS_SET
2160
2161	* warnings.mk: use ${.TARGET:T:R}.o when looking for target
2162	specific warnings.
2163
2164	* For .cc sources, turn off warnings that g++ vomits on.
2165
21662006-11-08  Simon J. Gerraty  <sjg@void.crufty.net>
2167
2168	* own.mk: if __initialized__ target doesn't exist and we are
2169	FreeBSD we got here directly from sys.mk
2170
21712006-11-06  Simon J. Gerraty  <sjg@void.crufty.net>
2172
2173	* install-mk (MK_VERSION): bump version to 20061106
2174	add scripts.mk
2175
21762006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
2177
2178	* install-mk (MK_VERSION): bump version to 20060318
2179
2180	* autodep.mk: avoid := when modifying OBJS into __dependsrcs
2181
21822006-03-02  Simon J. Gerraty  <sjg@void.crufty.net>
2183
2184	* install-mk (MK_VERSION): bump version to 20060302
2185	* autodep.mk: use -MF et al to help gcc+ccache DTRT.
2186
21872006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
2188
2189	* install-mk (MK_VERSION): bump version to 20060301
2190	* autodep.mk (.depend):
2191	if MAKE_VERSION is newer than  20050530 we can make .END depend on
2192	.depend and make .depend depend on __depsrcs that exist.
2193	* dpadd.mk: add SRC_PATHADD
2194
21952005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
2196
2197	* install-mk (MK_VERSION): bump version to 20051104
2198	* prog.mk: remove all the LIBC?= junk, use
2199	.-include libnames.mk instead (none by default).
2200	also if USE_DPADD_MK is set, include that.
2201
22022005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2203
2204	* install-mk (MK_VERSION): bump version to 20051001
2205	Add UnixWare.sys.mk from Klaus Heinz.
2206
22072005-04-05  Simon J. Gerraty  <sjg@void.crufty.net>
2208
2209	* install-mk: always install *.sys.mk and if need be symlink one
2210	to sys.mk
2211
22122005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
2213
2214	* subdir.mk, own.mk: use .MAKE rather than MAKE
2215
22162004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
2217
2218	* own.mk: don't use NetBSD's _SRC_TOP_ it can
2219	cause confusion.  Also don't take just 'mk' as a
2220	srctop indicator.
2221
22222004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
2223
2224	* warnings.mk: overhauled, now very powerful.
2225
22262004-02-03  Simon J. Gerraty  <sjg@void.crufty.net>
2227
2228	* Generic.sys.mk: need to use ${.PARSEDIR} with exists().
2229
22302004-02-01  Simon J. Gerraty  <sjg@void.crufty.net>
2231
2232	* install-mk (MK_VERSION): bump version to 20040201
2233	* extract HOST_TARGET stuff to host-target.mk so own.mk and
2234	Generic.sys.mk can share.
2235	* fix typo in autodep.mk _SUBDIRUSE not _SUBDIR.
2236
22372003-09-30  Simon J. Gerraty  <sjg@void.crufty.net>
2238
2239	* install-mk (MK_VERSION): 20030930
2240	* rename generic.sys.mk to Generic.sys.mk
2241	so that it does not get installed (unless being used as sys.mk)
2242	* set OS and ROOT_GROUP for those that we know the value.
2243	for others (eg. Generic.sys.mk) wrap the != in an .ifndef so
2244	we don't do it again for each sub-make.
2245
22462003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
2247
2248	* install-mk (MK_VERSION): 20030928
2249	Add some extra *.sys.mk from bootstrap-pkgsrc
2250	some of these likely still need work.
2251	Make everything default to root:wheel ownership,
2252	sys.mk can set ROOT_GROUP accordingly.
2253
22542003-08-07  Simon J. Gerraty  <sjg@void.crufty.net>
2255
2256	* install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR
2257	not the portable ones.
2258
22592003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
2260
2261	* install-mk: add ability to use cp -f when updating
2262	destination .mk files.  Also now possible to play games with
2263	FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk
2264	into dest - not recommended unless you seriously want to.
2265
22662003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
2267
2268	* own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc
2269	for semi-compatability with NetBSD.
2270
22712003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
2272
2273	* install-mk: add a version indicator
2274
22752003-07-22  Simon J. Gerraty  <sjg@void.crufty.net>
2276
2277	* prog.mk: don't try and use ${LIBCRT0} if its /dev/null
2278
2279	* install-mk: Allow FORCE_SYS_MK to come from env
2280
2281
2282
2283