12020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * install-mk (MK_VERSION): 20201101 4 5 * dirdeps.mk: most leaf makefiles are not suitable for building 6 dirdeps.cache so if RELDIR is not "." use dirdeps.mk 7 82020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * install-mk (MK_VERSION): 20201028 11 12 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE 13 when building dirdeps.cache for leaf directory use -f dirdeps.mk 14 15 * sys.vars.mk: add M_JOT and M_RANGE 16 172020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 18 19 * install-mk (MK_VERSION): 20201001 20 21 * meta2deps.{py,sh}: throw an error if we don't see filemon version 22 232020-09-09 Simon J Gerraty <sjg@beast.crufty.net> 24 25 * install-mk (MK_VERSION): 20200909 26 27 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target 28 292020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 30 31 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 32 (even more rare that use of static cache is playing clever tricks 33 with it) 34 352020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 36 37 * dirdeps-cache-update.mk: allow 38 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 39 actually update STATIC_DIRDEPS_CACHE. 40 41 * stage-install.sh: create dest directory if needed 42 before running install(1) 43 442020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 45 46 * dirdeps-targets.mk: include Makefile.dirdeps.options 47 48 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 49 502020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 51 52 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 53 54 * dirdeps-cache-update.mk: building parallel cache update 55 under the context of dirdeps-cached would be ideal, but 56 is problematic, so it runs as a sibling. 57 Use cache-built target to ensure we wait for it to complete if 58 necessary. 59 602020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 61 62 * install-mk (MK_VERSION): 20200806 63 64 * dirdeps-options: allow TARGET_SPEC to affect option values. 65 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 66 67 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 68 before looking for STATIC_DIRDEPS_CACHE 69 702020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 71 72 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 73 74 * dirdeps-options.mk: improve debug output 75 762020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 77 78 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 79 for use by dirdeps-cache-update.mk 80 81 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 82 for use by dirdeps-cache-update.mk even if we don't use it. 83 84 * dirdeps-cache-update.mk: we only need worry about the background 85 update case, with the above, the update from DIRDEPS_CACHE is 86 simple. 87 88 * meta2deps.py: R 1234 . is not interesting 89 902020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 91 92 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 93 94 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 95 allows use of lower case for pseudo options. 96 97 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 98 992020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 100 101 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 102 which allows us to have a static cache for expensive targets. 103 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 104 to regenerate the dirdeps.cache it is a copy of. 105 1062020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 107 108 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 109 1102020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 111 112 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 113 load averages at intervals during build. 114 1152020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 116 117 * install-mk (MK_VERSION): 20200715 118 119 * dirdeps.mk: tweak Checking line to make matching Finished 120 lines for post-build analysis easier. 121 122 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 123 124 * progs.mk: avoid prog.mk outputting multiple Finished lines 125 1262020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 127 128 * dirdeps.mk: further optimize dirdeps.cache 129 generate a DIRDEPS.${.TARGET} list for other purposes 130 and improve the layout. 131 1322020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 133 134 * dirdeps.mk: optimize content of dirdeps.cache 135 1362020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 137 138 * sys/*.mk: make it easier for local*sys.mk to customize by 139 using ?= 140 1412020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 142 143 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 144 it is much safer to guard local depends with a simple check for 145 .MAKE.LEVEL > 0 146 1472020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 148 149 * install-mk (MK_VERSION): 20200610 150 151 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 152 1532020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 154 155 * install-mk (MK_VERSION): 20200606 156 157 * dirdeps-targets.mk: allow for filtering of .TARGETS 158 159 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 160 entries - and we don't care about 'W'rite entries. 161 Also ignore absolute paths that do not exist. 162 1632020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 164 165 * install-mk (MK_VERSION): 20200525 166 167 * init.mk: expand and simplify handling of qualified vars 168 like CPPFLAGS.${.TARGET:T} 169 1702020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 171 172 * install-mk (MK_VERSION): 20200515 173 174 * dirdeps.mk: set _debug_* earlier and allow passing -d* 175 flags to submake when building DIRDEPS_CACHE 176 1772020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 178 179 * whats.mk: more easily extensible 180 1812020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 182 183 * whats.mk: greatly simplify by adding what.c to SRCS 184 1852020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 186 187 * whats.mk: for libs take care how we add to *OBJS 188 189 * lib.mk: : works better with whats.mk 190 1912020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 192 193 * install-mk (MK_VERSION): 20200420 194 195 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 196 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 197 1982020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 199 200 * install-mk (MK_VERSION): 20200416 201 202 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 203 interfere with user env. 204 205 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 206 207 * autodep.mk: use MAKE_SHELL. 208 2092019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 210 211 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 212 wasted effort, and unexport _meta_files when no longer needed as 213 it consumes space we need for command line. 214 2152019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 216 217 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 218 DIRDEP_USE_PRELUDE at start - facilitates job distribution 219 2202019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 221 222 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 223 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 224 TARGET_SPEC qualified depend files. 225 2262019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 227 228 * dirdeps-targets.mk: encapsulate logic for finding top-level 229 targets to set initial DIRDEPS for DIRDEPS_BUILD 230 2312019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 232 233 * install-mk (MK_VERSION): 20190911 234 235 * compiler.mk: set COMPILER_TYPE 236 2372019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 238 239 * install-mk (MK_VERSION): 20190704 240 241 * sys/Darwin.mk: support for Objective-C and clang 242 2432019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 244 245 * dirdeps.mk: avoid insanely long command line when generating cache 246 2472019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 248 249 * install-mk (MK_VERSION): 20190505 250 251 * whats.mk: handle corner case SHLIB defined but not LIB 252 2532018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 254 255 * install-mk (MK_VERSION): 20180919 256 257 * dirdeps-options.mk: .undef cannot handle var that expands to 258 more than one var. 259 2602018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 261 262 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 263 2642018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 265 266 * meta.autodep.mk: export META_FILES to avoid command line limit 267 * gendirdeps.mk: if we have lots of .meta files put them in 268 an @list 269 2702018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 271 272 * dirdeps-options.mk: use local.dirdeps-options.mk 273 not local.dirdeps-option.mk 274 2752018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 276 277 * install-mk (MK_VERSION): 20180420 278 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 279 ie. we are building something. 280 2812018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 282 283 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 284 2852018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 286 287 * install-mk (MK_VERSION): 20180405 288 289 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 290 if needed. 291 2922018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 293 294 * install-mk (MK_VERSION): 20180118 295 296 * ldorder.mk: let make compute correct link order 297 2982017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 299 300 * install-mk (MK_VERSION): 20171212 301 302 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 303 3042017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 305 306 * install-mk (MK_VERSION): 20171111 307 308 * lib.mk: ensure META_NOECHO is set 309 3102017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 311 312 * Allow for host32 on rare occasions. 313 3142017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 315 316 * install-mk (MK_VERSION): 20171018 317 318 * whats.mk: include what_thing in what_uuid to avoid problem 319 when building multiple apps in the same directory. 320 3212017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 322 323 * install-mk (MK_VERSION): 20170812 324 325 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 326 add dependencies for config.recheck and config.gen 327 3282017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 329 330 * install-mk (MK_VERSION): 20170630 331 332 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 333 3342017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 335 336 * meta2deps.py: take special care of '..' 337 3382017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 339 340 * install-mk (MK_VERSION): 20170515 341 342 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 343 useful/necessary for a Makefile.depend file to export some knobs. 344 This is complicated when we are doing DIRDEPS_CACHE, so we will 345 handle export of any variables listed in DEP_EXPORT_VARS. 346 3472017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 348 349 * install-mk (MK_VERSION): 20170505 350 351 * meta2deps.py: fix botched indenation. 352 3532017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 354 355 * sys/*.mk: Remove setting of MAKE it is unnecessary and 356 in many cases wrong (basname rather than full path) 357 358 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 359 360 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 361 3622017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 363 364 * install-mk (MK_VERSION): 20170501 365 366 * doc.mk: fix typo in DOC_INSTALL_OWN 367 368 * inc.mk: handle INCGROUPS similar to freebsd 369 370 * files.mk: add something for files too 371 372 * add staging logic to lib.mk prog.mk etc. 373 3742017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 375 376 * install-mk (MK_VERSION): 20170424 377 378 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 379 also target of bootstrap-this when sed is needed should be ${_want:T} 380 3812017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 382 383 * install-mk (MK_VERSION): 20170418 384 385 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 386 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 387 3882017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 389 390 * install-mk (MK_VERSION): 20170401 391 392 * meta2deps.py: add is_src so we can check if obj dependency 393 is also a src dependency. 394 3952017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 396 397 * install-mk (MK_VERSION): 20170326 398 399 * meta.stage.mk: do nothing if NO_STAGING is defined. 400 4012017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 402 403 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 404 4052017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 406 407 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 408 4092017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 410 411 * install-mk (MK_VERSION): 20170301 412 413 * dirdeps.mk (_build_all_dirs): update this outside test for empty 414 DIRDEPS. 415 416 * meta.stage.mk: allow multiple inclusion to the extent it makes 417 sense. 418 4192017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 420 421 * prog.mk (install_links): depends on realinstall 422 4232017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 424 425 * install-mk (MK_VERSION): 20170212 426 427 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 428 4292017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 430 431 * install-mk (MK_VERSION): 20170130 432 433 * dirdeps.mk: use :range if we can. 434 435 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 436 437 * meta2deps.py: clean paths without using realpath() where possible. 438 fix sort_unique. 439 4402016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 441 442 * install-mk (MK_VERSION): 20161212 443 444 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 445 rather than when we detect pid change. 446 4472016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 448 449 * install-mk (MK_VERSION): 20161207 450 451 * meta.stage.mk: add stage_as_and_symlink for staging packages. 452 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 453 to use foo.tgz to reference the latest staged version - so we 454 make foo.tgz a symlink to it. 455 Using a target to do both operations ensures we stay in sync. 456 4572016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 458 459 * install-mk (MK_VERSION): 20161126 460 461 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 462 so it can add dependencies. 463 4642016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 465 466 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 467 do that they can influence the result correctly. 468 469 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 470 471 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 472 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 473 4742016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 475 476 * dirdeps.mk: remove dependence on jot (normal situations anyway). 477 Before we read another Makefile.depend* set DEP_* vars from 478 _DEP_TARGET_SPEC in case it uses any of them with := 479 When bootstrapping, trim any ,* from extention of chosen _src 480 Makefile.depend* to get the machine value we subst for. 481 4822016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 483 484 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 485 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 486 487 * sys.mk: extract some bits to sys.{debug,vars}.mk 488 for easier re-use by others. 489 4902016-09-23 Simon Gerraty <sjg@sjg-mba13> 491 492 * lib.mk: Use ${PICO} for extension for PIC objects. 493 default to .pico (like NetBSD) safe on case insensitive filesystem. 494 4952016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 496 497 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 498 4992016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 500 501 * install-mk (MK_VERSION): 20160815 502 503 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 504 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 505 5062016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 507 508 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 509 in meta mode we can ignore the mtime of makefiles 510 5112016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 512 513 * install-mk (MK_VERSION): 20160802 514 515 * lib.mk (libinstall): depends on beforinstall 516 517 * prog.mk (proginstall): depends on beforinstall 518 patch from Lauri Tirkkonen 519 520 * dirdeps.mk (bootstrap): When bootstrapping; creat 521 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 522 .MAKE.DEPENDFILE_BOOTSTRAP_SED 523 524 * dirdeps.mk: move some comments to where they make sense. 525 5262016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 527 528 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 529 5302016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 531 532 * install-mk (MK_VERSION): 20160602 533 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 534 do not apply :T to META_XTRAS 535 patch from Bryan Drewery at FreeBSD.org. 536 5372016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 538 539 * install-mk (MK_VERSION): 20160530 540 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 541 make it so. 542 5432016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 544 545 * install-mk (MK_VERSION): 20160512 546 547 * dpadd.mk: always include local.dpadd.mk if it exists 548 remove some things that better belong in local.dpadd.mk 549 skip INCLUDES_* for staged libs unless SRC_* defined. 550 551 * own.mk: add INCLUDEDIR 552 5532016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 554 555 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 556 TARGET_MACHINE - :E will be empty or match part of path, use 557 ${MACHINE} 558 5592016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 560 561 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 562 NO_FILEMON_COOKIE 563 564 * dirdeps.mk: move the logic that allows for 565 make -f dirdeps.mk some/dir.${TARGET_SPEC} 566 inside the check for !target(_DIRDEP_USE) 567 5682016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 569 570 * Use <> when including local*.mk and others which may exist 571 elsewhere so that user can better control what they get. 572 573 * meta.autodep.mk (NO_FILEMON_COOKIE): 574 create a cookie if we ever build dir with nofilemon 575 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 576 5772016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 578 579 * install-mk (MK_VERSION): 20160401 580 581 * meta2deps.py: fix old print statement when debugging. 582 583 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 584 patch from Bryan Drewery 585 5862016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 587 588 * install-mk (MK_VERSION): 20160317 (St. Pats) 589 590 * warnings.mk: g++ does not like -Wimplicit 591 592 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 593 pelthora of common suffixes for C++ 594 595 * lib.mk: use .So for shared objects 596 5972016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 598 599 * install-mk (MK_VERSION): 20160315 600 601 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 602 normally only applies to scripts. 603 604 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 605 well as outside it. 606 6072016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 608 609 * install-mk (MK_VERSION): 20160310 610 611 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 612 we have processed; the list gets very inefficient as number of 613 DIRDEPS gets large. 614 615 * sys.dependfile.mk: fix comment wrt MACHINE 616 617 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 618 patch from Bryan Drewery 619 6202016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 621 622 * meta2deps.sh: don't ignore subdirs. 623 patch from Bryan Drewery 624 6252016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 626 627 * install-mk (MK_VERSION): 20160226 628 629 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 630 6312016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 632 633 * dirdeps.mk: we shouldn't normally include .depend but if we do 634 use .dinclude if we can. 635 6362016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 637 638 * install-mk (MK_VERSION): 20160218 639 * sys.clean-env.mk: with recent change to Var_Subst() 640 we cannot use the '$$' trick, but .export-literal does the job 641 we need. 642 * auto.dep.mk: make use .dinclude if we can. 643 644 6452016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 646 647 * dirdeps.mk: 648 Add _build_all_dirs such that local.dirdeps.mk can 649 add fully qualified dirs to it. 650 These will be built normally but the current 651 DEP_RELDIR will not depend on then (to avoid cycles). 652 This makes it easy to hook things like unit-tests into build. 653 654 6552016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 656 657 * dirdeps.mk: add bootstrap-empty 658 6592015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 660 661 * install-mk (MK_VERSION): 20151212 662 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 663 only apply :tA to __objdir when comparing to .OBJDIR 664 6652015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 666 667 * install-mk (MK_VERSION): 20151111 668 669 * meta.sys.mk: include sys.dependfile.mk 670 671 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 672 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 673 include local.sys.env.mk early 674 include local.sys.mk later 675 676 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 677 6782015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 679 680 * meta.sys.mk (META_COOKIE_TOUCH): 681 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 682 683 * meta.stage.mk: stage_libs should ignore SYMLINKS. 684 6852015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 686 687 * install-mk (MK_VERSION): 20151022 688 689 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 690 6912015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 692 693 * install-mk (MK_VERSION): 20151020 694 695 * dirdeps.mk: Add logic for 696 make -f dirdeps.mk some/dir.${TARGET_SPEC} 697 6982015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 699 700 * install-mk (MK_VERSION): 20151010 701 7022015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 703 704 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 705 to have stage_lins run last in non-jobs mode. 706 Use .ORDER only for jobs mode. 707 7082015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 709 710 * rst2htm.mk: allow for per target flags etc. 711 7122015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 713 714 * install-mk (MK_VERSION): 20150901 715 716 * doc.mk: create dir if needed use DOC_INSTALL_OWN 717 7182015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 719 720 * install-mk (MK_VERSION): 20150615 721 722 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 723 Follow make's normal precedence rules. 724 725 * gendirdeps.mk: allow customization of the header. 726 eg. for FreeBSD: 727 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 728 729 * meta.autodep.mk: ignore dirdeps.cache* 730 731 * meta.stage.mk: when bootstrapping options it can be handy to 732 throw warnings rather than errors for staging conflicts. 733 734 * meta.sys.mk: include local.meta.sys.mk for customization 735 7362015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 737 738 * install-mk (MK_VERSION): 20150606 739 740 * dirdeps.mk: don't rely on manually maintained Makefile.depend 741 to set DEP_RELDIR and reset DIRDEPS. 742 By setting DEP_RELDIR ourselves we can skip :tA 743 744 * gendirdeps.mk: skip setting DEP_RELDIR. 745 7462015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 747 748 * dirdeps.mk: avoid wildcards like make(bootstrap*) 749 7502015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 751 752 * install-mk (MK_VERSION): 20150520 753 754 * dirdeps.mk: when we are building dirdeps cache file we *want* 755 meta_oodate to look at all the Makefile.depend files, so 756 set .MAKE.DEPENDFILE to something that won't match. 757 758 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 759 so first use absolute path as key. 760 Also skip staging at level 0. 761 7622015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 763 764 * install-mk (MK_VERSION): 20150430 765 766 * dirdeps.mk: fix _count_dirdeps for non-cache case. 767 7682015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 769 770 * install-mk (MK_VERSION): 20150411 771 bump version 772 773 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 774 it is here mainly for documentation purposes, since 775 if using auto.obj.mk it is better done via sys.mk 776 7772015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 778 779 * install-mk (MK_VERSION): 20150401 780 781 * meta2deps.sh: support @list 782 783 * meta2deps.py: updates from Juniper 784 o add EXCLUDES 785 o skip bogus input files. 786 o treat 'M' and 'L' as both an 'R' and a 'W' 787 7882015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 789 790 * install-mk (MK_VERSION): 20150303 791 792 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 793 which is built via sub-make so we have a .meta file to tell if 794 it is out-of-date. 795 The dirdeps-cache contains the same dependency rules that we 796 normaly construct on the fly. 797 This adds a few seconds overhead when the cache is out of date, 798 but for a large target, the savings can be significant (10-20min). 799 8002014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 801 802 * install-mk (MK_VERSION): 20141118 803 804 * meta.stage.mk: add stale_staged 805 806 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 807 only useful under very rare conditions such as 808 FreeBSD's make universe. 809 810 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 811 8122014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 813 814 * install-mk (MK_VERSION): 20141111 815 816 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 817 8182014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 819 820 * FILES: include mkopt.sh which allows handling options in shell 821 scripts in a manner compatible with options.mk 822 8232014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 824 825 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 826 for GENDIRDEPS_FILTER to avoid surprises. 827 8282014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 829 830 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 831 the time it is applied to __depdirs they have. 832 833 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 834 expects patterns like *.${MACHINE} 835 836 * cython.mk (pyprefix?): use pyprefix to find python bits 837 since prefix might be something else (where we install our 838 stuff) 839 8402014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 841 842 * install-mk (MK_VERSION): 20140911 843 844 * dirdeps.mk: add bootstrap target to simplify adding support for 845 new MACHINE. 846 8472014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 848 849 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 850 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 851 Makefile.depend files. 852 8532014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 854 855 * install-mk (MK_VERSION): 20140828 856 857 * cython.mk: capture logic for building python extension modules 858 with Cython. 859 8602014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 861 862 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 863 8642014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 865 866 * install-mk (MK_VERSION): 20140801 867 868 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 869 identify the autodep.mk variant. 870 871 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 872 initial value does not match .MAKE.DEPENDFILE_PREFIX 873 874 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 875 8762014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 877 878 * install-mk (MK_VERSION): 20140522 879 880 * lib.mk: use CC to link shlib for linux too 881 patch from Brendan MacDonell 882 8832014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 884 885 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 886 if WITH_META_STATS is defined. 887 8882014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 889 890 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 891 to supress dirdeps outside of .CURDIR. 892 8932014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 894 895 * Fix spelling errors - patch from Pedro Giffuni 896 8972014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 898 899 * install-mk (MK_VERSION): 20140314 900 901 * dirdeps.mk (beforedirdeps): a handy hook 902 903 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 904 to visit leaf dirs to be intercepted (eg. for distributed 905 build). 906 907 * dirdeps.mk (__depdirs): ensure // don't sneak in 908 909 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 910 911 9122014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 913 914 * rst2htm.mk (RST2PDF): add support for rst2pdf 915 9162014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 917 918 * install-mk (MK_VERSION): bump version 919 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 920 available. 921 9222014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 923 924 * options.mk: avoid :U so this isn't bmake dependent 925 9262014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 927 928 * options.mk: cleanup and simplify semanitcs 929 NO_* dominates all, if both WITH_* and WITHOUT_* 930 are defined then result is DOMINATE_* which defaults to "no". 931 Ie. WITHOUT_ normally wins. 932 9332013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 934 935 * install-mk (MK_VERSION): bump version 936 * meta2deps.py: convert to print function for python3 compat. 937 we also need to open files with mode 'r' rather than 'rb' 938 otherwise we get bytes instead of strings. 939 9402013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 941 942 * install-mk (MK_VERSION): bump version 943 944 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 945 apply the same filtering (M_dep_qual_fixes) when setting _machines 946 as _build_dirs. 947 Also fix the filtering of Makefile.depend files - for reporting 948 what we are looking for (M_dep_qual_fixes can get confused by 949 Makefile.depend) 950 Add some more debug info. 951 9522013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 953 954 * gendirdeps.mk (_objtops): fix typo also 955 while processing M2D_OBJROOTS to gather qualdir_list 956 qualify $ql with loop iterator to ensure correct results. 957 9582013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 959 960 * install-mk (MK_VERSION): 20130801 961 * libs.mk: update to match progs.mk 962 9632013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 964 965 * install-mk (MK_VERSION): 20130726 966 some updates from Juniper and FreeBSD 967 o meta2deps.py: indicate file and line number when we hit parse 968 errors 969 also allow @file to provide huge list of .meta files. 970 * meta2deps.py: add try_parse() to cleanup the above. 971 9722013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 973 974 * install-mk (MK_VERSION): 20130716 975 * own.mk: add GPROG as an option 976 * prog.mk: honor MK_GPROF==yes 977 9782013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 979 980 * install-mk (MK_VERSION): 20130505 981 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 982 for when $MACHINE isn't enough for objdir distinction. 983 Bring meta2deps.sh closer to par with meta2deps.py. 984 9852013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 986 987 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 988 also if the target 'beforeinstall' exists, make it depend on 989 .dirdep (incase it uses STAGE_INSTALL). 990 9912013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 992 993 * install-mk (MK_VERSION): 20130401 ;-) 994 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 995 wrapper around install(1). 996 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 997 9982013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 999 1000 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 1001 * install-mk (MK_VERSION): bump version 1002 10032013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 1004 1005 * install-mk (MK_VERSION): bump version 1006 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 1007 any trailing /., rather apply :tA only when needed. 1008 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 1009 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 1010 consistently. 1011 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 1012 10132013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1014 1015 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 1016 it is simpler to just not update when say building for "host" 1017 (where we know we apply filters to DIRDEPS), and using a 1018 non-machine qualified dependfile. 1019 10202013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1021 1022 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 1023 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 1024 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 1025 * meta2deps.py: if machine is "host", then also trim 1026 self.host_target from any OBJROOTS. 1027 1028 10292013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1030 1031 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 1032 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 1033 but _DEPENDFILE does not, compare the new _DEPENDFILE against 1034 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 1035 10362013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 1037 1038 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 1039 and hook to all: via staging: 1040 10412013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1042 1043 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 1044 use a separate variable for the default .MAKE.DEPENDFILE value 1045 so that it can be controlled independently of 1046 .MAKE.DEPENDFILE_PREFERENCE 1047 1048 * meta.stage.mk: throw error if cp fails etc. 1049 Stage*() return early if passed no args. 1050 .ORDER stage_* 1051 10522013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1053 1054 * install-mk (MK_VERSION): bump version 1055 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 1056 10572013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1058 1059 * install-mk (MK_VERSION): bump version to 20130210 1060 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 1061 from Juniper. 1062 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 1063 than just MACHINE. 1064 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 1065 10662013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 1067 1068 * install-mk (MK_VERSION): bump version to 20130123 1069 * meta.stage.mk: add stage_links (hard links). 1070 if doing hard links, we add dest to link as well. 1071 Default the stage dir for [sym]links to STAGE_OBJTOP since 1072 these are typically specified as absolute paths. 1073 Add -m "mode" flag to StageFiles and StageAs. 1074 10752012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1076 1077 * install-mk (MK_VERSION): bump version to 20121111 1078 * autoconf.mk: avoid meta mode seeing changed commands for config.status 1079 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 1080 in case we were found via .../mk 1081 * sys.clean-env.mk: move it from examples, we and others use it 1082 "as is". 1083 * FILES: add srctop.mk and options.mk 1084 * own.mk: convert to using options.mk 1085 which is modeled after FreeBSD's handling of MK_* 1086 but more flexible. 1087 This allows MK_* for boolean knobs to not be confused 1088 with MK* which can be commands. 1089 1090 * examples/sys.clean-env.mk: add WITH[OUT]_ to 1091 MAKE_ENV_SAVE_PREFIX_LIST. 1092 Mention that HOME=/var/empty might be a good idea. 1093 10942012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 1095 1096 * sys.dependfile.mk: if not depend file exists, $MACHINE 1097 specific ones are supported but not the default, 1098 check if any exist and follow suit. 1099 11002012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 1101 1102 * install-mk (MK_VERSION): bump version to 20121106 1103 11042012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1105 1106 * import latest dirdeps.mk and meta2deps.py from Juniper. 1107 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 1108 also add PROGS_TARGETS and pass on PROG_CXX if it seems 1109 appropriate. 1110 11112012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 1112 1113 * meta.stage.mk: update CLEANFILES 1114 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 1115 * progs.mk: Add LDADD to PROG_VARS 1116 11172012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1118 1119 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 1120 _STAGED_DIRS so that these can be turned into filters for 1121 GENDIRDEPS_FILTER. 1122 11232012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1124 1125 * install-mk (MK_VERSION): bump version to 20121010 1126 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 1127 target.dirdep matches .dirdep 1128 11292012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1130 1131 * install-mk (MK_VERSION): bump version to 20120808 1132 * import latest meta2deps.py from Juniper. 1133 11342012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1135 1136 * install-mk (MK_VERSION): bump version to 20120711 1137 * dep.mk: add explicit dependencies on SRCS after applying 1138 SRCS_DEP_FILTER 1139 * meta.autodep.mk: add explicit dependencies on SRCS after 1140 applying SRCS_DEP_FILTER 1141 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 1142 11432012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 1144 1145 * install-mk (MK_VERSION): bump version to 20120626 1146 * meta.sys.mk: ignore PYTHON if it does not exist 1147 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 1148 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 1149 entries ending in .${MACHINE} to decide if qualified _dirdep is 1150 needed. 1151 * gendirdeps.mk: only produce unqualified deps if no 1152 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 1153 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 1154 11552012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1156 1157 * install-mk (MK_VERSION): bump version to 20120420 1158 * add sys.dependfile.mk so we can experiment with 1159 .MAKE.DEPENDFILE_PREFERENCE 1160 * meta.autodep.mk: _DEPENDFILE is precious! 1161 11622012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1163 1164 * install-mk (MK_VERSION): bump version to 20120315 1165 * install-new.mk: avoid being interrupted 1166 11672012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1168 1169 * man.mk: MAN might have multiple values so be careful with exists(). 1170 11712012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 1172 1173 * install-mk (MK_VERSION): bump version to 20120112 1174 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 1175 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 1176 11772011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 1178 1179 * install-mk (MK_VERSION): bump version to 20111201 1180 * import dirdeps.mk from Juniper sjg@ 1181 o more consistent handling of DEP_MACHINE, especially when 1182 dealing with an odd Makefile.depend, when normally using 1183 Makefile.depend.${MACHINE} 1184 11852011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 1186 1187 * install-mk (MK_VERSION): bump version to 20111122 1188 * meta.autodep.mk: add some debug output, be more crisp about 1189 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 1190 11912011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1192 1193 * install-mk (MK_VERSION): bump version to 20111111 1194 it's too cool to miss 1195 * import meta* updates from Juniper sjg@ 1196 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 1197 normally using Makefile.depend.${MACHINE}), handy for 1198 read-only manually maintained dependencies. 1199 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 1200 o gendirdeps.mk if ERROR: from meta2deps.py do not update 1201 anything. 1202 12032011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 1204 1205 * install-new.mk separate the cmp and copy logic to its own function. 1206 12072011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1208 1209 * install-mk (MK_VERSION): bump version to 20111028 1210 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 1211 * subdir.mk: ensure _SUBDIRUSE is provided 1212 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 1213 * meta.subdir.mk: always allow for Makefile.depend 1214 12152011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1216 1217 * install-mk (MK_VERSION): bump version to 20111010 1218 o minor tweak to *dirdeps.mk from Juniper sjg@ 1219 12202011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1221 1222 * install-mk (MK_VERSION): bump version to 20111001 1223 o add meta2deps.py from Juniper sjg@ 1224 o tweak gendirdeps.mk to work with meta2deps.py when not 1225 cross-building 1226 * autoconf.mk: add autoconf-input as a hook for regenerating 1227 AUTOCONF_INPUTS (configure). 1228 12292011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 1230 1231 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 1232 trigger for updating Makefile.depend* 1233 12342011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1235 1236 * install-mk (MK_VERSION): bump version to 20110808 1237 * obj.mk: minor cleanup 1238 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 1239 12402011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1241 1242 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 1243 specified dir. 1244 12452011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 1246 1247 * meta.autodep.mk: if XMAKE_META_FILE is set 1248 the makefile uses a foreign make, and so dependencies 1249 can only be gathered from a clean tree build. 1250 12512011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 1252 1253 * install-mk (MK_VERSION): bump version to 20110622 1254 * meta.autodep.mk: improve bootstraping 1255 12562011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1257 1258 * yacc.mk: handle the corner case of .c being removed 1259 while .h remains. 1260 12612011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1262 1263 * yacc.mk: do .y.h and .y.c separately 1264 12652011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1266 1267 * install-mk (MK_VERSION): bump version to 20110606 1268 * don't store SRC_DIRDEPS in Makefile.depend* by default 1269 not everyone needs it. 1270 12712011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1272 1273 * install-mk (MK_VERSION): bump version to 20110505 1274 first release including meta mode makefiles 1275 12762011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1277 1278 * meta.stage.mk: add STAGE_AS_SETS and stage_as 1279 for things that need to be staged with different names. 1280 12812011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1282 1283 * meta.stage.mk: add notion of STAGE_SETS 1284 so a makefile can stage to multiple dirs 1285 12862011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 1287 1288 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 1289 on target name. 1290 12912011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1292 1293 * install-mk (MK_VERSION): bump version to 20110330 1294 12952011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 1296 1297 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 1298 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 1299 * sys.mk: re-define M_whence in terms of M_type. 1300 M_type is useful for checking if something is a builtin. 1301 13022011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1303 1304 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 1305 stage_libs 1306 13072011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1308 1309 * dirdeps.mk: correct value for _depdir_files depends on 1310 .MAKE.DEPENDFILE 1311 Add our copyright - just to make it clear we have frobbed this 1312 quite a bit. 1313 DEP_MACHINE needs to be set to MACHINE each time, if using only 1314 Makefile.depend (cf. Makefile.depend.${MACHINE}) 1315 1316 * meta.stage.mk: meta mode version of staging 1317 1318 * init.mk, final.mk: include local.*.mk to simplify customization 1319 13202011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1321 1322 * auto.obj.mk: just because we are doing mk destroy, we should 1323 still set .OBJDIR correctly if it exists. 1324 1325 * install-mk (mksrc): do not exclude meta.sys.mk 1326 13272011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1328 1329 * host-target.mk: set/export _HOST_ARCH etc separately, 1330 catch junk resulting from uname -p, so we can find sys/Linux.mk 1331 correctly. 1332 13332011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1334 1335 * meta.sys.mk: throw an error if /dev/filemon is missing and we 1336 expected to be updating Makefile.depend* 1337 13382011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1339 1340 * install-mk (MK_VERSION): bump version to 20110214 1341 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 1342 13432010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 1344 1345 * meta.sys.mk: not valid for older bmake 1346 13472010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 1348 1349 * install-mk (MK_VERSION): bump version to 20100919 1350 include dirdeps.mk et al from Juniper Networks, 1351 for meta mode - requires filemon(9). 1352 * sys.mk, subdir.mk: Add hooks for meta mode. 1353 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 1354 to make turning it on/off simple. 1355 13562010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 1357 1358 * install-mk (MK_VERSION): bump version to 20100616 1359 * fix typo in sys.mk 1360 13612010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 1362 1363 * install-mk (MK_VERSION): bump version to 20100612 1364 * lib.mk: remove duplicate addition to SOBJS 1365 13662010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1367 1368 * sys.mk: Add a means of selectively turning on debug flags. 1369 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 1370 will act as if we did make -dv if .CURDIR ends in lib/sjg 1371 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 1372 the start of sys.mk rather than the end. 1373 This only makes sense for leaf dirs, so we check that 1374 .MAKE.LEVEL > 0 1375 13762010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 1377 1378 * install-mk (MK_VERSION): bump version to 20100608 1379 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 1380 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 1381 also make it easier for folk to tweak 1382 13832010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1384 1385 * install-mk (MK_VERSION): bump version to 20100606 1386 do not install examples/* 1387 * FILES: add examples/sys.clean-env.mk 1388 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 1389 this requires bmake-20100606 or later to work. 1390 13912010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 1392 1393 * sys.mk (M_tA): better simulate the result of :tA if not available. 1394 13952010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1396 1397 * sys.mk: canonicalize MAKE_VERSION 1398 old versions reported bmake-<src-date> build-<build-date> 1399 whereas we only care about <src-date> 1400 14012010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 1402 1403 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 1404 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 1405 is !empty 1406 14072010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 1408 1409 * dpadd.mk: use LDADD_* if defined. 1410 14112010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1412 1413 * install-mk (MK_VERSION): bump version to 20100420 1414 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 1415 * autoconf.mk allow AUTO_AUTOCONF 1416 14172010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 1418 1419 * obj.mk: add objwarn to keep freebsd makefiles happy 1420 * auto.obj.mk: ensure Mkdirs is available. 1421 * FILES: add auto.dep.mk - a simpler version of autodep.mk 1422 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 1423 asked to do that. 1424 fix/simplify the tests for when to run mkdep. 1425 * auto.dep.mk: add some explanation of how/what we do. 1426 * autodep.mk: skip the .OPTIONAL frobbing of .depend 1427 bmake's FROM_DEPEND flag makes it redundant. 1428 14292010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1430 1431 * install-mk (MK_VERSION): bump version to 20100404 1432 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 1433 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 1434 Also create a target _SUBDIRUSE so that we can be used without 1435 subdir.mk 1436 14372010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 1438 1439 * dep.mk: use <> when .including so can override. 1440 14412010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 1442 1443 * lib.mk (SHLIB_LINKS): ensure a string comparison. 1444 14452010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 1446 1447 * install-mk (MK_VERSION): bump version to 20100102 1448 * own.mk: ensure PRINTOBJDIR works 1449 * autoconf.mk: pass on CONFIGURE_ARGS 1450 * init.mk: handle COPTS.${.IMPSRC:T} etc. 1451 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 1452 fix handling of symlinks for darwin 1453 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 1454 * man.mk: suppress chown when not root. 1455 * rst2htm.mk: allow srcs from multiple locations. 1456 * sys.mk: M_whence, stop after 1st line of output. 1457 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 1458 * sys/SunOS.mk: we need to export PATH 1459 14602009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 1461 1462 * install-mk (MK_VERSION): bump version 1463 include rst2htm.mk 1464 14652009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 1466 1467 * sys.mk,libnames.mk add .-include <local.*> 1468 this allows local customization without the need to edit the 1469 distributed files. 1470 14712009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 1472 1473 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 1474 older versions already installed. 1475 14762009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 1477 1478 * stage.mk (.stage-install): generalize lib.mk's .libinstall 1479 * rules.mk rules for generic Makefile. 1480 * inc.mk install for includes. 1481 14822009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 1483 1484 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 1485 this, so provide it if using native make. 1486 14872009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 1488 1489 * FILES: move all the platform *.sys.mk files to sys/*.mk 1490 * Rename Generic.sys.mk to sys.mk - we always want it. 1491 14922009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 1493 1494 * install-mk (MK_VERSION): bump version 1495 * host-target.mk: only export the expensive stuff 1496 * Generic.sys.mk (sys_mk): for SunOS we need to look for 1497 ${HOST_OS}.${HOST_OSMAJOR} too! 1498 14992009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 1500 1501 * install-mk (MK_VERSION): bump version 1502 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 1503 based on patch from Greg Olszewski. 1504 * Generic.sys.mk: if we have nothing to work with 1505 set LORDER etc only if we can find it. 1506 15072009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 1508 1509 * install-mk (MK_VERSION): bump version 1510 * man.mk: cleanman: remove CLEANMAN if defined. 1511 15122009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 1513 1514 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 1515 15162009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 1517 1518 * install-mk (MK_VERSION): bump version 1519 include auto.obj.mk 1520 1521 15222009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 1523 1524 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 1525 15262008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 1527 1528 * install-mk (MK_VERSION): bump version 1529 man.mk: ensure we generate *.cat1 etc in . 1530 15312008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 1532 1533 * install-mk (MK_VERSION): bump version 1534 add prlist.mk 1535 15362007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 1537 1538 * Generic.sys.mk: Allow os specific sys.mk to be in a 1539 subdir of ${.PARSEDIR} 1540 15412007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 1542 1543 * install-mk (MK_VERSION): bump version 1544 * general cleanup 1545 * dpadd.mk introduce DPMAGIC_LIBS_* 1546 15472007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 1548 1549 * install-mk (MK_VERSION): bump version 1550 1551 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 1552 depend files and ensure clean is called for each lib/prog. 1553 15542007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 1555 1556 * autodep.mk (.depend): delete lines that do not start with 1557 space and do not contain ':' 1558 15592007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 1560 1561 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 1562 so make sure the transform for .OPTIONAL copes. 1563 15642007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1565 1566 * install-mk (MK_VERSION): bump version 1567 1568 * own.mk: make sure RM and LN are defined. 1569 1570 * obj.mk: fix a typo, and objlink target. 1571 15722006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 1573 1574 * install-mk (MK_VERSION): bump version 1575 * added libs.mk - analogous to progs.mk 1576 make both of them always inlcude {lib,prog}.mk 1577 15782006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 1579 1580 * progs.mk: add a means of building multiple apps in one dir. 1581 15822006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 1583 1584 * install-mk (MK_VERSION): bump version to 20061126 1585 1586 * warnings.mk: detect invalid WARNINGS_SET 1587 1588 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 1589 specific warnings. 1590 1591 * For .cc sources, turn off warnings that g++ vomits on. 1592 15932006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 1594 1595 * own.mk: if __initialized__ target doesn't exist and we are 1596 FreeBSD we got here directly from sys.mk 1597 15982006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 1599 1600 * install-mk (MK_VERSION): bump version to 20061106 1601 add scripts.mk 1602 16032006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 1604 1605 * install-mk (MK_VERSION): bump version to 20060318 1606 1607 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 1608 16092006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 1610 1611 * install-mk (MK_VERSION): bump version to 20060302 1612 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 1613 16142006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 1615 1616 * install-mk (MK_VERSION): bump version to 20060301 1617 * autodep.mk (.depend): 1618 if MAKE_VERSION is newer than 20050530 we can make .END depend on 1619 .depend and make .depend depend on __depsrcs that exist. 1620 * dpadd.mk: add SRC_PATHADD 1621 16222005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 1623 1624 * install-mk (MK_VERSION): bump version to 20051104 1625 * prog.mk: remove all the LIBC?= junk, use 1626 .-include libnames.mk instead (none by default). 1627 also if USE_DPADD_MK is set, include that. 1628 16292005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 1630 1631 * install-mk (MK_VERSION): bump version to 20051001 1632 Add UnixWare.sys.mk from Klaus Heinz. 1633 16342005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 1635 1636 * install-mk: always install *.sys.mk and if need be symlink one 1637 to sys.mk 1638 16392005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 1640 1641 * subdir.mk, own.mk: use .MAKE rather than MAKE 1642 16432004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 1644 1645 * own.mk: don't use NetBSD's _SRC_TOP_ it can 1646 cause confusion. Also don't take just 'mk' as a 1647 srctop indicator. 1648 16492004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 1650 1651 * warnings.mk: overhauled, now very powerful. 1652 16532004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1654 1655 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 1656 16572004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 1658 1659 * install-mk (MK_VERSION): bump version to 20040201 1660 * extract HOST_TARGET stuff to host-target.mk so own.mk and 1661 Generic.sys.mk can share. 1662 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 1663 16642003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 1665 1666 * install-mk (MK_VERSION): 20030930 1667 * rename generic.sys.mk to Generic.sys.mk 1668 so that it does not get installed (unless being used as sys.mk) 1669 * set OS and ROOT_GROUP for those that we know the value. 1670 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 1671 we don't do it again for each sub-make. 1672 16732003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 1674 1675 * install-mk (MK_VERSION): 20030928 1676 Add some extra *.sys.mk from bootstrap-pkgsrc 1677 some of these likely still need work. 1678 Make everything default to root:wheel ownership, 1679 sys.mk can set ROOT_GROUP accordingly. 1680 16812003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 1682 1683 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 1684 not the portable ones. 1685 16862003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 1687 1688 * install-mk: add ability to use cp -f when updating 1689 destination .mk files. Also now possible to play games with 1690 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 1691 into dest - not recommended unless you seriously want to. 1692 16932003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 1694 1695 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 1696 for semi-compatability with NetBSD. 1697 16982003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 1699 1700 * install-mk: add a version indicator 1701 17022003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 1703 1704 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 1705 1706 * install-mk: Allow FORCE_SYS_MK to come from env 1707 1708 1709 1710