Commit Graph

763 Commits

Author SHA1 Message Date
Peter Wemm
b9305a0668 Make -V expand it's arguments. This means that instead of 'make -V OBJS'
printing something useless (to a shell) like: ${SRCS:N*.h:R:S/$/.o/g}
it will instead print the actual ${OBJS} value.
1998-06-13 11:55:57 +00:00
Bruce Evans
822aa079ec Don't forget to pretend that `make -n -jN' makes the targets that it
says it pretends to make.

This bug was apparently harmless except for normal cases involving
.ORDER statements when it made debugging of -jN using -n very
confusing.  E.g., for:

.ORDER: beforedepend .depend
depend: beforedepend .depend

where beforedepend depends on something so that it is not initially
up to date, `make [-n] -j2 depend' causes `make' to wait for itself
to make beforedepend.  This works fine without -n.  The job to make
beforedepend has normally been started, and beforedepend is marked
as made when the job completes.  However, with -n, the pseudo-job
for making beforedepend has normally completed, and in any case
there was no chance of beforedepend being marked as made.  `make'
actually exited almost immediately with status 0 instead of waiting
forever.
1998-06-04 05:48:57 +00:00
Peter Hawkins
968d4e7fe2 PR: bin/6828
Submitted by:	njs3@doc.ic.ac.uk
Obtained from:	NetBSD

Implement embedded variable expansion
1998-06-02 13:11:04 +00:00
Steve Price
fe6fb5d439 Add a graceful jumping off point with a new .error directive.
PR:		6720
Submitted by:	Niall Smart <njs3@doc.ic.ac.uk>
1998-05-25 03:28:37 +00:00
John Birrell
c021a0a9d0 Fix broken (at least on alpha, but probably on i386 too) code which
is supposed to walk an arry of character pointers, not an array of
characters.
1998-05-13 05:50:42 +00:00
Wolfram Schneider
43721e3d1d Some commands are shell builtins. Execute the builtins by the shell
and not directly by make(1).

PR: bin/6550
Submitted by: Theo de Raadt <deraadt@cvs.openbsd.org & wosch
1998-05-12 11:54:12 +00:00
Warner Losh
3a42f937f1 Use historically correct error message in some cases, optionally. 1998-04-28 05:08:10 +00:00
Poul-Henning Kamp
64400b18cc When all transformation rules to or from a suffix disappeared, make tries
to free the suffix. I think, it is a very strange idea. (Or, maybe, it is a
POSIX requirement?) And it is done incorrectly. Apparently, it even don't
update the list of known suffixes (but it is an other bug).

PR:		4254, 4692, 4783
Reviewed by:	phk
Submitted by:	Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
1998-04-26 09:44:48 +00:00
James Raynard
cb0830ae3f Cleanup: fix a few typos, fit ASCII output onto an 80-column terminal
and use a fixed font which actually exists.
1997-11-23 02:02:39 +00:00
Warner Losh
ce2d5f5fa6 Add #include <stdlib.h> to pick up prototypes for getenv and friends. 1997-09-29 03:53:53 +00:00
Jordan K. Hubbard
b1795946fd Don't preferentially execute Makefiles in ${OBJDIR} - it just causes
confusion and suffering.  Tested by "make world".
Submitted by:	gibbs
1997-08-27 06:31:27 +00:00
Steve Passe
1ecd3f4585 Make explicit '-B' option propigate to submakes.
No one has said this would be a bad thing, so given the dearth of comments
I decided to add it, as its an important step towards getting "make world"
'parallel-ized'.

Reviewed by:	silence
Submitted by:	nnd@itfs.nsk.su
1997-08-25 21:35:44 +00:00
Steve Passe
6e0d2d5172 Better fix, as originally submitted by reporter.
Submitted by:	 N.Dudorov <nnd@itfs.nsk.su>
1997-08-14 19:24:11 +00:00
Steve Passe
74a19f1229 Fix PR bin/4291: /usr/bin/make - inconsistent -j<n> flag parsing.
Submitted by:	N.Dudorov <nnd@itfs.nsk.su>
1997-08-14 04:46:20 +00:00
Philippe Charnier
950622c987 Use err(3). Cosmetic in usage string. 1997-07-24 06:58:08 +00:00
Poul-Henning Kamp
0432a202f3 In these XXX MHz days, waiting 500ms for a process to do something is
really far too long.  Let us try 100ms instead, if you have a PP200,
maybe that's even too long.  This should speed up make -j# builds.
I wonder why SIGCHLD isn't used...
1997-04-21 20:32:11 +00:00
Warner Losh
1c8af87873 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-29 04:34:07 +00:00
Wolfram Schneider
efda6cd9d5 Add reference to `PMake - A Tutorial' 1997-03-09 15:51:07 +00:00
Wolfram Schneider
4fbe57dc33 Add enviroment variable MAKEOBJDIRPREFIX, still undocumented except
in bsd.obj.mk.
1997-03-03 00:57:48 +00:00
Peter Wemm
53faa0dade Revert $FreeBSD$ to $Id$ 1997-02-22 19:29:21 +00:00
Jordan K. Hubbard
1130b656e5 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.
1997-01-14 07:20:47 +00:00
Steve Price
8a87dec9bf 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>
1996-11-03 03:29:57 +00:00
Steve Price
97162b3f35 Remove extraneous comment, fix second-level tabs (one
tab and four spaces), and return error message in *err
instead of calling Parse_Error.

Suggested by: Bruce Evans <bde@zeta.org.au>
1996-10-12 02:15:30 +00:00
Steve Price
50dc64b15f Removed extra $Id$ string. 1996-10-11 04:15:57 +00:00
Steve Price
39dd3fffbf Reinstate '!=' fix by Bruce Evans. The original commit message from
parse.c(1.9) was:

revision 1.9
date: 1996/09/12 03:03:25;  author: bde;  state: Exp;  lines: +7 -6
Fixed handling of `!=' assignment.  Don't warn if the shell's output is
null, but warn if there was an error reading it.

Suggested by: Bruce Evans <bde@zeta.org.au>
1996-10-11 03:55:29 +00:00
Steve Price
5d55a64610 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 :)
1996-10-08 04:07:59 +00:00
Steve Price
85aa37cd56 This commit was generated by cvs2svn to compensate for changes in r18764,
which included commits to RCS files with non-trunk default branches.
1996-10-06 16:45:32 +00:00
Steve Price
ea09f5e44d Import Christos Zoulas' version of NetBSD's make onto the
vendor branch for reference.

Obtained from: Christos Zoulas <christos@netbsd.org>
1996-10-06 16:45:32 +00:00
Steve Price
66b6f9d1e4 Clarify the rule used to determine the object
directory location.
1996-10-06 16:19:08 +00:00
Peter Wemm
6c7089bce5 Import the 4.4BSD-Lite2 version of make onto the vendor branch
"for reference".  This doesn't change anything since all files
have been touched.
1996-10-06 15:57:15 +00:00
Peter Wemm
6b8f99f0db This commit was generated by cvs2svn to compensate for changes in r18756,
which included commits to RCS files with non-trunk default branches.
1996-10-06 15:57:15 +00:00
Steve Price
8b69153a4d Correct problem with traversing into PSD.doc directory,
these files are actually installed/built as part of
src/share/doc/psd/12.make.  Oops. :)

Pointed out by:	Peter Wemm and Bruce Evans
1996-10-06 13:02:43 +00:00
Jordan K. Hubbard
09502a0eb9 Correct merge bogon: You want to descend into PSD.doc for both `all' and
`install' cases or there's never anything made to install, and you blow
up in the install. :-)
1996-10-06 12:43:14 +00:00
cvs2svn
fd28c66eb8 This commit was manufactured by cvs2svn to create branch 'CHRISTOS'. 1996-10-06 02:35:39 +00:00
Steve Price
c0d06fe463 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
1996-10-06 02:35:38 +00:00
Wolfram Schneider
e83201b43a delete doubled words, e.g.: "the the" -> "the" 1996-10-05 22:27:30 +00:00
Steve Price
6d29e75f84 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.
1996-09-25 02:55:49 +00:00
Steve Price
0e0e0239f0 Be sure to remove any newlines encountered when
parsing the input file in ParseSkipLine(...).
1996-09-23 17:21:34 +00:00
Steve Price
6bf3beb134 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
1996-09-22 02:28:36 +00:00
Steve Price
43bb0e149c Fix for PR#1230, make ``.for'' loops iterate backwards. 1996-09-21 04:00:22 +00:00
Steven Wallace
18e24ede6b Restore previous compatibility of ${.CURDIR}/obj.uname -m and
$(.CURDIR}/obj search while retaining compatability of new
prefix with cwd for the current source tree builds.
.TARGETOBJDIR has been removed from make and CANONICALOBJDIR set in
bsd.obj.mk

The builtin object directory searching is defined specifically as:

If MAKEOBJDIRPREFIX is defined, the search order is
${MAKEOBJDIRPREFIX}${.CURDIR}
${.CURDIR}

Else if MAKEOBJDIR is defined, the search order is
${MAKEOBJDIR}
${.CURDIR}

Otherwise, default to the search order
${.CURDIR}/obj.`uname -m`
$(.CURDIR}/obj
/usr/obj${.CURDIR}
${.CURDIR}

Reviewed by:	bde
1996-09-18 06:06:39 +00:00
Bruce Evans
d25a64252b Fixed handling of `!=' assignment. Don't warn if the shell's output is
null, but warn if there was an error reading it.
1996-09-12 03:03:25 +00:00
Bruce Evans
454f40052a Fixed a missing colon in `notyet' code. 1996-08-31 14:22:33 +00:00
Bruce Evans
274beb73fe Listed all the environment variables (MACHINE and PWD were missing).
Documented PWD.  MACHINE and MAKEOBJDIR are are still undocumented
except in main.c.  I will be changing MAKEOBJDIR back to its old
behaviour so that the comment in main.c actually applies.

Removed irrelevant misformatted text about make's name being argv[0].
1996-08-31 14:21:15 +00:00
Nate Williams
fe6ab298ab '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
1996-07-23 18:55:21 +00:00
Bruce Evans
375633ec49 Added a -V option to print make's idea of the value of a variable.
Submitted by:	mark@linus.demon.co.uk (Mark Valentine)

Fixed bugs and inconsistencies in synopsis and usage message.
1996-07-17 11:02:43 +00:00
Jordan K. Hubbard
526195ad0d General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
1996-07-12 19:08:36 +00:00
Jordan K. Hubbard
c4d74c02f2 Put back the $PWD override behavior of revision 1.4. The concensus
*seems* to be that it was the right thing to do.
1996-07-01 22:55:57 +00:00
Jordan K. Hubbard
664a482fd0 Remove code which overrode the opinion of getcwd() with an often bogus
value for $PWD.
1996-06-27 21:59:25 +00:00
Jordan K. Hubbard
cd9a2f5c28 Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src.  This is the final version of the
patches, incorporating the feedback I've received from -current.
1996-06-24 04:26:21 +00:00
Joerg Wunsch
be71712986 Fix a typo.
Submitted by:	tgm@netcom.com (Thomas G. McWilliams)
1996-04-07 01:18:20 +00:00
Adam David
56c78cb71a Fix the :S modifier to substitute in each word of the variable, according
to the description in the manpage. g flag means "replace every occurence
in each word", and its absence means "replace first occurence in each word".
Previously, absence of the g flag was implemented to mean "replace first
occurence found in all words, and then stop replacing", which was incorrect.
1995-11-01 12:18:32 +00:00
Poul-Henning Kamp
0ad2ff70ee Stop using gnumalloc. 1995-09-22 14:14:32 +00:00
Andrey A. Chernov
2f22cc074c Back out prev. NetBSD fix, it cause skipping some error constructions,
don't delete initial space from line instead
1995-06-24 17:34:15 +00:00
Andrey A. Chernov
33e5f8f7b0 Don't make error on ^<spaces>\n
Obtained from: NetBSD
1995-06-24 17:23:31 +00:00
Andrey A. Chernov
fa19ca391b Fix parsing SYSV/GNU "include" 1995-06-18 13:08:18 +00:00
Andrey A. Chernov
76da55f6bc 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
1995-06-18 12:34:14 +00:00
Andrey A. Chernov
6ed40291ad Allow additional parsing of SYSV/GNU make "include" directive, it covers
90% of problems in ports Makefiles
1995-06-16 22:46:38 +00:00
Rodney W. Grimes
7799f52a32 Remove trailing whitespace. 1995-05-30 06:41:30 +00:00
Jordan K. Hubbard
9f574f9a90 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)
1995-01-23 21:03:17 +00:00
David Greenman
14810c626c Use gnumalloc. 1994-08-29 17:01:06 +00:00
Sean Eric Fagan
7267a81cea Fix a problem with passing quoted strings down to commands.
Reviewed by:	Sean Eric Fagan
1994-08-24 21:14:27 +00:00
Rodney W. Grimes
9b50d90275 BSD 4.4 Lite Usr.bin Sources 1994-05-27 12:33:43 +00:00