History log of /freebsd-10-stable/usr.bin/make/parse.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 201456 03-Jan-2010 obrien

Report lines that ought to contain a ':' operator but start with a '.'
as "Unknown directive" sinze they are more likely to be .elseif (etc).
(NetBSD PR 37222).

Obtained from: NetBSD


# 201455 03-Jan-2010 obrien

Add check for subversion "original" marker.


# 186559 29-Dec-2008 obrien

1. Add the ability to tweak the token output before targets in job mode.
E.g., .MAKE.JOB.PREFIX=${.newline}---[${.MAKE.PID}]
would produce

---[1234] target ---

2. Added ${.newline} as a simple means of being able to include '\n' in the
assignment of .MAKE.JOB.PREFIX

Obtained from: NetBSD


# 186558 29-Dec-2008 obrien

Consistently use Var_SetGlobal().


# 177101 12-Mar-2008 obrien

If the special target .MAKEFILEDEPS exists, then enable the
"remaking makefiles" feature. Otherwise, follow traditional Pmake behavior.
(hash table will be regenerated and committed follow this commit)


# 168671 12-Apr-2007 ru

In .error and .warning, prefer command-line variables
to globals, as per documentation.

Nudged by: Jeremie Le Hen


# 167330 08-Mar-2007 fjoe

Implement "Remaking Makefiles" feature:

After reading Makefile and all the files that are included using .include
or .sinclude directives (source Makefiles) make considers each source
Makefile as a target and tries to rebuild it. Both explicit and implicit
rules are checked and all source Makefiles are updated if necessary. If
any of the source Makefiles were rebuilt, make restarts from clean state.

To prevent infinite loops the following source Makefile targets are
ignored:
- :: targets that have no prerequisites but have commands
- ! targets
- targets that have .PHONY or .EXEC attributes
- targets without prerequisites and without commands

When remaking a source Makefile options -t (touch target), -q (query
mode), and -n (no exec) do not take effect, unless source Makefile is
specified explicitly as a target in make command line.
Additionally, system makefiles and .depend are not considered as a
Makefiles that can be rebuilt.

Reviewed by: harti


# 160574 22-Jul-2006 obrien

Tell when a .include is processed with '-dd'.


# 151419 17-Oct-2005 ru

Make sure that files included using ".include <foo>" are really
looked for in the system make file directory or in the specified
-m paths instead of always looking in the other -I and .PATH
specified paths. (Commit log shamelessly stolen from NetBSD.)

Reviewed by: yar


# 150595 26-Sep-2005 phk

Add a .sinclude directive which does the exact same as .include, except
whine when the file cannot be found and opened.


# 146572 24-May-2005 harti

Factor out all the .SHELL parsing related stuff into its own file and
rename the function to be consistent with the naming scheme in the rest
of make. No functional changes.

Obtained from: DragonFlyBSD (idea and most of shell.h)


# 146345 18-May-2005 harti

Get rid of global variables for argument vectors produced by brk_string()
introduce a struct that holds all the information about an argument
vector and pass that around.

Author: Max Okumoto <okumoto@ucsd.edu>
Obtained from: DragonFlyBSD


# 146338 18-May-2005 harti

Get rid of the ReturnStatus obscuration that was anyway used only
in two places. While here don't bother returning anything from
Lst_Replace - nobody ever checks the return code.

Suggested by: jmallet


# 146140 12-May-2005 harti

Fix the fix for bin/72510 applied in job.c:1.70. Actually there have
been two maxJobs variables: one static in job.c and one global used in
main.c and parse.c. Makeing one global out of these was the wrong way
to fix the problem. Instead rename the global one to jobLimit and keep
maxJobs static in job.c.

Suggested by: rwatson
PR: bin/72510


# 146132 12-May-2005 harti

Move some comments around to where they belong and remove some unneccessary
gcc magic.

Submitted by: Max Okumoto <okumoto@ucsd.edu> (7.229)


# 146060 10-May-2005 harti

Move the remaining two prototypes from nonints.h to make.h and
remove nonints.h.

Patch: 7.204
Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 146027 09-May-2005 harti

Split Var_Subst() into two functions: Var_SubstOnly() which substitutes
only one variable and Var_Subst() which substitutes all. Split out the
test whether a variable should not be expanded into match_var().
Make access to the input string consistently using str[]. Remove two
unused functions: Var_GetTail() and Var_GetHead().

Patches: 7.184-7.189
Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 145971 06-May-2005 harti

Introduce a new pseudo-target .EXPORTVAR which allows to put a
make macro into the environment of programs executed by make. This
has approximately the same function as gmake's export directive.
The form of a pseudo target was deliberately choosen to minimize work
for POSIX compatibility (Makefiles are not allowed to use any targets
starting with a dot and consisting only of uppercase letters except those
specified in the standard when they want POSIX compatible behaviour, so
such a Makefile can never contain .EXPORTVAR.)
Change the handling of macros coming from the environment: instead
of asking the environment for each variable we could not find otherwise
put all the environment variables in a special variable environment just
at start up.

This has been tested on the ports cluster by kris.

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 145683 29-Apr-2005 harti

Rename the directive_hash.[ch] files to hash_tables.[ch] now
that there are more than one hash table in them. There is no
history to preserve here, so go without a repo-copy.

Asked for by: Max Okumoto <okumoto@ucsd.edu>


# 145679 29-Apr-2005 harti

Implement a pseudo-target .WARN that allows toggeling the warning flags
for the current make. This does not override flags specified on the
command line and these settings are not passed to sub-makes.


# 145616 28-Apr-2005 harti

Use a minimal perfect hash for the special sources/targets too. Add
the corresponding magic to create the hash function to the Makefile.


# 145612 28-Apr-2005 harti

Move the hash function for directives into its own file and add
a Makefile target to re-created this file. Note, that there is no
explicite dependency to automatically re-create the file, because this
is needed only when the directive table changes and it requires the
(yet to come) devel/mph port.

Submitted by: Max Okumoto <okumoto@ucsd.edu> (first version)


# 144897 11-Apr-2005 harti

Parse_Init() is gone so remove comments that mention it.


# 144894 11-Apr-2005 harti

Rework the directive parsing code. Instead of using a lot of strcmp()s
on every line that starts with a dot use a minimal perfect hash
function and a single strcmp() on the first word after the dot
to find out whether it is really a directive call and, if yes, which
one. Then directly dispatch to a handler function for that directive
(or fall through to the dependency handling code). This makes the
directive parse a little bit more strict about the syntax: the directive
word must be followed by a character that is not alphanumerical and not
an underline (making .undefFOO illegal); .endif and .else can only be
followed by comments.


# 144787 08-Apr-2005 harti

Move the code for parsing .for and .if statements to the place where the
other directives are handled.


# 144745 07-Apr-2005 harti

When Parse_Error is called after the top-level Makefile is closed we
have no CURFILE anymore so we cannot print a file name or line number.

When ParseSkipLine() returns NULL (it does this when it has detected an
EOF in an .if block) try to pop the input stack and process the next line


# 144742 07-Apr-2005 harti

Handle popping of the input stack in ParseReadLine() instead of
Parse_File(). Remove a comment and a piece of code comming from
ancient times when the if-directive read like #if and not .if.
Correctly analyze the first character of a line.


# 144341 30-Mar-2005 harti

Make the structure for handling the input stack local to the parse
module. The only module accessing it (the current line number) was the
condition module, so pass the current line number as a function argument.
Centralize the pushing of new input sources into one function
ParsePushInput() and rename the function handling the popping from ParseEOF()
to ParsePopInput(). Make the entire thing a little bit clearer, by holding
the current input source in the top element of the stack instead of
using extra variables for this. Use a type-safe intrusive list for the
input stack.


# 144029 23-Mar-2005 harti

Style: de-lispify by removing extra parantheses in conditional expressions.


# 144026 23-Mar-2005 harti

Style: make indentation 8 characters.


# 144020 23-Mar-2005 harti

Make paths an explicite datatype instead of using the generic Lst.
A Path is now a TAILQ of PathElements each of which just points to
a reference counted directory. Rename all functions dealing with Paths
from the Dir_ prefix to a Path_ prefix.


# 143959 22-Mar-2005 harti

Simplify buffer access by using Buf_Data() and Buf_Peel() where
appropriate.

Patch: 7.147-7.151

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 143684 16-Mar-2005 harti

Get rid of another bunch of Lst_ForEach in favour of LST_FOREACH and
simplify code accordingly.


# 143647 15-Mar-2005 harti

Yet another version of passing the last line to ParseFinishLine().
It turns out that some ports use the obscure feature of spreading
a dependency block across multiple include files. While this seems
bad style, allow it for now and call said function only at end of
all input to process the really last line of everything.


# 143405 11-Mar-2005 harti

Call ParseFinishLine() also for the last line in a file. This
patch differs from the previous one in that it calls the function
only when a real file hits EOF. The bodies of .for loops are also
handled as files, but for these we don't want to end a dependency block
on the 'EOF' as in:

foo:
do-this
.for ...
do-something
.endfor
do-more


# 143401 11-Mar-2005 harti

Back out the last commit. It turns out that this breaks more than
it fixes. This should fix the buildworld breakage.


# 143375 10-Mar-2005 harti

Call ParseFinishLine() for the last line of a file too.


# 143372 10-Mar-2005 harti

Reorganize Suff_EndTransform to be called only for nodes for
which it is needed (transforms).


# 143101 03-Mar-2005 harti

Fix parsing of archive specifications on the target side of
dependency lines. It seems that nobody is actually is using
the archive-feature of make.


# 143100 03-Mar-2005 harti

Update the description comment of the function to reflect the
previous change.


# 143027 02-Mar-2005 harti

Convert a function call to Lst_ForEach with a macro call to LST_FOREACH.


# 142937 01-Mar-2005 harti

Make sure the length variable is initialized to 0 before passing
it to Var_Parse().

Patch: 7.85

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 142457 25-Feb-2005 harti

Change the return value of Var_Subst to return a Buffer instead
of a char *.

Patch: 7.49

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 141454 07-Feb-2005 harti

Introduce Buf_StripNewLines() and use it where appropriate.

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 141291 04-Feb-2005 harti

Where the returned line length from Buf_GetAll is not used just pass
a NULL to the function. Delete the now unused local variables.

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 141275 04-Feb-2005 harti

None of the users of Buf_Discard used it to get rid of only a part of
the buffer. So replace Buf_Discard by Buf_Clear which just gets rid
of the entire contents.

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 141270 04-Feb-2005 harti

General whitespace cleanup: remove mixes of tabs and spaces, remove
space after function names, remove spaces on emtpy lines.

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 141252 04-Feb-2005 harti

Some more easy constification.

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 141133 02-Feb-2005 harti

Convert several typedefs from beeing pointers to structs to be the structs
itself. This will ease constification (think of what 'const Ptr foo'
means if Ptr is a pointer to a struct).

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 141104 01-Feb-2005 harti

Clean up include files and file including. Split nonints.h into pieces
that get included just where they are needed. All headers include the
headers that they need to compile (just with an empty .c file). Sort
includes alphabetically where apropriate and fix some duplicate commenting
for struct Job, struct GNode and struct Shell by removing one version and
inlining the comments into the structure declaration (the comments have been
somewhat outdated).

This patch does not contain functional changes (checked with md5).

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 140870 26-Jan-2005 harti

Fix quoting of the MAKEFLAGS environment variable by only quoting spaces
and tabs. This is still not correct for command line variable values
ending in a backslash because this would require a larger effort.
Document this limitation in the BUGS section of the man page. The
quoting is mostly compatible with that of gmake and smake.

Tested by: Max Okumoto and Joerg Sonnenberger from DragonFly BSD
Reviewed by: ru (man page, partly)


# 138972 17-Dec-2004 harti

Remove all the cleanup functions. There is no reason to free memory
just before exiting (especially given the number of memory leaks) -
it just costs time.


# 138916 16-Dec-2004 harti

Instead of dynamically allocating list heads allocated them statically
now that their size is only two pointers. This eliminates a lot of calls
to Lst_Init and from there to malloc together with many calls to
Lst_Destroy (in places where the list is obviously empty). This also
reduces the chance to leave a list uninitilized so we can remove more
NULL pointer checks and probably eliminates a couple of memory leaks.


# 138654 10-Dec-2004 harti

Remove a useless list where just all command lines are stuffed onto, never
used and just freed at the end. The idea might have been to be able
to free all the strings, but what's the point to free just before exiting?


# 138512 07-Dec-2004 harti

Typedefs of pointers to structs are evil. Make Lst and LstNode typedef of
the structs itself not of pointers to them. This will simplify constification.

Checked by: diff on the object files


# 138510 07-Dec-2004 harti

Make needs no circular lists so remove them from the list code.


# 138346 03-Dec-2004 harti

Fix breakage introduced on 64-bit platforms with my last commit. Need
to change to size_t in a couple of other places too.


# 138264 01-Dec-2004 harti

Style: remove a lot of unnecessary casts, add some and spell the null
pointer constant as NULL.

Checked by: diff -r on the object files before and after


# 138232 30-Nov-2004 harti

Stylification: missing spaces, extra space after function names, casts
and the sizeof operator, missing empty lines, void casts, extra empty lines.

Checked by: diff on make *.o lst.lib/*.o

Submitted by: Max Okumoto <okumoto@soe.ucsd.edu> (partly)


# 138192 29-Nov-2004 harti

Use typedefs for the types of the functions that are passed as arguments
to the list functions for better readability.

Submitted by: Max Okumoto <okumoto@ucsd.edu>


# 137810 17-Nov-2004 harti

Eliminate the define for POSIX and build with Posix behaviour.
Our make has been build with POSIX enabled from the first day
and the ifdef'ed out code served no purpose.


# 132540 22-Jul-2004 harti

Fix handling of comments on .elif lines. The patch given in a followup
to the PR failed, because the line skipping function is actually called
from two places in the code to do quite different things (this should
be two functions probably): in a false .if to skip to the next line
beginning with a dot and to collect .for loops. In the seconds case we
should not skip comments, because they are actually harder to handle than
we need for the .if case and should defer this to the main code.

PR: bin/25627
Submitted by: Seth Kingsley (original patch)


# 132439 20-Jul-2004 harti

Improve make's diagnostic of mistmatched .if-.endif. This patch is
slightly different from the patch in the PR. The problem is, that
make handles .if clauses inside false .if clauses simply by
counting them - it doesn't put them onto the conditional stack, nor even
parses them so we need an extra line number stack for these ifs.

PR: bin/61257
Submitted by: Mikhail Teterin <mi@aldan.algebra.com>


# 131456 02-Jul-2004 eik

New variable `.MAKEFILE_LIST', useful for tracing, debugging and dependency tracking.

Use
make -V .MAKEFILE_LIST | tr \ \\n | awk '$0==".." {l--; next} {l++; printf "%*s%s\n", l, " ", $0}'
to print a tree of all included makefiles.

Approved by: joerg
MFC after: 1 week


# 128160 12-Apr-2004 ru

Added the new .warning directive.

Submitted by: Cyrille Lefevre


# 126824 10-Mar-2004 ru

Reworked the fix to print the useful line number on error in
the .for loop:

- Replaced four global variables in parse.c with one.
- Made Parse_FromString() accept the "lineno" as an argument.
- Fixed line numbering when there are escaped newlines in the
body of the .for loop.

Adopted from: NetBSD


# 126779 09-Mar-2004 ru

Make it possible to ``.undef ${VAR}'' (expanding VAR to get
the variable name to undef).

Submitted by: Cyrille Lefevre


# 126768 09-Mar-2004 ru

Fixed line numbering inside the .for loops.

Submitted by: Cyrille Lefevre


# 107373 28-Nov-2002 ru

Finish the fix in revision 1.39 -- make(1)'s behavior is now
"greedy" with respect to finding the dependency operators.

Approved by: re


# 105754 22-Oct-2002 jmallett

De-obfuscate and correct the include path handling for SysV style includes.

PR: 32759
Submitted by: Mark Valentine
Reviewed by: Matthew Emmerton" <matt@gsicomp.on.ca>
MFC after: 15 days


# 104696 09-Oct-2002 jmallett

Convert make(1) to use ANSI style function declarations. Variable
documentation already adequatedly existed in the description in most
cases. Where it did not, it was added. If no documentation existed
beforehand, then none was added. Some unused dummies for use in the
traversal functions were marked as __unused during the conversion.
Occasionally, local style fixes were applied to lines already being
modified or influenced.

Now make(1) should always build with WARNS=3.


# 104693 08-Oct-2002 jmallett

Remove extern declarations from functions and source files where they would
happily fit into headers.


# 104374 02-Oct-2002 jmallett

Remove 6-years-stale #if0, the behaviour isn't ever going to be limited to
compatible mode, as far as I know, since we use it...


# 104121 28-Sep-2002 jmallett

Make make(1) WARNS=6 clean except for const issues. This mostly involves
renaming variables to not shadow libc functions or greater scope locals. Kinda
makes one wonder if the extern ones weren't meant in some of these places :)

The only thing I'd still like to do WRT this is possibly combine rstat and
status in compat.c -- that should be fine, as I do not think the codepaths
will want both around at once.

Sponsored by: Bright Path Solutions


# 104108 28-Sep-2002 jmallett

Add empty default cases where they should be, remove non-local execution stuff
in compat.c which doesn't even have preprocessor-conditional-hidden support
code, and add a debugging statement where we might end up with a nil list
somehow, but where I doubt it.

First confirmed userland kill for Flexelint.

Sponsored by: Bright Path Solutions


# 103991 26-Sep-2002 jmallett

Remove a semicolon that appears to be a lie.

Spotted by: SPARC64 make WARNS=3
Sponsored by: Rachel Hestilow <rachel@jerkcity.com>


# 103545 18-Sep-2002 jmallett

Make the DEBUGF() macro portable by (ugh) adding a Debug() function, which
is merely printf() but to stderr. This takes care of the caveat which lead
to the use of a vararg macro -- getting everything to stderr.


# 103508 17-Sep-2002 jmallett

Move common use of if (DEBUG(FOO)) printf... to DEBUGF(FOO, ...), using
variable length arguments to a macro. Bump version as this makes DEBUG
statements *always* go to stderr rather than sometimes stdout. There are
a few stragglers, which I will take care of as soon as I can. Mostly these
relate to the need-for-death-of some of the remote job code.

Nearby stylistic nits and XXX added/fixed where appropriate.


# 103503 17-Sep-2002 jmallett

#define<space> -> #define<tab>


# 102178 20-Aug-2002 ru

Allow embedded `:' and `!' in target names.

PR: bin/6612
Obtained from: OpenBSD
MFC after: 1 week


# 100792 28-Jul-2002 jmallett

Print a warning when we are given two scripts for one target. This is neither
as wide-reaching nor intensive as NetBSD's similar, but the warning uses the
same text.

Inspired by: NetBSD


# 98509 20-Jun-2002 jmallett

Fix a bug fixed by NetBSD in revision 1.42 of parse.c by christos which caused
an example Makefile I was showing someone just last night to report a variable
as being recursive.

Obtained from: NetBSD


# 98508 20-Jun-2002 jmallett

More unsigned char casts to isupper(3).

Obtained from: NetBSD


# 98506 20-Jun-2002 jmallett

Provide a heuristic for RCS conflicts.

Obtained from: NetBSD


# 98500 20-Jun-2002 jmallett

Diff reduction for great justice against NetBSD, cast to unsigned char when
passing an argument to isspace(3).


# 98136 12-Jun-2002 jmallett

The error functions take constant pointers to strings for their format.


# 94587 13-Apr-2002 obrien

Update SCM ID method.


# 94584 13-Apr-2002 obrien

De'register.


# 93056 23-Mar-2002 imp

o unifdef -D__STDC__
o remove badly bit-rotted compat file that likely won't work on the systems
it purports to support.


# 92921 21-Mar-2002 imp

remove __P


# 74293 15-Mar-2001 will

Revert previous change -- apparently it's not quite right. It broke
src/sys/modules/if_ef and possibly other things. I tested the build with
a make based on rev. 1.26, and it worked fine. Since I'm not particularly
inclined to figure out what's going on with this, it's probably prudent
just to back it out for now.

Found by: jkh
Suggested by: jhay


# 74272 15-Mar-2001 will

Fix make(1) bug: nested comments may be placed in .if, .else .if, and
.endif statements but can't be placed in .elif. Basically, the problem
was that ParseSkipLine() didn't handle comments the same way that
ParseReadLine() did, and thus you had errors with comments that are on a
conditional line (i.e. "^.") rather than a non-conditional line.

MFC candidate for 4.3-STABLE and 3.5-STABLE.

PR: 25627
Bug found by: jhs
Fix submitted by: Seth Kingsley <sethk@osd.bsdi.com> (thanks!!)


# 72645 18-Feb-2001 asmodai

Preceed/preceeding are not english words. Use precede and preceding.


# 69531 02-Dec-2000 will

There's also no point in #typedef'ing void/char pointers. Accordingly,
rip out ClientData/Address pointers and use standard types.

Obtained from: OpenBSD


# 69527 02-Dec-2000 will

There's no reason to use fancy forms of NULL. Replace all instances
of NIL, NILLST, NILLGNODE, etc. with NULL.

Obtained from: OpenBSD


# 62833 09-Jul-2000 wsanchez

Use __RCSID()


# 50477 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 49938 16-Aug-1999 hoek

Merge style- and trivial- only changes from OpenBSD (dated 1999/07/29-19:55+1).

Obtained from: OpenBSD, sometimes indirected from NetBSD; myself


# 42409 08-Jan-1999 jkh

Don't allow pointer underrun in loop.

Spotted by: John W. DeBoskey <jwd@unx.sas.com>


# 36347 25-May-1998 steve

Add a graceful jumping off point with a new .error directive.

PR: 6720
Submitted by: Niall Smart <njs3@doc.ic.ac.uk>


# 27644 24-Jul-1997 charnier

Use err(3). Cosmetic in usage string.


# 23006 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


# 21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 19344 03-Nov-1996 steve

Add a .POSIX directive. When the first non-comment
line of a Makefile contains this directive, make(1)
will enter a POSIX 1003.2 compliant mode.

Submitted by: Joerg Wunsch <joerg@freebsd.org>


# 18804 08-Oct-1996 steve

O' to be bitten by CVS. Cleanup after import
of Christos' version of make(1) and add Id's.

Set straight by: Bruce Evans and Peter Wemm :)


# 18730 06-Oct-1996 steve

Merge in NetBSD's changes to make(1). Changes include:

- Add the .PHONY, .PARALLEL, and .WAIT directives
- Added the -B and -m commandline flags
- misc. man page cleanups
- numerous job-related enhancements
- removed unused header file (bit.h)
- add util.c for functions not found in other envs.
- and a few coordinated whitespace changes

Special thanks to Christos Zoulas <christos@netbsd.org>
for help in the merge. A 'diff -ur' between Net and
FreeBSD now only contains sccsid-related diffs. :)

Obtained from: NetBSD, christos@netbsd.org, and me


# 18492 25-Sep-1996 steve

Fix for PR# 1231, make(1) execution of ``.BEGIN'' does
not halt on error. Thanks to Wolfram for reminding me. ;)

Also remove a unnecessary test for c == '\n', since the
loop (in ParseSkipLine) will not terminate unless
c == '\n' || c == EOF, and the EOF case is already
explicted handled by a return statement.


# 18478 23-Sep-1996 steve

Be sure to remove any newlines encountered when
parsing the input file in ParseSkipLine(...).


# 18456 22-Sep-1996 steve

Fix for PR# 1095, make's continuation line handling buggy
when used with .elif. Additional fixes include:

- fix continuation line handling when using .for
- plug up a memory leak


# 18255 12-Sep-1996 bde

Fixed handling of `!=' assignment. Don't warn if the shell's output is
null, but warn if there was an error reading it.


# 17259 23-Jul-1996 nate

'make' prints an extra leading `make: ' and extra trailing newline if
there is no target to make.

% make
make: make: no target to make.

%

Beause the function Punt() in main.c takes care of leading 'make:' and
trailing newline, so, there is no need to pass explicitly.

Submitted by: enami@ba2.so-net.or.jp
Obtained from: NetBSD GNATS


# 9298 24-Jun-1995 ache

Back out prev. NetBSD fix, it cause skipping some error constructions,
don't delete initial space from line instead


# 9297 24-Jun-1995 ache

Don't make error on ^<spaces>\n
Obtained from: NetBSD


# 9255 18-Jun-1995 ache

Fix parsing SYSV/GNU "include"


# 9254 18-Jun-1995 ache

NetBSD fixes: declare more prototypes, move .OPTIONAL in alphabet
order, prevent suffix rule, if direct or children dependances exists,
forget to free v->name in var.c
My fixes: fix famous ^\t\n bug, correct free order in str_end
Reviewed by: bde
Obtained from: NetBSD, me


# 8874 30-May-1995 rgrimes

Remove trailing whitespace.


# 5814 23-Jan-1995 jkh

Bring in a number of changes from NetBSD's make, fixing quite a few
problems in the process:

1. Quoting should work properly now. In particular, Chet's reported bash
make problem has gone away.
2. A lot of memory that just wasn't being free'd after use is now freed.
This should cause make to take up a LOT less memory when dealing with
archive targets.
3. Give proper credit to Adam de Boor in a number of files.
Obtained from: NetBSD (and Adam de Boor)


# 1591 27-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1590,
which included commits to RCS files with non-trunk default branches.


# 1590 27-May-1994 rgrimes

BSD 4.4 Lite Usr.bin Sources