Commit Graph

1216 Commits

Author SHA1 Message Date
christos 627745abcd remove <sys/cdefs.h> for portability reasons 2015-06-21 20:26:02 +00:00
christos 0002ddbc7d make needshell customizable, so that xinstall can use it. 2015-06-19 14:32:04 +00:00
christos 3f6f33cbde create needshell so we don't scan the string multiple times. 2015-06-19 14:25:34 +00:00
christos fc12b1912c use isspace() 2015-06-19 14:25:16 +00:00
mlelstv 75fd2a8412 Adjust metachar handling to previous behaviour:
- space and tab are no shell metachars, remove them from generic
  metachar function
- add space and tab as to-be-quoted characters for :Q modifier
- add = and : as characters that require command handling by the shell
2015-06-19 08:03:35 +00:00
christos 12ca937409 grr too many different compilation options. 2015-06-18 19:49:08 +00:00
christos e02fe630ea this is not buf.c 2015-06-18 15:51:57 +00:00
justin a9e309ea46 Fix non native build on metachar.c 2015-06-18 15:34:44 +00:00
christos 9beb5dadf3 Centralize the "is a meta char" test, instead of using two different arrays. 2015-06-17 17:43:23 +00:00
christos b1e483495a centralize shell metachar handling. 2015-06-17 15:34:55 +00:00
wiz b96dc7bfa6 Drop trailing whitespace. 2015-06-05 07:33:40 +00:00
sjg fab1dc5098 Document .OBJDIR target. 2015-06-05 05:37:42 +00:00
manu 41797faa82 Fix warning about uninitialized variable
This warning gets fatal when including make(1) as a crunchgen(1) binary.
2015-05-25 09:01:06 +00:00
sjg ca0319bf7c When evaluating condtionals from .if we want to require
that the lhs is a variable reference, a number or a quoted string.
This helps avoid subtle bugs caused by typos.

When conditionals are being evaluated during variable expansion
we cannot be as strict becuase lhs will already have been expanded.

We therefor pass a boolean to Cond_EvalExpression to tell it how
lhs should be treated.

Add unit-tests/cond2.mk to test the above

Reviewed by: christos, joerg
2015-05-05 21:51:09 +00:00
joerg 0057d0442d Explain what max is and handle i reaching it again. 2015-04-16 13:31:03 +00:00
joerg e2d874fb89 Don't use memcpy for overlapping ranges. Simplify, memmove is good
enough to skip empty ranges.
2015-04-16 11:39:23 +00:00
sjg 545bddb17b Use separate vars to track cwd and last dir a process read. 2015-04-11 05:24:30 +00:00
sjg c6534f45d3 export-all.mk should be including export.mk
sadly some shells do not grok named signals.
2015-04-10 20:41:59 +00:00
wiz 2690505034 It's 2015. 2015-04-10 08:43:32 +00:00
wiz 302cc6cfe4 Remove trailing whitespace. 2015-04-10 08:43:16 +00:00
sjg baa0bd3c22 Forgot to tweak date 2015-04-09 18:22:08 +00:00
sjg 065f2cad03 jobs mode handles '-' very differently to compat mode, but this is not
reflected in make.1
Also fix handling to match the behavior described in the comment
of JobPrintCommand (only matters if shell sets hasErrCtl).

A better long term solution is needed since the current behavior
is sub-optimal wrt '-' and different from all other makes.

Reviewed by: christos
2015-04-09 18:21:01 +00:00
sjg 73c21af432 Close child's reference to meta file. 2015-04-01 01:03:55 +00:00
sjg f15792411b Move initialization of savederr to the block where it is used
to avoid spurious warning from gcc 5
2015-03-26 22:20:42 +00:00
sjg a75f41b571 Ensure -- filemon is at start of line 2014-11-06 01:36:57 +00:00
sjg 0b32bec31a Use read and fwrite rather than fgets and printf when reading filemon data. 2014-10-20 23:22:57 +00:00
sjg 18f74f9db1 Extract broken tests 2014-10-20 23:21:11 +00:00
snj f0a7346d21 src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
2014-10-18 08:33:23 +00:00
christos d2ae978666 Define some of the missing macros. The only error now is:
213: warning: can't find font `C'

Because the CW macro wants to use a constant width font is "ascii" mode,
and this does not exist with -Tascii. I don't think this should be fixed
here...
2014-09-30 21:33:14 +00:00
dholland 9e4a361214 Comments, and one very minor tidyup. 2014-09-18 08:06:13 +00:00
apb 19f37cd621 Small markup fixes:
* Use \e instead of \\ to represent a backslash;
* Dont' start a line with .SUFFIXES.
2014-09-14 08:47:19 +00:00
dholland 985229f07f bump date; I think I'm done for tonight 2014-09-14 04:32:42 +00:00
dholland cf64c76e74 Add some notes on compatibility with other make dialects.
I was originally intending to preserve some of Jarmo Jaakkola's notes
on POSIX make from the PR 49085 changes... but really there's no point
wandering into details about $? and such when the big picture is
"almost everything in this manual works only in BSD make".

Maybe the exact details can be stuffed into a chapter of the mythical
make reference manual if that ever gets (re)written.
2014-09-14 04:32:07 +00:00
dholland d8e17b53b4 Improve the documentation of rule-local variables. Cherry-picked from
the PR 49085 changes, with some adjustments by me.
2014-09-14 03:50:28 +00:00
dholland 7837a7ce15 Improvements pertaining to shell commands and chdir. Some of this
appeared in the PR 49085 changes, even though it's not actually
relevant there except tangentially. However, I've reworked most of
that for clarity and added some more.
2014-09-14 03:13:49 +00:00
dholland d2a37b0d8b Fix handling of the silly $(@D) $(@F) etc. vars so modifiers on them
work. This is issue #1 in PR 49085 from Jarmo Jaakkola, but I've used
a different and cleaner patch this time.
2014-09-14 02:32:51 +00:00
dholland 58de96de3f Recognize the crazy POSIXisms $(?D) and $(?F); issue 2 in PR 49085
from Jarmo Jaakkola.
2014-09-13 23:21:01 +00:00
dholland d32cd0af74 typo in comment, from the first reverted patch 2014-09-13 23:10:28 +00:00
apb 73b33010e7 Add a test for backslash-newline at the very end of a command script. 2014-09-09 10:22:27 +00:00
apb 14a634bc53 Change @echo to echo in several places in escape.mk,
to make it easier to spot changes in what make sends to the shell.
Adjust escape.out to match.
2014-09-09 10:11:20 +00:00
dholland 012b391598 Restore -r1.234 of make.1, which was an unrelated fix from sjg pertaining
to the docs for the -w option.
2014-09-09 06:41:56 +00:00
dholland 718f11413b Revert the man page as well. (hi joerg)
Revert it to 20140823 (-r1.230), before the controversial commits,
which changed it a good deal.
2014-09-09 06:39:59 +00:00
dholland 3728c0fad2 Restore apb's 20140820 commit (-r1.228 of main.c):
It should not be an error to have VAR != command that prints no output

Joerg reverted a bit too enthusiastically.
2014-09-09 06:18:17 +00:00
joerg d92bea4fa3 Revert all make changes except the unit tests to the state of three
weeks ago. Individual changes can be reapplied after review.
2014-09-07 20:55:34 +00:00
wiz 875700f431 Reduce pirate slang. 2014-09-05 06:57:20 +00:00
christos 1639e1cf8d document commented out .INVISIBLE and .JOIN. 2014-09-04 19:07:47 +00:00
sjg 82b1920e05 Replace use of $() with ${}
$() means something special to the shell, so ${} reduces confusion
and is used almost exclusively in the rest of the makefiles.

Discussed with: christos
2014-08-30 22:21:07 +00:00
sjg 294be283d0 *.rawout are out-of-date if ${TEST_MAKE} is newer. 2014-08-29 20:03:27 +00:00
sjg 75abee676e posix1.mk and suffixes.mk need to cleanup in order to achieve
repeatable results.
posix1.mk's lib.a target still looks dubious.
2014-08-29 15:55:44 +00:00
christos aeacc22675 undo eating the trailing backslash now that the shell has been fixed. 2014-08-29 09:27:43 +00:00