12024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * install-mk (MK_VERSION): 20240105 4 * dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same 5 limits on command line length, so skip export of lists to env. 6 72023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 8 9 * man.mk: add logic for staging man pages 10 112023-11-28 Simon J Gerraty <sjg@beast.crufty.net> 12 13 * jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating 14 point. This keeps JOB_MAX numeric incase another makefile does 15 comparisons. 16 172023-11-04 Simon J Gerraty <sjg@beast.crufty.net> 18 19 * dpadd.mk: add support for DPLIBS_QUALIFIER_LIST 20 21 * gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES 22 232023-10-03 Simon J Gerraty <sjg@beast.crufty.net> 24 25 * compiler.mk (COMPILER_VERSION): clang at least is into 26 double digit major versions. 27 282023-10-02 Simon J Gerraty <sjg@beast.crufty.net> 29 30 * install-mk (MK_VERSION): 20231001 31 32 * set _CCLINK in init.mk so lib.mk can use it for default SHLIB_LD 33 34 * lib.mk (cleanlib): use LD_solink so we remove all the right files. 35 Use -Wl for -soname since we now default to linking with CC 36 We should not need SHLIB_LDSTARTFILE or SHLIB_LDENDFILE when linking 37 with CC. 38 392023-09-24 Simon J Gerraty <sjg@beast.crufty.net> 40 41 * init.mk (QUALIFIED_VAR_LIST): Add SRCS 42 432023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 44 45 * jobs.mk (JOB_MAX): use -jC if we can 46 we actually use JOB_MAX_C which defaults to 1.33C 47 482023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 49 50 * now_utc: %s only works with :localtime 51 522023-07-14 Simon J Gerraty <sjg@beast.crufty.net> 53 54 * install-sh: ignore -c as claimed and only insist on 55 a directory for destination when more than one file to copy. 56 57 * sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and 58 ${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64) 59 602023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 61 62 * install-mk (MK_VERSION): 20230711 63 64 * sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible 65 install(1) 66 67 * sys/IRIX.mk: when setting ROOT_GROUP only match the first :0: 68 set INSTALL to install-sh rather than pathname that may not exist 69 (yet). 70 712023-07-07 Simon J Gerraty <sjg@beast.crufty.net> 72 73 * dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE 74 normally this is empty - for the default target, but there are 75 use-cases where we might set it to something else. 76 772023-07-04 Simon J Gerraty <sjg@beast.crufty.net> 78 79 * install-mk (MK_VERSION): 20230704 80 81 * dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output 82 when DEBUG_DIRDEPS is in effect. 83 Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n 84 can greatly improve readability. 85 862023-05-25 Simon J Gerraty <sjg@beast.crufty.net> 87 88 * meta.autodep.mk (beforegendirdeps): allow tasks to be done 89 at END but before gendirdeps 90 912023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 92 93 * install-mk (MK_VERSION): 20230522 94 95 * host-target.mk: deal with garbage from uname -m on 96 Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH 97 these days so just leave it be. 98 For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get 99 arm64 and x86_64 in HOST_TARGET. 100 1012023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 102 103 * sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older 104 versions of bmake. 105 106 * dirdeps.mk (TARGET_SPEC_VARS.host): 107 While *most* projects need only DEP_MACHINE for host, 108 there is always an exception. So we allow for 109 TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS. 110 The default will *just work* for most projects. 111 We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC 112 based on DEP_MACHINE. 113 Allow for M_dep_qual_fixes.host to be different too 114 and take care to apply the right set. 115 1162023-05-14 Simon J Gerraty <sjg@beast.crufty.net> 117 118 * sys.dirdeps.mk: we *do* want to override OBJTOP 119 and if MAKEOBJDIR was not in env as we want it; 120 put it there - carefully. 121 Ensure OBJROOT ends in / or - (/ preferred) 122 Add more comments to explain what/why. 123 1242023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 125 126 * install-mk (MK_VERSION): 20230512 127 128 * dirdeps.mk: take care not to qualify "host" dirdeps 129 130 * sys.dirdeps.mk (OBJTOP): must use ?= 131 1322023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 133 134 * meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no" 135 suppress processing of .depend 136 1372023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 138 139 * dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP 140 141 * meta.sys.mk sys.dirdeps.mk: 142 originally DIRDEPS_BUILD and META_MODE were the same thing, 143 but META_MODE is useful by itself. 144 Move things from meta.sys.mk which actually pertain to 145 DIRDEPS_BUILD to sys.dirdeps.mk 146 1472023-05-04 Simon J Gerraty <sjg@beast.crufty.net> 148 149 * install-mk (MK_VERSION): 20230504 May the Forth be with you 150 151 * dirdeps.mk: as with meta.sys.mk we treat "host" as special. 152 DEP_TARGET_SPEC is just ${DEP_MACHINE} 153 154 * meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at 155 level > 0 since these are often refered to in Makefile.depend* 156 1572023-04-26 Simon J Gerraty <sjg@beast.crufty.net> 158 159 * jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and 160 anything in ${JOB_LOG_START} 161 162 * jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}} 163 or a scripts subdir before searching $PATH. 164 165 * FILES: include newlog.sh for jobs.mk 166 1672023-04-20 Simon J Gerraty <sjg@beast.crufty.net> 168 169 * install-mk (MK_VERSION): 20230420 170 171 * lib.mk: include LDFLAGS and LDADD when linking shared libs 172 173 * gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc 174 via local.meta.sys.mk rather than local.gendirdeps.mk 175 so DEP_* variables can be set at level 1+ to avoid syntax errors 176 when used in conditionals in manually maintained Makefile.depend 177 files. 178 179 * dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines 180 1812023-04-18 Simon J Gerraty <sjg@beast.crufty.net> 182 183 * dirdeps.mk: check we were not included by 184 Makefile.depend.options as the result is bad. 185 1862023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 187 188 * install-mk (MK_VERSION): 20230414 189 190 * meta.sys.mk: since we have :range we can put the logic for 191 processing TARGET_SPEC from env here. 192 193 * dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including 194 local.dirdeps-missing.mk, also improve debug output. 195 196 * dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC 197 we need to use :M*[/.]* same as for when actually setting DIRDEPS 198 from the targets on command line. 199 2002023-04-12 Simon J Gerraty <sjg@beast.crufty.net> 201 202 * Add jobs.mk 203 2042023-03-21 Simon J Gerraty <sjg@beast.crufty.net> 205 206 * install-mk (MK_VERSION): 20230321 207 208 * meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter 209 STAGE_LIBS for SHLIB_LINKS. 210 211 * autoconf.mk: add .WAIT after config.status 212 2132023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 214 215 * sys.vars.mk: add M_Index to report the index of a word in a list. 216 2172023-02-15 Simon J Gerraty <sjg@beast.crufty.net> 218 219 * install-mk (MK_VERSION): 20230215 220 221 * warnings.mk: allow better control of -Werror 222 allow -Wno-error or similar to be added if 223 WARNINGS_SET < WERROR_SET 224 account for COMPILER_TYPE 225 2262023-01-29 Simon J Gerraty <sjg@beast.crufty.net> 227 228 * autoconf.mk: hook config.status to beforebuild. 229 230 * whats.mk: what*.c is NOTMAIN 231 2322023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 233 234 * install-mk (MK_VERSION): 20230127 235 control umask so directories are created with suitable mode. 236 2372023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 238 239 * install-mk (MK_VERSION): 20230120 240 241 * sys.vars.mk: add M_On and M_Onr also cleanup to be more 242 consistent wrt testing MAKE_VERSION 243 2442023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 245 246 * install-mk (MK_VERSION): 20230112 247 248 * meta2deps.{py,sh}: assert if filemon data is truncated 249 we should see the '# Bye bye' record - assert if we do not. 250 2512022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 252 253 * install-mk (MK_VERSION): 20220909 254 255 * sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings 256 2572022-09-06 Simon J Gerraty <sjg@beast.crufty.net> 258 259 * dirdeps-options.mk: explain the need to use 260 ${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to 261 ${TARGET_SPEC_VAR} 262 2632022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 264 265 * install-mk (MK_VERSION): 20220903 266 267 * M_cmpv handle more than 3 dots and clear leading 0's 268 2692022-07-20 Simon J Gerraty <sjg@beast.crufty.net> 270 271 * install-mk (MK_VERSION): 20220720 272 273 * prog.mk: handle PROG_CXX for more than just NetBSD 274 2752022-06-20 Simon J Gerraty <sjg@beast.crufty.net> 276 277 * install-mk (MK_VERSION): 20220620 278 279 * yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER 280 rather than just suffix rules 281 2822022-04-23 Simon J Gerraty <sjg@beast.crufty.net> 283 284 * install-mk (MK_VERSION): 20220422 285 286 * gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no" 287 do not capture any local depends in Makefile.depend 288 2892022-03-25 Simon J Gerraty <sjg@beast.crufty.net> 290 291 * install-mk (MK_VERSION): 20220323 292 * posix.mk: default rules for .POSIX: 293 2942022-03-17 Simon J Gerraty <sjg@beast.crufty.net> 295 296 * sys/*.mk: remove l from ARFLAGS 297 2982022-03-14 Simon J Gerraty <sjg@beast.crufty.net> 299 300 * install-mk (MK_VERSION): 20220314 301 302 * dirdeps-options.mk: allow options to be per RELDIR 303 try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed 304 with ${DEP_RELDIR}. 305 3062022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 307 308 * install-mk (MK_VERSION): 20220214 309 310 * cc-wrap.mk: fix :@ modifier 311 3122022-02-06 Simon J Gerraty <sjg@beast.crufty.net> 313 314 * install-mk (MK_VERSION): 20220206 315 316 * cc-wrap.mk: docuement how CCACHE etc might be set for 317 maximum flexibility 318 3192022-02-05 Simon J Gerraty <sjg@beast.crufty.net> 320 321 * sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT 322 3232022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 324 325 * install-mk (MK_VERSION): 20220204 326 327 * host-target.mk: use .MAKE.OS if available 328 3292022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 330 331 * install-mk (MK_VERSION): 20220202 332 333 * cc-wrap.mk: allow other entries in CC_WRAP_FILTER 334 We add our filter on extensions last, so prior filters 335 can apply to the whole value of .IMPSRC 336 3372022-02-01 Simon J Gerraty <sjg@beast.crufty.net> 338 339 * cc-wrap.mk: take advantage of target local variables to 340 wrap compilers like CC CXX with wrappers like ccache distcc etc 341 3422022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 343 344 * meta2deps: we do not expect any trace data for setid apps 345 3462022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 347 348 * dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed 349 to sub-make using DIRDEPS_CACHE 350 3512022-01-07 Simon J Gerraty <sjg@beast.crufty.net> 352 353 * dirdeps.mk: use _cache_script to minimize the number of shells 354 forked when generating dirdeps.cache 355 3562022-01-02 Simon J Gerraty <sjg@beast.crufty.net> 357 358 * install-mk (MK_VERSION): 20220101 359 360 * dirdeps.mk: initialize DEP_* and _debug_reldir earlier. 361 If initial DIRDEPS are from command line, create the target 362 _dirdeps_cmdline as an indication. 363 3642022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 365 366 * init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD 367 at top-level only some targets are allowed at level 0, 368 for leaf makefiles only the default (all) target is restricted 369 3702021-12-28 Simon J Gerraty <sjg@beast.crufty.net> 371 372 * install-mk (MK_VERSION): 20211228 373 374 * meta2deps.py: filemon on Linux is not as reliable as we might 375 like, we do not want to update DIRDEPS if filemon output is 376 incomplete. Track pids that we 'E'xec and make sure we see an 377 e'X'it for each one. Throw an error if we are missing any 'X' 378 records. 379 3802021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 381 382 * sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes. 383 384 * meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON 385 is something else. 386 387 * meta.autodep.mk: we can now reference ${.SUFFIXES} 388 389 * meta2deps.py: derive a list of dirdep extensions from 390 TARGET_SPEC to trim from dirdeps. 391 392 * dirdeps.mk: flip the computation of qualified vs unqualified 393 dirdeps - it is much simpler to check for unqualified first. 394 3952021-12-11 Simon J Gerraty <sjg@beast.crufty.net> 396 397 * install-mk (MK_VERSION): 20211212 398 399 * auto.dep.mk: rearrange so that the trivial implementation 400 for recent bmake is more obvious. 401 4022021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 403 404 * install-mk (MK_VERSION): 20211207 405 406 * Ensure guard targets are .NOTMAIN 407 408 * meta.sys.mk: check for nofilemon support when we skip level 0 409 410 * auto.dep.mk: make this usable in meta mode 411 for platforms that cannot use meta.autodep.mk 412 413 * meta2deps.py: avoid confusion if MACHINE and another 414 TARGET_SPEC_VAR have same value. 415 4162021-11-27 Simon J Gerraty <sjg@beast.crufty.net> 417 418 * dirdeps.mk: when building dirdeps.cache, minimize the amount of 419 data put into env, by stripping ${SRCTOP}/ from each entry. 420 A long sandbox name can double the amount of memory consumed and 421 in extreme cases cause failure. 422 While we are at it, strip ${SRCTOP}/ from a lot of the debug output. 423 4242021-11-11 Simon J Gerraty <sjg@beast.crufty.net> 425 426 * install-mk (MK_VERSION): 20211111 427 428 * meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail 429 so fallback to cp if necessary. 430 4312021-10-30 Simon J Gerraty <sjg@beast.crufty.net> 432 433 * man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year 434 old cmt2doc.pl 435 4362021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 437 438 * meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f} 439 as the symlink (rare) 440 4412021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 442 443 * autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not 444 been read, throw an error after running configure telling user to 445 restart. 446 4472021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 448 449 * install-mk (MK_VERSION): 20211011 450 451 * Add support for SCO_SV 452 4532021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 454 455 * install-mk (MK_VERSION): 20211001 456 457 * man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more 458 flexibility 459 4602021-09-13 Simon J Gerraty <sjg@beast.crufty.net> 461 462 * options.mk (describe-options): print options and their values 463 and optional description 464 4652021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 466 467 * install-mk (MK_VERSION): 20210911 468 469 * options.mk (show-options): print options and their values 470 4712021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 472 473 * install-mk (MK_VERSION): 20210909 474 475 * lib.mk: apply patch from <daniel@octaforge.org> 476 to fix shared libs on Linux 477 4782021-08-08 Simon J Gerraty <sjg@beast.crufty.net> 479 480 * install-mk (MK_VERSION): 20210808 481 482 * options.mk: issue warning for WITH_*=no 483 4842021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 485 486 * install-mk (MK_VERSION): 20210616 487 488 * dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find 489 depend files to read, anchor MACHINE at , or end of string 490 to avoid prefix match. 491 4922021-05-04 Simon J Gerraty <sjg@beast.crufty.net> 493 494 * install-mk (MK_VERSION): 20210504 495 496 * dirdeps.mk: re-implement ALL_MACHINES support to better 497 cater for local complexities, when ONLY_TARGET_SPEC_LIST 498 is not set. local.dirdeps.mk can set 499 DIRDEPS_ALL_MACHINES_FILTER and/or 500 DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get 501 from listing all existing Makefile.depend.* 502 5032021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 504 505 * install-mk (MK_VERSION): 20210420 506 507 * dirdeps.mk: revert previous - not always safe. 508 5092021-03-20 Simon J Gerraty <sjg@beast.crufty.net> 510 511 * install-mk (MK_VERSION): 20210321 512 513 * dirdeps.mk: when generating dirdeps.cache 514 we only need to hook the initial DIRDEPS to the 515 dirdeps target. That and any _build_xtra_dirs (like tests which 516 should not be hooked directly to the dependency graph - to avoid 517 cycles) 518 5192021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 520 521 * install-mk (MK_VERSION): 20210130 522 523 * dirdeps.mk: expr 2 - 1 - 1 exits with a bad status 524 we need to guard against this in DIRDEP_LOADAVG_REPORT. 525 526 * dirdeps.mk: restore respect for TARGET_MACHINE 527 5282021-01-06 Simon J Gerraty <sjg@beast.crufty.net> 529 530 * install-mk (MK_VERSION): 20210101 531 532 * dirdeps.mk: first time we are read, just use TARGET_SPEC for 533 _DEP_TARGET_SPEC 534 5352020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * sys.mk (MAKE_SHELL): use ${.SHELL:Ush} 538 and use := when setting SHELL 539 5402020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 541 542 * install-mk (MK_VERSION): 20201221 543 544 * dirdeps-options.mk: latest bmake allows only one arg to .undef 545 5462020-12-11 Simon J Gerraty <sjg@beast.crufty.net> 547 548 * dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS 549 so that any directory can be treated as a target. 550 5512020-11-26 Simon J Gerraty <sjg@beast.crufty.net> 552 553 * install-mk (MK_VERSION): 20201126 554 555 * own.mk: use .MAKE.{UID,GID} if available. 556 557 * init.mk: suppress _SKIP_BUILD warning if doing -V 558 5592020-11-20 Simon J Gerraty <sjg@beast.crufty.net> 560 561 * install-mk (MK_VERSION): 20201120 562 563 * init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS 564 565 * dirdeps-targets.mk: fix typo in comment 566 5672020-11-06 Simon J Gerraty <sjg@beast.crufty.net> 568 569 * install-mk (MK_VERSION): 20201106 570 571 * meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed 572 args to tweak extensions for local deps. 573 5742020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 575 576 * install-mk (MK_VERSION): 20201101 577 578 * dirdeps.mk: most leaf makefiles are not suitable for building 579 dirdeps.cache so if RELDIR is not "." use dirdeps.mk 580 5812020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 582 583 * install-mk (MK_VERSION): 20201028 584 585 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE 586 when building dirdeps.cache for leaf directory use -f dirdeps.mk 587 588 * sys.vars.mk: add M_JOT and M_RANGE 589 5902020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 591 592 * install-mk (MK_VERSION): 20201001 593 594 * meta2deps.{py,sh}: throw an error if we don't see filemon version 595 5962020-09-09 Simon J Gerraty <sjg@beast.crufty.net> 597 598 * install-mk (MK_VERSION): 20200909 599 600 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target 601 6022020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 603 604 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 605 (even more rare that use of static cache is playing clever tricks 606 with it) 607 6082020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 609 610 * dirdeps-cache-update.mk: allow 611 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 612 actually update STATIC_DIRDEPS_CACHE. 613 614 * stage-install.sh: create dest directory if needed 615 before running install(1) 616 6172020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 618 619 * dirdeps-targets.mk: include Makefile.dirdeps.options 620 621 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 622 6232020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 624 625 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 626 627 * dirdeps-cache-update.mk: building parallel cache update 628 under the context of dirdeps-cached would be ideal, but 629 is problematic, so it runs as a sibling. 630 Use cache-built target to ensure we wait for it to complete if 631 necessary. 632 6332020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 634 635 * install-mk (MK_VERSION): 20200806 636 637 * dirdeps-options: allow TARGET_SPEC to affect option values. 638 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 639 640 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 641 before looking for STATIC_DIRDEPS_CACHE 642 6432020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 644 645 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 646 647 * dirdeps-options.mk: improve debug output 648 6492020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 650 651 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 652 for use by dirdeps-cache-update.mk 653 654 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 655 for use by dirdeps-cache-update.mk even if we don't use it. 656 657 * dirdeps-cache-update.mk: we only need worry about the background 658 update case, with the above, the update from DIRDEPS_CACHE is 659 simple. 660 661 * meta2deps.py: R 1234 . is not interesting 662 6632020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 664 665 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 666 667 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 668 allows use of lower case for pseudo options. 669 670 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 671 6722020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 673 674 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 675 which allows us to have a static cache for expensive targets. 676 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 677 to regenerate the dirdeps.cache it is a copy of. 678 6792020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 680 681 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 682 6832020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 684 685 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 686 load averages at intervals during build. 687 6882020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 689 690 * install-mk (MK_VERSION): 20200715 691 692 * dirdeps.mk: tweak Checking line to make matching Finished 693 lines for post-build analysis easier. 694 695 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 696 697 * progs.mk: avoid prog.mk outputting multiple Finished lines 698 6992020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 700 701 * dirdeps.mk: further optimize dirdeps.cache 702 generate a DIRDEPS.${.TARGET} list for other purposes 703 and improve the layout. 704 7052020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 706 707 * dirdeps.mk: optimize content of dirdeps.cache 708 7092020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 710 711 * sys/*.mk: make it easier for local*sys.mk to customize by 712 using ?= 713 7142020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 715 716 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 717 it is much safer to guard local depends with a simple check for 718 .MAKE.LEVEL > 0 719 7202020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 721 722 * install-mk (MK_VERSION): 20200610 723 724 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 725 7262020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 727 728 * install-mk (MK_VERSION): 20200606 729 730 * dirdeps-targets.mk: allow for filtering of .TARGETS 731 732 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 733 entries - and we don't care about 'W'rite entries. 734 Also ignore absolute paths that do not exist. 735 7362020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 737 738 * install-mk (MK_VERSION): 20200525 739 740 * init.mk: expand and simplify handling of qualified vars 741 like CPPFLAGS.${.TARGET:T} 742 7432020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 744 745 * install-mk (MK_VERSION): 20200515 746 747 * dirdeps.mk: set _debug_* earlier and allow passing -d* 748 flags to submake when building DIRDEPS_CACHE 749 7502020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 751 752 * whats.mk: more easily extensible 753 7542020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 755 756 * whats.mk: greatly simplify by adding what.c to SRCS 757 7582020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 759 760 * whats.mk: for libs take care how we add to *OBJS 761 762 * lib.mk: : works better with whats.mk 763 7642020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 765 766 * install-mk (MK_VERSION): 20200420 767 768 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 769 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 770 7712020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 772 773 * install-mk (MK_VERSION): 20200416 774 775 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 776 interfere with user env. 777 778 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 779 780 * autodep.mk: use MAKE_SHELL. 781 7822019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 783 784 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 785 wasted effort, and unexport _meta_files when no longer needed as 786 it consumes space we need for command line. 787 7882019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 789 790 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 791 DIRDEP_USE_PRELUDE at start - facilitates job distribution 792 7932019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 794 795 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 796 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 797 TARGET_SPEC qualified depend files. 798 7992019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 800 801 * dirdeps-targets.mk: encapsulate logic for finding top-level 802 targets to set initial DIRDEPS for DIRDEPS_BUILD 803 8042019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 805 806 * install-mk (MK_VERSION): 20190911 807 808 * compiler.mk: set COMPILER_TYPE 809 8102019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 811 812 * install-mk (MK_VERSION): 20190704 813 814 * sys/Darwin.mk: support for Objective-C and clang 815 8162019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 817 818 * dirdeps.mk: avoid insanely long command line when generating cache 819 8202019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 821 822 * install-mk (MK_VERSION): 20190505 823 824 * whats.mk: handle corner case SHLIB defined but not LIB 825 8262018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 827 828 * install-mk (MK_VERSION): 20180919 829 830 * dirdeps-options.mk: .undef cannot handle var that expands to 831 more than one var. 832 8332018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 834 835 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 836 8372018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 838 839 * meta.autodep.mk: export META_FILES to avoid command line limit 840 * gendirdeps.mk: if we have lots of .meta files put them in 841 an @list 842 8432018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 844 845 * dirdeps-options.mk: use local.dirdeps-options.mk 846 not local.dirdeps-option.mk 847 8482018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 849 850 * install-mk (MK_VERSION): 20180420 851 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 852 ie. we are building something. 853 8542018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 855 856 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 857 8582018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 859 860 * install-mk (MK_VERSION): 20180405 861 862 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 863 if needed. 864 8652018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 866 867 * install-mk (MK_VERSION): 20180118 868 869 * ldorder.mk: let make compute correct link order 870 8712017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 872 873 * install-mk (MK_VERSION): 20171212 874 875 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 876 8772017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 878 879 * install-mk (MK_VERSION): 20171111 880 881 * lib.mk: ensure META_NOECHO is set 882 8832017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 884 885 * Allow for host32 on rare occasions. 886 8872017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 888 889 * install-mk (MK_VERSION): 20171018 890 891 * whats.mk: include what_thing in what_uuid to avoid problem 892 when building multiple apps in the same directory. 893 8942017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 895 896 * install-mk (MK_VERSION): 20170812 897 898 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 899 add dependencies for config.recheck and config.gen 900 9012017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 902 903 * install-mk (MK_VERSION): 20170630 904 905 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 906 9072017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 908 909 * meta2deps.py: take special care of '..' 910 9112017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 912 913 * install-mk (MK_VERSION): 20170515 914 915 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 916 useful/necessary for a Makefile.depend file to export some knobs. 917 This is complicated when we are doing DIRDEPS_CACHE, so we will 918 handle export of any variables listed in DEP_EXPORT_VARS. 919 9202017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 921 922 * install-mk (MK_VERSION): 20170505 923 924 * meta2deps.py: fix botched indenation. 925 9262017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 927 928 * sys/*.mk: Remove setting of MAKE it is unnecessary and 929 in many cases wrong (basname rather than full path) 930 931 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 932 933 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 934 9352017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 936 937 * install-mk (MK_VERSION): 20170501 938 939 * doc.mk: fix typo in DOC_INSTALL_OWN 940 941 * inc.mk: handle INCGROUPS similar to freebsd 942 943 * files.mk: add something for files too 944 945 * add staging logic to lib.mk prog.mk etc. 946 9472017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 948 949 * install-mk (MK_VERSION): 20170424 950 951 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 952 also target of bootstrap-this when sed is needed should be ${_want:T} 953 9542017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 955 956 * install-mk (MK_VERSION): 20170418 957 958 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 959 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 960 9612017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 962 963 * install-mk (MK_VERSION): 20170401 964 965 * meta2deps.py: add is_src so we can check if obj dependency 966 is also a src dependency. 967 9682017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 969 970 * install-mk (MK_VERSION): 20170326 971 972 * meta.stage.mk: do nothing if NO_STAGING is defined. 973 9742017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 975 976 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 977 9782017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 979 980 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 981 9822017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 983 984 * install-mk (MK_VERSION): 20170301 985 986 * dirdeps.mk (_build_all_dirs): update this outside test for empty 987 DIRDEPS. 988 989 * meta.stage.mk: allow multiple inclusion to the extent it makes 990 sense. 991 9922017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 993 994 * prog.mk (install_links): depends on realinstall 995 9962017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 997 998 * install-mk (MK_VERSION): 20170212 999 1000 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 1001 10022017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 1003 1004 * install-mk (MK_VERSION): 20170130 1005 1006 * dirdeps.mk: use :range if we can. 1007 1008 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 1009 1010 * meta2deps.py: clean paths without using realpath() where possible. 1011 fix sort_unique. 1012 10132016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1014 1015 * install-mk (MK_VERSION): 20161212 1016 1017 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 1018 rather than when we detect pid change. 1019 10202016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1021 1022 * install-mk (MK_VERSION): 20161207 1023 1024 * meta.stage.mk: add stage_as_and_symlink for staging packages. 1025 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 1026 to use foo.tgz to reference the latest staged version - so we 1027 make foo.tgz a symlink to it. 1028 Using a target to do both operations ensures we stay in sync. 1029 10302016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1031 1032 * install-mk (MK_VERSION): 20161126 1033 1034 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 1035 so it can add dependencies. 1036 10372016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1038 1039 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 1040 do that they can influence the result correctly. 1041 1042 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 1043 1044 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 1045 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 1046 10472016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1048 1049 * dirdeps.mk: remove dependence on jot (normal situations anyway). 1050 Before we read another Makefile.depend* set DEP_* vars from 1051 _DEP_TARGET_SPEC in case it uses any of them with := 1052 When bootstrapping, trim any ,* from extention of chosen _src 1053 Makefile.depend* to get the machine value we subst for. 1054 10552016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 1056 1057 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 1058 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 1059 1060 * sys.mk: extract some bits to sys.{debug,vars}.mk 1061 for easier re-use by others. 1062 10632016-09-23 Simon Gerraty <sjg@sjg-mba13> 1064 1065 * lib.mk: Use ${PICO} for extension for PIC objects. 1066 default to .pico (like NetBSD) safe on case insensitive filesystem. 1067 10682016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 1069 1070 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 1071 10722016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 1073 1074 * install-mk (MK_VERSION): 20160815 1075 1076 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 1077 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 1078 10792016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1080 1081 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 1082 in meta mode we can ignore the mtime of makefiles 1083 10842016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1085 1086 * install-mk (MK_VERSION): 20160802 1087 1088 * lib.mk (libinstall): depends on beforinstall 1089 1090 * prog.mk (proginstall): depends on beforinstall 1091 patch from Lauri Tirkkonen 1092 1093 * dirdeps.mk (bootstrap): When bootstrapping; creat 1094 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 1095 .MAKE.DEPENDFILE_BOOTSTRAP_SED 1096 1097 * dirdeps.mk: move some comments to where they make sense. 1098 10992016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 1100 1101 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 1102 11032016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1104 1105 * install-mk (MK_VERSION): 20160602 1106 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 1107 do not apply :T to META_XTRAS 1108 patch from Bryan Drewery at FreeBSD.org. 1109 11102016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 1111 1112 * install-mk (MK_VERSION): 20160530 1113 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 1114 make it so. 1115 11162016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1117 1118 * install-mk (MK_VERSION): 20160512 1119 1120 * dpadd.mk: always include local.dpadd.mk if it exists 1121 remove some things that better belong in local.dpadd.mk 1122 skip INCLUDES_* for staged libs unless SRC_* defined. 1123 1124 * own.mk: add INCLUDEDIR 1125 11262016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1127 1128 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 1129 TARGET_MACHINE - :E will be empty or match part of path, use 1130 ${MACHINE} 1131 11322016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 1133 1134 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 1135 NO_FILEMON_COOKIE 1136 1137 * dirdeps.mk: move the logic that allows for 1138 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1139 inside the check for !target(_DIRDEP_USE) 1140 11412016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 1142 1143 * Use <> when including local*.mk and others which may exist 1144 elsewhere so that user can better control what they get. 1145 1146 * meta.autodep.mk (NO_FILEMON_COOKIE): 1147 create a cookie if we ever build dir with nofilemon 1148 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 1149 11502016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1151 1152 * install-mk (MK_VERSION): 20160401 1153 1154 * meta2deps.py: fix old print statement when debugging. 1155 1156 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 1157 patch from Bryan Drewery 1158 11592016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 1160 1161 * install-mk (MK_VERSION): 20160317 (St. Pats) 1162 1163 * warnings.mk: g++ does not like -Wimplicit 1164 1165 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 1166 pelthora of common suffixes for C++ 1167 1168 * lib.mk: use .So for shared objects 1169 11702016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1171 1172 * install-mk (MK_VERSION): 20160315 1173 1174 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 1175 normally only applies to scripts. 1176 1177 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 1178 well as outside it. 1179 11802016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1181 1182 * install-mk (MK_VERSION): 20160310 1183 1184 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 1185 we have processed; the list gets very inefficient as number of 1186 DIRDEPS gets large. 1187 1188 * sys.dependfile.mk: fix comment wrt MACHINE 1189 1190 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 1191 patch from Bryan Drewery 1192 11932016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 1194 1195 * meta2deps.sh: don't ignore subdirs. 1196 patch from Bryan Drewery 1197 11982016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1199 1200 * install-mk (MK_VERSION): 20160226 1201 1202 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 1203 12042016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 1205 1206 * dirdeps.mk: we shouldn't normally include .depend but if we do 1207 use .dinclude if we can. 1208 12092016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1210 1211 * install-mk (MK_VERSION): 20160218 1212 * sys.clean-env.mk: with recent change to Var_Subst() 1213 we cannot use the '$$' trick, but .export-literal does the job 1214 we need. 1215 * auto.dep.mk: make use .dinclude if we can. 1216 1217 12182016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 1219 1220 * dirdeps.mk: 1221 Add _build_all_dirs such that local.dirdeps.mk can 1222 add fully qualified dirs to it. 1223 These will be built normally but the current 1224 DEP_RELDIR will not depend on then (to avoid cycles). 1225 This makes it easy to hook things like unit-tests into build. 1226 1227 12282016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 1229 1230 * dirdeps.mk: add bootstrap-empty 1231 12322015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1233 1234 * install-mk (MK_VERSION): 20151212 1235 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 1236 only apply :tA to __objdir when comparing to .OBJDIR 1237 12382015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 1239 1240 * install-mk (MK_VERSION): 20151111 1241 1242 * meta.sys.mk: include sys.dependfile.mk 1243 1244 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 1245 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 1246 include local.sys.env.mk early 1247 include local.sys.mk later 1248 1249 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 1250 12512015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1252 1253 * meta.sys.mk (META_COOKIE_TOUCH): 1254 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 1255 1256 * meta.stage.mk: stage_libs should ignore SYMLINKS. 1257 12582015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 1259 1260 * install-mk (MK_VERSION): 20151022 1261 1262 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 1263 12642015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 1265 1266 * install-mk (MK_VERSION): 20151020 1267 1268 * dirdeps.mk: Add logic for 1269 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1270 12712015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 1272 1273 * install-mk (MK_VERSION): 20151010 1274 12752015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 1276 1277 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 1278 to have stage_lins run last in non-jobs mode. 1279 Use .ORDER only for jobs mode. 1280 12812015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 1282 1283 * rst2htm.mk: allow for per target flags etc. 1284 12852015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1286 1287 * install-mk (MK_VERSION): 20150901 1288 1289 * doc.mk: create dir if needed use DOC_INSTALL_OWN 1290 12912015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 1292 1293 * install-mk (MK_VERSION): 20150615 1294 1295 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 1296 Follow make's normal precedence rules. 1297 1298 * gendirdeps.mk: allow customization of the header. 1299 eg. for FreeBSD: 1300 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 1301 1302 * meta.autodep.mk: ignore dirdeps.cache* 1303 1304 * meta.stage.mk: when bootstrapping options it can be handy to 1305 throw warnings rather than errors for staging conflicts. 1306 1307 * meta.sys.mk: include local.meta.sys.mk for customization 1308 13092015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1310 1311 * install-mk (MK_VERSION): 20150606 1312 1313 * dirdeps.mk: don't rely on manually maintained Makefile.depend 1314 to set DEP_RELDIR and reset DIRDEPS. 1315 By setting DEP_RELDIR ourselves we can skip :tA 1316 1317 * gendirdeps.mk: skip setting DEP_RELDIR. 1318 13192015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 1320 1321 * dirdeps.mk: avoid wildcards like make(bootstrap*) 1322 13232015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 1324 1325 * install-mk (MK_VERSION): 20150520 1326 1327 * dirdeps.mk: when we are building dirdeps cache file we *want* 1328 meta_oodate to look at all the Makefile.depend files, so 1329 set .MAKE.DEPENDFILE to something that won't match. 1330 1331 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 1332 so first use absolute path as key. 1333 Also skip staging at level 0. 1334 13352015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 1336 1337 * install-mk (MK_VERSION): 20150430 1338 1339 * dirdeps.mk: fix _count_dirdeps for non-cache case. 1340 13412015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 1342 1343 * install-mk (MK_VERSION): 20150411 1344 bump version 1345 1346 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 1347 it is here mainly for documentation purposes, since 1348 if using auto.obj.mk it is better done via sys.mk 1349 13502015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1351 1352 * install-mk (MK_VERSION): 20150401 1353 1354 * meta2deps.sh: support @list 1355 1356 * meta2deps.py: updates from Juniper 1357 o add EXCLUDES 1358 o skip bogus input files. 1359 o treat 'M' and 'L' as both an 'R' and a 'W' 1360 13612015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1362 1363 * install-mk (MK_VERSION): 20150303 1364 1365 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 1366 which is built via sub-make so we have a .meta file to tell if 1367 it is out-of-date. 1368 The dirdeps-cache contains the same dependency rules that we 1369 normaly construct on the fly. 1370 This adds a few seconds overhead when the cache is out of date, 1371 but for a large target, the savings can be significant (10-20min). 1372 13732014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1374 1375 * install-mk (MK_VERSION): 20141118 1376 1377 * meta.stage.mk: add stale_staged 1378 1379 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 1380 only useful under very rare conditions such as 1381 FreeBSD's make universe. 1382 1383 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 1384 13852014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1386 1387 * install-mk (MK_VERSION): 20141111 1388 1389 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 1390 13912014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 1392 1393 * FILES: include mkopt.sh which allows handling options in shell 1394 scripts in a manner compatible with options.mk 1395 13962014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1397 1398 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 1399 for GENDIRDEPS_FILTER to avoid surprises. 1400 14012014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1402 1403 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 1404 the time it is applied to __depdirs they have. 1405 1406 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 1407 expects patterns like *.${MACHINE} 1408 1409 * cython.mk (pyprefix?): use pyprefix to find python bits 1410 since prefix might be something else (where we install our 1411 stuff) 1412 14132014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 1414 1415 * install-mk (MK_VERSION): 20140911 1416 1417 * dirdeps.mk: add bootstrap target to simplify adding support for 1418 new MACHINE. 1419 14202014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1421 1422 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 1423 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 1424 Makefile.depend files. 1425 14262014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 1427 1428 * install-mk (MK_VERSION): 20140828 1429 1430 * cython.mk: capture logic for building python extension modules 1431 with Cython. 1432 14332014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1434 1435 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 1436 14372014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1438 1439 * install-mk (MK_VERSION): 20140801 1440 1441 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 1442 identify the autodep.mk variant. 1443 1444 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 1445 initial value does not match .MAKE.DEPENDFILE_PREFIX 1446 1447 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 1448 14492014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 1450 1451 * install-mk (MK_VERSION): 20140522 1452 1453 * lib.mk: use CC to link shlib for linux too 1454 patch from Brendan MacDonell 1455 14562014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1457 1458 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 1459 if WITH_META_STATS is defined. 1460 14612014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1462 1463 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 1464 to supress dirdeps outside of .CURDIR. 1465 14662014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1467 1468 * Fix spelling errors - patch from Pedro Giffuni 1469 14702014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 1471 1472 * install-mk (MK_VERSION): 20140314 1473 1474 * dirdeps.mk (beforedirdeps): a handy hook 1475 1476 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 1477 to visit leaf dirs to be intercepted (eg. for distributed 1478 build). 1479 1480 * dirdeps.mk (__depdirs): ensure // don't sneak in 1481 1482 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 1483 1484 14852014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 1486 1487 * rst2htm.mk (RST2PDF): add support for rst2pdf 1488 14892014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1490 1491 * install-mk (MK_VERSION): bump version 1492 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 1493 available. 1494 14952014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1496 1497 * options.mk: avoid :U so this isn't bmake dependent 1498 14992014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 1500 1501 * options.mk: cleanup and simplify semanitcs 1502 NO_* dominates all, if both WITH_* and WITHOUT_* 1503 are defined then result is DOMINATE_* which defaults to "no". 1504 Ie. WITHOUT_ normally wins. 1505 15062013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1507 1508 * install-mk (MK_VERSION): bump version 1509 * meta2deps.py: convert to print function for python3 compat. 1510 we also need to open files with mode 'r' rather than 'rb' 1511 otherwise we get bytes instead of strings. 1512 15132013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1514 1515 * install-mk (MK_VERSION): bump version 1516 1517 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 1518 apply the same filtering (M_dep_qual_fixes) when setting _machines 1519 as _build_dirs. 1520 Also fix the filtering of Makefile.depend files - for reporting 1521 what we are looking for (M_dep_qual_fixes can get confused by 1522 Makefile.depend) 1523 Add some more debug info. 1524 15252013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 1526 1527 * gendirdeps.mk (_objtops): fix typo also 1528 while processing M2D_OBJROOTS to gather qualdir_list 1529 qualify $ql with loop iterator to ensure correct results. 1530 15312013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1532 1533 * install-mk (MK_VERSION): 20130801 1534 * libs.mk: update to match progs.mk 1535 15362013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 1537 1538 * install-mk (MK_VERSION): 20130726 1539 some updates from Juniper and FreeBSD 1540 o meta2deps.py: indicate file and line number when we hit parse 1541 errors 1542 also allow @file to provide huge list of .meta files. 1543 * meta2deps.py: add try_parse() to cleanup the above. 1544 15452013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 1546 1547 * install-mk (MK_VERSION): 20130716 1548 * own.mk: add GPROG as an option 1549 * prog.mk: honor MK_GPROF==yes 1550 15512013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1552 1553 * install-mk (MK_VERSION): 20130505 1554 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 1555 for when $MACHINE isn't enough for objdir distinction. 1556 Bring meta2deps.sh closer to par with meta2deps.py. 1557 15582013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1559 1560 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 1561 also if the target 'beforeinstall' exists, make it depend on 1562 .dirdep (incase it uses STAGE_INSTALL). 1563 15642013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1565 1566 * install-mk (MK_VERSION): 20130401 ;-) 1567 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 1568 wrapper around install(1). 1569 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 1570 15712013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1572 1573 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 1574 * install-mk (MK_VERSION): bump version 1575 15762013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 1577 1578 * install-mk (MK_VERSION): bump version 1579 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 1580 any trailing /., rather apply :tA only when needed. 1581 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 1582 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 1583 consistently. 1584 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 1585 15862013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1587 1588 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 1589 it is simpler to just not update when say building for "host" 1590 (where we know we apply filters to DIRDEPS), and using a 1591 non-machine qualified dependfile. 1592 15932013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1594 1595 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 1596 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 1597 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 1598 * meta2deps.py: if machine is "host", then also trim 1599 self.host_target from any OBJROOTS. 1600 1601 16022013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1603 1604 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 1605 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 1606 but _DEPENDFILE does not, compare the new _DEPENDFILE against 1607 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 1608 16092013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 1610 1611 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 1612 and hook to all: via staging: 1613 16142013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1615 1616 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 1617 use a separate variable for the default .MAKE.DEPENDFILE value 1618 so that it can be controlled independently of 1619 .MAKE.DEPENDFILE_PREFERENCE 1620 1621 * meta.stage.mk: throw error if cp fails etc. 1622 Stage*() return early if passed no args. 1623 .ORDER stage_* 1624 16252013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1626 1627 * install-mk (MK_VERSION): bump version 1628 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 1629 16302013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1631 1632 * install-mk (MK_VERSION): bump version to 20130210 1633 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 1634 from Juniper. 1635 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 1636 than just MACHINE. 1637 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 1638 16392013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 1640 1641 * install-mk (MK_VERSION): bump version to 20130123 1642 * meta.stage.mk: add stage_links (hard links). 1643 if doing hard links, we add dest to link as well. 1644 Default the stage dir for [sym]links to STAGE_OBJTOP since 1645 these are typically specified as absolute paths. 1646 Add -m "mode" flag to StageFiles and StageAs. 1647 16482012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1649 1650 * install-mk (MK_VERSION): bump version to 20121111 1651 * autoconf.mk: avoid meta mode seeing changed commands for config.status 1652 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 1653 in case we were found via .../mk 1654 * sys.clean-env.mk: move it from examples, we and others use it 1655 "as is". 1656 * FILES: add srctop.mk and options.mk 1657 * own.mk: convert to using options.mk 1658 which is modeled after FreeBSD's handling of MK_* 1659 but more flexible. 1660 This allows MK_* for boolean knobs to not be confused 1661 with MK* which can be commands. 1662 1663 * examples/sys.clean-env.mk: add WITH[OUT]_ to 1664 MAKE_ENV_SAVE_PREFIX_LIST. 1665 Mention that HOME=/var/empty might be a good idea. 1666 16672012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 1668 1669 * sys.dependfile.mk: if not depend file exists, $MACHINE 1670 specific ones are supported but not the default, 1671 check if any exist and follow suit. 1672 16732012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 1674 1675 * install-mk (MK_VERSION): bump version to 20121106 1676 16772012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1678 1679 * import latest dirdeps.mk and meta2deps.py from Juniper. 1680 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 1681 also add PROGS_TARGETS and pass on PROG_CXX if it seems 1682 appropriate. 1683 16842012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 1685 1686 * meta.stage.mk: update CLEANFILES 1687 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 1688 * progs.mk: Add LDADD to PROG_VARS 1689 16902012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1691 1692 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 1693 _STAGED_DIRS so that these can be turned into filters for 1694 GENDIRDEPS_FILTER. 1695 16962012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1697 1698 * install-mk (MK_VERSION): bump version to 20121010 1699 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 1700 target.dirdep matches .dirdep 1701 17022012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1703 1704 * install-mk (MK_VERSION): bump version to 20120808 1705 * import latest meta2deps.py from Juniper. 1706 17072012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1708 1709 * install-mk (MK_VERSION): bump version to 20120711 1710 * dep.mk: add explicit dependencies on SRCS after applying 1711 SRCS_DEP_FILTER 1712 * meta.autodep.mk: add explicit dependencies on SRCS after 1713 applying SRCS_DEP_FILTER 1714 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 1715 17162012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 1717 1718 * install-mk (MK_VERSION): bump version to 20120626 1719 * meta.sys.mk: ignore PYTHON if it does not exist 1720 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 1721 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 1722 entries ending in .${MACHINE} to decide if qualified _dirdep is 1723 needed. 1724 * gendirdeps.mk: only produce unqualified deps if no 1725 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 1726 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 1727 17282012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1729 1730 * install-mk (MK_VERSION): bump version to 20120420 1731 * add sys.dependfile.mk so we can experiment with 1732 .MAKE.DEPENDFILE_PREFERENCE 1733 * meta.autodep.mk: _DEPENDFILE is precious! 1734 17352012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1736 1737 * install-mk (MK_VERSION): bump version to 20120315 1738 * install-new.mk: avoid being interrupted 1739 17402012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1741 1742 * man.mk: MAN might have multiple values so be careful with exists(). 1743 17442012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 1745 1746 * install-mk (MK_VERSION): bump version to 20120112 1747 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 1748 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 1749 17502011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 1751 1752 * install-mk (MK_VERSION): bump version to 20111201 1753 * import dirdeps.mk from Juniper sjg@ 1754 o more consistent handling of DEP_MACHINE, especially when 1755 dealing with an odd Makefile.depend, when normally using 1756 Makefile.depend.${MACHINE} 1757 17582011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 1759 1760 * install-mk (MK_VERSION): bump version to 20111122 1761 * meta.autodep.mk: add some debug output, be more crisp about 1762 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 1763 17642011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1765 1766 * install-mk (MK_VERSION): bump version to 20111111 1767 it's too cool to miss 1768 * import meta* updates from Juniper sjg@ 1769 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 1770 normally using Makefile.depend.${MACHINE}), handy for 1771 read-only manually maintained dependencies. 1772 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 1773 o gendirdeps.mk if ERROR: from meta2deps.py do not update 1774 anything. 1775 17762011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 1777 1778 * install-new.mk separate the cmp and copy logic to its own function. 1779 17802011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1781 1782 * install-mk (MK_VERSION): bump version to 20111028 1783 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 1784 * subdir.mk: ensure _SUBDIRUSE is provided 1785 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 1786 * meta.subdir.mk: always allow for Makefile.depend 1787 17882011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1789 1790 * install-mk (MK_VERSION): bump version to 20111010 1791 o minor tweak to *dirdeps.mk from Juniper sjg@ 1792 17932011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1794 1795 * install-mk (MK_VERSION): bump version to 20111001 1796 o add meta2deps.py from Juniper sjg@ 1797 o tweak gendirdeps.mk to work with meta2deps.py when not 1798 cross-building 1799 * autoconf.mk: add autoconf-input as a hook for regenerating 1800 AUTOCONF_INPUTS (configure). 1801 18022011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 1803 1804 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 1805 trigger for updating Makefile.depend* 1806 18072011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1808 1809 * install-mk (MK_VERSION): bump version to 20110808 1810 * obj.mk: minor cleanup 1811 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 1812 18132011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1814 1815 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 1816 specified dir. 1817 18182011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 1819 1820 * meta.autodep.mk: if XMAKE_META_FILE is set 1821 the makefile uses a foreign make, and so dependencies 1822 can only be gathered from a clean tree build. 1823 18242011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 1825 1826 * install-mk (MK_VERSION): bump version to 20110622 1827 * meta.autodep.mk: improve bootstraping 1828 18292011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1830 1831 * yacc.mk: handle the corner case of .c being removed 1832 while .h remains. 1833 18342011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1835 1836 * yacc.mk: do .y.h and .y.c separately 1837 18382011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1839 1840 * install-mk (MK_VERSION): bump version to 20110606 1841 * don't store SRC_DIRDEPS in Makefile.depend* by default 1842 not everyone needs it. 1843 18442011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1845 1846 * install-mk (MK_VERSION): bump version to 20110505 1847 first release including meta mode makefiles 1848 18492011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1850 1851 * meta.stage.mk: add STAGE_AS_SETS and stage_as 1852 for things that need to be staged with different names. 1853 18542011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1855 1856 * meta.stage.mk: add notion of STAGE_SETS 1857 so a makefile can stage to multiple dirs 1858 18592011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 1860 1861 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 1862 on target name. 1863 18642011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1865 1866 * install-mk (MK_VERSION): bump version to 20110330 1867 18682011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 1869 1870 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 1871 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 1872 * sys.mk: re-define M_whence in terms of M_type. 1873 M_type is useful for checking if something is a builtin. 1874 18752011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1876 1877 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 1878 stage_libs 1879 18802011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1881 1882 * dirdeps.mk: correct value for _depdir_files depends on 1883 .MAKE.DEPENDFILE 1884 Add our copyright - just to make it clear we have frobbed this 1885 quite a bit. 1886 DEP_MACHINE needs to be set to MACHINE each time, if using only 1887 Makefile.depend (cf. Makefile.depend.${MACHINE}) 1888 1889 * meta.stage.mk: meta mode version of staging 1890 1891 * init.mk, final.mk: include local.*.mk to simplify customization 1892 18932011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1894 1895 * auto.obj.mk: just because we are doing mk destroy, we should 1896 still set .OBJDIR correctly if it exists. 1897 1898 * install-mk (mksrc): do not exclude meta.sys.mk 1899 19002011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1901 1902 * host-target.mk: set/export _HOST_ARCH etc separately, 1903 catch junk resulting from uname -p, so we can find sys/Linux.mk 1904 correctly. 1905 19062011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1907 1908 * meta.sys.mk: throw an error if /dev/filemon is missing and we 1909 expected to be updating Makefile.depend* 1910 19112011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1912 1913 * install-mk (MK_VERSION): bump version to 20110214 1914 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 1915 19162010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 1917 1918 * meta.sys.mk: not valid for older bmake 1919 19202010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 1921 1922 * install-mk (MK_VERSION): bump version to 20100919 1923 include dirdeps.mk et al from Juniper Networks, 1924 for meta mode - requires filemon(9). 1925 * sys.mk, subdir.mk: Add hooks for meta mode. 1926 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 1927 to make turning it on/off simple. 1928 19292010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 1930 1931 * install-mk (MK_VERSION): bump version to 20100616 1932 * fix typo in sys.mk 1933 19342010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 1935 1936 * install-mk (MK_VERSION): bump version to 20100612 1937 * lib.mk: remove duplicate addition to SOBJS 1938 19392010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 1940 1941 * sys.mk: Add a means of selectively turning on debug flags. 1942 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 1943 will act as if we did make -dv if .CURDIR ends in lib/sjg 1944 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 1945 the start of sys.mk rather than the end. 1946 This only makes sense for leaf dirs, so we check that 1947 .MAKE.LEVEL > 0 1948 19492010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 1950 1951 * install-mk (MK_VERSION): bump version to 20100608 1952 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 1953 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 1954 also make it easier for folk to tweak 1955 19562010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 1957 1958 * install-mk (MK_VERSION): bump version to 20100606 1959 do not install examples/* 1960 * FILES: add examples/sys.clean-env.mk 1961 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 1962 this requires bmake-20100606 or later to work. 1963 19642010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 1965 1966 * sys.mk (M_tA): better simulate the result of :tA if not available. 1967 19682010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1969 1970 * sys.mk: canonicalize MAKE_VERSION 1971 old versions reported bmake-<src-date> build-<build-date> 1972 whereas we only care about <src-date> 1973 19742010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 1975 1976 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 1977 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 1978 is !empty 1979 19802010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 1981 1982 * dpadd.mk: use LDADD_* if defined. 1983 19842010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1985 1986 * install-mk (MK_VERSION): bump version to 20100420 1987 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 1988 * autoconf.mk allow AUTO_AUTOCONF 1989 19902010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 1991 1992 * obj.mk: add objwarn to keep freebsd makefiles happy 1993 * auto.obj.mk: ensure Mkdirs is available. 1994 * FILES: add auto.dep.mk - a simpler version of autodep.mk 1995 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 1996 asked to do that. 1997 fix/simplify the tests for when to run mkdep. 1998 * auto.dep.mk: add some explanation of how/what we do. 1999 * autodep.mk: skip the .OPTIONAL frobbing of .depend 2000 bmake's FROM_DEPEND flag makes it redundant. 2001 20022010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2003 2004 * install-mk (MK_VERSION): bump version to 20100404 2005 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 2006 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 2007 Also create a target _SUBDIRUSE so that we can be used without 2008 subdir.mk 2009 20102010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 2011 2012 * dep.mk: use <> when .including so can override. 2013 20142010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 2015 2016 * lib.mk (SHLIB_LINKS): ensure a string comparison. 2017 20182010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 2019 2020 * install-mk (MK_VERSION): bump version to 20100102 2021 * own.mk: ensure PRINTOBJDIR works 2022 * autoconf.mk: pass on CONFIGURE_ARGS 2023 * init.mk: handle COPTS.${.IMPSRC:T} etc. 2024 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 2025 fix handling of symlinks for darwin 2026 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 2027 * man.mk: suppress chown when not root. 2028 * rst2htm.mk: allow srcs from multiple locations. 2029 * sys.mk: M_whence, stop after 1st line of output. 2030 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 2031 * sys/SunOS.mk: we need to export PATH 2032 20332009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 2034 2035 * install-mk (MK_VERSION): bump version 2036 include rst2htm.mk 2037 20382009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 2039 2040 * sys.mk,libnames.mk add .-include <local.*> 2041 this allows local customization without the need to edit the 2042 distributed files. 2043 20442009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 2045 2046 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 2047 older versions already installed. 2048 20492009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 2050 2051 * stage.mk (.stage-install): generalize lib.mk's .libinstall 2052 * rules.mk rules for generic Makefile. 2053 * inc.mk install for includes. 2054 20552009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 2056 2057 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 2058 this, so provide it if using native make. 2059 20602009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 2061 2062 * FILES: move all the platform *.sys.mk files to sys/*.mk 2063 * Rename Generic.sys.mk to sys.mk - we always want it. 2064 20652009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 2066 2067 * install-mk (MK_VERSION): bump version 2068 * host-target.mk: only export the expensive stuff 2069 * Generic.sys.mk (sys_mk): for SunOS we need to look for 2070 ${HOST_OS}.${HOST_OSMAJOR} too! 2071 20722009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 2073 2074 * install-mk (MK_VERSION): bump version 2075 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 2076 based on patch from Greg Olszewski. 2077 * Generic.sys.mk: if we have nothing to work with 2078 set LORDER etc only if we can find it. 2079 20802009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 2081 2082 * install-mk (MK_VERSION): bump version 2083 * man.mk: cleanman: remove CLEANMAN if defined. 2084 20852009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 2086 2087 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 2088 20892009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 2090 2091 * install-mk (MK_VERSION): bump version 2092 include auto.obj.mk 2093 2094 20952009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 2096 2097 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 2098 20992008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 2100 2101 * install-mk (MK_VERSION): bump version 2102 man.mk: ensure we generate *.cat1 etc in . 2103 21042008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 2105 2106 * install-mk (MK_VERSION): bump version 2107 add prlist.mk 2108 21092007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 2110 2111 * Generic.sys.mk: Allow os specific sys.mk to be in a 2112 subdir of ${.PARSEDIR} 2113 21142007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 2115 2116 * install-mk (MK_VERSION): bump version 2117 * general cleanup 2118 * dpadd.mk introduce DPMAGIC_LIBS_* 2119 21202007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 2121 2122 * install-mk (MK_VERSION): bump version 2123 2124 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 2125 depend files and ensure clean is called for each lib/prog. 2126 21272007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 2128 2129 * autodep.mk (.depend): delete lines that do not start with 2130 space and do not contain ':' 2131 21322007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 2133 2134 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 2135 so make sure the transform for .OPTIONAL copes. 2136 21372007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2138 2139 * install-mk (MK_VERSION): bump version 2140 2141 * own.mk: make sure RM and LN are defined. 2142 2143 * obj.mk: fix a typo, and objlink target. 2144 21452006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 2146 2147 * install-mk (MK_VERSION): bump version 2148 * added libs.mk - analogous to progs.mk 2149 make both of them always inlcude {lib,prog}.mk 2150 21512006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 2152 2153 * progs.mk: add a means of building multiple apps in one dir. 2154 21552006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 2156 2157 * install-mk (MK_VERSION): bump version to 20061126 2158 2159 * warnings.mk: detect invalid WARNINGS_SET 2160 2161 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 2162 specific warnings. 2163 2164 * For .cc sources, turn off warnings that g++ vomits on. 2165 21662006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 2167 2168 * own.mk: if __initialized__ target doesn't exist and we are 2169 FreeBSD we got here directly from sys.mk 2170 21712006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 2172 2173 * install-mk (MK_VERSION): bump version to 20061106 2174 add scripts.mk 2175 21762006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 2177 2178 * install-mk (MK_VERSION): bump version to 20060318 2179 2180 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 2181 21822006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 2183 2184 * install-mk (MK_VERSION): bump version to 20060302 2185 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 2186 21872006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 2188 2189 * install-mk (MK_VERSION): bump version to 20060301 2190 * autodep.mk (.depend): 2191 if MAKE_VERSION is newer than 20050530 we can make .END depend on 2192 .depend and make .depend depend on __depsrcs that exist. 2193 * dpadd.mk: add SRC_PATHADD 2194 21952005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2196 2197 * install-mk (MK_VERSION): bump version to 20051104 2198 * prog.mk: remove all the LIBC?= junk, use 2199 .-include libnames.mk instead (none by default). 2200 also if USE_DPADD_MK is set, include that. 2201 22022005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2203 2204 * install-mk (MK_VERSION): bump version to 20051001 2205 Add UnixWare.sys.mk from Klaus Heinz. 2206 22072005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 2208 2209 * install-mk: always install *.sys.mk and if need be symlink one 2210 to sys.mk 2211 22122005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 2213 2214 * subdir.mk, own.mk: use .MAKE rather than MAKE 2215 22162004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2217 2218 * own.mk: don't use NetBSD's _SRC_TOP_ it can 2219 cause confusion. Also don't take just 'mk' as a 2220 srctop indicator. 2221 22222004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 2223 2224 * warnings.mk: overhauled, now very powerful. 2225 22262004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2227 2228 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 2229 22302004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 2231 2232 * install-mk (MK_VERSION): bump version to 20040201 2233 * extract HOST_TARGET stuff to host-target.mk so own.mk and 2234 Generic.sys.mk can share. 2235 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 2236 22372003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 2238 2239 * install-mk (MK_VERSION): 20030930 2240 * rename generic.sys.mk to Generic.sys.mk 2241 so that it does not get installed (unless being used as sys.mk) 2242 * set OS and ROOT_GROUP for those that we know the value. 2243 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 2244 we don't do it again for each sub-make. 2245 22462003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 2247 2248 * install-mk (MK_VERSION): 20030928 2249 Add some extra *.sys.mk from bootstrap-pkgsrc 2250 some of these likely still need work. 2251 Make everything default to root:wheel ownership, 2252 sys.mk can set ROOT_GROUP accordingly. 2253 22542003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 2255 2256 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 2257 not the portable ones. 2258 22592003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 2260 2261 * install-mk: add ability to use cp -f when updating 2262 destination .mk files. Also now possible to play games with 2263 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 2264 into dest - not recommended unless you seriously want to. 2265 22662003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 2267 2268 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 2269 for semi-compatability with NetBSD. 2270 22712003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 2272 2273 * install-mk: add a version indicator 2274 22752003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 2276 2277 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 2278 2279 * install-mk: Allow FORCE_SYS_MK to come from env 2280 2281 2282 2283