12023-05-25 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * meta.autodep.mk (beforegendirdeps): allow tasks to be done 4 at END but before gendirdeps 5 62023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 7 8 * install-mk (MK_VERSION): 20230522 9 10 * host-target.mk: deal with garbage from uname -m on 11 Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH 12 these days so just leave it be. 13 For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get 14 arm64 and x86_64 in HOST_TARGET. 15 162023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 17 18 * sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older 19 versions of bmake. 20 21 * dirdeps.mk (TARGET_SPEC_VARS.host): 22 While *most* projects need only DEP_MACHINE for host, 23 there is always an exception. So we allow for 24 TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS. 25 The default will *just work* for most projects. 26 We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC 27 based on DEP_MACHINE. 28 Allow for M_dep_qual_fixes.host to be different too 29 and take care to apply the right set. 30 312023-05-14 Simon J Gerraty <sjg@beast.crufty.net> 32 33 * sys.dirdeps.mk: we *do* want to override OBJTOP 34 and if MAKEOBJDIR was not in env as we want it; 35 put it there - carefully. 36 Ensure OBJROOT ends in / or - (/ preferred) 37 Add more comments to explain what/why. 38 392023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 40 41 * install-mk (MK_VERSION): 20230512 42 43 * dirdeps.mk: take care not to qualify "host" dirdeps 44 45 * sys.dirdeps.mk (OBJTOP): must use ?= 46 472023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 48 49 * meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no" 50 suppress processing of .depend 51 522023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 53 54 * dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP 55 56 * meta.sys.mk sys.dirdeps.mk: 57 originally DIRDEPS_BUILD and META_MODE were the same thing, 58 but META_MODE is useful by itself. 59 Move things from meta.sys.mk which actually pertain to 60 DIRDEPS_BUILD to sys.dirdeps.mk 61 622023-05-04 Simon J Gerraty <sjg@beast.crufty.net> 63 64 * install-mk (MK_VERSION): 20230504 May the Forth be with you 65 66 * dirdeps.mk: as with meta.sys.mk we treat "host" as special. 67 DEP_TARGET_SPEC is just ${DEP_MACHINE} 68 69 * meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at 70 level > 0 since these are often refered to in Makefile.depend* 71 722023-04-26 Simon J Gerraty <sjg@beast.crufty.net> 73 74 * jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and 75 anything in ${JOB_LOG_START} 76 77 * jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}} 78 or a scripts subdir before searching $PATH. 79 80 * FILES: include newlog.sh for jobs.mk 81 822023-04-20 Simon J Gerraty <sjg@beast.crufty.net> 83 84 * install-mk (MK_VERSION): 20230420 85 86 * lib.mk: include LDFLAGS and LDADD when linking shared libs 87 88 * gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc 89 via local.meta.sys.mk rather than local.gendirdeps.mk 90 so DEP_* variables can be set at level 1+ to avoid syntax errors 91 when used in conditionals in manually maintained Makefile.depend 92 files. 93 94 * dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines 95 962023-04-18 Simon J Gerraty <sjg@beast.crufty.net> 97 98 * dirdeps.mk: check we were not included by 99 Makefile.depend.options as the result is bad. 100 1012023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 102 103 * install-mk (MK_VERSION): 20230414 104 105 * meta.sys.mk: since we have :range we can put the logic for 106 processing TARGET_SPEC from env here. 107 108 * dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including 109 local.dirdeps-missing.mk, also improve debug output. 110 111 * dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC 112 we need to use :M*[/.]* same as for when actually setting DIRDEPS 113 from the targets on command line. 114 1152023-04-12 Simon J Gerraty <sjg@beast.crufty.net> 116 117 * Add jobs.mk 118 1192023-03-21 Simon J Gerraty <sjg@beast.crufty.net> 120 121 * install-mk (MK_VERSION): 20230321 122 123 * meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter 124 STAGE_LIBS for SHLIB_LINKS. 125 126 * autoconf.mk: add .WAIT after config.status 127 1282023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 129 130 * sys.vars.mk: add M_Index to report the index of a word in a list. 131 1322023-02-15 Simon J Gerraty <sjg@beast.crufty.net> 133 134 * install-mk (MK_VERSION): 20230215 135 136 * warnings.mk: allow better control of -Werror 137 allow -Wno-error or similar to be added if 138 WARNINGS_SET < WERROR_SET 139 account for COMPILER_TYPE 140 1412023-01-29 Simon J Gerraty <sjg@beast.crufty.net> 142 143 * autoconf.mk: hook config.status to beforebuild. 144 145 * whats.mk: what*.c is NOTMAIN 146 1472023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 148 149 * install-mk (MK_VERSION): 20230127 150 control umask so directories are created with suitable mode. 151 1522023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 153 154 * install-mk (MK_VERSION): 20230120 155 156 * sys.vars.mk: add M_On and M_Onr also cleanup to be more 157 consistent wrt testing MAKE_VERSION 158 1592023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 160 161 * install-mk (MK_VERSION): 20230112 162 163 * meta2deps.{py,sh}: assert if filemon data is truncated 164 we should see the '# Bye bye' record - assert if we do not. 165 1662022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 167 168 * install-mk (MK_VERSION): 20220909 169 170 * sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings 171 1722022-09-06 Simon J Gerraty <sjg@beast.crufty.net> 173 174 * dirdeps-options.mk: explain the need to use 175 ${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to 176 ${TARGET_SPEC_VAR} 177 1782022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 179 180 * install-mk (MK_VERSION): 20220903 181 182 * M_cmpv handle more than 3 dots and clear leading 0's 183 1842022-07-20 Simon J Gerraty <sjg@beast.crufty.net> 185 186 * install-mk (MK_VERSION): 20220720 187 188 * prog.mk: handle PROG_CXX for more than just NetBSD 189 1902022-06-20 Simon J Gerraty <sjg@beast.crufty.net> 191 192 * install-mk (MK_VERSION): 20220620 193 194 * yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER 195 rather than just suffix rules 196 1972022-04-23 Simon J Gerraty <sjg@beast.crufty.net> 198 199 * install-mk (MK_VERSION): 20220422 200 201 * gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no" 202 do not capture any local depends in Makefile.depend 203 2042022-03-25 Simon J Gerraty <sjg@beast.crufty.net> 205 206 * install-mk (MK_VERSION): 20220323 207 * posix.mk: default rules for .POSIX: 208 2092022-03-17 Simon J Gerraty <sjg@beast.crufty.net> 210 211 * sys/*.mk: remove l from ARFLAGS 212 2132022-03-14 Simon J Gerraty <sjg@beast.crufty.net> 214 215 * install-mk (MK_VERSION): 20220314 216 217 * dirdeps-options.mk: allow options to be per RELDIR 218 try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed 219 with ${DEP_RELDIR}. 220 2212022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 222 223 * install-mk (MK_VERSION): 20220214 224 225 * cc-wrap.mk: fix :@ modifier 226 2272022-02-06 Simon J Gerraty <sjg@beast.crufty.net> 228 229 * install-mk (MK_VERSION): 20220206 230 231 * cc-wrap.mk: docuement how CCACHE etc might be set for 232 maximum flexibility 233 2342022-02-05 Simon J Gerraty <sjg@beast.crufty.net> 235 236 * sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT 237 2382022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 239 240 * install-mk (MK_VERSION): 20220204 241 242 * host-target.mk: use .MAKE.OS if available 243 2442022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 245 246 * install-mk (MK_VERSION): 20220202 247 248 * cc-wrap.mk: allow other entries in CC_WRAP_FILTER 249 We add our filter on extensions last, so prior filters 250 can apply to the whole value of .IMPSRC 251 2522022-02-01 Simon J Gerraty <sjg@beast.crufty.net> 253 254 * cc-wrap.mk: take advantage of target local variables to 255 wrap compilers like CC CXX with wrappers like ccache distcc etc 256 2572022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 258 259 * meta2deps: we do not expect any trace data for setid apps 260 2612022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 262 263 * dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed 264 to sub-make using DIRDEPS_CACHE 265 2662022-01-07 Simon J Gerraty <sjg@beast.crufty.net> 267 268 * dirdeps.mk: use _cache_script to minimize the number of shells 269 forked when generating dirdeps.cache 270 2712022-01-02 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * install-mk (MK_VERSION): 20220101 274 275 * dirdeps.mk: initialize DEP_* and _debug_reldir earlier. 276 If initial DIRDEPS are from command line, create the target 277 _dirdeps_cmdline as an indication. 278 2792022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 280 281 * init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD 282 at top-level only some targets are allowed at level 0, 283 for leaf makefiles only the default (all) target is restricted 284 2852021-12-28 Simon J Gerraty <sjg@beast.crufty.net> 286 287 * install-mk (MK_VERSION): 20211228 288 289 * meta2deps.py: filemon on Linux is not as reliable as we might 290 like, we do not want to update DIRDEPS if filemon output is 291 incomplete. Track pids that we 'E'xec and make sure we see an 292 e'X'it for each one. Throw an error if we are missing any 'X' 293 records. 294 2952021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 296 297 * sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes. 298 299 * meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON 300 is something else. 301 302 * meta.autodep.mk: we can now reference ${.SUFFIXES} 303 304 * meta2deps.py: derive a list of dirdep extensions from 305 TARGET_SPEC to trim from dirdeps. 306 307 * dirdeps.mk: flip the computation of qualified vs unqualified 308 dirdeps - it is much simpler to check for unqualified first. 309 3102021-12-11 Simon J Gerraty <sjg@beast.crufty.net> 311 312 * install-mk (MK_VERSION): 20211212 313 314 * auto.dep.mk: rearrange so that the trivial implementation 315 for recent bmake is more obvious. 316 3172021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 318 319 * install-mk (MK_VERSION): 20211207 320 321 * Ensure guard targets are .NOTMAIN 322 323 * meta.sys.mk: check for nofilemon support when we skip level 0 324 325 * auto.dep.mk: make this usable in meta mode 326 for platforms that cannot use meta.autodep.mk 327 328 * meta2deps.py: avoid confusion if MACHINE and another 329 TARGET_SPEC_VAR have same value. 330 3312021-11-27 Simon J Gerraty <sjg@beast.crufty.net> 332 333 * dirdeps.mk: when building dirdeps.cache, minimize the amount of 334 data put into env, by stripping ${SRCTOP}/ from each entry. 335 A long sandbox name can double the amount of memory consumed and 336 in extreme cases cause failure. 337 While we are at it, strip ${SRCTOP}/ from a lot of the debug output. 338 3392021-11-11 Simon J Gerraty <sjg@beast.crufty.net> 340 341 * install-mk (MK_VERSION): 20211111 342 343 * meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail 344 so fallback to cp if necessary. 345 3462021-10-30 Simon J Gerraty <sjg@beast.crufty.net> 347 348 * man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year 349 old cmt2doc.pl 350 3512021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 352 353 * meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f} 354 as the symlink (rare) 355 3562021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 357 358 * autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not 359 been read, throw an error after running configure telling user to 360 restart. 361 3622021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 363 364 * install-mk (MK_VERSION): 20211011 365 366 * Add support for SCO_SV 367 3682021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 369 370 * install-mk (MK_VERSION): 20211001 371 372 * man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more 373 flexibility 374 3752021-09-13 Simon J Gerraty <sjg@beast.crufty.net> 376 377 * options.mk (describe-options): print options and their values 378 and optional description 379 3802021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 381 382 * install-mk (MK_VERSION): 20210911 383 384 * options.mk (show-options): print options and their values 385 3862021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 387 388 * install-mk (MK_VERSION): 20210909 389 390 * lib.mk: apply patch from <daniel@octaforge.org> 391 to fix shared libs on Linux 392 3932021-08-08 Simon J Gerraty <sjg@beast.crufty.net> 394 395 * install-mk (MK_VERSION): 20210808 396 397 * options.mk: issue warning for WITH_*=no 398 3992021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 400 401 * install-mk (MK_VERSION): 20210616 402 403 * dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find 404 depend files to read, anchor MACHINE at , or end of string 405 to avoid prefix match. 406 4072021-05-04 Simon J Gerraty <sjg@beast.crufty.net> 408 409 * install-mk (MK_VERSION): 20210504 410 411 * dirdeps.mk: re-implement ALL_MACHINES support to better 412 cater for local complexities, when ONLY_TARGET_SPEC_LIST 413 is not set. local.dirdeps.mk can set 414 DIRDEPS_ALL_MACHINES_FILTER and/or 415 DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get 416 from listing all existing Makefile.depend.* 417 4182021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 419 420 * install-mk (MK_VERSION): 20210420 421 422 * dirdeps.mk: revert previous - not always safe. 423 4242021-03-20 Simon J Gerraty <sjg@beast.crufty.net> 425 426 * install-mk (MK_VERSION): 20210321 427 428 * dirdeps.mk: when generating dirdeps.cache 429 we only need to hook the initial DIRDEPS to the 430 dirdeps target. That and any _build_xtra_dirs (like tests which 431 should not be hooked directly to the dependency graph - to avoid 432 cycles) 433 4342021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 435 436 * install-mk (MK_VERSION): 20210130 437 438 * dirdeps.mk: expr 2 - 1 - 1 exits with a bad status 439 we need to guard against this in DIRDEP_LOADAVG_REPORT. 440 441 * dirdeps.mk: restore respect for TARGET_MACHINE 442 4432021-01-06 Simon J Gerraty <sjg@beast.crufty.net> 444 445 * install-mk (MK_VERSION): 20210101 446 447 * dirdeps.mk: first time we are read, just use TARGET_SPEC for 448 _DEP_TARGET_SPEC 449 4502020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 451 452 * sys.mk (MAKE_SHELL): use ${.SHELL:Ush} 453 and use := when setting SHELL 454 4552020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 456 457 * install-mk (MK_VERSION): 20201221 458 459 * dirdeps-options.mk: latest bmake allows only one arg to .undef 460 4612020-12-11 Simon J Gerraty <sjg@beast.crufty.net> 462 463 * dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS 464 so that any directory can be treated as a target. 465 4662020-11-26 Simon J Gerraty <sjg@beast.crufty.net> 467 468 * install-mk (MK_VERSION): 20201126 469 470 * own.mk: use .MAKE.{UID,GID} if available. 471 472 * init.mk: suppress _SKIP_BUILD warning if doing -V 473 4742020-11-20 Simon J Gerraty <sjg@beast.crufty.net> 475 476 * install-mk (MK_VERSION): 20201120 477 478 * init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS 479 480 * dirdeps-targets.mk: fix typo in comment 481 4822020-11-06 Simon J Gerraty <sjg@beast.crufty.net> 483 484 * install-mk (MK_VERSION): 20201106 485 486 * meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed 487 args to tweak extensions for local deps. 488 4892020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 490 491 * install-mk (MK_VERSION): 20201101 492 493 * dirdeps.mk: most leaf makefiles are not suitable for building 494 dirdeps.cache so if RELDIR is not "." use dirdeps.mk 495 4962020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 497 498 * install-mk (MK_VERSION): 20201028 499 500 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE 501 when building dirdeps.cache for leaf directory use -f dirdeps.mk 502 503 * sys.vars.mk: add M_JOT and M_RANGE 504 5052020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 506 507 * install-mk (MK_VERSION): 20201001 508 509 * meta2deps.{py,sh}: throw an error if we don't see filemon version 510 5112020-09-09 Simon J Gerraty <sjg@beast.crufty.net> 512 513 * install-mk (MK_VERSION): 20200909 514 515 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target 516 5172020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 518 519 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 520 (even more rare that use of static cache is playing clever tricks 521 with it) 522 5232020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 524 525 * dirdeps-cache-update.mk: allow 526 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 527 actually update STATIC_DIRDEPS_CACHE. 528 529 * stage-install.sh: create dest directory if needed 530 before running install(1) 531 5322020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 533 534 * dirdeps-targets.mk: include Makefile.dirdeps.options 535 536 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 537 5382020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 539 540 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 541 542 * dirdeps-cache-update.mk: building parallel cache update 543 under the context of dirdeps-cached would be ideal, but 544 is problematic, so it runs as a sibling. 545 Use cache-built target to ensure we wait for it to complete if 546 necessary. 547 5482020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 549 550 * install-mk (MK_VERSION): 20200806 551 552 * dirdeps-options: allow TARGET_SPEC to affect option values. 553 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 554 555 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 556 before looking for STATIC_DIRDEPS_CACHE 557 5582020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 559 560 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 561 562 * dirdeps-options.mk: improve debug output 563 5642020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 565 566 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 567 for use by dirdeps-cache-update.mk 568 569 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 570 for use by dirdeps-cache-update.mk even if we don't use it. 571 572 * dirdeps-cache-update.mk: we only need worry about the background 573 update case, with the above, the update from DIRDEPS_CACHE is 574 simple. 575 576 * meta2deps.py: R 1234 . is not interesting 577 5782020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 579 580 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 581 582 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 583 allows use of lower case for pseudo options. 584 585 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 586 5872020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 588 589 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 590 which allows us to have a static cache for expensive targets. 591 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 592 to regenerate the dirdeps.cache it is a copy of. 593 5942020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 595 596 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 597 5982020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 599 600 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 601 load averages at intervals during build. 602 6032020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 604 605 * install-mk (MK_VERSION): 20200715 606 607 * dirdeps.mk: tweak Checking line to make matching Finished 608 lines for post-build analysis easier. 609 610 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 611 612 * progs.mk: avoid prog.mk outputting multiple Finished lines 613 6142020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 615 616 * dirdeps.mk: further optimize dirdeps.cache 617 generate a DIRDEPS.${.TARGET} list for other purposes 618 and improve the layout. 619 6202020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 621 622 * dirdeps.mk: optimize content of dirdeps.cache 623 6242020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 625 626 * sys/*.mk: make it easier for local*sys.mk to customize by 627 using ?= 628 6292020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 630 631 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 632 it is much safer to guard local depends with a simple check for 633 .MAKE.LEVEL > 0 634 6352020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 636 637 * install-mk (MK_VERSION): 20200610 638 639 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 640 6412020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 642 643 * install-mk (MK_VERSION): 20200606 644 645 * dirdeps-targets.mk: allow for filtering of .TARGETS 646 647 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 648 entries - and we don't care about 'W'rite entries. 649 Also ignore absolute paths that do not exist. 650 6512020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 652 653 * install-mk (MK_VERSION): 20200525 654 655 * init.mk: expand and simplify handling of qualified vars 656 like CPPFLAGS.${.TARGET:T} 657 6582020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 659 660 * install-mk (MK_VERSION): 20200515 661 662 * dirdeps.mk: set _debug_* earlier and allow passing -d* 663 flags to submake when building DIRDEPS_CACHE 664 6652020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 666 667 * whats.mk: more easily extensible 668 6692020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 670 671 * whats.mk: greatly simplify by adding what.c to SRCS 672 6732020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 674 675 * whats.mk: for libs take care how we add to *OBJS 676 677 * lib.mk: : works better with whats.mk 678 6792020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 680 681 * install-mk (MK_VERSION): 20200420 682 683 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 684 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 685 6862020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 687 688 * install-mk (MK_VERSION): 20200416 689 690 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 691 interfere with user env. 692 693 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 694 695 * autodep.mk: use MAKE_SHELL. 696 6972019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 698 699 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 700 wasted effort, and unexport _meta_files when no longer needed as 701 it consumes space we need for command line. 702 7032019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 704 705 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 706 DIRDEP_USE_PRELUDE at start - facilitates job distribution 707 7082019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 709 710 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 711 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 712 TARGET_SPEC qualified depend files. 713 7142019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 715 716 * dirdeps-targets.mk: encapsulate logic for finding top-level 717 targets to set initial DIRDEPS for DIRDEPS_BUILD 718 7192019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 720 721 * install-mk (MK_VERSION): 20190911 722 723 * compiler.mk: set COMPILER_TYPE 724 7252019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 726 727 * install-mk (MK_VERSION): 20190704 728 729 * sys/Darwin.mk: support for Objective-C and clang 730 7312019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 732 733 * dirdeps.mk: avoid insanely long command line when generating cache 734 7352019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 736 737 * install-mk (MK_VERSION): 20190505 738 739 * whats.mk: handle corner case SHLIB defined but not LIB 740 7412018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 742 743 * install-mk (MK_VERSION): 20180919 744 745 * dirdeps-options.mk: .undef cannot handle var that expands to 746 more than one var. 747 7482018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 749 750 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 751 7522018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 753 754 * meta.autodep.mk: export META_FILES to avoid command line limit 755 * gendirdeps.mk: if we have lots of .meta files put them in 756 an @list 757 7582018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 759 760 * dirdeps-options.mk: use local.dirdeps-options.mk 761 not local.dirdeps-option.mk 762 7632018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 764 765 * install-mk (MK_VERSION): 20180420 766 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 767 ie. we are building something. 768 7692018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 770 771 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 772 7732018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 774 775 * install-mk (MK_VERSION): 20180405 776 777 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 778 if needed. 779 7802018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 781 782 * install-mk (MK_VERSION): 20180118 783 784 * ldorder.mk: let make compute correct link order 785 7862017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 787 788 * install-mk (MK_VERSION): 20171212 789 790 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 791 7922017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 793 794 * install-mk (MK_VERSION): 20171111 795 796 * lib.mk: ensure META_NOECHO is set 797 7982017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 799 800 * Allow for host32 on rare occasions. 801 8022017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 803 804 * install-mk (MK_VERSION): 20171018 805 806 * whats.mk: include what_thing in what_uuid to avoid problem 807 when building multiple apps in the same directory. 808 8092017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 810 811 * install-mk (MK_VERSION): 20170812 812 813 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 814 add dependencies for config.recheck and config.gen 815 8162017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 817 818 * install-mk (MK_VERSION): 20170630 819 820 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 821 8222017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 823 824 * meta2deps.py: take special care of '..' 825 8262017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 827 828 * install-mk (MK_VERSION): 20170515 829 830 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 831 useful/necessary for a Makefile.depend file to export some knobs. 832 This is complicated when we are doing DIRDEPS_CACHE, so we will 833 handle export of any variables listed in DEP_EXPORT_VARS. 834 8352017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 836 837 * install-mk (MK_VERSION): 20170505 838 839 * meta2deps.py: fix botched indenation. 840 8412017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 842 843 * sys/*.mk: Remove setting of MAKE it is unnecessary and 844 in many cases wrong (basname rather than full path) 845 846 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 847 848 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 849 8502017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 851 852 * install-mk (MK_VERSION): 20170501 853 854 * doc.mk: fix typo in DOC_INSTALL_OWN 855 856 * inc.mk: handle INCGROUPS similar to freebsd 857 858 * files.mk: add something for files too 859 860 * add staging logic to lib.mk prog.mk etc. 861 8622017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 863 864 * install-mk (MK_VERSION): 20170424 865 866 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 867 also target of bootstrap-this when sed is needed should be ${_want:T} 868 8692017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 870 871 * install-mk (MK_VERSION): 20170418 872 873 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 874 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 875 8762017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 877 878 * install-mk (MK_VERSION): 20170401 879 880 * meta2deps.py: add is_src so we can check if obj dependency 881 is also a src dependency. 882 8832017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 884 885 * install-mk (MK_VERSION): 20170326 886 887 * meta.stage.mk: do nothing if NO_STAGING is defined. 888 8892017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 890 891 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 892 8932017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 894 895 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 896 8972017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 898 899 * install-mk (MK_VERSION): 20170301 900 901 * dirdeps.mk (_build_all_dirs): update this outside test for empty 902 DIRDEPS. 903 904 * meta.stage.mk: allow multiple inclusion to the extent it makes 905 sense. 906 9072017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 908 909 * prog.mk (install_links): depends on realinstall 910 9112017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 912 913 * install-mk (MK_VERSION): 20170212 914 915 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 916 9172017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 918 919 * install-mk (MK_VERSION): 20170130 920 921 * dirdeps.mk: use :range if we can. 922 923 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 924 925 * meta2deps.py: clean paths without using realpath() where possible. 926 fix sort_unique. 927 9282016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 929 930 * install-mk (MK_VERSION): 20161212 931 932 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 933 rather than when we detect pid change. 934 9352016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 936 937 * install-mk (MK_VERSION): 20161207 938 939 * meta.stage.mk: add stage_as_and_symlink for staging packages. 940 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 941 to use foo.tgz to reference the latest staged version - so we 942 make foo.tgz a symlink to it. 943 Using a target to do both operations ensures we stay in sync. 944 9452016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 946 947 * install-mk (MK_VERSION): 20161126 948 949 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 950 so it can add dependencies. 951 9522016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 953 954 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 955 do that they can influence the result correctly. 956 957 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 958 959 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 960 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 961 9622016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 963 964 * dirdeps.mk: remove dependence on jot (normal situations anyway). 965 Before we read another Makefile.depend* set DEP_* vars from 966 _DEP_TARGET_SPEC in case it uses any of them with := 967 When bootstrapping, trim any ,* from extention of chosen _src 968 Makefile.depend* to get the machine value we subst for. 969 9702016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 971 972 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 973 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 974 975 * sys.mk: extract some bits to sys.{debug,vars}.mk 976 for easier re-use by others. 977 9782016-09-23 Simon Gerraty <sjg@sjg-mba13> 979 980 * lib.mk: Use ${PICO} for extension for PIC objects. 981 default to .pico (like NetBSD) safe on case insensitive filesystem. 982 9832016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 984 985 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 986 9872016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 988 989 * install-mk (MK_VERSION): 20160815 990 991 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 992 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 993 9942016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 995 996 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 997 in meta mode we can ignore the mtime of makefiles 998 9992016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1000 1001 * install-mk (MK_VERSION): 20160802 1002 1003 * lib.mk (libinstall): depends on beforinstall 1004 1005 * prog.mk (proginstall): depends on beforinstall 1006 patch from Lauri Tirkkonen 1007 1008 * dirdeps.mk (bootstrap): When bootstrapping; creat 1009 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 1010 .MAKE.DEPENDFILE_BOOTSTRAP_SED 1011 1012 * dirdeps.mk: move some comments to where they make sense. 1013 10142016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 1015 1016 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 1017 10182016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1019 1020 * install-mk (MK_VERSION): 20160602 1021 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 1022 do not apply :T to META_XTRAS 1023 patch from Bryan Drewery at FreeBSD.org. 1024 10252016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 1026 1027 * install-mk (MK_VERSION): 20160530 1028 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 1029 make it so. 1030 10312016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1032 1033 * install-mk (MK_VERSION): 20160512 1034 1035 * dpadd.mk: always include local.dpadd.mk if it exists 1036 remove some things that better belong in local.dpadd.mk 1037 skip INCLUDES_* for staged libs unless SRC_* defined. 1038 1039 * own.mk: add INCLUDEDIR 1040 10412016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1042 1043 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 1044 TARGET_MACHINE - :E will be empty or match part of path, use 1045 ${MACHINE} 1046 10472016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 1048 1049 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 1050 NO_FILEMON_COOKIE 1051 1052 * dirdeps.mk: move the logic that allows for 1053 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1054 inside the check for !target(_DIRDEP_USE) 1055 10562016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 1057 1058 * Use <> when including local*.mk and others which may exist 1059 elsewhere so that user can better control what they get. 1060 1061 * meta.autodep.mk (NO_FILEMON_COOKIE): 1062 create a cookie if we ever build dir with nofilemon 1063 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 1064 10652016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1066 1067 * install-mk (MK_VERSION): 20160401 1068 1069 * meta2deps.py: fix old print statement when debugging. 1070 1071 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 1072 patch from Bryan Drewery 1073 10742016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 1075 1076 * install-mk (MK_VERSION): 20160317 (St. Pats) 1077 1078 * warnings.mk: g++ does not like -Wimplicit 1079 1080 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 1081 pelthora of common suffixes for C++ 1082 1083 * lib.mk: use .So for shared objects 1084 10852016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1086 1087 * install-mk (MK_VERSION): 20160315 1088 1089 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 1090 normally only applies to scripts. 1091 1092 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 1093 well as outside it. 1094 10952016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1096 1097 * install-mk (MK_VERSION): 20160310 1098 1099 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 1100 we have processed; the list gets very inefficient as number of 1101 DIRDEPS gets large. 1102 1103 * sys.dependfile.mk: fix comment wrt MACHINE 1104 1105 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 1106 patch from Bryan Drewery 1107 11082016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 1109 1110 * meta2deps.sh: don't ignore subdirs. 1111 patch from Bryan Drewery 1112 11132016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1114 1115 * install-mk (MK_VERSION): 20160226 1116 1117 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 1118 11192016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 1120 1121 * dirdeps.mk: we shouldn't normally include .depend but if we do 1122 use .dinclude if we can. 1123 11242016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1125 1126 * install-mk (MK_VERSION): 20160218 1127 * sys.clean-env.mk: with recent change to Var_Subst() 1128 we cannot use the '$$' trick, but .export-literal does the job 1129 we need. 1130 * auto.dep.mk: make use .dinclude if we can. 1131 1132 11332016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 1134 1135 * dirdeps.mk: 1136 Add _build_all_dirs such that local.dirdeps.mk can 1137 add fully qualified dirs to it. 1138 These will be built normally but the current 1139 DEP_RELDIR will not depend on then (to avoid cycles). 1140 This makes it easy to hook things like unit-tests into build. 1141 1142 11432016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 1144 1145 * dirdeps.mk: add bootstrap-empty 1146 11472015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1148 1149 * install-mk (MK_VERSION): 20151212 1150 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 1151 only apply :tA to __objdir when comparing to .OBJDIR 1152 11532015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 1154 1155 * install-mk (MK_VERSION): 20151111 1156 1157 * meta.sys.mk: include sys.dependfile.mk 1158 1159 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 1160 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 1161 include local.sys.env.mk early 1162 include local.sys.mk later 1163 1164 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 1165 11662015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1167 1168 * meta.sys.mk (META_COOKIE_TOUCH): 1169 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 1170 1171 * meta.stage.mk: stage_libs should ignore SYMLINKS. 1172 11732015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 1174 1175 * install-mk (MK_VERSION): 20151022 1176 1177 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 1178 11792015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 1180 1181 * install-mk (MK_VERSION): 20151020 1182 1183 * dirdeps.mk: Add logic for 1184 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1185 11862015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 1187 1188 * install-mk (MK_VERSION): 20151010 1189 11902015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 1191 1192 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 1193 to have stage_lins run last in non-jobs mode. 1194 Use .ORDER only for jobs mode. 1195 11962015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 1197 1198 * rst2htm.mk: allow for per target flags etc. 1199 12002015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1201 1202 * install-mk (MK_VERSION): 20150901 1203 1204 * doc.mk: create dir if needed use DOC_INSTALL_OWN 1205 12062015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 1207 1208 * install-mk (MK_VERSION): 20150615 1209 1210 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 1211 Follow make's normal precedence rules. 1212 1213 * gendirdeps.mk: allow customization of the header. 1214 eg. for FreeBSD: 1215 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 1216 1217 * meta.autodep.mk: ignore dirdeps.cache* 1218 1219 * meta.stage.mk: when bootstrapping options it can be handy to 1220 throw warnings rather than errors for staging conflicts. 1221 1222 * meta.sys.mk: include local.meta.sys.mk for customization 1223 12242015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1225 1226 * install-mk (MK_VERSION): 20150606 1227 1228 * dirdeps.mk: don't rely on manually maintained Makefile.depend 1229 to set DEP_RELDIR and reset DIRDEPS. 1230 By setting DEP_RELDIR ourselves we can skip :tA 1231 1232 * gendirdeps.mk: skip setting DEP_RELDIR. 1233 12342015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 1235 1236 * dirdeps.mk: avoid wildcards like make(bootstrap*) 1237 12382015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 1239 1240 * install-mk (MK_VERSION): 20150520 1241 1242 * dirdeps.mk: when we are building dirdeps cache file we *want* 1243 meta_oodate to look at all the Makefile.depend files, so 1244 set .MAKE.DEPENDFILE to something that won't match. 1245 1246 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 1247 so first use absolute path as key. 1248 Also skip staging at level 0. 1249 12502015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 1251 1252 * install-mk (MK_VERSION): 20150430 1253 1254 * dirdeps.mk: fix _count_dirdeps for non-cache case. 1255 12562015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 1257 1258 * install-mk (MK_VERSION): 20150411 1259 bump version 1260 1261 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 1262 it is here mainly for documentation purposes, since 1263 if using auto.obj.mk it is better done via sys.mk 1264 12652015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1266 1267 * install-mk (MK_VERSION): 20150401 1268 1269 * meta2deps.sh: support @list 1270 1271 * meta2deps.py: updates from Juniper 1272 o add EXCLUDES 1273 o skip bogus input files. 1274 o treat 'M' and 'L' as both an 'R' and a 'W' 1275 12762015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1277 1278 * install-mk (MK_VERSION): 20150303 1279 1280 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 1281 which is built via sub-make so we have a .meta file to tell if 1282 it is out-of-date. 1283 The dirdeps-cache contains the same dependency rules that we 1284 normaly construct on the fly. 1285 This adds a few seconds overhead when the cache is out of date, 1286 but for a large target, the savings can be significant (10-20min). 1287 12882014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1289 1290 * install-mk (MK_VERSION): 20141118 1291 1292 * meta.stage.mk: add stale_staged 1293 1294 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 1295 only useful under very rare conditions such as 1296 FreeBSD's make universe. 1297 1298 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 1299 13002014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1301 1302 * install-mk (MK_VERSION): 20141111 1303 1304 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 1305 13062014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 1307 1308 * FILES: include mkopt.sh which allows handling options in shell 1309 scripts in a manner compatible with options.mk 1310 13112014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1312 1313 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 1314 for GENDIRDEPS_FILTER to avoid surprises. 1315 13162014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1317 1318 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 1319 the time it is applied to __depdirs they have. 1320 1321 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 1322 expects patterns like *.${MACHINE} 1323 1324 * cython.mk (pyprefix?): use pyprefix to find python bits 1325 since prefix might be something else (where we install our 1326 stuff) 1327 13282014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 1329 1330 * install-mk (MK_VERSION): 20140911 1331 1332 * dirdeps.mk: add bootstrap target to simplify adding support for 1333 new MACHINE. 1334 13352014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1336 1337 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 1338 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 1339 Makefile.depend files. 1340 13412014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 1342 1343 * install-mk (MK_VERSION): 20140828 1344 1345 * cython.mk: capture logic for building python extension modules 1346 with Cython. 1347 13482014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1349 1350 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 1351 13522014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1353 1354 * install-mk (MK_VERSION): 20140801 1355 1356 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 1357 identify the autodep.mk variant. 1358 1359 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 1360 initial value does not match .MAKE.DEPENDFILE_PREFIX 1361 1362 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 1363 13642014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 1365 1366 * install-mk (MK_VERSION): 20140522 1367 1368 * lib.mk: use CC to link shlib for linux too 1369 patch from Brendan MacDonell 1370 13712014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1372 1373 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 1374 if WITH_META_STATS is defined. 1375 13762014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1377 1378 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 1379 to supress dirdeps outside of .CURDIR. 1380 13812014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1382 1383 * Fix spelling errors - patch from Pedro Giffuni 1384 13852014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 1386 1387 * install-mk (MK_VERSION): 20140314 1388 1389 * dirdeps.mk (beforedirdeps): a handy hook 1390 1391 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 1392 to visit leaf dirs to be intercepted (eg. for distributed 1393 build). 1394 1395 * dirdeps.mk (__depdirs): ensure // don't sneak in 1396 1397 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 1398 1399 14002014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 1401 1402 * rst2htm.mk (RST2PDF): add support for rst2pdf 1403 14042014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1405 1406 * install-mk (MK_VERSION): bump version 1407 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 1408 available. 1409 14102014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1411 1412 * options.mk: avoid :U so this isn't bmake dependent 1413 14142014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 1415 1416 * options.mk: cleanup and simplify semanitcs 1417 NO_* dominates all, if both WITH_* and WITHOUT_* 1418 are defined then result is DOMINATE_* which defaults to "no". 1419 Ie. WITHOUT_ normally wins. 1420 14212013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1422 1423 * install-mk (MK_VERSION): bump version 1424 * meta2deps.py: convert to print function for python3 compat. 1425 we also need to open files with mode 'r' rather than 'rb' 1426 otherwise we get bytes instead of strings. 1427 14282013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1429 1430 * install-mk (MK_VERSION): bump version 1431 1432 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 1433 apply the same filtering (M_dep_qual_fixes) when setting _machines 1434 as _build_dirs. 1435 Also fix the filtering of Makefile.depend files - for reporting 1436 what we are looking for (M_dep_qual_fixes can get confused by 1437 Makefile.depend) 1438 Add some more debug info. 1439 14402013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 1441 1442 * gendirdeps.mk (_objtops): fix typo also 1443 while processing M2D_OBJROOTS to gather qualdir_list 1444 qualify $ql with loop iterator to ensure correct results. 1445 14462013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1447 1448 * install-mk (MK_VERSION): 20130801 1449 * libs.mk: update to match progs.mk 1450 14512013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 1452 1453 * install-mk (MK_VERSION): 20130726 1454 some updates from Juniper and FreeBSD 1455 o meta2deps.py: indicate file and line number when we hit parse 1456 errors 1457 also allow @file to provide huge list of .meta files. 1458 * meta2deps.py: add try_parse() to cleanup the above. 1459 14602013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 1461 1462 * install-mk (MK_VERSION): 20130716 1463 * own.mk: add GPROG as an option 1464 * prog.mk: honor MK_GPROF==yes 1465 14662013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1467 1468 * install-mk (MK_VERSION): 20130505 1469 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 1470 for when $MACHINE isn't enough for objdir distinction. 1471 Bring meta2deps.sh closer to par with meta2deps.py. 1472 14732013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1474 1475 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 1476 also if the target 'beforeinstall' exists, make it depend on 1477 .dirdep (incase it uses STAGE_INSTALL). 1478 14792013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1480 1481 * install-mk (MK_VERSION): 20130401 ;-) 1482 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 1483 wrapper around install(1). 1484 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 1485 14862013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1487 1488 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 1489 * install-mk (MK_VERSION): bump version 1490 14912013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 1492 1493 * install-mk (MK_VERSION): bump version 1494 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 1495 any trailing /., rather apply :tA only when needed. 1496 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 1497 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 1498 consistently. 1499 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 1500 15012013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1502 1503 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 1504 it is simpler to just not update when say building for "host" 1505 (where we know we apply filters to DIRDEPS), and using a 1506 non-machine qualified dependfile. 1507 15082013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1509 1510 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 1511 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 1512 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 1513 * meta2deps.py: if machine is "host", then also trim 1514 self.host_target from any OBJROOTS. 1515 1516 15172013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1518 1519 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 1520 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 1521 but _DEPENDFILE does not, compare the new _DEPENDFILE against 1522 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 1523 15242013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 1525 1526 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 1527 and hook to all: via staging: 1528 15292013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1530 1531 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 1532 use a separate variable for the default .MAKE.DEPENDFILE value 1533 so that it can be controlled independently of 1534 .MAKE.DEPENDFILE_PREFERENCE 1535 1536 * meta.stage.mk: throw error if cp fails etc. 1537 Stage*() return early if passed no args. 1538 .ORDER stage_* 1539 15402013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1541 1542 * install-mk (MK_VERSION): bump version 1543 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 1544 15452013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1546 1547 * install-mk (MK_VERSION): bump version to 20130210 1548 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 1549 from Juniper. 1550 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 1551 than just MACHINE. 1552 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 1553 15542013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 1555 1556 * install-mk (MK_VERSION): bump version to 20130123 1557 * meta.stage.mk: add stage_links (hard links). 1558 if doing hard links, we add dest to link as well. 1559 Default the stage dir for [sym]links to STAGE_OBJTOP since 1560 these are typically specified as absolute paths. 1561 Add -m "mode" flag to StageFiles and StageAs. 1562 15632012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1564 1565 * install-mk (MK_VERSION): bump version to 20121111 1566 * autoconf.mk: avoid meta mode seeing changed commands for config.status 1567 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 1568 in case we were found via .../mk 1569 * sys.clean-env.mk: move it from examples, we and others use it 1570 "as is". 1571 * FILES: add srctop.mk and options.mk 1572 * own.mk: convert to using options.mk 1573 which is modeled after FreeBSD's handling of MK_* 1574 but more flexible. 1575 This allows MK_* for boolean knobs to not be confused 1576 with MK* which can be commands. 1577 1578 * examples/sys.clean-env.mk: add WITH[OUT]_ to 1579 MAKE_ENV_SAVE_PREFIX_LIST. 1580 Mention that HOME=/var/empty might be a good idea. 1581 15822012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 1583 1584 * sys.dependfile.mk: if not depend file exists, $MACHINE 1585 specific ones are supported but not the default, 1586 check if any exist and follow suit. 1587 15882012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 1589 1590 * install-mk (MK_VERSION): bump version to 20121106 1591 15922012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1593 1594 * import latest dirdeps.mk and meta2deps.py from Juniper. 1595 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 1596 also add PROGS_TARGETS and pass on PROG_CXX if it seems 1597 appropriate. 1598 15992012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 1600 1601 * meta.stage.mk: update CLEANFILES 1602 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 1603 * progs.mk: Add LDADD to PROG_VARS 1604 16052012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1606 1607 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 1608 _STAGED_DIRS so that these can be turned into filters for 1609 GENDIRDEPS_FILTER. 1610 16112012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1612 1613 * install-mk (MK_VERSION): bump version to 20121010 1614 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 1615 target.dirdep matches .dirdep 1616 16172012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1618 1619 * install-mk (MK_VERSION): bump version to 20120808 1620 * import latest meta2deps.py from Juniper. 1621 16222012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1623 1624 * install-mk (MK_VERSION): bump version to 20120711 1625 * dep.mk: add explicit dependencies on SRCS after applying 1626 SRCS_DEP_FILTER 1627 * meta.autodep.mk: add explicit dependencies on SRCS after 1628 applying SRCS_DEP_FILTER 1629 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 1630 16312012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 1632 1633 * install-mk (MK_VERSION): bump version to 20120626 1634 * meta.sys.mk: ignore PYTHON if it does not exist 1635 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 1636 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 1637 entries ending in .${MACHINE} to decide if qualified _dirdep is 1638 needed. 1639 * gendirdeps.mk: only produce unqualified deps if no 1640 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 1641 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 1642 16432012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1644 1645 * install-mk (MK_VERSION): bump version to 20120420 1646 * add sys.dependfile.mk so we can experiment with 1647 .MAKE.DEPENDFILE_PREFERENCE 1648 * meta.autodep.mk: _DEPENDFILE is precious! 1649 16502012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1651 1652 * install-mk (MK_VERSION): bump version to 20120315 1653 * install-new.mk: avoid being interrupted 1654 16552012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1656 1657 * man.mk: MAN might have multiple values so be careful with exists(). 1658 16592012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 1660 1661 * install-mk (MK_VERSION): bump version to 20120112 1662 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 1663 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 1664 16652011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 1666 1667 * install-mk (MK_VERSION): bump version to 20111201 1668 * import dirdeps.mk from Juniper sjg@ 1669 o more consistent handling of DEP_MACHINE, especially when 1670 dealing with an odd Makefile.depend, when normally using 1671 Makefile.depend.${MACHINE} 1672 16732011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 1674 1675 * install-mk (MK_VERSION): bump version to 20111122 1676 * meta.autodep.mk: add some debug output, be more crisp about 1677 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 1678 16792011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1680 1681 * install-mk (MK_VERSION): bump version to 20111111 1682 it's too cool to miss 1683 * import meta* updates from Juniper sjg@ 1684 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 1685 normally using Makefile.depend.${MACHINE}), handy for 1686 read-only manually maintained dependencies. 1687 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 1688 o gendirdeps.mk if ERROR: from meta2deps.py do not update 1689 anything. 1690 16912011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 1692 1693 * install-new.mk separate the cmp and copy logic to its own function. 1694 16952011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1696 1697 * install-mk (MK_VERSION): bump version to 20111028 1698 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 1699 * subdir.mk: ensure _SUBDIRUSE is provided 1700 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 1701 * meta.subdir.mk: always allow for Makefile.depend 1702 17032011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1704 1705 * install-mk (MK_VERSION): bump version to 20111010 1706 o minor tweak to *dirdeps.mk from Juniper sjg@ 1707 17082011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1709 1710 * install-mk (MK_VERSION): bump version to 20111001 1711 o add meta2deps.py from Juniper sjg@ 1712 o tweak gendirdeps.mk to work with meta2deps.py when not 1713 cross-building 1714 * autoconf.mk: add autoconf-input as a hook for regenerating 1715 AUTOCONF_INPUTS (configure). 1716 17172011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 1718 1719 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 1720 trigger for updating Makefile.depend* 1721 17222011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1723 1724 * install-mk (MK_VERSION): bump version to 20110808 1725 * obj.mk: minor cleanup 1726 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 1727 17282011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1729 1730 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 1731 specified dir. 1732 17332011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 1734 1735 * meta.autodep.mk: if XMAKE_META_FILE is set 1736 the makefile uses a foreign make, and so dependencies 1737 can only be gathered from a clean tree build. 1738 17392011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 1740 1741 * install-mk (MK_VERSION): bump version to 20110622 1742 * meta.autodep.mk: improve bootstraping 1743 17442011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1745 1746 * yacc.mk: handle the corner case of .c being removed 1747 while .h remains. 1748 17492011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1750 1751 * yacc.mk: do .y.h and .y.c separately 1752 17532011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1754 1755 * install-mk (MK_VERSION): bump version to 20110606 1756 * don't store SRC_DIRDEPS in Makefile.depend* by default 1757 not everyone needs it. 1758 17592011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1760 1761 * install-mk (MK_VERSION): bump version to 20110505 1762 first release including meta mode makefiles 1763 17642011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1765 1766 * meta.stage.mk: add STAGE_AS_SETS and stage_as 1767 for things that need to be staged with different names. 1768 17692011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1770 1771 * meta.stage.mk: add notion of STAGE_SETS 1772 so a makefile can stage to multiple dirs 1773 17742011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 1775 1776 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 1777 on target name. 1778 17792011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1780 1781 * install-mk (MK_VERSION): bump version to 20110330 1782 17832011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 1784 1785 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 1786 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 1787 * sys.mk: re-define M_whence in terms of M_type. 1788 M_type is useful for checking if something is a builtin. 1789 17902011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1791 1792 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 1793 stage_libs 1794 17952011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1796 1797 * dirdeps.mk: correct value for _depdir_files depends on 1798 .MAKE.DEPENDFILE 1799 Add our copyright - just to make it clear we have frobbed this 1800 quite a bit. 1801 DEP_MACHINE needs to be set to MACHINE each time, if using only 1802 Makefile.depend (cf. Makefile.depend.${MACHINE}) 1803 1804 * meta.stage.mk: meta mode version of staging 1805 1806 * init.mk, final.mk: include local.*.mk to simplify customization 1807 18082011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1809 1810 * auto.obj.mk: just because we are doing mk destroy, we should 1811 still set .OBJDIR correctly if it exists. 1812 1813 * install-mk (mksrc): do not exclude meta.sys.mk 1814 18152011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1816 1817 * host-target.mk: set/export _HOST_ARCH etc separately, 1818 catch junk resulting from uname -p, so we can find sys/Linux.mk 1819 correctly. 1820 18212011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1822 1823 * meta.sys.mk: throw an error if /dev/filemon is missing and we 1824 expected to be updating Makefile.depend* 1825 18262011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1827 1828 * install-mk (MK_VERSION): bump version to 20110214 1829 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 1830 18312010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 1832 1833 * meta.sys.mk: not valid for older bmake 1834 18352010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 1836 1837 * install-mk (MK_VERSION): bump version to 20100919 1838 include dirdeps.mk et al from Juniper Networks, 1839 for meta mode - requires filemon(9). 1840 * sys.mk, subdir.mk: Add hooks for meta mode. 1841 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 1842 to make turning it on/off simple. 1843 18442010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 1845 1846 * install-mk (MK_VERSION): bump version to 20100616 1847 * fix typo in sys.mk 1848 18492010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 1850 1851 * install-mk (MK_VERSION): bump version to 20100612 1852 * lib.mk: remove duplicate addition to SOBJS 1853 18542010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1855 1856 * sys.mk: Add a means of selectively turning on debug flags. 1857 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 1858 will act as if we did make -dv if .CURDIR ends in lib/sjg 1859 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 1860 the start of sys.mk rather than the end. 1861 This only makes sense for leaf dirs, so we check that 1862 .MAKE.LEVEL > 0 1863 18642010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 1865 1866 * install-mk (MK_VERSION): bump version to 20100608 1867 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 1868 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 1869 also make it easier for folk to tweak 1870 18712010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1872 1873 * install-mk (MK_VERSION): bump version to 20100606 1874 do not install examples/* 1875 * FILES: add examples/sys.clean-env.mk 1876 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 1877 this requires bmake-20100606 or later to work. 1878 18792010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 1880 1881 * sys.mk (M_tA): better simulate the result of :tA if not available. 1882 18832010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1884 1885 * sys.mk: canonicalize MAKE_VERSION 1886 old versions reported bmake-<src-date> build-<build-date> 1887 whereas we only care about <src-date> 1888 18892010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 1890 1891 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 1892 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 1893 is !empty 1894 18952010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 1896 1897 * dpadd.mk: use LDADD_* if defined. 1898 18992010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1900 1901 * install-mk (MK_VERSION): bump version to 20100420 1902 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 1903 * autoconf.mk allow AUTO_AUTOCONF 1904 19052010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 1906 1907 * obj.mk: add objwarn to keep freebsd makefiles happy 1908 * auto.obj.mk: ensure Mkdirs is available. 1909 * FILES: add auto.dep.mk - a simpler version of autodep.mk 1910 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 1911 asked to do that. 1912 fix/simplify the tests for when to run mkdep. 1913 * auto.dep.mk: add some explanation of how/what we do. 1914 * autodep.mk: skip the .OPTIONAL frobbing of .depend 1915 bmake's FROM_DEPEND flag makes it redundant. 1916 19172010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1918 1919 * install-mk (MK_VERSION): bump version to 20100404 1920 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 1921 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 1922 Also create a target _SUBDIRUSE so that we can be used without 1923 subdir.mk 1924 19252010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 1926 1927 * dep.mk: use <> when .including so can override. 1928 19292010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 1930 1931 * lib.mk (SHLIB_LINKS): ensure a string comparison. 1932 19332010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 1934 1935 * install-mk (MK_VERSION): bump version to 20100102 1936 * own.mk: ensure PRINTOBJDIR works 1937 * autoconf.mk: pass on CONFIGURE_ARGS 1938 * init.mk: handle COPTS.${.IMPSRC:T} etc. 1939 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 1940 fix handling of symlinks for darwin 1941 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 1942 * man.mk: suppress chown when not root. 1943 * rst2htm.mk: allow srcs from multiple locations. 1944 * sys.mk: M_whence, stop after 1st line of output. 1945 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 1946 * sys/SunOS.mk: we need to export PATH 1947 19482009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 1949 1950 * install-mk (MK_VERSION): bump version 1951 include rst2htm.mk 1952 19532009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 1954 1955 * sys.mk,libnames.mk add .-include <local.*> 1956 this allows local customization without the need to edit the 1957 distributed files. 1958 19592009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 1960 1961 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 1962 older versions already installed. 1963 19642009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 1965 1966 * stage.mk (.stage-install): generalize lib.mk's .libinstall 1967 * rules.mk rules for generic Makefile. 1968 * inc.mk install for includes. 1969 19702009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 1971 1972 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 1973 this, so provide it if using native make. 1974 19752009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 1976 1977 * FILES: move all the platform *.sys.mk files to sys/*.mk 1978 * Rename Generic.sys.mk to sys.mk - we always want it. 1979 19802009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 1981 1982 * install-mk (MK_VERSION): bump version 1983 * host-target.mk: only export the expensive stuff 1984 * Generic.sys.mk (sys_mk): for SunOS we need to look for 1985 ${HOST_OS}.${HOST_OSMAJOR} too! 1986 19872009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 1988 1989 * install-mk (MK_VERSION): bump version 1990 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 1991 based on patch from Greg Olszewski. 1992 * Generic.sys.mk: if we have nothing to work with 1993 set LORDER etc only if we can find it. 1994 19952009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 1996 1997 * install-mk (MK_VERSION): bump version 1998 * man.mk: cleanman: remove CLEANMAN if defined. 1999 20002009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 2001 2002 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 2003 20042009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 2005 2006 * install-mk (MK_VERSION): bump version 2007 include auto.obj.mk 2008 2009 20102009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 2011 2012 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 2013 20142008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 2015 2016 * install-mk (MK_VERSION): bump version 2017 man.mk: ensure we generate *.cat1 etc in . 2018 20192008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 2020 2021 * install-mk (MK_VERSION): bump version 2022 add prlist.mk 2023 20242007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 2025 2026 * Generic.sys.mk: Allow os specific sys.mk to be in a 2027 subdir of ${.PARSEDIR} 2028 20292007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 2030 2031 * install-mk (MK_VERSION): bump version 2032 * general cleanup 2033 * dpadd.mk introduce DPMAGIC_LIBS_* 2034 20352007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 2036 2037 * install-mk (MK_VERSION): bump version 2038 2039 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 2040 depend files and ensure clean is called for each lib/prog. 2041 20422007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 2043 2044 * autodep.mk (.depend): delete lines that do not start with 2045 space and do not contain ':' 2046 20472007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 2048 2049 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 2050 so make sure the transform for .OPTIONAL copes. 2051 20522007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2053 2054 * install-mk (MK_VERSION): bump version 2055 2056 * own.mk: make sure RM and LN are defined. 2057 2058 * obj.mk: fix a typo, and objlink target. 2059 20602006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 2061 2062 * install-mk (MK_VERSION): bump version 2063 * added libs.mk - analogous to progs.mk 2064 make both of them always inlcude {lib,prog}.mk 2065 20662006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 2067 2068 * progs.mk: add a means of building multiple apps in one dir. 2069 20702006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 2071 2072 * install-mk (MK_VERSION): bump version to 20061126 2073 2074 * warnings.mk: detect invalid WARNINGS_SET 2075 2076 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 2077 specific warnings. 2078 2079 * For .cc sources, turn off warnings that g++ vomits on. 2080 20812006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 2082 2083 * own.mk: if __initialized__ target doesn't exist and we are 2084 FreeBSD we got here directly from sys.mk 2085 20862006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 2087 2088 * install-mk (MK_VERSION): bump version to 20061106 2089 add scripts.mk 2090 20912006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 2092 2093 * install-mk (MK_VERSION): bump version to 20060318 2094 2095 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 2096 20972006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 2098 2099 * install-mk (MK_VERSION): bump version to 20060302 2100 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 2101 21022006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 2103 2104 * install-mk (MK_VERSION): bump version to 20060301 2105 * autodep.mk (.depend): 2106 if MAKE_VERSION is newer than 20050530 we can make .END depend on 2107 .depend and make .depend depend on __depsrcs that exist. 2108 * dpadd.mk: add SRC_PATHADD 2109 21102005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2111 2112 * install-mk (MK_VERSION): bump version to 20051104 2113 * prog.mk: remove all the LIBC?= junk, use 2114 .-include libnames.mk instead (none by default). 2115 also if USE_DPADD_MK is set, include that. 2116 21172005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2118 2119 * install-mk (MK_VERSION): bump version to 20051001 2120 Add UnixWare.sys.mk from Klaus Heinz. 2121 21222005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 2123 2124 * install-mk: always install *.sys.mk and if need be symlink one 2125 to sys.mk 2126 21272005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 2128 2129 * subdir.mk, own.mk: use .MAKE rather than MAKE 2130 21312004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2132 2133 * own.mk: don't use NetBSD's _SRC_TOP_ it can 2134 cause confusion. Also don't take just 'mk' as a 2135 srctop indicator. 2136 21372004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 2138 2139 * warnings.mk: overhauled, now very powerful. 2140 21412004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2142 2143 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 2144 21452004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 2146 2147 * install-mk (MK_VERSION): bump version to 20040201 2148 * extract HOST_TARGET stuff to host-target.mk so own.mk and 2149 Generic.sys.mk can share. 2150 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 2151 21522003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 2153 2154 * install-mk (MK_VERSION): 20030930 2155 * rename generic.sys.mk to Generic.sys.mk 2156 so that it does not get installed (unless being used as sys.mk) 2157 * set OS and ROOT_GROUP for those that we know the value. 2158 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 2159 we don't do it again for each sub-make. 2160 21612003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 2162 2163 * install-mk (MK_VERSION): 20030928 2164 Add some extra *.sys.mk from bootstrap-pkgsrc 2165 some of these likely still need work. 2166 Make everything default to root:wheel ownership, 2167 sys.mk can set ROOT_GROUP accordingly. 2168 21692003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 2170 2171 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 2172 not the portable ones. 2173 21742003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 2175 2176 * install-mk: add ability to use cp -f when updating 2177 destination .mk files. Also now possible to play games with 2178 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 2179 into dest - not recommended unless you seriously want to. 2180 21812003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 2182 2183 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 2184 for semi-compatability with NetBSD. 2185 21862003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 2187 2188 * install-mk: add a version indicator 2189 21902003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 2191 2192 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 2193 2194 * install-mk: Allow FORCE_SYS_MK to come from env 2195 2196 2197 2198