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