12020-11-06 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * install-mk (MK_VERSION): 20201106 4 5 * meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed 6 args to tweak extensions for local deps. 7 82020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * install-mk (MK_VERSION): 20201101 11 12 * dirdeps.mk: most leaf makefiles are not suitable for building 13 dirdeps.cache so if RELDIR is not "." use dirdeps.mk 14 152020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 16 17 * install-mk (MK_VERSION): 20201028 18 19 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE 20 when building dirdeps.cache for leaf directory use -f dirdeps.mk 21 22 * sys.vars.mk: add M_JOT and M_RANGE 23 242020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 25 26 * install-mk (MK_VERSION): 20201001 27 28 * meta2deps.{py,sh}: throw an error if we don't see filemon version 29 302020-09-09 Simon J Gerraty <sjg@beast.crufty.net> 31 32 * install-mk (MK_VERSION): 20200909 33 34 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target 35 362020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 37 38 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 39 (even more rare that use of static cache is playing clever tricks 40 with it) 41 422020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 43 44 * dirdeps-cache-update.mk: allow 45 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 46 actually update STATIC_DIRDEPS_CACHE. 47 48 * stage-install.sh: create dest directory if needed 49 before running install(1) 50 512020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 52 53 * dirdeps-targets.mk: include Makefile.dirdeps.options 54 55 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 56 572020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 60 61 * dirdeps-cache-update.mk: building parallel cache update 62 under the context of dirdeps-cached would be ideal, but 63 is problematic, so it runs as a sibling. 64 Use cache-built target to ensure we wait for it to complete if 65 necessary. 66 672020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 68 69 * install-mk (MK_VERSION): 20200806 70 71 * dirdeps-options: allow TARGET_SPEC to affect option values. 72 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 73 74 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 75 before looking for STATIC_DIRDEPS_CACHE 76 772020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 78 79 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 80 81 * dirdeps-options.mk: improve debug output 82 832020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 84 85 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 86 for use by dirdeps-cache-update.mk 87 88 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 89 for use by dirdeps-cache-update.mk even if we don't use it. 90 91 * dirdeps-cache-update.mk: we only need worry about the background 92 update case, with the above, the update from DIRDEPS_CACHE is 93 simple. 94 95 * meta2deps.py: R 1234 . is not interesting 96 972020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 98 99 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 100 101 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 102 allows use of lower case for pseudo options. 103 104 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 105 1062020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 107 108 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 109 which allows us to have a static cache for expensive targets. 110 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 111 to regenerate the dirdeps.cache it is a copy of. 112 1132020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 114 115 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 116 1172020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 118 119 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 120 load averages at intervals during build. 121 1222020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 123 124 * install-mk (MK_VERSION): 20200715 125 126 * dirdeps.mk: tweak Checking line to make matching Finished 127 lines for post-build analysis easier. 128 129 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 130 131 * progs.mk: avoid prog.mk outputting multiple Finished lines 132 1332020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 134 135 * dirdeps.mk: further optimize dirdeps.cache 136 generate a DIRDEPS.${.TARGET} list for other purposes 137 and improve the layout. 138 1392020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 140 141 * dirdeps.mk: optimize content of dirdeps.cache 142 1432020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 144 145 * sys/*.mk: make it easier for local*sys.mk to customize by 146 using ?= 147 1482020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 149 150 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 151 it is much safer to guard local depends with a simple check for 152 .MAKE.LEVEL > 0 153 1542020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 155 156 * install-mk (MK_VERSION): 20200610 157 158 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 159 1602020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 161 162 * install-mk (MK_VERSION): 20200606 163 164 * dirdeps-targets.mk: allow for filtering of .TARGETS 165 166 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 167 entries - and we don't care about 'W'rite entries. 168 Also ignore absolute paths that do not exist. 169 1702020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 171 172 * install-mk (MK_VERSION): 20200525 173 174 * init.mk: expand and simplify handling of qualified vars 175 like CPPFLAGS.${.TARGET:T} 176 1772020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 178 179 * install-mk (MK_VERSION): 20200515 180 181 * dirdeps.mk: set _debug_* earlier and allow passing -d* 182 flags to submake when building DIRDEPS_CACHE 183 1842020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 185 186 * whats.mk: more easily extensible 187 1882020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 189 190 * whats.mk: greatly simplify by adding what.c to SRCS 191 1922020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 193 194 * whats.mk: for libs take care how we add to *OBJS 195 196 * lib.mk: : works better with whats.mk 197 1982020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 199 200 * install-mk (MK_VERSION): 20200420 201 202 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 203 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 204 2052020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 206 207 * install-mk (MK_VERSION): 20200416 208 209 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 210 interfere with user env. 211 212 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 213 214 * autodep.mk: use MAKE_SHELL. 215 2162019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 217 218 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 219 wasted effort, and unexport _meta_files when no longer needed as 220 it consumes space we need for command line. 221 2222019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 223 224 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 225 DIRDEP_USE_PRELUDE at start - facilitates job distribution 226 2272019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 228 229 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 230 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 231 TARGET_SPEC qualified depend files. 232 2332019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 234 235 * dirdeps-targets.mk: encapsulate logic for finding top-level 236 targets to set initial DIRDEPS for DIRDEPS_BUILD 237 2382019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 239 240 * install-mk (MK_VERSION): 20190911 241 242 * compiler.mk: set COMPILER_TYPE 243 2442019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 245 246 * install-mk (MK_VERSION): 20190704 247 248 * sys/Darwin.mk: support for Objective-C and clang 249 2502019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 251 252 * dirdeps.mk: avoid insanely long command line when generating cache 253 2542019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 255 256 * install-mk (MK_VERSION): 20190505 257 258 * whats.mk: handle corner case SHLIB defined but not LIB 259 2602018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 261 262 * install-mk (MK_VERSION): 20180919 263 264 * dirdeps-options.mk: .undef cannot handle var that expands to 265 more than one var. 266 2672018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 268 269 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 270 2712018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * meta.autodep.mk: export META_FILES to avoid command line limit 274 * gendirdeps.mk: if we have lots of .meta files put them in 275 an @list 276 2772018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 278 279 * dirdeps-options.mk: use local.dirdeps-options.mk 280 not local.dirdeps-option.mk 281 2822018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 283 284 * install-mk (MK_VERSION): 20180420 285 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 286 ie. we are building something. 287 2882018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 289 290 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 291 2922018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 293 294 * install-mk (MK_VERSION): 20180405 295 296 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 297 if needed. 298 2992018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 300 301 * install-mk (MK_VERSION): 20180118 302 303 * ldorder.mk: let make compute correct link order 304 3052017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 306 307 * install-mk (MK_VERSION): 20171212 308 309 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 310 3112017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 312 313 * install-mk (MK_VERSION): 20171111 314 315 * lib.mk: ensure META_NOECHO is set 316 3172017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 318 319 * Allow for host32 on rare occasions. 320 3212017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 322 323 * install-mk (MK_VERSION): 20171018 324 325 * whats.mk: include what_thing in what_uuid to avoid problem 326 when building multiple apps in the same directory. 327 3282017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 329 330 * install-mk (MK_VERSION): 20170812 331 332 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 333 add dependencies for config.recheck and config.gen 334 3352017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 336 337 * install-mk (MK_VERSION): 20170630 338 339 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 340 3412017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 342 343 * meta2deps.py: take special care of '..' 344 3452017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 346 347 * install-mk (MK_VERSION): 20170515 348 349 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 350 useful/necessary for a Makefile.depend file to export some knobs. 351 This is complicated when we are doing DIRDEPS_CACHE, so we will 352 handle export of any variables listed in DEP_EXPORT_VARS. 353 3542017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 355 356 * install-mk (MK_VERSION): 20170505 357 358 * meta2deps.py: fix botched indenation. 359 3602017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 361 362 * sys/*.mk: Remove setting of MAKE it is unnecessary and 363 in many cases wrong (basname rather than full path) 364 365 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 366 367 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 368 3692017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 370 371 * install-mk (MK_VERSION): 20170501 372 373 * doc.mk: fix typo in DOC_INSTALL_OWN 374 375 * inc.mk: handle INCGROUPS similar to freebsd 376 377 * files.mk: add something for files too 378 379 * add staging logic to lib.mk prog.mk etc. 380 3812017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 382 383 * install-mk (MK_VERSION): 20170424 384 385 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 386 also target of bootstrap-this when sed is needed should be ${_want:T} 387 3882017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 389 390 * install-mk (MK_VERSION): 20170418 391 392 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 393 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 394 3952017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 396 397 * install-mk (MK_VERSION): 20170401 398 399 * meta2deps.py: add is_src so we can check if obj dependency 400 is also a src dependency. 401 4022017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 403 404 * install-mk (MK_VERSION): 20170326 405 406 * meta.stage.mk: do nothing if NO_STAGING is defined. 407 4082017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 409 410 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 411 4122017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 413 414 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 415 4162017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 417 418 * install-mk (MK_VERSION): 20170301 419 420 * dirdeps.mk (_build_all_dirs): update this outside test for empty 421 DIRDEPS. 422 423 * meta.stage.mk: allow multiple inclusion to the extent it makes 424 sense. 425 4262017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 427 428 * prog.mk (install_links): depends on realinstall 429 4302017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 431 432 * install-mk (MK_VERSION): 20170212 433 434 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 435 4362017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 437 438 * install-mk (MK_VERSION): 20170130 439 440 * dirdeps.mk: use :range if we can. 441 442 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 443 444 * meta2deps.py: clean paths without using realpath() where possible. 445 fix sort_unique. 446 4472016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 448 449 * install-mk (MK_VERSION): 20161212 450 451 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 452 rather than when we detect pid change. 453 4542016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 455 456 * install-mk (MK_VERSION): 20161207 457 458 * meta.stage.mk: add stage_as_and_symlink for staging packages. 459 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 460 to use foo.tgz to reference the latest staged version - so we 461 make foo.tgz a symlink to it. 462 Using a target to do both operations ensures we stay in sync. 463 4642016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 465 466 * install-mk (MK_VERSION): 20161126 467 468 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 469 so it can add dependencies. 470 4712016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 472 473 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 474 do that they can influence the result correctly. 475 476 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 477 478 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 479 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 480 4812016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 482 483 * dirdeps.mk: remove dependence on jot (normal situations anyway). 484 Before we read another Makefile.depend* set DEP_* vars from 485 _DEP_TARGET_SPEC in case it uses any of them with := 486 When bootstrapping, trim any ,* from extention of chosen _src 487 Makefile.depend* to get the machine value we subst for. 488 4892016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 490 491 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 492 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 493 494 * sys.mk: extract some bits to sys.{debug,vars}.mk 495 for easier re-use by others. 496 4972016-09-23 Simon Gerraty <sjg@sjg-mba13> 498 499 * lib.mk: Use ${PICO} for extension for PIC objects. 500 default to .pico (like NetBSD) safe on case insensitive filesystem. 501 5022016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 503 504 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 505 5062016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 507 508 * install-mk (MK_VERSION): 20160815 509 510 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 511 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 512 5132016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 514 515 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 516 in meta mode we can ignore the mtime of makefiles 517 5182016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 519 520 * install-mk (MK_VERSION): 20160802 521 522 * lib.mk (libinstall): depends on beforinstall 523 524 * prog.mk (proginstall): depends on beforinstall 525 patch from Lauri Tirkkonen 526 527 * dirdeps.mk (bootstrap): When bootstrapping; creat 528 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 529 .MAKE.DEPENDFILE_BOOTSTRAP_SED 530 531 * dirdeps.mk: move some comments to where they make sense. 532 5332016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 534 535 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 536 5372016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 538 539 * install-mk (MK_VERSION): 20160602 540 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 541 do not apply :T to META_XTRAS 542 patch from Bryan Drewery at FreeBSD.org. 543 5442016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 545 546 * install-mk (MK_VERSION): 20160530 547 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 548 make it so. 549 5502016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 551 552 * install-mk (MK_VERSION): 20160512 553 554 * dpadd.mk: always include local.dpadd.mk if it exists 555 remove some things that better belong in local.dpadd.mk 556 skip INCLUDES_* for staged libs unless SRC_* defined. 557 558 * own.mk: add INCLUDEDIR 559 5602016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 561 562 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 563 TARGET_MACHINE - :E will be empty or match part of path, use 564 ${MACHINE} 565 5662016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 567 568 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 569 NO_FILEMON_COOKIE 570 571 * dirdeps.mk: move the logic that allows for 572 make -f dirdeps.mk some/dir.${TARGET_SPEC} 573 inside the check for !target(_DIRDEP_USE) 574 5752016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 576 577 * Use <> when including local*.mk and others which may exist 578 elsewhere so that user can better control what they get. 579 580 * meta.autodep.mk (NO_FILEMON_COOKIE): 581 create a cookie if we ever build dir with nofilemon 582 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 583 5842016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 585 586 * install-mk (MK_VERSION): 20160401 587 588 * meta2deps.py: fix old print statement when debugging. 589 590 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 591 patch from Bryan Drewery 592 5932016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 594 595 * install-mk (MK_VERSION): 20160317 (St. Pats) 596 597 * warnings.mk: g++ does not like -Wimplicit 598 599 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 600 pelthora of common suffixes for C++ 601 602 * lib.mk: use .So for shared objects 603 6042016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 605 606 * install-mk (MK_VERSION): 20160315 607 608 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 609 normally only applies to scripts. 610 611 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 612 well as outside it. 613 6142016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 615 616 * install-mk (MK_VERSION): 20160310 617 618 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 619 we have processed; the list gets very inefficient as number of 620 DIRDEPS gets large. 621 622 * sys.dependfile.mk: fix comment wrt MACHINE 623 624 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 625 patch from Bryan Drewery 626 6272016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 628 629 * meta2deps.sh: don't ignore subdirs. 630 patch from Bryan Drewery 631 6322016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 633 634 * install-mk (MK_VERSION): 20160226 635 636 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 637 6382016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 639 640 * dirdeps.mk: we shouldn't normally include .depend but if we do 641 use .dinclude if we can. 642 6432016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 644 645 * install-mk (MK_VERSION): 20160218 646 * sys.clean-env.mk: with recent change to Var_Subst() 647 we cannot use the '$$' trick, but .export-literal does the job 648 we need. 649 * auto.dep.mk: make use .dinclude if we can. 650 651 6522016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 653 654 * dirdeps.mk: 655 Add _build_all_dirs such that local.dirdeps.mk can 656 add fully qualified dirs to it. 657 These will be built normally but the current 658 DEP_RELDIR will not depend on then (to avoid cycles). 659 This makes it easy to hook things like unit-tests into build. 660 661 6622016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 663 664 * dirdeps.mk: add bootstrap-empty 665 6662015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 667 668 * install-mk (MK_VERSION): 20151212 669 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 670 only apply :tA to __objdir when comparing to .OBJDIR 671 6722015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 673 674 * install-mk (MK_VERSION): 20151111 675 676 * meta.sys.mk: include sys.dependfile.mk 677 678 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 679 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 680 include local.sys.env.mk early 681 include local.sys.mk later 682 683 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 684 6852015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 686 687 * meta.sys.mk (META_COOKIE_TOUCH): 688 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 689 690 * meta.stage.mk: stage_libs should ignore SYMLINKS. 691 6922015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 693 694 * install-mk (MK_VERSION): 20151022 695 696 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 697 6982015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 699 700 * install-mk (MK_VERSION): 20151020 701 702 * dirdeps.mk: Add logic for 703 make -f dirdeps.mk some/dir.${TARGET_SPEC} 704 7052015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 706 707 * install-mk (MK_VERSION): 20151010 708 7092015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 710 711 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 712 to have stage_lins run last in non-jobs mode. 713 Use .ORDER only for jobs mode. 714 7152015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 716 717 * rst2htm.mk: allow for per target flags etc. 718 7192015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 720 721 * install-mk (MK_VERSION): 20150901 722 723 * doc.mk: create dir if needed use DOC_INSTALL_OWN 724 7252015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 726 727 * install-mk (MK_VERSION): 20150615 728 729 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 730 Follow make's normal precedence rules. 731 732 * gendirdeps.mk: allow customization of the header. 733 eg. for FreeBSD: 734 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 735 736 * meta.autodep.mk: ignore dirdeps.cache* 737 738 * meta.stage.mk: when bootstrapping options it can be handy to 739 throw warnings rather than errors for staging conflicts. 740 741 * meta.sys.mk: include local.meta.sys.mk for customization 742 7432015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 744 745 * install-mk (MK_VERSION): 20150606 746 747 * dirdeps.mk: don't rely on manually maintained Makefile.depend 748 to set DEP_RELDIR and reset DIRDEPS. 749 By setting DEP_RELDIR ourselves we can skip :tA 750 751 * gendirdeps.mk: skip setting DEP_RELDIR. 752 7532015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 754 755 * dirdeps.mk: avoid wildcards like make(bootstrap*) 756 7572015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 758 759 * install-mk (MK_VERSION): 20150520 760 761 * dirdeps.mk: when we are building dirdeps cache file we *want* 762 meta_oodate to look at all the Makefile.depend files, so 763 set .MAKE.DEPENDFILE to something that won't match. 764 765 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 766 so first use absolute path as key. 767 Also skip staging at level 0. 768 7692015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 770 771 * install-mk (MK_VERSION): 20150430 772 773 * dirdeps.mk: fix _count_dirdeps for non-cache case. 774 7752015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 776 777 * install-mk (MK_VERSION): 20150411 778 bump version 779 780 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 781 it is here mainly for documentation purposes, since 782 if using auto.obj.mk it is better done via sys.mk 783 7842015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 785 786 * install-mk (MK_VERSION): 20150401 787 788 * meta2deps.sh: support @list 789 790 * meta2deps.py: updates from Juniper 791 o add EXCLUDES 792 o skip bogus input files. 793 o treat 'M' and 'L' as both an 'R' and a 'W' 794 7952015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 796 797 * install-mk (MK_VERSION): 20150303 798 799 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 800 which is built via sub-make so we have a .meta file to tell if 801 it is out-of-date. 802 The dirdeps-cache contains the same dependency rules that we 803 normaly construct on the fly. 804 This adds a few seconds overhead when the cache is out of date, 805 but for a large target, the savings can be significant (10-20min). 806 8072014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 808 809 * install-mk (MK_VERSION): 20141118 810 811 * meta.stage.mk: add stale_staged 812 813 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 814 only useful under very rare conditions such as 815 FreeBSD's make universe. 816 817 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 818 8192014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 820 821 * install-mk (MK_VERSION): 20141111 822 823 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 824 8252014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 826 827 * FILES: include mkopt.sh which allows handling options in shell 828 scripts in a manner compatible with options.mk 829 8302014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 831 832 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 833 for GENDIRDEPS_FILTER to avoid surprises. 834 8352014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 836 837 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 838 the time it is applied to __depdirs they have. 839 840 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 841 expects patterns like *.${MACHINE} 842 843 * cython.mk (pyprefix?): use pyprefix to find python bits 844 since prefix might be something else (where we install our 845 stuff) 846 8472014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 848 849 * install-mk (MK_VERSION): 20140911 850 851 * dirdeps.mk: add bootstrap target to simplify adding support for 852 new MACHINE. 853 8542014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 855 856 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 857 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 858 Makefile.depend files. 859 8602014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 861 862 * install-mk (MK_VERSION): 20140828 863 864 * cython.mk: capture logic for building python extension modules 865 with Cython. 866 8672014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 868 869 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 870 8712014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 872 873 * install-mk (MK_VERSION): 20140801 874 875 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 876 identify the autodep.mk variant. 877 878 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 879 initial value does not match .MAKE.DEPENDFILE_PREFIX 880 881 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 882 8832014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 884 885 * install-mk (MK_VERSION): 20140522 886 887 * lib.mk: use CC to link shlib for linux too 888 patch from Brendan MacDonell 889 8902014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 891 892 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 893 if WITH_META_STATS is defined. 894 8952014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 896 897 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 898 to supress dirdeps outside of .CURDIR. 899 9002014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 901 902 * Fix spelling errors - patch from Pedro Giffuni 903 9042014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 905 906 * install-mk (MK_VERSION): 20140314 907 908 * dirdeps.mk (beforedirdeps): a handy hook 909 910 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 911 to visit leaf dirs to be intercepted (eg. for distributed 912 build). 913 914 * dirdeps.mk (__depdirs): ensure // don't sneak in 915 916 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 917 918 9192014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 920 921 * rst2htm.mk (RST2PDF): add support for rst2pdf 922 9232014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 924 925 * install-mk (MK_VERSION): bump version 926 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 927 available. 928 9292014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 930 931 * options.mk: avoid :U so this isn't bmake dependent 932 9332014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 934 935 * options.mk: cleanup and simplify semanitcs 936 NO_* dominates all, if both WITH_* and WITHOUT_* 937 are defined then result is DOMINATE_* which defaults to "no". 938 Ie. WITHOUT_ normally wins. 939 9402013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 941 942 * install-mk (MK_VERSION): bump version 943 * meta2deps.py: convert to print function for python3 compat. 944 we also need to open files with mode 'r' rather than 'rb' 945 otherwise we get bytes instead of strings. 946 9472013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 948 949 * install-mk (MK_VERSION): bump version 950 951 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 952 apply the same filtering (M_dep_qual_fixes) when setting _machines 953 as _build_dirs. 954 Also fix the filtering of Makefile.depend files - for reporting 955 what we are looking for (M_dep_qual_fixes can get confused by 956 Makefile.depend) 957 Add some more debug info. 958 9592013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 960 961 * gendirdeps.mk (_objtops): fix typo also 962 while processing M2D_OBJROOTS to gather qualdir_list 963 qualify $ql with loop iterator to ensure correct results. 964 9652013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 966 967 * install-mk (MK_VERSION): 20130801 968 * libs.mk: update to match progs.mk 969 9702013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 971 972 * install-mk (MK_VERSION): 20130726 973 some updates from Juniper and FreeBSD 974 o meta2deps.py: indicate file and line number when we hit parse 975 errors 976 also allow @file to provide huge list of .meta files. 977 * meta2deps.py: add try_parse() to cleanup the above. 978 9792013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 980 981 * install-mk (MK_VERSION): 20130716 982 * own.mk: add GPROG as an option 983 * prog.mk: honor MK_GPROF==yes 984 9852013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 986 987 * install-mk (MK_VERSION): 20130505 988 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 989 for when $MACHINE isn't enough for objdir distinction. 990 Bring meta2deps.sh closer to par with meta2deps.py. 991 9922013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 993 994 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 995 also if the target 'beforeinstall' exists, make it depend on 996 .dirdep (incase it uses STAGE_INSTALL). 997 9982013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 999 1000 * install-mk (MK_VERSION): 20130401 ;-) 1001 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 1002 wrapper around install(1). 1003 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 1004 10052013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1006 1007 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 1008 * install-mk (MK_VERSION): bump version 1009 10102013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 1011 1012 * install-mk (MK_VERSION): bump version 1013 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 1014 any trailing /., rather apply :tA only when needed. 1015 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 1016 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 1017 consistently. 1018 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 1019 10202013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1021 1022 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 1023 it is simpler to just not update when say building for "host" 1024 (where we know we apply filters to DIRDEPS), and using a 1025 non-machine qualified dependfile. 1026 10272013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1028 1029 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 1030 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 1031 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 1032 * meta2deps.py: if machine is "host", then also trim 1033 self.host_target from any OBJROOTS. 1034 1035 10362013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1037 1038 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 1039 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 1040 but _DEPENDFILE does not, compare the new _DEPENDFILE against 1041 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 1042 10432013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 1044 1045 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 1046 and hook to all: via staging: 1047 10482013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1049 1050 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 1051 use a separate variable for the default .MAKE.DEPENDFILE value 1052 so that it can be controlled independently of 1053 .MAKE.DEPENDFILE_PREFERENCE 1054 1055 * meta.stage.mk: throw error if cp fails etc. 1056 Stage*() return early if passed no args. 1057 .ORDER stage_* 1058 10592013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1060 1061 * install-mk (MK_VERSION): bump version 1062 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 1063 10642013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1065 1066 * install-mk (MK_VERSION): bump version to 20130210 1067 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 1068 from Juniper. 1069 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 1070 than just MACHINE. 1071 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 1072 10732013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 1074 1075 * install-mk (MK_VERSION): bump version to 20130123 1076 * meta.stage.mk: add stage_links (hard links). 1077 if doing hard links, we add dest to link as well. 1078 Default the stage dir for [sym]links to STAGE_OBJTOP since 1079 these are typically specified as absolute paths. 1080 Add -m "mode" flag to StageFiles and StageAs. 1081 10822012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1083 1084 * install-mk (MK_VERSION): bump version to 20121111 1085 * autoconf.mk: avoid meta mode seeing changed commands for config.status 1086 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 1087 in case we were found via .../mk 1088 * sys.clean-env.mk: move it from examples, we and others use it 1089 "as is". 1090 * FILES: add srctop.mk and options.mk 1091 * own.mk: convert to using options.mk 1092 which is modeled after FreeBSD's handling of MK_* 1093 but more flexible. 1094 This allows MK_* for boolean knobs to not be confused 1095 with MK* which can be commands. 1096 1097 * examples/sys.clean-env.mk: add WITH[OUT]_ to 1098 MAKE_ENV_SAVE_PREFIX_LIST. 1099 Mention that HOME=/var/empty might be a good idea. 1100 11012012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 1102 1103 * sys.dependfile.mk: if not depend file exists, $MACHINE 1104 specific ones are supported but not the default, 1105 check if any exist and follow suit. 1106 11072012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 1108 1109 * install-mk (MK_VERSION): bump version to 20121106 1110 11112012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1112 1113 * import latest dirdeps.mk and meta2deps.py from Juniper. 1114 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 1115 also add PROGS_TARGETS and pass on PROG_CXX if it seems 1116 appropriate. 1117 11182012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 1119 1120 * meta.stage.mk: update CLEANFILES 1121 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 1122 * progs.mk: Add LDADD to PROG_VARS 1123 11242012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1125 1126 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 1127 _STAGED_DIRS so that these can be turned into filters for 1128 GENDIRDEPS_FILTER. 1129 11302012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1131 1132 * install-mk (MK_VERSION): bump version to 20121010 1133 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 1134 target.dirdep matches .dirdep 1135 11362012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1137 1138 * install-mk (MK_VERSION): bump version to 20120808 1139 * import latest meta2deps.py from Juniper. 1140 11412012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1142 1143 * install-mk (MK_VERSION): bump version to 20120711 1144 * dep.mk: add explicit dependencies on SRCS after applying 1145 SRCS_DEP_FILTER 1146 * meta.autodep.mk: add explicit dependencies on SRCS after 1147 applying SRCS_DEP_FILTER 1148 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 1149 11502012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 1151 1152 * install-mk (MK_VERSION): bump version to 20120626 1153 * meta.sys.mk: ignore PYTHON if it does not exist 1154 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 1155 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 1156 entries ending in .${MACHINE} to decide if qualified _dirdep is 1157 needed. 1158 * gendirdeps.mk: only produce unqualified deps if no 1159 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 1160 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 1161 11622012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1163 1164 * install-mk (MK_VERSION): bump version to 20120420 1165 * add sys.dependfile.mk so we can experiment with 1166 .MAKE.DEPENDFILE_PREFERENCE 1167 * meta.autodep.mk: _DEPENDFILE is precious! 1168 11692012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1170 1171 * install-mk (MK_VERSION): bump version to 20120315 1172 * install-new.mk: avoid being interrupted 1173 11742012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1175 1176 * man.mk: MAN might have multiple values so be careful with exists(). 1177 11782012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 1179 1180 * install-mk (MK_VERSION): bump version to 20120112 1181 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 1182 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 1183 11842011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 1185 1186 * install-mk (MK_VERSION): bump version to 20111201 1187 * import dirdeps.mk from Juniper sjg@ 1188 o more consistent handling of DEP_MACHINE, especially when 1189 dealing with an odd Makefile.depend, when normally using 1190 Makefile.depend.${MACHINE} 1191 11922011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 1193 1194 * install-mk (MK_VERSION): bump version to 20111122 1195 * meta.autodep.mk: add some debug output, be more crisp about 1196 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 1197 11982011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1199 1200 * install-mk (MK_VERSION): bump version to 20111111 1201 it's too cool to miss 1202 * import meta* updates from Juniper sjg@ 1203 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 1204 normally using Makefile.depend.${MACHINE}), handy for 1205 read-only manually maintained dependencies. 1206 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 1207 o gendirdeps.mk if ERROR: from meta2deps.py do not update 1208 anything. 1209 12102011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 1211 1212 * install-new.mk separate the cmp and copy logic to its own function. 1213 12142011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1215 1216 * install-mk (MK_VERSION): bump version to 20111028 1217 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 1218 * subdir.mk: ensure _SUBDIRUSE is provided 1219 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 1220 * meta.subdir.mk: always allow for Makefile.depend 1221 12222011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1223 1224 * install-mk (MK_VERSION): bump version to 20111010 1225 o minor tweak to *dirdeps.mk from Juniper sjg@ 1226 12272011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1228 1229 * install-mk (MK_VERSION): bump version to 20111001 1230 o add meta2deps.py from Juniper sjg@ 1231 o tweak gendirdeps.mk to work with meta2deps.py when not 1232 cross-building 1233 * autoconf.mk: add autoconf-input as a hook for regenerating 1234 AUTOCONF_INPUTS (configure). 1235 12362011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 1237 1238 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 1239 trigger for updating Makefile.depend* 1240 12412011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1242 1243 * install-mk (MK_VERSION): bump version to 20110808 1244 * obj.mk: minor cleanup 1245 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 1246 12472011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1248 1249 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 1250 specified dir. 1251 12522011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 1253 1254 * meta.autodep.mk: if XMAKE_META_FILE is set 1255 the makefile uses a foreign make, and so dependencies 1256 can only be gathered from a clean tree build. 1257 12582011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 1259 1260 * install-mk (MK_VERSION): bump version to 20110622 1261 * meta.autodep.mk: improve bootstraping 1262 12632011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1264 1265 * yacc.mk: handle the corner case of .c being removed 1266 while .h remains. 1267 12682011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1269 1270 * yacc.mk: do .y.h and .y.c separately 1271 12722011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1273 1274 * install-mk (MK_VERSION): bump version to 20110606 1275 * don't store SRC_DIRDEPS in Makefile.depend* by default 1276 not everyone needs it. 1277 12782011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1279 1280 * install-mk (MK_VERSION): bump version to 20110505 1281 first release including meta mode makefiles 1282 12832011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1284 1285 * meta.stage.mk: add STAGE_AS_SETS and stage_as 1286 for things that need to be staged with different names. 1287 12882011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1289 1290 * meta.stage.mk: add notion of STAGE_SETS 1291 so a makefile can stage to multiple dirs 1292 12932011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 1294 1295 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 1296 on target name. 1297 12982011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1299 1300 * install-mk (MK_VERSION): bump version to 20110330 1301 13022011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 1303 1304 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 1305 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 1306 * sys.mk: re-define M_whence in terms of M_type. 1307 M_type is useful for checking if something is a builtin. 1308 13092011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1310 1311 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 1312 stage_libs 1313 13142011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1315 1316 * dirdeps.mk: correct value for _depdir_files depends on 1317 .MAKE.DEPENDFILE 1318 Add our copyright - just to make it clear we have frobbed this 1319 quite a bit. 1320 DEP_MACHINE needs to be set to MACHINE each time, if using only 1321 Makefile.depend (cf. Makefile.depend.${MACHINE}) 1322 1323 * meta.stage.mk: meta mode version of staging 1324 1325 * init.mk, final.mk: include local.*.mk to simplify customization 1326 13272011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1328 1329 * auto.obj.mk: just because we are doing mk destroy, we should 1330 still set .OBJDIR correctly if it exists. 1331 1332 * install-mk (mksrc): do not exclude meta.sys.mk 1333 13342011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1335 1336 * host-target.mk: set/export _HOST_ARCH etc separately, 1337 catch junk resulting from uname -p, so we can find sys/Linux.mk 1338 correctly. 1339 13402011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1341 1342 * meta.sys.mk: throw an error if /dev/filemon is missing and we 1343 expected to be updating Makefile.depend* 1344 13452011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1346 1347 * install-mk (MK_VERSION): bump version to 20110214 1348 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 1349 13502010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 1351 1352 * meta.sys.mk: not valid for older bmake 1353 13542010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 1355 1356 * install-mk (MK_VERSION): bump version to 20100919 1357 include dirdeps.mk et al from Juniper Networks, 1358 for meta mode - requires filemon(9). 1359 * sys.mk, subdir.mk: Add hooks for meta mode. 1360 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 1361 to make turning it on/off simple. 1362 13632010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 1364 1365 * install-mk (MK_VERSION): bump version to 20100616 1366 * fix typo in sys.mk 1367 13682010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 1369 1370 * install-mk (MK_VERSION): bump version to 20100612 1371 * lib.mk: remove duplicate addition to SOBJS 1372 13732010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1374 1375 * sys.mk: Add a means of selectively turning on debug flags. 1376 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 1377 will act as if we did make -dv if .CURDIR ends in lib/sjg 1378 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 1379 the start of sys.mk rather than the end. 1380 This only makes sense for leaf dirs, so we check that 1381 .MAKE.LEVEL > 0 1382 13832010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 1384 1385 * install-mk (MK_VERSION): bump version to 20100608 1386 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 1387 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 1388 also make it easier for folk to tweak 1389 13902010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1391 1392 * install-mk (MK_VERSION): bump version to 20100606 1393 do not install examples/* 1394 * FILES: add examples/sys.clean-env.mk 1395 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 1396 this requires bmake-20100606 or later to work. 1397 13982010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 1399 1400 * sys.mk (M_tA): better simulate the result of :tA if not available. 1401 14022010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1403 1404 * sys.mk: canonicalize MAKE_VERSION 1405 old versions reported bmake-<src-date> build-<build-date> 1406 whereas we only care about <src-date> 1407 14082010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 1409 1410 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 1411 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 1412 is !empty 1413 14142010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 1415 1416 * dpadd.mk: use LDADD_* if defined. 1417 14182010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1419 1420 * install-mk (MK_VERSION): bump version to 20100420 1421 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 1422 * autoconf.mk allow AUTO_AUTOCONF 1423 14242010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 1425 1426 * obj.mk: add objwarn to keep freebsd makefiles happy 1427 * auto.obj.mk: ensure Mkdirs is available. 1428 * FILES: add auto.dep.mk - a simpler version of autodep.mk 1429 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 1430 asked to do that. 1431 fix/simplify the tests for when to run mkdep. 1432 * auto.dep.mk: add some explanation of how/what we do. 1433 * autodep.mk: skip the .OPTIONAL frobbing of .depend 1434 bmake's FROM_DEPEND flag makes it redundant. 1435 14362010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1437 1438 * install-mk (MK_VERSION): bump version to 20100404 1439 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 1440 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 1441 Also create a target _SUBDIRUSE so that we can be used without 1442 subdir.mk 1443 14442010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 1445 1446 * dep.mk: use <> when .including so can override. 1447 14482010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 1449 1450 * lib.mk (SHLIB_LINKS): ensure a string comparison. 1451 14522010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 1453 1454 * install-mk (MK_VERSION): bump version to 20100102 1455 * own.mk: ensure PRINTOBJDIR works 1456 * autoconf.mk: pass on CONFIGURE_ARGS 1457 * init.mk: handle COPTS.${.IMPSRC:T} etc. 1458 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 1459 fix handling of symlinks for darwin 1460 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 1461 * man.mk: suppress chown when not root. 1462 * rst2htm.mk: allow srcs from multiple locations. 1463 * sys.mk: M_whence, stop after 1st line of output. 1464 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 1465 * sys/SunOS.mk: we need to export PATH 1466 14672009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 1468 1469 * install-mk (MK_VERSION): bump version 1470 include rst2htm.mk 1471 14722009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 1473 1474 * sys.mk,libnames.mk add .-include <local.*> 1475 this allows local customization without the need to edit the 1476 distributed files. 1477 14782009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 1479 1480 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 1481 older versions already installed. 1482 14832009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 1484 1485 * stage.mk (.stage-install): generalize lib.mk's .libinstall 1486 * rules.mk rules for generic Makefile. 1487 * inc.mk install for includes. 1488 14892009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 1490 1491 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 1492 this, so provide it if using native make. 1493 14942009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 1495 1496 * FILES: move all the platform *.sys.mk files to sys/*.mk 1497 * Rename Generic.sys.mk to sys.mk - we always want it. 1498 14992009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 1500 1501 * install-mk (MK_VERSION): bump version 1502 * host-target.mk: only export the expensive stuff 1503 * Generic.sys.mk (sys_mk): for SunOS we need to look for 1504 ${HOST_OS}.${HOST_OSMAJOR} too! 1505 15062009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 1507 1508 * install-mk (MK_VERSION): bump version 1509 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 1510 based on patch from Greg Olszewski. 1511 * Generic.sys.mk: if we have nothing to work with 1512 set LORDER etc only if we can find it. 1513 15142009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 1515 1516 * install-mk (MK_VERSION): bump version 1517 * man.mk: cleanman: remove CLEANMAN if defined. 1518 15192009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 1520 1521 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 1522 15232009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 1524 1525 * install-mk (MK_VERSION): bump version 1526 include auto.obj.mk 1527 1528 15292009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 1530 1531 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 1532 15332008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 1534 1535 * install-mk (MK_VERSION): bump version 1536 man.mk: ensure we generate *.cat1 etc in . 1537 15382008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 1539 1540 * install-mk (MK_VERSION): bump version 1541 add prlist.mk 1542 15432007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 1544 1545 * Generic.sys.mk: Allow os specific sys.mk to be in a 1546 subdir of ${.PARSEDIR} 1547 15482007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 1549 1550 * install-mk (MK_VERSION): bump version 1551 * general cleanup 1552 * dpadd.mk introduce DPMAGIC_LIBS_* 1553 15542007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 1555 1556 * install-mk (MK_VERSION): bump version 1557 1558 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 1559 depend files and ensure clean is called for each lib/prog. 1560 15612007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 1562 1563 * autodep.mk (.depend): delete lines that do not start with 1564 space and do not contain ':' 1565 15662007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 1567 1568 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 1569 so make sure the transform for .OPTIONAL copes. 1570 15712007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1572 1573 * install-mk (MK_VERSION): bump version 1574 1575 * own.mk: make sure RM and LN are defined. 1576 1577 * obj.mk: fix a typo, and objlink target. 1578 15792006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 1580 1581 * install-mk (MK_VERSION): bump version 1582 * added libs.mk - analogous to progs.mk 1583 make both of them always inlcude {lib,prog}.mk 1584 15852006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 1586 1587 * progs.mk: add a means of building multiple apps in one dir. 1588 15892006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 1590 1591 * install-mk (MK_VERSION): bump version to 20061126 1592 1593 * warnings.mk: detect invalid WARNINGS_SET 1594 1595 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 1596 specific warnings. 1597 1598 * For .cc sources, turn off warnings that g++ vomits on. 1599 16002006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 1601 1602 * own.mk: if __initialized__ target doesn't exist and we are 1603 FreeBSD we got here directly from sys.mk 1604 16052006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 1606 1607 * install-mk (MK_VERSION): bump version to 20061106 1608 add scripts.mk 1609 16102006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 1611 1612 * install-mk (MK_VERSION): bump version to 20060318 1613 1614 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 1615 16162006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 1617 1618 * install-mk (MK_VERSION): bump version to 20060302 1619 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 1620 16212006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 1622 1623 * install-mk (MK_VERSION): bump version to 20060301 1624 * autodep.mk (.depend): 1625 if MAKE_VERSION is newer than 20050530 we can make .END depend on 1626 .depend and make .depend depend on __depsrcs that exist. 1627 * dpadd.mk: add SRC_PATHADD 1628 16292005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 1630 1631 * install-mk (MK_VERSION): bump version to 20051104 1632 * prog.mk: remove all the LIBC?= junk, use 1633 .-include libnames.mk instead (none by default). 1634 also if USE_DPADD_MK is set, include that. 1635 16362005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 1637 1638 * install-mk (MK_VERSION): bump version to 20051001 1639 Add UnixWare.sys.mk from Klaus Heinz. 1640 16412005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 1642 1643 * install-mk: always install *.sys.mk and if need be symlink one 1644 to sys.mk 1645 16462005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 1647 1648 * subdir.mk, own.mk: use .MAKE rather than MAKE 1649 16502004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 1651 1652 * own.mk: don't use NetBSD's _SRC_TOP_ it can 1653 cause confusion. Also don't take just 'mk' as a 1654 srctop indicator. 1655 16562004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 1657 1658 * warnings.mk: overhauled, now very powerful. 1659 16602004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 1661 1662 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 1663 16642004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 1665 1666 * install-mk (MK_VERSION): bump version to 20040201 1667 * extract HOST_TARGET stuff to host-target.mk so own.mk and 1668 Generic.sys.mk can share. 1669 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 1670 16712003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 1672 1673 * install-mk (MK_VERSION): 20030930 1674 * rename generic.sys.mk to Generic.sys.mk 1675 so that it does not get installed (unless being used as sys.mk) 1676 * set OS and ROOT_GROUP for those that we know the value. 1677 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 1678 we don't do it again for each sub-make. 1679 16802003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 1681 1682 * install-mk (MK_VERSION): 20030928 1683 Add some extra *.sys.mk from bootstrap-pkgsrc 1684 some of these likely still need work. 1685 Make everything default to root:wheel ownership, 1686 sys.mk can set ROOT_GROUP accordingly. 1687 16882003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 1689 1690 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 1691 not the portable ones. 1692 16932003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 1694 1695 * install-mk: add ability to use cp -f when updating 1696 destination .mk files. Also now possible to play games with 1697 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 1698 into dest - not recommended unless you seriously want to. 1699 17002003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 1701 1702 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 1703 for semi-compatability with NetBSD. 1704 17052003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 1706 1707 * install-mk: add a version indicator 1708 17092003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 1710 1711 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 1712 1713 * install-mk: Allow FORCE_SYS_MK to come from env 1714 1715 1716 1717