12026-05-09 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * gendirdeps.mk: also apply ':S,/$,,' and ':C,/(\.[^.]*)$,\1,' 4 when setting DIRDEPS prior to saving. 5 6 * dirdeps.mk: when debugging it is handy to be able to skip 7 recursing so if DEBUG_DIRDEPS contains 'norecurse' we will only 8 process the immediate DIRDEPS. 9 Also if DEBUG_DIRDEPS contains '-V' we process sections normally 10 skipped when doing 'make -V'. 11 o ensure we do not get duplicate build dirs due to someone 12 adding a trailing '/' or '/.${TARGET_SPEC}' to a DIRDEPS entry. 13 Add ':S,/$,,' when setting '__depdirs' and 14 add ':C,/(\.[^.]*)$,\1,' when setting '__qual_depdirs'. 15 162026-04-24 Simon J Gerraty <sjg@beast.crufty.net> 17 18 * install-mk (MK_VERSION): 20260424 19 20 * Use MK_META_AUTODEP to control use of meta.autodep.mk 21 so it can be used independently of MK_DIRDEPS_BUILD for 22 bootstrapping. 23 24 * sys.vars.mk (M_type): use :sh rather than :sh1 to avoid 25 surprises in a .for loop. 26 272026-03-12 Simon J Gerraty <sjg@beast.crufty.net> 28 29 * install-mk (MK_VERSION): 20260313 30 31 * sys.vars.mk: use .MAKE.VERSION 32 M_type can simply use '$x' 33 342026-02-22 Simon J Gerraty <sjg@beast.crufty.net> 35 36 * install-mk (MK_VERSION): 20260222 37 38 * dirdeps.mk, sys.mk: add dependent option 39 UPDATE_DIRDEPS_CACHE/DIRDEPS_CACHE. 40 It can be useful to use -DWITHOUT_UPDATE_DIRDEPS_CACHE to 41 temporarily treat dynamic DIRDEPS_CACHE as static. 42 432026-01-10 Simon J Gerraty <sjg@beast.crufty.net> 44 45 * meta.autodep.mk (${_DEPENDFILE}): add .NOMETA 46 472026-01-08 Simon J Gerraty <sjg@beast.crufty.net> 48 49 * rust.mk: better accommodation for RUST_LIBS. 50 Set RUST_{LIBS,PROGS}_CARGO_BUILD_OUTPUT_LIST to 51 simplify staging. 52 532025-12-08 Simon J Gerraty <sjg@beast.crufty.net> 54 55 * install-mk (MK_VERSION): 20251207 56 57 * sys.vars.mk: replace MAKE_POSIX_SHELL usage with isPOSIX_SHELL 58 Using ${isPOSIX_SHELL:U:Nfalse} provides a boolean for make 59 and ${isPOSIX_SHELL:Ufalse} does the same for target scripts. 60 Both will be false if isPOSIX_SHELL is not set or set to false. 61 62 This has the advantage that if only POSIX shells are expected 63 sys.mk (or something it includes) can simply do isPOSIX_SHELL?=: 64 652025-11-18 Simon J Gerraty <sjg@beast.crufty.net> 66 67 * sys.vars.mk: set MAKE_POSIX_SHELL to 1 if .SHELL is POSIX, 0 if not. 68 set isPOSIX_SHELL for use in target scripts. 69 70 * meta.stage.mk: set MAKE_POSIX_SHELL if needed. 71 72 * install-new.mk: use ${isPOSIX_SHELL:Ufalse} to see if we can 73 avoid running 'expr'. 74 75 * install-new.mk: Allow use of cp or mv - controlled by CPMV_OP 76 (default mv). 77 782025-11-13 Simon J Gerraty <sjg@beast.crufty.net> 79 80 * sys.vars.mk: add M_sh1 so we can handle older bmake that does 81 not support :sh1 82 832025-11-11 Simon J Gerraty <sjg@beast.crufty.net> 84 85 * install-mk (MK_VERSION): 20251111 86 87 * meta2deps.sh: reset some vars for each new meta file 88 set meta_file to path of meta file. 89 If meta2deps appears in DEBUG_SH set -x. 90 912025-09-16 Simon J Gerraty <sjg@beast.crufty.net> 92 93 * options.mk: Add OPTIONS_DEFAULT_DEPENDENT_REQUIRED of the form 94 OPTION/REQUIRED[/VALUE] 95 if OPTION is $VALUE (default is "yes"), then REQUIRED must be too. 96 We add OPTIONS_DEFAULT_DEPENDENT_REQUIRED (sans any /{yes,no}) to 97 OPTIONS_DEFAULT_DEPENDENT so DEPENDENT/REQUIRED follow the same 98 processing. 99 100 Also add OPTIONS_FORCED_VALUES of the form OPTION/{yes,no} 101 we add any OPTIONS_FORCED_NO and OPTIONS_FORCED_YES before 102 processing. 103 104 Simplify the processing of OPTIONS_DEFAULT_VALUES and 105 OPTIONS_DEFAULT_DEPENDENT by splitting the tuples and use two 106 iterator variables in the .for loops. 107 1082025-08-09 Simon J Gerraty <sjg@beast.crufty.net> 109 110 * install-mk (MK_VERSION): 20250808 111 112 * replace sjg license with just BSD-2-Clause SPDX tag 113 1142025-07-24 Simon J Gerraty <sjg@beast.crufty.net> 115 116 * install-mk (MK_VERSION): 20250724 117 118 * meta2deps: Allow X record to have 3 or 4 args. 119 V4 filemon on Linux produces 3 120 V5 filemon on FreeBSD produces 4 121 1222025-07-22 Simon J Gerraty <sjg@beast.crufty.net> 123 124 * install-mk (MK_VERSION): 20250721 125 126 * meta2deps.{py,sh}: detect corrupted filemon output (an issue on 127 Linux) by checking each record type has the correct number of 128 words. Throw an error if necessary so that gendirdeps.mk will not 129 update Makefile.depend 130 1312025-07-04 Simon J Gerraty <sjg@beast.crufty.net> 132 133 * prog.mk: .MADE is a special source not a target! 134 1352025-05-28 Simon J Gerraty <sjg@beast.crufty.net> 136 137 * install-mk (MK_VERSION): 20250528 138 139 * add dirdeps2dplibs.mk 140 1412025-05-18 Simon J Gerraty <sjg@beast.crufty.net> 142 143 * install-mk (MK_VERSION): 20250518 144 145 * meta.autodep.mk (META_FILES): re-work to fix filtering. 146 if OPTIMIZE_OBJECT_META_FILES==yes 147 provide a default META_FILE_OBJ_FILTER that selects a valid 148 .SUFFIX to match *o.meta, there's no guarantee that it will be as 149 simple as .o or .So etc. 150 We have to defer evaluation until the target script is run 151 for any of these filters to have any effect. 152 Use :S,${.OBJDIR}/,, rather than :T incase there are objects 153 in sub-dirs. 154 155 * lib.mk: leverage ${.SUFFIXES} when setting dependencies. 156 157 * add UPDATE_DEPENDFILE as a dependent option - follows 158 DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for 159 UPDATE_DEPENDFILE when we think it should be yes. 160 This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE 161 without overriding UPDATE_DEPENDFILE directly - which can lead to 162 trouble. 163 1642025-05-16 Simon J Gerraty <sjg@beast.crufty.net> 165 166 * install-mk (MK_VERSION): 20250515 167 168 * meta2deps.py: resolve the target of a Move or Link first 169 and track the last path resolved, then if the src is a relative 170 path we can easily use that last path to resolve the src correctly. 171 172 * meta2deps.sh: for a Move or Link add the dir of target path to 173 the list used to resolve the src path. 174 1752025-04-18 Simon J Gerraty <sjg@beast.crufty.net> 176 177 * init.mk: include Skipping ${RELDIR} when _SKIP_BUILD is not empty. 178 1792025-04-14 Simon J Gerraty <sjg@beast.crufty.net> 180 181 * install-mk (MK_VERSION): 20250414 182 183 * init.mk: check ONLY_*_LIST and NOT_*_LIST for SKIP_BUILD_VAR_LIST 184 to set _SKIP_BUILD 185 186 * genfiles.mk: add FILTER support 187 188 * rst2htm.mk: latest docutils drops .py extensions 189 1902025-03-26 Simon J Gerraty <sjg@beast.crufty.net> 191 192 * install-mk (MK_VERSION): 20250326 193 194 * auto.obj.mk: fix and simplify handling of relative __objdir, 195 convert it to absolute before checking against .OBJDIR 196 1972025-03-14 Simon J Gerraty <sjg@beast.crufty.net> 198 199 * install-mk (MK_VERSION): 20250314 200 201 * meta.stage.mk: StageFiles --subdir: preserve the dir part of 202 each file under $dest 203 2042025-03-12 Simon J Gerraty <sjg@beast.crufty.net> 205 206 * meta.autodep.mk: do a better job of handling MAKESYSPATH in 207 GENDIRDEPS_ENV. If we have MAKE_VERSION >= 20230123 we can just 208 use .SYSPATH, otherwise it is a bit more complicated. 209 2102025-01-10 Simon J Gerraty <sjg@beast.crufty.net> 211 212 * rust.mk: use RUST_LIBS and RUST_PROGS 213 2142025-01-01 Simon J Gerraty <sjg@beast.crufty.net> 215 216 * install-mk (MK_VERSION): 20250101 217 218 * use W flag to :S and :C rather than :tW 219 2202024-12-16 Simon J Gerraty <sjg@beast.crufty.net> 221 222 * rust.mk: add RUSTFLAGS if needed 223 2242024-12-12 Simon J Gerraty <sjg@beast.crufty.net> 225 226 * init.mk (OBJS_SRCS_FILTER): apply this as 227 ${OBJS_SRCS_FILTER:ts:} as we do in FreeBSD. 228 2292024-12-03 Simon J Gerraty <sjg@beast.crufty.net> 230 231 * install-mk (MK_VERSION): 20241202 232 233 * setopts.sh: needed by newlog.sh 234 2352024-11-22 Simon J Gerraty <sjg@beast.crufty.net> 236 237 * meta.sys.mk: add META_MODE_XTRAS to META_MODE to make it 238 easier to add things like 'env' when debugging. 239 240 * install-mk (MK_VERSION): 20241122 241 242 * rust.mk: rename CARGO* to RUST_CARGO* so I don't feel 243 like this makefile should be renamed to cargo.mk 244 2452024-11-11 Simon J Gerraty <sjg@beast.crufty.net> 246 247 * dirdeps.mk: add DIRDEPS_CACHED_ENV to dirdeps-cached and 248 DIRDEP_USE_EPILOGUE to _DIRDEP_USE 249 2502024-10-30 Simon J Gerraty <sjg@beast.crufty.net> 251 252 * meta.sys.mk: if MK_META_ERROR_TARGET is yes and NEWLOG_SH is 253 set, and ERROR_LOGDIR already exists, hook _rotateErrorLog to 254 .BEGIN target. 255 2562024-10-27 Simon J Gerraty <sjg@beast.crufty.net> 257 258 * options.mk: add support for DEBUG_OPTIONS (similar to 259 DEBUG_DIRDEPS) to allow us to see where options get set. 260 Eg. DEBUG_OPTIONS="STAGING*" gives: 261 262 bmake[1]: "mk/options.mk" line 89: sys.mk: MK_STAGING=yes (MK_DIRDEPS_BUILD=no) 263 bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING=yes 264 bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING_PROG=no 265 bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_MAN=yes (MK_STAGING=yes) 266 bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_PROG=no (MK_STAGING=yes) 267 bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_RUST=no (MK_STAGING_PROG=no) 268 269 * own.mk: fix setting of STAGE_OBJTOP (normally set by sys.dirdeps.mk) 270 2712024-10-26 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * rust.mk: add some documentation and support for staging 274 2752024-10-25 Simon J Gerraty <sjg@beast.crufty.net> 276 277 * rust.mk: a means of integrating Rust projects into a larger build. 278 2792024-10-18 Simon J Gerraty <sjg@beast.crufty.net> 280 281 * dirdeps-targets.mk: if DEBUG_DIRDEPS_TARGETS and we found 282 STATIC_DIRDEPS_CACHE, report its relative path. 283 2842024-09-30 Simon J Gerraty <sjg@beast.crufty.net> 285 286 * dirdeps.mk: tweak the debug message for "Loading" a 287 Makefile.depend file, always report what the actual makefile is 288 with the DIRDEP it is for. 289 Remove the redundant "Looking" message. 290 2912024-09-26 Simon J Gerraty <sjg@beast.crufty.net> 292 293 * meta2deps.py: when raising AssertionError include meta file name 294 with $SB trimmed if possible. 295 2962024-09-23 Simon J Gerraty <sjg@beast.crufty.net> 297 298 * meta2deps.py: replace assert() with raise AssertionError when we 299 detect missing eXits, to ensure a meaningful message gets into 300 log. 301 3022024-09-21 Simon J Gerraty <sjg@beast.crufty.net> 303 304 * install-mk (MK_VERSION): 20240921 305 306 * FILES: add genfiles.mk 307 3082024-09-20 Simon J Gerraty <sjg@beast.crufty.net> 309 310 * install-mk (MK_VERSION): 20240920 311 312 * cython.mk: Get PYTHON_VERSION from PYTHON 313 3142024-08-31 Simon J Gerraty <sjg@beast.crufty.net> 315 316 * subdir.mk: add ${SUBDIR.yes} - allows for SUBDIR.${MK_*} 317 and handle subdir with '-' in its name. 318 3192024-08-23 Simon J Gerraty <sjg@beast.crufty.net> 320 321 * install-mk (MK_VERSION): 20240820 322 323 * links.mk: Allow a filter to be applied to SYMLINKS etc. 324 It is up to [BUILD_][SYM]LINKS_FILTER to do something sane. 325 Also only claim we are making a symlink if the value changed. 326 3272024-06-22 Simon J Gerraty <sjg@beast.crufty.net> 328 329 * install-mk (MK_VERSION): 20240616 330 331 * dirdeps.mk: apply DEP_DIRDEPS_BUILD_DIR_FILTER after we have 332 computed build dirs, since some filters cannot be easily expressed via 333 DEP_DIRDEPS_FILTER. 334 3352024-05-31 Simon J Gerraty <sjg@beast.crufty.net> 336 337 * dirdeps.mk: move reset of DIRDEPS_EXPORT_VARS 338 until after we a finished with it if building a cache. 339 3402024-05-04 Simon J Gerraty <sjg@beast.crufty.net> 341 342 * install-mk (MK_VERSION): 20240504 343 344 * dirdeps.mk: allow BUILD_DIRDEPS_OVERRIDES to pass overrides to 345 sub-make building DIRDEPS_CACHE. 346 3472024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 348 349 * meta.autodep.mk: do not override start_utc 350 3512024-04-18 Simon J Gerraty <sjg@beast.crufty.net> 352 353 * sys.dirdeps.mk: set defaults for DEP_* at level 0 too. 354 These help when first include of Makefile.depend happens in a leaf 355 dir. 356 357 * install-mk (MK_VERSION): 20240414 358 3592024-04-09 Simon J Gerraty <sjg@beast.crufty.net> 360 361 * install-mk (MK_VERSION): 20240408 362 363 * init.mk: allow for _ as well as . to join V 364 and Q from QUALIFIED_VAR_LIST and VAR_QUALIFIER_LIST. 365 366 * progs.mk: avoid overlap between PROG_VARS and 367 init.mk's QUALIFIED_VAR_LIST since PROG would also 368 match its VAR_QUALIFIER_LIST, 369 libs.mk does not have the same issue. 370 371 * subdir.mk: _SUBDIRUSE for realinstall should run install 372 remove include of ${.CURDIR}/Makefile.inc that can be done via 373 local.subdir.mk where needed 374 375 * own.mk: do not conflict with man.mk 376 3772024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 378 379 * install-mk (MK_VERSION): 20240314 380 381 * add sys/Cygwin.mk from Christian Franke 382 3832024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 384 385 * install-mk (MK_VERSION): 20240309 386 387 * meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not 388 want to save the .ERROR_META_FILE 389 3902024-02-20 Simon J Gerraty <sjg@beast.crufty.net> 391 392 * install-mk (MK_VERSION): 20240220 393 394 * sys.dirdeps.mk, dirdeps-targets.mk, init.mk: 395 do not set .MAIN: dirdeps in sys.dirdeps.mk 396 dirdeps-targets.mk will do that for top-level builds 397 and init.mk will do it for others. 398 This allows a Makefile which has no need of 'dirdeps' to 399 set .MAIN for itself and "just work". 400 4012024-02-18 Simon J Gerraty <sjg@beast.crufty.net> 402 403 * bsd.*.mk: for makefiles that get a bsd. symlink, 404 use _this in multiple inclusion tags since .PARSEFILE will not 405 DTRT when such a makefile is included directly by Makefile and 406 automatically (without bsd. prefix). 407 Since we cannot guarantee that our sys.mk will be used, we provide 408 a default _this in each makefile that gets a bsd. prefix such that 409 the value is the same regardless of bsd. prefix. 410 411 * subdir.mk: drop the !target guard on $SUBDIR_TARGETS 412 4132024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 414 415 * install-mk (MK_VERSION): 20240212 416 417 * SPDX-License-Identifier: BSD-2-Clause 418 Add SPDX-License-Identifier to inidicate that I consider 419 my copyright on any of these makefiles equivalent to BSD-2-Clause 420 421 * autoconf.mk: allow for configure.ac as currently recommended 422 423 * subdir.mk: support @auto 424 which is replaced with each subdir that 425 has a [Mm]akefile. 426 427 * subdir.mk: include local.subdir.mk if it exists. 428 429 * subdir.mk: rework to handle .WAIT 430 4312024-02-11 Simon J Gerraty <sjg@beast.crufty.net> 432 433 * subdir.mk: _SUBDIRUSE report the target we are entering subdirs for. 434 4352024-02-10 Simon J Gerraty <sjg@beast.crufty.net> 436 437 * prog.mk: treat empty SRCS the same as undefined 438 4392024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 440 441 * Avoid undefined errors in lint (-dL) mode 442 443 * man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7) 444 4452024-01-28 Simon J Gerraty <sjg@beast.crufty.net> 446 447 * install-mk (MK_VERSION): 20240128 448 449 * FILES: add ccm.dep.mk for C++ modules 450 add suffixes.mk for common location for generic SUFFIX rules. 451 452 * auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk 453 replace OBJ_EXTENSIONS with OBJ_SUFFIXES 454 455 * autodep.mk: leverage CXX_SUFFIXES for __depsrcs 456 and update style (spaces around = etc) 457 458 * init.mk: add OBJS_SRCS_FILTER to filter SRCS when 459 setting OBJS 460 461 * meta2deps.py: handle multiple ./ embedded in path better. 462 4632024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 464 465 * install-mk (MK_VERSION): 20240105 466 * dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same 467 limits on command line length, so skip export of lists to env. 468 4692023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 470 471 * man.mk: add logic for staging man pages 472 4732023-11-28 Simon J Gerraty <sjg@beast.crufty.net> 474 475 * jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating 476 point. This keeps JOB_MAX numeric incase another makefile does 477 comparisons. 478 4792023-11-04 Simon J Gerraty <sjg@beast.crufty.net> 480 481 * dpadd.mk: add support for DPLIBS_QUALIFIER_LIST 482 483 * gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES 484 4852023-10-03 Simon J Gerraty <sjg@beast.crufty.net> 486 487 * compiler.mk (COMPILER_VERSION): clang at least is into 488 double digit major versions. 489 4902023-10-02 Simon J Gerraty <sjg@beast.crufty.net> 491 492 * install-mk (MK_VERSION): 20231001 493 494 * set _CCLINK in init.mk so lib.mk can use it for default SHLIB_LD 495 496 * lib.mk (cleanlib): use LD_solink so we remove all the right files. 497 Use -Wl for -soname since we now default to linking with CC 498 We should not need SHLIB_LDSTARTFILE or SHLIB_LDENDFILE when linking 499 with CC. 500 5012023-09-24 Simon J Gerraty <sjg@beast.crufty.net> 502 503 * init.mk (QUALIFIED_VAR_LIST): Add SRCS 504 5052023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 506 507 * jobs.mk (JOB_MAX): use -jC if we can 508 we actually use JOB_MAX_C which defaults to 1.33C 509 5102023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 511 512 * now_utc: %s only works with :localtime 513 5142023-07-14 Simon J Gerraty <sjg@beast.crufty.net> 515 516 * install-sh: ignore -c as claimed and only insist on 517 a directory for destination when more than one file to copy. 518 519 * sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and 520 ${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64) 521 5222023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 523 524 * install-mk (MK_VERSION): 20230711 525 526 * sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible 527 install(1) 528 529 * sys/IRIX.mk: when setting ROOT_GROUP only match the first :0: 530 set INSTALL to install-sh rather than pathname that may not exist 531 (yet). 532 5332023-07-07 Simon J Gerraty <sjg@beast.crufty.net> 534 535 * dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE 536 normally this is empty - for the default target, but there are 537 use-cases where we might set it to something else. 538 5392023-07-04 Simon J Gerraty <sjg@beast.crufty.net> 540 541 * install-mk (MK_VERSION): 20230704 542 543 * dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output 544 when DEBUG_DIRDEPS is in effect. 545 Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n 546 can greatly improve readability. 547 5482023-05-25 Simon J Gerraty <sjg@beast.crufty.net> 549 550 * meta.autodep.mk (beforegendirdeps): allow tasks to be done 551 at END but before gendirdeps 552 5532023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 554 555 * install-mk (MK_VERSION): 20230522 556 557 * host-target.mk: deal with garbage from uname -m on 558 Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH 559 these days so just leave it be. 560 For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get 561 arm64 and x86_64 in HOST_TARGET. 562 5632023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 564 565 * sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older 566 versions of bmake. 567 568 * dirdeps.mk (TARGET_SPEC_VARS.host): 569 While *most* projects need only DEP_MACHINE for host, 570 there is always an exception. So we allow for 571 TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS. 572 The default will *just work* for most projects. 573 We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC 574 based on DEP_MACHINE. 575 Allow for M_dep_qual_fixes.host to be different too 576 and take care to apply the right set. 577 5782023-05-14 Simon J Gerraty <sjg@beast.crufty.net> 579 580 * sys.dirdeps.mk: we *do* want to override OBJTOP 581 and if MAKEOBJDIR was not in env as we want it; 582 put it there - carefully. 583 Ensure OBJROOT ends in / or - (/ preferred) 584 Add more comments to explain what/why. 585 5862023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 587 588 * install-mk (MK_VERSION): 20230512 589 590 * dirdeps.mk: take care not to qualify "host" dirdeps 591 592 * sys.dirdeps.mk (OBJTOP): must use ?= 593 5942023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 595 596 * meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no" 597 suppress processing of .depend 598 5992023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 600 601 * dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP 602 603 * meta.sys.mk sys.dirdeps.mk: 604 originally DIRDEPS_BUILD and META_MODE were the same thing, 605 but META_MODE is useful by itself. 606 Move things from meta.sys.mk which actually pertain to 607 DIRDEPS_BUILD to sys.dirdeps.mk 608 6092023-05-04 Simon J Gerraty <sjg@beast.crufty.net> 610 611 * install-mk (MK_VERSION): 20230504 May the Forth be with you 612 613 * dirdeps.mk: as with meta.sys.mk we treat "host" as special. 614 DEP_TARGET_SPEC is just ${DEP_MACHINE} 615 616 * meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at 617 level > 0 since these are often refered to in Makefile.depend* 618 6192023-04-26 Simon J Gerraty <sjg@beast.crufty.net> 620 621 * jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and 622 anything in ${JOB_LOG_START} 623 624 * jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}} 625 or a scripts subdir before searching $PATH. 626 627 * FILES: include newlog.sh for jobs.mk 628 6292023-04-20 Simon J Gerraty <sjg@beast.crufty.net> 630 631 * install-mk (MK_VERSION): 20230420 632 633 * lib.mk: include LDFLAGS and LDADD when linking shared libs 634 635 * gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc 636 via local.meta.sys.mk rather than local.gendirdeps.mk 637 so DEP_* variables can be set at level 1+ to avoid syntax errors 638 when used in conditionals in manually maintained Makefile.depend 639 files. 640 641 * dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines 642 6432023-04-18 Simon J Gerraty <sjg@beast.crufty.net> 644 645 * dirdeps.mk: check we were not included by 646 Makefile.depend.options as the result is bad. 647 6482023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 649 650 * install-mk (MK_VERSION): 20230414 651 652 * meta.sys.mk: since we have :range we can put the logic for 653 processing TARGET_SPEC from env here. 654 655 * dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including 656 local.dirdeps-missing.mk, also improve debug output. 657 658 * dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC 659 we need to use :M*[/.]* same as for when actually setting DIRDEPS 660 from the targets on command line. 661 6622023-04-12 Simon J Gerraty <sjg@beast.crufty.net> 663 664 * Add jobs.mk 665 6662023-03-21 Simon J Gerraty <sjg@beast.crufty.net> 667 668 * install-mk (MK_VERSION): 20230321 669 670 * meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter 671 STAGE_LIBS for SHLIB_LINKS. 672 673 * autoconf.mk: add .WAIT after config.status 674 6752023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 676 677 * sys.vars.mk: add M_Index to report the index of a word in a list. 678 6792023-02-15 Simon J Gerraty <sjg@beast.crufty.net> 680 681 * install-mk (MK_VERSION): 20230215 682 683 * warnings.mk: allow better control of -Werror 684 allow -Wno-error or similar to be added if 685 WARNINGS_SET < WERROR_SET 686 account for COMPILER_TYPE 687 6882023-01-29 Simon J Gerraty <sjg@beast.crufty.net> 689 690 * autoconf.mk: hook config.status to beforebuild. 691 692 * whats.mk: what*.c is NOTMAIN 693 6942023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 695 696 * install-mk (MK_VERSION): 20230127 697 control umask so directories are created with suitable mode. 698 6992023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 700 701 * install-mk (MK_VERSION): 20230120 702 703 * sys.vars.mk: add M_On and M_Onr also cleanup to be more 704 consistent wrt testing MAKE_VERSION 705 7062023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 707 708 * install-mk (MK_VERSION): 20230112 709 710 * meta2deps.{py,sh}: assert if filemon data is truncated 711 we should see the '# Bye bye' record - assert if we do not. 712 7132022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 714 715 * install-mk (MK_VERSION): 20220909 716 717 * sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings 718 7192022-09-06 Simon J Gerraty <sjg@beast.crufty.net> 720 721 * dirdeps-options.mk: explain the need to use 722 ${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to 723 ${TARGET_SPEC_VAR} 724 7252022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 726 727 * install-mk (MK_VERSION): 20220903 728 729 * M_cmpv handle more than 3 dots and clear leading 0's 730 7312022-07-20 Simon J Gerraty <sjg@beast.crufty.net> 732 733 * install-mk (MK_VERSION): 20220720 734 735 * prog.mk: handle PROG_CXX for more than just NetBSD 736 7372022-06-20 Simon J Gerraty <sjg@beast.crufty.net> 738 739 * install-mk (MK_VERSION): 20220620 740 741 * yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER 742 rather than just suffix rules 743 7442022-04-23 Simon J Gerraty <sjg@beast.crufty.net> 745 746 * install-mk (MK_VERSION): 20220422 747 748 * gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no" 749 do not capture any local depends in Makefile.depend 750 7512022-03-25 Simon J Gerraty <sjg@beast.crufty.net> 752 753 * install-mk (MK_VERSION): 20220323 754 * posix.mk: default rules for .POSIX: 755 7562022-03-17 Simon J Gerraty <sjg@beast.crufty.net> 757 758 * sys/*.mk: remove l from ARFLAGS 759 7602022-03-14 Simon J Gerraty <sjg@beast.crufty.net> 761 762 * install-mk (MK_VERSION): 20220314 763 764 * dirdeps-options.mk: allow options to be per RELDIR 765 try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed 766 with ${DEP_RELDIR}. 767 7682022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 769 770 * install-mk (MK_VERSION): 20220214 771 772 * cc-wrap.mk: fix :@ modifier 773 7742022-02-06 Simon J Gerraty <sjg@beast.crufty.net> 775 776 * install-mk (MK_VERSION): 20220206 777 778 * cc-wrap.mk: docuement how CCACHE etc might be set for 779 maximum flexibility 780 7812022-02-05 Simon J Gerraty <sjg@beast.crufty.net> 782 783 * sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT 784 7852022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 786 787 * install-mk (MK_VERSION): 20220204 788 789 * host-target.mk: use .MAKE.OS if available 790 7912022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 792 793 * install-mk (MK_VERSION): 20220202 794 795 * cc-wrap.mk: allow other entries in CC_WRAP_FILTER 796 We add our filter on extensions last, so prior filters 797 can apply to the whole value of .IMPSRC 798 7992022-02-01 Simon J Gerraty <sjg@beast.crufty.net> 800 801 * cc-wrap.mk: take advantage of target local variables to 802 wrap compilers like CC CXX with wrappers like ccache distcc etc 803 8042022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 805 806 * meta2deps: we do not expect any trace data for setid apps 807 8082022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 809 810 * dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed 811 to sub-make using DIRDEPS_CACHE 812 8132022-01-07 Simon J Gerraty <sjg@beast.crufty.net> 814 815 * dirdeps.mk: use _cache_script to minimize the number of shells 816 forked when generating dirdeps.cache 817 8182022-01-02 Simon J Gerraty <sjg@beast.crufty.net> 819 820 * install-mk (MK_VERSION): 20220101 821 822 * dirdeps.mk: initialize DEP_* and _debug_reldir earlier. 823 If initial DIRDEPS are from command line, create the target 824 _dirdeps_cmdline as an indication. 825 8262022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 827 828 * init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD 829 at top-level only some targets are allowed at level 0, 830 for leaf makefiles only the default (all) target is restricted 831 8322021-12-28 Simon J Gerraty <sjg@beast.crufty.net> 833 834 * install-mk (MK_VERSION): 20211228 835 836 * meta2deps.py: filemon on Linux is not as reliable as we might 837 like, we do not want to update DIRDEPS if filemon output is 838 incomplete. Track pids that we 'E'xec and make sure we see an 839 e'X'it for each one. Throw an error if we are missing any 'X' 840 records. 841 8422021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 843 844 * sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes. 845 846 * meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON 847 is something else. 848 849 * meta.autodep.mk: we can now reference ${.SUFFIXES} 850 851 * meta2deps.py: derive a list of dirdep extensions from 852 TARGET_SPEC to trim from dirdeps. 853 854 * dirdeps.mk: flip the computation of qualified vs unqualified 855 dirdeps - it is much simpler to check for unqualified first. 856 8572021-12-11 Simon J Gerraty <sjg@beast.crufty.net> 858 859 * install-mk (MK_VERSION): 20211212 860 861 * auto.dep.mk: rearrange so that the trivial implementation 862 for recent bmake is more obvious. 863 8642021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 865 866 * install-mk (MK_VERSION): 20211207 867 868 * Ensure guard targets are .NOTMAIN 869 870 * meta.sys.mk: check for nofilemon support when we skip level 0 871 872 * auto.dep.mk: make this usable in meta mode 873 for platforms that cannot use meta.autodep.mk 874 875 * meta2deps.py: avoid confusion if MACHINE and another 876 TARGET_SPEC_VAR have same value. 877 8782021-11-27 Simon J Gerraty <sjg@beast.crufty.net> 879 880 * dirdeps.mk: when building dirdeps.cache, minimize the amount of 881 data put into env, by stripping ${SRCTOP}/ from each entry. 882 A long sandbox name can double the amount of memory consumed and 883 in extreme cases cause failure. 884 While we are at it, strip ${SRCTOP}/ from a lot of the debug output. 885 8862021-11-11 Simon J Gerraty <sjg@beast.crufty.net> 887 888 * install-mk (MK_VERSION): 20211111 889 890 * meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail 891 so fallback to cp if necessary. 892 8932021-10-30 Simon J Gerraty <sjg@beast.crufty.net> 894 895 * man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year 896 old cmt2doc.pl 897 8982021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 899 900 * meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f} 901 as the symlink (rare) 902 9032021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 904 905 * autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not 906 been read, throw an error after running configure telling user to 907 restart. 908 9092021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 910 911 * install-mk (MK_VERSION): 20211011 912 913 * Add support for SCO_SV 914 9152021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 916 917 * install-mk (MK_VERSION): 20211001 918 919 * man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more 920 flexibility 921 9222021-09-13 Simon J Gerraty <sjg@beast.crufty.net> 923 924 * options.mk (describe-options): print options and their values 925 and optional description 926 9272021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 928 929 * install-mk (MK_VERSION): 20210911 930 931 * options.mk (show-options): print options and their values 932 9332021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 934 935 * install-mk (MK_VERSION): 20210909 936 937 * lib.mk: apply patch from <daniel@octaforge.org> 938 to fix shared libs on Linux 939 9402021-08-08 Simon J Gerraty <sjg@beast.crufty.net> 941 942 * install-mk (MK_VERSION): 20210808 943 944 * options.mk: issue warning for WITH_*=no 945 9462021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 947 948 * install-mk (MK_VERSION): 20210616 949 950 * dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find 951 depend files to read, anchor MACHINE at , or end of string 952 to avoid prefix match. 953 9542021-05-04 Simon J Gerraty <sjg@beast.crufty.net> 955 956 * install-mk (MK_VERSION): 20210504 957 958 * dirdeps.mk: re-implement ALL_MACHINES support to better 959 cater for local complexities, when ONLY_TARGET_SPEC_LIST 960 is not set. local.dirdeps.mk can set 961 DIRDEPS_ALL_MACHINES_FILTER and/or 962 DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get 963 from listing all existing Makefile.depend.* 964 9652021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 966 967 * install-mk (MK_VERSION): 20210420 968 969 * dirdeps.mk: revert previous - not always safe. 970 9712021-03-20 Simon J Gerraty <sjg@beast.crufty.net> 972 973 * install-mk (MK_VERSION): 20210321 974 975 * dirdeps.mk: when generating dirdeps.cache 976 we only need to hook the initial DIRDEPS to the 977 dirdeps target. That and any _build_xtra_dirs (like tests which 978 should not be hooked directly to the dependency graph - to avoid 979 cycles) 980 9812021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 982 983 * install-mk (MK_VERSION): 20210130 984 985 * dirdeps.mk: expr 2 - 1 - 1 exits with a bad status 986 we need to guard against this in DIRDEP_LOADAVG_REPORT. 987 988 * dirdeps.mk: restore respect for TARGET_MACHINE 989 9902021-01-06 Simon J Gerraty <sjg@beast.crufty.net> 991 992 * install-mk (MK_VERSION): 20210101 993 994 * dirdeps.mk: first time we are read, just use TARGET_SPEC for 995 _DEP_TARGET_SPEC 996 9972020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 998 999 * sys.mk (MAKE_SHELL): use ${.SHELL:Ush} 1000 and use := when setting SHELL 1001 10022020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1003 1004 * install-mk (MK_VERSION): 20201221 1005 1006 * dirdeps-options.mk: latest bmake allows only one arg to .undef 1007 10082020-12-11 Simon J Gerraty <sjg@beast.crufty.net> 1009 1010 * dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS 1011 so that any directory can be treated as a target. 1012 10132020-11-26 Simon J Gerraty <sjg@beast.crufty.net> 1014 1015 * install-mk (MK_VERSION): 20201126 1016 1017 * own.mk: use .MAKE.{UID,GID} if available. 1018 1019 * init.mk: suppress _SKIP_BUILD warning if doing -V 1020 10212020-11-20 Simon J Gerraty <sjg@beast.crufty.net> 1022 1023 * install-mk (MK_VERSION): 20201120 1024 1025 * init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS 1026 1027 * dirdeps-targets.mk: fix typo in comment 1028 10292020-11-06 Simon J Gerraty <sjg@beast.crufty.net> 1030 1031 * install-mk (MK_VERSION): 20201106 1032 1033 * meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed 1034 args to tweak extensions for local deps. 1035 10362020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1037 1038 * install-mk (MK_VERSION): 20201101 1039 1040 * dirdeps.mk: most leaf makefiles are not suitable for building 1041 dirdeps.cache so if RELDIR is not "." use dirdeps.mk 1042 10432020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1044 1045 * install-mk (MK_VERSION): 20201028 1046 1047 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE 1048 when building dirdeps.cache for leaf directory use -f dirdeps.mk 1049 1050 * sys.vars.mk: add M_JOT and M_RANGE 1051 10522020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1053 1054 * install-mk (MK_VERSION): 20201001 1055 1056 * meta2deps.{py,sh}: throw an error if we don't see filemon version 1057 10582020-09-09 Simon J Gerraty <sjg@beast.crufty.net> 1059 1060 * install-mk (MK_VERSION): 20200909 1061 1062 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target 1063 10642020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1065 1066 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 1067 (even more rare that use of static cache is playing clever tricks 1068 with it) 1069 10702020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1071 1072 * dirdeps-cache-update.mk: allow 1073 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 1074 actually update STATIC_DIRDEPS_CACHE. 1075 1076 * stage-install.sh: create dest directory if needed 1077 before running install(1) 1078 10792020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 1080 1081 * dirdeps-targets.mk: include Makefile.dirdeps.options 1082 1083 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 1084 10852020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 1086 1087 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 1088 1089 * dirdeps-cache-update.mk: building parallel cache update 1090 under the context of dirdeps-cached would be ideal, but 1091 is problematic, so it runs as a sibling. 1092 Use cache-built target to ensure we wait for it to complete if 1093 necessary. 1094 10952020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 1096 1097 * install-mk (MK_VERSION): 20200806 1098 1099 * dirdeps-options: allow TARGET_SPEC to affect option values. 1100 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 1101 1102 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 1103 before looking for STATIC_DIRDEPS_CACHE 1104 11052020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 1106 1107 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 1108 1109 * dirdeps-options.mk: improve debug output 1110 11112020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 1112 1113 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 1114 for use by dirdeps-cache-update.mk 1115 1116 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 1117 for use by dirdeps-cache-update.mk even if we don't use it. 1118 1119 * dirdeps-cache-update.mk: we only need worry about the background 1120 update case, with the above, the update from DIRDEPS_CACHE is 1121 simple. 1122 1123 * meta2deps.py: R 1234 . is not interesting 1124 11252020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 1126 1127 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 1128 1129 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 1130 allows use of lower case for pseudo options. 1131 1132 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 1133 11342020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 1135 1136 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 1137 which allows us to have a static cache for expensive targets. 1138 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 1139 to regenerate the dirdeps.cache it is a copy of. 1140 11412020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 1142 1143 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 1144 11452020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 1146 1147 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 1148 load averages at intervals during build. 1149 11502020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 1151 1152 * install-mk (MK_VERSION): 20200715 1153 1154 * dirdeps.mk: tweak Checking line to make matching Finished 1155 lines for post-build analysis easier. 1156 1157 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 1158 1159 * progs.mk: avoid prog.mk outputting multiple Finished lines 1160 11612020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 1162 1163 * dirdeps.mk: further optimize dirdeps.cache 1164 generate a DIRDEPS.${.TARGET} list for other purposes 1165 and improve the layout. 1166 11672020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 1168 1169 * dirdeps.mk: optimize content of dirdeps.cache 1170 11712020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 1172 1173 * sys/*.mk: make it easier for local*sys.mk to customize by 1174 using ?= 1175 11762020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 1177 1178 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 1179 it is much safer to guard local depends with a simple check for 1180 .MAKE.LEVEL > 0 1181 11822020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 1183 1184 * install-mk (MK_VERSION): 20200610 1185 1186 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 1187 11882020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 1189 1190 * install-mk (MK_VERSION): 20200606 1191 1192 * dirdeps-targets.mk: allow for filtering of .TARGETS 1193 1194 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 1195 entries - and we don't care about 'W'rite entries. 1196 Also ignore absolute paths that do not exist. 1197 11982020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 1199 1200 * install-mk (MK_VERSION): 20200525 1201 1202 * init.mk: expand and simplify handling of qualified vars 1203 like CPPFLAGS.${.TARGET:T} 1204 12052020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 1206 1207 * install-mk (MK_VERSION): 20200515 1208 1209 * dirdeps.mk: set _debug_* earlier and allow passing -d* 1210 flags to submake when building DIRDEPS_CACHE 1211 12122020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 1213 1214 * whats.mk: more easily extensible 1215 12162020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 1217 1218 * whats.mk: greatly simplify by adding what.c to SRCS 1219 12202020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 1221 1222 * whats.mk: for libs take care how we add to *OBJS 1223 1224 * lib.mk: : works better with whats.mk 1225 12262020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 1227 1228 * install-mk (MK_VERSION): 20200420 1229 1230 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 1231 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 1232 12332020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 1234 1235 * install-mk (MK_VERSION): 20200416 1236 1237 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 1238 interfere with user env. 1239 1240 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 1241 1242 * autodep.mk: use MAKE_SHELL. 1243 12442019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 1245 1246 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 1247 wasted effort, and unexport _meta_files when no longer needed as 1248 it consumes space we need for command line. 1249 12502019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1251 1252 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 1253 DIRDEP_USE_PRELUDE at start - facilitates job distribution 1254 12552019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 1256 1257 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 1258 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 1259 TARGET_SPEC qualified depend files. 1260 12612019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1262 1263 * dirdeps-targets.mk: encapsulate logic for finding top-level 1264 targets to set initial DIRDEPS for DIRDEPS_BUILD 1265 12662019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1267 1268 * install-mk (MK_VERSION): 20190911 1269 1270 * compiler.mk: set COMPILER_TYPE 1271 12722019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 1273 1274 * install-mk (MK_VERSION): 20190704 1275 1276 * sys/Darwin.mk: support for Objective-C and clang 1277 12782019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 1279 1280 * dirdeps.mk: avoid insanely long command line when generating cache 1281 12822019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 1283 1284 * install-mk (MK_VERSION): 20190505 1285 1286 * whats.mk: handle corner case SHLIB defined but not LIB 1287 12882018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 1289 1290 * install-mk (MK_VERSION): 20180919 1291 1292 * dirdeps-options.mk: .undef cannot handle var that expands to 1293 more than one var. 1294 12952018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 1296 1297 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 1298 12992018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 1300 1301 * meta.autodep.mk: export META_FILES to avoid command line limit 1302 * gendirdeps.mk: if we have lots of .meta files put them in 1303 an @list 1304 13052018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 1306 1307 * dirdeps-options.mk: use local.dirdeps-options.mk 1308 not local.dirdeps-option.mk 1309 13102018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1311 1312 * install-mk (MK_VERSION): 20180420 1313 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 1314 ie. we are building something. 1315 13162018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 1317 1318 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 1319 13202018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 1321 1322 * install-mk (MK_VERSION): 20180405 1323 1324 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 1325 if needed. 1326 13272018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 1328 1329 * install-mk (MK_VERSION): 20180118 1330 1331 * ldorder.mk: let make compute correct link order 1332 13332017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1334 1335 * install-mk (MK_VERSION): 20171212 1336 1337 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 1338 13392017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 1340 1341 * install-mk (MK_VERSION): 20171111 1342 1343 * lib.mk: ensure META_NOECHO is set 1344 13452017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 1346 1347 * Allow for host32 on rare occasions. 1348 13492017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 1350 1351 * install-mk (MK_VERSION): 20171018 1352 1353 * whats.mk: include what_thing in what_uuid to avoid problem 1354 when building multiple apps in the same directory. 1355 13562017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1357 1358 * install-mk (MK_VERSION): 20170812 1359 1360 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 1361 add dependencies for config.recheck and config.gen 1362 13632017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 1364 1365 * install-mk (MK_VERSION): 20170630 1366 1367 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 1368 13692017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 1370 1371 * meta2deps.py: take special care of '..' 1372 13732017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 1374 1375 * install-mk (MK_VERSION): 20170515 1376 1377 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 1378 useful/necessary for a Makefile.depend file to export some knobs. 1379 This is complicated when we are doing DIRDEPS_CACHE, so we will 1380 handle export of any variables listed in DEP_EXPORT_VARS. 1381 13822017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 1383 1384 * install-mk (MK_VERSION): 20170505 1385 1386 * meta2deps.py: fix botched indenation. 1387 13882017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1389 1390 * sys/*.mk: Remove setting of MAKE it is unnecessary and 1391 in many cases wrong (basname rather than full path) 1392 1393 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 1394 1395 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 1396 13972017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1398 1399 * install-mk (MK_VERSION): 20170501 1400 1401 * doc.mk: fix typo in DOC_INSTALL_OWN 1402 1403 * inc.mk: handle INCGROUPS similar to freebsd 1404 1405 * files.mk: add something for files too 1406 1407 * add staging logic to lib.mk prog.mk etc. 1408 14092017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 1410 1411 * install-mk (MK_VERSION): 20170424 1412 1413 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 1414 also target of bootstrap-this when sed is needed should be ${_want:T} 1415 14162017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1417 1418 * install-mk (MK_VERSION): 20170418 1419 1420 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 1421 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 1422 14232017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1424 1425 * install-mk (MK_VERSION): 20170401 1426 1427 * meta2deps.py: add is_src so we can check if obj dependency 1428 is also a src dependency. 1429 14302017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1431 1432 * install-mk (MK_VERSION): 20170326 1433 1434 * meta.stage.mk: do nothing if NO_STAGING is defined. 1435 14362017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 1437 1438 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 1439 14402017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1441 1442 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 1443 14442017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1445 1446 * install-mk (MK_VERSION): 20170301 1447 1448 * dirdeps.mk (_build_all_dirs): update this outside test for empty 1449 DIRDEPS. 1450 1451 * meta.stage.mk: allow multiple inclusion to the extent it makes 1452 sense. 1453 14542017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1455 1456 * prog.mk (install_links): depends on realinstall 1457 14582017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 1459 1460 * install-mk (MK_VERSION): 20170212 1461 1462 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 1463 14642017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 1465 1466 * install-mk (MK_VERSION): 20170130 1467 1468 * dirdeps.mk: use :range if we can. 1469 1470 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 1471 1472 * meta2deps.py: clean paths without using realpath() where possible. 1473 fix sort_unique. 1474 14752016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1476 1477 * install-mk (MK_VERSION): 20161212 1478 1479 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 1480 rather than when we detect pid change. 1481 14822016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1483 1484 * install-mk (MK_VERSION): 20161207 1485 1486 * meta.stage.mk: add stage_as_and_symlink for staging packages. 1487 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 1488 to use foo.tgz to reference the latest staged version - so we 1489 make foo.tgz a symlink to it. 1490 Using a target to do both operations ensures we stay in sync. 1491 14922016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1493 1494 * install-mk (MK_VERSION): 20161126 1495 1496 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 1497 so it can add dependencies. 1498 14992016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1500 1501 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 1502 do that they can influence the result correctly. 1503 1504 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 1505 1506 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 1507 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 1508 15092016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1510 1511 * dirdeps.mk: remove dependence on jot (normal situations anyway). 1512 Before we read another Makefile.depend* set DEP_* vars from 1513 _DEP_TARGET_SPEC in case it uses any of them with := 1514 When bootstrapping, trim any ,* from extention of chosen _src 1515 Makefile.depend* to get the machine value we subst for. 1516 15172016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 1518 1519 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 1520 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 1521 1522 * sys.mk: extract some bits to sys.{debug,vars}.mk 1523 for easier re-use by others. 1524 15252016-09-23 Simon Gerraty <sjg@sjg-mba13> 1526 1527 * lib.mk: Use ${PICO} for extension for PIC objects. 1528 default to .pico (like NetBSD) safe on case insensitive filesystem. 1529 15302016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 1531 1532 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 1533 15342016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 1535 1536 * install-mk (MK_VERSION): 20160815 1537 1538 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 1539 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 1540 15412016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1542 1543 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 1544 in meta mode we can ignore the mtime of makefiles 1545 15462016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1547 1548 * install-mk (MK_VERSION): 20160802 1549 1550 * lib.mk (libinstall): depends on beforinstall 1551 1552 * prog.mk (proginstall): depends on beforinstall 1553 patch from Lauri Tirkkonen 1554 1555 * dirdeps.mk (bootstrap): When bootstrapping; creat 1556 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 1557 .MAKE.DEPENDFILE_BOOTSTRAP_SED 1558 1559 * dirdeps.mk: move some comments to where they make sense. 1560 15612016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 1562 1563 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 1564 15652016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1566 1567 * install-mk (MK_VERSION): 20160602 1568 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 1569 do not apply :T to META_XTRAS 1570 patch from Bryan Drewery at FreeBSD.org. 1571 15722016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 1573 1574 * install-mk (MK_VERSION): 20160530 1575 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 1576 make it so. 1577 15782016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1579 1580 * install-mk (MK_VERSION): 20160512 1581 1582 * dpadd.mk: always include local.dpadd.mk if it exists 1583 remove some things that better belong in local.dpadd.mk 1584 skip INCLUDES_* for staged libs unless SRC_* defined. 1585 1586 * own.mk: add INCLUDEDIR 1587 15882016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1589 1590 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 1591 TARGET_MACHINE - :E will be empty or match part of path, use 1592 ${MACHINE} 1593 15942016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 1595 1596 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 1597 NO_FILEMON_COOKIE 1598 1599 * dirdeps.mk: move the logic that allows for 1600 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1601 inside the check for !target(_DIRDEP_USE) 1602 16032016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 1604 1605 * Use <> when including local*.mk and others which may exist 1606 elsewhere so that user can better control what they get. 1607 1608 * meta.autodep.mk (NO_FILEMON_COOKIE): 1609 create a cookie if we ever build dir with nofilemon 1610 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 1611 16122016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1613 1614 * install-mk (MK_VERSION): 20160401 1615 1616 * meta2deps.py: fix old print statement when debugging. 1617 1618 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 1619 patch from Bryan Drewery 1620 16212016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 1622 1623 * install-mk (MK_VERSION): 20160317 (St. Pats) 1624 1625 * warnings.mk: g++ does not like -Wimplicit 1626 1627 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 1628 pelthora of common suffixes for C++ 1629 1630 * lib.mk: use .So for shared objects 1631 16322016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1633 1634 * install-mk (MK_VERSION): 20160315 1635 1636 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 1637 normally only applies to scripts. 1638 1639 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 1640 well as outside it. 1641 16422016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1643 1644 * install-mk (MK_VERSION): 20160310 1645 1646 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 1647 we have processed; the list gets very inefficient as number of 1648 DIRDEPS gets large. 1649 1650 * sys.dependfile.mk: fix comment wrt MACHINE 1651 1652 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 1653 patch from Bryan Drewery 1654 16552016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 1656 1657 * meta2deps.sh: don't ignore subdirs. 1658 patch from Bryan Drewery 1659 16602016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1661 1662 * install-mk (MK_VERSION): 20160226 1663 1664 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 1665 16662016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 1667 1668 * dirdeps.mk: we shouldn't normally include .depend but if we do 1669 use .dinclude if we can. 1670 16712016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1672 1673 * install-mk (MK_VERSION): 20160218 1674 * sys.clean-env.mk: with recent change to Var_Subst() 1675 we cannot use the '$$' trick, but .export-literal does the job 1676 we need. 1677 * auto.dep.mk: make use .dinclude if we can. 1678 1679 16802016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 1681 1682 * dirdeps.mk: 1683 Add _build_all_dirs such that local.dirdeps.mk can 1684 add fully qualified dirs to it. 1685 These will be built normally but the current 1686 DEP_RELDIR will not depend on then (to avoid cycles). 1687 This makes it easy to hook things like unit-tests into build. 1688 1689 16902016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 1691 1692 * dirdeps.mk: add bootstrap-empty 1693 16942015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1695 1696 * install-mk (MK_VERSION): 20151212 1697 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 1698 only apply :tA to __objdir when comparing to .OBJDIR 1699 17002015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 1701 1702 * install-mk (MK_VERSION): 20151111 1703 1704 * meta.sys.mk: include sys.dependfile.mk 1705 1706 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 1707 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 1708 include local.sys.env.mk early 1709 include local.sys.mk later 1710 1711 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 1712 17132015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1714 1715 * meta.sys.mk (META_COOKIE_TOUCH): 1716 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 1717 1718 * meta.stage.mk: stage_libs should ignore SYMLINKS. 1719 17202015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 1721 1722 * install-mk (MK_VERSION): 20151022 1723 1724 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 1725 17262015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 1727 1728 * install-mk (MK_VERSION): 20151020 1729 1730 * dirdeps.mk: Add logic for 1731 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1732 17332015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 1734 1735 * install-mk (MK_VERSION): 20151010 1736 17372015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 1738 1739 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 1740 to have stage_lins run last in non-jobs mode. 1741 Use .ORDER only for jobs mode. 1742 17432015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 1744 1745 * rst2htm.mk: allow for per target flags etc. 1746 17472015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1748 1749 * install-mk (MK_VERSION): 20150901 1750 1751 * doc.mk: create dir if needed use DOC_INSTALL_OWN 1752 17532015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 1754 1755 * install-mk (MK_VERSION): 20150615 1756 1757 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 1758 Follow make's normal precedence rules. 1759 1760 * gendirdeps.mk: allow customization of the header. 1761 eg. for FreeBSD: 1762 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 1763 1764 * meta.autodep.mk: ignore dirdeps.cache* 1765 1766 * meta.stage.mk: when bootstrapping options it can be handy to 1767 throw warnings rather than errors for staging conflicts. 1768 1769 * meta.sys.mk: include local.meta.sys.mk for customization 1770 17712015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1772 1773 * install-mk (MK_VERSION): 20150606 1774 1775 * dirdeps.mk: don't rely on manually maintained Makefile.depend 1776 to set DEP_RELDIR and reset DIRDEPS. 1777 By setting DEP_RELDIR ourselves we can skip :tA 1778 1779 * gendirdeps.mk: skip setting DEP_RELDIR. 1780 17812015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 1782 1783 * dirdeps.mk: avoid wildcards like make(bootstrap*) 1784 17852015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 1786 1787 * install-mk (MK_VERSION): 20150520 1788 1789 * dirdeps.mk: when we are building dirdeps cache file we *want* 1790 meta_oodate to look at all the Makefile.depend files, so 1791 set .MAKE.DEPENDFILE to something that won't match. 1792 1793 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 1794 so first use absolute path as key. 1795 Also skip staging at level 0. 1796 17972015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 1798 1799 * install-mk (MK_VERSION): 20150430 1800 1801 * dirdeps.mk: fix _count_dirdeps for non-cache case. 1802 18032015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 1804 1805 * install-mk (MK_VERSION): 20150411 1806 bump version 1807 1808 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 1809 it is here mainly for documentation purposes, since 1810 if using auto.obj.mk it is better done via sys.mk 1811 18122015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1813 1814 * install-mk (MK_VERSION): 20150401 1815 1816 * meta2deps.sh: support @list 1817 1818 * meta2deps.py: updates from Juniper 1819 o add EXCLUDES 1820 o skip bogus input files. 1821 o treat 'M' and 'L' as both an 'R' and a 'W' 1822 18232015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1824 1825 * install-mk (MK_VERSION): 20150303 1826 1827 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 1828 which is built via sub-make so we have a .meta file to tell if 1829 it is out-of-date. 1830 The dirdeps-cache contains the same dependency rules that we 1831 normaly construct on the fly. 1832 This adds a few seconds overhead when the cache is out of date, 1833 but for a large target, the savings can be significant (10-20min). 1834 18352014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1836 1837 * install-mk (MK_VERSION): 20141118 1838 1839 * meta.stage.mk: add stale_staged 1840 1841 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 1842 only useful under very rare conditions such as 1843 FreeBSD's make universe. 1844 1845 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 1846 18472014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1848 1849 * install-mk (MK_VERSION): 20141111 1850 1851 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 1852 18532014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 1854 1855 * FILES: include mkopt.sh which allows handling options in shell 1856 scripts in a manner compatible with options.mk 1857 18582014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1859 1860 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 1861 for GENDIRDEPS_FILTER to avoid surprises. 1862 18632014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1864 1865 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 1866 the time it is applied to __depdirs they have. 1867 1868 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 1869 expects patterns like *.${MACHINE} 1870 1871 * cython.mk (pyprefix?): use pyprefix to find python bits 1872 since prefix might be something else (where we install our 1873 stuff) 1874 18752014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 1876 1877 * install-mk (MK_VERSION): 20140911 1878 1879 * dirdeps.mk: add bootstrap target to simplify adding support for 1880 new MACHINE. 1881 18822014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1883 1884 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 1885 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 1886 Makefile.depend files. 1887 18882014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 1889 1890 * install-mk (MK_VERSION): 20140828 1891 1892 * cython.mk: capture logic for building python extension modules 1893 with Cython. 1894 18952014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1896 1897 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 1898 18992014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1900 1901 * install-mk (MK_VERSION): 20140801 1902 1903 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 1904 identify the autodep.mk variant. 1905 1906 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 1907 initial value does not match .MAKE.DEPENDFILE_PREFIX 1908 1909 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 1910 19112014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 1912 1913 * install-mk (MK_VERSION): 20140522 1914 1915 * lib.mk: use CC to link shlib for linux too 1916 patch from Brendan MacDonell 1917 19182014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1919 1920 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 1921 if WITH_META_STATS is defined. 1922 19232014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1924 1925 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 1926 to supress dirdeps outside of .CURDIR. 1927 19282014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1929 1930 * Fix spelling errors - patch from Pedro Giffuni 1931 19322014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 1933 1934 * install-mk (MK_VERSION): 20140314 1935 1936 * dirdeps.mk (beforedirdeps): a handy hook 1937 1938 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 1939 to visit leaf dirs to be intercepted (eg. for distributed 1940 build). 1941 1942 * dirdeps.mk (__depdirs): ensure // don't sneak in 1943 1944 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 1945 1946 19472014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 1948 1949 * rst2htm.mk (RST2PDF): add support for rst2pdf 1950 19512014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1952 1953 * install-mk (MK_VERSION): bump version 1954 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 1955 available. 1956 19572014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1958 1959 * options.mk: avoid :U so this isn't bmake dependent 1960 19612014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 1962 1963 * options.mk: cleanup and simplify semanitcs 1964 NO_* dominates all, if both WITH_* and WITHOUT_* 1965 are defined then result is DOMINATE_* which defaults to "no". 1966 Ie. WITHOUT_ normally wins. 1967 19682013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1969 1970 * install-mk (MK_VERSION): bump version 1971 * meta2deps.py: convert to print function for python3 compat. 1972 we also need to open files with mode 'r' rather than 'rb' 1973 otherwise we get bytes instead of strings. 1974 19752013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1976 1977 * install-mk (MK_VERSION): bump version 1978 1979 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 1980 apply the same filtering (M_dep_qual_fixes) when setting _machines 1981 as _build_dirs. 1982 Also fix the filtering of Makefile.depend files - for reporting 1983 what we are looking for (M_dep_qual_fixes can get confused by 1984 Makefile.depend) 1985 Add some more debug info. 1986 19872013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 1988 1989 * gendirdeps.mk (_objtops): fix typo also 1990 while processing M2D_OBJROOTS to gather qualdir_list 1991 qualify $ql with loop iterator to ensure correct results. 1992 19932013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1994 1995 * install-mk (MK_VERSION): 20130801 1996 * libs.mk: update to match progs.mk 1997 19982013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 1999 2000 * install-mk (MK_VERSION): 20130726 2001 some updates from Juniper and FreeBSD 2002 o meta2deps.py: indicate file and line number when we hit parse 2003 errors 2004 also allow @file to provide huge list of .meta files. 2005 * meta2deps.py: add try_parse() to cleanup the above. 2006 20072013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 2008 2009 * install-mk (MK_VERSION): 20130716 2010 * own.mk: add GPROG as an option 2011 * prog.mk: honor MK_GPROF==yes 2012 20132013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2014 2015 * install-mk (MK_VERSION): 20130505 2016 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 2017 for when $MACHINE isn't enough for objdir distinction. 2018 Bring meta2deps.sh closer to par with meta2deps.py. 2019 20202013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2021 2022 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 2023 also if the target 'beforeinstall' exists, make it depend on 2024 .dirdep (incase it uses STAGE_INSTALL). 2025 20262013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2027 2028 * install-mk (MK_VERSION): 20130401 ;-) 2029 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 2030 wrapper around install(1). 2031 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 2032 20332013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2034 2035 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 2036 * install-mk (MK_VERSION): bump version 2037 20382013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 2039 2040 * install-mk (MK_VERSION): bump version 2041 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 2042 any trailing /., rather apply :tA only when needed. 2043 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 2044 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 2045 consistently. 2046 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 2047 20482013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 2049 2050 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 2051 it is simpler to just not update when say building for "host" 2052 (where we know we apply filters to DIRDEPS), and using a 2053 non-machine qualified dependfile. 2054 20552013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 2056 2057 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 2058 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 2059 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 2060 * meta2deps.py: if machine is "host", then also trim 2061 self.host_target from any OBJROOTS. 2062 2063 20642013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2065 2066 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 2067 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 2068 but _DEPENDFILE does not, compare the new _DEPENDFILE against 2069 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 2070 20712013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 2072 2073 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 2074 and hook to all: via staging: 2075 20762013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2077 2078 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 2079 use a separate variable for the default .MAKE.DEPENDFILE value 2080 so that it can be controlled independently of 2081 .MAKE.DEPENDFILE_PREFERENCE 2082 2083 * meta.stage.mk: throw error if cp fails etc. 2084 Stage*() return early if passed no args. 2085 .ORDER stage_* 2086 20872013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2088 2089 * install-mk (MK_VERSION): bump version 2090 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 2091 20922013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2093 2094 * install-mk (MK_VERSION): bump version to 20130210 2095 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 2096 from Juniper. 2097 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 2098 than just MACHINE. 2099 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 2100 21012013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 2102 2103 * install-mk (MK_VERSION): bump version to 20130123 2104 * meta.stage.mk: add stage_links (hard links). 2105 if doing hard links, we add dest to link as well. 2106 Default the stage dir for [sym]links to STAGE_OBJTOP since 2107 these are typically specified as absolute paths. 2108 Add -m "mode" flag to StageFiles and StageAs. 2109 21102012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2111 2112 * install-mk (MK_VERSION): bump version to 20121111 2113 * autoconf.mk: avoid meta mode seeing changed commands for config.status 2114 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 2115 in case we were found via .../mk 2116 * sys.clean-env.mk: move it from examples, we and others use it 2117 "as is". 2118 * FILES: add srctop.mk and options.mk 2119 * own.mk: convert to using options.mk 2120 which is modeled after FreeBSD's handling of MK_* 2121 but more flexible. 2122 This allows MK_* for boolean knobs to not be confused 2123 with MK* which can be commands. 2124 2125 * examples/sys.clean-env.mk: add WITH[OUT]_ to 2126 MAKE_ENV_SAVE_PREFIX_LIST. 2127 Mention that HOME=/var/empty might be a good idea. 2128 21292012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 2130 2131 * sys.dependfile.mk: if not depend file exists, $MACHINE 2132 specific ones are supported but not the default, 2133 check if any exist and follow suit. 2134 21352012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 2136 2137 * install-mk (MK_VERSION): bump version to 20121106 2138 21392012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2140 2141 * import latest dirdeps.mk and meta2deps.py from Juniper. 2142 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 2143 also add PROGS_TARGETS and pass on PROG_CXX if it seems 2144 appropriate. 2145 21462012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 2147 2148 * meta.stage.mk: update CLEANFILES 2149 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 2150 * progs.mk: Add LDADD to PROG_VARS 2151 21522012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2153 2154 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 2155 _STAGED_DIRS so that these can be turned into filters for 2156 GENDIRDEPS_FILTER. 2157 21582012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2159 2160 * install-mk (MK_VERSION): bump version to 20121010 2161 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 2162 target.dirdep matches .dirdep 2163 21642012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2165 2166 * install-mk (MK_VERSION): bump version to 20120808 2167 * import latest meta2deps.py from Juniper. 2168 21692012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2170 2171 * install-mk (MK_VERSION): bump version to 20120711 2172 * dep.mk: add explicit dependencies on SRCS after applying 2173 SRCS_DEP_FILTER 2174 * meta.autodep.mk: add explicit dependencies on SRCS after 2175 applying SRCS_DEP_FILTER 2176 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 2177 21782012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2179 2180 * install-mk (MK_VERSION): bump version to 20120626 2181 * meta.sys.mk: ignore PYTHON if it does not exist 2182 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 2183 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 2184 entries ending in .${MACHINE} to decide if qualified _dirdep is 2185 needed. 2186 * gendirdeps.mk: only produce unqualified deps if no 2187 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 2188 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 2189 21902012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2191 2192 * install-mk (MK_VERSION): bump version to 20120420 2193 * add sys.dependfile.mk so we can experiment with 2194 .MAKE.DEPENDFILE_PREFERENCE 2195 * meta.autodep.mk: _DEPENDFILE is precious! 2196 21972012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2198 2199 * install-mk (MK_VERSION): bump version to 20120315 2200 * install-new.mk: avoid being interrupted 2201 22022012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2203 2204 * man.mk: MAN might have multiple values so be careful with exists(). 2205 22062012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 2207 2208 * install-mk (MK_VERSION): bump version to 20120112 2209 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 2210 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 2211 22122011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 2213 2214 * install-mk (MK_VERSION): bump version to 20111201 2215 * import dirdeps.mk from Juniper sjg@ 2216 o more consistent handling of DEP_MACHINE, especially when 2217 dealing with an odd Makefile.depend, when normally using 2218 Makefile.depend.${MACHINE} 2219 22202011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 2221 2222 * install-mk (MK_VERSION): bump version to 20111122 2223 * meta.autodep.mk: add some debug output, be more crisp about 2224 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 2225 22262011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 2227 2228 * install-mk (MK_VERSION): bump version to 20111111 2229 it's too cool to miss 2230 * import meta* updates from Juniper sjg@ 2231 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 2232 normally using Makefile.depend.${MACHINE}), handy for 2233 read-only manually maintained dependencies. 2234 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 2235 o gendirdeps.mk if ERROR: from meta2deps.py do not update 2236 anything. 2237 22382011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 2239 2240 * install-new.mk separate the cmp and copy logic to its own function. 2241 22422011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2243 2244 * install-mk (MK_VERSION): bump version to 20111028 2245 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 2246 * subdir.mk: ensure _SUBDIRUSE is provided 2247 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 2248 * meta.subdir.mk: always allow for Makefile.depend 2249 22502011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2251 2252 * install-mk (MK_VERSION): bump version to 20111010 2253 o minor tweak to *dirdeps.mk from Juniper sjg@ 2254 22552011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2256 2257 * install-mk (MK_VERSION): bump version to 20111001 2258 o add meta2deps.py from Juniper sjg@ 2259 o tweak gendirdeps.mk to work with meta2deps.py when not 2260 cross-building 2261 * autoconf.mk: add autoconf-input as a hook for regenerating 2262 AUTOCONF_INPUTS (configure). 2263 22642011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 2265 2266 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 2267 trigger for updating Makefile.depend* 2268 22692011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2270 2271 * install-mk (MK_VERSION): bump version to 20110808 2272 * obj.mk: minor cleanup 2273 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 2274 22752011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 2276 2277 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 2278 specified dir. 2279 22802011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 2281 2282 * meta.autodep.mk: if XMAKE_META_FILE is set 2283 the makefile uses a foreign make, and so dependencies 2284 can only be gathered from a clean tree build. 2285 22862011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 2287 2288 * install-mk (MK_VERSION): bump version to 20110622 2289 * meta.autodep.mk: improve bootstraping 2290 22912011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 2292 2293 * yacc.mk: handle the corner case of .c being removed 2294 while .h remains. 2295 22962011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 2297 2298 * yacc.mk: do .y.h and .y.c separately 2299 23002011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2301 2302 * install-mk (MK_VERSION): bump version to 20110606 2303 * don't store SRC_DIRDEPS in Makefile.depend* by default 2304 not everyone needs it. 2305 23062011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2307 2308 * install-mk (MK_VERSION): bump version to 20110505 2309 first release including meta mode makefiles 2310 23112011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 2312 2313 * meta.stage.mk: add STAGE_AS_SETS and stage_as 2314 for things that need to be staged with different names. 2315 23162011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2317 2318 * meta.stage.mk: add notion of STAGE_SETS 2319 so a makefile can stage to multiple dirs 2320 23212011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 2322 2323 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 2324 on target name. 2325 23262011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2327 2328 * install-mk (MK_VERSION): bump version to 20110330 2329 23302011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 2331 2332 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 2333 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 2334 * sys.mk: re-define M_whence in terms of M_type. 2335 M_type is useful for checking if something is a builtin. 2336 23372011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 2338 2339 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 2340 stage_libs 2341 23422011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2343 2344 * dirdeps.mk: correct value for _depdir_files depends on 2345 .MAKE.DEPENDFILE 2346 Add our copyright - just to make it clear we have frobbed this 2347 quite a bit. 2348 DEP_MACHINE needs to be set to MACHINE each time, if using only 2349 Makefile.depend (cf. Makefile.depend.${MACHINE}) 2350 2351 * meta.stage.mk: meta mode version of staging 2352 2353 * init.mk, final.mk: include local.*.mk to simplify customization 2354 23552011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2356 2357 * auto.obj.mk: just because we are doing mk destroy, we should 2358 still set .OBJDIR correctly if it exists. 2359 2360 * install-mk (mksrc): do not exclude meta.sys.mk 2361 23622011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2363 2364 * host-target.mk: set/export _HOST_ARCH etc separately, 2365 catch junk resulting from uname -p, so we can find sys/Linux.mk 2366 correctly. 2367 23682011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2369 2370 * meta.sys.mk: throw an error if /dev/filemon is missing and we 2371 expected to be updating Makefile.depend* 2372 23732011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2374 2375 * install-mk (MK_VERSION): bump version to 20110214 2376 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 2377 23782010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 2379 2380 * meta.sys.mk: not valid for older bmake 2381 23822010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 2383 2384 * install-mk (MK_VERSION): bump version to 20100919 2385 include dirdeps.mk et al from Juniper Networks, 2386 for meta mode - requires filemon(9). 2387 * sys.mk, subdir.mk: Add hooks for meta mode. 2388 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 2389 to make turning it on/off simple. 2390 23912010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 2392 2393 * install-mk (MK_VERSION): bump version to 20100616 2394 * fix typo in sys.mk 2395 23962010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 2397 2398 * install-mk (MK_VERSION): bump version to 20100612 2399 * lib.mk: remove duplicate addition to SOBJS 2400 24012010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 2402 2403 * sys.mk: Add a means of selectively turning on debug flags. 2404 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 2405 will act as if we did make -dv if .CURDIR ends in lib/sjg 2406 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 2407 the start of sys.mk rather than the end. 2408 This only makes sense for leaf dirs, so we check that 2409 .MAKE.LEVEL > 0 2410 24112010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 2412 2413 * install-mk (MK_VERSION): bump version to 20100608 2414 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 2415 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 2416 also make it easier for folk to tweak 2417 24182010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 2419 2420 * install-mk (MK_VERSION): bump version to 20100606 2421 do not install examples/* 2422 * FILES: add examples/sys.clean-env.mk 2423 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 2424 this requires bmake-20100606 or later to work. 2425 24262010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 2427 2428 * sys.mk (M_tA): better simulate the result of :tA if not available. 2429 24302010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2431 2432 * sys.mk: canonicalize MAKE_VERSION 2433 old versions reported bmake-<src-date> build-<build-date> 2434 whereas we only care about <src-date> 2435 24362010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 2437 2438 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 2439 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 2440 is !empty 2441 24422010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 2443 2444 * dpadd.mk: use LDADD_* if defined. 2445 24462010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2447 2448 * install-mk (MK_VERSION): bump version to 20100420 2449 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 2450 * autoconf.mk allow AUTO_AUTOCONF 2451 24522010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 2453 2454 * obj.mk: add objwarn to keep freebsd makefiles happy 2455 * auto.obj.mk: ensure Mkdirs is available. 2456 * FILES: add auto.dep.mk - a simpler version of autodep.mk 2457 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 2458 asked to do that. 2459 fix/simplify the tests for when to run mkdep. 2460 * auto.dep.mk: add some explanation of how/what we do. 2461 * autodep.mk: skip the .OPTIONAL frobbing of .depend 2462 bmake's FROM_DEPEND flag makes it redundant. 2463 24642010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2465 2466 * install-mk (MK_VERSION): bump version to 20100404 2467 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 2468 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 2469 Also create a target _SUBDIRUSE so that we can be used without 2470 subdir.mk 2471 24722010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 2473 2474 * dep.mk: use <> when .including so can override. 2475 24762010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 2477 2478 * lib.mk (SHLIB_LINKS): ensure a string comparison. 2479 24802010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 2481 2482 * install-mk (MK_VERSION): bump version to 20100102 2483 * own.mk: ensure PRINTOBJDIR works 2484 * autoconf.mk: pass on CONFIGURE_ARGS 2485 * init.mk: handle COPTS.${.IMPSRC:T} etc. 2486 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 2487 fix handling of symlinks for darwin 2488 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 2489 * man.mk: suppress chown when not root. 2490 * rst2htm.mk: allow srcs from multiple locations. 2491 * sys.mk: M_whence, stop after 1st line of output. 2492 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 2493 * sys/SunOS.mk: we need to export PATH 2494 24952009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 2496 2497 * install-mk (MK_VERSION): bump version 2498 include rst2htm.mk 2499 25002009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 2501 2502 * sys.mk,libnames.mk add .-include <local.*> 2503 this allows local customization without the need to edit the 2504 distributed files. 2505 25062009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 2507 2508 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 2509 older versions already installed. 2510 25112009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 2512 2513 * stage.mk (.stage-install): generalize lib.mk's .libinstall 2514 * rules.mk rules for generic Makefile. 2515 * inc.mk install for includes. 2516 25172009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 2518 2519 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 2520 this, so provide it if using native make. 2521 25222009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 2523 2524 * FILES: move all the platform *.sys.mk files to sys/*.mk 2525 * Rename Generic.sys.mk to sys.mk - we always want it. 2526 25272009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 2528 2529 * install-mk (MK_VERSION): bump version 2530 * host-target.mk: only export the expensive stuff 2531 * Generic.sys.mk (sys_mk): for SunOS we need to look for 2532 ${HOST_OS}.${HOST_OSMAJOR} too! 2533 25342009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 2535 2536 * install-mk (MK_VERSION): bump version 2537 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 2538 based on patch from Greg Olszewski. 2539 * Generic.sys.mk: if we have nothing to work with 2540 set LORDER etc only if we can find it. 2541 25422009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 2543 2544 * install-mk (MK_VERSION): bump version 2545 * man.mk: cleanman: remove CLEANMAN if defined. 2546 25472009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 2548 2549 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 2550 25512009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 2552 2553 * install-mk (MK_VERSION): bump version 2554 include auto.obj.mk 2555 2556 25572009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 2558 2559 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 2560 25612008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 2562 2563 * install-mk (MK_VERSION): bump version 2564 man.mk: ensure we generate *.cat1 etc in . 2565 25662008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 2567 2568 * install-mk (MK_VERSION): bump version 2569 add prlist.mk 2570 25712007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 2572 2573 * Generic.sys.mk: Allow os specific sys.mk to be in a 2574 subdir of ${.PARSEDIR} 2575 25762007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 2577 2578 * install-mk (MK_VERSION): bump version 2579 * general cleanup 2580 * dpadd.mk introduce DPMAGIC_LIBS_* 2581 25822007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 2583 2584 * install-mk (MK_VERSION): bump version 2585 2586 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 2587 depend files and ensure clean is called for each lib/prog. 2588 25892007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 2590 2591 * autodep.mk (.depend): delete lines that do not start with 2592 space and do not contain ':' 2593 25942007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 2595 2596 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 2597 so make sure the transform for .OPTIONAL copes. 2598 25992007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2600 2601 * install-mk (MK_VERSION): bump version 2602 2603 * own.mk: make sure RM and LN are defined. 2604 2605 * obj.mk: fix a typo, and objlink target. 2606 26072006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 2608 2609 * install-mk (MK_VERSION): bump version 2610 * added libs.mk - analogous to progs.mk 2611 make both of them always inlcude {lib,prog}.mk 2612 26132006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 2614 2615 * progs.mk: add a means of building multiple apps in one dir. 2616 26172006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 2618 2619 * install-mk (MK_VERSION): bump version to 20061126 2620 2621 * warnings.mk: detect invalid WARNINGS_SET 2622 2623 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 2624 specific warnings. 2625 2626 * For .cc sources, turn off warnings that g++ vomits on. 2627 26282006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 2629 2630 * own.mk: if __initialized__ target doesn't exist and we are 2631 FreeBSD we got here directly from sys.mk 2632 26332006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 2634 2635 * install-mk (MK_VERSION): bump version to 20061106 2636 add scripts.mk 2637 26382006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 2639 2640 * install-mk (MK_VERSION): bump version to 20060318 2641 2642 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 2643 26442006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 2645 2646 * install-mk (MK_VERSION): bump version to 20060302 2647 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 2648 26492006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 2650 2651 * install-mk (MK_VERSION): bump version to 20060301 2652 * autodep.mk (.depend): 2653 if MAKE_VERSION is newer than 20050530 we can make .END depend on 2654 .depend and make .depend depend on __depsrcs that exist. 2655 * dpadd.mk: add SRC_PATHADD 2656 26572005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2658 2659 * install-mk (MK_VERSION): bump version to 20051104 2660 * prog.mk: remove all the LIBC?= junk, use 2661 .-include libnames.mk instead (none by default). 2662 also if USE_DPADD_MK is set, include that. 2663 26642005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2665 2666 * install-mk (MK_VERSION): bump version to 20051001 2667 Add UnixWare.sys.mk from Klaus Heinz. 2668 26692005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 2670 2671 * install-mk: always install *.sys.mk and if need be symlink one 2672 to sys.mk 2673 26742005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 2675 2676 * subdir.mk, own.mk: use .MAKE rather than MAKE 2677 26782004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2679 2680 * own.mk: don't use NetBSD's _SRC_TOP_ it can 2681 cause confusion. Also don't take just 'mk' as a 2682 srctop indicator. 2683 26842004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 2685 2686 * warnings.mk: overhauled, now very powerful. 2687 26882004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2689 2690 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 2691 26922004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 2693 2694 * install-mk (MK_VERSION): bump version to 20040201 2695 * extract HOST_TARGET stuff to host-target.mk so own.mk and 2696 Generic.sys.mk can share. 2697 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 2698 26992003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 2700 2701 * install-mk (MK_VERSION): 20030930 2702 * rename generic.sys.mk to Generic.sys.mk 2703 so that it does not get installed (unless being used as sys.mk) 2704 * set OS and ROOT_GROUP for those that we know the value. 2705 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 2706 we don't do it again for each sub-make. 2707 27082003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 2709 2710 * install-mk (MK_VERSION): 20030928 2711 Add some extra *.sys.mk from bootstrap-pkgsrc 2712 some of these likely still need work. 2713 Make everything default to root:wheel ownership, 2714 sys.mk can set ROOT_GROUP accordingly. 2715 27162003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 2717 2718 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 2719 not the portable ones. 2720 27212003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 2722 2723 * install-mk: add ability to use cp -f when updating 2724 destination .mk files. Also now possible to play games with 2725 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 2726 into dest - not recommended unless you seriously want to. 2727 27282003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 2729 2730 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 2731 for semi-compatability with NetBSD. 2732 27332003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 2734 2735 * install-mk: add a version indicator 2736 27372003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 2738 2739 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 2740 2741 * install-mk: Allow FORCE_SYS_MK to come from env 2742 2743 2744 2745