cvs commit: src/usr.bin/make
Max Okumoto
okumoto at crater.dragonflybsd.org
Thu Dec 9 17:05:12 PST 2004
okumoto 2004/12/09 17:03:46 PST
DragonFly src repository
Modified files:
usr.bin/make Makefile Makefile.dist compat.c config.h
job.c job.h main.c
Log:
o Allow use of the ${MAKE_SHELL} variable to specify alternate
shells for make(1) to use. Setting it to "sh" and "ksh" are the
only values which work right ATM; I wouldn't expect "csh" to get
you far ;)
o Include -DDEFSHELL=1 in Makefile.dist so people boostrapping will
have a sane default. And add DragonFly tag
o Add ability to use csh(1) as the make(1) shell.
o Expand the scope of the .SHELL specification to also cover the
compat mode of operation and the != operator.
While here, fixed a bug in the .SHELL directive processing when
only the name= attribute is specified and no built-in shell matches
this name, causing null pointer dereference.
o Fix a very long-standing error in handling .SHELL targets: this
target uses the brk_string function to parse the line. That
function uses static storage for both the expanded string and the
returned argv[] vector. The JobParseShell function simply stored
away pointers into this static storage. On the next use of something
like ${FOO:O} this storage would get overwritten with fatal
results.
This also allows us to make the shells[] array const bringing us
one step further in making make WARNS=4 ready.
o Constify the array of predefined shells. It turns out that we
need two versions of the structure definition for this: one with
const char pointers, because otherwise gcc won't let us initialize
the fields with constant strings, and one without the const,
because we need to work with the structure.
Note: This patch is really a hack for a coping with slow /bin/sh.
We are importing it to reduce the differences between us and
the FreeBSD version.
Revision Changes Path
1.13 +16 -0 src/usr.bin/make/Makefile
1.2 +2 -1 src/usr.bin/make/Makefile.dist
1.15 +5 -2 src/usr.bin/make/compat.c
1.7 +0 -2 src/usr.bin/make/config.h
1.24 +181 -61 src/usr.bin/make/job.c
1.13 +31 -24 src/usr.bin/make/job.h
1.29 +10 -2 src/usr.bin/make/main.c
http://www.dragonflybsd.org/cvsweb/src/usr.bin/make/Makefile.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/make/Makefile.dist.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/make/compat.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/make/config.h.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/make/job.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/make/job.h.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/make/main.c.diff?r1=1.28&r2=1.29&f=u
More information about the Commits
mailing list