12020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 4 (even more rare that use of static cache is playing clever tricks 5 with it) 6 72020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 8 9 * dirdeps-cache-update.mk: allow 10 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 11 actually update STATIC_DIRDEPS_CACHE. 12 13 * stage-install.sh: create dest directory if needed 14 before running install(1) 15 162020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 17 18 * dirdeps-targets.mk: include Makefile.dirdeps.options 19 20 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 21 222020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 23 24 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 25 26 * dirdeps-cache-update.mk: building parallel cache update 27 under the context of dirdeps-cached would be ideal, but 28 is problematic, so it runs as a sibling. 29 Use cache-built target to ensure we wait for it to complete if 30 necessary. 31 322020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 33 34 * install-mk (MK_VERSION): 20200806 35 36 * dirdeps-options: allow TARGET_SPEC to affect option values. 37 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 38 39 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 40 before looking for STATIC_DIRDEPS_CACHE 41 422020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 43 44 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 45 46 * dirdeps-options.mk: improve debug output 47 482020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 49 50 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 51 for use by dirdeps-cache-update.mk 52 53 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 54 for use by dirdeps-cache-update.mk even if we don't use it. 55 56 * dirdeps-cache-update.mk: we only need worry about the background 57 update case, with the above, the update from DIRDEPS_CACHE is 58 simple. 59 60 * meta2deps.py: R 1234 . is not interesting 61 622020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 63 64 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 65 66 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 67 allows use of lower case for pseudo options. 68 69 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 70 712020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 72 73 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 74 which allows us to have a static cache for expensive targets. 75 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 76 to regenerate the dirdeps.cache it is a copy of. 77 782020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 79 80 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 81 822020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 83 84 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 85 load averages at intervals during build. 86 872020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 88 89 * install-mk (MK_VERSION): 20200715 90 91 * dirdeps.mk: tweak Checking line to make matching Finished 92 lines for post-build analysis easier. 93 94 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 95 96 * progs.mk: avoid prog.mk outputting multiple Finished lines 97 982020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 99 100 * dirdeps.mk: further optimize dirdeps.cache 101 generate a DIRDEPS.${.TARGET} list for other purposes 102 and improve the layout. 103 1042020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 105 106 * dirdeps.mk: optimize content of dirdeps.cache 107 1082020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 109 110 * sys/*.mk: make it easier for local*sys.mk to customize by 111 using ?= 112 1132020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 114 115 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 116 it is much safer to guard local depends with a simple check for 117 .MAKE.LEVEL > 0 118 1192020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 120 121 * install-mk (MK_VERSION): 20200610 122 123 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 124 1252020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 126 127 * install-mk (MK_VERSION): 20200606 128 129 * dirdeps-targets.mk: allow for filtering of .TARGETS 130 131 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 132 entries - and we don't care about 'W'rite entries. 133 Also ignore absolute paths that do not exist. 134 1352020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 136 137 * install-mk (MK_VERSION): 20200525 138 139 * init.mk: expand and simplify handling of qualified vars 140 like CPPFLAGS.${.TARGET:T} 141 1422020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 143 144 * install-mk (MK_VERSION): 20200515 145 146 * dirdeps.mk: set _debug_* earlier and allow passing -d* 147 flags to submake when building DIRDEPS_CACHE 148 1492020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 150 151 * whats.mk: more easily extensible 152 1532020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 154 155 * whats.mk: greatly simplify by adding what.c to SRCS 156 1572020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 158 159 * whats.mk: for libs take care how we add to *OBJS 160 161 * lib.mk: : works better with whats.mk 162 1632020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 164 165 * install-mk (MK_VERSION): 20200420 166 167 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 168 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 169 1702020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 171 172 * install-mk (MK_VERSION): 20200416 173 174 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 175 interfere with user env. 176 177 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 178 179 * autodep.mk: use MAKE_SHELL. 180 1812019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 182 183 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 184 wasted effort, and unexport _meta_files when no longer needed as 185 it consumes space we need for command line. 186 1872019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 188 189 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 190 DIRDEP_USE_PRELUDE at start - facilitates job distribution 191 1922019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 193 194 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 195 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 196 TARGET_SPEC qualified depend files. 197 1982019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 199 200 * dirdeps-targets.mk: encapsulate logic for finding top-level 201 targets to set initial DIRDEPS for DIRDEPS_BUILD 202 2032019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 204 205 * install-mk (MK_VERSION): 20190911 206 207 * compiler.mk: set COMPILER_TYPE 208 2092019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 210 211 * install-mk (MK_VERSION): 20190704 212 213 * sys/Darwin.mk: support for Objective-C and clang 214 2152019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 216 217 * dirdeps.mk: avoid insanely long command line when generating cache 218 2192019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 220 221 * install-mk (MK_VERSION): 20190505 222 223 * whats.mk: handle corner case SHLIB defined but not LIB 224 2252018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 226 227 * install-mk (MK_VERSION): 20180919 228 229 * dirdeps-options.mk: .undef cannot handle var that expands to 230 more than one var. 231 2322018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 233 234 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 235 2362018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 237 238 * meta.autodep.mk: export META_FILES to avoid command line limit 239 * gendirdeps.mk: if we have lots of .meta files put them in 240 an @list 241 2422018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 243 244 * dirdeps-options.mk: use local.dirdeps-options.mk 245 not local.dirdeps-option.mk 246 2472018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 248 249 * install-mk (MK_VERSION): 20180420 250 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 251 ie. we are building something. 252 2532018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 254 255 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 256 2572018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 258 259 * install-mk (MK_VERSION): 20180405 260 261 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 262 if needed. 263 2642018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 265 266 * install-mk (MK_VERSION): 20180118 267 268 * ldorder.mk: let make compute correct link order 269 2702017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 271 272 * install-mk (MK_VERSION): 20171212 273 274 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 275 2762017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 277 278 * install-mk (MK_VERSION): 20171111 279 280 * lib.mk: ensure META_NOECHO is set 281 2822017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 283 284 * Allow for host32 on rare occasions. 285 2862017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 287 288 * install-mk (MK_VERSION): 20171018 289 290 * whats.mk: include what_thing in what_uuid to avoid problem 291 when building multiple apps in the same directory. 292 2932017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 294 295 * install-mk (MK_VERSION): 20170812 296 297 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 298 add dependencies for config.recheck and config.gen 299 3002017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 301 302 * install-mk (MK_VERSION): 20170630 303 304 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 305 3062017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 307 308 * meta2deps.py: take special care of '..' 309 3102017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 311 312 * install-mk (MK_VERSION): 20170515 313 314 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 315 useful/necessary for a Makefile.depend file to export some knobs. 316 This is complicated when we are doing DIRDEPS_CACHE, so we will 317 handle export of any variables listed in DEP_EXPORT_VARS. 318 3192017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 320 321 * install-mk (MK_VERSION): 20170505 322 323 * meta2deps.py: fix botched indenation. 324 3252017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 326 327 * sys/*.mk: Remove setting of MAKE it is unnecessary and 328 in many cases wrong (basname rather than full path) 329 330 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 331 332 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 333 3342017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 335 336 * install-mk (MK_VERSION): 20170501 337 338 * doc.mk: fix typo in DOC_INSTALL_OWN 339 340 * inc.mk: handle INCGROUPS similar to freebsd 341 342 * files.mk: add something for files too 343 344 * add staging logic to lib.mk prog.mk etc. 345 3462017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 347 348 * install-mk (MK_VERSION): 20170424 349 350 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 351 also target of bootstrap-this when sed is needed should be ${_want:T} 352 3532017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 354 355 * install-mk (MK_VERSION): 20170418 356 357 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 358 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 359 3602017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 361 362 * install-mk (MK_VERSION): 20170401 363 364 * meta2deps.py: add is_src so we can check if obj dependency 365 is also a src dependency. 366 3672017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 368 369 * install-mk (MK_VERSION): 20170326 370 371 * meta.stage.mk: do nothing if NO_STAGING is defined. 372 3732017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 374 375 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 376 3772017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 378 379 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 380 3812017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 382 383 * install-mk (MK_VERSION): 20170301 384 385 * dirdeps.mk (_build_all_dirs): update this outside test for empty 386 DIRDEPS. 387 388 * meta.stage.mk: allow multiple inclusion to the extent it makes 389 sense. 390 3912017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 392 393 * prog.mk (install_links): depends on realinstall 394 3952017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 396 397 * install-mk (MK_VERSION): 20170212 398 399 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 400 4012017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 402 403 * install-mk (MK_VERSION): 20170130 404 405 * dirdeps.mk: use :range if we can. 406 407 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 408 409 * meta2deps.py: clean paths without using realpath() where possible. 410 fix sort_unique. 411 4122016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 413 414 * install-mk (MK_VERSION): 20161212 415 416 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 417 rather than when we detect pid change. 418 4192016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 420 421 * install-mk (MK_VERSION): 20161207 422 423 * meta.stage.mk: add stage_as_and_symlink for staging packages. 424 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 425 to use foo.tgz to reference the latest staged version - so we 426 make foo.tgz a symlink to it. 427 Using a target to do both operations ensures we stay in sync. 428 4292016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 430 431 * install-mk (MK_VERSION): 20161126 432 433 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 434 so it can add dependencies. 435 4362016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 437 438 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 439 do that they can influence the result correctly. 440 441 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 442 443 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 444 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 445 4462016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 447 448 * dirdeps.mk: remove dependence on jot (normal situations anyway). 449 Before we read another Makefile.depend* set DEP_* vars from 450 _DEP_TARGET_SPEC in case it uses any of them with := 451 When bootstrapping, trim any ,* from extention of chosen _src 452 Makefile.depend* to get the machine value we subst for. 453 4542016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 455 456 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 457 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 458 459 * sys.mk: extract some bits to sys.{debug,vars}.mk 460 for easier re-use by others. 461 4622016-09-23 Simon Gerraty <sjg@sjg-mba13> 463 464 * lib.mk: Use ${PICO} for extension for PIC objects. 465 default to .pico (like NetBSD) safe on case insensitive filesystem. 466 4672016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 468 469 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 470 4712016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 472 473 * install-mk (MK_VERSION): 20160815 474 475 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 476 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 477 4782016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 479 480 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 481 in meta mode we can ignore the mtime of makefiles 482 4832016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 484 485 * install-mk (MK_VERSION): 20160802 486 487 * lib.mk (libinstall): depends on beforinstall 488 489 * prog.mk (proginstall): depends on beforinstall 490 patch from Lauri Tirkkonen 491 492 * dirdeps.mk (bootstrap): When bootstrapping; creat 493 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 494 .MAKE.DEPENDFILE_BOOTSTRAP_SED 495 496 * dirdeps.mk: move some comments to where they make sense. 497 4982016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 499 500 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 501 5022016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 503 504 * install-mk (MK_VERSION): 20160602 505 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 506 do not apply :T to META_XTRAS 507 patch from Bryan Drewery at FreeBSD.org. 508 5092016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 510 511 * install-mk (MK_VERSION): 20160530 512 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 513 make it so. 514 5152016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 516 517 * install-mk (MK_VERSION): 20160512 518 519 * dpadd.mk: always include local.dpadd.mk if it exists 520 remove some things that better belong in local.dpadd.mk 521 skip INCLUDES_* for staged libs unless SRC_* defined. 522 523 * own.mk: add INCLUDEDIR 524 5252016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 526 527 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 528 TARGET_MACHINE - :E will be empty or match part of path, use 529 ${MACHINE} 530 5312016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 532 533 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 534 NO_FILEMON_COOKIE 535 536 * dirdeps.mk: move the logic that allows for 537 make -f dirdeps.mk some/dir.${TARGET_SPEC} 538 inside the check for !target(_DIRDEP_USE) 539 5402016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 541 542 * Use <> when including local*.mk and others which may exist 543 elsewhere so that user can better control what they get. 544 545 * meta.autodep.mk (NO_FILEMON_COOKIE): 546 create a cookie if we ever build dir with nofilemon 547 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 548 5492016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 550 551 * install-mk (MK_VERSION): 20160401 552 553 * meta2deps.py: fix old print statement when debugging. 554 555 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 556 patch from Bryan Drewery 557 5582016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 559 560 * install-mk (MK_VERSION): 20160317 (St. Pats) 561 562 * warnings.mk: g++ does not like -Wimplicit 563 564 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 565 pelthora of common suffixes for C++ 566 567 * lib.mk: use .So for shared objects 568 5692016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 570 571 * install-mk (MK_VERSION): 20160315 572 573 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 574 normally only applies to scripts. 575 576 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 577 well as outside it. 578 5792016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 580 581 * install-mk (MK_VERSION): 20160310 582 583 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 584 we have processed; the list gets very inefficient as number of 585 DIRDEPS gets large. 586 587 * sys.dependfile.mk: fix comment wrt MACHINE 588 589 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 590 patch from Bryan Drewery 591 5922016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 593 594 * meta2deps.sh: don't ignore subdirs. 595 patch from Bryan Drewery 596 5972016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 598 599 * install-mk (MK_VERSION): 20160226 600 601 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 602 6032016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 604 605 * dirdeps.mk: we shouldn't normally include .depend but if we do 606 use .dinclude if we can. 607 6082016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 609 610 * install-mk (MK_VERSION): 20160218 611 * sys.clean-env.mk: with recent change to Var_Subst() 612 we cannot use the '$$' trick, but .export-literal does the job 613 we need. 614 * auto.dep.mk: make use .dinclude if we can. 615 616 6172016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 618 619 * dirdeps.mk: 620 Add _build_all_dirs such that local.dirdeps.mk can 621 add fully qualified dirs to it. 622 These will be built normally but the current 623 DEP_RELDIR will not depend on then (to avoid cycles). 624 This makes it easy to hook things like unit-tests into build. 625 626 6272016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 628 629 * dirdeps.mk: add bootstrap-empty 630 6312015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 632 633 * install-mk (MK_VERSION): 20151212 634 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 635 only apply :tA to __objdir when comparing to .OBJDIR 636 6372015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 638 639 * install-mk (MK_VERSION): 20151111 640 641 * meta.sys.mk: include sys.dependfile.mk 642 643 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 644 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 645 include local.sys.env.mk early 646 include local.sys.mk later 647 648 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 649 6502015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 651 652 * meta.sys.mk (META_COOKIE_TOUCH): 653 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 654 655 * meta.stage.mk: stage_libs should ignore SYMLINKS. 656 6572015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 658 659 * install-mk (MK_VERSION): 20151022 660 661 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 662 6632015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 664 665 * install-mk (MK_VERSION): 20151020 666 667 * dirdeps.mk: Add logic for 668 make -f dirdeps.mk some/dir.${TARGET_SPEC} 669 6702015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 671 672 * install-mk (MK_VERSION): 20151010 673 6742015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 675 676 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 677 to have stage_lins run last in non-jobs mode. 678 Use .ORDER only for jobs mode. 679 6802015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 681 682 * rst2htm.mk: allow for per target flags etc. 683 6842015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 685 686 * install-mk (MK_VERSION): 20150901 687 688 * doc.mk: create dir if needed use DOC_INSTALL_OWN 689 6902015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 691 692 * install-mk (MK_VERSION): 20150615 693 694 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 695 Follow make's normal precedence rules. 696 697 * gendirdeps.mk: allow customization of the header. 698 eg. for FreeBSD: 699 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 700 701 * meta.autodep.mk: ignore dirdeps.cache* 702 703 * meta.stage.mk: when bootstrapping options it can be handy to 704 throw warnings rather than errors for staging conflicts. 705 706 * meta.sys.mk: include local.meta.sys.mk for customization 707 7082015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 709 710 * install-mk (MK_VERSION): 20150606 711 712 * dirdeps.mk: don't rely on manually maintained Makefile.depend 713 to set DEP_RELDIR and reset DIRDEPS. 714 By setting DEP_RELDIR ourselves we can skip :tA 715 716 * gendirdeps.mk: skip setting DEP_RELDIR. 717 7182015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 719 720 * dirdeps.mk: avoid wildcards like make(bootstrap*) 721 7222015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 723 724 * install-mk (MK_VERSION): 20150520 725 726 * dirdeps.mk: when we are building dirdeps cache file we *want* 727 meta_oodate to look at all the Makefile.depend files, so 728 set .MAKE.DEPENDFILE to something that won't match. 729 730 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 731 so first use absolute path as key. 732 Also skip staging at level 0. 733 7342015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 735 736 * install-mk (MK_VERSION): 20150430 737 738 * dirdeps.mk: fix _count_dirdeps for non-cache case. 739 7402015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 741 742 * install-mk (MK_VERSION): 20150411 743 bump version 744 745 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 746 it is here mainly for documentation purposes, since 747 if using auto.obj.mk it is better done via sys.mk 748 7492015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 750 751 * install-mk (MK_VERSION): 20150401 752 753 * meta2deps.sh: support @list 754 755 * meta2deps.py: updates from Juniper 756 o add EXCLUDES 757 o skip bogus input files. 758 o treat 'M' and 'L' as both an 'R' and a 'W' 759 7602015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 761 762 * install-mk (MK_VERSION): 20150303 763 764 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 765 which is built via sub-make so we have a .meta file to tell if 766 it is out-of-date. 767 The dirdeps-cache contains the same dependency rules that we 768 normaly construct on the fly. 769 This adds a few seconds overhead when the cache is out of date, 770 but for a large target, the savings can be significant (10-20min). 771 7722014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 773 774 * install-mk (MK_VERSION): 20141118 775 776 * meta.stage.mk: add stale_staged 777 778 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 779 only useful under very rare conditions such as 780 FreeBSD's make universe. 781 782 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 783 7842014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 785 786 * install-mk (MK_VERSION): 20141111 787 788 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 789 7902014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 791 792 * FILES: include mkopt.sh which allows handling options in shell 793 scripts in a manner compatible with options.mk 794 7952014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 796 797 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 798 for GENDIRDEPS_FILTER to avoid surprises. 799 8002014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 801 802 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 803 the time it is applied to __depdirs they have. 804 805 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 806 expects patterns like *.${MACHINE} 807 808 * cython.mk (pyprefix?): use pyprefix to find python bits 809 since prefix might be something else (where we install our 810 stuff) 811 8122014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 813 814 * install-mk (MK_VERSION): 20140911 815 816 * dirdeps.mk: add bootstrap target to simplify adding support for 817 new MACHINE. 818 8192014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 820 821 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 822 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 823 Makefile.depend files. 824 8252014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 826 827 * install-mk (MK_VERSION): 20140828 828 829 * cython.mk: capture logic for building python extension modules 830 with Cython. 831 8322014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 833 834 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 835 8362014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 837 838 * install-mk (MK_VERSION): 20140801 839 840 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 841 identify the autodep.mk variant. 842 843 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 844 initial value does not match .MAKE.DEPENDFILE_PREFIX 845 846 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 847 8482014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 849 850 * install-mk (MK_VERSION): 20140522 851 852 * lib.mk: use CC to link shlib for linux too 853 patch from Brendan MacDonell 854 8552014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 856 857 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 858 if WITH_META_STATS is defined. 859 8602014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 861 862 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 863 to supress dirdeps outside of .CURDIR. 864 8652014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 866 867 * Fix spelling errors - patch from Pedro Giffuni 868 8692014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 870 871 * install-mk (MK_VERSION): 20140314 872 873 * dirdeps.mk (beforedirdeps): a handy hook 874 875 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 876 to visit leaf dirs to be intercepted (eg. for distributed 877 build). 878 879 * dirdeps.mk (__depdirs): ensure // don't sneak in 880 881 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 882 883 8842014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 885 886 * rst2htm.mk (RST2PDF): add support for rst2pdf 887 8882014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 889 890 * install-mk (MK_VERSION): bump version 891 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 892 available. 893 8942014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 895 896 * options.mk: avoid :U so this isn't bmake dependent 897 8982014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 899 900 * options.mk: cleanup and simplify semanitcs 901 NO_* dominates all, if both WITH_* and WITHOUT_* 902 are defined then result is DOMINATE_* which defaults to "no". 903 Ie. WITHOUT_ normally wins. 904 9052013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 906 907 * install-mk (MK_VERSION): bump version 908 * meta2deps.py: convert to print function for python3 compat. 909 we also need to open files with mode 'r' rather than 'rb' 910 otherwise we get bytes instead of strings. 911 9122013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 913 914 * install-mk (MK_VERSION): bump version 915 916 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 917 apply the same filtering (M_dep_qual_fixes) when setting _machines 918 as _build_dirs. 919 Also fix the filtering of Makefile.depend files - for reporting 920 what we are looking for (M_dep_qual_fixes can get confused by 921 Makefile.depend) 922 Add some more debug info. 923 9242013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 925 926 * gendirdeps.mk (_objtops): fix typo also 927 while processing M2D_OBJROOTS to gather qualdir_list 928 qualify $ql with loop iterator to ensure correct results. 929 9302013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 931 932 * install-mk (MK_VERSION): 20130801 933 * libs.mk: update to match progs.mk 934 9352013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 936 937 * install-mk (MK_VERSION): 20130726 938 some updates from Juniper and FreeBSD 939 o meta2deps.py: indicate file and line number when we hit parse 940 errors 941 also allow @file to provide huge list of .meta files. 942 * meta2deps.py: add try_parse() to cleanup the above. 943 9442013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 945 946 * install-mk (MK_VERSION): 20130716 947 * own.mk: add GPROG as an option 948 * prog.mk: honor MK_GPROF==yes 949 9502013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 951 952 * install-mk (MK_VERSION): 20130505 953 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 954 for when $MACHINE isn't enough for objdir distinction. 955 Bring meta2deps.sh closer to par with meta2deps.py. 956 9572013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 958 959 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 960 also if the target 'beforeinstall' exists, make it depend on 961 .dirdep (incase it uses STAGE_INSTALL). 962 9632013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 964 965 * install-mk (MK_VERSION): 20130401 ;-) 966 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 967 wrapper around install(1). 968 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 969 9702013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 971 972 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 973 * install-mk (MK_VERSION): bump version 974 9752013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 976 977 * install-mk (MK_VERSION): bump version 978 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 979 any trailing /., rather apply :tA only when needed. 980 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 981 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 982 consistently. 983 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 984 9852013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 986 987 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 988 it is simpler to just not update when say building for "host" 989 (where we know we apply filters to DIRDEPS), and using a 990 non-machine qualified dependfile. 991 9922013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 993 994 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 995 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 996 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 997 * meta2deps.py: if machine is "host", then also trim 998 self.host_target from any OBJROOTS. 999 1000 10012013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1002 1003 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 1004 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 1005 but _DEPENDFILE does not, compare the new _DEPENDFILE against 1006 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 1007 10082013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 1009 1010 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 1011 and hook to all: via staging: 1012 10132013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1014 1015 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 1016 use a separate variable for the default .MAKE.DEPENDFILE value 1017 so that it can be controlled independently of 1018 .MAKE.DEPENDFILE_PREFERENCE 1019 1020 * meta.stage.mk: throw error if cp fails etc. 1021 Stage*() return early if passed no args. 1022 .ORDER stage_* 1023 10242013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1025 1026 * install-mk (MK_VERSION): bump version 1027 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 1028 10292013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1030 1031 * install-mk (MK_VERSION): bump version to 20130210 1032 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 1033 from Juniper. 1034 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 1035 than just MACHINE. 1036 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 1037 10382013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 1039 1040 * install-mk (MK_VERSION): bump version to 20130123 1041 * meta.stage.mk: add stage_links (hard links). 1042 if doing hard links, we add dest to link as well. 1043 Default the stage dir for [sym]links to STAGE_OBJTOP since 1044 these are typically specified as absolute paths. 1045 Add -m "mode" flag to StageFiles and StageAs. 1046 10472012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1048 1049 * install-mk (MK_VERSION): bump version to 20121111 1050 * autoconf.mk: avoid meta mode seeing changed commands for config.status 1051 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 1052 in case we were found via .../mk 1053 * sys.clean-env.mk: move it from examples, we and others use it 1054 "as is". 1055 * FILES: add srctop.mk and options.mk 1056 * own.mk: convert to using options.mk 1057 which is modeled after FreeBSD's handling of MK_* 1058 but more flexible. 1059 This allows MK_* for boolean knobs to not be confused 1060 with MK* which can be commands. 1061 1062 * examples/sys.clean-env.mk: add WITH[OUT]_ to 1063 MAKE_ENV_SAVE_PREFIX_LIST. 1064 Mention that HOME=/var/empty might be a good idea. 1065 10662012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 1067 1068 * sys.dependfile.mk: if not depend file exists, $MACHINE 1069 specific ones are supported but not the default, 1070 check if any exist and follow suit. 1071 10722012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 1073 1074 * install-mk (MK_VERSION): bump version to 20121106 1075 10762012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1077 1078 * import latest dirdeps.mk and meta2deps.py from Juniper. 1079 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 1080 also add PROGS_TARGETS and pass on PROG_CXX if it seems 1081 appropriate. 1082 10832012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 1084 1085 * meta.stage.mk: update CLEANFILES 1086 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 1087 * progs.mk: Add LDADD to PROG_VARS 1088 10892012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1090 1091 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 1092 _STAGED_DIRS so that these can be turned into filters for 1093 GENDIRDEPS_FILTER. 1094 10952012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1096 1097 * install-mk (MK_VERSION): bump version to 20121010 1098 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 1099 target.dirdep matches .dirdep 1100 11012012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1102 1103 * install-mk (MK_VERSION): bump version to 20120808 1104 * import latest meta2deps.py from Juniper. 1105 11062012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1107 1108 * install-mk (MK_VERSION): bump version to 20120711 1109 * dep.mk: add explicit dependencies on SRCS after applying 1110 SRCS_DEP_FILTER 1111 * meta.autodep.mk: add explicit dependencies on SRCS after 1112 applying SRCS_DEP_FILTER 1113 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 1114 11152012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 1116 1117 * install-mk (MK_VERSION): bump version to 20120626 1118 * meta.sys.mk: ignore PYTHON if it does not exist 1119 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 1120 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 1121 entries ending in .${MACHINE} to decide if qualified _dirdep is 1122 needed. 1123 * gendirdeps.mk: only produce unqualified deps if no 1124 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 1125 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 1126 11272012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1128 1129 * install-mk (MK_VERSION): bump version to 20120420 1130 * add sys.dependfile.mk so we can experiment with 1131 .MAKE.DEPENDFILE_PREFERENCE 1132 * meta.autodep.mk: _DEPENDFILE is precious! 1133 11342012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1135 1136 * install-mk (MK_VERSION): bump version to 20120315 1137 * install-new.mk: avoid being interrupted 1138 11392012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1140 1141 * man.mk: MAN might have multiple values so be careful with exists(). 1142 11432012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 1144 1145 * install-mk (MK_VERSION): bump version to 20120112 1146 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 1147 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 1148 11492011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 1150 1151 * install-mk (MK_VERSION): bump version to 20111201 1152 * import dirdeps.mk from Juniper sjg@ 1153 o more consistent handling of DEP_MACHINE, especially when 1154 dealing with an odd Makefile.depend, when normally using 1155 Makefile.depend.${MACHINE} 1156 11572011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 1158 1159 * install-mk (MK_VERSION): bump version to 20111122 1160 * meta.autodep.mk: add some debug output, be more crisp about 1161 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 1162 11632011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1164 1165 * install-mk (MK_VERSION): bump version to 20111111 1166 it's too cool to miss 1167 * import meta* updates from Juniper sjg@ 1168 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 1169 normally using Makefile.depend.${MACHINE}), handy for 1170 read-only manually maintained dependencies. 1171 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 1172 o gendirdeps.mk if ERROR: from meta2deps.py do not update 1173 anything. 1174 11752011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 1176 1177 * install-new.mk separate the cmp and copy logic to its own function. 1178 11792011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1180 1181 * install-mk (MK_VERSION): bump version to 20111028 1182 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 1183 * subdir.mk: ensure _SUBDIRUSE is provided 1184 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 1185 * meta.subdir.mk: always allow for Makefile.depend 1186 11872011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1188 1189 * install-mk (MK_VERSION): bump version to 20111010 1190 o minor tweak to *dirdeps.mk from Juniper sjg@ 1191 11922011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1193 1194 * install-mk (MK_VERSION): bump version to 20111001 1195 o add meta2deps.py from Juniper sjg@ 1196 o tweak gendirdeps.mk to work with meta2deps.py when not 1197 cross-building 1198 * autoconf.mk: add autoconf-input as a hook for regenerating 1199 AUTOCONF_INPUTS (configure). 1200 12012011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 1202 1203 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 1204 trigger for updating Makefile.depend* 1205 12062011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1207 1208 * install-mk (MK_VERSION): bump version to 20110808 1209 * obj.mk: minor cleanup 1210 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 1211 12122011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1213 1214 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 1215 specified dir. 1216 12172011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 1218 1219 * meta.autodep.mk: if XMAKE_META_FILE is set 1220 the makefile uses a foreign make, and so dependencies 1221 can only be gathered from a clean tree build. 1222 12232011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 1224 1225 * install-mk (MK_VERSION): bump version to 20110622 1226 * meta.autodep.mk: improve bootstraping 1227 12282011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1229 1230 * yacc.mk: handle the corner case of .c being removed 1231 while .h remains. 1232 12332011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1234 1235 * yacc.mk: do .y.h and .y.c separately 1236 12372011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1238 1239 * install-mk (MK_VERSION): bump version to 20110606 1240 * don't store SRC_DIRDEPS in Makefile.depend* by default 1241 not everyone needs it. 1242 12432011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1244 1245 * install-mk (MK_VERSION): bump version to 20110505 1246 first release including meta mode makefiles 1247 12482011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1249 1250 * meta.stage.mk: add STAGE_AS_SETS and stage_as 1251 for things that need to be staged with different names. 1252 12532011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1254 1255 * meta.stage.mk: add notion of STAGE_SETS 1256 so a makefile can stage to multiple dirs 1257 12582011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 1259 1260 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 1261 on target name. 1262 12632011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1264 1265 * install-mk (MK_VERSION): bump version to 20110330 1266 12672011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 1268 1269 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 1270 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 1271 * sys.mk: re-define M_whence in terms of M_type. 1272 M_type is useful for checking if something is a builtin. 1273 12742011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1275 1276 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 1277 stage_libs 1278 12792011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1280 1281 * dirdeps.mk: correct value for _depdir_files depends on 1282 .MAKE.DEPENDFILE 1283 Add our copyright - just to make it clear we have frobbed this 1284 quite a bit. 1285 DEP_MACHINE needs to be set to MACHINE each time, if using only 1286 Makefile.depend (cf. Makefile.depend.${MACHINE}) 1287 1288 * meta.stage.mk: meta mode version of staging 1289 1290 * init.mk, final.mk: include local.*.mk to simplify customization 1291 12922011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1293 1294 * auto.obj.mk: just because we are doing mk destroy, we should 1295 still set .OBJDIR correctly if it exists. 1296 1297 * install-mk (mksrc): do not exclude meta.sys.mk 1298 12992011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1300 1301 * host-target.mk: set/export _HOST_ARCH etc separately, 1302 catch junk resulting from uname -p, so we can find sys/Linux.mk 1303 correctly. 1304 13052011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1306 1307 * meta.sys.mk: throw an error if /dev/filemon is missing and we 1308 expected to be updating Makefile.depend* 1309 13102011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1311 1312 * install-mk (MK_VERSION): bump version to 20110214 1313 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 1314 13152010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 1316 1317 * meta.sys.mk: not valid for older bmake 1318 13192010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 1320 1321 * install-mk (MK_VERSION): bump version to 20100919 1322 include dirdeps.mk et al from Juniper Networks, 1323 for meta mode - requires filemon(9). 1324 * sys.mk, subdir.mk: Add hooks for meta mode. 1325 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 1326 to make turning it on/off simple. 1327 13282010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 1329 1330 * install-mk (MK_VERSION): bump version to 20100616 1331 * fix typo in sys.mk 1332 13332010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 1334 1335 * install-mk (MK_VERSION): bump version to 20100612 1336 * lib.mk: remove duplicate addition to SOBJS 1337 13382010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1339 1340 * sys.mk: Add a means of selectively turning on debug flags. 1341 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 1342 will act as if we did make -dv if .CURDIR ends in lib/sjg 1343 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 1344 the start of sys.mk rather than the end. 1345 This only makes sense for leaf dirs, so we check that 1346 .MAKE.LEVEL > 0 1347 13482010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 1349 1350 * install-mk (MK_VERSION): bump version to 20100608 1351 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 1352 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 1353 also make it easier for folk to tweak 1354 13552010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1356 1357 * install-mk (MK_VERSION): bump version to 20100606 1358 do not install examples/* 1359 * FILES: add examples/sys.clean-env.mk 1360 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 1361 this requires bmake-20100606 or later to work. 1362 13632010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 1364 1365 * sys.mk (M_tA): better simulate the result of :tA if not available. 1366 13672010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1368 1369 * sys.mk: canonicalize MAKE_VERSION 1370 old versions reported bmake-<src-date> build-<build-date> 1371 whereas we only care about <src-date> 1372 13732010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 1374 1375 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 1376 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 1377 is !empty 1378 13792010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 1380 1381 * dpadd.mk: use LDADD_* if defined. 1382 13832010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1384 1385 * install-mk (MK_VERSION): bump version to 20100420 1386 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 1387 * autoconf.mk allow AUTO_AUTOCONF 1388 13892010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 1390 1391 * obj.mk: add objwarn to keep freebsd makefiles happy 1392 * auto.obj.mk: ensure Mkdirs is available. 1393 * FILES: add auto.dep.mk - a simpler version of autodep.mk 1394 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 1395 asked to do that. 1396 fix/simplify the tests for when to run mkdep. 1397 * auto.dep.mk: add some explanation of how/what we do. 1398 * autodep.mk: skip the .OPTIONAL frobbing of .depend 1399 bmake's FROM_DEPEND flag makes it redundant. 1400 14012010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1402 1403 * install-mk (MK_VERSION): bump version to 20100404 1404 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 1405 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 1406 Also create a target _SUBDIRUSE so that we can be used without 1407 subdir.mk 1408 14092010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 1410 1411 * dep.mk: use <> when .including so can override. 1412 14132010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 1414 1415 * lib.mk (SHLIB_LINKS): ensure a string comparison. 1416 14172010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 1418 1419 * install-mk (MK_VERSION): bump version to 20100102 1420 * own.mk: ensure PRINTOBJDIR works 1421 * autoconf.mk: pass on CONFIGURE_ARGS 1422 * init.mk: handle COPTS.${.IMPSRC:T} etc. 1423 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 1424 fix handling of symlinks for darwin 1425 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 1426 * man.mk: suppress chown when not root. 1427 * rst2htm.mk: allow srcs from multiple locations. 1428 * sys.mk: M_whence, stop after 1st line of output. 1429 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 1430 * sys/SunOS.mk: we need to export PATH 1431 14322009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 1433 1434 * install-mk (MK_VERSION): bump version 1435 include rst2htm.mk 1436 14372009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 1438 1439 * sys.mk,libnames.mk add .-include <local.*> 1440 this allows local customization without the need to edit the 1441 distributed files. 1442 14432009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 1444 1445 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 1446 older versions already installed. 1447 14482009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 1449 1450 * stage.mk (.stage-install): generalize lib.mk's .libinstall 1451 * rules.mk rules for generic Makefile. 1452 * inc.mk install for includes. 1453 14542009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 1455 1456 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 1457 this, so provide it if using native make. 1458 14592009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 1460 1461 * FILES: move all the platform *.sys.mk files to sys/*.mk 1462 * Rename Generic.sys.mk to sys.mk - we always want it. 1463 14642009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 1465 1466 * install-mk (MK_VERSION): bump version 1467 * host-target.mk: only export the expensive stuff 1468 * Generic.sys.mk (sys_mk): for SunOS we need to look for 1469 ${HOST_OS}.${HOST_OSMAJOR} too! 1470 14712009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 1472 1473 * install-mk (MK_VERSION): bump version 1474 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 1475 based on patch from Greg Olszewski. 1476 * Generic.sys.mk: if we have nothing to work with 1477 set LORDER etc only if we can find it. 1478 14792009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 1480 1481 * install-mk (MK_VERSION): bump version 1482 * man.mk: cleanman: remove CLEANMAN if defined. 1483 14842009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 1485 1486 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 1487 14882009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 1489 1490 * install-mk (MK_VERSION): bump version 1491 include auto.obj.mk 1492 1493 14942009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 1495 1496 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 1497 14982008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 1499 1500 * install-mk (MK_VERSION): bump version 1501 man.mk: ensure we generate *.cat1 etc in . 1502 15032008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 1504 1505 * install-mk (MK_VERSION): bump version 1506 add prlist.mk 1507 15082007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 1509 1510 * Generic.sys.mk: Allow os specific sys.mk to be in a 1511 subdir of ${.PARSEDIR} 1512 15132007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 1514 1515 * install-mk (MK_VERSION): bump version 1516 * general cleanup 1517 * dpadd.mk introduce DPMAGIC_LIBS_* 1518 15192007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 1520 1521 * install-mk (MK_VERSION): bump version 1522 1523 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 1524 depend files and ensure clean is called for each lib/prog. 1525 15262007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 1527 1528 * autodep.mk (.depend): delete lines that do not start with 1529 space and do not contain ':' 1530 15312007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 1532 1533 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 1534 so make sure the transform for .OPTIONAL copes. 1535 15362007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1537 1538 * install-mk (MK_VERSION): bump version 1539 1540 * own.mk: make sure RM and LN are defined. 1541 1542 * obj.mk: fix a typo, and objlink target. 1543 15442006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 1545 1546 * install-mk (MK_VERSION): bump version 1547 * added libs.mk - analogous to progs.mk 1548 make both of them always inlcude {lib,prog}.mk 1549 15502006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 1551 1552 * progs.mk: add a means of building multiple apps in one dir. 1553 15542006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 1555 1556 * install-mk (MK_VERSION): bump version to 20061126 1557 1558 * warnings.mk: detect invalid WARNINGS_SET 1559 1560 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 1561 specific warnings. 1562 1563 * For .cc sources, turn off warnings that g++ vomits on. 1564 15652006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 1566 1567 * own.mk: if __initialized__ target doesn't exist and we are 1568 FreeBSD we got here directly from sys.mk 1569 15702006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 1571 1572 * install-mk (MK_VERSION): bump version to 20061106 1573 add scripts.mk 1574 15752006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 1576 1577 * install-mk (MK_VERSION): bump version to 20060318 1578 1579 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 1580 15812006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 1582 1583 * install-mk (MK_VERSION): bump version to 20060302 1584 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 1585 15862006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 1587 1588 * install-mk (MK_VERSION): bump version to 20060301 1589 * autodep.mk (.depend): 1590 if MAKE_VERSION is newer than 20050530 we can make .END depend on 1591 .depend and make .depend depend on __depsrcs that exist. 1592 * dpadd.mk: add SRC_PATHADD 1593 15942005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 1595 1596 * install-mk (MK_VERSION): bump version to 20051104 1597 * prog.mk: remove all the LIBC?= junk, use 1598 .-include libnames.mk instead (none by default). 1599 also if USE_DPADD_MK is set, include that. 1600 16012005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 1602 1603 * install-mk (MK_VERSION): bump version to 20051001 1604 Add UnixWare.sys.mk from Klaus Heinz. 1605 16062005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 1607 1608 * install-mk: always install *.sys.mk and if need be symlink one 1609 to sys.mk 1610 16112005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 1612 1613 * subdir.mk, own.mk: use .MAKE rather than MAKE 1614 16152004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 1616 1617 * own.mk: don't use NetBSD's _SRC_TOP_ it can 1618 cause confusion. Also don't take just 'mk' as a 1619 srctop indicator. 1620 16212004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 1622 1623 * warnings.mk: overhauled, now very powerful. 1624 16252004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1626 1627 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 1628 16292004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 1630 1631 * install-mk (MK_VERSION): bump version to 20040201 1632 * extract HOST_TARGET stuff to host-target.mk so own.mk and 1633 Generic.sys.mk can share. 1634 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 1635 16362003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 1637 1638 * install-mk (MK_VERSION): 20030930 1639 * rename generic.sys.mk to Generic.sys.mk 1640 so that it does not get installed (unless being used as sys.mk) 1641 * set OS and ROOT_GROUP for those that we know the value. 1642 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 1643 we don't do it again for each sub-make. 1644 16452003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 1646 1647 * install-mk (MK_VERSION): 20030928 1648 Add some extra *.sys.mk from bootstrap-pkgsrc 1649 some of these likely still need work. 1650 Make everything default to root:wheel ownership, 1651 sys.mk can set ROOT_GROUP accordingly. 1652 16532003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 1654 1655 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 1656 not the portable ones. 1657 16582003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 1659 1660 * install-mk: add ability to use cp -f when updating 1661 destination .mk files. Also now possible to play games with 1662 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 1663 into dest - not recommended unless you seriously want to. 1664 16652003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 1666 1667 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 1668 for semi-compatability with NetBSD. 1669 16702003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 1671 1672 * install-mk: add a version indicator 1673 16742003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 1675 1676 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 1677 1678 * install-mk: Allow FORCE_SYS_MK to come from env 1679 1680 1681 1682