12025-11-18 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * sys.vars.mk: set MAKE_POSIX_SHELL to 1 if .SHELL is POSIX, 0 if not. 4 set isPOSIX_SHELL for use in target scripts. 5 6 * meta.stage.mk: set MAKE_POSIX_SHELL if needed. 7 8 * install-new.mk: use ${isPOSIX_SHELL:Ufalse} to see if we can 9 avoid running 'expr'. 10 11 * install-new.mk: Allow use of cp or mv - controlled by CPMV_OP 12 (default mv). 13 142025-11-13 Simon J Gerraty <sjg@beast.crufty.net> 15 16 * sys.vars.mk: add M_sh1 so we can handle older bmake that does 17 not support :sh1 18 192025-11-11 Simon J Gerraty <sjg@beast.crufty.net> 20 21 * install-mk (MK_VERSION): 20251111 22 23 * meta2deps.sh: reset some vars for each new meta file 24 set meta_file to path of meta file. 25 If meta2deps appears in DEBUG_SH set -x. 26 272025-09-16 Simon J Gerraty <sjg@beast.crufty.net> 28 29 * options.mk: Add OPTIONS_DEFAULT_DEPENDENT_REQUIRED of the form 30 OPTION/REQUIRED[/VALUE] 31 if OPTION is $VALUE (default is "yes"), then REQUIRED must be too. 32 We add OPTIONS_DEFAULT_DEPENDENT_REQUIRED (sans any /{yes,no}) to 33 OPTIONS_DEFAULT_DEPENDENT so DEPENDENT/REQUIRED follow the same 34 processing. 35 36 Also add OPTIONS_FORCED_VALUES of the form OPTION/{yes,no} 37 we add any OPTIONS_FORCED_NO and OPTIONS_FORCED_YES before 38 processing. 39 40 Simplify the processing of OPTIONS_DEFAULT_VALUES and 41 OPTIONS_DEFAULT_DEPENDENT by splitting the tuples and use two 42 iterator variables in the .for loops. 43 442025-08-09 Simon J Gerraty <sjg@beast.crufty.net> 45 46 * install-mk (MK_VERSION): 20250808 47 48 * replace sjg license with just BSD-2-Clause SPDX tag 49 502025-07-24 Simon J Gerraty <sjg@beast.crufty.net> 51 52 * install-mk (MK_VERSION): 20250724 53 54 * meta2deps: Allow X record to have 3 or 4 args. 55 V4 filemon on Linux produces 3 56 V5 filemon on FreeBSD produces 4 57 582025-07-22 Simon J Gerraty <sjg@beast.crufty.net> 59 60 * install-mk (MK_VERSION): 20250721 61 62 * meta2deps.{py,sh}: detect corrupted filemon output (an issue on 63 Linux) by checking each record type has the correct number of 64 words. Throw an error if necessary so that gendirdeps.mk will not 65 update Makefile.depend 66 672025-07-04 Simon J Gerraty <sjg@beast.crufty.net> 68 69 * prog.mk: .MADE is a special source not a target! 70 712025-05-28 Simon J Gerraty <sjg@beast.crufty.net> 72 73 * install-mk (MK_VERSION): 20250528 74 75 * add dirdeps2dplibs.mk 76 772025-05-18 Simon J Gerraty <sjg@beast.crufty.net> 78 79 * install-mk (MK_VERSION): 20250518 80 81 * meta.autodep.mk (META_FILES): re-work to fix filtering. 82 if OPTIMIZE_OBJECT_META_FILES==yes 83 provide a default META_FILE_OBJ_FILTER that selects a valid 84 .SUFFIX to match *o.meta, there's no guarantee that it will be as 85 simple as .o or .So etc. 86 We have to defer evaluation until the target script is run 87 for any of these filters to have any effect. 88 Use :S,${.OBJDIR}/,, rather than :T incase there are objects 89 in sub-dirs. 90 91 * lib.mk: leverage ${.SUFFIXES} when setting dependencies. 92 93 * add UPDATE_DEPENDFILE as a dependent option - follows 94 DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for 95 UPDATE_DEPENDFILE when we think it should be yes. 96 This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE 97 without overriding UPDATE_DEPENDFILE directly - which can lead to 98 trouble. 99 1002025-05-16 Simon J Gerraty <sjg@beast.crufty.net> 101 102 * install-mk (MK_VERSION): 20250515 103 104 * meta2deps.py: resolve the target of a Move or Link first 105 and track the last path resolved, then if the src is a relative 106 path we can easily use that last path to resolve the src correctly. 107 108 * meta2deps.sh: for a Move or Link add the dir of target path to 109 the list used to resolve the src path. 110 1112025-04-18 Simon J Gerraty <sjg@beast.crufty.net> 112 113 * init.mk: include Skipping ${RELDIR} when _SKIP_BUILD is not empty. 114 1152025-04-14 Simon J Gerraty <sjg@beast.crufty.net> 116 117 * install-mk (MK_VERSION): 20250414 118 119 * init.mk: check ONLY_*_LIST and NOT_*_LIST for SKIP_BUILD_VAR_LIST 120 to set _SKIP_BUILD 121 122 * genfiles.mk: add FILTER support 123 124 * rst2htm.mk: latest docutils drops .py extensions 125 1262025-03-26 Simon J Gerraty <sjg@beast.crufty.net> 127 128 * install-mk (MK_VERSION): 20250326 129 130 * auto.obj.mk: fix and simplify handling of relative __objdir, 131 convert it to absolute before checking against .OBJDIR 132 1332025-03-14 Simon J Gerraty <sjg@beast.crufty.net> 134 135 * install-mk (MK_VERSION): 20250314 136 137 * meta.stage.mk: StageFiles --subdir: preserve the dir part of 138 each file under $dest 139 1402025-03-12 Simon J Gerraty <sjg@beast.crufty.net> 141 142 * meta.autodep.mk: do a better job of handling MAKESYSPATH in 143 GENDIRDEPS_ENV. If we have MAKE_VERSION >= 20230123 we can just 144 use .SYSPATH, otherwise it is a bit more complicated. 145 1462025-01-10 Simon J Gerraty <sjg@beast.crufty.net> 147 148 * rust.mk: use RUST_LIBS and RUST_PROGS 149 1502025-01-01 Simon J Gerraty <sjg@beast.crufty.net> 151 152 * install-mk (MK_VERSION): 20250101 153 154 * use W flag to :S and :C rather than :tW 155 1562024-12-16 Simon J Gerraty <sjg@beast.crufty.net> 157 158 * rust.mk: add RUSTFLAGS if needed 159 1602024-12-12 Simon J Gerraty <sjg@beast.crufty.net> 161 162 * init.mk (OBJS_SRCS_FILTER): apply this as 163 ${OBJS_SRCS_FILTER:ts:} as we do in FreeBSD. 164 1652024-12-03 Simon J Gerraty <sjg@beast.crufty.net> 166 167 * install-mk (MK_VERSION): 20241202 168 169 * setopts.sh: needed by newlog.sh 170 1712024-11-22 Simon J Gerraty <sjg@beast.crufty.net> 172 173 * meta.sys.mk: add META_MODE_XTRAS to META_MODE to make it 174 easier to add things like 'env' when debugging. 175 176 * install-mk (MK_VERSION): 20241122 177 178 * rust.mk: rename CARGO* to RUST_CARGO* so I don't feel 179 like this makefile should be renamed to cargo.mk 180 1812024-11-11 Simon J Gerraty <sjg@beast.crufty.net> 182 183 * dirdeps.mk: add DIRDEPS_CACHED_ENV to dirdeps-cached and 184 DIRDEP_USE_EPILOGUE to _DIRDEP_USE 185 1862024-10-30 Simon J Gerraty <sjg@beast.crufty.net> 187 188 * meta.sys.mk: if MK_META_ERROR_TARGET is yes and NEWLOG_SH is 189 set, and ERROR_LOGDIR already exists, hook _rotateErrorLog to 190 .BEGIN target. 191 1922024-10-27 Simon J Gerraty <sjg@beast.crufty.net> 193 194 * options.mk: add support for DEBUG_OPTIONS (similar to 195 DEBUG_DIRDEPS) to allow us to see where options get set. 196 Eg. DEBUG_OPTIONS="STAGING*" gives: 197 198 bmake[1]: "mk/options.mk" line 89: sys.mk: MK_STAGING=yes (MK_DIRDEPS_BUILD=no) 199 bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING=yes 200 bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING_PROG=no 201 bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_MAN=yes (MK_STAGING=yes) 202 bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_PROG=no (MK_STAGING=yes) 203 bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_RUST=no (MK_STAGING_PROG=no) 204 205 * own.mk: fix setting of STAGE_OBJTOP (normally set by sys.dirdeps.mk) 206 2072024-10-26 Simon J Gerraty <sjg@beast.crufty.net> 208 209 * rust.mk: add some documentation and support for staging 210 2112024-10-25 Simon J Gerraty <sjg@beast.crufty.net> 212 213 * rust.mk: a means of integrating Rust projects into a larger build. 214 2152024-10-18 Simon J Gerraty <sjg@beast.crufty.net> 216 217 * dirdeps-targets.mk: if DEBUG_DIRDEPS_TARGETS and we found 218 STATIC_DIRDEPS_CACHE, report its relative path. 219 2202024-09-30 Simon J Gerraty <sjg@beast.crufty.net> 221 222 * dirdeps.mk: tweak the debug message for "Loading" a 223 Makefile.depend file, always report what the actual makefile is 224 with the DIRDEP it is for. 225 Remove the redundant "Looking" message. 226 2272024-09-26 Simon J Gerraty <sjg@beast.crufty.net> 228 229 * meta2deps.py: when raising AssertionError include meta file name 230 with $SB trimmed if possible. 231 2322024-09-23 Simon J Gerraty <sjg@beast.crufty.net> 233 234 * meta2deps.py: replace assert() with raise AssertionError when we 235 detect missing eXits, to ensure a meaningful message gets into 236 log. 237 2382024-09-21 Simon J Gerraty <sjg@beast.crufty.net> 239 240 * install-mk (MK_VERSION): 20240921 241 242 * FILES: add genfiles.mk 243 2442024-09-20 Simon J Gerraty <sjg@beast.crufty.net> 245 246 * install-mk (MK_VERSION): 20240920 247 248 * cython.mk: Get PYTHON_VERSION from PYTHON 249 2502024-08-31 Simon J Gerraty <sjg@beast.crufty.net> 251 252 * subdir.mk: add ${SUBDIR.yes} - allows for SUBDIR.${MK_*} 253 and handle subdir with '-' in its name. 254 2552024-08-23 Simon J Gerraty <sjg@beast.crufty.net> 256 257 * install-mk (MK_VERSION): 20240820 258 259 * links.mk: Allow a filter to be applied to SYMLINKS etc. 260 It is up to [BUILD_][SYM]LINKS_FILTER to do something sane. 261 Also only claim we are making a symlink if the value changed. 262 2632024-06-22 Simon J Gerraty <sjg@beast.crufty.net> 264 265 * install-mk (MK_VERSION): 20240616 266 267 * dirdeps.mk: apply DEP_DIRDEPS_BUILD_DIR_FILTER after we have 268 computed build dirs, since some filters cannot be easily expressed via 269 DEP_DIRDEPS_FILTER. 270 2712024-05-31 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * dirdeps.mk: move reset of DIRDEPS_EXPORT_VARS 274 until after we a finished with it if building a cache. 275 2762024-05-04 Simon J Gerraty <sjg@beast.crufty.net> 277 278 * install-mk (MK_VERSION): 20240504 279 280 * dirdeps.mk: allow BUILD_DIRDEPS_OVERRIDES to pass overrides to 281 sub-make building DIRDEPS_CACHE. 282 2832024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 284 285 * meta.autodep.mk: do not override start_utc 286 2872024-04-18 Simon J Gerraty <sjg@beast.crufty.net> 288 289 * sys.dirdeps.mk: set defaults for DEP_* at level 0 too. 290 These help when first include of Makefile.depend happens in a leaf 291 dir. 292 293 * install-mk (MK_VERSION): 20240414 294 2952024-04-09 Simon J Gerraty <sjg@beast.crufty.net> 296 297 * install-mk (MK_VERSION): 20240408 298 299 * init.mk: allow for _ as well as . to join V 300 and Q from QUALIFIED_VAR_LIST and VAR_QUALIFIER_LIST. 301 302 * progs.mk: avoid overlap between PROG_VARS and 303 init.mk's QUALIFIED_VAR_LIST since PROG would also 304 match its VAR_QUALIFIER_LIST, 305 libs.mk does not have the same issue. 306 307 * subdir.mk: _SUBDIRUSE for realinstall should run install 308 remove include of ${.CURDIR}/Makefile.inc that can be done via 309 local.subdir.mk where needed 310 311 * own.mk: do not conflict with man.mk 312 3132024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 314 315 * install-mk (MK_VERSION): 20240314 316 317 * add sys/Cygwin.mk from Christian Franke 318 3192024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 320 321 * install-mk (MK_VERSION): 20240309 322 323 * meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not 324 want to save the .ERROR_META_FILE 325 3262024-02-20 Simon J Gerraty <sjg@beast.crufty.net> 327 328 * install-mk (MK_VERSION): 20240220 329 330 * sys.dirdeps.mk, dirdeps-targets.mk, init.mk: 331 do not set .MAIN: dirdeps in sys.dirdeps.mk 332 dirdeps-targets.mk will do that for top-level builds 333 and init.mk will do it for others. 334 This allows a Makefile which has no need of 'dirdeps' to 335 set .MAIN for itself and "just work". 336 3372024-02-18 Simon J Gerraty <sjg@beast.crufty.net> 338 339 * bsd.*.mk: for makefiles that get a bsd. symlink, 340 use _this in multiple inclusion tags since .PARSEFILE will not 341 DTRT when such a makefile is included directly by Makefile and 342 automatically (without bsd. prefix). 343 Since we cannot guarantee that our sys.mk will be used, we provide 344 a default _this in each makefile that gets a bsd. prefix such that 345 the value is the same regardless of bsd. prefix. 346 347 * subdir.mk: drop the !target guard on $SUBDIR_TARGETS 348 3492024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 350 351 * install-mk (MK_VERSION): 20240212 352 353 * SPDX-License-Identifier: BSD-2-Clause 354 Add SPDX-License-Identifier to inidicate that I consider 355 my copyright on any of these makefiles equivalent to BSD-2-Clause 356 357 * autoconf.mk: allow for configure.ac as currently recommended 358 359 * subdir.mk: support @auto 360 which is replaced with each subdir that 361 has a [Mm]akefile. 362 363 * subdir.mk: include local.subdir.mk if it exists. 364 365 * subdir.mk: rework to handle .WAIT 366 3672024-02-11 Simon J Gerraty <sjg@beast.crufty.net> 368 369 * subdir.mk: _SUBDIRUSE report the target we are entering subdirs for. 370 3712024-02-10 Simon J Gerraty <sjg@beast.crufty.net> 372 373 * prog.mk: treat empty SRCS the same as undefined 374 3752024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 376 377 * Avoid undefined errors in lint (-dL) mode 378 379 * man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7) 380 3812024-01-28 Simon J Gerraty <sjg@beast.crufty.net> 382 383 * install-mk (MK_VERSION): 20240128 384 385 * FILES: add ccm.dep.mk for C++ modules 386 add suffixes.mk for common location for generic SUFFIX rules. 387 388 * auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk 389 replace OBJ_EXTENSIONS with OBJ_SUFFIXES 390 391 * autodep.mk: leverage CXX_SUFFIXES for __depsrcs 392 and update style (spaces around = etc) 393 394 * init.mk: add OBJS_SRCS_FILTER to filter SRCS when 395 setting OBJS 396 397 * meta2deps.py: handle multiple ./ embedded in path better. 398 3992024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 400 401 * install-mk (MK_VERSION): 20240105 402 * dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same 403 limits on command line length, so skip export of lists to env. 404 4052023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 406 407 * man.mk: add logic for staging man pages 408 4092023-11-28 Simon J Gerraty <sjg@beast.crufty.net> 410 411 * jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating 412 point. This keeps JOB_MAX numeric incase another makefile does 413 comparisons. 414 4152023-11-04 Simon J Gerraty <sjg@beast.crufty.net> 416 417 * dpadd.mk: add support for DPLIBS_QUALIFIER_LIST 418 419 * gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES 420 4212023-10-03 Simon J Gerraty <sjg@beast.crufty.net> 422 423 * compiler.mk (COMPILER_VERSION): clang at least is into 424 double digit major versions. 425 4262023-10-02 Simon J Gerraty <sjg@beast.crufty.net> 427 428 * install-mk (MK_VERSION): 20231001 429 430 * set _CCLINK in init.mk so lib.mk can use it for default SHLIB_LD 431 432 * lib.mk (cleanlib): use LD_solink so we remove all the right files. 433 Use -Wl for -soname since we now default to linking with CC 434 We should not need SHLIB_LDSTARTFILE or SHLIB_LDENDFILE when linking 435 with CC. 436 4372023-09-24 Simon J Gerraty <sjg@beast.crufty.net> 438 439 * init.mk (QUALIFIED_VAR_LIST): Add SRCS 440 4412023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 442 443 * jobs.mk (JOB_MAX): use -jC if we can 444 we actually use JOB_MAX_C which defaults to 1.33C 445 4462023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 447 448 * now_utc: %s only works with :localtime 449 4502023-07-14 Simon J Gerraty <sjg@beast.crufty.net> 451 452 * install-sh: ignore -c as claimed and only insist on 453 a directory for destination when more than one file to copy. 454 455 * sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and 456 ${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64) 457 4582023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 459 460 * install-mk (MK_VERSION): 20230711 461 462 * sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible 463 install(1) 464 465 * sys/IRIX.mk: when setting ROOT_GROUP only match the first :0: 466 set INSTALL to install-sh rather than pathname that may not exist 467 (yet). 468 4692023-07-07 Simon J Gerraty <sjg@beast.crufty.net> 470 471 * dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE 472 normally this is empty - for the default target, but there are 473 use-cases where we might set it to something else. 474 4752023-07-04 Simon J Gerraty <sjg@beast.crufty.net> 476 477 * install-mk (MK_VERSION): 20230704 478 479 * dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output 480 when DEBUG_DIRDEPS is in effect. 481 Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n 482 can greatly improve readability. 483 4842023-05-25 Simon J Gerraty <sjg@beast.crufty.net> 485 486 * meta.autodep.mk (beforegendirdeps): allow tasks to be done 487 at END but before gendirdeps 488 4892023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 490 491 * install-mk (MK_VERSION): 20230522 492 493 * host-target.mk: deal with garbage from uname -m on 494 Darwin ppc, also NetBSD appears to use x86_64 for MACHINE_ARCH 495 these days so just leave it be. 496 For Darwin arm and i386 use _HOST_MACHINE for _HOST_ARCH so we get 497 arm64 and x86_64 in HOST_TARGET. 498 4992023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 500 501 * sys.vars.mk: M_mtime use :mtime or 'stat -f %m' for older 502 versions of bmake. 503 504 * dirdeps.mk (TARGET_SPEC_VARS.host): 505 While *most* projects need only DEP_MACHINE for host, 506 there is always an exception. So we allow for 507 TARGET_SPEC_VARS.host to be a subset of TARGET_SPEC_VARS. 508 The default will *just work* for most projects. 509 We set DEP_TARGET_SPEC_VARS and hence DEP_TARGET_SPEC 510 based on DEP_MACHINE. 511 Allow for M_dep_qual_fixes.host to be different too 512 and take care to apply the right set. 513 5142023-05-14 Simon J Gerraty <sjg@beast.crufty.net> 515 516 * sys.dirdeps.mk: we *do* want to override OBJTOP 517 and if MAKEOBJDIR was not in env as we want it; 518 put it there - carefully. 519 Ensure OBJROOT ends in / or - (/ preferred) 520 Add more comments to explain what/why. 521 5222023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 523 524 * install-mk (MK_VERSION): 20230512 525 526 * dirdeps.mk: take care not to qualify "host" dirdeps 527 528 * sys.dirdeps.mk (OBJTOP): must use ?= 529 5302023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 531 532 * meta.autodep.mk: if LOCAL_DEPENDS_GUARD is "no" 533 suppress processing of .depend 534 5352023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * dirdeps.mk: do not add _CURDIR to DIRDEPS for SRCTOP 538 539 * meta.sys.mk sys.dirdeps.mk: 540 originally DIRDEPS_BUILD and META_MODE were the same thing, 541 but META_MODE is useful by itself. 542 Move things from meta.sys.mk which actually pertain to 543 DIRDEPS_BUILD to sys.dirdeps.mk 544 5452023-05-04 Simon J Gerraty <sjg@beast.crufty.net> 546 547 * install-mk (MK_VERSION): 20230504 May the Forth be with you 548 549 * dirdeps.mk: as with meta.sys.mk we treat "host" as special. 550 DEP_TARGET_SPEC is just ${DEP_MACHINE} 551 552 * meta.sys.mk: ensure DEP_* for TARGET_SPEC_VARS are set at 553 level > 0 since these are often refered to in Makefile.depend* 554 5552023-04-26 Simon J Gerraty <sjg@beast.crufty.net> 556 557 * jobs.mk: report ${.TARGET} ${JOB_ARGS} ${JOB_LOG} and 558 anything in ${JOB_LOG_START} 559 560 * jobs.mk: look for newlog.sh in ${.SYSPATH:U${.PARSEDIR}} 561 or a scripts subdir before searching $PATH. 562 563 * FILES: include newlog.sh for jobs.mk 564 5652023-04-20 Simon J Gerraty <sjg@beast.crufty.net> 566 567 * install-mk (MK_VERSION): 20230420 568 569 * lib.mk: include LDFLAGS and LDADD when linking shared libs 570 571 * gendirdeps.mk: document setting GENDIRDEPS_FILTER_VARS etc 572 via local.meta.sys.mk rather than local.gendirdeps.mk 573 so DEP_* variables can be set at level 1+ to avoid syntax errors 574 when used in conditionals in manually maintained Makefile.depend 575 files. 576 577 * dirdeps.mk: ensure M_dep_qual_fixes is applied to all _machines 578 5792023-04-18 Simon J Gerraty <sjg@beast.crufty.net> 580 581 * dirdeps.mk: check we were not included by 582 Makefile.depend.options as the result is bad. 583 5842023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 585 586 * install-mk (MK_VERSION): 20230414 587 588 * meta.sys.mk: since we have :range we can put the logic for 589 processing TARGET_SPEC from env here. 590 591 * dirdeps.mk: reset DIRDEPS and DEP_RELDIR before including 592 local.dirdeps-missing.mk, also improve debug output. 593 594 * dirdeps.mk: to allow make -f dirdeps.mk include.$TARGET_SPEC 595 we need to use :M*[/.]* same as for when actually setting DIRDEPS 596 from the targets on command line. 597 5982023-04-12 Simon J Gerraty <sjg@beast.crufty.net> 599 600 * Add jobs.mk 601 6022023-03-21 Simon J Gerraty <sjg@beast.crufty.net> 603 604 * install-mk (MK_VERSION): 20230321 605 606 * meta.stage.mk: allow STAGE_SHLIB_LINKS_FILTER to filter 607 STAGE_LIBS for SHLIB_LINKS. 608 609 * autoconf.mk: add .WAIT after config.status 610 6112023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 612 613 * sys.vars.mk: add M_Index to report the index of a word in a list. 614 6152023-02-15 Simon J Gerraty <sjg@beast.crufty.net> 616 617 * install-mk (MK_VERSION): 20230215 618 619 * warnings.mk: allow better control of -Werror 620 allow -Wno-error or similar to be added if 621 WARNINGS_SET < WERROR_SET 622 account for COMPILER_TYPE 623 6242023-01-29 Simon J Gerraty <sjg@beast.crufty.net> 625 626 * autoconf.mk: hook config.status to beforebuild. 627 628 * whats.mk: what*.c is NOTMAIN 629 6302023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 631 632 * install-mk (MK_VERSION): 20230127 633 control umask so directories are created with suitable mode. 634 6352023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 636 637 * install-mk (MK_VERSION): 20230120 638 639 * sys.vars.mk: add M_On and M_Onr also cleanup to be more 640 consistent wrt testing MAKE_VERSION 641 6422023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 643 644 * install-mk (MK_VERSION): 20230112 645 646 * meta2deps.{py,sh}: assert if filemon data is truncated 647 we should see the '# Bye bye' record - assert if we do not. 648 6492022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 650 651 * install-mk (MK_VERSION): 20220909 652 653 * sys/Linux.mk set EGREP to grep -E to avoid deprecation warnings 654 6552022-09-06 Simon J Gerraty <sjg@beast.crufty.net> 656 657 * dirdeps-options.mk: explain the need to use 658 ${DEP_${TARGET_SPEC_VAR}:U${TARGET_SPEC_VAR}} when refering to 659 ${TARGET_SPEC_VAR} 660 6612022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 662 663 * install-mk (MK_VERSION): 20220903 664 665 * M_cmpv handle more than 3 dots and clear leading 0's 666 6672022-07-20 Simon J Gerraty <sjg@beast.crufty.net> 668 669 * install-mk (MK_VERSION): 20220720 670 671 * prog.mk: handle PROG_CXX for more than just NetBSD 672 6732022-06-20 Simon J Gerraty <sjg@beast.crufty.net> 674 675 * install-mk (MK_VERSION): 20220620 676 677 * yacc.mk: when we have *.y in SRCS used explicit rules and .ORDER 678 rather than just suffix rules 679 6802022-04-23 Simon J Gerraty <sjg@beast.crufty.net> 681 682 * install-mk (MK_VERSION): 20220422 683 684 * gendirdeps.mk: If LOCAL_DEPENDS_GUARD is set to "no" 685 do not capture any local depends in Makefile.depend 686 6872022-03-25 Simon J Gerraty <sjg@beast.crufty.net> 688 689 * install-mk (MK_VERSION): 20220323 690 * posix.mk: default rules for .POSIX: 691 6922022-03-17 Simon J Gerraty <sjg@beast.crufty.net> 693 694 * sys/*.mk: remove l from ARFLAGS 695 6962022-03-14 Simon J Gerraty <sjg@beast.crufty.net> 697 698 * install-mk (MK_VERSION): 20220314 699 700 * dirdeps-options.mk: allow options to be per RELDIR 701 try DIRDEPS_OPTIONS_QUALIFIER_LIST first prefixed 702 with ${DEP_RELDIR}. 703 7042022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 705 706 * install-mk (MK_VERSION): 20220214 707 708 * cc-wrap.mk: fix :@ modifier 709 7102022-02-06 Simon J Gerraty <sjg@beast.crufty.net> 711 712 * install-mk (MK_VERSION): 20220206 713 714 * cc-wrap.mk: docuement how CCACHE etc might be set for 715 maximum flexibility 716 7172022-02-05 Simon J Gerraty <sjg@beast.crufty.net> 718 719 * sys.vars.mk: use JOT_CMD (jot or seq) if available for M_JOT 720 7212022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 722 723 * install-mk (MK_VERSION): 20220204 724 725 * host-target.mk: use .MAKE.OS if available 726 7272022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 728 729 * install-mk (MK_VERSION): 20220202 730 731 * cc-wrap.mk: allow other entries in CC_WRAP_FILTER 732 We add our filter on extensions last, so prior filters 733 can apply to the whole value of .IMPSRC 734 7352022-02-01 Simon J Gerraty <sjg@beast.crufty.net> 736 737 * cc-wrap.mk: take advantage of target local variables to 738 wrap compilers like CC CXX with wrappers like ccache distcc etc 739 7402022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 741 742 * meta2deps: we do not expect any trace data for setid apps 743 7442022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 745 746 * dirdeps.mk: ensure TARGET_SPEC and TARGET_SPEC_VARS are passed 747 to sub-make using DIRDEPS_CACHE 748 7492022-01-07 Simon J Gerraty <sjg@beast.crufty.net> 750 751 * dirdeps.mk: use _cache_script to minimize the number of shells 752 forked when generating dirdeps.cache 753 7542022-01-02 Simon J Gerraty <sjg@beast.crufty.net> 755 756 * install-mk (MK_VERSION): 20220101 757 758 * dirdeps.mk: initialize DEP_* and _debug_reldir earlier. 759 If initial DIRDEPS are from command line, create the target 760 _dirdeps_cmdline as an indication. 761 7622022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 763 764 * init.mk (_SKIP_BUILD): when doing DIRDEPS_BUILD 765 at top-level only some targets are allowed at level 0, 766 for leaf makefiles only the default (all) target is restricted 767 7682021-12-28 Simon J Gerraty <sjg@beast.crufty.net> 769 770 * install-mk (MK_VERSION): 20211228 771 772 * meta2deps.py: filemon on Linux is not as reliable as we might 773 like, we do not want to update DIRDEPS if filemon output is 774 incomplete. Track pids that we 'E'xec and make sure we see an 775 e'X'it for each one. Throw an error if we are missing any 'X' 776 records. 777 7782021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 779 780 * sys.mk: simplify; include meta.sys.mk if MK_META_MODE is yes. 781 782 * meta.sys.mk: do not check for /dev/filemon if .MAKE.PATH_FILEMON 783 is something else. 784 785 * meta.autodep.mk: we can now reference ${.SUFFIXES} 786 787 * meta2deps.py: derive a list of dirdep extensions from 788 TARGET_SPEC to trim from dirdeps. 789 790 * dirdeps.mk: flip the computation of qualified vs unqualified 791 dirdeps - it is much simpler to check for unqualified first. 792 7932021-12-11 Simon J Gerraty <sjg@beast.crufty.net> 794 795 * install-mk (MK_VERSION): 20211212 796 797 * auto.dep.mk: rearrange so that the trivial implementation 798 for recent bmake is more obvious. 799 8002021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 801 802 * install-mk (MK_VERSION): 20211207 803 804 * Ensure guard targets are .NOTMAIN 805 806 * meta.sys.mk: check for nofilemon support when we skip level 0 807 808 * auto.dep.mk: make this usable in meta mode 809 for platforms that cannot use meta.autodep.mk 810 811 * meta2deps.py: avoid confusion if MACHINE and another 812 TARGET_SPEC_VAR have same value. 813 8142021-11-27 Simon J Gerraty <sjg@beast.crufty.net> 815 816 * dirdeps.mk: when building dirdeps.cache, minimize the amount of 817 data put into env, by stripping ${SRCTOP}/ from each entry. 818 A long sandbox name can double the amount of memory consumed and 819 in extreme cases cause failure. 820 While we are at it, strip ${SRCTOP}/ from a lot of the debug output. 821 8222021-11-11 Simon J Gerraty <sjg@beast.crufty.net> 823 824 * install-mk (MK_VERSION): 20211111 825 826 * meta.stage.mk (LN_CP_SCRIPT): if staging to NFS cp -p can fail 827 so fallback to cp if necessary. 828 8292021-10-30 Simon J Gerraty <sjg@beast.crufty.net> 830 831 * man.mk (CMT2DOC): use cmt2doc.py rather than the 30 year 832 old cmt2doc.pl 833 8342021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 835 836 * meta.stage.mk: stage_as_and_symlink use ${STAGE_LINK_AS_$f:U$f} 837 as the symlink (rare) 838 8392021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 840 841 * autoconf.mk: if AUTOCONF_GENERATED_MAKEFILE is set and has not 842 been read, throw an error after running configure telling user to 843 restart. 844 8452021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 846 847 * install-mk (MK_VERSION): 20211011 848 849 * Add support for SCO_SV 850 8512021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 852 853 * install-mk (MK_VERSION): 20211001 854 855 * man.mk: use MAN_SUFFIXES and CMT2DOC_SUFFIXES for more 856 flexibility 857 8582021-09-13 Simon J Gerraty <sjg@beast.crufty.net> 859 860 * options.mk (describe-options): print options and their values 861 and optional description 862 8632021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 864 865 * install-mk (MK_VERSION): 20210911 866 867 * options.mk (show-options): print options and their values 868 8692021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 870 871 * install-mk (MK_VERSION): 20210909 872 873 * lib.mk: apply patch from <daniel@octaforge.org> 874 to fix shared libs on Linux 875 8762021-08-08 Simon J Gerraty <sjg@beast.crufty.net> 877 878 * install-mk (MK_VERSION): 20210808 879 880 * options.mk: issue warning for WITH_*=no 881 8822021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 883 884 * install-mk (MK_VERSION): 20210616 885 886 * dirdeps.mk: when using .MAKE.DEPENDFILE_PREFERENCE to find 887 depend files to read, anchor MACHINE at , or end of string 888 to avoid prefix match. 889 8902021-05-04 Simon J Gerraty <sjg@beast.crufty.net> 891 892 * install-mk (MK_VERSION): 20210504 893 894 * dirdeps.mk: re-implement ALL_MACHINES support to better 895 cater for local complexities, when ONLY_TARGET_SPEC_LIST 896 is not set. local.dirdeps.mk can set 897 DIRDEPS_ALL_MACHINES_FILTER and/or 898 DIRDEPS_ALL_MACHINES_FILTER_XTRAS to filter the results we get 899 from listing all existing Makefile.depend.* 900 9012021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 902 903 * install-mk (MK_VERSION): 20210420 904 905 * dirdeps.mk: revert previous - not always safe. 906 9072021-03-20 Simon J Gerraty <sjg@beast.crufty.net> 908 909 * install-mk (MK_VERSION): 20210321 910 911 * dirdeps.mk: when generating dirdeps.cache 912 we only need to hook the initial DIRDEPS to the 913 dirdeps target. That and any _build_xtra_dirs (like tests which 914 should not be hooked directly to the dependency graph - to avoid 915 cycles) 916 9172021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 918 919 * install-mk (MK_VERSION): 20210130 920 921 * dirdeps.mk: expr 2 - 1 - 1 exits with a bad status 922 we need to guard against this in DIRDEP_LOADAVG_REPORT. 923 924 * dirdeps.mk: restore respect for TARGET_MACHINE 925 9262021-01-06 Simon J Gerraty <sjg@beast.crufty.net> 927 928 * install-mk (MK_VERSION): 20210101 929 930 * dirdeps.mk: first time we are read, just use TARGET_SPEC for 931 _DEP_TARGET_SPEC 932 9332020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 934 935 * sys.mk (MAKE_SHELL): use ${.SHELL:Ush} 936 and use := when setting SHELL 937 9382020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 939 940 * install-mk (MK_VERSION): 20201221 941 942 * dirdeps-options.mk: latest bmake allows only one arg to .undef 943 9442020-12-11 Simon J Gerraty <sjg@beast.crufty.net> 945 946 * dirdeps-targets.mk: allow for "." in DIRDEPS_TARGETS_DIRS 947 so that any directory can be treated as a target. 948 9492020-11-26 Simon J Gerraty <sjg@beast.crufty.net> 950 951 * install-mk (MK_VERSION): 20201126 952 953 * own.mk: use .MAKE.{UID,GID} if available. 954 955 * init.mk: suppress _SKIP_BUILD warning if doing -V 956 9572020-11-20 Simon J Gerraty <sjg@beast.crufty.net> 958 959 * install-mk (MK_VERSION): 20201120 960 961 * init.mk: rename LEVEL0_TARGETS to DIRDEPS_BUILD_LEVEL0_TARGETS 962 963 * dirdeps-targets.mk: fix typo in comment 964 9652020-11-06 Simon J Gerraty <sjg@beast.crufty.net> 966 967 * install-mk (MK_VERSION): 20201106 968 969 * meta.autodep.mk: use OBJ_EXTENSIONS rather than hardcode sed 970 args to tweak extensions for local deps. 971 9722020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 973 974 * install-mk (MK_VERSION): 20201101 975 976 * dirdeps.mk: most leaf makefiles are not suitable for building 977 dirdeps.cache so if RELDIR is not "." use dirdeps.mk 978 9792020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 980 981 * install-mk (MK_VERSION): 20201028 982 983 * dirdeps.mk: if we don't have :range use equivalent of M_RANGE 984 when building dirdeps.cache for leaf directory use -f dirdeps.mk 985 986 * sys.vars.mk: add M_JOT and M_RANGE 987 9882020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 989 990 * install-mk (MK_VERSION): 20201001 991 992 * meta2deps.{py,sh}: throw an error if we don't see filemon version 993 9942020-09-09 Simon J Gerraty <sjg@beast.crufty.net> 995 996 * install-mk (MK_VERSION): 20200909 997 998 * dirdeps-cache-update.mk: use cache_update_dirdep as guard target 999 10002020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1001 1002 * dirdeps.mk: ensure we cannot confuse a static cache for dynamic 1003 (even more rare that use of static cache is playing clever tricks 1004 with it) 1005 10062020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1007 1008 * dirdeps-cache-update.mk: allow 1009 MK_STATIC_DIRDEPS_CACHE_UPDATE_IMMEDIATE to control when we 1010 actually update STATIC_DIRDEPS_CACHE. 1011 1012 * stage-install.sh: create dest directory if needed 1013 before running install(1) 1014 10152020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 1016 1017 * dirdeps-targets.mk: include Makefile.dirdeps.options 1018 1019 * dirdeps.mk: use _TARGETS if defined for DIRDEPS_CACHE 1020 10212020-08-09 Simon J Gerraty <sjg@beast.crufty.net> 1022 1023 * dirdeps.mk: default BUILD_DIRDEPS_MAKEFILE to empty 1024 1025 * dirdeps-cache-update.mk: building parallel cache update 1026 under the context of dirdeps-cached would be ideal, but 1027 is problematic, so it runs as a sibling. 1028 Use cache-built target to ensure we wait for it to complete if 1029 necessary. 1030 10312020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 1032 1033 * install-mk (MK_VERSION): 20200806 1034 1035 * dirdeps-options: allow TARGET_SPEC to affect option values. 1036 Use DIRDEPS_OPTIONS_QUALIFIER_LIST before using bare MK_* 1037 1038 * dirdeps-targets.mk: check for MK_STATIC_DIRDEPS_CACHE defined 1039 before looking for STATIC_DIRDEPS_CACHE 1040 10412020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 1042 1043 * host-target.mk: Darwin use MACHINE for HOST_ARCH too 1044 1045 * dirdeps-options.mk: improve debug output 1046 10472020-07-22 Simon J Gerraty <sjg@beast.crufty.net> 1048 1049 * dirdeps.mk: set and export DYNAMIC_DIRDEPS_CACHE 1050 for use by dirdeps-cache-update.mk 1051 1052 * dirdeps-targets.mk: set and export STATIC_DIRDEPS_CACHE 1053 for use by dirdeps-cache-update.mk even if we don't use it. 1054 1055 * dirdeps-cache-update.mk: we only need worry about the background 1056 update case, with the above, the update from DIRDEPS_CACHE is 1057 simple. 1058 1059 * meta2deps.py: R 1234 . is not interesting 1060 10612020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 1062 1063 * sys.mk: default MK_STATIC_DIRDEPS_CACHE from MK_DIRDEPS_CACHE 1064 1065 * dirdeps-options.mk: do not :tu DIRDEPS_OPTIONS 1066 allows use of lower case for pseudo options. 1067 1068 * dirdeps-cache-update.mk: magic to deal with STATIC_DIRDEPS_CACHE 1069 10702020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 1071 1072 * dirdeps-targets.mk: Look for Makefile.dirdeps.cache 1073 which allows us to have a static cache for expensive targets. 1074 Use -DWITHOUT_STATIC_DIRDEPS_CACHE -DWITH_DIRDEPS_CACHE 1075 to regenerate the dirdeps.cache it is a copy of. 1076 10772020-07-17 Simon J Gerraty <sjg@beast.crufty.net> 1078 1079 * Get rid of BUILD_AT_LEVEL0, MK_DIRDEPS_BUILD makes more sense. 1080 10812020-07-16 Simon J Gerraty <sjg@beast.crufty.net> 1082 1083 * dirdeps.mk (DIRDEP_LOADAVG_REPORT): make it easy to record 1084 load averages at intervals during build. 1085 10862020-07-15 Simon J Gerraty <sjg@beast.crufty.net> 1087 1088 * install-mk (MK_VERSION): 20200715 1089 1090 * dirdeps.mk: tweak Checking line to make matching Finished 1091 lines for post-build analysis easier. 1092 1093 * meta.autodep.mk: use !defined(WITHOUT_META_STATS) 1094 1095 * progs.mk: avoid prog.mk outputting multiple Finished lines 1096 10972020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 1098 1099 * dirdeps.mk: further optimize dirdeps.cache 1100 generate a DIRDEPS.${.TARGET} list for other purposes 1101 and improve the layout. 1102 11032020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 1104 1105 * dirdeps.mk: optimize content of dirdeps.cache 1106 11072020-06-28 Simon J Gerraty <sjg@beast.crufty.net> 1108 1109 * sys/*.mk: make it easier for local*sys.mk to customize by 1110 using ?= 1111 11122020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 1113 1114 * gendirdeps.mk (LOCAL_DEPENDS_GUARD): if we don't build at level 0 1115 it is much safer to guard local depends with a simple check for 1116 .MAKE.LEVEL > 0 1117 11182020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 1119 1120 * install-mk (MK_VERSION): 20200610 1121 1122 * mkopt.sh: this needs posix shell so #!/bin/sh should be ok 1123 11242020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 1125 1126 * install-mk (MK_VERSION): 20200606 1127 1128 * dirdeps-targets.mk: allow for filtering of .TARGETS 1129 1130 * meta2deps.py: fix bug in processing 'L'ink and 'M'ove 1131 entries - and we don't care about 'W'rite entries. 1132 Also ignore absolute paths that do not exist. 1133 11342020-05-25 Simon J Gerraty <sjg@beast.crufty.net> 1135 1136 * install-mk (MK_VERSION): 20200525 1137 1138 * init.mk: expand and simplify handling of qualified vars 1139 like CPPFLAGS.${.TARGET:T} 1140 11412020-05-15 Simon J Gerraty <sjg@beast.crufty.net> 1142 1143 * install-mk (MK_VERSION): 20200515 1144 1145 * dirdeps.mk: set _debug_* earlier and allow passing -d* 1146 flags to submake when building DIRDEPS_CACHE 1147 11482020-05-09 Simon J Gerraty <sjg@beast.crufty.net> 1149 1150 * whats.mk: more easily extensible 1151 11522020-05-02 Simon J Gerraty <sjg@beast.crufty.net> 1153 1154 * whats.mk: greatly simplify by adding what.c to SRCS 1155 11562020-05-01 Simon J Gerraty <sjg@beast.crufty.net> 1157 1158 * whats.mk: for libs take care how we add to *OBJS 1159 1160 * lib.mk: : works better with whats.mk 1161 11622020-04-25 Simon J Gerraty <sjg@beast.crufty.net> 1163 1164 * install-mk (MK_VERSION): 20200420 1165 1166 * meta.stage.mk: it is not a STAGE_CONFLICT if some-target.dirdep 1167 contains the same ${RELDIR} and a prefix match for our ${TARGET_SPEC} 1168 11692020-04-16 Simon J Gerraty <sjg@beast.crufty.net> 1170 1171 * install-mk (MK_VERSION): 20200416 1172 1173 * sys/*.mk: set MAKE_SHELL rather than SHELL so as not to 1174 interfere with user env. 1175 1176 * sys.mk: default MAKE_SHELL to sh and SHELL to MAKE_SHELL 1177 1178 * autodep.mk: use MAKE_SHELL. 1179 11802019-11-21 Simon J Gerraty <sjg@beast.crufty.net> 1181 1182 * gendirdeps.mk: clear .SUFFIXES to avoid a lot of 1183 wasted effort, and unexport _meta_files when no longer needed as 1184 it consumes space we need for command line. 1185 11862019-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1187 1188 * dirdeps.mk _DIRDEP_USE: use DIRDEP_DIR and add 1189 DIRDEP_USE_PRELUDE at start - facilitates job distribution 1190 11912019-10-04 Simon J Gerraty <sjg@beast.crufty.net> 1192 1193 * dirdeps-targets.mk: Use TARGET_SPEC_LAST_LIST 1194 defaults to ${${TARGET_SPEC_VARS:[-1]}_LIST} to match valid 1195 TARGET_SPEC qualified depend files. 1196 11972019-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1198 1199 * dirdeps-targets.mk: encapsulate logic for finding top-level 1200 targets to set initial DIRDEPS for DIRDEPS_BUILD 1201 12022019-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1203 1204 * install-mk (MK_VERSION): 20190911 1205 1206 * compiler.mk: set COMPILER_TYPE 1207 12082019-07-17 Simon J Gerraty <sjg@beast.crufty.net> 1209 1210 * install-mk (MK_VERSION): 20190704 1211 1212 * sys/Darwin.mk: support for Objective-C and clang 1213 12142019-05-30 Simon J Gerraty <sjg@beast.crufty.net> 1215 1216 * dirdeps.mk: avoid insanely long command line when generating cache 1217 12182019-05-23 Simon J Gerraty <sjg@beast.crufty.net> 1219 1220 * install-mk (MK_VERSION): 20190505 1221 1222 * whats.mk: handle corner case SHLIB defined but not LIB 1223 12242018-09-19 Simon J Gerraty <sjg@beast.crufty.net> 1225 1226 * install-mk (MK_VERSION): 20180919 1227 1228 * dirdeps-options.mk: .undef cannot handle var that expands to 1229 more than one var. 1230 12312018-07-08 Simon J Gerraty <sjg@beast.crufty.net> 1232 1233 * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. 1234 12352018-06-01 Simon J Gerraty <sjg@beast.crufty.net> 1236 1237 * meta.autodep.mk: export META_FILES to avoid command line limit 1238 * gendirdeps.mk: if we have lots of .meta files put them in 1239 an @list 1240 12412018-05-28 Simon J Gerraty <sjg@beast.crufty.net> 1242 1243 * dirdeps-options.mk: use local.dirdeps-options.mk 1244 not local.dirdeps-option.mk 1245 12462018-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1247 1248 * install-mk (MK_VERSION): 20180420 1249 * dirdeps.mk: include local.dirdeps-build.mk when .MAKE.LEVEL > 0 1250 ie. we are building something. 1251 12522018-04-14 Simon J Gerraty <sjg@beast.crufty.net> 1253 1254 * FILES: add dirdeps-options.mk to deal with optional DIRDEPS. 1255 12562018-04-05 Simon J Gerraty <sjg@beast.crufty.net> 1257 1258 * install-mk (MK_VERSION): 20180405 1259 1260 * ldorder.mk: describe how to use LDORDER_EXTERN_BARRIER 1261 if needed. 1262 12632018-01-18 Simon J Gerraty <sjg@beast.crufty.net> 1264 1265 * install-mk (MK_VERSION): 20180118 1266 1267 * ldorder.mk: let make compute correct link order 1268 12692017-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1270 1271 * install-mk (MK_VERSION): 20171212 1272 1273 * gendirdeps.mk: guard against bogus entries in GENDIRDEPS_FILTER 1274 12752017-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 1276 1277 * install-mk (MK_VERSION): 20171111 1278 1279 * lib.mk: ensure META_NOECHO is set 1280 12812017-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 1282 1283 * Allow for host32 on rare occasions. 1284 12852017-10-18 Simon J. Gerraty <sjg@bad.crufty.net> 1286 1287 * install-mk (MK_VERSION): 20171018 1288 1289 * whats.mk: include what_thing in what_uuid to avoid problem 1290 when building multiple apps in the same directory. 1291 12922017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1293 1294 * install-mk (MK_VERSION): 20170812 1295 1296 * autoconf.mk: Use CONFIGURE_DEPS so Makefile can 1297 add dependencies for config.recheck and config.gen 1298 12992017-06-30 Simon J. Gerraty <sjg@bad.crufty.net> 1300 1301 * install-mk (MK_VERSION): 20170630 1302 1303 * meta.stage.mk: avoid triggering stage_* targets with nothing to do. 1304 13052017-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 1306 1307 * meta2deps.py: take special care of '..' 1308 13092017-05-15 Simon J. Gerraty <sjg@bad.crufty.net> 1310 1311 * install-mk (MK_VERSION): 20170515 1312 1313 * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is 1314 useful/necessary for a Makefile.depend file to export some knobs. 1315 This is complicated when we are doing DIRDEPS_CACHE, so we will 1316 handle export of any variables listed in DEP_EXPORT_VARS. 1317 13182017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 1319 1320 * install-mk (MK_VERSION): 20170505 1321 1322 * meta2deps.py: fix botched indenation. 1323 13242017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1325 1326 * sys/*.mk: Remove setting of MAKE it is unnecessary and 1327 in many cases wrong (basname rather than full path) 1328 1329 * scripts.mk (SCRIPTSGROUPS): make this more like files.mk and inc.mk 1330 1331 * init.mk: define realbuild to simplify logic in {lib,prog}.mk etc 1332 13332017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1334 1335 * install-mk (MK_VERSION): 20170501 1336 1337 * doc.mk: fix typo in DOC_INSTALL_OWN 1338 1339 * inc.mk: handle INCGROUPS similar to freebsd 1340 1341 * files.mk: add something for files too 1342 1343 * add staging logic to lib.mk prog.mk etc. 1344 13452017-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 1346 1347 * install-mk (MK_VERSION): 20170424 1348 1349 * dirdeps.mk: set NO_DIRDEPS when bootstrapping. 1350 also target of bootstrap-this when sed is needed should be ${_want:T} 1351 13522017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1353 1354 * install-mk (MK_VERSION): 20170418 1355 1356 * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a 1357 prefix match for .CURDIR - in which case .CURDIR *is* __objdir. 1358 13592017-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1360 1361 * install-mk (MK_VERSION): 20170401 1362 1363 * meta2deps.py: add is_src so we can check if obj dependency 1364 is also a src dependency. 1365 13662017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1367 1368 * install-mk (MK_VERSION): 20170326 1369 1370 * meta.stage.mk: do nothing if NO_STAGING is defined. 1371 13722017-03-24 Simon J. Gerraty <sjg@bad.crufty.net> 1373 1374 * auto.obj.mk: handle the case of __objdir=obj or obj.${MACHINE} etc. 1375 13762017-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1377 1378 * mkopt.sh: treat WITH_*=NO like no; ie. WITHOUT_* 1379 13802017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1381 1382 * install-mk (MK_VERSION): 20170301 1383 1384 * dirdeps.mk (_build_all_dirs): update this outside test for empty 1385 DIRDEPS. 1386 1387 * meta.stage.mk: allow multiple inclusion to the extent it makes 1388 sense. 1389 13902017-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1391 1392 * prog.mk (install_links): depends on realinstall 1393 13942017-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 1395 1396 * install-mk (MK_VERSION): 20170212 1397 1398 * dpadd.mk: avoid applying :T:R twice to DPLIBS entries 1399 14002017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 1401 1402 * install-mk (MK_VERSION): 20170130 1403 1404 * dirdeps.mk: use :range if we can. 1405 1406 * sys.vars.mk: provide M_cmpv if MAKE_VERSION >= 20170130 1407 1408 * meta2deps.py: clean paths without using realpath() where possible. 1409 fix sort_unique. 1410 14112016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1412 1413 * install-mk (MK_VERSION): 20161212 1414 1415 * meta2deps.py: set pid_cwd[pid] when we process 'C'hdir, 1416 rather than when we detect pid change. 1417 14182016-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1419 1420 * install-mk (MK_VERSION): 20161207 1421 1422 * meta.stage.mk: add stage_as_and_symlink for staging packages. 1423 We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able 1424 to use foo.tgz to reference the latest staged version - so we 1425 make foo.tgz a symlink to it. 1426 Using a target to do both operations ensures we stay in sync. 1427 14282016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1429 1430 * install-mk (MK_VERSION): 20161126 1431 1432 * dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk 1433 so it can add dependencies. 1434 14352016-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1436 1437 * dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE 1438 do that they can influence the result correctly. 1439 1440 * dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC 1441 1442 * dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST 1443 similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST 1444 14452016-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1446 1447 * dirdeps.mk: remove dependence on jot (normal situations anyway). 1448 Before we read another Makefile.depend* set DEP_* vars from 1449 _DEP_TARGET_SPEC in case it uses any of them with := 1450 When bootstrapping, trim any ,* from extention of chosen _src 1451 Makefile.depend* to get the machine value we subst for. 1452 14532016-09-30 Simon J. Gerraty <sjg@bad.crufty.net> 1454 1455 * dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to 1456 DEP_SKIP_DIR and DEP_DIRDEPS_FILTER 1457 1458 * sys.mk: extract some bits to sys.{debug,vars}.mk 1459 for easier re-use by others. 1460 14612016-09-23 Simon Gerraty <sjg@sjg-mba13> 1462 1463 * lib.mk: Use ${PICO} for extension for PIC objects. 1464 default to .pico (like NetBSD) safe on case insensitive filesystem. 1465 14662016-08-19 Simon J. Gerraty <sjg@bad.crufty.net> 1467 1468 * meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default 1469 14702016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 1471 1472 * install-mk (MK_VERSION): 20160815 1473 1474 * dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only 1475 consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date. 1476 14772016-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1478 1479 * meta.sys.mk (.MAKE.META.IGNORE_PATHS): 1480 in meta mode we can ignore the mtime of makefiles 1481 14822016-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1483 1484 * install-mk (MK_VERSION): 20160802 1485 1486 * lib.mk (libinstall): depends on beforinstall 1487 1488 * prog.mk (proginstall): depends on beforinstall 1489 patch from Lauri Tirkkonen 1490 1491 * dirdeps.mk (bootstrap): When bootstrapping; creat 1492 .MAKE.DEPENDFILE_DEFAULT and allow additional filtering via 1493 .MAKE.DEPENDFILE_BOOTSTRAP_SED 1494 1495 * dirdeps.mk: move some comments to where they make sense. 1496 14972016-07-27 Simon J. Gerraty <sjg@bad.crufty.net> 1498 1499 * dirdeps.mk (DIRDEPS_CACHE): no dirname. 1500 15012016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1502 1503 * install-mk (MK_VERSION): 20160602 1504 * meta.autodep.mk: when passing META_FILES to gendirdeps.mk 1505 do not apply :T to META_XTRAS 1506 patch from Bryan Drewery at FreeBSD.org. 1507 15082016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 1509 1510 * install-mk (MK_VERSION): 20160530 1511 * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH 1512 make it so. 1513 15142016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1515 1516 * install-mk (MK_VERSION): 20160512 1517 1518 * dpadd.mk: always include local.dpadd.mk if it exists 1519 remove some things that better belong in local.dpadd.mk 1520 skip INCLUDES_* for staged libs unless SRC_* defined. 1521 1522 * own.mk: add INCLUDEDIR 1523 15242016-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1525 1526 * dirdeps.mk: when doing -f dirdeps.mk if target suppies no 1527 TARGET_MACHINE - :E will be empty or match part of path, use 1528 ${MACHINE} 1529 15302016-04-07 Simon J. Gerraty <sjg@bad.crufty.net> 1531 1532 * meta.autodep.mk: issue a warning if UPDATE_DEPENDFILE=NO due to 1533 NO_FILEMON_COOKIE 1534 1535 * dirdeps.mk: move the logic that allows for 1536 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1537 inside the check for !target(_DIRDEP_USE) 1538 15392016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 1540 1541 * Use <> when including local*.mk and others which may exist 1542 elsewhere so that user can better control what they get. 1543 1544 * meta.autodep.mk (NO_FILEMON_COOKIE): 1545 create a cookie if we ever build dir with nofilemon 1546 so that UPDATE_DEPENDFILE will be forced to NO until cleaned. 1547 15482016-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1549 1550 * install-mk (MK_VERSION): 20160401 1551 1552 * meta2deps.py: fix old print statement when debugging. 1553 1554 * gendirdeps.mk: META2DEPS_CMD append M2D_EXCLUDES with -X 1555 patch from Bryan Drewery 1556 15572016-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 1558 1559 * install-mk (MK_VERSION): 20160317 (St. Pats) 1560 1561 * warnings.mk: g++ does not like -Wimplicit 1562 1563 * sys.mk sys/*.mk lib.mk prog.mk: use CXX_SUFFIXES to handle the 1564 pelthora of common suffixes for C++ 1565 1566 * lib.mk: use .So for shared objects 1567 15682016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1569 1570 * install-mk (MK_VERSION): 20160315 1571 1572 * meta.stage.mk (LN_CP_SCRIPT): do not ln(1) if we have to chmod(1) 1573 normally only applies to scripts. 1574 1575 * dirdeps.mk: NO_DIRDEPS_BELOW to supress DIRDEPS below RELDIR as 1576 well as outside it. 1577 15782016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1579 1580 * install-mk (MK_VERSION): 20160310 1581 1582 * dirdeps.mk: use targets rather than a list to track DIRDEPS that 1583 we have processed; the list gets very inefficient as number of 1584 DIRDEPS gets large. 1585 1586 * sys.dependfile.mk: fix comment wrt MACHINE 1587 1588 * meta.autodep.mk: ignore staged DPADDs when bootstrapping. 1589 patch from Bryan Drewery 1590 15912016-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 1592 1593 * meta2deps.sh: don't ignore subdirs. 1594 patch from Bryan Drewery 1595 15962016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1597 1598 * install-mk (MK_VERSION): 20160226 1599 1600 * gendirdeps.mk: mark _DEPENDFILE .NOMETA 1601 16022016-02-20 Simon J. Gerraty <sjg@bad.crufty.net> 1603 1604 * dirdeps.mk: we shouldn't normally include .depend but if we do 1605 use .dinclude if we can. 1606 16072016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1608 1609 * install-mk (MK_VERSION): 20160218 1610 * sys.clean-env.mk: with recent change to Var_Subst() 1611 we cannot use the '$$' trick, but .export-literal does the job 1612 we need. 1613 * auto.dep.mk: make use .dinclude if we can. 1614 1615 16162016-02-05 Simon J. Gerraty <sjg@bad.crufty.net> 1617 1618 * dirdeps.mk: 1619 Add _build_all_dirs such that local.dirdeps.mk can 1620 add fully qualified dirs to it. 1621 These will be built normally but the current 1622 DEP_RELDIR will not depend on then (to avoid cycles). 1623 This makes it easy to hook things like unit-tests into build. 1624 1625 16262016-01-21 Simon J. Gerraty <sjg@bad.crufty.net> 1627 1628 * dirdeps.mk: add bootstrap-empty 1629 16302015-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1631 1632 * install-mk (MK_VERSION): 20151212 1633 * auto.obj.mk: do not require MAKEOBJDIRPREFIX to exist. 1634 only apply :tA to __objdir when comparing to .OBJDIR 1635 16362015-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 1637 1638 * install-mk (MK_VERSION): 20151111 1639 1640 * meta.sys.mk: include sys.dependfile.mk 1641 1642 * sys.mk (OPTIONS_DEFAULT_NO): use options.mk 1643 to set MK_AUTO_OBJ and MK_DIRDEPS_BUILD 1644 include local.sys.env.mk early 1645 include local.sys.mk later 1646 1647 * own.mk (OPTIONS_DEFAULT_NO): AUTO_OBJ etc moved to sys.mk 1648 16492015-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 1650 1651 * meta.sys.mk (META_COOKIE_TOUCH): 1652 add ${META_COOKIE_TOUCH} to the end of scripts to touch cookie 1653 1654 * meta.stage.mk: stage_libs should ignore SYMLINKS. 1655 16562015-10-23 Simon J. Gerraty <sjg@bad.crufty.net> 1657 1658 * install-mk (MK_VERSION): 20151022 1659 1660 * sys.mk: BSD/OS does not have 'type' as a shell builtin. 1661 16622015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 1663 1664 * install-mk (MK_VERSION): 20151020 1665 1666 * dirdeps.mk: Add logic for 1667 make -f dirdeps.mk some/dir.${TARGET_SPEC} 1668 16692015-10-14 Simon J. Gerraty <sjg@bad.crufty.net> 1670 1671 * install-mk (MK_VERSION): 20151010 1672 16732015-10-02 Simon J. Gerraty <sjg@bad.crufty.net> 1674 1675 * meta.stage.mk: use staging: ${STAGE_TARGETS:... 1676 to have stage_lins run last in non-jobs mode. 1677 Use .ORDER only for jobs mode. 1678 16792015-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 1680 1681 * rst2htm.mk: allow for per target flags etc. 1682 16832015-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1684 1685 * install-mk (MK_VERSION): 20150901 1686 1687 * doc.mk: create dir if needed use DOC_INSTALL_OWN 1688 16892015-06-15 Simon J. Gerraty <sjg@bad.crufty.net> 1690 1691 * install-mk (MK_VERSION): 20150615 1692 1693 * auto.obj.mk: allow use of MAKEOBJDIRPREFIX too. 1694 Follow make's normal precedence rules. 1695 1696 * gendirdeps.mk: allow customization of the header. 1697 eg. for FreeBSD: 1698 GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M*F*}'; 1699 1700 * meta.autodep.mk: ignore dirdeps.cache* 1701 1702 * meta.stage.mk: when bootstrapping options it can be handy to 1703 throw warnings rather than errors for staging conflicts. 1704 1705 * meta.sys.mk: include local.meta.sys.mk for customization 1706 17072015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1708 1709 * install-mk (MK_VERSION): 20150606 1710 1711 * dirdeps.mk: don't rely on manually maintained Makefile.depend 1712 to set DEP_RELDIR and reset DIRDEPS. 1713 By setting DEP_RELDIR ourselves we can skip :tA 1714 1715 * gendirdeps.mk: skip setting DEP_RELDIR. 1716 17172015-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 1718 1719 * dirdeps.mk: avoid wildcards like make(bootstrap*) 1720 17212015-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 1722 1723 * install-mk (MK_VERSION): 20150520 1724 1725 * dirdeps.mk: when we are building dirdeps cache file we *want* 1726 meta_oodate to look at all the Makefile.depend files, so 1727 set .MAKE.DEPENDFILE to something that won't match. 1728 1729 * meta.stage.mk: for STAGE_AS_* basename of file may not be unique 1730 so first use absolute path as key. 1731 Also skip staging at level 0. 1732 17332015-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 1734 1735 * install-mk (MK_VERSION): 20150430 1736 1737 * dirdeps.mk: fix _count_dirdeps for non-cache case. 1738 17392015-04-16 Simon J. Gerraty <sjg@bad.crufty.net> 1740 1741 * install-mk (MK_VERSION): 20150411 1742 bump version 1743 1744 * own.mk: put AUTO_OBJ in OPTIONS_DEFAULT_NO rather than YES. 1745 it is here mainly for documentation purposes, since 1746 if using auto.obj.mk it is better done via sys.mk 1747 17482015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1749 1750 * install-mk (MK_VERSION): 20150401 1751 1752 * meta2deps.sh: support @list 1753 1754 * meta2deps.py: updates from Juniper 1755 o add EXCLUDES 1756 o skip bogus input files. 1757 o treat 'M' and 'L' as both an 'R' and a 'W' 1758 17592015-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1760 1761 * install-mk (MK_VERSION): 20150303 1762 1763 * dirdeps.mk: if MK_DIRDEPS_CACHE is yes, use dirdeps-cache 1764 which is built via sub-make so we have a .meta file to tell if 1765 it is out-of-date. 1766 The dirdeps-cache contains the same dependency rules that we 1767 normaly construct on the fly. 1768 This adds a few seconds overhead when the cache is out of date, 1769 but for a large target, the savings can be significant (10-20min). 1770 17712014-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1772 1773 * install-mk (MK_VERSION): 20141118 1774 1775 * meta.stage.mk: add stale_staged 1776 1777 * dirdeps.mk (_DIRDEP_USE_LEVEL): allow this to be tweaked 1778 only useful under very rare conditions such as 1779 FreeBSD's make universe. 1780 1781 * auto.obj.mk: Allow MK_AUTO_OBJ to set MKOBJDIRS=auto 1782 17832014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1784 1785 * install-mk (MK_VERSION): 20141111 1786 1787 * mkopt.sh: use consistent semantics for _mk_opt and _mk_opts 1788 17892014-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 1790 1791 * FILES: include mkopt.sh which allows handling options in shell 1792 scripts in a manner compatible with options.mk 1793 17942014-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1795 1796 * meta.stage.mk: ensure only _STAGED_DIRS under objroot are used 1797 for GENDIRDEPS_FILTER to avoid surprises. 1798 17992014-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1800 1801 * dirdeps.mk (NSkipHostDir): this needs SRCTOP prepended since by 1802 the time it is applied to __depdirs they have. 1803 1804 * dirdeps.mk fix filtering of _machines since M_dep_qual_fixes 1805 expects patterns like *.${MACHINE} 1806 1807 * cython.mk (pyprefix?): use pyprefix to find python bits 1808 since prefix might be something else (where we install our 1809 stuff) 1810 18112014-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 1812 1813 * install-mk (MK_VERSION): 20140911 1814 1815 * dirdeps.mk: add bootstrap target to simplify adding support for 1816 new MACHINE. 1817 18182014-09-01 Simon J. Gerraty <sjg@bad.crufty.net> 1819 1820 * gendirdeps.mk: Add handling of GENDIRDEPS_FILTER_DIR_VARS and 1821 GENDIRDEPS_FILTER_VARS to make it easier to produce sharable 1822 Makefile.depend files. 1823 18242014-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 1825 1826 * install-mk (MK_VERSION): 20140828 1827 1828 * cython.mk: capture logic for building python extension modules 1829 with Cython. 1830 18312014-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 1832 1833 * meta.stage.mk (_STAGE_AS_BASENAME_USE): Add StageAs variant 1834 18352014-08-02 Simon J. Gerraty <sjg@bad.crufty.net> 1836 1837 * install-mk (MK_VERSION): 20140801 1838 1839 * dep.mk: use explicit MKDEP_MK rather than overload MKDEP to 1840 identify the autodep.mk variant. 1841 1842 * sys.dependfile.mk: delete .MAKE.DEPENDFILE if its 1843 initial value does not match .MAKE.DEPENDFILE_PREFIX 1844 1845 * meta.autodep.mk: if _bootstrap_dirdeps add RELDIR to DIRDEPS 1846 18472014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 1848 1849 * install-mk (MK_VERSION): 20140522 1850 1851 * lib.mk: use CC to link shlib for linux too 1852 patch from Brendan MacDonell 1853 18542014-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1855 1856 * meta.autodep.mk: add _reldir_{finish,failed} for gathering stats 1857 if WITH_META_STATS is defined. 1858 18592014-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 1860 1861 * dirdeps.mk: accept -DWITHOUT_DIRDEPS (same a as -DNO_DIRDEPS) 1862 to supress dirdeps outside of .CURDIR. 1863 18642014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1865 1866 * Fix spelling errors - patch from Pedro Giffuni 1867 18682014-03-14 Simon J. Gerraty <sjg@bad.crufty.net> 1869 1870 * install-mk (MK_VERSION): 20140314 1871 1872 * dirdeps.mk (beforedirdeps): a handy hook 1873 1874 * dirdeps.mk (DIRDEP_MAKE): allow the actual command we run 1875 to visit leaf dirs to be intercepted (eg. for distributed 1876 build). 1877 1878 * dirdeps.mk (__depdirs): ensure // don't sneak in 1879 1880 * gendirdeps.mk (DIRDEPS): ensure // don't sneak in 1881 1882 18832014-02-21 Simon J. Gerraty <sjg@bad.crufty.net> 1884 1885 * rst2htm.mk (RST2PDF): add support for rst2pdf 1886 18872014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1888 1889 * install-mk (MK_VERSION): bump version 1890 * dirdeps.mk (_last_dependfile): use .INCLUDEDFROMFILE if 1891 available. 1892 18932014-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 1894 1895 * options.mk: avoid :U so this isn't bmake dependent 1896 18972014-02-09 Simon J. Gerraty <sjg@bad.crufty.net> 1898 1899 * options.mk: cleanup and simplify semanitcs 1900 NO_* dominates all, if both WITH_* and WITHOUT_* 1901 are defined then result is DOMINATE_* which defaults to "no". 1902 Ie. WITHOUT_ normally wins. 1903 19042013-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1905 1906 * install-mk (MK_VERSION): bump version 1907 * meta2deps.py: convert to print function for python3 compat. 1908 we also need to open files with mode 'r' rather than 'rb' 1909 otherwise we get bytes instead of strings. 1910 19112013-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1912 1913 * install-mk (MK_VERSION): bump version 1914 1915 * dirdeps.mk: when TARGET_SPEC_VARS is more than just MACHINE 1916 apply the same filtering (M_dep_qual_fixes) when setting _machines 1917 as _build_dirs. 1918 Also fix the filtering of Makefile.depend files - for reporting 1919 what we are looking for (M_dep_qual_fixes can get confused by 1920 Makefile.depend) 1921 Add some more debug info. 1922 19232013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 1924 1925 * gendirdeps.mk (_objtops): fix typo also 1926 while processing M2D_OBJROOTS to gather qualdir_list 1927 qualify $ql with loop iterator to ensure correct results. 1928 19292013-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 1930 1931 * install-mk (MK_VERSION): 20130801 1932 * libs.mk: update to match progs.mk 1933 19342013-07-26 Simon J. Gerraty <sjg@bad.crufty.net> 1935 1936 * install-mk (MK_VERSION): 20130726 1937 some updates from Juniper and FreeBSD 1938 o meta2deps.py: indicate file and line number when we hit parse 1939 errors 1940 also allow @file to provide huge list of .meta files. 1941 * meta2deps.py: add try_parse() to cleanup the above. 1942 19432013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 1944 1945 * install-mk (MK_VERSION): 20130716 1946 * own.mk: add GPROG as an option 1947 * prog.mk: honor MK_GPROF==yes 1948 19492013-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1950 1951 * install-mk (MK_VERSION): 20130505 1952 * gendirdeps.mk, meta2deps.py, meta2deps.sh: handle $TARGET_SPEC 1953 for when $MACHINE isn't enough for objdir distinction. 1954 Bring meta2deps.sh closer to par with meta2deps.py. 1955 19562013-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1957 1958 * meta.stage.mk: set INSTALL to STAGE_INSTALL when making 'all' 1959 also if the target 'beforeinstall' exists, make it depend on 1960 .dirdep (incase it uses STAGE_INSTALL). 1961 19622013-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1963 1964 * install-mk (MK_VERSION): 20130401 ;-) 1965 * meta.stage.mk (STAGE_INSTALL_SH): add stage-install.sh as 1966 wrapper around install(1). 1967 * options.mk (OPTION_PREFIX): Allow a prefix other than MK_ 1968 19692013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1970 1971 * meta2deps.py (MetaFile.__init__): ensure self.cwd is initialized. 1972 * install-mk (MK_VERSION): bump version 1973 19742013-03-21 Simon J. Gerraty <sjg@bad.crufty.net> 1975 1976 * install-mk (MK_VERSION): bump version 1977 * gendirdeps.mk: do not apply :tA to DPADD entries, since we lose 1978 any trailing /., rather apply :tA only when needed. 1979 * gendirdeps.mk: better mimic meta2deps handling of .dirdep files. 1980 * meta.stage.mk (LN_CP_SCRIPT): Add LnCp to do the ln||cp dance 1981 consistently. 1982 * dirdeps.mk: better describe the dance in sys.mk for TARGET_SPEC. 1983 19842013-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 1985 1986 * gendirdeps.mk: revert the dance around .MAKE.DEPENDFILE_DEFAULT 1987 it is simpler to just not update when say building for "host" 1988 (where we know we apply filters to DIRDEPS), and using a 1989 non-machine qualified dependfile. 1990 19912013-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 1992 1993 * dirdeps.mk: improve DIRDEPS filtering by allowing DEP_SKIP_DIR 1994 and DEP_DIRDEPS_FILTER to vary by DEP_MACHINE and DEP_TARGET_SPEC 1995 * gendirdeps.mk: ensure _objroot has trailing / if it needs it. 1996 * meta2deps.py: if machine is "host", then also trim 1997 self.host_target from any OBJROOTS. 1998 1999 20002013-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2001 2002 * gendirdeps.mk: if .MAKE.DEPENDFILE_DEFAULT is not machine 2003 qualified but _DEPENDFILE is, and .MAKE.DEPENDFILE_DEFAULT exists 2004 but _DEPENDFILE does not, compare the new _DEPENDFILE against 2005 .MAKE.DEPENDFILE_DEFAULT and discard if the same. 2006 20072013-03-08 Simon J. Gerraty <sjg@bad.crufty.net> 2008 2009 * meta.stage.mk: use STAGE_TARGETS to control .ORDER 2010 and hook to all: via staging: 2011 20122013-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2013 2014 * sys.dependfile.mk (.MAKE.DEPENDFILE_DEFAULT): 2015 use a separate variable for the default .MAKE.DEPENDFILE value 2016 so that it can be controlled independently of 2017 .MAKE.DEPENDFILE_PREFERENCE 2018 2019 * meta.stage.mk: throw error if cp fails etc. 2020 Stage*() return early if passed no args. 2021 .ORDER stage_* 2022 20232013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2024 2025 * install-mk (MK_VERSION): bump version 2026 * gendirdeps.mk: handle multiple M2D_OBJROOTS better. 2027 20282013-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2029 2030 * install-mk (MK_VERSION): bump version to 20130210 2031 * import latest dirdeps.mk, gendirdeps.mk and meta2deps.py 2032 from Juniper. 2033 o dirdeps.mk now fully supports TARGET_SPEC consisting of more 2034 than just MACHINE. 2035 o no longer use DEP_MACHINE from Makefile.depend* so remove it. 2036 20372013-01-23 Simon J. Gerraty <sjg@bad.crufty.net> 2038 2039 * install-mk (MK_VERSION): bump version to 20130123 2040 * meta.stage.mk: add stage_links (hard links). 2041 if doing hard links, we add dest to link as well. 2042 Default the stage dir for [sym]links to STAGE_OBJTOP since 2043 these are typically specified as absolute paths. 2044 Add -m "mode" flag to StageFiles and StageAs. 2045 20462012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2047 2048 * install-mk (MK_VERSION): bump version to 20121111 2049 * autoconf.mk: avoid meta mode seeing changed commands for config.status 2050 * meta.autodep.mk: pass resolved MAKESYSPATH to gendirdeps 2051 in case we were found via .../mk 2052 * sys.clean-env.mk: move it from examples, we and others use it 2053 "as is". 2054 * FILES: add srctop.mk and options.mk 2055 * own.mk: convert to using options.mk 2056 which is modeled after FreeBSD's handling of MK_* 2057 but more flexible. 2058 This allows MK_* for boolean knobs to not be confused 2059 with MK* which can be commands. 2060 2061 * examples/sys.clean-env.mk: add WITH[OUT]_ to 2062 MAKE_ENV_SAVE_PREFIX_LIST. 2063 Mention that HOME=/var/empty might be a good idea. 2064 20652012-11-08 Simon J. Gerraty <sjg@bad.crufty.net> 2066 2067 * sys.dependfile.mk: if not depend file exists, $MACHINE 2068 specific ones are supported but not the default, 2069 check if any exist and follow suit. 2070 20712012-11-06 Simon J. Gerraty <sjg@bad.crufty.net> 2072 2073 * install-mk (MK_VERSION): bump version to 20121106 2074 20752012-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2076 2077 * import latest dirdeps.mk and meta2deps.py from Juniper. 2078 * progs.mk: add MAN and CXXFLAGS to PROG_VARS 2079 also add PROGS_TARGETS and pass on PROG_CXX if it seems 2080 appropriate. 2081 20822012-11-04 Simon J. Gerraty <sjg@bad.crufty.net> 2083 2084 * meta.stage.mk: update CLEANFILES 2085 remove redundant cp of .dirdep from STAGE_AS_SCRIPT. 2086 * progs.mk: Add LDADD to PROG_VARS 2087 20882012-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2089 2090 * meta.stage.mk (STAGE_DIR_FILTER): track dirs we stage to in 2091 _STAGED_DIRS so that these can be turned into filters for 2092 GENDIRDEPS_FILTER. 2093 20942012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2095 2096 * install-mk (MK_VERSION): bump version to 20121010 2097 * meta.stage.mk (STAGE_DIRDEP_SCRIPT): check that an existing 2098 target.dirdep matches .dirdep 2099 21002012-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2101 2102 * install-mk (MK_VERSION): bump version to 20120808 2103 * import latest meta2deps.py from Juniper. 2104 21052012-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2106 2107 * install-mk (MK_VERSION): bump version to 20120711 2108 * dep.mk: add explicit dependencies on SRCS after applying 2109 SRCS_DEP_FILTER 2110 * meta.autodep.mk: add explicit dependencies on SRCS after 2111 applying SRCS_DEP_FILTER 2112 * meta.autodep.mk: ensure GENDIRDEPS_FILTER is exported if needed. 2113 21142012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2115 2116 * install-mk (MK_VERSION): bump version to 20120626 2117 * meta.sys.mk: ignore PYTHON if it does not exist 2118 compare ${.MAKE.DEPENDFILE:E} against ${MACHINE} is more reliable. 2119 * meta.stage.mk: examine .MAKE.DEPENDFILE_PREFERENCE for any 2120 entries ending in .${MACHINE} to decide if qualified _dirdep is 2121 needed. 2122 * gendirdeps.mk: only produce unqualified deps if no 2123 .MAKE.DEPENDFILE_PREFERENCE ends in .${MACHINE} 2124 * meta.subdir.mk: apply SUBDIRDEPS_FILTER 2125 21262012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2127 2128 * install-mk (MK_VERSION): bump version to 20120420 2129 * add sys.dependfile.mk so we can experiment with 2130 .MAKE.DEPENDFILE_PREFERENCE 2131 * meta.autodep.mk: _DEPENDFILE is precious! 2132 21332012-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2134 2135 * install-mk (MK_VERSION): bump version to 20120315 2136 * install-new.mk: avoid being interrupted 2137 21382012-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2139 2140 * man.mk: MAN might have multiple values so be careful with exists(). 2141 21422012-01-19 Simon J. Gerraty <sjg@bad.crufty.net> 2143 2144 * install-mk (MK_VERSION): bump version to 20120112 2145 * fix examples/sys.clean-env.mk so that MAKEOBJDIR is handled 2146 as: MAKEOBJDIR='${.CURDIR:S,${SRCTOP},${OBJTOP},}' 2147 21482011-12-03 Simon J. Gerraty <sjg@bad.crufty.net> 2149 2150 * install-mk (MK_VERSION): bump version to 20111201 2151 * import dirdeps.mk from Juniper sjg@ 2152 o more consistent handling of DEP_MACHINE, especially when 2153 dealing with an odd Makefile.depend, when normally using 2154 Makefile.depend.${MACHINE} 2155 21562011-11-22 Simon J. Gerraty <sjg@bad.crufty.net> 2157 2158 * install-mk (MK_VERSION): bump version to 20111122 2159 * meta.autodep.mk: add some debug output, be more crisp about 2160 updating. Use ${.ALLTARGETS:M*.o} as a clue for .depend 2161 21622011-11-13 Simon J. Gerraty <sjg@bad.crufty.net> 2163 2164 * install-mk (MK_VERSION): bump version to 20111111 2165 it's too cool to miss 2166 * import meta* updates from Juniper sjg@ 2167 o dirdeps.mk set DEP_MACHINE for Makefile.depend (when we are 2168 normally using Makefile.depend.${MACHINE}), handy for 2169 read-only manually maintained dependencies. 2170 o meta2deps.py add a clear 'ERROR:' token if an exception is raised. 2171 o gendirdeps.mk if ERROR: from meta2deps.py do not update 2172 anything. 2173 21742011-10-30 Simon J. Gerraty <sjg@bad.crufty.net> 2175 2176 * install-new.mk separate the cmp and copy logic to its own function. 2177 21782011-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2179 2180 * install-mk (MK_VERSION): bump version to 20111028 2181 * sys.mk: include auto.obj.mk if MKOBJDIRS is set to auto 2182 * subdir.mk: ensure _SUBDIRUSE is provided 2183 * meta.autodep.mk: remove dependency of gendirdeps.mk on auto.obj.mk 2184 * meta.subdir.mk: always allow for Makefile.depend 2185 21862011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2187 2188 * install-mk (MK_VERSION): bump version to 20111010 2189 o minor tweak to *dirdeps.mk from Juniper sjg@ 2190 21912011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2192 2193 * install-mk (MK_VERSION): bump version to 20111001 2194 o add meta2deps.py from Juniper sjg@ 2195 o tweak gendirdeps.mk to work with meta2deps.py when not 2196 cross-building 2197 * autoconf.mk: add autoconf-input as a hook for regenerating 2198 AUTOCONF_INPUTS (configure). 2199 22002011-08-24 Simon J. Gerraty <sjg@bad.crufty.net> 2201 2202 * meta.autodep.mk: if we do not have OBJS, .depend isn't a useful 2203 trigger for updating Makefile.depend* 2204 22052011-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2206 2207 * install-mk (MK_VERSION): bump version to 20110808 2208 * obj.mk: minor cleanup 2209 * auto.obj.mk: improve description of Mkdirs and honor NO_OBJ too. 2210 22112011-08-01 Simon J. Gerraty <sjg@bad.crufty.net> 2212 2213 * auto.obj.mk (.OBJDIR): throw an error if we cannot use the 2214 specified dir. 2215 22162011-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 2217 2218 * meta.autodep.mk: if XMAKE_META_FILE is set 2219 the makefile uses a foreign make, and so dependencies 2220 can only be gathered from a clean tree build. 2221 22222011-06-24 Simon J. Gerraty <sjg@bad.crufty.net> 2223 2224 * install-mk (MK_VERSION): bump version to 20110622 2225 * meta.autodep.mk: improve bootstraping 2226 22272011-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 2228 2229 * yacc.mk: handle the corner case of .c being removed 2230 while .h remains. 2231 22322011-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 2233 2234 * yacc.mk: do .y.h and .y.c separately 2235 22362011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2237 2238 * install-mk (MK_VERSION): bump version to 20110606 2239 * don't store SRC_DIRDEPS in Makefile.depend* by default 2240 not everyone needs it. 2241 22422011-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2243 2244 * install-mk (MK_VERSION): bump version to 20110505 2245 first release including meta mode makefiles 2246 22472011-05-02 Simon J. Gerraty <sjg@bad.crufty.net> 2248 2249 * meta.stage.mk: add STAGE_AS_SETS and stage_as 2250 for things that need to be staged with different names. 2251 22522011-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2253 2254 * meta.stage.mk: add notion of STAGE_SETS 2255 so a makefile can stage to multiple dirs 2256 22572011-04-03 Simon J. Gerraty <sjg@bad.crufty.net> 2258 2259 * rst2htm.mk: convert rst to s5 (slides) or plain html depending 2260 on target name. 2261 22622011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2263 2264 * install-mk (MK_VERSION): bump version to 20110330 2265 22662011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 2267 2268 * sys.mk (_DEBUG_MAKE_FLAGS): use indirection so that DEBUG_MAKE_FLAGS0 2269 can be used to debug level 0 only and DEBUG_MAKE_FLAGS for the rest. 2270 * sys.mk: re-define M_whence in terms of M_type. 2271 M_type is useful for checking if something is a builtin. 2272 22732011-03-16 Simon J. Gerraty <sjg@bad.crufty.net> 2274 2275 * meta.stage.mk: add stage_symlinks and leverage StageLinks for 2276 stage_libs 2277 22782011-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2279 2280 * dirdeps.mk: correct value for _depdir_files depends on 2281 .MAKE.DEPENDFILE 2282 Add our copyright - just to make it clear we have frobbed this 2283 quite a bit. 2284 DEP_MACHINE needs to be set to MACHINE each time, if using only 2285 Makefile.depend (cf. Makefile.depend.${MACHINE}) 2286 2287 * meta.stage.mk: meta mode version of staging 2288 2289 * init.mk, final.mk: include local.*.mk to simplify customization 2290 22912011-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2292 2293 * auto.obj.mk: just because we are doing mk destroy, we should 2294 still set .OBJDIR correctly if it exists. 2295 2296 * install-mk (mksrc): do not exclude meta.sys.mk 2297 22982011-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2299 2300 * host-target.mk: set/export _HOST_ARCH etc separately, 2301 catch junk resulting from uname -p, so we can find sys/Linux.mk 2302 correctly. 2303 23042011-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2305 2306 * meta.sys.mk: throw an error if /dev/filemon is missing and we 2307 expected to be updating Makefile.depend* 2308 23092011-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2310 2311 * install-mk (MK_VERSION): bump version to 20110214 2312 * meta.subdir.mk: add support for -DBOOTSTRAP_DEPENDFILES 2313 23142010-09-25 Simon J. Gerraty <sjg@bad.crufty.net> 2315 2316 * meta.sys.mk: not valid for older bmake 2317 23182010-09-24 Simon J. Gerraty <sjg@bad.crufty.net> 2319 2320 * install-mk (MK_VERSION): bump version to 20100919 2321 include dirdeps.mk et al from Juniper Networks, 2322 for meta mode - requires filemon(9). 2323 * sys.mk, subdir.mk: Add hooks for meta mode. 2324 we do this as meta.sys.mk, meta.autodep.mk and meta.subdir.mk 2325 to make turning it on/off simple. 2326 23272010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 2328 2329 * install-mk (MK_VERSION): bump version to 20100616 2330 * fix typo in sys.mk 2331 23322010-06-12 Simon J. Gerraty <sjg@bad.crufty.net> 2333 2334 * install-mk (MK_VERSION): bump version to 20100612 2335 * lib.mk: remove duplicate addition to SOBJS 2336 23372010-06-10 Simon J. Gerraty <sjg@bad.crufty.net> 2338 2339 * sys.mk: Add a means of selectively turning on debug flags. 2340 Eg. DEBUG_MAKE_FLAGS=-dv DEBUG_MAKE_DIRS="*lib/sjg" 2341 will act as if we did make -dv if .CURDIR ends in lib/sjg 2342 DEBUG_MAKE_SYS_DIRS does the same thing, but we set the flags at 2343 the start of sys.mk rather than the end. 2344 This only makes sense for leaf dirs, so we check that 2345 .MAKE.LEVEL > 0 2346 23472010-06-09 Simon J. Gerraty <sjg@bad.crufty.net> 2348 2349 * install-mk (MK_VERSION): bump version to 20100608 2350 * sys.mk: include sys.env.mk later so it can use M_ListToSkip et al. 2351 * examples/sys.clean-env.mk: require MAKE_VERIONS >= 20100606 2352 also make it easier for folk to tweak 2353 23542010-06-08 Simon J. Gerraty <sjg@bad.crufty.net> 2355 2356 * install-mk (MK_VERSION): bump version to 20100606 2357 do not install examples/* 2358 * FILES: add examples/sys.clean-env.mk 2359 * examples/sys.clean-env.mk: use .export-env to handle MAKEOBJDIR 2360 this requires bmake-20100606 or later to work. 2361 23622010-05-13 Simon J. Gerraty <sjg@bad.crufty.net> 2363 2364 * sys.mk (M_tA): better simulate the result of :tA if not available. 2365 23662010-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2367 2368 * sys.mk: canonicalize MAKE_VERSION 2369 old versions reported bmake-<src-date> build-<build-date> 2370 whereas we only care about <src-date> 2371 23722010-04-25 Simon J. Gerraty <sjg@bad.crufty.net> 2373 2374 * install-mk: just warn about FORCE_{BSD,SYS}_MK being ignored 2375 * lib.mk: we only build the shared lib if SHLIB_FULLVERSION 2376 is !empty 2377 23782010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 2379 2380 * dpadd.mk: use LDADD_* if defined. 2381 23822010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2383 2384 * install-mk (MK_VERSION): bump version to 20100420 2385 * sys/NetBSD.mk: add MACHINE_CPU to keep netbsd makefiles happy 2386 * autoconf.mk allow AUTO_AUTOCONF 2387 23882010-04-19 Simon J. Gerraty <sjg@bad.crufty.net> 2389 2390 * obj.mk: add objwarn to keep freebsd makefiles happy 2391 * auto.obj.mk: ensure Mkdirs is available. 2392 * FILES: add auto.dep.mk - a simpler version of autodep.mk 2393 * dep.mk: auto.dep.mk does not do 'make depend' so ignore it if 2394 asked to do that. 2395 fix/simplify the tests for when to run mkdep. 2396 * auto.dep.mk: add some explanation of how/what we do. 2397 * autodep.mk: skip the .OPTIONAL frobbing of .depend 2398 bmake's FROM_DEPEND flag makes it redundant. 2399 24002010-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2401 2402 * install-mk (MK_VERSION): bump version to 20100404 2403 * subdir.mk: protect from multiple inclusion using _SUBDIRUSE. 2404 * obj.mk: protect from multiple inclusion even as bsd.obj.mk 2405 Also create a target _SUBDIRUSE so that we can be used without 2406 subdir.mk 2407 24082010-04-12 Simon J. Gerraty <sjg@bad.crufty.net> 2409 2410 * dep.mk: use <> when .including so can override. 2411 24122010-01-11 Simon J. Gerraty <sjg@bad.crufty.net> 2413 2414 * lib.mk (SHLIB_LINKS): ensure a string comparison. 2415 24162010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 2417 2418 * install-mk (MK_VERSION): bump version to 20100102 2419 * own.mk: ensure PRINTOBJDIR works 2420 * autoconf.mk: pass on CONFIGURE_ARGS 2421 * init.mk: handle COPTS.${.IMPSRC:T} etc. 2422 * lib.mk: allow sys.mk to control SHLIB_FULLVERSION 2423 fix handling of symlinks for darwin 2424 * libnames.mk: add DSHLIBEXT for libs which only exist as shared. 2425 * man.mk: suppress chown when not root. 2426 * rst2htm.mk: allow srcs from multiple locations. 2427 * sys.mk: M_whence, stop after 1st line of output. 2428 * sys/Darwin.mk: Use .dylib for DSHLIBEXT and HOST_LIBEXT 2429 * sys/SunOS.mk: we need to export PATH 2430 24312009-12-23 Simon J. Gerraty <sjg@void.crufty.net> 2432 2433 * install-mk (MK_VERSION): bump version 2434 include rst2htm.mk 2435 24362009-12-17 Simon J. Gerraty <sjg@void.crufty.net> 2437 2438 * sys.mk,libnames.mk add .-include <local.*> 2439 this allows local customization without the need to edit the 2440 distributed files. 2441 24422009-12-14 Simon J. Gerraty <sjg@void.crufty.net> 2443 2444 * dpadd.mk (__dpadd_libdirs): order -L's to avoid picking up 2445 older versions already installed. 2446 24472009-12-13 Simon J. Gerraty <sjg@void.crufty.net> 2448 2449 * stage.mk (.stage-install): generalize lib.mk's .libinstall 2450 * rules.mk rules for generic Makefile. 2451 * inc.mk install for includes. 2452 24532009-12-11 Simon J. Gerraty <sjg@void.crufty.net> 2454 2455 * sys/NetBSD.mk (MAKE_VERSION): some of our *.mk want to check 2456 this, so provide it if using native make. 2457 24582009-12-10 Simon J. Gerraty <sjg@void.crufty.net> 2459 2460 * FILES: move all the platform *.sys.mk files to sys/*.mk 2461 * Rename Generic.sys.mk to sys.mk - we always want it. 2462 24632009-11-17 Simon J. Gerraty <sjg@void.crufty.net> 2464 2465 * install-mk (MK_VERSION): bump version 2466 * host-target.mk: only export the expensive stuff 2467 * Generic.sys.mk (sys_mk): for SunOS we need to look for 2468 ${HOST_OS}.${HOST_OSMAJOR} too! 2469 24702009-11-07 Simon J. Gerraty <sjg@void.crufty.net> 2471 2472 * install-mk (MK_VERSION): bump version 2473 * lib.mk: if sys.mk doesn't give us an lorder, don't use it. 2474 based on patch from Greg Olszewski. 2475 * Generic.sys.mk: if we have nothing to work with 2476 set LORDER etc only if we can find it. 2477 24782009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 2479 2480 * install-mk (MK_VERSION): bump version 2481 * man.mk: cleanman: remove CLEANMAN if defined. 2482 24832009-09-04 Simon J. Gerraty <sjg@void.crufty.net> 2484 2485 * SunOS.5.sys.mk (CC): Use ?= like the other *sys.mk 2486 24872009-07-17 Simon J. Gerraty <sjg@void.crufty.net> 2488 2489 * install-mk (MK_VERSION): bump version 2490 include auto.obj.mk 2491 2492 24932009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 2494 2495 * prog.mk,lib.mk: ensure test of USE_DPADD_MK doesn't fail. 2496 24972008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 2498 2499 * install-mk (MK_VERSION): bump version 2500 man.mk: ensure we generate *.cat1 etc in . 2501 25022008-07-16 Simon J. Gerraty <sjg@void.crufty.net> 2503 2504 * install-mk (MK_VERSION): bump version 2505 add prlist.mk 2506 25072007-11-25 Simon J. Gerraty <sjg@void.crufty.net> 2508 2509 * Generic.sys.mk: Allow os specific sys.mk to be in a 2510 subdir of ${.PARSEDIR} 2511 25122007-11-22 Simon J. Gerraty <sjg@void.crufty.net> 2513 2514 * install-mk (MK_VERSION): bump version 2515 * general cleanup 2516 * dpadd.mk introduce DPMAGIC_LIBS_* 2517 25182007-04-30 Simon J. Gerraty <sjg@void.crufty.net> 2519 2520 * install-mk (MK_VERSION): bump version 2521 2522 * libs.mk, progs.mk, autodep.mk: allow for per lib/prog 2523 depend files and ensure clean is called for each lib/prog. 2524 25252007-03-27 Simon J. Gerraty <sjg@void.crufty.net> 2526 2527 * autodep.mk (.depend): delete lines that do not start with 2528 space and do not contain ':' 2529 25302007-02-16 Simon J. Gerraty <sjg@void.crufty.net> 2531 2532 * autodep.mk (.depend): gcc may wrap lines if pathnames are long 2533 so make sure the transform for .OPTIONAL copes. 2534 25352007-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2536 2537 * install-mk (MK_VERSION): bump version 2538 2539 * own.mk: make sure RM and LN are defined. 2540 2541 * obj.mk: fix a typo, and objlink target. 2542 25432006-12-30 Simon J. Gerraty <sjg@void.crufty.net> 2544 2545 * install-mk (MK_VERSION): bump version 2546 * added libs.mk - analogous to progs.mk 2547 make both of them always inlcude {lib,prog}.mk 2548 25492006-12-28 Simon J. Gerraty <sjg@void.crufty.net> 2550 2551 * progs.mk: add a means of building multiple apps in one dir. 2552 25532006-11-26 Simon J. Gerraty <sjg@void.crufty.net> 2554 2555 * install-mk (MK_VERSION): bump version to 20061126 2556 2557 * warnings.mk: detect invalid WARNINGS_SET 2558 2559 * warnings.mk: use ${.TARGET:T:R}.o when looking for target 2560 specific warnings. 2561 2562 * For .cc sources, turn off warnings that g++ vomits on. 2563 25642006-11-08 Simon J. Gerraty <sjg@void.crufty.net> 2565 2566 * own.mk: if __initialized__ target doesn't exist and we are 2567 FreeBSD we got here directly from sys.mk 2568 25692006-11-06 Simon J. Gerraty <sjg@void.crufty.net> 2570 2571 * install-mk (MK_VERSION): bump version to 20061106 2572 add scripts.mk 2573 25742006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 2575 2576 * install-mk (MK_VERSION): bump version to 20060318 2577 2578 * autodep.mk: avoid := when modifying OBJS into __dependsrcs 2579 25802006-03-02 Simon J. Gerraty <sjg@void.crufty.net> 2581 2582 * install-mk (MK_VERSION): bump version to 20060302 2583 * autodep.mk: use -MF et al to help gcc+ccache DTRT. 2584 25852006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 2586 2587 * install-mk (MK_VERSION): bump version to 20060301 2588 * autodep.mk (.depend): 2589 if MAKE_VERSION is newer than 20050530 we can make .END depend on 2590 .depend and make .depend depend on __depsrcs that exist. 2591 * dpadd.mk: add SRC_PATHADD 2592 25932005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2594 2595 * install-mk (MK_VERSION): bump version to 20051104 2596 * prog.mk: remove all the LIBC?= junk, use 2597 .-include libnames.mk instead (none by default). 2598 also if USE_DPADD_MK is set, include that. 2599 26002005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2601 2602 * install-mk (MK_VERSION): bump version to 20051001 2603 Add UnixWare.sys.mk from Klaus Heinz. 2604 26052005-04-05 Simon J. Gerraty <sjg@void.crufty.net> 2606 2607 * install-mk: always install *.sys.mk and if need be symlink one 2608 to sys.mk 2609 26102005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 2611 2612 * subdir.mk, own.mk: use .MAKE rather than MAKE 2613 26142004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2615 2616 * own.mk: don't use NetBSD's _SRC_TOP_ it can 2617 cause confusion. Also don't take just 'mk' as a 2618 srctop indicator. 2619 26202004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 2621 2622 * warnings.mk: overhauled, now very powerful. 2623 26242004-02-03 Simon J. Gerraty <sjg@void.crufty.net> 2625 2626 * Generic.sys.mk: need to use ${.PARSEDIR} with exists(). 2627 26282004-02-01 Simon J. Gerraty <sjg@void.crufty.net> 2629 2630 * install-mk (MK_VERSION): bump version to 20040201 2631 * extract HOST_TARGET stuff to host-target.mk so own.mk and 2632 Generic.sys.mk can share. 2633 * fix typo in autodep.mk _SUBDIRUSE not _SUBDIR. 2634 26352003-09-30 Simon J. Gerraty <sjg@void.crufty.net> 2636 2637 * install-mk (MK_VERSION): 20030930 2638 * rename generic.sys.mk to Generic.sys.mk 2639 so that it does not get installed (unless being used as sys.mk) 2640 * set OS and ROOT_GROUP for those that we know the value. 2641 for others (eg. Generic.sys.mk) wrap the != in an .ifndef so 2642 we don't do it again for each sub-make. 2643 26442003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 2645 2646 * install-mk (MK_VERSION): 20030928 2647 Add some extra *.sys.mk from bootstrap-pkgsrc 2648 some of these likely still need work. 2649 Make everything default to root:wheel ownership, 2650 sys.mk can set ROOT_GROUP accordingly. 2651 26522003-08-07 Simon J. Gerraty <sjg@void.crufty.net> 2653 2654 * install-mk: if FORCE_BSD_MK={cp,ln} use the ones in SYS_MK_DIR 2655 not the portable ones. 2656 26572003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 2658 2659 * install-mk: add ability to use cp -f when updating 2660 destination .mk files. Also now possible to play games with 2661 FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk 2662 into dest - not recommended unless you seriously want to. 2663 26642003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 2665 2666 * own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc 2667 for semi-compatability with NetBSD. 2668 26692003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 2670 2671 * install-mk: add a version indicator 2672 26732003-07-22 Simon J. Gerraty <sjg@void.crufty.net> 2674 2675 * prog.mk: don't try and use ${LIBCRT0} if its /dev/null 2676 2677 * install-mk: Allow FORCE_SYS_MK to come from env 2678 2679 2680 2681