12-06-20 O_cloexec|F_dupfd_cloexec edit 12-05-22 bind.c,dump.c,make.c,mam.c,rule.c: fix --mam=static 3d vs VPATH diffs 12-05-14 make.c: .IGNORE disables non-file "must" 12-05-04 option.c: add 'set --global...set --noglobal' scoping for :OP: makefiles 12-05-03 Makerules.mk: don't use ``grep -q'' until sun/oracle gets on board 12-04-20 option.c,load.c,Makerules.mk: add Op option .mo reread prereqs 12-03-22 Makerules.mk: .BIND.-l% in STDLIB dir with only CC.SUFFIX.ARCHIVE => -lfoo 12-03-22 bind.c: add .BIND.-l% --debug=3 trace 12-03-22 expand.c: SORT_qualified '!' and SORT_first '>' no longer mutually exclusive 12-02-29 Makerules.mk: fix ``lhs :MAKE: rhs'' logic for lhs and rhs makefile 12-02-29 option.c: fix regress option doc typo 12-02-20 Makerules.mk: update for astlicense() { since start source } 12-02-14 Makerules.mk: ignore MAKE_OPTIONS for --mam 12-02-14 Makerules.mk: add LICENSEFILEDEFAULT 12-02-14 Makerules.mk: add PWD edit ala MAKEPATH to PAXFLAGS 12-02-07 metarule.c: fix read string past terminator bug 12-02-02 Makerules.mk: add [[ a || b ]] to the $SHELL -n compatibility test 12-01-30 Makerules.mk: fix .INSTALL* to better handle 'text file busy' 12-01-26 SCCS.mk: add to rule install list 12-01-21 --- release 5.7 --- 12-01-21 internal tmfmt() must use user format on special times too 12-01-09 Makerules.mk: fix .MAMEDIT. to elide -[DI]-* 11-12-13 option.c: fix off by 1 undermalloc 11-12-13 Makerules.mk: fix MAKE_OPTIONS to peoperly handle --*=* options 11-11-01 Makerules.mk: omit .TARGETs from manifest 11-10-28 command.c: expand .EXPORT values at export time -- doh 11-10-10 Makerules.mk: parameter (PROTO) (PROTOFLAGS) -- doh 11-09-11 parse.c: fix ``local ( A B ... ) 1'' that did not declare B 11-09-09 Makerules.mk: check $PACKAGE_foo and then $FOO_HOME 11-09-07 debug-package.mk: add 11-08-31 mam.c,option.c: add state.mam.hold, set mam=[no]hold 11-08-30 object.c: drop OLD_header_t.version union for old cc 11-08-28 Makerules.mk: add $(ARHYPHEN) for ancient sun4-vintage ar(1) 11-08-25 Makerules.mk: change obsolete name=value option timeout to 20121221 11-08-11 Makerules.mk: fix :READONLY: typo 11-05-09 Makerules.mk: add .SOURCE.h : $(INSTALLROOT)/include 11-05-09 fix .LIST.PACKAGE.LICENSE to include .'d def files 11-03-03 rules.win32.mk: add %.rc -DRCWOW=... 11-03-02 Makerules.mk: fix :LIBRARY: --plugin=foo --static to generate the plugin! 11-02-11 add '### .*archaic.* ###' test for %.sh install to diable sh -n check 11-02-02 --- release 5.6 --- 11-02-02 command.c: fix .AFTER prereq bug that executed target twice 11-02-02 Makerules.mk: add :LIBRARY: --static --private 11-02-02 Makerules.mk: fix mam %.req to check for $INSTALLROOT/lib/lib/% 11-01-21 expand.c: fix active() non-terminating loop for joint targets 11-01-21 Makerules.mk: add "::" (.OPTIONS.$(<)) : .PARAMETER 11-01-18 Makerules.mk: handle sh patterns on rhs of :MAKE: 11-01-11 Makerules.mk: handle .INSTALL.COMMON - - - 11-01-04 rules-win32.mk: add 32/64 conditionals for c++ mangle compatibility 10-11-12 Makerules.mk: add .MAM.STATE.VARS. for FOO=BAR => -DFOO=BAR in mamake! 10-11-12 command.c: fix .AFTER .FORCE .REPEAT infinite loop -- wow 10-11-10 object.c: fix old_header.version puns for strict-aliasing 10-10-20 Makerules.mk: fix .SHARED.LIST. to honor top level .MULTIPLE 10-10-20 msgcat.mk: ksh -D strings => raw string 10-08-24 bind.c: glob_diropen() gs->name absolute path 10-08-23 bind.c: drop GLOB_NOCHECK so *.notthere => empty 10-08-15 mam.c: fix joint target make-done imbalance 10-07-17 option.c: expand external.old for execve() -- doh 10-06-21 Makerules.mk: use CC.SUFFIX.DEBUG instead of .pdb 10-06-21 Makerules.mk: add "idxxx ... id=id :LIBRARY: ..." to preserve _BLD_id==1 10-06-17 Makerules.mk,Scanrules.mk: finally a general solution to -I- vs prefix-include? 10-06-01 ast api 20100601 10-06-01 Makerules.mk: :PACKAGE: --latest --api=YYYYMMDD|latest FOO:YYYYMMDD 10-05-25 pkg-X11.mk: add CC.STDLIB.BASE checks for PACKAGE_X11_LIB 10-04-15 command.c: update to latest cowait() api 10-03-11 object.c: fix rare 0 complink compile bug 10-03-11 option.c: handle delayed option quoting if needed 10-03-10 expand.c: add '-' to order prereq token char set 10-03-09 read.c: fix ancient makefile cpp comment check that missed /**... 10-03-04 Makerules.sh: LC_ALL=C for %:%.sh $SHELL -n to avoid 1.2 arith syntax errors 10-02-24 rule.c: add .GETOPTS and b_getopts() builtin for optget() 10-02-14 Makerules.mk: add .INSTALL.COMMON. directory arg 10-02-14 bind.c: add bind_p "- ..." and "... ..." virtual logic 10-02-14 debug.mk: set --nonativepp -- doh 10-02-14 make.c,metarule.c: change metget() prereqs arg to active frame 10-02-14 expand.c,make.c,metarule.c: .IMPLICIT metarules not applied to implicit prereqs 10-02-02 Makerules.mk: fix LICENSEINFO search to check $(.PACKAGE.)-foo.lic 10-01-19 Makerules.mk: fix .RECURSE to handle install or .INSTALL 10-01-01 --- release 5.4 --- 10-01-01 parse.c: ['"] following # always ignored 09-12-09 Makerules.mk: .EXPORT => .SCRIPT, internal.exported => internal.script 09-12-09 Makerules.mk: .EXPORT now adds vars to coshell coexport(3) list 09-12-04 Makerules.mk: rename PACKAGE_OPTIMIZE=foo to PACKAGE_OPTIONS=optimize-foo 09-11-13 Makerules.mk: fix .req logic for virtual -lfoo 09-10-28 command.c: disable *** error status message for .FAILURE targets 09-10-27 parse.c,make.c: a - b : .JOINT => b:.DONTCARE (b optionally generated) 09-10-27 Makerules.mk: install .pdb if it exists in .lib dir 09-10-09 --- release 5.4 --- 09-10-07 bind.c: makerule(path) == makerule(base) && !alias && terminal => drop path 09-10-06 Makerules.mk: add '-' prefix to ARFLAGS for posix portability 09-10-05 Makerules.mk: consult REQUIRE libs for CC.DLL targets 09-09-28 Makerules.mk: retract: if -lfoo binds to CC.STDLIB dir then bind to -lfoo (it makes a difference for some cc!) 09-09-22 Makerules.mk: CC='' or --cctype=- or --cctype=0 => no C probe 09-09-22 Makerules.mk: if -lfoo binds to CC.STDLIB dir then bind to -lfoo 09-09-22 main.c: missing default makefile diagnostic is warning if --errorid 09-09-09 Makerules.mk: fix CC.AR.ARFLAGS logic 09-09-01 Makerules.mk: handle { libfoo.a foolib.a foo.a } prereqs 09-08-20 Makerules.mk: add :LIBRARY: name=soname and CC.SHARED.NAME logic 09-08-20 Makerules.mk: add :PACKAGE: --soname[=-n], -n to drop n suffixes in soname 09-07-31 Makerules.mk: add CC.AR.ARFLAGS 09-05-05 scan.c: reject implicit prereq names containing space 09-03-24 Makerules.mk: --option[=value] compatibility with option[=value] until 2011 09-03-02 Makerules.mk: use $(-recurse:/:/ /G:N=[0-9]*:O=N) for recursion limit 09-02-02 Makerules.mk: reset :PACKAGE: pkg:noinstall for each pkg 09-01-09 Makerules.mk: fix .TGZ to handle large manifests 09-01-09 Makerules.mk: :: foo.man[=N] installs in man/manN/foo.N (default 1) 09-01-06 bind.c: fix 2d .SOURCE* cross product virtual+dir bug 08-12-08 Makerules.mk: -lfoo/bar => bar plugin for foo 08-12-08 expand.c: handle -lfoo/bar prereqs 08-11-11 Makerules.mk: add %.pl => % for perl scripts 08-11-11 rules-win32.mk: rc requires native path to .rc file 08-11-04 bind.c: handle non-3d VPATH for absolute dirs in .SOURCE* 08-10-24 Makerules.mk: fix install --link=* to handle directories 08-10-24 command.c: work around another gcc code generation bug -- ouch 08-10-16 Makerules.mk: fix :NOOPTIMIZE: to cooperate with :NOPROTECT: 08-09-24 Makerules.mk: add --recurse=only 08-09-10 Makerules.mk: add :NOPROTECT:, fix CC.DIALECT=VERSION shared lib bind 08-08-08 state.c: do not use low res virtual st.st_mtime 08-08-08 Makerules.mk: always include explicit :: files in manifest 08-06-06 Makerules.mk: drop -G from _BLD_DEBUG trigger -- doh 08-05-22 Makerules.mk: $(CC.ARFLAGS) also needs $(CCLDFLAGS) 08-05-20 tests/test.def: add SET local -- nfs can't keep up 08-04-28 make.c: fix .ACCEPT to propagate state event time 08-04-28 option.c: split --regress into --regress={message|sync} 08-04-28 tests: --regress for all tests, --regress=sync for timing only 08-04-01 Scanrules.mk: .SCAN.c <nosuffix> => nosuffix : .TERMINAL 08-03-27 Scanrules.mk: add --ignorecase option to .INCLUDE.SUFFIX. 08-03-27 scan.c: fix buffer boundary slide bug 08-02-29 --- release 5.3 --- 08-02-29 option.c,variable.c: $(-+name) => option value 08-02-29 expand.c: add :H=O: to reverse token list 08-02-09 Makerules.mk: fix .SHARED.LIST. to allow multiple explicit lib prereqs 08-02-02 Makerules.mk: add LDRUNPATH init from $(CC.RUNPATH) 07-12-15 Scanrules.mk: add "set stdio HEADER" to .SCAN.iffe 07-11-26 Makerules.mk: handle a.req => -lfoo -lbar, and -la does not exists 07-10-22 Makerules.mk: initialize (CC.SHARED.LIBS.target) to match .SHARED.LIST.LIBS. 07-10-18 parse.c: handle .assoc.*%* : .INSERT to insert into assoc list 07-09-11 Makerules.mk: fix --force-shared docs to match semantics 07-09-07 scan.c: tweak ANY logic (leading ANY still does not play nice) 07-09-07 pkg-cobol.mk: handle ``ID. COPY ...'' 07-08-28 bind.c: handle assoc foo=>bar alias 07-07-31 rule.c,object.c: handle include - f, f missing in .mo, then exists 07-06-28 Makerules.mk: fix .SHARED.LIST.EXCLUDE. plugin bug (sortlib/vcodex) 07-06-25 rules-win32.mk: let $(CPP) do the %.rc=>%.res preprocessing 07-06-21 Makerules.mk: .IGNORE shared only if ! "$(CC.SUFFIX.DYNAMIC)" 07-06-21 Makerules.mk: flush dir cache after each :MAKE: recursion 07-06-21 option.c: handle set --option=';foo;sa;...' 07-06-21 expand.c: handle --recurse=*implicit* and clean up order_*() apis 07-06-21 expand.c: + ... intermediate makefile dirs in :W: (-Q0x40000000) 07-06-20 Makerules.mk: add --recurse=leaf to terminate leaf recursion 07-06-20 Makerules.mk: handle "lhs :ALL:" 07-06-15 expand.c: add :W: . alias check 07-06-11 variable.c: foo:bar==1 equiv to bar==; foo : bar=1 07-06-06 bind.c: fix ancient internal.openfile bug -- wow 07-06-06 Makerules.mk: add .SHARED.LIST.EXCLUDE. to exclude self 07-06-06 rule.c: add self to IGNORECHANGE(), only check primary joint 07-06-01 rules-win32.mk: PACKAGE_LOCAL= 07-05-25 Makerules.mk: retry package sans version if version fails 07-05-21 misc.c: invalidate openfile if _WINIX && st_nlink>1 07-05-09 Makerules.mk: fix %.req logic 07-04-20 rules-win32.mk: fix PROTOINSTALL sed <ast_*.h> => <ast/ast_*.h> 07-04-18 Makerules.mk: add :REQUIRE: 07-03-26 make.h: add state.expall to detect and disable $(...) recursion 07-03-26 Makerules.mk: fix .IFFE.REF. to handle -l* reqs 07-03-23 ppcc.sh: handle -G <number> 07-03-11 Makerules.mk: add --shared as an alternative to CCFLAGS+=$(CC.DLL) 07-02-23 Makerules.mk: add :PACKAGE: foo:private for +lfoo but not in *.req 07-02-14 expand.c: tweak :P=D: alias check (-Q0x10000000) 07-01-11 --- release 5.2 --- 07-01-09 expand.c: add :P=D: alias check (-Q0x10000000) 07-01-01 Makerules.mk: add --local-static with dynamic targets now default 07-01-01 Makerules.mk: cmd+dll installs dll before command compile/link 06-12-24 expand.c: handle $("":T=ZW) (equivalent to $("":T=R)) 06-12-24 misc.c: fix :F=T: to handle sec[.nsec] 06-12-22 Makerules.mk: add CC.STDLIB.BASE to differentiate 32 vs 64 arch 06-12-22 pkg-X11.mk: use CC.STDLIB.BASE 06-12-15 Makerules.mk: set up PACKAGE rules to search CC.STDLIB -- doh 06-12-14 rules-win32.mk: add (RC) (RCFLAGS) to %.rc => %.res 06-12-12 bind.c: handle win32 dir vs. dir.exe => not aliased 06-12-07 expand.c: add $("<table>":L...) for { FILES RULES VARIABLES } 06-12-07 expand.c: add :VX: to still expand value 06-12-07 Makerules.mk: use $("<VARIABLES>":L=CC.+([[:upper:].])) in .MAM.INIT 06-11-23 Makerules.mk: fix .BIND.-l% for -g only bootstrap 06-11-15 Makerules.mk: fix :: vs :LIBRARY: ordering bug for .o prereqs 06-11-11 Makerules.mk: fix :PACKAGE: vs lib64 06-10-31 Makerules.mk: add $(PROTOINSTALL) to :INSTALLPROTO:, rules-win32.mk 06-09-28 Makerules.mk: add $(IFFEREFS) 06-09-15 Makerules.mk: fix .SHARED.DEF.* scope prereq logic 06-09-01 Makefile: no -O for command.c on darwin (probably gcc 4.0's fault) 06-08-15 command.c: handle no action but .AFTER|.BEFORE prereqs 06-08-11 Makerules.mk: .PACKAGE.INIT now checks lib64 for HOSTTYPE==*64 06-08-11 command.c: pass $(COSHELL) to coopen() 06-08-07 command.c,parse.c: add 'query - blocked' for blocked jobs 06-08-02 command.c: cokill(state.coshell,0,0) to kill event jobs 06-07-31 metarule.c: handle dynamic metarule rhs 06-07-27 command.c: clear job->cojobs to prevent concurrent use 06-07-17 Makerules.mk: cc-...~... => cc-...,... 06-06-21 expand.c: add :Z[=C]: for closure and cycle detection 06-06-11 command.c: update to use copending() cojobs() cozombie() 06-05-09 command.c: pass CO_ENV_OPTIONS to coopen() 06-03-29 Makerules.mk: fix +l* explicit binding override 06-03-08 Makerules.mk: fix :JOINT: rhs double eval 06-02-08 pkg-cobol-cobc.mk: drop -g from COBOLFLAGS 06-01-31 Makerules.mk: fix :PACKAGE: P:static to honor .PACKAGE.P.library 06-01-25 Makerules.mk: { -ldl -lm } dynamic unless explicitly overridden 06-01-21 --- release 5.1 --- Makerules.mk: fix list.package.binary INSTALLROOT edit command.c: add gcc 4.*.* ppc code generation bug workaround read.c: handle /dev/* mtime==0 version.c: fix { VROOT VOFFSET } initialization 06-01-08 pkg-cobol-*.mk: handle --debug-symbols 05-12-25 Makerules.mk: fix :LIBRARY: plugin bind for exe/dll 05-11-22 variable.c: restore $(+...)==$(-...) until 2009 05-11-07 Makerules.mk: fix :YYPREFIX: to handle YY in new prefix 05-11-04 Makerules.mk: PACKAGE_p_LIB => PACKAGE_p_INCLUDE 05-11-03 expand.c: add :H=P: directory prefix sort 05-11-01 pkg-cobol-*.mk: add :VARARGS: 05-10-14 pkg-cobol*.mk: add COBOL.PLUGIN.LIBRARIES for mfcobc plugins 05-10-12 Makerules.mk: handle "foo :LIBRARY: -lfoo" to gen dll from lib tests/cc.def: add test version of pkg-cobol.mk 05-10-11 Makerules.mk: :PACKAGE: foo:bar => .PACKAGE.foo.option.bar:=1 pkg-cobol-mfcobc.mk: add special char extern demangle pkg-cobol-mfcobc.mk: :PACKAGE: cobol:always => .COBOL.INIT 05-09-15 Makerules.mk: quote .PROBE.SPECIAL return to disable time arith 05-08-11 rule.c,state.c,tests/attribute.tst: fix .RETAIN 05-08-08 Makerules.mk: add :A!=.TERMINAL: to .BUILT. -- doh tests/recurse.tst: add test for .BUILT. vs .TERMINAL 05-07-17 Makerules.mk: move cobol specifics to pkg-cobol.mk Makerules.mk: add CCSPECIALIZE $(CC.OPTIMIZE) override Makerules.mk: add include - + pkg-default.mk Makerules.mk: add $(-mam) test for .MAM.INIT in .mo Makerules.mk: --mam=static set noreadstate reread strictview Makerules.mk: handle package named by root dir: :PACKAGE: /a/b/name pkg-cobol.mk: generic cobol package setup pkg-cobol-cobc.mk: open source cobol package setup pkg-cobol-mfcobc.mk: microfocus cobol package setup options.h: OPT_reread is boolean, not numeric rule.c: add .FREEZE state.freeze tests/recurse.tst: add 05-05-25 Makerules.mk: use $(CC.INCLUDE.LOCAL) instead of -I- CC.DIALECT 05-05-18 Makerules.mk: fix --static-link typo Makerules.mk: disable .MAMACTION "setv FOO ${FOO}" Makerules.mk: add (CC.SHARED.LIBS.*) to capture -l* bind changes 05-05-11 Makerules.mk: fix --nolib-type to work for referenced libs too 05-05-05 Scanrules.mk: handle cobol COPY "book" optional quotes 05-05-01 Makerules.mk: drop -D* from COBOLFLAGS Makerules.mk: :PACKAGE: :dynamic => :notype 05-04-26 Makerules.mk: add COBOLDIALECT 05-04-20 Makerules.mk: add :P=A: to .LIST.PACKAGE.BINARY VROOT logic Makerules.mk: fix PACKAGE_%_LIB logic to handle /usr/%/lib64 etc. version.c: fix OLDMAKE to search $(PATH) for { gmake make } 05-04-15 option.c: fix regress state.start for hi res clock lo res filesystem state.c: failed statevar action must set statevar time to 0 Makerules.mk: change manifest edit op :P=F: => :P=F:T=FR: 05-04-14 Makerules.mk: drop /usr/common from LCLDIRS, /home from OPTDIRS 05-04-11 command.c: set internal.openfd FD_CLOEX before coopen() 05-04-08 parse.c: revisit space indentation [syntax:10] object.c: pre-2005-03-01 corruption repair drops 0 prereq list items 05-04-03 variable.c: fix += vs space inconsistencies [assign:09] Makerules.mk: restore $(PACKAGE_LOCAL) -- used in user makefiles 05-03-31 Makerules.mk: add --lib-type object.c: move bound object prereq name to COMP_NSEC parse.c: fix assertion/assignment intercept $(%) to be operator name 05-03-19 Makerules.mk: %.sh chmod only if not already writeable&executable Makerules.mk: mam ${-debug-symbols...} defaults to ${CCFLAGS.FORCE} make.c: fix optional joint metarule prereq state check metarule.c: fix closure ordering bug (metarule:23) object.c: don't mark (P_joint|P_target) garbage object.c: fix makefile prereq subsecond truncation time check object.c: fix makefile .SOURCE.mk prereq change bug (diagnostics:14) parse.c: .SPECIAL not interpreted as metarule -- doh state.c: triggered state var time now synced after action completes 05-03-17 state.c: fix statefile() to return non-null for --nowritestate state.c: demote "file timestamp subsecond truncation" to --warn Makerules.mk: fix .SHARED.LIST. to honor --all-static Makerules.mk: _PACKAGE_foo=0 => ignore :PACKAGE: foo 05-03-11 state.c: handle linux subsecond truncation after state lock inode flush expand.c: handle */foo?* : lib/libfoo in :W=O: 05-03-09 Scanrules.mk: cobol accepts "\T \D COPY ..." ! rule.c: clarify prereq list change explanations 05-03-08 Makefile: generate nmake.1 from --nroff + make.1.body + make.1.tail 05-03-01 object.c: fix compcheck() bug that missed some prereq->complink object.c: repair pre-2005-03-01 compcheck() corruption in load() Makerules.mk: fix .LIST.PACKAGE.EDIT. , delimiter clash Makerules.mk: fix binary .LIST.PACKAGE.EDIT. to retain arch/HOSTTYPE Makerules.mk: fix plugin static :LIBRARY: dll install bug Makerules.mk: --static-link => _BLD_STATIC_LINK==1 05-02-28 object.c: reset errno for "object file io" EOF messages 05-02-22 make.c: fix joint metarule time comparison 05-02-14 object.c: object option strings must be utf8 05-02-11 Makerules.mk: check :MAKE: recursion on . 05-02-08 Makerules.mk: shared lib link now uses ./*.req too 05-02-06 Makerules.mk: .FIND. lib/package checks $(PACKAGEROOT) first 05-02-04 Makerules.mk: drop .LIBRARY.CLEANUP. old plugin cleanup 05-01-01 --- release 5.0 --- high resolution time stamps 04-12-25 Makerules.mk: handle cc-,a=b Makerules.mk: check for -I. after -I- Makerules.mk: add MVFLAGS=-f for install actions Makerules.mk: relax .PACKAGE.INIT. PACKAGE_%_INCLUDE search Makerules.mk: fix list.manifest recursion Makerules.mk: add experimental --recurse=combine Scanrules.mk: assert .LCL.INCLUDE before .PREFIX.INCLUDE :T=G: bind msgcat.mk: fix _PACKAGE_ID bind.c: disable bindalias() for unbound files -- doh misc.c: fix { %C %S } core dump (after a warning!) parse.c: drop CON_scan for over all rules; $(...) does it parse.c: drop { .ASSERT .ASSIGN } lists, add { .ASSERT. .ASSIGN. } state.c: ignore file timestamp subsecond truncation -- willya fix ext3 04-12-08 Scanrules.mk: add .SCAN.iffe for `include previous-iffe-output' Scanrules.mk: fix $(prefixinclude:?...) => $(-prefix-include:+...) Makerules.mk: no -g CC.LIB.TYPE (in ar name) if CC.OPTIMIZE also set rule.c: don't propagate .DONTCARE .IGNORE to bound rule parse.c: association pattern ending in % is appended expand.c: fix :P=A: 3d logic to retain pwd prefix -- doh expand.c: fix makefile scan to ignore lib*.[hH] bind.c: fix bug that missed bind dir for x given explicit d/x (edit#18) misc.c,option.c: *,*=* is a target/prereq, not a (scoped) var assignment 04-12-01 object.c,state.c: tmsleep() on statefile time for 1 sec granularity 04-11-25 expand.c: handle :T=<op>=<ops>: for all <op> command.c: maintain error state for cancelled actions command.c: add .AFTER .FAILURE to capture action errors Makerules.mk: LEX = $(FLEX) if flex exists Makerules.mk: add :YYPREFIX: fallback to previously generated 04-10-22 Makerules.mk: check for package-pwd in LICENSEFILES Makerules.mk: mam ${(debug|strip)...} => ${-(debug|strip)-symbols...} Makerules.mk: add $(LICENSECLASS) Makerules.mk: add $(package.license.class) pattern for .LIST.PACKAGE.* Makerules.mk: add $(.SELECT.EDIT.) for omitting .RECURSE subdirs expand.c: fix recursive order logic 04-10-01 metarule.c: metaget assumes % target for ... : % .NULL (-Q0x08000000) scan.c: add \T token match for (\D|\V) Makerules.mk: :PACKAGE: --option checked first, "set" by default Scanrules.mk: .SCAN.cob COPY has "\T" lead-in instead of " \D" 04-09-28 expand.c: fix operator separator parse (edit#17) option.c: fix $(-c) option flag lookup (option#14) 04-09-24 option.c: optcheck() after each option table change 04-09-21 add --option prereq scope with getopt() style "--" terminator expand.c: :P=A: now acts like :P=L!: Makerules.mk: fix $(-static) => $(-static-link) Makerules.mk: /bin/cat.exe => "%.exe : % .NULL" 04-09-09 expand.c: add :T=QO: (isoption()) and :T=QR: (!!getrule()) object.c: finally stomp the complist() panic via compcheck() object.c: fix loadstring() to detect early EOF option.c: add isoption(), --name[[-+&|^]=value] option.c: fix set option table format to handle future extensions Makerules.mk: drop PACKAGE_LOCAL definition -- not used anywhere Makerules.mk: add rules options, syn with options.c Makerules.mk: this version incompatible with make < 2004-09-09 04-09-01 Makerules.mk: add .LIST.PACKAGE.RUNTIME Makerules.mk: fix recursive .LIST.PACKAGE.EDIT. make.h,options.h,option.c,command.c: add --serialize, state.serialize expand.c: sync :W: 2d and 3d logic option.c: add --option values subarg for optget(3) value list read.c: fix MAKERULES vs. explicit rules statement logic variable.c: change $(+) to $(--[name]), add $(-?[name]) 04-08-31 debug.mk: fix -D-d vs -dD logic 04-08-11 expand.c: :W=O: scans INIT files too -- duh expand.c: fix :P=H: sufix checks expand.c: handle :P!=S: command.c: fix .JOBDONE rule arg (internal#05) command.c: fix --targetcontext directory commit logic metarule.c: add --targetprefix=prefix to handle source base clashes parse.c: fix local ( a ... ) $(%) (statement#10) Makerules.mk: fix :PACKAGE_INSTALL: to use .ACCEPT (e.g. for proto) Makerules.mk: fix .MAMEDIT. initialization for 2d vs. 3d Makerules.mk: YACCFIX now applies proto to y.tab.h Makerules.mk: ignore VERSION==- for default output file names Makerules.mk: fix :DLL: to work -- wow Makerules.mk: fix synthesized rule names to avoid .. canonicalization Makerules.mk: fix :PACKAGE: to handle `foo=bar' rhs Makerules.mk: add .LIST.PACKAGE.LICENSE Makerules.mk: add separateinclude=1 to override CC.DIALECT=-I- Makerules.mk: handle --targetprefix 04-08-10 rules-win32.mk: add :PACKAGE: { atl crt mfc } support -- puke 04-07-27 msgcat.mk: move :: related files to msg specific action 04-07-22 tests/*.tst: more test additions 04-07-17 archive.c: --regress enables ranlib for all archive types bind.c: fix binding guess for unbuilt targets bind.c: fix overzealous dir HASH prune for 2d views bind.c: allow D_source&P_target to inherit lower view (assert#29) expand.c: add :T=B..: unbind pre-op main.c: move the .INIT trap after candidate state variable freeze main.c,read.c: update MAKECONVERT to handle 'file1:file2 action ...' make.c: let joint prereq share sibling frame for binding (assert#34) make.c: fix require_p loop detection object.c: add objectfile() to unify with statefile() object.c: fix lower view state var time propagation object.c: -nbf file inhibits frozen var check object.c: use complink() skip logic in comprule() -- wow option.c: --writestate and --writestate can specifiy dir only rule.c: add .GLOBAL and internal.global state.c: drop leads/lags warning for --regress Makerules.mk: handle multiple :LINK: lhs Makerules.mk: fix .DO.INSTALL.DIR view logic with .DO.TOP.LEVEL Scanrules.mk: add ".ATTRIBUTE.%.h : .SCAN.c" for .PARAMETER files Scanrules.mk: .SCAN.sh: add $'...' quotes 04-06-30 parse.c: pass blank lines at all input levels to preserve numbering parse.c: no space indent warning for blank lines parse.c,syntax-08: handle quote after expansion in expression 04-06-28 make.c: preserve joint metarule prereq list order diagnostics.tst: add 04-06-21 Makerules.mk: make options env ignored if MAKE_OPTIONS set make.h: add state.import with increment/decrement semantics options.h,options.c,variable.c,object.c: add import state option parse.c: fix here action parse to honor quotes and nesting parse.c: retain blank/hidden action lines for line number consistency trap.c: fix functional vs. obsolete virtual interrupt logic assert.tst,automatics.tst,interrupts.tst,syntax.tst: add 04-06-20 dump.c: drop dumprule() trailing ' ' by adding "state" status expand.c: skip tst=='F' for :T=XG: make.c: maketop() rule rename disabled (what did that do?) misc.c: handle %o in printext() -- oops misc.c: %t %T calls tmdate() if not a number parse.c: D_scope prereqs do not set P_target Makerules.mk: if ! "$(CC.DIALECT:N=-I-)" then no -I- -- duh 04-06-19 implicit.tst: add 04-06-18 rule.c: add nametype() to unify is*() name type macros 04-06-17 options.h: add -q, --regress to massage output for testing misc.c: add numtime() for mam/regress/trace numeric times prereqs.tst: add 04-06-12 assignment.tst: add 04-06-11 Makerules.mk: fix per-target +l vs. -l nmake.tst: split into attributes.tst edit.tst options.tst options.c: recode to pass options.tst 04-06-10 nmake.tst: initialize in 2d with no VPATH 04-06-08 Makerules.mk: drop :PACKAGE: nolibrary => -l%:.VIRTUAL 04-06-06 rule.c: fix associate() .SCAN match 04-06-04 Makerules.mk: add :PACKAGE: foo:notype bar:type=-p --type=-g Makerules.mk: fix .REQUIRE.* to handle libfoo.a etc. scan.c: add 'O' option to inhibit scan override warning parse.c: debug=7 for active statements, debug=8 for skipped 04-05-31 Makerules.mk: fix :PACKAGE: version logic Makerules.mk: add .FLAGSINIT, called in .MAKEINIT Makerules.mk,Scanrules.mk: strip to generic cobol expand.h,expand.c: add ^ edit op sep 04-05-20 Makerules.mk: fix .OFFICIAL to not diff dirs 04-05-19 parse.c: make the read builtin interruptable 04-05-18 rule.c: move b_*() builtins here, add b_syscall() 04-05-11 mam.c: add "bind ..." to match the mam doc make.c: add "meta ..." to match the mam doc Scanrules.mk: tweak cobol sql scan scan.c: fix ancient dup pattern prefix bug 04-05-06 Makerules.mk: fix CCLD CCLDFLAGS semantics 04-04-15 expand.c: fix :V: operand check expand.c: check var alternation only before first delimiter expand.c: add :P=F: to recursively expand dir hierarchies expand.c: fix ancient $(...) non-tokenizing edit op bug parse.c: fix dup scope prereq value append bind.c: check for consistent ../* bound directory rebind Makerules.mk: fix :PACKAGE: :noinclude:nolib:noroot Makerules.mk: add :P=F: to .MANIFEST. Makerules.mk: add :INIT: Makerules.mk: drop obsolete MAKESKIP var definition Makerules.mk: proto notice generation disabled unless LICENSE=="*=*" Makerules.mk: package/PACKAGE.(lic|pkg) on PKGDIRS inhibits "not found" Makerules.mk: "test" action checks for gnu "check" Makerules.mk: fix recurse action target selection Scanrules.mk: fix .INCLUDE.cob to search lower and upper case suffixes rules-win32.mk: add SYSDIR 04-04-14 Makerules.mk,Scanrules.mk: add COBOLIPF,COBOLSQL 04-04-12 Makefile: add STDCHMOD (for osf.alpha cmd :LIBRARY:) 04-04-04 bind.c: don't alias 2d directories -- duh 04-04-01 Makerules.mk: .BIND.+l% checks .REQUIRE.-l% for disable 04-03-31 expand.c: add :VB: for VAL_BRACE { ... } Makerules.mk: fix .SHARED.LIST. again Makerules.mk: add :PACKAGE: noCC.* CC.*=value probe overrides 04-03-30 Makerules.mk: omit -L*/local/* if in CC.STDLIB (00-03-17 repeal) 04-03-25 pkg-X11.mk: drop openbsd.i386 -lc_r workaround Makerules.mk: fix .SHARED.BIND. CC.SUFFIX.STATIC -l* expansion bug 04-03-17 expand.c: check { :: :LIBRARY: } lhs option.c: fixed bug that looped on `-' or `+' arg -- wow Makerules.mk: atom arg disables foo => .FOO checks for subsequent args Makerules.mk: fix .LIST.PACKAGE.BINARY :P=A: misplacement Makerules.mk: fix inappropriate .BIND.-l% CC.SUFFIX.ARCHIVE .IGNORE Makerules.mk: fix .SHARED.REF.* to bind before return Makerules.mk: :NOTHING: now does `exit 0' -- almost nothing Makerules.mk: I not appended to ARFLAGS if .def :LIBRARY: rhs pkg-X11.mk: handle /usr/include/X11R* /usr/lib/X11R*, deprecate contrib 04-02-29 state.c: fix `another make running' message to handle <=0 elapsed time Makerules.mk: CC.LD.RUNPATH used only if LDRUNPATH set (. to kick in) Makerules.mk: mam ${MAKE} => ${NMAKE}, ${MAKEFLAGS} => ${NMAKEFLAGS} Makerules.mk: localize plugin DLLDIR and CC.SHARED.REGISTRY Makerules.mk: do not install plugin CC.SUFFIX.SHARED libs Makerules.mk: fix CC.SUFFIX.SHARED CC.SUFFIX.ARCHIVE clash variable.c: mam $(-): $MAKEFLAGS => ${NMAKEFLAGS} nmake.tst: 001 now ebcdic immune 04-02-14 scan.c: add class identifier match action 'C' expand.c: add :P=E: for PATH independent executable name expand.c: static mam :P=A: expands ``.'' for pwd expand.c: :N=pat: now uses regcomp() instead of strmatch() expand.c: :T=F: lstat() (as always) :T>F: pathstat() read.c: extend new vs. old makefile type check parse.c: add <<'end' ... end for literal actions Makerules.mk: let proto -c '' determine .LIST.PACKAGE.* comment style Makerules.mk: add $(CC.EXPORT.DYNAMIC) to default cobol LDFLAGS Makerules.mk: add $(CC.SHARED.LD) to differentiate -r and $(CC.SHARED) option.c: add --writeobject[=file] --writestate[=file] 04-02-11 Makerules.mk: .LIST.PACKAGE.* generates top view relative paths Makerules.mk: add $(CC.AR) for ar option.c: fix optget() usage bug that treated --nofoo as --foo 04-02-02 Makerules.mk: :LIBRARY: plugin static still installs req Makerules.mk: fix :PACKAGE: foo:nolibrary Scanrules.mk: ignore C++ include <foo> (no suffix) object.c: retain reference .IGNORE in state option.c: non-0 exit for invalid command line options parse.c: don't check D_scope for D_dynamic rule.c: add external.order for .ORDER, :W=[OPR]:, :PACKAGE: X:order scan.c: null map means ignore; handle |A.IGNORE| 04-01-30 Makerules.mk: add .LIBRARY.CLEANUP.* to clean up after plugin renam Makerules.mk: :PACKAGE_INIT: lhs for pre-installed $(BINDIR) files 04-01-28 Makerules.mk: add ``lib version plugin=id :LIBRARY: ...'' expand.c: :W=[OPR]: now favors make if its in the mix 04-01-22 Makerules.mk: add .PREQUIRE check to ensure up to date *.req 04-01-20 expand.c: :T=F: includes triggered time==0 targets 04-01-01 --- release 4.4 --- 03-12-31 Makerules.mk: $(LDRUNPATH) overrides defaults for CC.LD.RUNPATH 03-12-19 expand.c: add `foolib:foo:libfoo' to :W=[OPR]: 03-11-25 Makerules.mk: CC=c++ not found => search for any existing c++ compiler 03-11-19 Scanrules.mk: default cobol include suffix is .CPY (or .cpy) 03-09-29 Makerules.mk: fix $(PACKAGES) logic inversion typo (:VARIANT: bug) 03-09-22 Makerules.mk: don;t clobber $(CATALOG).msg 03-09-19 Makerules.mk: fix %.sh USAGE_LICENSE quoting expand.c: fix :T=E: quoting 03-09-16 archive.c: inhibit `member newer than archive' for ranlib time skew 03-08-27 Makerules.mk: honor explicit :MAKE: rhs order 03-08-11 make.c: change -T0x00300000 to -Q0x00300000 as documented 03-07-17 archive.c: add arupdate() state.c: don't skew sync archives (avoids possible ranlib interference) 03-06-21 parse.c: fix expr() quote recursion bug Makerules.mk: fix .DLL.INSTALL logic object.c: add initcode() to initialize the ccode maps early enough main.c: add initcode() startup call 03-06-11 Makerules.mk: reinstate install .a on .dll+.lib systems rules-win32.mk: inhibit libast.a install since cc does implicit ast.lib Makerules.mk: drop DIALECT==CLOSURE check for new -l* binding Makerules.mk: add --mam ${mam_cc_FLAGS} to handle user CCFLAGS override Makerules.mk: fix :DLL: to honor CCFLAGS Makerules.mk: add -D_BLD_DEBUG to mam CCFLAGS 03-06-10 debug.mk: add libpp(3) -D-d to %.i rules 03-06-09 main.c: wait for jobs to finish before making .DONE expand.c: change `V edit op value' error to be a warning Makerules.mk: fall back to flex if lex not found 03-06-06 expand.c: add :VFU: to expand unbound internal var names Makerules.mk: use .SHARED.LIST. to generate -l* +l* list 03-06-02 ppcc.sh: -o C++ implies -o PPLD for link time instantiation 03-05-21 Makerules.mk: fix %.sh=>% :T=E: echo quote bug 03-05-19 Makerules.mk: runtime check for flex -[oP] and bison -[op] Makerules.mk: add strip=1 ala debug=1 03-05-11 rule.c: fix MAKEPATH=$PWD:$PWD loop 03-05-09 command.c: add "init TARGET CURTIME" dynamic mam command.c: add CURTIME to mam "code TARGET STATETIME CURTIME ..." 03-05-07 Makerules.mk: add COBOL COBOLFLAGS COBOLMAIN COBOLLIBRARIES .SUFFIX.cob Scanrules.mk: add .SCAN.cob, `*( MAIN )*' for main source scan.c: add \D (0 or more digits), \V (0 or more variable chars) 03-04-27 Makerules.mk: don't build dlls in subdir for CC.SUFFIX.SHARED==".x" 03-04-22 rules-win32.mk: drop :PACKAGE: Xm override -- handled by uwin 03-04-15 mam.c: output P_ignore attribute Makerules.mk: fix the mam .DO.INSTALL to compare before mv to .old!! 03-04-05 expand.c: add :W=P: for ordered recursive prereqs Makerules.mk: add recurse=prereqs pkg-X11.mk: add openbsd.* -lc_r pthread workaround Makerules.mk: add .PACKAGE.$(P).found:=1 if package lib or header found Makerules.mk: optional :PACKAGE: rhs must now be marked :dontcare Makerules.mk: pure recursion makefiles make .RECURSE first by default Makerules.mk: .NORECURSE inhibits default .RECURSE first Makerules.mk: fix .DO.INSTALL directory prereq omission Makerules.mk: add .BELIEVE for initialization, e.g., after mamake bind.c: fix rebind alias bug misc.c: limit `mtime after the epoch' warnings to { S_ISREG S_ISDIR } 03-03-28 Makerules.mk: eliminate CC.STDINCLUDE before -I- too 03-03-27 Makerules.mk: add :PACKAGE: *:attributes:* pkg-X11.mk: fix CC.REQUIRE.Xm rules-win32.mk: add :PACKAGE: Xm:attributes:static 03-03-21 command.c,object.c: always emit target name for --mam=dynamic 03-03-19 expand.c: add :W=R: for true :MAKE: recursion order state.c: add test 0x00040000 to set failed event to staterule event nmake.tst: add first regression tests since 1984 -- yes, I'm ashamed Makerules.mk: change :W=O: to :W=R: Makerules.mk: use CC.LD.RUNPATH for LDRUNPATH and non-std dirs Makerules.mk: drop MAKEDIRS .RECURSE.OFFSET. -- not needed with :W=R: 03-03-15 Makerules.mk: fix debug=1 to delete $(CC.OPTIMIZE) from CCFLAGS expand.c: fix SORT_* comparison function selection 03-03-11 expand.c: add ~ edit op sep expand.c: limit edit op [~!<>=] sep to one occurrence expand.c: add :H=[FINUV]: alternative to edit sep overload expand.c: add :L~: to use version comparison Makerules.mk: use :H=[FINUV]: and :L~: Makerules.mk: add pkgconfig(1) .pc file support in :PACKAGE: Makerules.mk: fix %.sh=>% :T=E: misquote (ancient!) 03-03-03 Makerules.mk: .MAM.INIT handles debug=1 for CC.DEBUG vs. CC.OPTIMIZE Makerules.mk: add 'test : .DONTCARE .ONOBJECT' Makerules.mk: another prefixinclude fix -- my head hurts Makerules.mk: pass recursive $(=) by value ( $(=:V) ) misc.c: fix :F=[LUV]: translation 03-02-28 Makerules.mk: YACCFIX workaround for bison yytoken addition Makerules.mk: include $(LDLIBRARIES) in %.req Makerules.mk: fix .BIND.-l% comparison on CC.PREFIX.SHARED debug.mk: handle .o scope prereqs variable.c: fix $(!) internal.val conflict 03-02-24 option.c: drop --mismatch alias for --corrupt 03-02-12 Makerules.mk: handle multiple lhs for :INSTALLDIR: 03-02-06 pkg-freetype.mk: add 03-01-31 Makerules.mk: mark .PACKAGE.LIBRARIES. hints .DONTCARE Makerules.mk: :PACKAGE: add to .PACKAGE. first, then include pkg-*.mk 03-01-23 Makerules.mk: more prefixinclude tweaks 03-01-11 Makerules.mk: CATALOG default is $(.CATALOG.NAME.) 03-01-10 Makerules.mk: parameterize all silent => $(SILENT) 02-12-21 --- release 4.3 --- 02-12-18 Makerules.mk: :NOOPTIMIZE: "..."'d operator arg shenanigans 02-12-16 Makerules.mk: disable .ARCOPY for linked targets 02-12-06 Makerules.mk: sync CC.MAKE.OPTIONS,nativepp,prefixinclude logic 02-12-04 Makerules.mk: fix contorted .so editing for - and n.n.n versions Makerules.mk: parameterize CC/cc suffixes in { .SUFFIX.c .SUFFIX.C } Makerules.mk: use { .SUFFIX.c .SUFFIX.C } in :cc: list generation Makerules.mk: parameterize fortran suffixes in { .SUFFIX.f .SUFFIX.r } Makerules.mk: %.f is now equivalent to %.F Scanrules.mk: use { .SUFFIX.c .SUFFIX.C .SUFFIX.f .SUFFIX.r } Scanrules.mk: change .SCAN.F to .SCAN.fql -- who cares? 02-12-03 rule.c: don't .UNBIND M_bind rules (questionable=0x02000000) 02-12-02 Makerules.mk: prefixinclude=0 if CC.DIALECT has -I- make.c: add mutually dependent requirement loop check (for -l loops) 02-11-28 main.c: don't close error_info.fd in startup 02-11-21 Makerules.mk: dll version "-" bug that removed the installed dll! 02-11-20 Makerules.mk: fix :cc: to handle all C source suffixes 02-11-12 Makerules.mk: handle CC.LD.ORIGIN and CC.LD.STRIP 02-10-31 main.c: change exit()=>return for pedantic lint 02-10-28 bind.c: add GLOB_NOTDIR optimization to gl_dirnext 02-10-25 eliminate a few uninitialized variable references 02-10-20 Makerules.mk: add :NOTHING: (:ALL: or ...) 02-10-16 Makerules.mk: fix :MAKE: for rhs files 02-10-02 state.c: (-Q0x01000000) $(>) use min(r->time,state(r)->time) misc.c: tmform() => fmttime(); %K default time format 02-09-22 Makerules.mk: drop ${mam_cc_STATIC} for +l binding expand.c: fix mam $(FOO|BAR) => ${mam_cc_FOO-${mam_cc_BAR}} conversion 02-09-11 make.probe,probe.win32: move to INIT src to share with mamprobe Makerules.mk: add a few more mam_cc_* refs (mamprobe mostly complete) Makerules.mk: don't install .a only on .dll+.lib systems Makerules.mk: add :PACKAGE: :ignore=dir:, PACKAGE_IGNORE Makerules.mk: .PACKAGE.INIT. always initializes .PACKAGE.GLOBAL. Makerules.mk: add STDCMP to MAM install action 02-09-07 Makerules.mk: disable lib REQUIRE closure if from CC.REQUIRE.* 02-09-05 Makerules.mk: drop .NO.STATIC foo.a => foo-static.a rename 02-09-01 Makerules.mk: add RMRECURSEFLAGS=-r Makerules.mk: assume mkdir -p (handled by INIT install) 02-08-30 make.c: modified .JOINT siblings now trigger action 02-08-06 make.h: { setbit shquote } macro rename to appease netbsd -- barf 02-07-17 make.c,parse.c: allow keepgoing to be set by .QUERY 02-06-11 Makerules.mk: :F=%(...)S: => :F=%(...)s: misc.c: %S %C obsolete warning variable.c: fix $(!) that improperly skipped !rule.scan && PREREQS.scan 02-06-07 state.c: stat() after close() instead of fstat() before for cygwin 02-06-06 Makerules.mk: fix $(output) to handle -$(VERSION) already in $(PWD) 02-05-28 probe.win32: updates for { mingw } 02-05-24 probe.win32: updates for { digital-mars borland lcc } 02-05-20 expand.c: update to use regsubcomp(),regsubexec() 02-05-09 expand.c: fix cross() so / X foo generates /foo, not //foo 02-05-07 archive.c: use <ardir.h>,-lardir for library archives 02-05-06 probe.win32: add more win32 compilers 02-04-15 Makerules.mk: fix .DO.INSTALL ln-s to use proper source path 02-03-29 Makerules.mk: CC.SUFFIX.SHARED==".lib" => CC.SUFFIX.DYNAMIC==".dll" make.probe: cygwin CC.PREFIX.SHARED=lib CC.SUFFIX.SHARED=.dll.a 02-03-27 Makerules.mk: fix .BIND.-l% and .REQUIRE.-l% recursion checks 02-03-23 Makerules.mk: ensure that _BLD_<variant> is valid identifier Makerules.mk: add .LIST.INSTALLED for existing files only Makerules.mk: add $(LICENSEFILE) to .FILES. 02-03-14 variable.c: add label to --mam "setv" 02-02-14 makerules: add and use CMPFLAGS makerules: add win32 ar I flag only when installing .a makerules: iffe { CC CCFLAGS LDFLAGS } => { IFFECC ... } scan.c,variable.c: .SCAN.IGNORE must ignore state prereqs too main.c: fix final message sequence for .ERROR intercept state.c,variable.c: fix $(?x) when state(x) exists but rule(x) doesn't makerules: add .SHARED.UNIQ. to .COMMAND.o (required by sgi.mips3) 02-02-02 makerules: mark :VARIANT: target .SPECIAL makerules: use STDED & STDEDFLAGS to differentiate from ED=vi makerules: drop ED & EDFLAGS Makeinstall.mk: add STD* probe with possible execrate(1) makerules: inhibit lib/lib closure for CC.DIALECT==CLOSURE probe.win32: add CC.DIALECT CLOSURE to inhibit .lib closure option.c: -S => -S0 makerules: fixed .SHARED.UNIQ. to ignore .MULTIPLE -- duh 02-02-01 makerules: fix .IFFE.REF. for \r\n systems -- barf 02-01-22 makerules: ARFLAGS += I for CC.DLL on win32.* 02-01-15 makerules: fix $(CC.PREFIX.DYNAMIC) logic in .BIND.-l% makerules: mark $(CC.SUFFIX.DYNAMIC) .SCAN.IGNORE 02-01-11 makerules: fix $(CC.SUFFIX.LD) prereqs for :LIBRARY: dlls make.probe: add .ign to cygwin CC.SUFFIX.LD 02-01-10 makerules: add proto -e arg to lhs of :INSTALLPROTO: probe.win32: add .ign to CC.SUFFIX.LD 02-01-08 makerules: initialize HOSTCC to $(CC) 02-01-07 makerules: fix .LIBRARY.STATIC.* binding 02-01-04 makerules: .REQUIRE.-l% includes pkg-%.mk of lib+prereqs before bind 01-12-26 makerules: .REQUIRE.-l% includes pkg-%.mk if it exists 01-12-24 pkg-X11.mk: add CC.REQUIRE.Xaw3d 01-12-20 makerules: fix .RECURSE.INIT to use only first match of $(MAKEFILES) 01-12-19 makerules: foo :VARIANT: ... implies _BLD_foo==implies _BLD_foo==1 01-12-18 makerules: sync .SOURCE.a between .BIND* and .PACKAGE* (again!) 01-12-15 command.c: fix bug that discarded a running job twice 01-11-30 command.c: exit 128 silently marks job error but continues 01-11-25 command.c: add .JOBDONE(target status user sys) .FUNCTION 01-10-31 makerules: adjust .SOURCE.mk to ensure user specified dir order makerules: search MAKERULESPATH for ppcc rather than just MAKELIB makerules: delay CC.SHARED.REGISTRY expansion bind.c: add debug=14 directory search order trace make.probe: fix CC.SHARED.REGISTRY probe typo 01-10-30 makerules: _BLD_foo==1 only for foo :LIBRARY: source 01-10-20 makerules: fix --mam bug that didn't parameterize HOSTCC makerules: fix .PACKAGE.INIT. and .BIND.-l% to use the same search! bind.c: foiled alias still allows bind questionable=0x40 expand.c: allow all edit op delimiter combinations (e.g., !>, <>) make.probe: fix CC.DLL probe for gcc __ia64 01-10-18 misc.c: clear SFFMT_LONG for %[cCsS] to avoid wide char conversions 01-10-17 misc.c: add %a %A format, fix unknown format core dump 01-10-15 makerules: fix .SELECT. bug that improperly dropped .ARCHIVE 01-10-11 make.probe: fix CC.WARN probe for C++ 01-10-10 Makerules.mk,make.probe: add { SHELLMAGIC CC.SHELLMAGIC } 01-10-05 make.c: add -Q0x00800000 to disable r->status=FAILED when errors!=0 !! 01-10-02 makerules: :YYPREFIX: invert case for macro prefix 01-09-28 makerules: fix .RWD. and .OWD. usage 01-09-24 fix $(.GETCONF x) builtin 01-09-19 make.probe: add cygwin dll build probes probe.win32: sync with make.probe makerules: include debug.mk by default makerules: .dll+.lib rule now passes .dll suffix to $(CC.LD) make.probe,makerules: add CC.PREFIX.(ARCHIVE|DYNAMIC|SHARED) make.probe,makerules: change CC.SYMPREFIX to CC.PREFIX.SYMBOL makerules: fix .RECURSE and .ONOBJECT to hit sub :MAKE: levels 01-09-17 makerules: fix PACKAGE_OPTIMIZE logic 01-09-11 expand.c: use pathnative() for native fs representation openar(): must open with "b" mode state.c: open state with "b" mode 01-09-08 makerules: add *.a prereqs to dll link 01-09-04 makerules: +l* bind conditioned on .LIBRARY.LIST. for dll builds 01-08-11 makerules: reference $(CC.DLL.LIBRARIES) last and in link args only makerules: +l* in req list now checks .PACKAGE.*.library for -l* parse.c: fix `\\\r\n' to act like `\\\n' make.h: add FSWINDOWS to include { _WIN32 _UWIN __CYGWIN__ } 01-07-17 makerules: fix :LIBRARY: to honor LDLIBRARIES 01-06-21 misc.c: fix strtoll and strtoull macro rename 01-06-10 makerules: add CC.NATIVE for native objects 01-06-07 command.c: fix job deadlock bug that improperly broke the loop 01-05-31 makerules: add option rhs to :DLL: makerules: :PACKAGE: add :(optimize|space|time) for PACKAGE_OPTIMIZE makerules: add CC.HOSTTYPE != CC.EXECTYPE for IFFEFLAGS make.probe: add CC.EXECTYPE make.probe: fix { ld nm size strip } search make.probe: adjust probe_shared order for linux.arm gcc option.c: add --cross to not run generated executables 01-05-30 make.probe: add CC.NATIVE 01-05-28 make.probe: add CC.STRIP and CC.STRIP.FLAGS makerules: add PACKAGESTRIP check for .LIST.PACKAGE.BINARY 01-05-26 expand.c: add :T=Y: for mime type 01-05-09 --- release 4.2 --- make.h: isdynamic,isglob,isstatevar: functions to factor out strmatch() expand.c: add T=XQ[S[AV]|V[I]] to factor out strmatch() in base rules rule.c: speed up associate() by factoring out attributes 01-05-01 expand.c: order() now handles :PACKAGE: foo:command 01-04-26 makerules: null out cctype and .CC.PROBE. for --base makerules: fix .REQ. bug that missed :LIBRARY: targets 01-04-25 makerules: add variants=pattern to select cc- variants makerules: add .VARIANTS alias for .CC- option.c: fix bug that omitted readonly option values in .mo 01-04-24 makerules: :DLL: sets VARIANT=DLL 01-04-18 object.c: fix CC_NATIVE!=CC_ASCII buffer overflow make.probe,makerules: mvs.390 adjustments for CC.LIB.DLL=symbol 01-04-01 scan.c: fix * scan match bug that gave up too soon 01-03-08 printext: handle %*C 01-02-26 makerules: CC.SUFFIX.STATIC get .ARCHIVE attribute makerules: add .NO.ARPROFILE to defer to dll prereqs for dll target pkg-X11.mk: check libXmu.sa for openwin 01-02-14 make.probe,makerules: add CC.DLL.LIBRARIES, CC.DLL.ALTERNATES make.probe: linux needs CC.DLL.LIBRARIES=-lc for binary compatibility probe.win32: change to CC.STATIC=-Bstatic, dynamic is now the default makerules: drop .SCAN.IGNORE for .DO.INSTALL.DIR makerules: fix .SHARED.BIND. to pull in dynamic refs makerules: change .OFFICIAL diff style to -u mam: add `bind -lX [dontcare]' to simplify library binding command.c: fix job deadlock bug that used archive before it built 01-02-07 Scanrules.mk: add .cxx for C++ 01-02-02 makerules: bias package search to viewpath and make installroot makerules: *.req can be down the view 01-01-01 --- release 4.1 --- expand: fix :D: to preserve leading / -- how long has this been wrong? makerules: fix .PACKAGE.INIT. for dir == / makerules: $(PACKAGE_PATH) is list of default package root dirs makerules: add recurse=list to list recursion order and exit makerules: _BLD_DLL==1 when building dll's makerules: link dll with static -l* makerules: check =l% bound dir in .REQUIRE.-l% PACKAGE_%_LIB expand: eliminate loops from :W=O: parse: add exit [code] bind: eliminate dups for 2d glob 00-12-25 makerules: add header arg to :YYPREFIX: makerules: add :T=AF: for .ARCOPY probe.win32: add cc path *and* args to first line to avoid hash clash 00-12-18 ppcc: check for old bash 00-12-15 makerules: handle uwin $(CC.DLL) => -D_BLD_DLL change 00-12-14 main: initialize version with fmtident() 00-12-12 makerules: bias :PACKAGE: search for $(INSTALLROOT) make: use stat() instead of access() for better NFS behavior 00-12-11 makerules: _BLD_DLL only for _DLL lib members 00-12-03 debug.mk: add %.inc for -H include nesting 00-10-31 option: --corrupt={accept|error|ignore}, --mismatch => --corrupt makerules: req file must be seen at of before the lib makerules: fix AWK and NAWK default definitions makerules: physical=1 => 2d iff in 3d pkg-tcl.mk: add CC.DLL, don't clobber TCLROOT makerules: define _PACKAGE_foo in .PACKAGE.INIT. makerules: add .VIEW to .MAMEDIT and .MAMACTION 00-10-28 makerules: drop MAKEFILES filter on .SELECT. (why was it there?) 00-10-26 make.c: fix .JOINT sync bug makerules: add $(PACKAGES expr) and :VARIANT: rhs expr expand.c: add :T=F[BCFLPR]: to test file type makerules: cut down the number of --mam -L options for .req 00-10-25 makerules: set +x => set - makerules: add set - to .req MAM action for zsh 00-10-24 makerules: add :PACKAGE: name:lib=lib:include=include name:command makerules: add :VARIANT: to cc-% 00-10-18 C+probe: mac os10 additions add cc.darwin.ppc for max os10 00-10-16 object.c: don't compile makefile prereqs if state.base 00-10-12 misc.c: add %x and %X formats to printf extension 00-10-04 makerules: fix bug that passed -I- to non--I- CC 00-10-03 makerules: add :YYPREFIX: 00-09-21 expand.c: add libxxx and xxx to makefile ordered prereqs 00-09-07 makerules: handle rhs a=b in :LIBRARY: 00-08-11 archive.c: add aix <bigaf> archive format bind.c: add glob() gl_intr check 00-07-17 makerules: fix $(cctype) freeze in makerules.mo 00-06-20 makerules: mam_lib_* always checks lib/lib/* file 00-06-19 makerules: generate dll in lib.so/libNN.dll 00-06-01 main,state: a few _UWIN tweaks for W98 FAT 00-05-31 shquote: fix for `foo == bar' 00-05-26 option: fix scanargs() bug that skipped some targets before options 00-05-22 makerules: drop .ORIGINAL.ALL 00-05-11 makerules: add :PACKAGE: { a b } to pick first of a b (thanks Dr. ek) 00-05-01 makerules: add $(STDCAT) initialization 00-04-01 makerules: add skeleton=1 to mkdir virtual directories in 2d makerules: add CATALOG and ERROR_CATALOG 00-03-17 make.probe: fix CC.NMEDIT to grab only external text symbols makerules: add :NOOPTIMIZE: makerules: allow N.Ntag :LIBRARY: versions (and dll.custom) makerules: insert $(*FLAGS_DEFAULT) on *FLAGS makerules: don't omit -L*/local/* even if in CC.STDLIB parse.c: `unknown operator' now a warning 00-03-07 pkg-X11.mk: add -lXaw candidate required libraries 00-03-06 add probe.lcl check 00-02-14 --- release 4.0 --- 00-02-10 Makerules: add CC.DLLBIG, :PACKAGE_INIT: Makerules: add .ARCHIVE.OMIT. to .ARCLEAN.LIST. Makerules: adjust :PACKAGE: search for X11 => X Makerules: add .COMMON.SAVE to .LIST.PACKAGE.* source actions Makerules: fix setv PACKAGE dirs Makerules: add $(PACKAGE_LOCAL) and package_local=arch cmd prefix Makerules: apply %.X>% for `f :: b.X' state.c: add local skew test for touch(3) { utime(2) or utimes(2) } make.c: don't apply metarule if lhs has dir and metarule doesn't 00-02-08 believe if state.believe>0 and view level >= (state.believe-1) pkg-X11.mk: add PACKAGE_X11_VERSION=6 for X11R6 installations pkg-X11.mk: add -ldnet_stub for osf.alpha Makerules: fix .REQUIRE.-l% 00-01-31 Makerules: add $(CC.SUFFIX.LD) in .SHARED.REF.lib 00-01-25 Makerules: add _MAKE_PROBE_WORKAROUND_ for broken cc -G like sco.i386 00-01-11 Makerules,probe.win32: -Bwhole-archive + -Bstatic -- whew! Makerules: make $(LICENSEFILES) for --mam Makerules: add $(DICTIONARY) to USAGE_LICENSE make.probe: hosttype now in C.probe expand: fix :P=L: path buffer overrun 99-11-11 expand: add :P=W: for astlicense() expand: :P=N: null input generates null (not '') bind: fix 2d globv() and bindfile() by adding state.view[].root - wow bind: fix 2d :P=L=*: mam: capture important empty exec make-done pairs main: make sure external.pwd is valid Makerules: iffe --static=x => iffe -S x Makerules: explicit :INSTALL: inhibits :: install Makerules: add MM2HTML Makerules: install cc- => cc-install Makerules: add .MAM.CCFLAGS to handle .CC.NOOPTIMIZE option.c: clean up --errorid option.c: add set readonly for state.readonly hook Makerules: use set readonly for INSTALLROOT and PACKAGEROOT make.probe: sco CC.WARN=-w3 make.probe: CC.MEMBERS => CC.LIB.ALL CC.LIB.DLL CC.LIB.UNDEF expand: add :U[!]: for uniq [file equality] list Makerules: IFFEFLAGS initialized in .MAKEINIT rule: make sure PWD and VPATH are both logical or physical parse: add "x" <|>[=] "y" Makerules: add LDLIBRARIES to .SHARED.lib 99-10-31 Makerules: add :PACKAGE: => :package: if lhs Makerules: :MAKE: with no rhs driven by MAKEDIRS and MAKESKIP Makerules: add :Q: to "::" assertion scope items (yuk) Makerules: add LICENSE hooks, USAGE_LICENSE expand.c: add :P=G: to do viewpath glob, :W=O: to order subdir descent expand.c: add :O=N: expand.c: pretty up :Q: expand.c: add :P=V0: for top view logical name of bound file rule.c: add globv() for rhs patterns -- strictly . relative down view make.probe: fix nmflags logic (for aix -p, portable not) 99-10-01 Makerules: add %.iffe make.c: handle metarule .ACCEPT 99-07-17 mam.c: outer make...done for virtual joint target command.c: fix job deadlock detection Makerules: don't pp probe if CC.CC == "" Makerules: allstatic=1 for +l propagation, 0 for item only Makerules: fix $(.SHARED. ...) usage Makerules: :INSTALL*: now handles dir on rhs Makerules: add %.cxx Makerules: add .ti to clobber list Makerules: cc-: `~' => space if specified, otherwise `,' => space Makerules: add recurse_enter and recurse_exit misc.c: add %[eFfFgG] print formats expand.c: generate() lists primary and secondary by default Makerules: add .author and PROTOID to PROTOCOPYRIGHT Makerules: allow state on :INSTALL*: rhs Makerules: .CC.MEMBER: jobs>0 workaround: a bug coverup Makerules: add :PACKAGE: debug profile CC.LIB.TYPE expand.c: fix putptr(0) base addr switch .SCAN.IGNORE: don't block on these - duh 99-07-17 --- release 3.6 --- 99-06-24 Makerules: fix .SHARED.ON. test 99-06-15 make.probe: shlib before others, /var/shlib, -none == ! -all 99-06-14 Makerules: +lfoo applies to self, not to .req members 99-05-09 option: separate usage string stream 99-05-01 main: long options 99-04-22 Makerules: fix :LIBRARY: for version "-" (no version) 99-04-01 Makerules: -mam cleanup Makerules: %.req version bug fix Makerules: :PACKAGE: :nolibrary means it -- don't pull it in Makerules: .REQ. fix Makerules: fix .req -mam cc script expand: regfatalpat() for regcomp() pattern in error messages option: first optget() interface -- could be more complete 99-03-17 Makerules: %.req just binds -- duh Makerules: .RECURSE clears .RWD. Makerules: handle `lib - :LIBRARY: ...' => no VERSION make.probe: CC.DEBUG CC.HOSTTYPE CC.OPTIMIZE CC.STRICT CC.WARN main.c: command line scripts done after .MAKEINIT main.c: test 0x00020000 to close openfd before coexec make.c: D_scope prereqs take effect in make() too 99-03-01 Makerules: add :P=C: to .MANIFEST. 99-02-14 make.probe: move some init stuff from C.probe make.probe: deal with gcc/ld writing errors to stderr with 0 exit code trap: clean up .INTERRUPT interface Makerules: :PACKAGE: -l* .MULTIPLE Makerules: fix :: :LIBRARY: for cmd and lib by same name object.c: retain D_global in load() Scanrules: fix .PFX.INCLUDE test 99-01-23 Makerules: *.req.REQUIRE : .IGNORE Makerules: add -f $(MAKEFILE) to .RECURSE $(MAKE) args Makerules: .REQUIRE.-l% checks $(PACKAGE_%_LIB)/lib/% first Makerules: make :PACKAGE: search picky about version Makerules: handle :PACKAGE: -lfoo Makerules: PACKAGE_%_VERSION defined make.probe: use full path for NM, etc. make.probe: libpath not added to CC.STDLIB 99-01-11 Makerules,make.probe: CC.MEMBERS.UNDEF Makerules: fixed .SHARED.lib wrt :PACKAGE: make.probe: tweak CC.STDLIB 98-12-25 Makerules: :LIBRARY: initializes VERSION var if not set Makerules: add tgz, tarball; drop update*; pax and tgz recursive Makerules: tarball uses VERSION Makerules: `:: dir' adds dir to manifest Makerules: arch-$(_hosttype_).mk architecture specific additions Makerules: $(CC.DLL) uses local *.lib expand: add :P=N: for 'native-path' expand: :P=S=subdir: to handle recursive manifest parse: fix \\n splice bug that activated rules direcive rule: .READONLY external support bind: (P_readonly|P_terminal) does not get attribute assoc bind: add rule_compare() and rule_hash() for case hacks option: -o writeobject (on by default) expand: regcomp(REG_SHELL) needs REG_LEFT|REG_RIGHT -- duh rule: include + "file" to include file as global makefile make,rule: fix state.force and P_force for P_dontcare 98-12-25 --- release 3.5 --- 98-11-11 expand: :G=x: tokenized add ms %.def:%.sym make: recheck require_p prereqs 98-11-01 expand: fix ignorecase bug in :L: 98-08-11 probe: add probe.ini for arch specific shortcuts probe: add opional CC.MAKE.OPTIONS Makerules: check CC.MAKE.OPTIONS bind.c,scan.c: a few more uwin file path workarounds parse.c: readline() now converts \r\n => \n variable.c: V_functional looks for "v->name" and ".v->name." rule 98-07-17 Makerules: check before assuming /usr/lib or /lib command.c: fix P_before P_repeat FAILED bug Makerules: add .UNBIND to .PACKAGE.LIBRARIES. (must be a better way) Makerules: add static=1 to favor lib instead of dll (except for std) 98-05-26 make.probe: add /usr/lib /lib verification 98-05-01 rule.c: add .RUN .WAIT for background job control rule.c: add .MAKEPROMPT .MAKERUN sequence points rule.c: add .RESET to reset rule info to start state parse.c: interactive sfpoll sfstdin and state.coshell->msgfp 98-04-01 expand: plug leak by calling regfree() for :C: Makerules: adjust .IFFE.REF. fix to not include package being built Makerules: add %.cpp for C++ scan.c: don't tokenize quoted implicit prereqs! 98-03-17 Makerules: fix .IFFE.REF. to expand package include dirs 98-02-14 Makerules: fix .IFFE.REF. to expand required libraries 98-01-23 Makerules: add _hosttype_ to .MAM.INIT Makerules: :PACKAGE: x attempts include - "pkg-x.mk" Makerules: handle :LIBRARY: rhs +l* pkg-tcl.mk: initial release 98-01-11 Makerules,probe: add CC.SHARED.REGISTRY and CC.SHARED.REGISTRY.PATH 97-10-31 Makerules: CC.PIC not that easy to deprecate! Makerules: fix -L option for *.req rule Makerules: LDRUNPATH unset by default Makerules: no CC.SUFFIX.LD to AR 97-10-11 Makerules: fix :LIBRARY: *.req prerequisites probe: fix ld probe, add CC.SUFFIX.LD=".def .exp" for uwin make.c: REQUIRE map => - marks rule virtual 97-08-11 Makerules: .BASE.DATE.FORMAT. for y2k Makerules: drop weird xxx.a install in .SHARED.DEF.lib Makerules: add $(.sh.) as non-frozen version of $(sh) 97-07-17 Makerules: move $(MAKELIB) to the front of PACKAGE search Makerules: required libraries linked with dll too version.c: tighten initdynamic[] loop termination 97-05-09 Makerules: /usr/local/arch/$(_hosttype_) first in LCLDIRS Makerules,make.probe: add mvs.390 dll support expand: don't :T=A: if .SCAN.IGNORE variable: allow `export name=value' Makerules: allow `:MAKE: name=value' => `export name=value' Makerules: bias package binding to fully qualified PATH dirs Makerules: IFFEFLAGS uses CCLDFLAGS instead of LDFLAGS Makerules: don't change -Wl., in cc-% (hack alert) Makerules: CC.PIC deprecated for CC.DLL Makerules: _INSTRUMENT_ deprecated for _BLD_INSTRUMENT Makerules: _TRACE_ deprecated for _BLD_DEBUG command: -t attempts to touch fs .o as well as .a/.o 96-12-25 --- release 3.4 --- add CC.LD.DYNAMIC and CC.LD.STATIC to make.probe and makerules add .PROBE.LOAD and .PROBE.SPECIAL. to catch/start early probe addfile(xxx) for xxx.exe on _WIN32 bind.c: check for _WIN32 C:/ prefix parse.c: -FUNCTIONAL now clears var.functional too Makerules: .CC.MEMBERS. fixed for small ARG_MAX systems Makerules: OFFICIAL file now in lower view Makerules: drop -G* from CC.PROFILE Makerules: remove global +lxxx => -lxxx==+lxxx archive.c: add `/*/' to SYMDIR_port (for sgi.mips4) Makerules: if $(CC.PROFILE) and $(CC.PIC) then don't install .ARCHIVE make.c: relax `modifying lower view file' message via dontcare Makerules: fix +lxxx MAM bind Makerules: fix :LIBRARY: req file generator Makerules: fix :PACKAGE: LIBDIR search ppcc: install in $(MAKELIB) ARG_SCRIPT: fix bug that mishandled `+' and `&' in cmd line targets Makerules,probe: add CC.SUFFIX.LD and ldscript for ld scripts Makerules: add $(sh command): where has this been hiding a:-TARGET now works .ARCHIVE not scanned if rule.scan==.SCAN.IGNORE :LIBRARY: sets .MAIN.TARGET. too make.probe: don't automatically place /usr/lib last make.probe: add CC.SUFFIX.LD Makerules: handle cc-opt1,-opt2 by splitting options on , bind.c,metarule.c: handle _WIN32 directory ignorecase Makerules: add :DLL: .DLL for dll generation Makerules: fix .MAKEINIT premature :T=F: that botched .SOURCExVPATH object.c: fix to handle 01/24/89 format objects (yes it still works) ppcc,makerules: generalize $(CC.DIALECT) option passing metarule: case sensitive match for patterns matching `[-+]*' archive.c,object.c: (Sfoff_t) for K&R compilers MAKEFILES=Nmakefile:nmakefile:Makefile:makefile -- thanks bill MAKEARGS=Nmakeargs:nmakeargs:Makeargs:makeargs -- thanks again bill probe: add CC.LD.RUNPATH makerules: add LDRUNPATH and CC.LD.RUNPATH support makerules: tone down PTR prereq scan .GETCONF: first builtin function 96-11-28 ccmaps .mo for ascii/ebcdic compatibility 96-10-31 outstanding bug reports addressed :LIBRARY: defines _BLD_<lib>==1 use PATH=$(STDDIRS):$PATH to find STDRM etc. in Makerules.mk add CC.SUFFIX.DYNAMIC for win32 .dll .lib .a 96-10-11 metarule rhs prefix dir check even if rhs has prefix questionable=0x8 alias check path suffix in bindfile questionable=0x10000 add more instrument guesswork .PFX.INCLUDE headers must be .TERMINAL fix $(...) bug that let some unselected items slip through 96-10-01 update make.probe for probe_libdir to catch alpha /usr/shlib 96-09-09 add CC.PROBEPP to override pp probe info add $(INCLUDEDIR) and $(LIBDIR) to .SOURCE* from $(ancestor_list) 96-08-11 --- release 3.3 --- 96-07-17 don't pass -D-* to cc in ppcc add ``X|external-scan $(%)'' external scan clean up makerules/probe readonly 96-05-31 fix $(".":P=L*) for no views 96-05-09 make.probe: drop multiple / in stdlib try to stat non-readable files 96-04-22 fix staterule()->scan assignment evaluation order ambiguity in scan.c 96-02-29 -lxxx binds to +lxxx if +lxxx bound first add pkg to OPTDIRS cut off botched metaclose recursion unless questionable=0x100 `.XXX : .USE .IMMEDIATE .ATTRIBUTE' -> `xxx yyy' -> `xxx : yyy' fix :PACKAGE: search bug that forced package name to be in root path add REGRESS + REGRESSFLAGS aliases may produce more than one :P=D: bound dir fix nonterminating D_scanned loop in scan() handle -L* on :LIBRARY: rhs 96-02-14 $(CC.SUFFIX.COMMAND) appened only if no suffix :PACKAGE: xxx:version=n.m:static:dynamic:nolibrary:noinstall: 96-02-07 archive scan handles multiple port|rand meta entries rescan check on (s|alt)&P_force scan A action can now set (.+) or clear (-) attributes 96-01-31 :PACKAGE: libs now .DONTCARE fix touch bug that kept the blasted libast conf*.[ch] out of date 96-01-01 AT&T Research uwin Makerules.mk and make.probe tweaks :I<: for literal intersection, otherwise pathname intersection convert to <regex.h> condition LN on _feature_=ln 95-12-08 fix :LIBRARY: -lxxx probe add uwin dll to make.probe and :LIBRARY: BINED -> ED 95-11-24 . :INSTALLDIR: does not add to all or man 95-11-11 installed CC.SUFFIX.SHARED are now readonly CC.SUFFIX.SHARED==CC.SUFFIX.OBJECT expands -l* CC.SUFFIX.SHARED installed readonly CC.SUFFIX.SHARED hard linked to CC.SUFFIX.SHARED.major.minor P_target && D_dynamic does not imply generated (questionable=0x4000) 95-10-11 fix :TABLE: options `no' and `NO' entries D_source is now cleared in make object for .SOURCE cross product $(^) subject to localview() too fix :WORKAROUND: for in-place changes set include=dir appends to .SOURCE.mk .ASSERT intercepts not applied to .IMMEDIATE targets -d4 lists make object prerequisite file info fix state.targetcontext expand bug that dropped too many marks add %.o:%.S to makerules/scanrules intersect() now handles invented :P=D: .. dirs not in .SOURCE* drop $(CC.REPOSITORY:@?-l??) from PPCC add sun -[Qq](dir|option|path|produce) to ppcc add proto -x to :INSTALLPROTO: fix compvar() V_oldvalue bug that put command line def in .mo internal.export -> internal.exported for proto export keyword :T=G: never matches non-target .TERMINAL 95-10-01 add :TABLE: novariables to inhibit leaf variable assignments add preliminary long edit op names and converter D_global if not P_target (questionable=0x800 for old behavior) alias if !streq(name,r->name) (questionable=0x1000 for old behavior) fix scanrules .PREFIX.INCLUDE. handling of ../* more aggressive putbound() in bindalias() (-Q0020000 for old) `.FORCE : x' sets P_force too longest metarule patterns applied first more alias fixes move scan attribute/property additions before staterule() call :INSTALLMAP: ... scan now more selective .UNBIND now sets rule.time=0 95-07-17 --- release 3.2 --- :F=%x: sfio 'u' internal format now handled fix .PTR.OPTIONS. initial condition fix .ERROR to work like 2.2 if !.FUNCTIONAL .FUNCTIONAL .ERROR return value: new level, no msg if already printed 95-06-28 add *.ii to .CLOBBER. for EDG C++ 95-05-09 add SYMDIR_strict for strict ranlib uptodate check change $(!$(*:O=1)) to $(!$(*)) since lists are ok now drop .SAVE. since :: already handles it add old value to state variable changed explanation add .DO.READONLY.-xMerge unused var cleanup another make.probe preroot workaround add .CC.NOOPTIMIZE local scope handle `t {}' and strip lead space in {...} fix r==0 dereference in :P=B: don't force CCFLAGS=-g for instrument=purify fix .BIND.-l% version interactions with -lxxx.[0-9] add -o noalias to diable directory aliasing (for .INSTALL.LIST) make.probe pic test must check linker too calm down +([a-z]) => .+([A-Z]) conversion for :ALL: and .ARGS &error_info cannot be in a static initializer .OFFICIAL uses .MANIFEST. instead of .SOURCES. fix scope var bug that appended twice add - stack debug command to query drop extra .so's from ship.list.bin state.mam.out && !state.mam.port doesn't rebind after build 95-04-01 `:: xxx' marks xx .TERMINAL fix recursion bug in :G: define PACKAGE_* vars if !mam too fix ciadb to exclude headers that may generate %.o (e.g., *.c) fix stray M_mark bug caused by expand() inside intersect() fix :INSTALLMAP: with no lhs :PACKAGE: is a little less restrictive on package root search use $(CCLDFLAGS) in %:%.s change :T=G: to check .TERMINAL state before .TERMINAL fix ppcc.sh pattern match ksh93ism for bsh compatibility fix PROTOFLAGS expansion with :Q: generated .SCAN.c do not get .PFX.INCLUDE scan prereqs for .JOINT targets are in staterules(PREREQS) change obsolete MAM -expandview ref to static*,port* fix trap bug that used elementsof(int*caught) makerules PTRMUST -> PTRMKDIR alpha archive symbol directory has word size embedded _64E[BL]E[BL]_ fix \0 in output of recursive print -um fix bindfile() .. test for terminal directories [via Rich Drechsler] tablook() prototype tweak fix putbound() test in bindfile [via Dan Tiernan] beef up makerules $SHELL -n test drop newlines from PROTOCOPYRIGHT for MAM 95-03-19 fix .AFTER job freelist bug in trigger() [via Rich Drechsler] add makerules STDDIRS; SYSRM -> STDRM {cmp,cp,ln,mv,rm} clean up makerules INSTRUMENT_* interface -v no longer turns on ppcc verbose fix cc- MAKEPATH override by $(=) 95-02-14 fix targetcontext mkdir() test fix printarg() for proper sfio interface 95-01-19 add CC.ARFLAGS for $(CC) that generates libraries add CC.DIALECT=PTRIMPLICIT for implicit C++ ptr dir name add CC.DIALECT=PTRMKDIR if C++ local ptr must exist add CC.DIALECT=PTRCOPY if C++ PTRMKDIR contents copied fix CC.READONLY probe to cast the const pointer assignment punt() now assumes oldmake has mam if options set add a few .SPECIAL's in :: fix rule.time update for .NULL action in trigger() add A_* flags instead of assertion() set.clear, etc. OP_NONE assertions are A_special x :LIBRARY: makes x virtual prereq of .ALL "local" statement mods for operator and function arg handling local same-name same-name gives dup name initial value of 1 local name=value now accepted local -[n] arg ... sets $(1) ... [empties missing up to n] local (formal ...) actual ... sets formals from actuals $(;) returns the state data (formerly $(#)) $(#) is the arg count from local -[n] | (formal ...) ... add TABLE.mk for :TABLE: table and map lookup add SS.mk for :SS: directory hierarchy subsystems don't forceread if global (questionable=0x400 for old behavior) add -o targetcontext to expand action in target dir context add state.context and MARK_CONTEXT for state.targetcontext fix a few more alias bugs .MAKE .LOCAL actions can contain parent scope assignments add base and delta common actions for pax -z support add :SYSTEM: to :SS: in SYSTEM.mk and delete SS.mk fix rebind to first clear D_entries|D_scanned add "*.[sS]|*.[aA][sS][mM]" to ppcc source list 95-01-01 fix .CLOBBER $(-global) expansion .NULL metarule now provides equivalence for :G: avoid multiple entries in make.probe CC.REQUIRE.++ 94-12-25 ppcc, MAM -l<shared>, probe tweaks fix port/rand ar touch bug that modified member terminator fix .DO.INSTALL bug that asserted x : x avoid a few more 'not compiled' panics add -o mam=<type>[,noport] to inhibit porting hints drop mam_port and use noport mam option fix V_retain bug that took value from lowest view statefile fix PACKAGE .SOURCE.(h|a) that blew the CC.STD(INCLUDE|LIB) order fix .REBIND to work like .UNBIND on directories PACKAGE lib not .DONTCARE by default 94-11-11 --- release 3.1 --- detect loops in complete() to avoid `did not complete' fix D_entries|D_scanned propagation in merge() fix .BIND. view and state.targetview propagation add :WORKAROUND: for external distribution workarounds merge(MERGE_ALL) does not propagate rule.scan==SCAN_NULL .OFFICIAL diffs changed files into ./OFFICIAL fix scan attribute propagation interaction with dirscan() fix uninitialized od reference in bindfile() fix ppcc -O over shift and empty rm 94-10-01 CC.DIALECT DOTI : *.i accepted as preprocessed input CC.DIALECT TOUCHO : cc link may touch *.o $(CCC) dropped in favor of simpler $(PPCC) $(FEATURE) changed to $(IFFE) add -o mam=<type>[,dontcare] to list dontcare targets too fix staterule() to accept top view state if time matches fix bindfile()+putbound() for .. fix VOFFSET,VROOT for non-3d fix bindstate() recursion fix metaclose() bug that forced artificial metarule ordering 94-08-11 add state.questionable mask (looks like it should go but not sure) move some state.test bits to state.questionable add MAM generated attribute add fs3d view loop test Os option arguments must be specified 94-07-17 --- release 3.1 --- 94-06-11 add -o believe=level (-B level) for 2d -b no longer implies -c -b implies no makerules uncouple state.keepgoing from state.mam (should have learned by now!) dirscan() sets rule.bound and rule.time add .SYNC : file [edit-select] fix .QUERY longjmp active frames and error trap hold fix pattern association parse that botched ../*%* avoid pathcanon() in metarule makerule() calls change include from control statement to immediate rule use rule in include list uses action as include file filter add makerules mam_port=0 to inhibit -o mam=static ${mam_*} mappings promote lower view state to top on load if no previous top iview state 94-05-22 virtual preview not propagated fix nested loops in file input fix unalias() bug that dropped original binding fix merge() bug that called bind() while bind in progress fix -ptr *again* for CC 3.0.3 add $(^) for current line in scan :A>pattern: matches rule prereqs fix statevar stateview search that unnecessarily forced re-scan .PARAMETER file checks now done after .INIT update CIA rules to use DOT instead of DAG 94-04-01 .ERROR made for levels > 0; return 1 inhibits message print $(.ERROR) set to level and message text inside .ERROR stateview() now binds before searching state views fix CC.SO install for live replacement add .COMPDONE to fit the .INIT+.DONE pattern add rule.mark and M_* to eliminate mark clashes add .INTERRUPT.<signal> for signal specific handlers add .ALARM:<elapsed> immediate rule to set alarm add $(.ALARM) to be absolute time for next alarm, 0 for no alarm add .SYNC immediate rule to sync statefile maketop() now resets property when complete maketop(P_ignore) temporarily sets keepgoing=1 xxx -> .XXX immediate test for all `no operator on line' statements .FORCE : xxx forces xxx to be new { action } -> .ALWAYS :$("\n\t")action immediate a b c -> .IMMEDIATE : a b c attribute a b c -> a b c : .ATTRIBUTE a b c { action } -> a : b c$("\n\t")action :MAKE: allows rhs a/b .DO.l.CC dropped -- let C++ fend for itself (<id>*)<stuff> can appear as target $("":D) no longer produces ``.'' print -n -u[0-9m] -f "format" +-[io] path -p command data ... read -n -u[0-9m] +-i path +-o path -p command variable -uxxx may appear in $(INSTALLROOT)/lib/lib/<LIB> fix scan | ... % | bug that forced trailing space replace CC.OBJ and CC.SO with CC.SUFFIX.* .MAKE .OPERATOR prereqs made before operator applied add .PROBEINIT to .MAKEINIT and "::" .SHARED. now links with CC.SUFFIX.SHARED sibling library if it exists fix alias .UNBIND 94-03-01 unify mam with gmake (additions done by gsf) -o mam={dynamic|regress|static}[:file[:[label][:root]]] -M no longer implies -nF -o mamtrace=file (-m) dropped -o regress=root dropped -o never (-N) added to override .ALWAYS fix scan bug that assigned strategy before binding frozen V_functional always causes .mo recompile add oldname(r) to fix unbind bug that omitted putbound(r,0) ``else if'' now accepted for ``elif'' complain about extra chars after else and end add :T=Z[CERS]: for {cancel,event,relative,state} time fix circular implicit prereq actions fix aix shared library probe finish now handles errors in .MAKEDONE and .DONE fix stray D_mark unbind with D_markbind,D_markprereq,D_markscan fix :READONLY: probe for mips base rules unbound after reading (so make can install them!) delay statefile load until after makefile read add complete() for MAKING implicit prereq add CC.REPOSITORY with repository dir value delete PTREPOSITORY from CC.DIALECT stop .INSERT|.APPEND from adding duplicate prereqs unless .MULTIPLE .QUERY now pushes an active frame (shows up in $(<)) fix state view resolution in stateview() fix :G=a/b: with no % 94-02-14 warn about implicit reference while action in progress add print -opath 94-01-31 .CLEAR now checks staterule before freeing prereq list .UNBIND now clears D_global, D_regular and preview add :F=%(time-format)T: add :F=%(invert|lower|upper|variable)S: change :F=[LUV]: to :F=%(lower|upper|variable)S: with obsolete warning fix .MEMBER view/preview mismatch that triggerred unnecessary actions 94-01-11 $("":T=R) operates on current date add print -n -u[12m] -f "format" fix \<newline> action parse 93-12-01 --- release 3.0 ---