summaryrefslogtreecommitdiff
path: root/usr.bin/make/parse.c
AgeCommit message (Collapse)Author
1999-09-16Some minor cleanup of :: tests.mycroft
1999-09-15Rework how :: dependencies are handled.mycroft
Build a list of `cohorts' as before, but do *not* link each one into all the parent nodes; instead, copy the `cohort' lists into the stream of targets to be built inside Make_ExpandUse(). Also do the attribute propagation as a separate pass after parsing. This eliminates several O(n^2) algorithms.
1999-09-15Don't bother iterating through all the data structures to free(3) everythingmycroft
right before exiting. (The code is still present, `#ifdef CLEANUP', in case someone needs it...)
1999-08-09Added .PARSEDIR and .PARSEFILE variables to make(1).aidan
1999-08-04Trivial speed hack.ross
1999-06-02Fix awful bug where:christos
V := $V foo V := $V bar would report that variable V is recursive...
1998-11-17Fix a bug that apparently prevented, since day 1, the .-include / .sincludeross
feature from ever working. Also, fix the man page that incorrectly described the syntax of the feature that didn't work.
1998-11-06- full prototypeschristos
- more conservative printf - char -> unsigned char
1998-09-18PR/6174: ITOH Yasufumi: Purify bug and a compile error in utility code.christos
1998-08-06- Add {.,}[s-]include for silent include file failureschristos
- Make traditional include statement include more than one file if present on the line. Keeping up with the other's :-)
1998-03-23patch from PR#3573 to rename a variable "main" to "mainList"fair
1997-09-28wrap #include <sys/cdefs.h>, __RCSID(...) stuff in #ifndef MAKE_BOOTSTRAPlukem
1997-07-11#if __STDC__ -> #ifdef __STDC__christos
1997-07-01Add WARNS=1christos
RCSID police
1997-05-09Make sure to propagate OP_PHONY to all cohorts that already existed.mycroft
1997-05-08Add the new .NOPATH feature which can be used to disable .PATH searchgwr
for particular targets, i.e. .depend, objects, etc. (from Christos).
1997-05-07Copy the .PHONY attribute to the cohorts of a double dependency.mycroft
1997-05-02- Target searching addition:christos
Make used to only use the search path for nodes that were pure sources (not targets of other sources). This has been corrected and now gnu-autoconf generated Makefiles work in directories other than the source one. - Suffix transformation rescanning: Suffix transformations (.c.o:; cc ...) were only recognized in the past when both suffixes were members of the suffix list. Thus a sequence like: .z.b: echo ${.TARGET} .SUFFIXES: .z would cause .z.b: to be inserted as a regular target (and the main target in this case). Other make programs always add rules that start with a period in the transformation list and never consider them as targets. We cannot do that (consider .depend files) so we resort to scanning the list of the current targets every time a suffix gets added, and we mutate existing targets that are now valid transformation rules into transformation rules. If the transformed target was also the main target, we set the main target to be the next target in the targets list.
1997-03-10Add a .MADE directive to indicated that the children of a target arechristos
up-to-date, even when they are not. This is to simulate our current make install behavior with proper dependencies.
1996-12-31add a missing 'static' decl.christos
1996-11-06- Merge in FreeBSD and Lite2 changes.christos
- Fix bug where a non-archive target with a .a suffix would always be considered to be out of date, since it does not have a TOC.
1996-09-27Fix extra "make:" and newline in error message.thorpej
From enami tsugutomo <enami@ba2.so-net.or.jp>, PR #2651.
1996-09-13- Fix bug where the first line after a conditionally skipped was not readychristos
in its entirety if it contained a continuation. - Print the whole error line, not just the first 20 characters of it.
1996-08-13Add estrdup(), a checked version of strdup and use it.christos
1996-05-28- Move -D flags from Makefile to config.h and explain what they do. Addchristos
-Wall -Wno-unused to CFLAGS. Add new define SYSVVARSUB to enable SysV style variable substitutions and enable them. - Add SunOS style command substitutions via SUNSHCMD - Fix core dump with '{variable = value'
1996-03-15Add PHONY attribute and target. This is the first step to cleanup thechristos
xinstall and xlint crud.
1996-03-06Fix PR/2118; apply sysincludes patch.christos
1996-02-17if PR/2090, sysvinclude too optimistic, did not check for space after thechristos
include keyword
1996-02-07In ParseDoInclude(), make a temporary copy of the current file namethorpej
while searching for ""-type include files, since the current file name might not be a writeable string.
1995-12-16- Added .WAIT to synchronize between sources like other pmake variants.christos
- Updated documentation to include .ORDER .PARALLEL .NO_PARALLEL .NONPARALLEL
1995-11-02Minor:christos
- ${.PREFIX} should never contain a full pathname - Fixed gcc -Wall warnings Major: - compatMake is now FALSE. This means that we are now running in full pmake mode: * rules on dependency lines can be executed in parallel and or out of sequence: foo: bar baz can fire the rule for baz before the rule for bar is fired. To enforce bar to be fired before baz, another rule needs to be added. [bar: baz] * adjacent shell commands in a target are now executed by a single invocation of the shell, not one invocation of the shell per line (compatMake can be turned off using the -B flag) - The -j flag now works... I.e. make -j 4 will fork up to four jobs in parallel when it can. The target name is printed before each burst of output caused by the target execution as '--- target ---', when j > 1 - I have changed all the Makefiles so that they work with make -j N, and I have tested the whole netbsd by: 'make -j 4 cleandir; make -j 4 depend; make -j 4; make -j 4 install' - I have not compiled or tested this version of make with -DREMOTE.
1995-09-10Fix PR/1443:christos
Dependency rules with `=' in the lhs are parsed as variable assignments. E.g., the following Makefile fails: A=a b c d all: $(A:%=%b) $(A:%=%b): @echo $@
1995-06-14- $NetBSD$ rcsidschristos
- Fixed so that .[A-Z]* targets that do not match keywords are ignored as Posix mandates - Added .PHONY target keyword
1995-05-15Sort keyword table correctly, so binary search really worksws
1995-02-08Fixed so that orphan tabs are ignored. Should close PR760.christos
1995-01-06Fixes from Paul Borman (prb@bsdi.com)christos
1. Honor environment variable $MACHINE if set over uname.machine 2. archives with :: are always out of date, even when they have no children. 3. VAR= a b c # comment, gets the trailing blanks trimmed, unless escaped by \. I'll have to read the posix manul to make sure that it is ok to handle escapes here.
1994-10-18Deal with lines that contain only spaces, per PR 515, but implementedmycroft
differently.
1994-10-18Remove an outdated comment that is very confusing.mycroft
1994-06-06Fixes from Christos Zoulas, who used purify, objectcenter and testcenterjtc
to find memory leaks and illegal memory accesses.
1994-05-21Fix from Thorsten Lockert: don't ignore \ before # charactersjtc
in strings (Fixes bug 255).
1994-03-07kill some warnings, from Christos.cgd
1994-03-05Apply fix that was lost when Christos Zoulas' changes were integrated:jtc
Shell commands start with tabs, not whitespace. Pmake's POSIX behavior must have been derrived from an early draft.
1994-03-05fixes/improvements from Christos Zoulas <christos@deshaw.com>.cgd
1994-01-13Include appropriate header files to bring prototypes into scope.jtc
1993-12-17Fix bug #47. Shell commands start with tabs, not whitespace. Pmake'sjtc
POSIX behavior must have been derrived from an early draft.
1993-08-01Add RCS identifiers.mycroft
1993-03-21initial import of 386bsd-0.1 sourcescgd