12021-01-06 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * install-mk (MK_VERSION): 20210101 4 5 * dirdeps.mk: first time we are read, just use TARGET_SPEC for 6 _DEP_TARGET_SPEC 7 82020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * sys.mk (MAKE_SHELL): use ${.SHELL:Ush} 11 and use := when setting SHELL 12 132020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 14 15 * install-mk (MK_VERSION): 20201221 16 17 * dirdeps-options.mk: latest bmake allows only one arg to .undef 18 192020-12-11 Simon J Gerraty <sjg@beast.crufty.net> 20 21 * dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS 22 so that any directory can be treated as a target. 23 242020-11-26 Simon J Gerraty <sjg@beast.crufty.net> 25 26 * install-mk (MK_VERSION): 20201126 27 28 * own.mk: use .MAKE.{UID,GID} if available. 29 30 * init.mk: suppress _SKIP_BUILD warning if doing -V 31 322020-11-20 Simon J Gerraty <sjg@beast.crufty.net> 33 34 * install-mk (MK_VERSION): 20201120 35 36 * init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS 37 38 * dirdeps-targets.mk: fix typo in comment 39 402020-11-06 Simon J Gerraty <sjg@beast.crufty.net> 41 42 * install-mk (MK_VERSION): 20201106 43 44 * meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed 45 args to tweak extensions for local deps. 46 472020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 48 49 * install-mk (MK_VERSION): 20201101 50 51 * dirdeps.mk: most leaf makefiles are not suitable for building 52 dirdeps.cache so if RELDIR is not "." use dirdeps.mk 53 542020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 55 56 * install-mk (MK_VERSION): 20201028 57 58 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE 59 when building dirdeps.cache for leaf directory use -f dirdeps.mk 60 61 * sys.vars.mk: add M_JOT and M_RANGE 62 632020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 64 65 * install-mk (MK_VERSION): 20201001 66 67 * meta2deps.{py,sh}: throw an error if we don't see filemon version 68 692020-09-09 Simon J Gerraty <sjg@beast.crufty.net> 70 71 * install-mk (MK_VERSION): 20200909 72 73 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target 74 752020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 76 77 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 78 (even more rare that use of static cache is playing clever tricks 79 with it) 80 812020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 82 83 * dirdeps-cache-update.mk: allow 84 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 85 actually update STATIC_DIRDEPS_CACHE. 86 87 * stage-install.sh: create dest directory if needed 88 before running install(1) 89 902020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 91 92 * dirdeps-targets.mk: include Makefile.dirdeps.options 93 94 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 95 962020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 97 98 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 99 100 * dirdeps-cache-update.mk: building parallel cache update 101 under the context of dirdeps-cached would be ideal, but 102 is problematic, so it runs as a sibling. 103 Use cache-built target to ensure we wait for it to complete if 104 necessary. 105 1062020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 107 108 * install-mk (MK_VERSION): 20200806 109 110 * dirdeps-options: allow TARGET_SPEC to affect option values. 111 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 112 113 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 114 before looking for STATIC_DIRDEPS_CACHE 115 1162020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 117 118 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 119 120 * dirdeps-options.mk: improve debug output 121 1222020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 123 124 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 125 for use by dirdeps-cache-update.mk 126 127 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 128 for use by dirdeps-cache-update.mk even if we don't use it. 129 130 * dirdeps-cache-update.mk: we only need worry about the background 131 update case, with the above, the update from DIRDEPS_CACHE is 132 simple. 133 134 * meta2deps.py: R 1234 . is not interesting 135 1362020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 137 138 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 139 140 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 141 allows use of lower case for pseudo options. 142 143 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 144 1452020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 146 147 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 148 which allows us to have a static cache for expensive targets. 149 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 150 to regenerate the dirdeps.cache it is a copy of. 151 1522020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 153 154 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 155 1562020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 157 158 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 159 load averages at intervals during build. 160 1612020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 162 163 * install-mk (MK_VERSION): 20200715 164 165 * dirdeps.mk: tweak Checking line to make matching Finished 166 lines for post-build analysis easier. 167 168 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 169 170 * progs.mk: avoid prog.mk outputting multiple Finished lines 171 1722020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 173 174 * dirdeps.mk: further optimize dirdeps.cache 175 generate a DIRDEPS.${.TARGET} list for other purposes 176 and improve the layout. 177 1782020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 179 180 * dirdeps.mk: optimize content of dirdeps.cache 181 1822020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 183 184 * sys/*.mk: make it easier for local*sys.mk to customize by 185 using ?= 186 1872020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 188 189 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 190 it is much safer to guard local depends with a simple check for 191 .MAKE.LEVEL > 0 192 1932020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 194 195 * install-mk (MK_VERSION): 20200610 196 197 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 198 1992020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 200 201 * install-mk (MK_VERSION): 20200606 202 203 * dirdeps-targets.mk: allow for filtering of .TARGETS 204 205 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 206 entries - and we don't care about 'W'rite entries. 207 Also ignore absolute paths that do not exist. 208 2092020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 210 211 * install-mk (MK_VERSION): 20200525 212 213 * init.mk: expand and simplify handling of qualified vars 214 like CPPFLAGS.${.TARGET:T} 215 2162020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 217 218 * install-mk (MK_VERSION): 20200515 219 220 * dirdeps.mk: set _debug_* earlier and allow passing -d* 221 flags to submake when building DIRDEPS_CACHE 222 2232020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 224 225 * whats.mk: more easily extensible 226 2272020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 228 229 * whats.mk: greatly simplify by adding what.c to SRCS 230 2312020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 232 233 * whats.mk: for libs take care how we add to *OBJS 234 235 * lib.mk: : works better with whats.mk 236 2372020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 238 239 * install-mk (MK_VERSION): 20200420 240 241 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 242 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 243 2442020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 245 246 * install-mk (MK_VERSION): 20200416 247 248 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 249 interfere with user env. 250 251 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 252 253 * autodep.mk: use MAKE_SHELL. 254 2552019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 256 257 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 258 wasted effort, and unexport _meta_files when no longer needed as 259 it consumes space we need for command line. 260 2612019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 262 263 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 264 DIRDEP_USE_PRELUDE at start - facilitates job distribution 265 2662019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 267 268 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 269 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 270 TARGET_SPEC qualified depend files. 271 2722019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 273 274 * dirdeps-targets.mk: encapsulate logic for finding top-level 275 targets to set initial DIRDEPS for DIRDEPS_BUILD 276 2772019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 278 279 * install-mk (MK_VERSION): 20190911 280 281 * compiler.mk: set COMPILER_TYPE 282 2832019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 284 285 * install-mk (MK_VERSION): 20190704 286 287 * sys/Darwin.mk: support for Objective-C and clang 288 2892019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 290 291 * dirdeps.mk: avoid insanely long command line when generating cache 292 2932019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 294 295 * install-mk (MK_VERSION): 20190505 296 297 * whats.mk: handle corner case SHLIB defined but not LIB 298 2992018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 300 301 * install-mk (MK_VERSION): 20180919 302 303 * dirdeps-options.mk: .undef cannot handle var that expands to 304 more than one var. 305 3062018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 307 308 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 309 3102018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 311 312 * meta.autodep.mk: export META_FILES to avoid command line limit 313 * gendirdeps.mk: if we have lots of .meta files put them in 314 an @list 315 3162018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 317 318 * dirdeps-options.mk: use local.dirdeps-options.mk 319 not local.dirdeps-option.mk 320 3212018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 322 323 * install-mk (MK_VERSION): 20180420 324 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 325 ie. we are building something. 326 3272018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 328 329 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 330 3312018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 332 333 * install-mk (MK_VERSION): 20180405 334 335 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 336 if needed. 337 3382018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 339 340 * install-mk (MK_VERSION): 20180118 341 342 * ldorder.mk: let make compute correct link order 343 3442017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 345 346 * install-mk (MK_VERSION): 20171212 347 348 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 349 3502017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 351 352 * install-mk (MK_VERSION): 20171111 353 354 * lib.mk: ensure META_NOECHO is set 355 3562017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 357 358 * Allow for host32 on rare occasions. 359 3602017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 361 362 * install-mk (MK_VERSION): 20171018 363 364 * whats.mk: include what_thing in what_uuid to avoid problem 365 when building multiple apps in the same directory. 366 3672017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 368 369 * install-mk (MK_VERSION): 20170812 370 371 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 372 add dependencies for config.recheck and config.gen 373 3742017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 375 376 * install-mk (MK_VERSION): 20170630 377 378 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 379 3802017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 381 382 * meta2deps.py: take special care of '..' 383 3842017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 385 386 * install-mk (MK_VERSION): 20170515 387 388 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 389 useful/necessary for a Makefile.depend file to export some knobs. 390 This is complicated when we are doing DIRDEPS_CACHE, so we will 391 handle export of any variables listed in DEP_EXPORT_VARS. 392 3932017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 394 395 * install-mk (MK_VERSION): 20170505 396 397 * meta2deps.py: fix botched indenation. 398 3992017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 400 401 * sys/*.mk: Remove setting of MAKE it is unnecessary and 402 in many cases wrong (basname rather than full path) 403 404 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 405 406 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 407 4082017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 409 410 * install-mk (MK_VERSION): 20170501 411 412 * doc.mk: fix typo in DOC_INSTALL_OWN 413 414 * inc.mk: handle INCGROUPS similar to freebsd 415 416 * files.mk: add something for files too 417 418 * add staging logic to lib.mk prog.mk etc. 419 4202017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 421 422 * install-mk (MK_VERSION): 20170424 423 424 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 425 also target of bootstrap-this when sed is needed should be ${_want:T} 426 4272017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 428 429 * install-mk (MK_VERSION): 20170418 430 431 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 432 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 433 4342017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 435 436 * install-mk (MK_VERSION): 20170401 437 438 * meta2deps.py: add is_src so we can check if obj dependency 439 is also a src dependency. 440 4412017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 442 443 * install-mk (MK_VERSION): 20170326 444 445 * meta.stage.mk: do nothing if NO_STAGING is defined. 446 4472017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 448 449 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 450 4512017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 452 453 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 454 4552017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 456 457 * install-mk (MK_VERSION): 20170301 458 459 * dirdeps.mk (_build_all_dirs): update this outside test for empty 460 DIRDEPS. 461 462 * meta.stage.mk: allow multiple inclusion to the extent it makes 463 sense. 464 4652017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 466 467 * prog.mk (install_links): depends on realinstall 468 4692017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 470 471 * install-mk (MK_VERSION): 20170212 472 473 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 474 4752017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 476 477 * install-mk (MK_VERSION): 20170130 478 479 * dirdeps.mk: use :range if we can. 480 481 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 482 483 * meta2deps.py: clean paths without using realpath() where possible. 484 fix sort_unique. 485 4862016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 487 488 * install-mk (MK_VERSION): 20161212 489 490 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 491 rather than when we detect pid change. 492 4932016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 494 495 * install-mk (MK_VERSION): 20161207 496 497 * meta.stage.mk: add stage_as_and_symlink for staging packages. 498 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 499 to use foo.tgz to reference the latest staged version - so we 500 make foo.tgz a symlink to it. 501 Using a target to do both operations ensures we stay in sync. 502 5032016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 504 505 * install-mk (MK_VERSION): 20161126 506 507 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 508 so it can add dependencies. 509 5102016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 511 512 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 513 do that they can influence the result correctly. 514 515 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 516 517 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 518 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 519 5202016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 521 522 * dirdeps.mk: remove dependence on jot (normal situations anyway). 523 Before we read another Makefile.depend* set DEP_* vars from 524 _DEP_TARGET_SPEC in case it uses any of them with := 525 When bootstrapping, trim any ,* from extention of chosen _src 526 Makefile.depend* to get the machine value we subst for. 527 5282016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 529 530 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 531 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 532 533 * sys.mk: extract some bits to sys.{debug,vars}.mk 534 for easier re-use by others. 535 5362016-09-23 Simon Gerraty <sjg@sjg-mba13> 537 538 * lib.mk: Use ${PICO} for extension for PIC objects. 539 default to .pico (like NetBSD) safe on case insensitive filesystem. 540 5412016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 542 543 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 544 5452016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 546 547 * install-mk (MK_VERSION): 20160815 548 549 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 550 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 551 5522016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 553 554 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 555 in meta mode we can ignore the mtime of makefiles 556 5572016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 558 559 * install-mk (MK_VERSION): 20160802 560 561 * lib.mk (libinstall): depends on beforinstall 562 563 * prog.mk (proginstall): depends on beforinstall 564 patch from Lauri Tirkkonen 565 566 * dirdeps.mk (bootstrap): When bootstrapping; creat 567 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 568 .MAKE.DEPENDFILE_BOOTSTRAP_SED 569 570 * dirdeps.mk: move some comments to where they make sense. 571 5722016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 573 574 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 575 5762016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 577 578 * install-mk (MK_VERSION): 20160602 579 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 580 do not apply :T to META_XTRAS 581 patch from Bryan Drewery at FreeBSD.org. 582 5832016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 584 585 * install-mk (MK_VERSION): 20160530 586 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 587 make it so. 588 5892016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 590 591 * install-mk (MK_VERSION): 20160512 592 593 * dpadd.mk: always include local.dpadd.mk if it exists 594 remove some things that better belong in local.dpadd.mk 595 skip INCLUDES_* for staged libs unless SRC_* defined. 596 597 * own.mk: add INCLUDEDIR 598 5992016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 600 601 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 602 TARGET_MACHINE - :E will be empty or match part of path, use 603 ${MACHINE} 604 6052016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 606 607 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 608 NO_FILEMON_COOKIE 609 610 * dirdeps.mk: move the logic that allows for 611 make -f dirdeps.mk some/dir.${TARGET_SPEC} 612 inside the check for !target(_DIRDEP_USE) 613 6142016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 615 616 * Use <> when including local*.mk and others which may exist 617 elsewhere so that user can better control what they get. 618 619 * meta.autodep.mk (NO_FILEMON_COOKIE): 620 create a cookie if we ever build dir with nofilemon 621 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 622 6232016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 624 625 * install-mk (MK_VERSION): 20160401 626 627 * meta2deps.py: fix old print statement when debugging. 628 629 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 630 patch from Bryan Drewery 631 6322016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 633 634 * install-mk (MK_VERSION): 20160317 (St. Pats) 635 636 * warnings.mk: g++ does not like -Wimplicit 637 638 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 639 pelthora of common suffixes for C++ 640 641 * lib.mk: use .So for shared objects 642 6432016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 644 645 * install-mk (MK_VERSION): 20160315 646 647 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 648 normally only applies to scripts. 649 650 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 651 well as outside it. 652 6532016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 654 655 * install-mk (MK_VERSION): 20160310 656 657 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 658 we have processed; the list gets very inefficient as number of 659 DIRDEPS gets large. 660 661 * sys.dependfile.mk: fix comment wrt MACHINE 662 663 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 664 patch from Bryan Drewery 665 6662016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 667 668 * meta2deps.sh: don't ignore subdirs. 669 patch from Bryan Drewery 670 6712016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 672 673 * install-mk (MK_VERSION): 20160226 674 675 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 676 6772016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 678 679 * dirdeps.mk: we shouldn't normally include .depend but if we do 680 use .dinclude if we can. 681 6822016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 683 684 * install-mk (MK_VERSION): 20160218 685 * sys.clean-env.mk: with recent change to Var_Subst() 686 we cannot use the '$$' trick, but .export-literal does the job 687 we need. 688 * auto.dep.mk: make use .dinclude if we can. 689 690 6912016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 692 693 * dirdeps.mk: 694 Add _build_all_dirs such that local.dirdeps.mk can 695 add fully qualified dirs to it. 696 These will be built normally but the current 697 DEP_RELDIR will not depend on then (to avoid cycles). 698 This makes it easy to hook things like unit-tests into build. 699 700 7012016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 702 703 * dirdeps.mk: add bootstrap-empty 704 7052015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 706 707 * install-mk (MK_VERSION): 20151212 708 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 709 only apply :tA to __objdir when comparing to .OBJDIR 710 7112015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 712 713 * install-mk (MK_VERSION): 20151111 714 715 * meta.sys.mk: include sys.dependfile.mk 716 717 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 718 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 719 include local.sys.env.mk early 720 include local.sys.mk later 721 722 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 723 7242015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 725 726 * meta.sys.mk (META_COOKIE_TOUCH): 727 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 728 729 * meta.stage.mk: stage_libs should ignore SYMLINKS. 730 7312015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 732 733 * install-mk (MK_VERSION): 20151022 734 735 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 736 7372015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 738 739 * install-mk (MK_VERSION): 20151020 740 741 * dirdeps.mk: Add logic for 742 make -f dirdeps.mk some/dir.${TARGET_SPEC} 743 7442015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 745 746 * install-mk (MK_VERSION): 20151010 747 7482015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 749 750 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 751 to have stage_lins run last in non-jobs mode. 752 Use .ORDER only for jobs mode. 753 7542015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 755 756 * rst2htm.mk: allow for per target flags etc. 757 7582015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 759 760 * install-mk (MK_VERSION): 20150901 761 762 * doc.mk: create dir if needed use DOC_INSTALL_OWN 763 7642015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 765 766 * install-mk (MK_VERSION): 20150615 767 768 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 769 Follow make's normal precedence rules. 770 771 * gendirdeps.mk: allow customization of the header. 772 eg. for FreeBSD: 773 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 774 775 * meta.autodep.mk: ignore dirdeps.cache* 776 777 * meta.stage.mk: when bootstrapping options it can be handy to 778 throw warnings rather than errors for staging conflicts. 779 780 * meta.sys.mk: include local.meta.sys.mk for customization 781 7822015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 783 784 * install-mk (MK_VERSION): 20150606 785 786 * dirdeps.mk: don't rely on manually maintained Makefile.depend 787 to set DEP_RELDIR and reset DIRDEPS. 788 By setting DEP_RELDIR ourselves we can skip :tA 789 790 * gendirdeps.mk: skip setting DEP_RELDIR. 791 7922015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 793 794 * dirdeps.mk: avoid wildcards like make(bootstrap*) 795 7962015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 797 798 * install-mk (MK_VERSION): 20150520 799 800 * dirdeps.mk: when we are building dirdeps cache file we *want* 801 meta_oodate to look at all the Makefile.depend files, so 802 set .MAKE.DEPENDFILE to something that won't match. 803 804 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 805 so first use absolute path as key. 806 Also skip staging at level 0. 807 8082015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 809 810 * install-mk (MK_VERSION): 20150430 811 812 * dirdeps.mk: fix _count_dirdeps for non-cache case. 813 8142015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 815 816 * install-mk (MK_VERSION): 20150411 817 bump version 818 819 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 820 it is here mainly for documentation purposes, since 821 if using auto.obj.mk it is better done via sys.mk 822 8232015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 824 825 * install-mk (MK_VERSION): 20150401 826 827 * meta2deps.sh: support @list 828 829 * meta2deps.py: updates from Juniper 830 o add EXCLUDES 831 o skip bogus input files. 832 o treat 'M' and 'L' as both an 'R' and a 'W' 833 8342015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 835 836 * install-mk (MK_VERSION): 20150303 837 838 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 839 which is built via sub-make so we have a .meta file to tell if 840 it is out-of-date. 841 The dirdeps-cache contains the same dependency rules that we 842 normaly construct on the fly. 843 This adds a few seconds overhead when the cache is out of date, 844 but for a large target, the savings can be significant (10-20min). 845 8462014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 847 848 * install-mk (MK_VERSION): 20141118 849 850 * meta.stage.mk: add stale_staged 851 852 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 853 only useful under very rare conditions such as 854 FreeBSD's make universe. 855 856 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 857 8582014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 859 860 * install-mk (MK_VERSION): 20141111 861 862 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 863 8642014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 865 866 * FILES: include mkopt.sh which allows handling options in shell 867 scripts in a manner compatible with options.mk 868 8692014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 870 871 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 872 for GENDIRDEPS_FILTER to avoid surprises. 873 8742014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 875 876 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 877 the time it is applied to __depdirs they have. 878 879 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 880 expects patterns like *.${MACHINE} 881 882 * cython.mk (pyprefix?): use pyprefix to find python bits 883 since prefix might be something else (where we install our 884 stuff) 885 8862014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 887 888 * install-mk (MK_VERSION): 20140911 889 890 * dirdeps.mk: add bootstrap target to simplify adding support for 891 new MACHINE. 892 8932014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 894 895 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 896 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 897 Makefile.depend files. 898 8992014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 900 901 * install-mk (MK_VERSION): 20140828 902 903 * cython.mk: capture logic for building python extension modules 904 with Cython. 905 9062014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 907 908 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 909 9102014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 911 912 * install-mk (MK_VERSION): 20140801 913 914 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 915 identify the autodep.mk variant. 916 917 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 918 initial value does not match .MAKE.DEPENDFILE_PREFIX 919 920 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 921 9222014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 923 924 * install-mk (MK_VERSION): 20140522 925 926 * lib.mk: use CC to link shlib for linux too 927 patch from Brendan MacDonell 928 9292014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 930 931 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 932 if WITH_META_STATS is defined. 933 9342014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 935 936 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 937 to supress dirdeps outside of .CURDIR. 938 9392014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 940 941 * Fix spelling errors - patch from Pedro Giffuni 942 9432014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 944 945 * install-mk (MK_VERSION): 20140314 946 947 * dirdeps.mk (beforedirdeps): a handy hook 948 949 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 950 to visit leaf dirs to be intercepted (eg. for distributed 951 build). 952 953 * dirdeps.mk (__depdirs): ensure // don't sneak in 954 955 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 956 957 9582014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 959 960 * rst2htm.mk (RST2PDF): add support for rst2pdf 961 9622014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 963 964 * install-mk (MK_VERSION): bump version 965 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 966 available. 967 9682014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 969 970 * options.mk: avoid :U so this isn't bmake dependent 971 9722014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 973 974 * options.mk: cleanup and simplify semanitcs 975 NO_* dominates all, if both WITH_* and WITHOUT_* 976 are defined then result is DOMINATE_* which defaults to "no". 977 Ie. WITHOUT_ normally wins. 978 9792013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 980 981 * install-mk (MK_VERSION): bump version 982 * meta2deps.py: convert to print function for python3 compat. 983 we also need to open files with mode 'r' rather than 'rb' 984 otherwise we get bytes instead of strings. 985 9862013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 987 988 * install-mk (MK_VERSION): bump version 989 990 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 991 apply the same filtering (M_dep_qual_fixes) when setting _machines 992 as _build_dirs. 993 Also fix the filtering of Makefile.depend files - for reporting 994 what we are looking for (M_dep_qual_fixes can get confused by 995 Makefile.depend) 996 Add some more debug info. 997 9982013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 999 1000 * gendirdeps.mk (_objtops): fix typo also 1001 while processing M2D_OBJROOTS to gather qualdir_list 1002 qualify $ql with loop iterator to ensure correct results. 1003 10042013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1005 1006 * install-mk (MK_VERSION): 20130801 1007 * libs.mk: update to match progs.mk 1008 10092013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 1010 1011 * install-mk (MK_VERSION): 20130726 1012 some updates from Juniper and FreeBSD 1013 o meta2deps.py: indicate file and line number when we hit parse 1014 errors 1015 also allow @file to provide huge list of .meta files. 1016 * meta2deps.py: add try_parse() to cleanup the above. 1017 10182013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 1019 1020 * install-mk (MK_VERSION): 20130716 1021 * own.mk: add GPROG as an option 1022 * prog.mk: honor MK_GPROF==yes 1023 10242013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1025 1026 * install-mk (MK_VERSION): 20130505 1027 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 1028 for when $MACHINE isn't enough for objdir distinction. 1029 Bring meta2deps.sh closer to par with meta2deps.py. 1030 10312013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1032 1033 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 1034 also if the target 'beforeinstall' exists, make it depend on 1035 .dirdep (incase it uses STAGE_INSTALL). 1036 10372013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1038 1039 * install-mk (MK_VERSION): 20130401 ;-) 1040 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 1041 wrapper around install(1). 1042 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 1043 10442013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1045 1046 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 1047 * install-mk (MK_VERSION): bump version 1048 10492013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 1050 1051 * install-mk (MK_VERSION): bump version 1052 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 1053 any trailing /., rather apply :tA only when needed. 1054 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 1055 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 1056 consistently. 1057 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 1058 10592013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1060 1061 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 1062 it is simpler to just not update when say building for "host" 1063 (where we know we apply filters to DIRDEPS), and using a 1064 non-machine qualified dependfile. 1065 10662013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1067 1068 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 1069 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 1070 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 1071 * meta2deps.py: if machine is "host", then also trim 1072 self.host_target from any OBJROOTS. 1073 1074 10752013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1076 1077 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 1078 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 1079 but _DEPENDFILE does not, compare the new _DEPENDFILE against 1080 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 1081 10822013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 1083 1084 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 1085 and hook to all: via staging: 1086 10872013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1088 1089 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 1090 use a separate variable for the default .MAKE.DEPENDFILE value 1091 so that it can be controlled independently of 1092 .MAKE.DEPENDFILE_PREFERENCE 1093 1094 * meta.stage.mk: throw error if cp fails etc. 1095 Stage*() return early if passed no args. 1096 .ORDER stage_* 1097 10982013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1099 1100 * install-mk (MK_VERSION): bump version 1101 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 1102 11032013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1104 1105 * install-mk (MK_VERSION): bump version to 20130210 1106 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 1107 from Juniper. 1108 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 1109 than just MACHINE. 1110 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 1111 11122013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 1113 1114 * install-mk (MK_VERSION): bump version to 20130123 1115 * meta.stage.mk: add stage_links (hard links). 1116 if doing hard links, we add dest to link as well. 1117 Default the stage dir for [sym]links to STAGE_OBJTOP since 1118 these are typically specified as absolute paths. 1119 Add -m "mode" flag to StageFiles and StageAs. 1120 11212012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1122 1123 * install-mk (MK_VERSION): bump version to 20121111 1124 * autoconf.mk: avoid meta mode seeing changed commands for config.status 1125 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 1126 in case we were found via .../mk 1127 * sys.clean-env.mk: move it from examples, we and others use it 1128 "as is". 1129 * FILES: add srctop.mk and options.mk 1130 * own.mk: convert to using options.mk 1131 which is modeled after FreeBSD's handling of MK_* 1132 but more flexible. 1133 This allows MK_* for boolean knobs to not be confused 1134 with MK* which can be commands. 1135 1136 * examples/sys.clean-env.mk: add WITH[OUT]_ to 1137 MAKE_ENV_SAVE_PREFIX_LIST. 1138 Mention that HOME=/var/empty might be a good idea. 1139 11402012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 1141 1142 * sys.dependfile.mk: if not depend file exists, $MACHINE 1143 specific ones are supported but not the default, 1144 check if any exist and follow suit. 1145 11462012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 1147 1148 * install-mk (MK_VERSION): bump version to 20121106 1149 11502012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1151 1152 * import latest dirdeps.mk and meta2deps.py from Juniper. 1153 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 1154 also add PROGS_TARGETS and pass on PROG_CXX if it seems 1155 appropriate. 1156 11572012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 1158 1159 * meta.stage.mk: update CLEANFILES 1160 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 1161 * progs.mk: Add LDADD to PROG_VARS 1162 11632012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1164 1165 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 1166 _STAGED_DIRS so that these can be turned into filters for 1167 GENDIRDEPS_FILTER. 1168 11692012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1170 1171 * install-mk (MK_VERSION): bump version to 20121010 1172 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 1173 target.dirdep matches .dirdep 1174 11752012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1176 1177 * install-mk (MK_VERSION): bump version to 20120808 1178 * import latest meta2deps.py from Juniper. 1179 11802012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1181 1182 * install-mk (MK_VERSION): bump version to 20120711 1183 * dep.mk: add explicit dependencies on SRCS after applying 1184 SRCS_DEP_FILTER 1185 * meta.autodep.mk: add explicit dependencies on SRCS after 1186 applying SRCS_DEP_FILTER 1187 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 1188 11892012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 1190 1191 * install-mk (MK_VERSION): bump version to 20120626 1192 * meta.sys.mk: ignore PYTHON if it does not exist 1193 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 1194 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 1195 entries ending in .${MACHINE} to decide if qualified _dirdep is 1196 needed. 1197 * gendirdeps.mk: only produce unqualified deps if no 1198 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 1199 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 1200 12012012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1202 1203 * install-mk (MK_VERSION): bump version to 20120420 1204 * add sys.dependfile.mk so we can experiment with 1205 .MAKE.DEPENDFILE_PREFERENCE 1206 * meta.autodep.mk: _DEPENDFILE is precious! 1207 12082012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1209 1210 * install-mk (MK_VERSION): bump version to 20120315 1211 * install-new.mk: avoid being interrupted 1212 12132012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1214 1215 * man.mk: MAN might have multiple values so be careful with exists(). 1216 12172012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 1218 1219 * install-mk (MK_VERSION): bump version to 20120112 1220 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 1221 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 1222 12232011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 1224 1225 * install-mk (MK_VERSION): bump version to 20111201 1226 * import dirdeps.mk from Juniper sjg@ 1227 o more consistent handling of DEP_MACHINE, especially when 1228 dealing with an odd Makefile.depend, when normally using 1229 Makefile.depend.${MACHINE} 1230 12312011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 1232 1233 * install-mk (MK_VERSION): bump version to 20111122 1234 * meta.autodep.mk: add some debug output, be more crisp about 1235 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 1236 12372011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1238 1239 * install-mk (MK_VERSION): bump version to 20111111 1240 it's too cool to miss 1241 * import meta* updates from Juniper sjg@ 1242 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 1243 normally using Makefile.depend.${MACHINE}), handy for 1244 read-only manually maintained dependencies. 1245 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 1246 o gendirdeps.mk if ERROR: from meta2deps.py do not update 1247 anything. 1248 12492011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 1250 1251 * install-new.mk separate the cmp and copy logic to its own function. 1252 12532011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1254 1255 * install-mk (MK_VERSION): bump version to 20111028 1256 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 1257 * subdir.mk: ensure _SUBDIRUSE is provided 1258 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 1259 * meta.subdir.mk: always allow for Makefile.depend 1260 12612011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1262 1263 * install-mk (MK_VERSION): bump version to 20111010 1264 o minor tweak to *dirdeps.mk from Juniper sjg@ 1265 12662011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1267 1268 * install-mk (MK_VERSION): bump version to 20111001 1269 o add meta2deps.py from Juniper sjg@ 1270 o tweak gendirdeps.mk to work with meta2deps.py when not 1271 cross-building 1272 * autoconf.mk: add autoconf-input as a hook for regenerating 1273 AUTOCONF_INPUTS (configure). 1274 12752011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 1276 1277 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 1278 trigger for updating Makefile.depend* 1279 12802011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1281 1282 * install-mk (MK_VERSION): bump version to 20110808 1283 * obj.mk: minor cleanup 1284 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 1285 12862011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1287 1288 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 1289 specified dir. 1290 12912011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 1292 1293 * meta.autodep.mk: if XMAKE_META_FILE is set 1294 the makefile uses a foreign make, and so dependencies 1295 can only be gathered from a clean tree build. 1296 12972011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 1298 1299 * install-mk (MK_VERSION): bump version to 20110622 1300 * meta.autodep.mk: improve bootstraping 1301 13022011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1303 1304 * yacc.mk: handle the corner case of .c being removed 1305 while .h remains. 1306 13072011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1308 1309 * yacc.mk: do .y.h and .y.c separately 1310 13112011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1312 1313 * install-mk (MK_VERSION): bump version to 20110606 1314 * don't store SRC_DIRDEPS in Makefile.depend* by default 1315 not everyone needs it. 1316 13172011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1318 1319 * install-mk (MK_VERSION): bump version to 20110505 1320 first release including meta mode makefiles 1321 13222011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1323 1324 * meta.stage.mk: add STAGE_AS_SETS and stage_as 1325 for things that need to be staged with different names. 1326 13272011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1328 1329 * meta.stage.mk: add notion of STAGE_SETS 1330 so a makefile can stage to multiple dirs 1331 13322011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 1333 1334 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 1335 on target name. 1336 13372011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1338 1339 * install-mk (MK_VERSION): bump version to 20110330 1340 13412011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 1342 1343 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 1344 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 1345 * sys.mk: re-define M_whence in terms of M_type. 1346 M_type is useful for checking if something is a builtin. 1347 13482011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1349 1350 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 1351 stage_libs 1352 13532011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1354 1355 * dirdeps.mk: correct value for _depdir_files depends on 1356 .MAKE.DEPENDFILE 1357 Add our copyright - just to make it clear we have frobbed this 1358 quite a bit. 1359 DEP_MACHINE needs to be set to MACHINE each time, if using only 1360 Makefile.depend (cf. Makefile.depend.${MACHINE}) 1361 1362 * meta.stage.mk: meta mode version of staging 1363 1364 * init.mk, final.mk: include local.*.mk to simplify customization 1365 13662011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1367 1368 * auto.obj.mk: just because we are doing mk destroy, we should 1369 still set .OBJDIR correctly if it exists. 1370 1371 * install-mk (mksrc): do not exclude meta.sys.mk 1372 13732011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1374 1375 * host-target.mk: set/export _HOST_ARCH etc separately, 1376 catch junk resulting from uname -p, so we can find sys/Linux.mk 1377 correctly. 1378 13792011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1380 1381 * meta.sys.mk: throw an error if /dev/filemon is missing and we 1382 expected to be updating Makefile.depend* 1383 13842011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1385 1386 * install-mk (MK_VERSION): bump version to 20110214 1387 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 1388 13892010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 1390 1391 * meta.sys.mk: not valid for older bmake 1392 13932010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 1394 1395 * install-mk (MK_VERSION): bump version to 20100919 1396 include dirdeps.mk et al from Juniper Networks, 1397 for meta mode - requires filemon(9). 1398 * sys.mk, subdir.mk: Add hooks for meta mode. 1399 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 1400 to make turning it on/off simple. 1401 14022010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 1403 1404 * install-mk (MK_VERSION): bump version to 20100616 1405 * fix typo in sys.mk 1406 14072010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 1408 1409 * install-mk (MK_VERSION): bump version to 20100612 1410 * lib.mk: remove duplicate addition to SOBJS 1411 14122010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1413 1414 * sys.mk: Add a means of selectively turning on debug flags. 1415 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 1416 will act as if we did make -dv if .CURDIR ends in lib/sjg 1417 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 1418 the start of sys.mk rather than the end. 1419 This only makes sense for leaf dirs, so we check that 1420 .MAKE.LEVEL > 0 1421 14222010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 1423 1424 * install-mk (MK_VERSION): bump version to 20100608 1425 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 1426 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 1427 also make it easier for folk to tweak 1428 14292010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1430 1431 * install-mk (MK_VERSION): bump version to 20100606 1432 do not install examples/* 1433 * FILES: add examples/sys.clean-env.mk 1434 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 1435 this requires bmake-20100606 or later to work. 1436 14372010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 1438 1439 * sys.mk (M_tA): better simulate the result of :tA if not available. 1440 14412010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1442 1443 * sys.mk: canonicalize MAKE_VERSION 1444 old versions reported bmake-<src-date> build-<build-date> 1445 whereas we only care about <src-date> 1446 14472010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 1448 1449 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 1450 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 1451 is !empty 1452 14532010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 1454 1455 * dpadd.mk: use LDADD_* if defined. 1456 14572010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1458 1459 * install-mk (MK_VERSION): bump version to 20100420 1460 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 1461 * autoconf.mk allow AUTO_AUTOCONF 1462 14632010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 1464 1465 * obj.mk: add objwarn to keep freebsd makefiles happy 1466 * auto.obj.mk: ensure Mkdirs is available. 1467 * FILES: add auto.dep.mk - a simpler version of autodep.mk 1468 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 1469 asked to do that. 1470 fix/simplify the tests for when to run mkdep. 1471 * auto.dep.mk: add some explanation of how/what we do. 1472 * autodep.mk: skip the .OPTIONAL frobbing of .depend 1473 bmake's FROM_DEPEND flag makes it redundant. 1474 14752010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1476 1477 * install-mk (MK_VERSION): bump version to 20100404 1478 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 1479 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 1480 Also create a target _SUBDIRUSE so that we can be used without 1481 subdir.mk 1482 14832010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 1484 1485 * dep.mk: use <> when .including so can override. 1486 14872010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 1488 1489 * lib.mk (SHLIB_LINKS): ensure a string comparison. 1490 14912010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 1492 1493 * install-mk (MK_VERSION): bump version to 20100102 1494 * own.mk: ensure PRINTOBJDIR works 1495 * autoconf.mk: pass on CONFIGURE_ARGS 1496 * init.mk: handle COPTS.${.IMPSRC:T} etc. 1497 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 1498 fix handling of symlinks for darwin 1499 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 1500 * man.mk: suppress chown when not root. 1501 * rst2htm.mk: allow srcs from multiple locations. 1502 * sys.mk: M_whence, stop after 1st line of output. 1503 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 1504 * sys/SunOS.mk: we need to export PATH 1505 15062009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 1507 1508 * install-mk (MK_VERSION): bump version 1509 include rst2htm.mk 1510 15112009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 1512 1513 * sys.mk,libnames.mk add .-include <local.*> 1514 this allows local customization without the need to edit the 1515 distributed files. 1516 15172009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 1518 1519 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 1520 older versions already installed. 1521 15222009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 1523 1524 * stage.mk (.stage-install): generalize lib.mk's .libinstall 1525 * rules.mk rules for generic Makefile. 1526 * inc.mk install for includes. 1527 15282009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 1529 1530 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 1531 this, so provide it if using native make. 1532 15332009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 1534 1535 * FILES: move all the platform *.sys.mk files to sys/*.mk 1536 * Rename Generic.sys.mk to sys.mk - we always want it. 1537 15382009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 1539 1540 * install-mk (MK_VERSION): bump version 1541 * host-target.mk: only export the expensive stuff 1542 * Generic.sys.mk (sys_mk): for SunOS we need to look for 1543 ${HOST_OS}.${HOST_OSMAJOR} too! 1544 15452009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 1546 1547 * install-mk (MK_VERSION): bump version 1548 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 1549 based on patch from Greg Olszewski. 1550 * Generic.sys.mk: if we have nothing to work with 1551 set LORDER etc only if we can find it. 1552 15532009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 1554 1555 * install-mk (MK_VERSION): bump version 1556 * man.mk: cleanman: remove CLEANMAN if defined. 1557 15582009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 1559 1560 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 1561 15622009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 1563 1564 * install-mk (MK_VERSION): bump version 1565 include auto.obj.mk 1566 1567 15682009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 1569 1570 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 1571 15722008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 1573 1574 * install-mk (MK_VERSION): bump version 1575 man.mk: ensure we generate *.cat1 etc in . 1576 15772008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 1578 1579 * install-mk (MK_VERSION): bump version 1580 add prlist.mk 1581 15822007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 1583 1584 * Generic.sys.mk: Allow os specific sys.mk to be in a 1585 subdir of ${.PARSEDIR} 1586 15872007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 1588 1589 * install-mk (MK_VERSION): bump version 1590 * general cleanup 1591 * dpadd.mk introduce DPMAGIC_LIBS_* 1592 15932007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 1594 1595 * install-mk (MK_VERSION): bump version 1596 1597 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 1598 depend files and ensure clean is called for each lib/prog. 1599 16002007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 1601 1602 * autodep.mk (.depend): delete lines that do not start with 1603 space and do not contain ':' 1604 16052007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 1606 1607 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 1608 so make sure the transform for .OPTIONAL copes. 1609 16102007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1611 1612 * install-mk (MK_VERSION): bump version 1613 1614 * own.mk: make sure RM and LN are defined. 1615 1616 * obj.mk: fix a typo, and objlink target. 1617 16182006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 1619 1620 * install-mk (MK_VERSION): bump version 1621 * added libs.mk - analogous to progs.mk 1622 make both of them always inlcude {lib,prog}.mk 1623 16242006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 1625 1626 * progs.mk: add a means of building multiple apps in one dir. 1627 16282006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 1629 1630 * install-mk (MK_VERSION): bump version to 20061126 1631 1632 * warnings.mk: detect invalid WARNINGS_SET 1633 1634 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 1635 specific warnings. 1636 1637 * For .cc sources, turn off warnings that g++ vomits on. 1638 16392006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 1640 1641 * own.mk: if __initialized__ target doesn't exist and we are 1642 FreeBSD we got here directly from sys.mk 1643 16442006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 1645 1646 * install-mk (MK_VERSION): bump version to 20061106 1647 add scripts.mk 1648 16492006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 1650 1651 * install-mk (MK_VERSION): bump version to 20060318 1652 1653 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 1654 16552006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 1656 1657 * install-mk (MK_VERSION): bump version to 20060302 1658 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 1659 16602006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 1661 1662 * install-mk (MK_VERSION): bump version to 20060301 1663 * autodep.mk (.depend): 1664 if MAKE_VERSION is newer than 20050530 we can make .END depend on 1665 .depend and make .depend depend on __depsrcs that exist. 1666 * dpadd.mk: add SRC_PATHADD 1667 16682005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 1669 1670 * install-mk (MK_VERSION): bump version to 20051104 1671 * prog.mk: remove all the LIBC?= junk, use 1672 .-include libnames.mk instead (none by default). 1673 also if USE_DPADD_MK is set, include that. 1674 16752005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 1676 1677 * install-mk (MK_VERSION): bump version to 20051001 1678 Add UnixWare.sys.mk from Klaus Heinz. 1679 16802005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 1681 1682 * install-mk: always install *.sys.mk and if need be symlink one 1683 to sys.mk 1684 16852005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 1686 1687 * subdir.mk, own.mk: use .MAKE rather than MAKE 1688 16892004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 1690 1691 * own.mk: don't use NetBSD's _SRC_TOP_ it can 1692 cause confusion. Also don't take just 'mk' as a 1693 srctop indicator. 1694 16952004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 1696 1697 * warnings.mk: overhauled, now very powerful. 1698 16992004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1700 1701 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 1702 17032004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 1704 1705 * install-mk (MK_VERSION): bump version to 20040201 1706 * extract HOST_TARGET stuff to host-target.mk so own.mk and 1707 Generic.sys.mk can share. 1708 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 1709 17102003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 1711 1712 * install-mk (MK_VERSION): 20030930 1713 * rename generic.sys.mk to Generic.sys.mk 1714 so that it does not get installed (unless being used as sys.mk) 1715 * set OS and ROOT_GROUP for those that we know the value. 1716 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 1717 we don't do it again for each sub-make. 1718 17192003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 1720 1721 * install-mk (MK_VERSION): 20030928 1722 Add some extra *.sys.mk from bootstrap-pkgsrc 1723 some of these likely still need work. 1724 Make everything default to root:wheel ownership, 1725 sys.mk can set ROOT_GROUP accordingly. 1726 17272003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 1728 1729 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 1730 not the portable ones. 1731 17322003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 1733 1734 * install-mk: add ability to use cp -f when updating 1735 destination .mk files. Also now possible to play games with 1736 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 1737 into dest - not recommended unless you seriously want to. 1738 17392003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 1740 1741 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 1742 for semi-compatability with NetBSD. 1743 17442003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 1745 1746 * install-mk: add a version indicator 1747 17482003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 1749 1750 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 1751 1752 * install-mk: Allow FORCE_SYS_MK to come from env 1753 1754 1755 1756