christos
f73f9b0103
Don't compile the regex code if MAKE_BOOTSTRAP (from gwr)
1996-12-31 18:03:30 +00:00
christos
4442744d56
BSD did not traditionally have <sys/cdefs.h>; use BSD4_4 instead and include
...
<sys/param.h> to grab it.
1996-12-31 18:02:22 +00:00
christos
59a3352108
implement snprintf() and vsnprintf() for non BSD4_4 systems.
1996-12-31 17:56:04 +00:00
christos
e43039b92f
add a missing 'static' decl.
1996-12-31 17:55:28 +00:00
christos
9a2fab368e
define const and volatile for non __STDC__
1996-12-31 17:55:02 +00:00
christos
87961728d3
- include <stdlib.h> to get getenv() prototype on SVR4
...
- if __STDC__ -> ifdef __STDC__ to appease SVR4
1996-12-31 17:54:16 +00:00
christos
9749ddca0f
Use only integral types in procedure arguments.
1996-12-31 17:53:21 +00:00
christos
36d9e80aff
Use explicit .c.o rule so that the bootstrap process works.
1996-12-31 17:52:23 +00:00
christos
8819044d2a
[initial version of the substitution/regexp changes were courtesy of Der Mouse]
...
- fix the variable substitution code in make [PR/2748]
1. change s/a/b/ so that it substitutes the first occurance of the
pattern on each word, not only the first word.
2. add flag '1' to the variable substitution so that the substitutions
get performed only once.
***THIS IS AN INCOMPATIBLE CHANGE!***
Unfortunately there was no way to make things consistent without
modifying the current behavior. Fortunately none of our Makefiles
depended on this.
OLD:
VAR = aa1 aa2 aa3 aa4
S/a/b/ = ba1 aa2 aa3 aa4
S/a/b/g = bb1 bb2 bb3 bb4
NEW:
VAR = aa1 aa2 aa3 aa4
S/a/b/ = ba1 ba2 ba3 ba4
S/a/b/1 = ba1 aa2 aa3 aa4
S/a/b/g = bb1 bb2 bb3 bb4
S/a/b/1g = bb1 aa2 aa3 aa4
- add regexp variable substitution via 'C/foo/bar/' [PR/2752]
- add variable quoting via the ${VAR:Q} modifier. This is useful when running
recursive invocations of make(1):
make VAR=${VAR:Q}
will always work... (This may prove useful in the kernel builds...) [PR/2981]
1996-12-24 17:36:27 +00:00
christos
2f197a9f4d
Fir PR/2930: declare missing variable.
1996-11-11 15:16:10 +00:00
christos
aa49881371
- Merge in FreeBSD and Lite2 changes.
...
- 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-11-06 17:58:58 +00:00
thorpej
dff3ccad44
Fix extra "make:" and newline in error message.
...
From enami tsugutomo <enami@ba2.so-net.or.jp>, PR #2651 .
1996-09-27 02:36:58 +00:00
christos
453e90716c
- Fix bug where the first line after a conditionally skipped was not ready
...
in its entirety if it contained a continuation.
- Print the whole error line, not just the first 20 characters of it.
1996-09-13 04:22:09 +00:00
christos
bb97544b1b
Fix bug reported by Greg Hudson where leaf (source only) nodes were
...
referenced only by their basename and not by their full pathname. This
breaks when .PATH or MAKEOBJDIR are used. There might be Makefiles around
that try to work around this bug by prepending ${.CURDIR} to the sources,
and they should be found and fixed. Also a lot of the gunk in suff.c that
was attempting to work around the same problem could be removed.
1996-08-30 23:21:10 +00:00
thorpej
bbb4184355
Tidy up some RCS ids a bit.
1996-08-30 17:59:37 +00:00
christos
091b5c0118
Add estrdup(), a checked version of strdup and use it.
1996-08-13 16:42:00 +00:00
christos
22770fe8ea
Add strdup() since ultrix is missing it.
...
From Larry Schwimmer <rosebud@cyclone.Stanford.EDU>
1996-08-13 16:41:15 +00:00
christos
ba78477e9d
Various cleanups from: Larry Schwimmer <rosebud@cyclone.Stanford.EDU>
1996-08-13 16:40:31 +00:00
christos
1bc899a1ff
Protect __P from being multiply defined (for systems that already define it)
1996-08-13 16:39:30 +00:00
christos
15d37e3539
Recognize SVR4 style long filename entries in archives.
1996-06-02 21:09:33 +00:00
christos
62be8b7e25
Fix bug where make will always exit with 0, even when one or more parallel
...
jobs failed. (Only affects parallel make code)
1996-05-29 15:28:05 +00:00
christos
5c1983c016
- Move -D flags from Makefile to config.h and explain what they do. Add
...
-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-05-28 23:34:35 +00:00
jtc
cf957d3a75
Changed to use 1900 + tm_year instead of hardcoding "19" as the century.
...
From PR #2308 by Stephen J. Roznowski <sjr@zombie.ncsc.mil>.
1996-04-08 18:57:49 +00:00
christos
c7f6ddc626
make emalloc and erealloc return void *; closes PR/2276
1996-03-31 21:30:05 +00:00
jtc
fea2f4c4ca
Added erealloc() function that calls enomem() if the allocation fails
...
(this is like the existing emalloc() function). Changed all realloc()
calls to erealloc().
1996-03-29 02:17:13 +00:00
christos
0acf990595
Add PHONY attribute and target. This is the first step to cleanup the
...
xinstall and xlint crud.
1996-03-15 21:52:32 +00:00
christos
6750270dc6
data and date aren't the same...
1996-03-12 18:04:27 +00:00
christos
57cad0d107
Jonathan Stone's fixes:
...
main.c: Remove double include of <sys/resource.h>; if MACHINE is defined, use
that instead of uname.
Makefile: Add util.c.
1996-03-11 13:45:31 +00:00
christos
9779dee0b1
Fix PR/2118; apply sysincludes patch.
1996-03-06 00:15:17 +00:00
christos
1b11cdf58d
if PR/2090, sysvinclude too optimistic, did not check for space after the
...
include keyword
1996-02-17 13:28:09 +00:00
thorpej
fb02474c1f
In ParseDoInclude(), make a temporary copy of the current file name
...
while searching for ""-type include files, since the current file name
might not be a writeable string.
1996-02-07 23:04:04 +00:00
christos
8862d696fa
fix pr/1421 and pr/1997
1996-02-04 22:20:27 +00:00
christos
b941a324f5
Support SVR4 style archives.
1996-02-04 20:34:41 +00:00
christos
f0874be2f5
- Added .WAIT to synchronize between sources like other pmake variants.
...
- Updated documentation to include .ORDER .PARALLEL .NO_PARALLEL .NONPARALLEL
1995-12-16 05:03:09 +00:00
christos
6611cb1d0d
Updates for POSIX/SVR4 compiling:
...
arch.c: Don't require ranlib stuff. Not everybody has it.
dir.c: SunOS-4 != Solaris; change #ifdef sun to #if sun && !__svr4__
job.c, compat.c: Don't use 'union wait', use int and the W*() macros.
main.c: Check for uname() == -1; some unames return > 0...
util.c, job.c: Add signal() with BSD semantics for svr4, don't use bsd
sigmask and friends.
1995-11-22 17:39:53 +00:00
cgd
e3c5125de9
pull in make.h. (PAlloc() now uses emalloc(), which is prototyped in
...
make.h. If the prototype is not in scope on the Alpha, I see lots
of "cast to pointer from integer of different size" warnings.)
1995-11-10 21:27:27 +00:00
christos
027abce852
- Turn compat mode on by default. It gets turned off when the -j without
...
the -B flag is specified. [Thus you can use -j 1 to turn it off].
- Fix malloc -> emalloc as Gordon noted.
1995-11-08 02:30:53 +00:00
christos
61067003d8
Minor:
...
- ${.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-11-02 23:54:35 +00:00
ws
337d0ee3b1
Always ensure space for trailing NULL in argv
1995-10-30 17:36:27 +00:00
jtc
95c465e08b
Update lseek() constants:
...
L_SET -> SEEK_SET
And add off_t cast to offset argument.
1995-09-27 18:44:38 +00:00
jtc
6a70570191
include <signal.h> instead of <sys/signal.h>
1995-09-27 18:42:21 +00:00
christos
f4699a7dd3
Revert previous suffix fix. If the .a suffix is present and a .c.a rule is
...
there, then the rule should be applied. This is the correct behavior.
1995-09-25 02:46:30 +00:00
christos
ae8c2b9dd3
Don't apply the default suffix rules for nodes that are not in our
...
current directory because we could be building things outside our
directory that were not meant to be build... Fixes PR/1488
1995-09-22 00:42:10 +00:00
christos
17c2255148
Fix PR/1443:
...
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-09-10 03:58:16 +00:00
christos
b5f782e810
- $NetBSD$ rcsids
...
- Fixed so that .[A-Z]* targets that do not match keywords are ignored as
Posix mandates
- Added .PHONY target keyword
1995-06-14 15:18:37 +00:00
ws
de7fa9654c
Sort keyword table correctly, so binary search really works
1995-05-15 13:10:10 +00:00
jtc
d08e2815ca
None of the functions in util.c are needed by NetBSD, so don't
...
bother to compile it.
1995-05-03 05:09:14 +00:00
christos
67c2aabd6c
Fix small typo; from Chris Torek
1995-04-29 17:05:08 +00:00
christos
f222a602cf
Fixed so that orphan tabs are ignored. Should close PR760.
1995-02-08 04:36:41 +00:00
christos
85ac32e8d2
str.c: Don't free NULL; does not work with non posix frees.
...
var.c: Minor memory leak plugged.
suff.c: Don't add extra sources on the null suffix if it has dependency
lines or commands attached to it [POSIX says so]
1995-02-04 23:44:41 +00:00
mycroft
b36edbb4da
Fix 4 typos pointed out by Jordan, and 1 by me.
1995-01-23 20:34:59 +00:00
christos
0036b358ae
Fixed to parse correctly SysV variable substitutions ${VAR:P1=P2} when
...
P1 or P2 contain }'s or )'s. From mikeb@snow.datametrics.com
1995-01-20 04:35:10 +00:00
christos
77759e5c6d
Fixed PR/724, 'make' runs commands when $? is empty
...
This is not the perfect fix. I think that the whole __SYMDEF
checking code should be removed. [I should also teach myself
how to deal with the PR stuff to mark this closed :-)]
1995-01-11 17:42:26 +00:00
christos
42d1db77e3
Save the name of the environment variables. Remove the comment that
...
says that we don't. from Paul Borman (prb@bsdi.com )
1995-01-09 18:31:41 +00:00
christos
95531c8e1f
Fixes from Paul Borman (prb@bsdi.com)
...
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.
1995-01-06 19:57:27 +00:00
cgd
7d82c5ab5d
a few casts, for peace and quiet.
1994-12-24 16:54:24 +00:00
christos
218fbce657
Don't remove targets when the -n flag is given and make is interrupted.
...
(From Keith Bostic)
1994-11-25 19:16:45 +00:00
mycroft
126cf80fd0
Deal with lines that contain only spaces, per PR 515, but implemented
...
differently.
1994-10-18 20:36:26 +00:00
mycroft
dfab95c9fe
Remove an outdated comment that is very confusing.
1994-10-18 20:16:13 +00:00
gwr
4ca862ca1d
Get the name of this type of MACHINE from utsname
...
so we can share an executable for similar machines.
(i.e. m68k: amiga hp300, mac68k, sun3, ...)
1994-09-30 03:14:21 +00:00
mycroft
e046f69de1
Use getcwd(3), not getwd(3), and remove some old, unused compatibility code.
1994-09-23 09:33:21 +00:00
cgd
138fcd8327
deal with new share/doc strategy
1994-06-30 05:33:30 +00:00
mycroft
ded5f042c3
Clean up deleted files.
1994-06-28 04:36:07 +00:00
cgd
5b029eb9a8
update for new doc-make/install strategy
1994-06-25 05:57:47 +00:00
cgd
f10235118d
from Lite
1994-06-19 02:33:16 +00:00
jtc
ac414e10cd
Christos' fix for quoting variable extraction properly.
1994-06-16 18:50:18 +00:00
jtc
b28f89c931
Christos' fix for quoting variable extraction properly.
1994-06-16 18:50:16 +00:00
jtc
9f7dde6ba0
Christos' fix for quoting variable extraction properly.
1994-06-16 18:50:04 +00:00
jtc
26a8972fd7
Fixes from Christos Zoulas, who used purify, objectcenter and testcenter
...
to find memory leaks and illegal memory accesses.
1994-06-06 22:45:17 +00:00
jtc
63ad15ccc1
Fix from Thorsten Lockert: don't ignore \ before # characters
...
in strings (Fixes bug 255).
1994-05-21 16:36:01 +00:00
jtc
abd412aa8d
Properly parse null command line arguments in makefile rules.
...
Fix from Christos Zoulas.
1994-05-17 15:55:42 +00:00
glass
0b84fdb5c1
bootstrap improvements
1994-05-09 06:36:20 +00:00
glass
5760062851
bootstrap changes
1994-04-17 03:09:49 +00:00
briggs
506dde3090
Need for.o in list of objects when bootstrapping.
1994-04-09 23:35:25 +00:00
jtc
aa67092685
Fixes from Christos Zoulas:
...
The following two patches fix a couple of problems with make(1)
1. Null Suffixes were not being copied, but they were being free'd
This caused rules of the form:
.c:
${CC} ...
to access invalid memory and potentially core dump..
[That was always broken; I did not break that one :-)]
2. My recent fixes to parse ${VAR:%.foo=%.bar} handled the null string
case incorrectly (${VAR:=.c} was broken).
1994-03-23 00:52:13 +00:00
pk
15b943d427
Do extended-name archives.
1994-03-18 11:32:09 +00:00
cgd
3cb7f8e872
kill some warnings, from Christos.
1994-03-07 22:22:01 +00:00
jtc
6b1913fcc9
Apply fix that was lost when Christos Zoulas' changes were integrated:
...
Shell commands start with tabs, not whitespace. Pmake's
POSIX behavior must have been derrived from an early draft.
1994-03-05 01:58:23 +00:00
mycroft
f4d252cff0
Clean up deleted files.
1994-03-05 00:35:58 +00:00
cgd
298fa8e587
fixes/improvements from Christos Zoulas <christos@deshaw.com>.
1994-03-05 00:35:26 +00:00
mycroft
ea40a9138d
Clean up deleted files.
1994-03-05 00:35:19 +00:00
cgd
3db59563ee
fixes/improvements from Christos Zoulas <christos@deshaw.com>.
1994-03-05 00:34:29 +00:00
jtc
f4db87c6e4
Fix typos & spelling errors
1994-02-10 18:24:46 +00:00
jtc
e890eb6415
Include appropriate header files to bring prototypes into scope.
1994-01-13 21:01:40 +00:00
cgd
e11feae6b8
add missing arg to setenv(). reported by downsj@csos.orst.edu
1994-01-13 17:18:30 +00:00
pk
f0e170dc10
Introduced ${.OBJDIR}. The variable is similar to .CURDIR but points at
...
the directory where make builds the targets. It can be used to clean up
those cumbersome Makefiles that have to guess at the "obj" directory.
1993-12-22 00:25:57 +00:00
jtc
5a178ffc9b
POSIX.2 added the -S flag (opposite of -k). It was allready there,
...
just #ifdef'ed out.
1993-12-17 23:55:57 +00:00
jtc
d253881943
Fix bug #47 . Shell commands start with tabs, not whitespace. Pmake's
...
POSIX behavior must have been derrived from an early draft.
1993-12-17 23:52:04 +00:00
jtc
77e8bced10
Fix bug (PR #42 ) with -j flag. Doesn't seem to do anything, but at
...
least it doesn't dump core anymore.
1993-12-15 18:26:40 +00:00
jtc
ae2b6ea2c2
Compile with -DPOSIX --- enables reasonable behavior for MAKE and
...
MAKEFLAGS variables.
1993-12-14 18:27:15 +00:00
jtc
f39d0cfe88
Update to use <dirent.h>.
1993-12-08 00:37:37 +00:00
cgd
edcba29bc8
add MACHINE_ARCH
1993-12-04 02:12:34 +00:00
cgd
670f052fd7
add support for an obj.${MACHINE} dir, which will be used rather than obj,
...
if both exist. basically, precedence is now:
MAKEOBJDIR or (obj.${MACHINE} then obj)
.
1993-10-23 02:32:03 +00:00
cgd
e57d888eed
fix from chmr@edvz.tu-graz.ac.at (Christoph Robitschko)
...
to get things right if obj is a symlink and points to nowhere.
1993-08-23 05:29:31 +00:00
mycroft
aee4b07b8a
Add RCS identifiers, remove some completely useless RCS logs and patchkit
...
headers, and a few other insignificant changes.
1993-08-02 17:48:44 +00:00
mycroft
e9d867ef50
Add RCS identifiers.
1993-08-01 17:54:45 +00:00
mycroft
c3e42d1c64
Add RCS indentifiers.
1993-08-01 07:22:47 +00:00
mycroft
690cae8181
Add RCS indentifiers.
1993-07-31 15:17:49 +00:00
cgd
2b3bd9befd
remember curdir as something other than ".", so that makes
...
of things which include files in directories won't get hosed...
1993-07-08 03:41:58 +00:00
glass
248f75d9b8
some compatibility fixes to ease bootstrapping:
...
Makefile.dist is now a decent Makefile and not one of these cc *.c disasters
1993-05-27 16:54:21 +00:00