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