CVS log for src/usr.bin/make/make.h
Up to [cvs.NetBSD.org] / src / usr.bin / make
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Revision 1.347: download - view: text, markup, annotated - select for diffs
Thu Aug 29 20:20:35 2024 UTC (3 months ago) by rillig
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.346: preferred, colored
Changes since revision 1.346: +2 -2
lines
make: reduce line length in error messages
The error messages for deeply nested parse errors were hard to decipher,
due to the large amount of text. Split these messages into individual
lines, just as in the backtrace for .include files and .for loops. This
unified backtrace makes the output more uniform.
Revision 1.346: download - view: text, markup, annotated - select for diffs
Tue Aug 27 04:52:14 2024 UTC (3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.345: preferred, colored
Changes since revision 1.345: +1 -2
lines
make: treat recursive variables non-fatally
A recursive variable is no worse than an unknown modifier, so treat them
in the same way by continuing parsing until the end of the makefile.
Revision 1.345: download - view: text, markup, annotated - select for diffs
Sun Aug 25 20:44:31 2024 UTC (3 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.344: preferred, colored
Changes since revision 1.344: +2 -1
lines
make: add more context to error message about recursive variables
Revision 1.344: download - view: text, markup, annotated - select for diffs
Thu Jul 11 20:09:16 2024 UTC (4 months, 3 weeks ago) by sjg
Branches: MAIN
Diff to: previous 1.343: preferred, colored
Changes since revision 1.343: +6 -1
lines
Compat_RunCommand use tempfile if cmd too big
Extract the logic recently added to Cmd_Exec to handle
long commands via temp file to Cmd_Argv,
so it can also be leveraged by Compat_RunCommand
Reviewed by: christos
Revision 1.343: download - view: text, markup, annotated - select for diffs
Tue Jul 9 19:43:01 2024 UTC (4 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.342: preferred, colored
Changes since revision 1.342: +2 -2
lines
make: error out on parse/evaluation errors in shell commands
The expression ${VAR:X} has an unknown modifier ':X'. Previously, this
expression errored out when the expression was evaluated at parse time,
but not when the expression was evaluated when generating the commands
to bring a target up to date. The errors were previously reported, they
didn't affect the exit status, though.
Now, errors in expressions are handled in the same way, regardless of
the time at which they are evaluated.
Revision 1.342: download - view: text, markup, annotated - select for diffs
Sun Jul 7 09:54:12 2024 UTC (4 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.341: preferred, colored
Changes since revision 1.341: +1 -3
lines
make: move initialization of variable scopes to targ.c
The variable scopes are freed by Targ_End, so initialize them there as
well. Separate printing statistics and freeing memory, which makes
Var_End unnecessary.
Revision 1.341: download - view: text, markup, annotated - select for diffs
Sun Jul 7 07:50:57 2024 UTC (4 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.340: preferred, colored
Changes since revision 1.340: +7 -1
lines
make: only generate code for cleanup functions in CLEANUP mode
Revision 1.340: download - view: text, markup, annotated - select for diffs
Fri Jul 5 05:11:25 2024 UTC (4 months, 4 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.339: preferred, colored
Changes since revision 1.339: +2 -3
lines
make: reduce lint-specific comments about ARGSUSED
Revision 1.339: download - view: text, markup, annotated - select for diffs
Sat Jun 15 20:02:45 2024 UTC (5 months, 2 weeks ago) by rillig
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630,
perseant-exfatfs-base,
perseant-exfatfs
Diff to: previous 1.338: preferred, colored
Changes since revision 1.338: +2 -3
lines
make: clean up collection of context information for error messages
Revision 1.338: download - view: text, markup, annotated - select for diffs
Sun Jun 2 15:31:26 2024 UTC (6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.337: preferred, colored
Changes since revision 1.337: +6 -6
lines
make: sync VarEvalMode constant names with their debug log names
Revision 1.337: download - view: text, markup, annotated - select for diffs
Sat Jun 1 06:26:36 2024 UTC (6 months ago) by sjg
Branches: MAIN
Diff to: previous 1.336: preferred, colored
Changes since revision 1.336: +3 -1
lines
make: add .export-all
An explicit syntax for exporting all global variables is much safer
than allowing .export with no argument to do the same.
Add .export-all and have .export with no argument throw a warning saying
to use .export-all
Reviewed by: rillig
Revision 1.336: download - view: text, markup, annotated - select for diffs
Sat Jun 1 05:08:48 2024 UTC (6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.335: preferred, colored
Changes since revision 1.335: +1 -13
lines
make: remove unused VARE_EVAL_KEEP_DOLLAR
Revision 1.335: download - view: text, markup, annotated - select for diffs
Sat May 25 21:07:48 2024 UTC (6 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.334: preferred, colored
Changes since revision 1.334: +10 -1
lines
make: fix memory leak for command strings
Revision 1.334: download - view: text, markup, annotated - select for diffs
Sat May 25 00:00:25 2024 UTC (6 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.333: preferred, colored
Changes since revision 1.333: +4 -1
lines
make: fix a few more memory leaks
Revision 1.333: download - view: text, markup, annotated - select for diffs
Tue May 7 18:26:22 2024 UTC (6 months, 3 weeks ago) by sjg
Branches: MAIN
Diff to: previous 1.332: preferred, colored
Changes since revision 1.332: +3 -2
lines
make: all command line overrides go in .MAKEOVERRIDES
Not all variables that start with '.' are internals,
and unless they are explicitly flagged as internal should go
into .MAKEOVERRIDES
Update varname-dot-makeoverrides to check this.
Also avoid using SCOPE_CMDLINE when ReadOnly will do.
Revision 1.332: download - view: text, markup, annotated - select for diffs
Sat Apr 27 20:41:32 2024 UTC (7 months ago) by rillig
Branches: MAIN
Diff to: previous 1.331: preferred, colored
Changes since revision 1.331: +7 -1
lines
make: clean up, test .NOPATH
Trim down the comments in the archive module, as they mainly repeated
the code. Trim down the binary code size in the archive module, as it
is rarely used.
In Var_Parse, delay two variable assignments until they are actually
needed.
Revision 1.331: download - view: text, markup, annotated - select for diffs
Tue Apr 23 22:51:28 2024 UTC (7 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.330: preferred, colored
Changes since revision 1.330: +6 -6
lines
make: clean up comments, code and tests
Revision 1.330: download - view: text, markup, annotated - select for diffs
Sat Apr 20 10:18:55 2024 UTC (7 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.329: preferred, colored
Changes since revision 1.329: +5 -1
lines
make: provide more context information for parse/evaluate errors
Revision 1.329: download - view: text, markup, annotated - select for diffs
Sun Mar 10 02:53:37 2024 UTC (8 months, 3 weeks ago) by sjg
Branches: MAIN
Diff to: previous 1.328: preferred, colored
Changes since revision 1.328: +2 -1
lines
make: record exit status in GNode
SetErrorVars can now set .ERROR_EXIT which allows
a .ERROR target to ignore the case of .ERROR_EXIT == 6
which means failure happened elsewhere.
Reviewed by:
Revision 1.328: download - view: text, markup, annotated - select for diffs
Fri Mar 1 16:41:42 2024 UTC (9 months ago) by sjg
Branches: MAIN
Diff to: previous 1.327: preferred, colored
Changes since revision 1.327: +2 -2
lines
make: export target scope values
Pass target scope to Var_ReexportVars so that a target process
will see the correct values in its env.
We must then mark any Global scope variable as unexported
so targets without local value get the Global one.
Revision 1.327: download - view: text, markup, annotated - select for diffs
Sun Dec 17 09:02:26 2023 UTC (11 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.326: preferred, colored
Changes since revision 1.326: +2 -2
lines
make: clean up unused return value of str2Lst_Append
No functional change.
Revision 1.326: download - view: text, markup, annotated - select for diffs
Thu Nov 2 04:50:44 2023 UTC (13 months ago) by rillig
Branches: MAIN
Diff to: previous 1.325: preferred, colored
Changes since revision 1.325: +1 -2
lines
make: inline a single-line cross-file function
No functional change.
Revision 1.325: download - view: text, markup, annotated - select for diffs
Sun Sep 10 11:52:29 2023 UTC (14 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.324: preferred, colored
Changes since revision 1.324: +3 -3
lines
make: remove redundant 'extern' from function declaration
Revision 1.324: download - view: text, markup, annotated - select for diffs
Sat Jun 24 07:02:24 2023 UTC (17 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.323: preferred, colored
Changes since revision 1.323: +2 -2
lines
make: remove redundant 'extern' in function declaration
No binary change.
Revision 1.323: download - view: text, markup, annotated - select for diffs
Tue Jun 20 09:25:33 2023 UTC (17 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.322: preferred, colored
Changes since revision 1.322: +10 -2
lines
make: allow targets to be used as multiple-inclusion guards
This style is used by FreeBSD, among others.
Revision 1.322: download - view: text, markup, annotated - select for diffs
Mon Jun 19 12:53:57 2023 UTC (17 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.321: preferred, colored
Changes since revision 1.321: +4 -1
lines
make: if a makefile is protected by a guard, only include it once
"looks reasonable" sjg@
Revision 1.321: download - view: text, markup, annotated - select for diffs
Fri Jun 16 07:12:46 2023 UTC (17 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.320: preferred, colored
Changes since revision 1.320: +3 -3
lines
make: remove parameter names from function declarations
No binary change.
Revision 1.320: download - view: text, markup, annotated - select for diffs
Thu Jun 1 07:44:10 2023 UTC (18 months ago) by rillig
Branches: MAIN
Diff to: previous 1.319: preferred, colored
Changes since revision 1.319: +2 -2
lines
make: shorten function names, clean up comments
No functional change.
Revision 1.319: download - view: text, markup, annotated - select for diffs
Tue Mar 28 14:39:31 2023 UTC (20 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.318: preferred, colored
Changes since revision 1.318: +4 -1
lines
make: declare all common symbols in headers, unexport others
No functional change.
Revision 1.318: download - view: text, markup, annotated - select for diffs
Thu Mar 9 07:06:43 2023 UTC (20 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.317: preferred, colored
Changes since revision 1.317: +3 -2
lines
make: document how read-only variables can be made read-write
Revision 1.317: download - view: text, markup, annotated - select for diffs
Sat Feb 18 11:16:09 2023 UTC (21 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.316: preferred, colored
Changes since revision 1.316: +9 -1
lines
make: fix parsing of unevaluated subexpressions with unbalanced '{}'
Since var.c 1.323 from 2020-07-26, modifiers containing unbalanced
braces or parentheses were parsed differently, depending on whether they
were relevant or not.
For example, the expression '${VAR:...}' is enclosed with braces. When
this expression has a modifier ':S,},}},g' that would double each '}' in
that expression, the parser got confused:
If the expression was relevant, the modifier was parsed as usual, taking
into account that the 3 '}' in the modifier are ordinary characters.
If the expression was irrelevant, the parser only counted the '{' and
the '}', without taking into account that a '}' might be escaped by a
'\' or be an ordinary character. Parsing therefore stopped at the first
'}', assuming it would finish the expression '${VAR:S,}'.
This parsing mode of only counting balanced '{' and '}' makes sense for
the modifier ':@var@...@', which expands each word of the expression
using the template from the '...'. These templates tend to be simple
enough that counting the '{' and '}' suffices.
Revision 1.316: download - view: text, markup, annotated - select for diffs
Wed Feb 15 06:52:58 2023 UTC (21 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.315: preferred, colored
Changes since revision 1.315: +1 -8
lines
make: inline macros for variable names
The variable name '.MAKEOVERRIDES' was already used in the non-macro
form.
No binary change.
Revision 1.315: download - view: text, markup, annotated - select for diffs
Wed Feb 15 06:31:51 2023 UTC (21 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.314: preferred, colored
Changes since revision 1.314: +1 -2
lines
make: inline macro for variable name ".MAKE.EXPORTED"
The variable name is distinctive enough to be searched directly in the
code instead of having a named constant for it.
No binary change.
Revision 1.314: download - view: text, markup, annotated - select for diffs
Tue Feb 14 21:56:47 2023 UTC (21 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.313: preferred, colored
Changes since revision 1.313: +1 -25
lines
make: remove redundant type VarParseResult
No functional change.
Revision 1.313: download - view: text, markup, annotated - select for diffs
Tue Feb 14 21:38:31 2023 UTC (21 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.312: preferred, colored
Changes since revision 1.312: +2 -2
lines
make: clean up calls to Var_Subst
None of the calls to Var_Subst used the return value, and the return
value was always VPR_OK.
No functional change.
Revision 1.312: download - view: text, markup, annotated - select for diffs
Tue Feb 14 21:08:00 2023 UTC (21 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.311: preferred, colored
Changes since revision 1.311: +2 -2
lines
make: reduce complexity of evaluating expressions
No functional change.
Revision 1.311: download - view: text, markup, annotated - select for diffs
Thu Jan 26 20:48:17 2023 UTC (22 months, 1 week ago) by sjg
Branches: MAIN
Diff to: previous 1.310: preferred, colored
Changes since revision 1.310: +2 -1
lines
make: some variables should be read-only
Make variables like .newline and .MAKE.{GID,PID,PPID,UID} read-only.
Reviewed by: rillig
Revision 1.310: download - view: text, markup, annotated - select for diffs
Mon Jan 23 23:01:52 2023 UTC (22 months, 1 week ago) by sjg
Branches: MAIN
Diff to: previous 1.309: preferred, colored
Changes since revision 1.309: +2 -1
lines
make: .[NO]READONLY for control of read-only variables
Reviewed by: rillig
Revision 1.309: download - view: text, markup, annotated - select for diffs
Thu Jan 19 21:33:06 2023 UTC (22 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.308: preferred, colored
Changes since revision 1.308: +1 -2
lines
make: inline macro for variable name
This fixes the inconsistency of using the macro name in one place and
its value in another place (since 2010).
No binary change.
Revision 1.308: download - view: text, markup, annotated - select for diffs
Mon Oct 10 21:17:25 2022 UTC (2 years, 1 month ago) by rillig
Branches: MAIN
CVS tags: netbsd-10-base,
netbsd-10-0-RELEASE,
netbsd-10-0-RC6,
netbsd-10-0-RC5,
netbsd-10-0-RC4,
netbsd-10-0-RC3,
netbsd-10-0-RC2,
netbsd-10-0-RC1,
netbsd-10
Diff to: previous 1.307: preferred, colored
Changes since revision 1.307: +2 -2
lines
make: change return type of unlink_file back to int
As unlink_file is a wrapper around unlink, use the same encoding for the
possible return values as in the wrapped function. This consistency is
more important than expressing all possible return values in the return
type 'bool'.
https://mail-index.netbsd.org/tech-toolchain/2022/10/06/msg004155.html
No functional change.
Revision 1.307: download - view: text, markup, annotated - select for diffs
Sat Sep 24 16:13:48 2022 UTC (2 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.306: preferred, colored
Changes since revision 1.306: +4 -4
lines
make: clean up tracking of depth of nested .if directives
The variable cond_min_depth was redundant. It was only accessed while
parsing the makefiles. Merging it into struct IncludedFile removes the
possible confusion between cond_min_depth and including_cond_min_depth.
No functional change.
Revision 1.306: download - view: text, markup, annotated - select for diffs
Sat Sep 24 10:26:31 2022 UTC (2 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.305: preferred, colored
Changes since revision 1.305: +4 -4
lines
make: fix variable and function names relating to .if nesting
The previous names were confusing since they suggested that cond_depth
instead of cond_min_depth would be saved and restored.
No functional change.
Revision 1.305: download - view: text, markup, annotated - select for diffs
Fri Sep 23 22:58:15 2022 UTC (2 years, 2 months ago) by sjg
Branches: MAIN
Diff to: previous 1.304: preferred, colored
Changes since revision 1.304: +2 -2
lines
Cond_reset_depth just use cond_min_depth
To avoid errors from unclosed conditionals on .break
it is sufficient to just set cond_depth = cond_min_depth.
Patch from rillig
Revision 1.304: download - view: text, markup, annotated - select for diffs
Fri Sep 2 16:24:31 2022 UTC (2 years, 3 months ago) by sjg
Branches: MAIN
Diff to: previous 1.303: preferred, colored
Changes since revision 1.303: +3 -1
lines
make: add .break to terminate .for loop early
When .break is encountered within a .for loop
it causes immediate termination.
Outside of a .for loop .break causes a parse error.
Reviewed by: christos
Revision 1.303: download - view: text, markup, annotated - select for diffs
Sun Jun 12 13:37:32 2022 UTC (2 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.302: preferred, colored
Changes since revision 1.302: +2 -2
lines
make: reorganize Parse_Error
Determining the location where the error occurred is now done by
ParseVErrorInternal. This frees the remaining code from keeping the
filename and the line number together. It also makes Parse_Error short
enough that it might be worth providing a separate function for each of
the 3 log levels.
No functional change.
Revision 1.302: download - view: text, markup, annotated - select for diffs
Sat May 7 17:49:47 2022 UTC (2 years, 6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.301: preferred, colored
Changes since revision 1.301: +6 -1
lines
make: allow to randomize build order of targets
In complex dependency structures, when a build fails, a probable cause
is a missing dependency declaration between some files. In compat mode,
the build order is deterministic, in jobs mode, it is somewhat
deterministic. To explore more edge cases, add the line ".MAKE.MODE +=
randomize-targets" somewhere in the makefile.
Fixes PR bin/45226 by riastradh. Reviewed by christos.
Revision 1.301: download - view: text, markup, annotated - select for diffs
Sat May 7 08:01:20 2022 UTC (2 years, 6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.300: preferred, colored
Changes since revision 1.300: +2 -2
lines
make: rename Compat_Run to Compat_MakeAll
No functional change.
Revision 1.300: download - view: text, markup, annotated - select for diffs
Mon Apr 18 15:06:27 2022 UTC (2 years, 7 months ago) by rillig
Branches: MAIN
Diff to: previous 1.299: preferred, colored
Changes since revision 1.299: +12 -1
lines
make: only switch to POSIX mode if '.POSIX:' is the first line
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
says that in order to make a makefile POSIX-conforming, its first
non-comment line must be the special dependency line '.POSIX:' without
any source dependencies.
Previously, make switched to POSIX mode even if such a line occurred
anywhere else, which was allowed by POSIX but was deep in the
"unspecified behavior" area. For NetBSD make, there is no big
difference since it doesn't ship any <posix.mk> file, this change mainly
affects the bmake distribution.
Previously, makefiles that contain '.POSIX:' somewhere in the middle
could fail due to <posix.mk> resetting .SUFFIXES, among other things.
Suggested by Simon J. Gerraty, who also reviewed an earlier version of
this change.
Revision 1.299: download - view: text, markup, annotated - select for diffs
Sat Mar 26 14:02:40 2022 UTC (2 years, 8 months ago) by rillig
Branches: MAIN
Diff to: previous 1.298: preferred, colored
Changes since revision 1.298: +2 -2
lines
make: prefer 'long long' over 'long' on 32-bit C99 platforms
When sorting the words of an expression numerically using the modifier
':On' (added on 2021-07-30), use 64-bit numbers even on 32-bit
platforms. A typical use case is comparing file sizes.
When tracing the execution of jobs, fix an integer overflow after 2038.
32-bit platforms that use a pre-C99 compiler still have this problem.
No change to the test suite since most tests simply skip any potential
differences between 32-bit platforms and 64-bit platforms (see
varmod-order-numeric.mk) or already account for both variants (see
varmod-localtime.mk).
Revision 1.298: download - view: text, markup, annotated - select for diffs
Sat Feb 5 00:26:21 2022 UTC (2 years, 9 months ago) by rillig
Branches: MAIN
Diff to: previous 1.297: preferred, colored
Changes since revision 1.297: +6 -2
lines
make: improve C90 support
Do not use inline functions, remove trailing comma in enum declaration,
do not use 'long long' for printing a timestamp. This re-introduces the
Year 2038 Problem for pre-C99 compilers when printing the trace log, but
that is a seldom used feature.
Revision 1.297: download - view: text, markup, annotated - select for diffs
Fri Feb 4 23:22:19 2022 UTC (2 years, 9 months ago) by rillig
Branches: MAIN
Diff to: previous 1.296: preferred, colored
Changes since revision 1.296: +6 -5
lines
make: use unsigned int for line numbers everywhere
Previously, some line numbers were stored as signed int while others
were stored as size_t. Since line numbers are never negative, use an
unsigned type. Since the maximum file size for makefiles is 1 GB (see
loadfile), unsigned int is large enough even on 64-bit platforms.
Using a single data types reduces the number of type conversions. Using
unsigned int improves compatibility with C90 (printf %u instead of %zu),
which is needed by bmake, which is derived from usr.bin/make.
No functional change.
Revision 1.296: download - view: text, markup, annotated - select for diffs
Mon Jan 31 20:49:27 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.295: preferred, colored
Changes since revision 1.295: +3 -3
lines
make: make DEBUG0 simpler
All arguments to DEBUG0 are string literals, and none of them contains a
'%', which makes them safe to pass to printf directly. Any accidental
'%' would be caught by the compiler.
No functional change.
Revision 1.295: download - view: text, markup, annotated - select for diffs
Sun Jan 30 13:21:08 2022 UTC (2 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.294: preferred, colored
Changes since revision 1.294: +2 -2
lines
Make the GNode lineno unsigned to fix lint warning in var.c calling
PrintLocation()
Revision 1.294: download - view: text, markup, annotated - select for diffs
Sat Jan 29 10:19:49 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.293: preferred, colored
Changes since revision 1.293: +2 -1
lines
make: for recursive variables in commands, print location
Print the approximate location based on the last command that has been
defined for the target. It would be possible to get more detailed
location information by counting the number of commands of the target,
but that would get messy due to .USEBEFORE, .USE and .DEFAULT, and
still, this is an edge case, so don't waste too much code for it now.
Having this hint about the location is more helpful than just a plain
"Variable X is recursive" without any further details.
Revision 1.293: download - view: text, markup, annotated - select for diffs
Sat Jan 29 09:38:26 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.292: preferred, colored
Changes since revision 1.292: +2 -1
lines
make: print stack trace on fatal errors
The only fatal error that occurs while the makefiles are read in is the
one about recursive variables, which didn't give any hint about the
location before.
If a recursive variable is detected while evaluating the commands of a
target to be made, there is no location information, as before.
Revision 1.292: download - view: text, markup, annotated - select for diffs
Sat Jan 29 01:07:31 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.291: preferred, colored
Changes since revision 1.291: +1 -2
lines
make: inline functions that have a single call site
No functional change.
Revision 1.291: download - view: text, markup, annotated - select for diffs
Thu Jan 27 06:02:59 2022 UTC (2 years, 10 months ago) by sjg
Branches: MAIN
Diff to: previous 1.290: preferred, colored
Changes since revision 1.290: +2 -1
lines
Allow local variable assignments in dependency lines
The variable is set in the context of the target.
This syntax has been supported by gmake for ~ever.
If necessary a makefile can set .MAKE.TARGET_LOCAL_VARIABLES=false
to disable this.
Expose GetBooleanExpr so parse.c can use it.
Revision 1.290: download - view: text, markup, annotated - select for diffs
Sun Jan 23 22:12:16 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.289: preferred, colored
Changes since revision 1.289: +255 -3
lines
make: merge nonints.h into make.h
No functional change.
Revision 1.289: download - view: text, markup, annotated - select for diffs
Sat Jan 15 19:13:08 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.288: preferred, colored
Changes since revision 1.288: +3 -1
lines
make: use islower for parsing directives
None of the directives has an uppercase letter, so there is no need to
test for it.
No functional change.
Revision 1.288: download - view: text, markup, annotated - select for diffs
Sun Jan 9 18:59:27 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.287: preferred, colored
Changes since revision 1.287: +12 -1
lines
make: extract low-level character operations into utility function
Suggested by nia.
https://mail-index.netbsd.org/source-changes-d/2022/01/09/msg013564.html
No functional change.
Revision 1.287: download - view: text, markup, annotated - select for diffs
Fri Jan 7 20:50:35 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.286: preferred, colored
Changes since revision 1.286: +2 -1
lines
make: merge duplicate variables for the main target
No functional change.
Revision 1.286: download - view: text, markup, annotated - select for diffs
Fri Jan 7 19:24:27 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.285: preferred, colored
Changes since revision 1.285: +9 -1
lines
make: rename and inline Targ_Precious
No functional change.
Revision 1.285: download - view: text, markup, annotated - select for diffs
Fri Jan 7 13:56:09 2022 UTC (2 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.284: preferred, colored
Changes since revision 1.284: +2 -2
lines
make: rename IFile and its fields to match their actual content
For lines that use backslash continuation, the human-readable line
number does not equal the number of raw lines that have been read from
the file.
The big comment in PrintStackTrace has become outdated, it still
referred to first_lineno. Due to the bugs documented in
opt-debug-parse.mk, that function needs to be redone completely.
No functional change.
Revision 1.284: download - view: text, markup, annotated - select for diffs
Wed Dec 29 05:05:21 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.283: preferred, colored
Changes since revision 1.283: +3 -3
lines
make: merge duplicate types CondEvalResult and CondResult
No binary change.
Revision 1.283: download - view: text, markup, annotated - select for diffs
Wed Dec 29 05:01:35 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.282: preferred, colored
Changes since revision 1.282: +4 -7
lines
make: merge duplicate enum constants for CondEvalResult and CondResult
No binary change.
Revision 1.282: download - view: text, markup, annotated - select for diffs
Wed Dec 29 04:41:38 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.281: preferred, colored
Changes since revision 1.281: +6 -3
lines
make: merge types CondResult and CondEvalResult
No functional change.
Revision 1.281: download - view: text, markup, annotated - select for diffs
Tue Dec 28 14:22:51 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.280: preferred, colored
Changes since revision 1.280: +3 -4
lines
make: do not treat .USEBEFORE as candidate for the main target
A .USE target is not a candidate, so .USEBEFORE shouldn't either.
Since make.h 1.36 from 2001-07-03. In that commit, OP_USEBEFORE should
have been added to OP_NOTARGET.
Revision 1.280: download - view: text, markup, annotated - select for diffs
Tue Dec 28 14:06:42 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.279: preferred, colored
Changes since revision 1.279: +9 -3
lines
make: extract OP_NOTARGET into separate function
No binary change, except for line numbers in assertions.
Revision 1.279: download - view: text, markup, annotated - select for diffs
Mon Dec 27 18:26:22 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.278: preferred, colored
Changes since revision 1.278: +4 -4
lines
make: remove unnecessary words from command line options
Several years ago, the command line options were individual global
variables. The global variable could therefore not be named 'silent'
since that would have conflicted with local variables of the same name.
After moving the global variable to the namespace 'struct CmdOpts',
there is no conflict anymore.
There doesn't seem to be any risk of naming collisions for the names
'touch' and 'query'.
No functional change.
Revision 1.278: download - view: text, markup, annotated - select for diffs
Wed Dec 15 13:03:33 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.277: preferred, colored
Changes since revision 1.277: +5 -5
lines
make: amend leftover cleanups from the previous commits
No functional change.
Revision 1.277: download - view: text, markup, annotated - select for diffs
Wed Dec 15 12:58:01 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.276: preferred, colored
Changes since revision 1.276: +156 -83
lines
make: format comments according to /usr/share/misc/style
Assisted by indent(1), with manual corrections due to its many remaining
bugs.
No functional change.
Revision 1.276: download - view: text, markup, annotated - select for diffs
Wed Dec 15 12:08:25 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.275: preferred, colored
Changes since revision 1.275: +2 -2
lines
make: remove redundant comments for multiple-inclusion guards
Revision 1.275: download - view: text, markup, annotated - select for diffs
Wed Dec 15 11:58:40 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.274: preferred, colored
Changes since revision 1.274: +21 -21
lines
make: remove space after ':' in bit-field declarations
As seen in /usr/share/misc/style.
Revision 1.274: download - view: text, markup, annotated - select for diffs
Wed Dec 15 09:53:41 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.273: preferred, colored
Changes since revision 1.273: +27 -27
lines
make: mark several functions whose result must be used
Suggested by sjg, to catch more bugs like the memory leak in cond.c
1.303 from 2021-12-13.
No binary change.
Revision 1.273: download - view: text, markup, annotated - select for diffs
Wed Dec 15 09:29:55 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.272: preferred, colored
Changes since revision 1.272: +7 -1
lines
make: prevent memory leaks from buffers
The warning about unused function results would have prevented the
memory leak that was fixed in cond.c 1.303 from 2021-12-13.
Revision 1.272: download - view: text, markup, annotated - select for diffs
Mon Dec 13 22:26:21 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.271: preferred, colored
Changes since revision 1.271: +23 -25
lines
make: convert debugging flags from enum to bit-field
This gets rid of the magic numbers, making it possible to add another
debug flag without renumbering the others.
No functional change.
Revision 1.271: download - view: text, markup, annotated - select for diffs
Mon Dec 13 05:25:04 2021 UTC (2 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.270: preferred, colored
Changes since revision 1.270: +2 -3
lines
make: fix memory leak for filenames in .for loops (since 2013-06-18)
Previously, each time a .for directive pushed its buffer on the input
file stack, the current filename was duplicated. This was a waste of
memory.
The name of a file is typically only used while it is read in. There is
one situation when the filename is needed for longer, which is when a
target is defined.
Since .for loops are implemented as a special form of included files,
each .for loop duplicated the current filename as well.
$ cat << EOF > for.mk
.for i in 1 2 3 4 5 6 7 8 9 0
.for i in 1 2 3 4 5 6 7 8 9 0
.for i in 1 2 3 4 5 6 7 8 9 0
.for i in 1 2 3 4 5 6 7 8 9 0
.for i in 1 2 3 4 5 6 7 8 9 0
.for i in 1 2 3 4 5 6 7 8 9 0
.for i in 1 2 3 4 5 6 7 8 9 0
.endfor
.endfor
.endfor
.endfor
.endfor
.endfor
.endfor
all:
@ps -o rsz -p ${.MAKE.PID}
EOF
$ make-2021.12.13.03.55.16 -r -f for.mk
RSZ
10720
$ ./make -r -f for.mk
RSZ
1716
The difference is 8 MB, which amounts to 1 million .for loops.
Revision 1.270: download - view: text, markup, annotated - select for diffs
Sun Nov 28 23:12:51 2021 UTC (3 years ago) by rillig
Branches: MAIN
Diff to: previous 1.269: preferred, colored
Changes since revision 1.269: +2 -2
lines
make: fix a few lint warnings about type mismatch in enum comparisons
These warnings were triggered with the lint flag '-e', which enables
additional checks on enums. This check would have detected the type
mismatch from the previous commit.
The check has a few strange warnings though, complaining about
initialization of 'unsigned long' with 'unsigned long', so don't enable
it for the official builds.
No functional change.
Revision 1.269: download - view: text, markup, annotated - select for diffs
Sun Nov 28 20:11:45 2021 UTC (3 years ago) by rillig
Branches: MAIN
Diff to: previous 1.268: preferred, colored
Changes since revision 1.268: +2 -2
lines
make: fix leftover typo from previous refactoring
Revision 1.268: download - view: text, markup, annotated - select for diffs
Sun Nov 28 19:51:06 2021 UTC (3 years ago) by rillig
Branches: MAIN
Diff to: previous 1.267: preferred, colored
Changes since revision 1.267: +12 -13
lines
make: convert GNodeFlags from enum into bit-fields
Now that Enum_ToString is implemented for each type separately, it's
easy to convert them to bit-fields. This gets rid of the magic numbers
12 for CYCLE and 13 for DONECYCLE that left a suspicious gap in the
numbers. This gap was not needed since the code didn't make use of the
relative ordering of the enum constants.
The effects of this conversion are fewer capital letters in the code,
smaller scope for the GNode flags, and clearer code especially when
setting a flag back to false.
One strange thing is that GCC 10.3.0 doesn't optimize GNodeFlags_IsNone
to an single bitmasking instruction, at least on x86_64. Instead it
generates a testb instruction for each of the flags, even loading bit 8
separately from the others. Clang 12.0.1 knows this optimization
though and generates the obvious sequence of movzwl, testl, jz.
No functional change.
Revision 1.267: download - view: text, markup, annotated - select for diffs
Sun Nov 28 18:58:58 2021 UTC (3 years ago) by rillig
Branches: MAIN
Diff to: previous 1.266: preferred, colored
Changes since revision 1.266: +1 -2
lines
make: replace bloated bit-set-to-string code with simple code
It was a nice idea to implement a bit-set using an enum type and have a
generic ToString function for them. In the end, the implementation
involved really heavy preprocessor magic and was probably difficult to
understand. Replace all the code with a few bits of straight-forward
preprocessor magic that can be readily understood by just looking 5
lines around, instead of digging through 130 lines of lengthy macro
definitions.
Curiously, this reduces the binary size even though the 3 ToString
functions now have a few lines of duplicate code and there are more
explicit function calls.
The ToString functions are only seldom used, so the additional memory
allocation is acceptable.
No functional change.
Revision 1.266: download - view: text, markup, annotated - select for diffs
Sat Nov 27 22:04:02 2021 UTC (3 years ago) by rillig
Branches: MAIN
Diff to: previous 1.265: preferred, colored
Changes since revision 1.265: +2 -2
lines
make: remove CONSTCOND comments, lint no longer needs them
Revision 1.265: download - view: text, markup, annotated - select for diffs
Sun Sep 12 09:51:14 2021 UTC (3 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.264: preferred, colored
Changes since revision 1.264: +16 -9
lines
make: error out if a pre-C99 platform defines bool in some cases
On NetBSD/amd64 9.99.88, when compiling make in C90 mode, make.h defined
its own boolean type as an alias for unsigned int. Not plain int since
that would make the value of bit-fields -1 instead of 1.
This worked fine for all files except main.c, which includes
<sys/sysctl.h>, which in turn includes <stdbool.h> unconditionally, even
in C90 mode. This meant that in main.c, sizeof(bool) was 1, while in
all other files it was 4.
This in turn led to a segmentation fault when ParseDependencySourceMain
tried to access opts.create. Since parse.c assumed sizeof(bool) == 4,
it computed an offset outside of struct CmdOpts, which was defined in
main.c with sizeof(bool) == 1.
Rather than risking these segmentation faults, prevent building make on
platforms like these and suggest a proper workaround.
Revision 1.264: download - view: text, markup, annotated - select for diffs
Sat Jul 31 09:30:17 2021 UTC (3 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.263: preferred, colored
Changes since revision 1.263: +15 -11
lines
make: fix lint warnings
The string functions from str.h are declared as 'static __unused' when
compiled with GCC, but lint explicitly undefines __GCC__ during
preprocessing. Therefore, make those functions inline, to prevent
warnings that they are unused.
The macro UNCONST is used in a few places, and (again) since lint
undefines __GCC__, that macro expanded to a simple type cast, which lint
warned about. To prevent this warning, implement UNCONST as a function
that works everywhere and hides the type cast.
In filemon_open, the code for closing F->in was obviously unreachable.
No functional change.
Revision 1.263: download - view: text, markup, annotated - select for diffs
Mon Jun 21 10:33:11 2021 UTC (3 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.262: preferred, colored
Changes since revision 1.262: +3 -1
lines
make: document where to find tests for the dependency lines
Revision 1.102.6.1: download - view: text, markup, annotated - select for diffs
Fri May 7 17:40:31 2021 UTC (3 years, 6 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE
Diff to: previous 1.102: preferred, colored; next MAIN 1.103: preferred, colored
Changes since revision 1.102: +2 -2
lines
Pull up following revision(s) (requested by mrg in ticket #1678):
bin/pax/options.c: revision 1.119
usr.bin/config/scan.l: revision 1.32
usr.bin/make/main.c: revision 1.274
bin/pax/extern.h: revision 1.60
usr.bin/config/defs.h: revision 1.106
usr.bin/make/make.h: revision 1.105
sbin/newfs_udf/udf_create.c: revision 1.27 (patch)
sbin/newfs_udf/newfs_udf.h: revision 1.7 (patch)
usr.bin/config/main.c: revision 1.100
usr.sbin/installboot/Makefile: revisions 1.53,1.54 (patch)
usr.sbin/installboot/installboot.h: revision 1.41 (patch)
usr.sbin/installboot/machines.c: revisisons 1.41,1.42 (patch)
Avoid depending on common symbols.
Revision 1.104.6.1: download - view: text, markup, annotated - select for diffs
Fri Apr 30 14:07:02 2021 UTC (3 years, 7 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE,
netbsd-9-3-RELEASE,
netbsd-9-2-RELEASE
Diff to: previous 1.104: preferred, colored; next MAIN 1.105: preferred, colored
Changes since revision 1.104: +2 -2
lines
Pull up following revision(s) (requested by mrg in ticket #1263):
bin/pax/options.c: revision 1.119
usr.bin/config/scan.l: revision 1.32
usr.bin/make/main.c: revision 1.274
bin/pax/extern.h: revision 1.60
usr.bin/config/defs.h: revision 1.106
usr.bin/make/make.h: revision 1.105
sbin/newfs_udf/udf_create.c: revision 1.27 (patch)
sbin/newfs_udf/newfs_udf.h: revision 1.7 (patch)
usr.bin/config/main.c: revision 1.100
Avoid depending on common symbols.
Revision 1.262: download - view: text, markup, annotated - select for diffs
Wed Apr 14 17:39:11 2021 UTC (3 years, 7 months ago) by rillig
Branches: MAIN
CVS tags: cjep_sun2x-base1,
cjep_sun2x-base,
cjep_sun2x,
cjep_staticlib_x-base1,
cjep_staticlib_x-base,
cjep_staticlib_x
Diff to: previous 1.261: preferred, colored
Changes since revision 1.261: +2 -1
lines
make: let the compiler decide whether to inline string functions
On x86_64, this reduces the binary size by 2 kB.
Revision 1.261: download - view: text, markup, annotated - select for diffs
Sun Apr 11 12:06:53 2021 UTC (3 years, 7 months ago) by rillig
Branches: MAIN
Diff to: previous 1.260: preferred, colored
Changes since revision 1.260: +3 -2
lines
make: add types Substring and LazyBuf
These will be used for making the string handling more efficient,
avoiding allocations, especially when evaluating variable expressions.
Since the string handling has grown quite a bit in the last months,
extract it into its own header file.
No functional change.
Revision 1.260: download - view: text, markup, annotated - select for diffs
Sun Apr 4 10:05:08 2021 UTC (3 years, 8 months ago) by rillig
Branches: MAIN
Diff to: previous 1.259: preferred, colored
Changes since revision 1.259: +2 -2
lines
make: rename a few functions to be more descriptive
No functional change.
Revision 1.259: download - view: text, markup, annotated - select for diffs
Sat Apr 3 15:22:23 2021 UTC (3 years, 8 months ago) by rillig
Branches: MAIN
Diff to: previous 1.258: preferred, colored
Changes since revision 1.258: +2 -2
lines
make: revert accidental change from the previous commit
The definition of MAKE_GNUC_PREREQ was not supposed to be changed. This
change only slipped accidentally, the test for __STDC_VERSION__ was only
supposed to be for UNCONST.
Revision 1.258: download - view: text, markup, annotated - select for diffs
Sat Apr 3 14:39:02 2021 UTC (3 years, 8 months ago) by rillig
Branches: MAIN
Diff to: previous 1.257: preferred, colored
Changes since revision 1.257: +3 -3
lines
make: backport to C90
In the past few months I had accidentally used C99 features in the make
code. According to tools/README, tools that are used in the build
system should restrict themselves to C90.
This allows make to build with GCC's options "-pedantic
-Wno-system-headers -Dinline= -Wno-error=cast-qual".
I didn't notice anyone actively complaining though, I just wanted to see
how much work this backporting would be. The identifier __func__ is
still used, as in other tools.
No functional change.
Revision 1.257: download - view: text, markup, annotated - select for diffs
Sat Apr 3 11:08:40 2021 UTC (3 years, 8 months ago) by rillig
Branches: MAIN
Diff to: previous 1.256: preferred, colored
Changes since revision 1.256: +46 -73
lines
make: use C99 bool type instead of defining its own
No functional change.
Revision 1.256: download - view: text, markup, annotated - select for diffs
Fri Feb 5 19:19:17 2021 UTC (3 years, 9 months ago) by sjg
Branches: MAIN
Diff to: previous 1.255: preferred, colored
Changes since revision 1.255: +2 -2
lines
Avoid strdup in mkTempFile
Require caller to pass a buffer and size if they
want the tempfile not unlinked.
Add Job_TempFile to handle blocking signals around
call to mkTempFile, so that meta_open_filemon can use it
in jobs mode.
Revision 1.255: download - view: text, markup, annotated - select for diffs
Fri Feb 5 05:42:39 2021 UTC (3 years, 9 months ago) by rillig
Branches: MAIN
Diff to: previous 1.254: preferred, colored
Changes since revision 1.254: +2 -2
lines
make: improve documentation about variable scopes
In an experiment, I tried to separate the concepts of a GNode and a
variable scope. The global variables SCOPE_GLOBAL, SCOPE_INTERNAL and
SCOPE_CMDLINE are implemented as GNode even though they only need the
members 'name' and 'vars'. All their other members are unused.
Therefore it seemed natural to extract this part of the GNode into a
separate type called Scope.
The resulting code was harder to read though since it had split the
namespace of the functions into several parts that were not obviously
related: The Var_ functions, the Scope_ functions, and the short-cut
Global_ functions. Because of this, I threw away the experiment.
All that is left are a few updated comments.
Revision 1.254: download - view: text, markup, annotated - select for diffs
Thu Feb 4 21:50:39 2021 UTC (3 years, 9 months ago) by rillig
Branches: MAIN
Diff to: previous 1.253: preferred, colored
Changes since revision 1.253: +8 -8
lines
make: rename Var_ValueDirect to GNode_ValueDirect
Revision 1.253: download - view: text, markup, annotated - select for diffs
Thu Feb 4 21:42:46 2021 UTC (3 years, 9 months ago) by rillig
Branches: MAIN
Diff to: previous 1.252: preferred, colored
Changes since revision 1.252: +2 -2
lines
make: rename context and ctxt to scope
This continues the previous commit, in which VAR_GLOBAL, VAR_INTERNAL
and VAR_CMDLINE were renamed.
Renaming the variable 'ctxt' was trivial since that word is used nowhere
else. In the comments though, each occurrence of the word 'context' had
to be checked individually since the word 'context' was not only used
for referring to a variable scope. It is also used to distinguish
different situations where characters are escaped in a certain way
('parsing context') and in a few other expressions.
Revision 1.252: download - view: text, markup, annotated - select for diffs
Thu Feb 4 21:33:13 2021 UTC (3 years, 9 months ago) by rillig
Branches: MAIN
Diff to: previous 1.251: preferred, colored
Changes since revision 1.251: +10 -7
lines
make: rename some VAR constants to SCOPE
The word "context" does not fit perfectly to the variables that are
associate with a GNode, as the context is usually something from the
outside and the variables are more like properties inherent to the
GNode.
The term "global context" fits even less. Since the thing where
variables are looked up is commonly named a scope, use that term
instead.
This commit only renames the global variables VAR_GLOBAL, VAR_INTERNAL
and VAR_CMDLINE, plus a few very closely related comments. These are:
GNode.vars (because of line breaks)
GNode_Free (dito)
varname-make_print_var_on_error.mk
varname-make_print_var_on_error-jobs.mk
The debug message in Var_Stats is left as-is since there is no unit test
for it yet.
The other renamings (variable names "context", "ctxt", as well as
further comments) will be done in a follow-up commit.
Revision 1.251: download - view: text, markup, annotated - select for diffs
Tue Feb 2 21:26:51 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.250: preferred, colored
Changes since revision 1.250: +2 -4
lines
make: remove unused INTERNAL flag
It had been used for cached_realpaths, until this variable had its type
changed from GNode to HashTable in main.c 1.469 from 2020-11-14.
Revision 1.250: download - view: text, markup, annotated - select for diffs
Mon Feb 1 21:32:54 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.249: preferred, colored
Changes since revision 1.249: +7 -5
lines
make: clean up comments
Revision 1.249: download - view: text, markup, annotated - select for diffs
Mon Feb 1 21:09:25 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.248: preferred, colored
Changes since revision 1.248: +10 -10
lines
make: indent preprocessor directives consistently
As seen in share/misc/style.
Revision 1.248: download - view: text, markup, annotated - select for diffs
Mon Feb 1 21:04:10 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.247: preferred, colored
Changes since revision 1.247: +2 -8
lines
make: always use vfork, never fork
Before compat.c 1.217, job.c 1.390 and main.c 1.504 from 2020-12-27, the
exported make variables were exported from each freshly forked child
process. There was no practical difference though between exporting the
variables from the parent process or the child process since these two
processes share the same address space, except that the forked process
is very limited in what it may actually do. This limitation was
violated on a regular basis.
When an exported variable referred to a variable that used the :sh
variable modifier, this led to a fork from within vfork, which is not
allowed. Since 2020-12-27, exporting the variables is done from the
main process, which prevents this situation from ever occurring.
Since that day, there is no need anymore to distinguish between vfork
and fork, which removes any need for the macro.
Revision 1.247: download - view: text, markup, annotated - select for diffs
Mon Feb 1 20:51:17 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.246: preferred, colored
Changes since revision 1.246: +11 -11
lines
make: use bit shifts in enum constants for GNodeFlags
Same as in the other enum bit sets. This makes it easier to spot the
gap between bit 6 and bit 12.
Revision 1.246: download - view: text, markup, annotated - select for diffs
Sun Jan 24 20:11:55 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.245: preferred, colored
Changes since revision 1.245: +4 -2
lines
make(1): convert SearchPath to struct
This prepares for making dotLast a simple struct member instead of a
fake CachedDir, which is easier to understand.
Revision 1.245: download - view: text, markup, annotated - select for diffs
Thu Jan 21 14:30:01 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.244: preferred, colored
Changes since revision 1.244: +5 -2
lines
make(1): merge duplicate code in Parse_MainName
Revision 1.244: download - view: text, markup, annotated - select for diffs
Tue Jan 19 20:51:46 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.243: preferred, colored
Changes since revision 1.243: +2 -2
lines
make(1): remove do-not-format markers from comments
These markers had been used inconsistently. Furthermore the source code
had not been formatted automatically before 2020 at all, otherwise there
wouldn't have been any trailing whitespace left.
Revision 1.243: download - view: text, markup, annotated - select for diffs
Sat Jan 16 20:49:31 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.242: preferred, colored
Changes since revision 1.242: +2 -2
lines
make(1): fix a few inconsistencies for lint's strict bool mode
Revision 1.242: download - view: text, markup, annotated - select for diffs
Sun Jan 10 21:20:46 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.241: preferred, colored
Changes since revision 1.241: +2 -2
lines
make(1): consistently use boolean expressions in conditions
Most of the make code already followed the style of explicitly writing
(ptr != NULL) instead of the shorter (ptr) in conditions.
The remaining 50 instances have been found by an experimental,
unpublished check in lint(1) that treats bool expressions as
incompatible to any other scalar type, just as in Java, C#, Pascal and
several other languages.
The only unsafe operation on Boolean that is left over is (flags &
FLAG), for an enum implementing a bit set. If Boolean is an ordinary
integer type (the default), some high bits may get lost. But if Boolean
is the same as _Bool (by compiling with -DUSE_C99_BOOLEAN), C99 6.3.1.2
defines that a conversion from any scalar to the type _Bool acts as a
comparison to 0, which cannot lose any bits.
Revision 1.241: download - view: text, markup, annotated - select for diffs
Wed Dec 30 10:03:16 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.240: preferred, colored
Changes since revision 1.240: +33 -17
lines
make(1): format multi-line comments
Revision 1.240: download - view: text, markup, annotated - select for diffs
Mon Dec 28 00:46:24 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.239: preferred, colored
Changes since revision 1.239: +1 -16
lines
make(1): replace global preserveUndefined with VARE_KEEP_UNDEF
Controlling the expansion of variable expressions using a global
variable and a VARE flag was inconsistent.
Converting the global variable into a flag had to prerequisites:
1. The unintended duplicate variable assignment had to be fixed, as
done in parse.c 1.520 from 2020-12-27. Without this fix, it would have
been necessary to add more flags to Var_Exists and Var_SetWithFlags, and
this would have become too complex.
2. There had to be a unit test demonstrating that VARE_KEEP_DOLLAR only
applies to the top-level expression and is not passed to the
subexpressions, while VARE_KEEP_UNDEF applies to all subexpressions as
well. This test is in var-op-expand.mk 1.10 from 2020-12-28, at least
for the ':@word@' modifier. In ParseModifierPartSubst, VARE_KEEP_UNDEF
is not passed down either, in the same way.
Revision 1.239: download - view: text, markup, annotated - select for diffs
Wed Dec 23 14:05:32 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.238: preferred, colored
Changes since revision 1.238: +2 -2
lines
make(1): fix lint warnings for constant condition in DEBUG calls
Revision 1.238: download - view: text, markup, annotated - select for diffs
Wed Dec 23 14:03:13 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.237: preferred, colored
Changes since revision 1.237: +10 -12
lines
make(1): fix MAKE_RCSID for lint mode
Previously, running lint mode didn't define MAKE_RCSID at all, which
resulted in a syntax error.
While here, reduced the indentation and nesting of the preprocessor
directives.
Revision 1.237: download - view: text, markup, annotated - select for diffs
Wed Dec 23 13:50:54 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.236: preferred, colored
Changes since revision 1.236: +2 -2
lines
make(1): rename CmdOpts.lint to strict
When running lint(1) on the code, it defines the preprocessor macro
"lint" to 1, which generated a syntax error in the declaration "Boolean
lint", as that became "Boolean 1".
Revision 1.236: download - view: text, markup, annotated - select for diffs
Tue Dec 22 22:31:50 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.235: preferred, colored
Changes since revision 1.235: +2 -2
lines
make(1): fix return type of macro DEBUG
This macro was supposed to return a boolean expression all the time, it
just hadn't been implemented this way. This resulted in wrong output
for the test sh-flags, in compilation modes -DUSE_UCHAR_BOOLEAN and
-DUSE_CHAR_BOOLEAN, since in ParseCommandFlags, the expression
DEBUG(LOUD) didn't fit into a boolean.
Revision 1.235: download - view: text, markup, annotated - select for diffs
Fri Dec 18 18:17:45 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.234: preferred, colored
Changes since revision 1.234: +7 -3
lines
make(1): support using C99 bool for Boolean
Revision 1.234: download - view: text, markup, annotated - select for diffs
Sun Dec 13 20:09:02 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.233: preferred, colored
Changes since revision 1.233: +2 -2
lines
make(1): constify progname
Revision 1.233: download - view: text, markup, annotated - select for diffs
Fri Dec 11 23:00:59 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.232: preferred, colored
Changes since revision 1.232: +3 -3
lines
make(1): clean up comments for command line options
Revision 1.232: download - view: text, markup, annotated - select for diffs
Sun Dec 6 10:33:42 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.231: preferred, colored
Changes since revision 1.231: +13 -18
lines
make(1): clean up macros for debug logging
Using a do-while loop prevents compiler warnings about possible dangling
else. It also removes the unnecessary negation.
Revision 1.231: download - view: text, markup, annotated - select for diffs
Sat Dec 5 18:38:02 2020 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
Diff to: previous 1.230: preferred, colored
Changes since revision 1.230: +2 -1
lines
make(1): define constants for enum zero-values
Revision 1.230: download - view: text, markup, annotated - select for diffs
Sun Nov 29 09:27:40 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.229: preferred, colored
Changes since revision 1.229: +8 -8
lines
make(1): use space instead of tab for preprocessor directives
Revision 1.229: download - view: text, markup, annotated - select for diffs
Sun Nov 29 01:40:26 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.228: preferred, colored
Changes since revision 1.228: +2 -2
lines
make(1): reduce memory allocation for dirSearchPath
Revision 1.228: download - view: text, markup, annotated - select for diffs
Sat Nov 28 23:39:58 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.227: preferred, colored
Changes since revision 1.227: +2 -2
lines
make(1): reduce memory allocation for CmdOpts.create
Revision 1.227: download - view: text, markup, annotated - select for diffs
Sat Nov 28 23:35:44 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.226: preferred, colored
Changes since revision 1.226: +2 -2
lines
make(1): reduce memory allocation in CmdOpts.variables
Revision 1.226: download - view: text, markup, annotated - select for diffs
Sat Nov 28 23:32:22 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.225: preferred, colored
Changes since revision 1.225: +2 -2
lines
make(1): reduce memory allocation in CmdOpts.makefiles
Revision 1.225: download - view: text, markup, annotated - select for diffs
Sat Nov 28 19:22:32 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.224: preferred, colored
Changes since revision 1.224: +2 -2
lines
make(1): reduce pointer indirection for GNode.implicitParents
Revision 1.224: download - view: text, markup, annotated - select for diffs
Sat Nov 28 19:20:03 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.223: preferred, colored
Changes since revision 1.223: +2 -2
lines
make(1): reduce pointer indirection for GNode.cohorts
Revision 1.223: download - view: text, markup, annotated - select for diffs
Sat Nov 28 19:16:53 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.222: preferred, colored
Changes since revision 1.222: +3 -3
lines
make(1): reduce pointer indirection for GNode.order_pred and order_succ
Revision 1.222: download - view: text, markup, annotated - select for diffs
Sat Nov 28 19:12:28 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.221: preferred, colored
Changes since revision 1.221: +3 -3
lines
make(1): reduce memory allocation for GNode.parents and GNode.children
Revision 1.221: download - view: text, markup, annotated - select for diffs
Sat Nov 28 18:55:52 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.220: preferred, colored
Changes since revision 1.220: +2 -2
lines
make(1): remove pointer indirection from GNode.commands
Just to save a few memory allocations. No noticeable effect on the
performance though.
Revision 1.220: download - view: text, markup, annotated - select for diffs
Sat Nov 28 09:45:01 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.219: preferred, colored
Changes since revision 1.219: +9 -1
lines
make(1): allow multiple RCS IDs in all-in-one mode
Revision 1.219: download - view: text, markup, annotated - select for diffs
Tue Nov 24 20:17:17 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.218: preferred, colored
Changes since revision 1.218: +332 -313
lines
make(1): indent make.h with tabs instead of spaces
Revision 1.218: download - view: text, markup, annotated - select for diffs
Tue Nov 24 19:33:13 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.217: preferred, colored
Changes since revision 1.217: +22 -1
lines
make(1): add high-level API for GNode.made
Having an enum whose constants must be ordered in a certain way may be
unexpected to casual readers. Hide this implementation detail in
separate functions.
Revision 1.217: download - view: text, markup, annotated - select for diffs
Tue Nov 24 18:17:45 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.216: preferred, colored
Changes since revision 1.216: +7 -1
lines
make(1): fix error handling for dependency of .END in -k mode
Fix one bug, find 4 new ones. All these bugs have been around since
2005-05-08, when dependencies on the .BEGIN, .END and .INTERRUPT nodes
were implemented. Before that, checking gn->made == ERROR was
appropriate, but adding the dependencies made ABORTED a new possible
error value from Compat_Make.
Revision 1.216: download - view: text, markup, annotated - select for diffs
Tue Nov 24 17:42:31 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.215: preferred, colored
Changes since revision 1.215: +37 -12
lines
make(1): document the enum GNodeMade
Given only the state names and their individual documentation, it is
hard to see the full picture. To make this easier, provide typical
examples of the ways that a GNode takes through these states.
Revision 1.215: download - view: text, markup, annotated - select for diffs
Mon Nov 23 20:41:20 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.214: preferred, colored
Changes since revision 1.214: +7 -6
lines
make(1): align end-of-line comments with tabs
Revision 1.214: download - view: text, markup, annotated - select for diffs
Sun Nov 22 21:34:34 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.213: preferred, colored
Changes since revision 1.213: +3 -2
lines
make(1): add more debugging for searching transformation rules
Revision 1.213: download - view: text, markup, annotated - select for diffs
Sun Nov 22 10:48:11 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.212: preferred, colored
Changes since revision 1.212: +9 -9
lines
make(1): renumber the flags in GNodeType
In plain C, bit 31 of an enum is not guaranteed to play well with binary
operators. Bit 23 was unused until now, so shift them all down.
The order of the bits is only used in Targ_PrintType.
Revision 1.212: download - view: text, markup, annotated - select for diffs
Sat Nov 21 19:15:06 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.211: preferred, colored
Changes since revision 1.211: +2 -2
lines
make(1): rename type Suff to Suffix
This avoids confusion with the module suff.c of the same name.
The existing naming convention is that the module's public functions are
named Suff_Func and its private functions are named SuffFunc. This
collides with the naming convention that a the functions of the type Suff
are called Suff_Func as well.
To resolve this collision, rename Suff to Suffix. The related types like
SuffList and the affected functions like SuffRef will be renamed in a
follow-up commit.
Revision 1.211: download - view: text, markup, annotated - select for diffs
Sat Nov 21 18:41:57 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.210: preferred, colored
Changes since revision 1.210: +2 -2
lines
make(1): rename GNode.context to vars
Especially in the variables module, the expression 'ctxt->context' looked
redundant. Having a GNode as a context sounds ok, but a context of a
context just doesn't make sense.
Revision 1.210: download - view: text, markup, annotated - select for diffs
Mon Nov 16 21:53:10 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.209: preferred, colored
Changes since revision 1.209: +2 -1
lines
make(1): clean up and extend comments in targ.c
Revision 1.209: download - view: text, markup, annotated - select for diffs
Sun Nov 15 12:02:44 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.208: preferred, colored
Changes since revision 1.208: +3 -1
lines
make(1): clean up make.h, meta.c, parse.c, str.c
The main changes are in the comments, which have been shortened and
corrected.
Some local variables changed their names.
In ParseErrorInternal, the scope of va_start is now narrower.
In ParseDoDependency, the type of tOp has been fixed.
ParseGetLine doesn't take flags anymore but instead a parsing mode.
Previously, the flags had not been combined anyway.
At the beginning of Parse_File, fatals is already guaranteed to be 0, and
even if not, it would be wrong to just discard the fatal errors.
Revision 1.208: download - view: text, markup, annotated - select for diffs
Sat Nov 14 17:39:59 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.207: preferred, colored
Changes since revision 1.207: +2 -2
lines
make(1): remove redundant parameter from str2Lst_Append
Revision 1.207: download - view: text, markup, annotated - select for diffs
Sat Nov 14 15:58:01 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.206: preferred, colored
Changes since revision 1.206: +2 -2
lines
make(1): rename DEFAULT to defaultNode
In C, uppercase names are typically used for constants, and this is not
a constant.
Revision 1.206: download - view: text, markup, annotated - select for diffs
Thu Nov 12 23:35:21 2020 UTC (4 years ago) by sjg
Branches: MAIN
Diff to: previous 1.205: preferred, colored
Changes since revision 1.205: +2 -2
lines
Pass a writable flag to Main_SetObjdir to control writable check
For curdir and an explicit .OBJDIR target, we allow for
the directory to be read-only.
During InitObjdir we otherwise default to requiring objdir to be
writable - this can be controlled by env variable
MAKE_OBJDIR_CHECK_WRITABLE
Add unit-tests/objdir-writable
Reviewed by: christos rillig
Revision 1.205: download - view: text, markup, annotated - select for diffs
Tue Nov 10 00:32:12 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.204: preferred, colored
Changes since revision 1.204: +23 -21
lines
make(1): use consistent definition for MAKE_INLINE
Revision 1.204: download - view: text, markup, annotated - select for diffs
Sun Nov 8 23:38:02 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.203: preferred, colored
Changes since revision 1.203: +9 -7
lines
make(1): move lint option away from the debug flags
The lint option affects much more than a typical debug flag. Not only
does it produce additional diagnostics, it also changes the control flow
and fixes the traditional error handling in a few places.
No functional change.
Revision 1.203: download - view: text, markup, annotated - select for diffs
Sun Nov 8 23:30:59 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.202: preferred, colored
Changes since revision 1.202: +16 -16
lines
make(1): sort debug flags alphabetically
DEBUG_FOR had been accidentally left at the end of the list.
Revision 1.202: download - view: text, markup, annotated - select for diffs
Sun Nov 8 15:18:09 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.201: preferred, colored
Changes since revision 1.201: +2 -2
lines
make(1): fix documentation of preserveUndefined
Since it is a global variable and not a VarEvalFlags, it affects nested
subexpressions as well, and there is no way to escape it.
Revision 1.201: download - view: text, markup, annotated - select for diffs
Sun Nov 8 10:33:47 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.200: preferred, colored
Changes since revision 1.200: +3 -2
lines
make(1): fix debug output in out-of-date for cohorts (since 2003-11-14)
Before, a wrong cause for being out-of-date was printed in the debug log,
for optional cohorts. This was caused by having the same conditions
duplicated in the code, instead of putting them in a separate function.
Now the optional cohort is correctly identified as using the '::'
dependency operator.
Revision 1.200: download - view: text, markup, annotated - select for diffs
Sun Nov 8 08:33:07 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.199: preferred, colored
Changes since revision 1.199: +3 -3
lines
make(1): rename Make_OODate to GNode_IsOODate
It doesn't matter which of the make modules is in charge of determining
whether a node is out-of-date. Therefore, remove the module name from
the function name.
Revision 1.199: download - view: text, markup, annotated - select for diffs
Sun Nov 8 08:26:22 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.198: preferred, colored
Changes since revision 1.198: +2 -2
lines
make(1): rename Make_TimeStamp to GNode_UpdateYoungestChild
Revision 1.198: download - view: text, markup, annotated - select for diffs
Sun Nov 8 01:39:24 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.197: preferred, colored
Changes since revision 1.197: +4 -3
lines
make(1): fix type mismatch between int and PrintVarsMode
Revision 1.197: download - view: text, markup, annotated - select for diffs
Sat Nov 7 10:44:53 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.196: preferred, colored
Changes since revision 1.196: +8 -1
lines
make(1): add pp_skip_hspace to skip horizontal whitespace during parsing
Revision 1.196: download - view: text, markup, annotated - select for diffs
Fri Nov 6 22:39:10 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.195: preferred, colored
Changes since revision 1.195: +8 -1
lines
make(1): merge duplicate code for skipping horizontal whitespace
Revision 1.195: download - view: text, markup, annotated - select for diffs
Fri Nov 6 22:37:07 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.194: preferred, colored
Changes since revision 1.194: +15 -15
lines
make(1): move name of inline functions to the beginning of the line
Revision 1.194: download - view: text, markup, annotated - select for diffs
Fri Nov 6 21:20:31 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.193: preferred, colored
Changes since revision 1.193: +2 -2
lines
make(1): rename dieQuietly to shouldDieQuietly
It was too confusing to have a function named die that doesn't actually
die. Plus, the return type int didn't give any clue about what the
function actually returns.
Revision 1.193: download - view: text, markup, annotated - select for diffs
Fri Nov 6 21:12:19 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.192: preferred, colored
Changes since revision 1.192: +5 -1
lines
make(1): document DEBUG_LINT
Revision 1.192: download - view: text, markup, annotated - select for diffs
Fri Nov 6 21:09:06 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.191: preferred, colored
Changes since revision 1.191: +19 -20
lines
make(1): sort and renumber debug flags
Revision 1.191: download - view: text, markup, annotated - select for diffs
Fri Nov 6 20:24:08 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.190: preferred, colored
Changes since revision 1.190: +7 -4
lines
make(1): document progname
Revision 1.190: download - view: text, markup, annotated - select for diffs
Fri Nov 6 20:20:00 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.189: preferred, colored
Changes since revision 1.189: +31 -29
lines
make(1): clean up comments in make.h
Revision 1.189: download - view: text, markup, annotated - select for diffs
Thu Nov 5 00:40:31 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.188: preferred, colored
Changes since revision 1.188: +7 -4
lines
make(1): extend documentation for GNodeType constants
Revision 1.188: download - view: text, markup, annotated - select for diffs
Wed Nov 4 13:40:20 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.187: preferred, colored
Changes since revision 1.187: +9 -11
lines
make(1): group GNode fields by topic, document ParseErrorLevel
Revision 1.187: download - view: text, markup, annotated - select for diffs
Wed Nov 4 13:31:58 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.186: preferred, colored
Changes since revision 1.186: +6 -5
lines
make(1): align comments on a few commonly used variables
Revision 1.186: download - view: text, markup, annotated - select for diffs
Wed Nov 4 13:29:42 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.185: preferred, colored
Changes since revision 1.185: +8 -3
lines
make(1): move declaration of parseIncPath from main.c to make.h
Revision 1.185: download - view: text, markup, annotated - select for diffs
Wed Nov 4 13:22:15 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.184: preferred, colored
Changes since revision 1.184: +2 -2
lines
make(1): rename MAKEFILE_PREFERENCE for consistency
The names of the other special variables are all prefixed with MAKE_.
Revision 1.184: download - view: text, markup, annotated - select for diffs
Wed Nov 4 13:04:56 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.183: preferred, colored
Changes since revision 1.183: +1 -8
lines
make(1): remove unused names DTARGET, FPREFIX, etc.
Revision 1.183: download - view: text, markup, annotated - select for diffs
Wed Nov 4 04:49:32 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.182: preferred, colored
Changes since revision 1.182: +7 -6
lines
make(1): negate discardUndefined to preserveUndefined
Revision 1.182: download - view: text, markup, annotated - select for diffs
Wed Nov 4 03:37:51 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.181: preferred, colored
Changes since revision 1.181: +13 -5
lines
make(1): rename oldVars to discardUndefined
While here, moved all the documentation about this variable into a
single place.
Revision 1.181: download - view: text, markup, annotated - select for diffs
Wed Nov 4 03:13:46 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.180: preferred, colored
Changes since revision 1.180: +3 -3
lines
make(1): add missing enum tag for GNodeMade
Revision 1.180: download - view: text, markup, annotated - select for diffs
Wed Nov 4 02:57:42 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.179: preferred, colored
Changes since revision 1.179: +6 -2
lines
make(1): document that "old-style" variables are older than 1993
Revision 1.179: download - view: text, markup, annotated - select for diffs
Sun Nov 1 17:47:26 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.178: preferred, colored
Changes since revision 1.178: +2 -2
lines
make(1): negate NoExecute to GNode_ShouldExecute
Revision 1.178: download - view: text, markup, annotated - select for diffs
Sat Oct 31 11:54:33 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.177: preferred, colored
Changes since revision 1.177: +16 -1
lines
make(1): do not look up local variables like .TARGET anywhere else
Nobody defines a global variable named .TARGET since that would have
many unpredictable effects, applying to all targets at once.
Nobody defines an environment variable named .TARGET since that's
against the naming conventions for environment variables and would have
the same effect.
Because of this, there is no point looking up the variables that are
local to a GNode anywhere else. This means they cannot come from the
environment and thus their value doesn't need to be freed after use,
which makes the code simpler.
The newly added accessor functions in make.h refer to external
functions, but since that header is not used anywhere outside of
usr.bin/make, it doesn't matter. Between 2020-08-25 and 2020-10-30,
that header had been referenced by usr.bin/xinstall.
Revision 1.177: download - view: text, markup, annotated - select for diffs
Fri Oct 30 17:10:48 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.176: preferred, colored
Changes since revision 1.176: +2 -2
lines
make(1): clean up comments and local variables in var.c
Revision 1.176: download - view: text, markup, annotated - select for diffs
Fri Oct 30 07:19:30 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.175: preferred, colored
Changes since revision 1.175: +3 -3
lines
make(1): rename VAR_CMD to VAR_CMDLINE
Since make has to do with both the command line and child commands, the
former name was confusing.
Revision 1.175: download - view: text, markup, annotated - select for diffs
Wed Oct 28 03:21:25 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.174: preferred, colored
Changes since revision 1.174: +2 -2
lines
make(1): rename defIncPath to defSysIncPath
There are two variables, parseIncPath and sysIncPath, which made the
name defIncPath ambiguous.
Revision 1.174: download - view: text, markup, annotated - select for diffs
Tue Oct 27 07:03:55 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.173: preferred, colored
Changes since revision 1.173: +4 -1
lines
make(1): move debugVflag to CmdOpts
Revision 1.173: download - view: text, markup, annotated - select for diffs
Mon Oct 26 21:34:10 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.172: preferred, colored
Changes since revision 1.172: +79 -37
lines
make(1): group the command line options and arguments
By having a single struct that holds all command line options and
arguments, it is easy to see in the code when such a command line
argument is modified. It also cleans up the namespace since the command
line options don't follow a common naming style. Having them in a
struct also means that there is a single place for putting the
documentation, not two as before.
The struct also suggests to extract the initialization code out of main,
which is still too large, having more than 400 lines of code and
covering far too many topics.
Revision 1.172: download - view: text, markup, annotated - select for diffs
Sun Oct 25 21:51:49 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.171: preferred, colored
Changes since revision 1.171: +8 -2
lines
make(1): add GNode_Path to access the path of a GNode
Revision 1.171: download - view: text, markup, annotated - select for diffs
Sat Oct 24 20:51:49 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.170: preferred, colored
Changes since revision 1.170: +1 -8
lines
make(1): remove macros MIN and MAX
These macros typically evaluate one of their arguments twice. Until
2020-08-31, they had not parenthesized their arguments properly. They
are only used in a few places, therefore it doesn't hurt much to have
them expanded.
Revision 1.170: download - view: text, markup, annotated - select for diffs
Sat Oct 24 20:29:40 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.169: preferred, colored
Changes since revision 1.169: +28 -25
lines
make(1): convert macros for debug flags into enum
Revision 1.169: download - view: text, markup, annotated - select for diffs
Sat Oct 24 03:45:02 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.168: preferred, colored
Changes since revision 1.168: +7 -5
lines
make(1): remove lengthy comments from archive handling
The relevant information is already documented on OP_ARCHV, but only
since a few weeks.
Revision 1.168: download - view: text, markup, annotated - select for diffs
Fri Oct 23 20:14:50 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.167: preferred, colored
Changes since revision 1.167: +3 -3
lines
make(1): fix typos in comments
Revision 1.167: download - view: text, markup, annotated - select for diffs
Fri Oct 23 20:04:56 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.166: preferred, colored
Changes since revision 1.166: +8 -6
lines
make(1): convert error level for Parse_Error to an enum
Revision 1.166: download - view: text, markup, annotated - select for diffs
Fri Oct 23 19:48:17 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.165: preferred, colored
Changes since revision 1.165: +2 -2
lines
make(1): rename GNode.cmgn to youngestChild
The name is longer than before but also clearer.
Revision 1.165: download - view: text, markup, annotated - select for diffs
Fri Oct 23 19:11:30 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.164: preferred, colored
Changes since revision 1.164: +8 -4
lines
make(1): add test for the '::' dependency operator
Revision 1.164: download - view: text, markup, annotated - select for diffs
Fri Oct 23 18:36:09 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.163: preferred, colored
Changes since revision 1.163: +5 -7
lines
make(1): negate OP_NOP and rename it to GNode_IsTarget
Revision 1.163: download - view: text, markup, annotated - select for diffs
Fri Oct 23 18:10:39 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.162: preferred, colored
Changes since revision 1.162: +3 -6
lines
make(1): merge duplicate documentation for OP_NOP
Revision 1.162: download - view: text, markup, annotated - select for diffs
Fri Oct 23 18:05:35 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.161: preferred, colored
Changes since revision 1.161: +4 -2
lines
make(1): only define TRUE and FALSE if necessary
For -DUSE_ENUM_BOOLEAN, the macros are not necessary.
Revision 1.161: download - view: text, markup, annotated - select for diffs
Fri Oct 23 17:59:25 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.160: preferred, colored
Changes since revision 1.160: +7 -1
lines
make(1): allow compilation with Boolean implemented as char
Revision 1.160: download - view: text, markup, annotated - select for diffs
Mon Oct 19 23:43:55 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.159: preferred, colored
Changes since revision 1.159: +26 -19
lines
make(1): clean up headers, no functional change
Revision 1.159: download - view: text, markup, annotated - select for diffs
Sun Oct 18 17:19:54 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.158: preferred, colored
Changes since revision 1.158: +5 -5
lines
make(1): add tags to enum types
This allows IDEs to offer better type information than "anonymous enum".
Revision 1.158: download - view: text, markup, annotated - select for diffs
Sun Oct 18 12:36:43 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.157: preferred, colored
Changes since revision 1.157: +2 -2
lines
make(1): remove underscore from Hash_Table and Hash_Entry
For consistency with the other type names, such as GNodeListNode.
Revision 1.157: download - view: text, markup, annotated - select for diffs
Sun Oct 18 11:09:08 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.156: preferred, colored
Changes since revision 1.156: +2 -7
lines
make(1): convert NoExecute to non-inline
The header make.h is not only used by usr.bin/make but also by
usr.bin/xinstall, to get the needshell function.
That program does not declare the variables noRecursiveExecute and
noExecute, leading to an "unresolved reference" at link time. To fix
this, move the inline functions away from make.h.
It's a quirk that make.h gets included by other programs since it
contains a whole lot of definitions that are only useful in make itself.
If any, there should be a separate header that defines the public
library API of make, and only that.
Revision 1.156: download - view: text, markup, annotated - select for diffs
Mon Oct 5 22:15:45 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.155: preferred, colored
Changes since revision 1.155: +2 -2
lines
make(1): enable format string truncation warnings for parse.c
No node is ever going to have a million or more cohorts. And even if
there were, this name is only used for printing informational messages.
Revision 1.155: download - view: text, markup, annotated - select for diffs
Mon Oct 5 19:27:47 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.154: preferred, colored
Changes since revision 1.154: +34 -11
lines
make(1): revert previous commit
It had accidentally reverted all the work from the past few days.
Revision 1.154: download - view: text, markup, annotated - select for diffs
Mon Oct 5 19:24:29 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.153: preferred, colored
Changes since revision 1.153: +11 -34
lines
make(1): fix double-free bug in -DCLEANUP mode (since 2020-10-02)
The bug had been introduced with dir.c 1.155 on 2020-10-02 22:20:25. In
that commit, openDirectories was replaced with a combination of a list
with a hash table, for more efficient lookup by name.
Upon cleanup, OpenDirs_Done is called, which in turn called
Dir_ClearPath. Dir_ClearPath takes full ownership of the given list and
empties it. This was no problem before since afterwards the list was
empty and calling Lst_Free just frees the remaining list pointer.
With OpenDirs, this list was combined with a hash table, and the hash
table contains the list nodes, assuming that the OpenDirs functions have
full ownership of both the list and the hash table. This assumption was
generally correct, except for the one moment during cleanup where full
ownership of the list was passed to Dir_ClearPath, while the hash table
still contained pointers to the (now freed) list nodes. This by itself
was not a problem since the hash table would be freed afterwards. But
as part of Dir_ClearPath, OpenDirs_Remove was called, which looked up
the freed directory by name and now found the freed list node, trying to
free it again. Boom.
Fixed by replacing the call to Dir_ClearPath with code that only frees
the directories, without giving up control over the list.
Revision 1.153: download - view: text, markup, annotated - select for diffs
Mon Oct 5 15:14:24 2020 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.152: preferred, colored
Changes since revision 1.152: +20 -11
lines
make(1): replace GNode macros with inline functions
Curiously, this affects the size of the generated code: it gets smaller
than before.
Revision 1.152: download - view: text, markup, annotated - select for diffs
Sat Oct 3 21:19:54 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.151: preferred, colored
Changes since revision 1.151: +15 -1
lines
make(1): use consistent pattern for parsing whitespace
The pp and cpp in the function names stand for "parsing position" and
"const parsing position".
Revision 1.151: download - view: text, markup, annotated - select for diffs
Mon Sep 28 22:38:32 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.150: preferred, colored
Changes since revision 1.150: +2 -10
lines
make(1): remove the inline attribute from debug_printf
The code size overhead of a varargs function is much more than I had
expected. Since GCC 5 didn't inline the function anyway and it is only
used in debug mode, there is no point keeping multiple copies of that
code around.
Revision 1.150: download - view: text, markup, annotated - select for diffs
Mon Sep 28 22:23:35 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.149: preferred, colored
Changes since revision 1.149: +18 -7
lines
make(1): make debug logging simpler
This avoids referring to the debug_file variable in many places where
this implementation detail is not necessary.
Revision 1.149: download - view: text, markup, annotated - select for diffs
Mon Sep 28 20:46:11 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.148: preferred, colored
Changes since revision 1.148: +25 -1
lines
make(1): make debugging code shorter
Revision 1.148: download - view: text, markup, annotated - select for diffs
Sun Sep 27 21:35:16 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.147: preferred, colored
Changes since revision 1.147: +35 -33
lines
make(1): normalize whitespace in source code
There is no more space tab. Either only tabs or only spaces or tabs
followed by spaces, but not spaces followed by tabs.
Revision 1.147: download - view: text, markup, annotated - select for diffs
Sat Sep 26 16:00:12 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.146: preferred, colored
Changes since revision 1.146: +1 -13
lines
make(1): clean up API for finding and creating GNodes
The previous API had complicated rules for the cases in which the single
function returned NULL or what it did. The flags for that function were
confusing since passing TARG_NOHASH would create a new node even though
TARG_CREATE was not included in that bit mask.
Splitting the function into 3 separate functions avoids this confusion.
It also reveals several places where the complicated API led to
unreachable code. Such code has been removed.
Revision 1.146: download - view: text, markup, annotated - select for diffs
Thu Sep 24 07:37:42 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.145: preferred, colored
Changes since revision 1.145: +2 -2
lines
make(1): migrate MakeTimeStamp and MakeUnmark to Lst_ForEach
Revision 1.145: download - view: text, markup, annotated - select for diffs
Wed Sep 23 03:06:38 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.144: preferred, colored
Changes since revision 1.144: +4 -2
lines
make(1): fix assertion failure in -j mode with .END node
There had been two separate global variables for the .END node, and in
parallel mode, only the one in jobs.c was initialized.
The code in JobRun heads over to Compat_Make without calling Compat_Run
first, which left the variable ENDNode uninitialized.
Revision 1.144: download - view: text, markup, annotated - select for diffs
Tue Sep 22 04:05:41 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.143: preferred, colored
Changes since revision 1.143: +11 -8
lines
make(1): use fine-grained type names for lists and their nodes
This is only intended to help the human reader. There is no additional
type safety yet.
Revision 1.143: download - view: text, markup, annotated - select for diffs
Mon Sep 21 17:44:25 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.142: preferred, colored
Changes since revision 1.142: +13 -8
lines
make(1): add specific typedefs for lists
These typedefs are only intended to help human readers, they do not
provide any type-safety. They also make the pointers explicit, which
had been hidden before by the typedef for Lst and LstNode. Typing a few
'*' is less work than finding out which of the many types are pointers
and which aren't.
In meta.c, the variable "ln" served two completely different purposes,
which have been split again. Register allocation is the job of the
compiler, not of the human source code reader.
Revision 1.142: download - view: text, markup, annotated - select for diffs
Sun Sep 13 15:15:51 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.141: preferred, colored
Changes since revision 1.141: +10 -1
lines
make(1): clean up RCSID blocks
These blocks mostly consisted of redundant structure, following the same
#ifndef pattern over and over, with only minimal variation.
It's easier to maintain if the common structure is only written once and
encapsulated in a macro.
To avoid "defined but unused" warnings from GCC in the case where
MAKE_NATIVE is not defined, I had to add volatile. Adding
MAKE_ATTR_UNUSED alone would not preserve the rcsid variable in the
resulting binary.
Revision 1.141: download - view: text, markup, annotated - select for diffs
Sun Sep 13 13:50:27 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.140: preferred, colored
Changes since revision 1.140: +2 -2
lines
make(1): clean up API for evaluating conditions
There was no need to make struct If publicly visible.
There was no need to have parameters in the public API that were passed
the same constants all the time.
The former function names had not been distinctive.
Revision 1.140: download - view: text, markup, annotated - select for diffs
Sun Sep 13 06:15:29 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.139: preferred, colored
Changes since revision 1.139: +3 -3
lines
make(1): remove #endif comments for very short blocks
Revision 1.139: download - view: text, markup, annotated - select for diffs
Fri Sep 11 17:32:36 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.138: preferred, colored
Changes since revision 1.138: +16 -1
lines
make(1): add wrappers around ctype.h functions
This avoids casting the argument to unsigned char, and to cast the
result of toupper/tolower back to char.
Revision 1.138: download - view: text, markup, annotated - select for diffs
Fri Sep 11 05:37:40 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.137: preferred, colored
Changes since revision 1.137: +2 -2
lines
make(1): add missing space in source code
Revision 1.137: download - view: text, markup, annotated - select for diffs
Wed Sep 2 23:42:58 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.136: preferred, colored
Changes since revision 1.136: +5 -3
lines
make(1): document the value restrictions for Boolean variables
The previous lenient rule came from the sprite.h header that was not
specific to make. To avoid confusion, only the expected values should
be stored in a Boolean variable. To help find obvious violations and
inconsistencies, there are different possibilities for the Boolean type,
during development.
In C there is no way to actually enforce this restriction at runtime.
It would be possible in C++, but the code is not ready to be compiled
with a C++ compiler.
Revision 1.136: download - view: text, markup, annotated - select for diffs
Wed Sep 2 04:08:54 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.135: preferred, colored
Changes since revision 1.135: +1 -3
lines
make(1): reduce number of stat fields returned by cached_stat
Only st_mtime and st_mode are actually filled, the remaining fields had
been set to zero. To prevent these from ever being accessed, a custom
struct make_stat replaces the previously used struct stat.
The fields in struct make_stat are intentionally named different from
the fields in struct stat because NetBSD and some other operating
systems define st_mtime as a macro, and that would not work in a field
declaration.
Revision 1.135: download - view: text, markup, annotated - select for diffs
Wed Sep 2 03:28:12 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.134: preferred, colored
Changes since revision 1.134: +4 -3
lines
make(1): use proper types in API of cached_stat and cached_lstat
Revision 1.134: download - view: text, markup, annotated - select for diffs
Mon Aug 31 06:21:07 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.133: preferred, colored
Changes since revision 1.133: +3 -3
lines
make(1): parenthesize macro arguments
Just in case anyone wants to use them for copy-and-paste.
The invocations of these macros are left cautious since the
system-provided definition of these macros may have forgotten the
parentheses as well.
Revision 1.133: download - view: text, markup, annotated - select for diffs
Sun Aug 30 14:11:42 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.132: preferred, colored
Changes since revision 1.132: +5 -4
lines
make(1): rename GNode.iParents to implicitParents
The i alone was too ambiguous. It could have meant ignore, implicit,
interactive, and probably many more.
Revision 1.132: download - view: text, markup, annotated - select for diffs
Sat Aug 29 12:20:17 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +1 -19
lines
make(1): remove ReturnStatus, SUCCESS and FAILURE
These are used in so few places now that it is easier to use a simple
Boolean for them.
Revision 1.131: download - view: text, markup, annotated - select for diffs
Sat Aug 29 08:09:07 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.130: preferred, colored
Changes since revision 1.130: +9 -2
lines
make(1): add another Boolean variant to check during development
Revision 1.130: download - view: text, markup, annotated - select for diffs
Sat Aug 29 07:52:55 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.129: preferred, colored
Changes since revision 1.129: +5 -1
lines
make(1): allow for strict type checking for Boolean
Having Boolean aliased to int creates ambiguities since int is widely
used. Allow to occasionally compile make with -DUSE_DOUBLE_BOOLEAN to
check that the type definitions still agree.
Revision 1.129: download - view: text, markup, annotated - select for diffs
Fri Aug 28 19:14:07 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +3 -3
lines
make(1): clean up targ.c
The main part is removing redundant or outdated information from
comments. In a few places, the expression cond ? TRUE : FALSE has been
simplified.
Revision 1.128: download - view: text, markup, annotated - select for diffs
Fri Aug 28 03:35:45 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.127: preferred, colored
Changes since revision 1.127: +2 -1
lines
make(1): print suffix flags in the standard way
This changes the output (it is now SUFF_NULL instead of just NULL), and
the order of the flags in the output is reversed.
Revision 1.127: download - view: text, markup, annotated - select for diffs
Wed Aug 26 23:00:47 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.126: preferred, colored
Changes since revision 1.126: +32 -2
lines
make(1): remove header sprite.h
Make is independent of the Sprite operating system.
Revision 1.126: download - view: text, markup, annotated - select for diffs
Mon Aug 24 20:15:51 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.125: preferred, colored
Changes since revision 1.125: +2 -1
lines
make(1): in debug mode, print GNode details in symbols
A string like OP_DEPENDS|OP_OPTIONAL|OP_PRECIOUS is much easier to read
and understand than the bit pattern 00000089.
The implementation in enum.h looks really bloated and ugly, but using
this API is as simple and natural as possible. That's the trade-off.
In enum.h, I thought about choosing the numbers in the macros such that
it is always possible to combine two of them in order to reach an
arbitrary number, because of the "part1, part2" in the ENUM__SPEC macro.
The powers of 2 are not these numbers, as 7 cannot be expressed as the
sum of two of them. Neither are the fibonacci numbers since 12 cannot
be expressed as the sum of 2 fibonacci numbers. I tried to find a
general pattern to generate these minimal 2-sum numbers, but failed.
Revision 1.125: download - view: text, markup, annotated - select for diffs
Sun Aug 23 17:04:21 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.124: preferred, colored
Changes since revision 1.124: +1 -2
lines
make(1): remove unused declarations from header files
Revision 1.124: download - view: text, markup, annotated - select for diffs
Sun Aug 23 08:26:03 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +2 -2
lines
make(1): use proper data type for GNode.type
Theoretically this should show the enum constant names when displaying
the field in the debugger. This only happens for GNode.flags though,
but not for GNode.type. Not sure what the exact cause is.
Revision 1.123: download - view: text, markup, annotated - select for diffs
Sat Aug 22 21:42:38 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.122: preferred, colored
Changes since revision 1.122: +2 -1
lines
make(1): clean up headers
Remove redundant headers that are already included by "make.h".
Make <assert.h> available to all compilation units that use "make.h".
Revision 1.122: download - view: text, markup, annotated - select for diffs
Sat Aug 22 19:27:22 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.121: preferred, colored
Changes since revision 1.121: +3 -3
lines
make(1): remove wrong comment about possible Y2038 problem
The "time" that is mentioned is not clock time but a sequence number.
Revision 1.121: download - view: text, markup, annotated - select for diffs
Sat Aug 22 18:47:31 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.120: preferred, colored
Changes since revision 1.120: +1 -2
lines
make(1): remove unused variable jobServer
Revision 1.120: download - view: text, markup, annotated - select for diffs
Sat Aug 22 18:44:22 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.119: preferred, colored
Changes since revision 1.119: +84 -62
lines
make(1): convert GNode type constants to enum
This allows debuggers to print symbolic names for the type flags.
The names of these constants need to be revised. These flags probably
started as the 3 dependency operators (:, !, ::), and at that time, the
prefix OP_ made sense. The other flags are not related to the type of
the dependency operator and could have been placed in GNode.flags as
well.
Revision 1.119: download - view: text, markup, annotated - select for diffs
Sat Aug 22 18:20:31 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.118: preferred, colored
Changes since revision 1.118: +98 -94
lines
make(1): restructure GNode types and documentation
Having a numbered list above the type was not helpful since the numbers
didn't serve any purpose, they just consumed screen space.
Several of these list items didn't have an obvious relationship to the
struct fields. It's better to have just a rough introduction as the
type level documentation, leaving the details to the individual fields.
Converting the types and flags and other constants into separate types
and defining them outside the struct leaves more space to see the
relationship of the struct fields.
Limiting the documentation of each field to a single line, as suggested
by the end-of-line comments, reduces clarity since several of the fields
need way more documentation to be properly understood.
Revision 1.118: download - view: text, markup, annotated - select for diffs
Thu Aug 20 17:13:05 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.117: preferred, colored
Changes since revision 1.117: +1 -3
lines
make(1): remove unused function declarations
Revision 1.117: download - view: text, markup, annotated - select for diffs
Thu Aug 20 17:06:26 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +2 -2
lines
make(1): fix wrong or outdated comments
Revision 1.116: download - view: text, markup, annotated - select for diffs
Thu Aug 13 03:54:57 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.115: preferred, colored
Changes since revision 1.115: +4 -4
lines
make(1): follow naming conventions for multiple-inclusion guards
This avoids undefined behavior.
Revision 1.115: download - view: text, markup, annotated - select for diffs
Tue Aug 11 18:44:52 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +2 -2
lines
make(1): convert Suff.flags from #define to enum
This increases debugging support since the debugger can now display
symbolic names instead of an integer bit mask.
Revision 1.114: download - view: text, markup, annotated - select for diffs
Mon Aug 10 19:30:30 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.113: preferred, colored
Changes since revision 1.113: +1 -13
lines
make(1): fix parameter name of str_concat
The previous documentation mentioned Str_Concat, but str_concat has been
written in lowercase for years. The "flags" are not flags since they
cannot be combined, not even when they are written in hex.
Revision 1.113: download - view: text, markup, annotated - select for diffs
Sat Aug 1 18:02:37 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.112: preferred, colored
Changes since revision 1.112: +6 -4
lines
make(1): use enum for return values of Cond_Eval and friends
Revision 1.112: download - view: text, markup, annotated - select for diffs
Fri Jul 31 20:22:10 2020 UTC (4 years, 4 months ago) by sjg
Branches: MAIN
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +3 -1
lines
Add -dL for LINT
When parsing variable assignments other than := and if
value contains '$' attempt Var_Subst the same as for :=,
if the value does not parse correctly, we get a fatal error
including file an line number.
This can greatly help with finding the cause of problems.
Reviewed by: christos
Revision 1.111: download - view: text, markup, annotated - select for diffs
Tue Jul 21 21:13:24 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +3 -1
lines
make(1): clean up various things in var.c
Revision 1.110: download - view: text, markup, annotated - select for diffs
Sat Jul 18 21:37:38 2020 UTC (4 years, 4 months ago) by sjg
Branches: MAIN
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +2 -1
lines
Add -dh for DEBUG_HASH
Allow tracking of max chain length, to see how well the hash
tables are working.
Pull the actual hash operation into a marco so it can be
easily changed - for experimenting.
The current hash, is pretty good.
Reviewed by: christos
Revision 1.109: download - view: text, markup, annotated - select for diffs
Thu Jul 2 15:14:38 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +1 -5
lines
make(1): add more type safety for enums
There are several types of flags for variables, and these cannot be
mixed. To prevent accidental typos, these are defined in separate enum
types. Clang warns about direct assignments between distinct types, but
not about mixing distinct types in binary expressions like A | B. GCC
does not warn at all.
Revision 1.108: download - view: text, markup, annotated - select for diffs
Fri Jun 19 21:17:48 2020 UTC (4 years, 5 months ago) by sjg
Branches: MAIN
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +2 -1
lines
Avoid unnecessary noise when sub-make or sibling dies
When analyzing a build log, the first 'stopped' output
from make, is the end of interesting output.
Normally when a build fails deep down in a parallel build
the log ends with many blockes of error output from make,
with all but the fist being unhelpful.
We add a function dieQuietly() which will return true
if we should supress the error output from make.
If the failing node was a sub-make, we want to die quietly.
Also when we read an abort token we call dieQuietly telling we
want to die quietly.
This behavior is suppressed by -dj or
setting .MAKE.DIE_QUIETLY=no
Reviewed by: christos
Revision 1.104.4.1: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:09:16 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.104: preferred, colored; next MAIN 1.105: preferred, colored
Changes since revision 1.104: +2 -2
lines
Merge changes from current as of 20200406
Revision 1.107: download - view: text, markup, annotated - select for diffs
Fri Apr 3 03:35:16 2020 UTC (4 years, 8 months ago) by sjg
Branches: MAIN
CVS tags: phil-wifi-20200421,
phil-wifi-20200411,
phil-wifi-20200406
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +1 -5
lines
Revert arraycount
Revision 1.106: download - view: text, markup, annotated - select for diffs
Fri Apr 3 03:32:28 2020 UTC (4 years, 8 months ago) by sjg
Branches: MAIN
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +5 -1
lines
CHECK_VALID_META is too agressive for CMD check.
An empty CMD is perfectly valid.
So using CHECK_VALID_META results in too much rebuilding.
Revision 1.105: download - view: text, markup, annotated - select for diffs
Mon Mar 30 02:41:06 2020 UTC (4 years, 8 months ago) by sjg
Branches: MAIN
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +2 -2
lines
make: fix -fno-common build
debug was declared extern, but debug_file was not; correct this and define
debug_file in main.c (as debug is) to fix the -fno-common build.
-fno-common will become the default with GCC10/LLVM11.
Patch from kevans at freebsd
Revision 1.104: download - view: text, markup, annotated - select for diffs
Mon Feb 12 21:38:09 2018 UTC (6 years, 9 months ago) by sjg
Branches: MAIN
CVS tags: phil-wifi-base,
phil-wifi-20191119,
phil-wifi-20190609,
pgoyette-compat-merge-20190127,
pgoyette-compat-base,
pgoyette-compat-20190127,
pgoyette-compat-20190118,
pgoyette-compat-1226,
pgoyette-compat-1126,
pgoyette-compat-1020,
pgoyette-compat-0930,
pgoyette-compat-0906,
pgoyette-compat-0728,
pgoyette-compat-0625,
pgoyette-compat-0521,
pgoyette-compat-0502,
pgoyette-compat-0422,
pgoyette-compat-0415,
pgoyette-compat-0407,
pgoyette-compat-0330,
pgoyette-compat-0322,
pgoyette-compat-0315,
pgoyette-compat,
netbsd-9-base,
netbsd-9-1-RELEASE,
netbsd-9-0-RELEASE,
netbsd-9-0-RC2,
netbsd-9-0-RC1,
is-mlppp-base,
is-mlppp
Branch point for: phil-wifi,
netbsd-9
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +2 -1
lines
Do not treat .info as warning for -W
Reported by: lwhsu at FreeBSD.org
Revision 1.103: download - view: text, markup, annotated - select for diffs
Thu Jul 20 19:29:54 2017 UTC (7 years, 4 months ago) by sjg
Branches: MAIN
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +7 -1
lines
Make compat.c handle SIGINT etc more like job.c
If there is a running child, pass the signal on, and
wait for it to exit before we self-terminate.
Reviewed by: christos
Revision 1.100.2.1: download - view: text, markup, annotated - select for diffs
Sat Jan 7 08:56:58 2017 UTC (7 years, 10 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.100: preferred, colored; next MAIN 1.101: preferred, colored
Changes since revision 1.100: +2 -2
lines
Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
Revision 1.102: download - view: text, markup, annotated - select for diffs
Wed Dec 7 15:00:46 2016 UTC (7 years, 11 months ago) by christos
Branches: MAIN
CVS tags: prg-localcount2-base3,
prg-localcount2-base2,
prg-localcount2-base1,
prg-localcount2-base,
prg-localcount2,
pgoyette-localcount-20170426,
pgoyette-localcount-20170320,
pgoyette-localcount-20170107,
perseant-stdc-iso10646-base,
perseant-stdc-iso10646,
netbsd-8-base,
netbsd-8-2-RELEASE,
netbsd-8-1-RELEASE,
netbsd-8-1-RC1,
netbsd-8-0-RELEASE,
netbsd-8-0-RC2,
netbsd-8-0-RC1,
matt-nb8-mediatek-base,
matt-nb8-mediatek,
bouyer-socketcan-base1,
bouyer-socketcan-base,
bouyer-socketcan
Branch point for: netbsd-8
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +2 -2
lines
Refactor and simplify objdir setting code.
Revision 1.101: download - view: text, markup, annotated - select for diffs
Fri Aug 26 23:28:39 2016 UTC (8 years, 3 months ago) by dholland
Branches: MAIN
CVS tags: pgoyette-localcount-20161104,
localcount-20160914
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +2 -1
lines
Add a .DELETE_ON_ERROR: magic target that causes *failed* targets as
well as *interrupted* targets to be deleted. The name and behavior of
the variable matches gmake.
Also fix a glitch in newline output on error in compat mode that I
discovered while doing it.
Closes PR 51376.
Revision 1.100: download - view: text, markup, annotated - select for diffs
Tue Jun 7 00:40:00 2016 UTC (8 years, 5 months ago) by sjg
Branches: MAIN
CVS tags: pgoyette-localcount-base,
pgoyette-localcount-20160806,
pgoyette-localcount-20160726
Branch point for: pgoyette-localcount
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +3 -1
lines
Extend the mtimes cache used by dir.c so it can be used by others.
We store both st_mtime and st_mode, since some callers care about the
later.
Reviewed by: christos
Revision 1.99: download - view: text, markup, annotated - select for diffs
Fri Jun 3 01:21:59 2016 UTC (8 years, 6 months ago) by sjg
Branches: MAIN
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +2 -1
lines
Add cached_realpath()
realpath(3) is expensive, and meta mode at least uses it extensively.
We use cached_realpath() to save the result of successful calls to
realpath(3) in a private variable context.
This improves the worst case performance (eg examining libc with
nothing to do) by a factor of 4.
Reviewed by: christos
Revision 1.98: download - view: text, markup, annotated - select for diffs
Thu Feb 18 18:29:14 2016 UTC (8 years, 9 months ago) by christos
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +5 -1
lines
Collapse the 3 boolean parameter to 1 flags parameter. No functional change.
Revision 1.97: download - view: text, markup, annotated - select for diffs
Sun Jan 17 15:32:38 2016 UTC (8 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +6 -1
lines
provide missing FD_CLOEXEC for the havenots.
Revision 1.96: download - view: text, markup, annotated - select for diffs
Mon Sep 21 21:50:16 2015 UTC (9 years, 2 months ago) by pooka
Branches: MAIN
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +10 -1
lines
Add more compat defs for code compiled for !NetBSD targets.
At least GNU Hurd lacks MAXHOSTNAMELEN/MAXPATHLEN/PATH_MAX, so make sure
those have some arbitrary semi-sane values.
from Robert Millan in PR misc/50166, with some modifications from myself
Revision 1.95: download - view: text, markup, annotated - select for diffs
Sun Sep 7 20:55:34 2014 UTC (10 years, 2 months ago) by joerg
Branches: MAIN
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +2 -40
lines
Revert all make changes except the unit tests to the state of three
weeks ago. Individual changes can be reapplied after review.
Revision 1.94: download - view: text, markup, annotated - select for diffs
Sat Aug 23 15:05:40 2014 UTC (10 years, 3 months ago) by christos
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +41 -3
lines
PR/46096: Jarmo Jaakkola: fix many problems with dependencies (PR 49086)
Quite extensive rewrite of the Suff module. Some ripple effects into
Parse and Targ modules too.
Dependency searches in general were made to honor explicit rules so
implicit and explicit sources are no longer applied on targets that
do not invoke a transformation rule.
Archive member dependency search was rewritten. Explicit rules now
work properly and $(.TARGET) is set correctly. POSIX semantics for
lib(member.o) and .s1.a rules are supported.
.SUFFIXES list maintenance was rewritten so that scanning of existing
rules works when suffixes are added and that clearing the suffix list
removes single suffix rules too. Transformation rule nodes are now
mixed with regular nodes so they are available as regular targets too
if needed (especially after the known suffixes are cleared).
The .NULL target was documented in the manual page, especially to
warn against using it when a single suffix rule would work.
A deprecation warning was also added to the manual and make also
warns the user if it encounters .NULL.
Search for suffix rules no longer allows the explicit dependencies
to override the selected transformation rule. A check is made in
the search that the transformation that would be tried does not
already exist in the chain. This prevents getting stuck in an infinite
loop under specific circumstances. Local variables are now set
before node's children are expanded so dynamic sources work in
multi-stage transformations. Make_HandleUse() no longer expands
the added children for transformation nodes, preventing triple
expansion and allowing the Suff module to properly postpone their
expansion until proper values are set for the local variables.
Directory prefix is no longer removed from $(.PREFIX) if the target
is found via directory search.
The last rule defined is now used instead of the first one (POSIX
requirement) in case a rule is defined multiple times. Everything
defined in the first instance is undone, but things added "globally"
are honored. To implement this, each node tracks attribute bits
which have been set by special targets (global) instead of special
sources (local). They also track dependencies that were added by
a rule with commands (local) instead of rule with no commands (global).
New attribute, OP_FROM_SYS_MK is introduced. It is set on all targets
found in system makefiles so that they are not eligible to become
the main target. We cannot just set OP_NOTMAIN because it is one of
the attributes inherited from transformation and .USE rules and would
make any eligible target that uses a built-in inference rule ineligible.
The $(.IMPSRC) local variable now works like in gmake: it is set to
the first prerequisite for explicit rules. For implicit rules it
is still the implied source.
The manual page is improved regarding the fixed features. Test cases
for the fixed problems are added.
Other improvements in the Suff module include:
- better debug messages for transformation rule search (length of
the chain is now visualized by indentation)
- Suff structures are created, destroyed and moved around by a set
of maintenance functions so their reference counts are easier
to track (this also gets rid of a lot of code duplication)
- some unreasonably long functions were split into smaller ones
- many local variables had their names changed to describe their
purpose instead of their type
Revision 1.89.2.2: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:05:00 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.89.2.1: preferred, colored; branchpoint 1.89: preferred, colored; next MAIN 1.90: preferred, colored
Changes since revision 1.89.2.1: +5 -0
lines
Rebase to HEAD as of a few days ago.
Revision 1.92.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:58:27 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.92: preferred, colored; next MAIN 1.93: preferred, colored
Changes since revision 1.92: +2 -1
lines
Rebase.
Revision 1.93: download - view: text, markup, annotated - select for diffs
Wed Jul 16 15:33:41 2014 UTC (10 years, 4 months ago) by christos
Branches: MAIN
CVS tags: tls-maxphys-base,
tls-earlyentropy-base,
netbsd-7-nhusb-base-20170116,
netbsd-7-nhusb-base,
netbsd-7-nhusb,
netbsd-7-base,
netbsd-7-2-RELEASE,
netbsd-7-1-RELEASE,
netbsd-7-1-RC2,
netbsd-7-1-RC1,
netbsd-7-1-2-RELEASE,
netbsd-7-1-1-RELEASE,
netbsd-7-1,
netbsd-7-0-RELEASE,
netbsd-7-0-RC3,
netbsd-7-0-RC2,
netbsd-7-0-RC1,
netbsd-7-0-2-RELEASE,
netbsd-7-0-1-RELEASE,
netbsd-7-0,
netbsd-7
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +2 -1
lines
PR/48367: David A. Holland: Mark possible submake nodes so that we can
avoid closing the job pipe on exec for them in order to make recursive
makes work in parallel.
Revision 1.87.2.2: download - view: text, markup, annotated - select for diffs
Thu May 22 11:42:46 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.87.2.1: preferred, colored; branchpoint 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87.2.1: +9 -2
lines
sync with head.
for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
Revision 1.92: download - view: text, markup, annotated - select for diffs
Wed Sep 4 15:38:26 2013 UTC (11 years, 3 months ago) by sjg
Branches: MAIN
CVS tags: yamt-pagecache-base9,
riastradh-xf86-video-intel-2-7-1-pre-2-21-15,
riastradh-drm2-base3
Branch point for: tls-earlyentropy
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +5 -1
lines
Add VAR_INTERNAL as a context for variables set by make itself,
which should not override those set by makefiles.
Currently MAKEFILE is the only variable affected.
Reviewed by: christos
Revision 1.89.2.1: download - view: text, markup, annotated - select for diffs
Sun Jun 23 06:29:00 2013 UTC (11 years, 5 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +5 -2
lines
resync from head
Revision 1.91: download - view: text, markup, annotated - select for diffs
Tue Jun 18 20:06:09 2013 UTC (11 years, 5 months ago) by sjg
Branches: MAIN
CVS tags: riastradh-drm2-base2,
riastradh-drm2-base1,
riastradh-drm2-base,
riastradh-drm2
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +4 -1
lines
Use a #define for the variable name we put in environment to pass .MAKE.LEVEL
in case we don't want to use gmake's MAKELEVEL in a different way.
Revision 1.90: download - view: text, markup, annotated - select for diffs
Mon Feb 25 01:57:14 2013 UTC (11 years, 9 months ago) by dholland
Branches: MAIN
CVS tags: agc-symver-base,
agc-symver
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +2 -2
lines
Fix obvious typo.
Revision 1.87.2.1: download - view: text, markup, annotated - select for diffs
Tue Oct 30 19:00:22 2012 UTC (12 years, 1 month ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +19 -11
lines
sync with head
Revision 1.89: download - view: text, markup, annotated - select for diffs
Tue Jun 12 19:21:51 2012 UTC (12 years, 5 months ago) by joerg
Branches: MAIN
CVS tags: yamt-pagecache-base8,
yamt-pagecache-base7,
yamt-pagecache-base6,
dholland-make-base
Branch point for: tls-maxphys
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +18 -11
lines
Replace __dead, __unused and the various printf format attributes
with versions prefixed by MAKE_ATTR_* to avoid modifying the
implementation namespace. Make sure they are available in all places
using nonints.h to fix bootstrap on Linux.
Revision 1.88: download - view: text, markup, annotated - select for diffs
Mon Jun 4 20:34:20 2012 UTC (12 years, 6 months ago) by sjg
Branches: MAIN
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +2 -1
lines
Var_UnExport() and setenv() can both realloc environ.
Use a common variable (savedEnv) to track that to avoid wasting memory.
Also, if providing setenv and unsetenv, do getenv too to ensure a consistent
set.
Revision 1.87: download - view: text, markup, annotated - select for diffs
Fri Sep 16 15:38:04 2011 UTC (13 years, 2 months ago) by joerg
Branches: MAIN
CVS tags: yamt-pagecache-base5,
yamt-pagecache-base4,
yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
netbsd-6-base,
netbsd-6-1-RELEASE,
netbsd-6-1-RC4,
netbsd-6-1-RC3,
netbsd-6-1-RC2,
netbsd-6-1-RC1,
netbsd-6-1-5-RELEASE,
netbsd-6-1-4-RELEASE,
netbsd-6-1-3-RELEASE,
netbsd-6-1-2-RELEASE,
netbsd-6-1-1-RELEASE,
netbsd-6-1,
netbsd-6-0-RELEASE,
netbsd-6-0-RC2,
netbsd-6-0-RC1,
netbsd-6-0-6-RELEASE,
netbsd-6-0-5-RELEASE,
netbsd-6-0-4-RELEASE,
netbsd-6-0-3-RELEASE,
netbsd-6-0-2-RELEASE,
netbsd-6-0-1-RELEASE,
netbsd-6-0,
netbsd-6,
matt-nb6-plus-nbase,
matt-nb6-plus-base,
matt-nb6-plus
Branch point for: yamt-pagecache
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +5 -1
lines
Use __dead consistently. If it doesn't exist, define it away.
Revision 1.86: download - view: text, markup, annotated - select for diffs
Wed May 4 20:38:32 2011 UTC (13 years, 7 months ago) by sjg
Branches: MAIN
CVS tags: cherry-xenmp-base,
cherry-xenmp
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +2 -1
lines
Add .MAKE.META.BAILIWICK - to identify the scope of make's control.
meta_oodate: if a file that was written or linked within our bailiwick,
but outside of .OBJDIR is missing, add it to missingFiles.
If we get to the end of the .meta file without seeing it [re]moved,
then consider the target out-of-date.
Revision 1.84.2.1: download - view: text, markup, annotated - select for diffs
Sat Mar 5 15:10:59 2011 UTC (13 years, 9 months ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.84: preferred, colored; next MAIN 1.85: preferred, colored
Changes since revision 1.84: +2 -1
lines
Sync with HEAD
Revision 1.85: download - view: text, markup, annotated - select for diffs
Sun Feb 20 23:12:09 2011 UTC (13 years, 9 months ago) by joerg
Branches: MAIN
CVS tags: bouyer-quota2-nbase
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +2 -1
lines
Use the current directory at start time for .PARSEDIR, if the filename
contains no /.
Revision 1.84: download - view: text, markup, annotated - select for diffs
Thu Nov 25 21:31:09 2010 UTC (14 years ago) by christos
Branches: MAIN
CVS tags: matt-mips64-premerge-20101231,
bouyer-quota2-base
Branch point for: bouyer-quota2
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +2 -3
lines
Instead of keeping around the mtime of the youngest child, keep a pointer
to it, so that we can print it when we do the out of date determination.
Revision 1.83: download - view: text, markup, annotated - select for diffs
Mon Sep 13 15:36:57 2010 UTC (14 years, 2 months ago) by sjg
Branches: MAIN
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +6 -1
lines
Add meta.c which implements "meta" mode for make.
In this mode, a .meta file is created for each target, capturing
the expanded commands used, any command output, and if filemon(9)
is available, a record of system calls which are of interest.
Not enabled unless USE_META=yes is set when building make.
Also, if FILEMON_H exists, meta.c will be compiled to use filemon(9).
Revision 1.82: download - view: text, markup, annotated - select for diffs
Fri Apr 23 00:18:50 2010 UTC (14 years, 7 months ago) by sjg
Branches: MAIN
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +8 -1
lines
On darwin at least, vfork() fails in child of vfork().
It probably shouldn't work anyway, so avoid this.
We use the macro vFork() - a function seems to cause problems
and is unnecessary overhead.
Revision 1.81: download - view: text, markup, annotated - select for diffs
Thu Apr 22 19:11:17 2010 UTC (14 years, 7 months ago) by sjg
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +2 -1
lines
Just because $TMPDIR is set does not mean it is valid.
Add a central function for creating temp files so we have one place to
audit.
Reviewed by: dh
Revision 1.80: download - view: text, markup, annotated - select for diffs
Wed Apr 7 00:11:27 2010 UTC (14 years, 8 months ago) by sjg
Branches: MAIN
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +7 -2
lines
Add:
.error "message"
.warning "message"
based on FreeBSD implementation.
add .info while were at it.
.ERROR: a target to run on error.
We pass the failing GNode to PrintOnError so it can set
.ERROR_TARGET.
.MAKE.MAKEFILE_PREFERENCE
As a means to control make's list of prefered makefile names.
(Default: "makefile Makefile")
.MAKE.DEPENDFILE
Names the file to read dependencies from
(Default ".depend")
.MAKE.MODE
Processed after all makefiles are read.
Can put make into "compat" mode (more to come).
Fix:
compat.c: Error code should not be sent to debug_file.
Make_DoAllVar: use DONE_ALLSRC to avoid processing a node multiple times.
ReadMakefile: we can simply use doing_depend to control setting MAKEFILE.
Revision 1.79: download - view: text, markup, annotated - select for diffs
Tue Sep 8 17:29:20 2009 UTC (15 years, 2 months ago) by sjg
Branches: MAIN
CVS tags: matt-premerge-20091211
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +2 -1
lines
Reviewed by: apb
Use .MAKE.LEVEL to track recursion.
The first instance of make will have .MAKE.LEVEL 0, which
can be handy for excluding rules which should not apply
in a sub-make.
gmake and freebsd's make have a similar mechanism, but each
uses a different variable to track it. Since we cannot be
compatible with both, we allow the makefiles to cope if they want
by handling the export of .MAKE.LEVEL+1 in Var_Set().
Revision 1.78: download - view: text, markup, annotated - select for diffs
Sat Jan 24 14:43:28 2009 UTC (15 years, 10 months ago) by dsl
Branches: MAIN
CVS tags: jym-xensuspend-nbase,
jym-xensuspend-base,
jym-xensuspend
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +2 -2
lines
Fixes to includes of make_malloc.h to that it actually builds when
USE_EMALLOC is undefined.
Fixes earlier fixes :-)
Revision 1.77: download - view: text, markup, annotated - select for diffs
Sat Jan 24 11:59:39 2009 UTC (15 years, 10 months ago) by dsl
Branches: MAIN
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +2 -5
lines
Move the bmake_malloc() functions into their own .c and .h files.
Include instead of make.h in a few places.
Revision 1.76: download - view: text, markup, annotated - select for diffs
Sat Dec 13 15:19:29 2008 UTC (15 years, 11 months ago) by dsl
Branches: MAIN
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +2 -7
lines
Use NULL instead of -1 cast to the relavant type (usually via NIL).
This was a suggestion from christos - so blame him if there is a deep
reason for using -1 :-)
Revision 1.75: download - view: text, markup, annotated - select for diffs
Sun Dec 7 04:50:15 2008 UTC (15 years, 11 months ago) by christos
Branches: MAIN
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +16 -15
lines
add debug flag for cwd.
Revision 1.67.4.3: download - view: text, markup, annotated - select for diffs
Sun Mar 23 00:49:02 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.67.4.2: preferred, colored; branchpoint 1.67: preferred, colored; next MAIN 1.68: preferred, colored
Changes since revision 1.67.4.2: +3 -2
lines
sync with HEAD
Revision 1.74: download - view: text, markup, annotated - select for diffs
Fri Feb 15 21:29:50 2008 UTC (16 years, 9 months ago) by christos
Branches: MAIN
CVS tags: yamt-pf42-baseX,
yamt-pf42-base4,
yamt-pf42-base3,
yamt-pf42-base2,
yamt-pf42-base,
yamt-pf42,
wrstuden-revivesa-base-3,
wrstuden-revivesa-base-2,
wrstuden-revivesa-base-1,
wrstuden-revivesa-base,
wrstuden-revivesa,
netbsd-5-base,
netbsd-5-2-RELEASE,
netbsd-5-2-RC1,
netbsd-5-2-3-RELEASE,
netbsd-5-2-2-RELEASE,
netbsd-5-2-1-RELEASE,
netbsd-5-2,
netbsd-5-1-RELEASE,
netbsd-5-1-RC4,
netbsd-5-1-RC3,
netbsd-5-1-RC2,
netbsd-5-1-RC1,
netbsd-5-1-5-RELEASE,
netbsd-5-1-4-RELEASE,
netbsd-5-1-3-RELEASE,
netbsd-5-1-2-RELEASE,
netbsd-5-1-1-RELEASE,
netbsd-5-1,
netbsd-5-0-RELEASE,
netbsd-5-0-RC4,
netbsd-5-0-RC3,
netbsd-5-0-RC2,
netbsd-5-0-RC1,
netbsd-5-0-2-RELEASE,
netbsd-5-0-1-RELEASE,
netbsd-5-0,
netbsd-5,
mjf-devfs2-base,
mjf-devfs2,
matt-nb5-pq3-base,
matt-nb5-pq3,
matt-nb5-mips64-u2-k2-k4-k7-k8-k9,
matt-nb5-mips64-u1-k1-k5,
matt-nb5-mips64-premerge-20101231,
matt-nb5-mips64-premerge-20091211,
matt-nb5-mips64-k15,
matt-nb5-mips64,
matt-nb4-mips64-k7-u2a-k9b,
matt-mips64-base2,
matt-armv6-nbase,
keiichi-mipv6-nbase,
keiichi-mipv6-base,
keiichi-mipv6,
hpcarm-cleanup-nbase,
hpcarm-cleanup-base
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +3 -3
lines
back all changes out until I fix it properly.
Revision 1.73: download - view: text, markup, annotated - select for diffs
Thu Feb 14 22:11:20 2008 UTC (16 years, 9 months ago) by christos
Branches: MAIN
CVS tags: christos-broken
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +4 -4
lines
- use pid_t/size_t as appropriate instead of int.
- use %ld to print pids.
- fix a bit of lint.
- WARNS=4
Revision 1.72: download - view: text, markup, annotated - select for diffs
Sat Jan 19 06:52:15 2008 UTC (16 years, 10 months ago) by sjg
Branches: MAIN
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +3 -2
lines
Implement -dl (aka LOUD) to override '@' at the start of script lines.
Based on supplied patch.
PR: 37202
Revision 1.67.4.2: download - view: text, markup, annotated - select for diffs
Wed Jan 9 02:00:47 2008 UTC (16 years, 10 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.67.4.1: preferred, colored; branchpoint 1.67: preferred, colored
Changes since revision 1.67.4.1: +3 -1
lines
sync with HEAD
Revision 1.71: download - view: text, markup, annotated - select for diffs
Fri Dec 21 20:32:24 2007 UTC (16 years, 11 months ago) by dsl
Branches: MAIN
CVS tags: matt-armv6-base
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +3 -1
lines
If make can't find a rule to create a file it needs to satisfy a rule
that came from .depend then just output a message and contine.
Revision 1.67.4.1: download - view: text, markup, annotated - select for diffs
Tue Nov 6 23:36:02 2007 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +4 -1
lines
sync with HEAD
Revision 1.70: download - view: text, markup, annotated - select for diffs
Mon Oct 8 20:26:36 2007 UTC (17 years, 1 month ago) by sjg
Branches: MAIN
CVS tags: cube-autoconf-base,
cube-autoconf
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +4 -3
lines
Use .MAKE.MAKEFILES to track all the makefiles that have been read
so they can be used in dependency rules.
Revision 1.69: download - view: text, markup, annotated - select for diffs
Fri Oct 5 15:27:45 2007 UTC (17 years, 2 months ago) by sjg
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +3 -2
lines
Add the ability to .export variables to the environment.
Revision 1.68: download - view: text, markup, annotated - select for diffs
Mon Oct 1 22:14:11 2007 UTC (17 years, 2 months ago) by sjg
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +2 -1
lines
Add the ability to tweak the token output before targets in job mode.
Eg.
.MAKE.JOB.PREFIX=${.newline}---${.MAKE:T}[${.MAKE.PID}]
would produce
---make[1234] target ---
Revision 1.64.2.1.2.1: download - view: text, markup, annotated - select for diffs
Mon Sep 3 07:05:30 2007 UTC (17 years, 3 months ago) by wrstuden
Branches: wrstuden-fixsa
Diff to: previous 1.64.2.1: preferred, colored; next MAIN 1.64.2.2: preferred, colored
Changes since revision 1.64.2.1: +3 -15
lines
Sync w/ NetBSD-4-RC_1
Revision 1.64.2.2: download - view: text, markup, annotated - select for diffs
Tue Jun 5 20:53:30 2007 UTC (17 years, 6 months ago) by bouyer
Branches: netbsd-4
CVS tags: wrstuden-fixsa-newbase,
wrstuden-fixsa-base-1,
wrstuden-fixsa-base,
netbsd-4-0-RELEASE,
netbsd-4-0-RC5,
netbsd-4-0-RC4,
netbsd-4-0-RC3,
netbsd-4-0-RC2,
netbsd-4-0-RC1,
netbsd-4-0-1-RELEASE,
netbsd-4-0
Diff to: previous 1.64.2.1: preferred, colored; branchpoint 1.64: preferred, colored; next MAIN 1.65: preferred, colored
Changes since revision 1.64.2.1: +3 -15
lines
Apply patch (requested by tron in ticket #696):
usr.bin/make/compat.c patch
usr.bin/make/cond.c patch
usr.bin/make/dir.c patch
usr.bin/make/for.c patch
usr.bin/make/main.c patch
usr.bin/make/make.1 patch
usr.bin/make/make.c patch
usr.bin/make/make.h patch
usr.bin/make/nonints.h patch
usr.bin/make/parse.c patch
usr.bin/make/str.c patch
usr.bin/make/targ.c patch
usr.bin/make/util.c patch
usr.bin/make/var.c patch
Synchronize make(1) with HEAD branch to increase perfomance and
improve stability.
Revision 1.67: download - view: text, markup, annotated - select for diffs
Mon Jan 1 21:48:43 2007 UTC (17 years, 11 months ago) by dsl
Branches: MAIN
CVS tags: matt-mips64-base,
matt-mips64,
hpcarm-cleanup
Branch point for: matt-armv6
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +1 -12
lines
Remove the (now redundant) MAKE_BSIZE, BUF_DEF_SIZE from buf.c is used instead.
Revision 1.64.2.1: download - view: text, markup, annotated - select for diffs
Wed Dec 20 22:42:11 2006 UTC (17 years, 11 months ago) by bouyer
Branches: netbsd-4
Branch point for: wrstuden-fixsa
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +2 -2
lines
Pull up following revision(s) (requested by dsl in ticket #285):
usr.bin/make/cond.c: revision 1.36
usr.bin/make/parse.c: revision 1.121-1.124
usr.bin/make/make.h: revision 1.65
usr.bin/make/targ.c: revision 1.46
usr.bin/make/main.c: revision 1.138-1.139
Simplify the code that processes .if lines.
It doesn't need a two-dimensional array to remember the states of .if lines.
It would be even simpler if we didn't try to detect .else and .elif lines
that follow .else lines.
Unfortunately this isn't the code that is stupendously slow...
Unknot this code slightly by avoiding 'break/return; else' and by putting
the short parts of some conditionals first.
First step towards speeding up the parsing of makefiles (esp. the unwanted
parts of .if clauses).
There should be no changes to the logic.
There really is no point calling estrdup() to get a copy of the makefile name
into every 'gnode' (aka target), instead just copy a pointer to the string
and avoid freeing the original name when we close the file.
I can't imagine any makefile set where this gives a larger footprint!
Add anewline to the end of the error message output when the debug log
file cannot be opened.
Put the big block of code that was common to ParseDoInclude() and
ParseTraditionalInclude() into a separate routine.
Fix the 'use after free' and 'free on item not malloced' that got added
to ParseTraditionalInclude() in Feb 2006 (rev 1.111).
Kill the 'PTR' struct and put both its members into IFile.
Remove the parameter from ParseEOF(), 1 of the 3 calls passed the wrong value!
Fortunately another test stopped anything nasty happening, we'll use that
test instead.
Revert part of a recent commit.
ParseEOF() shouldn't close the original file.
Some minor changes:
- Only test 'printVars' once.
Has side effect of not trying to find the 'main' target for '-V varname'.
- Only reap the single child process in Cmd_Exec(),
I think this is for 'xx != cmd' so probobably no other children should exist.
- Don't read and parse .depend if '-r' and '-V varname' are set.
I suspect that .depend shouldn't affect the output of any -V command...
Revision 1.66: download - view: text, markup, annotated - select for diffs
Wed Dec 20 20:46:35 2006 UTC (17 years, 11 months ago) by dsl
Branches: MAIN
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +3 -4
lines
Fix detection and reporting of dependency loops in parallel makes.
make's unit_tests should now run again.
Revision 1.65: download - view: text, markup, annotated - select for diffs
Mon Dec 4 21:34:47 2006 UTC (18 years ago) by dsl
Branches: MAIN
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +2 -2
lines
There really is no point calling estrdup() to get a copy of the makefile name
into every 'gnode' (aka target), instead just copy a pointer to the string
and avoid freeing the original name when we close the file.
I can't imagine any makefile set where this gives a larger footprint!
Revision 1.64: download - view: text, markup, annotated - select for diffs
Fri Nov 17 22:07:39 2006 UTC (18 years ago) by dsl
Branches: MAIN
CVS tags: netbsd-4-base
Branch point for: netbsd-4
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +22 -22
lines
A rather large rototil in the way the parallel make code schedules jobs.
This gives a considerable speedup in the processing of .WAIT and .ORDER.
Both .WAIT and .ORDER stop both the commands of the node, and its dependant
nodes being built until the LH nodes are complete.
.WAIT only applies to the dependency line on which it appears, whereas
.ORDER applies globally between the two nodes.
In both cases dependant nodes can be built because other targets need them.
make now processes the target list left to right, scheduling child nodes
as they are needed to make other nodes (instead of attempting to generate
a bottom-up dependency graph at the start). This means that 'make -j1'
will tend to build in the same order as a non-parallel make.
Note that:
all: x y
x: a .WAIT b
y: b .WAIT a
does not generate a dependency loop.
But
x: y
.ORDER y x
does (unless something elswhere causes 'y' to be built).
Revision 1.63: download - view: text, markup, annotated - select for diffs
Sun Oct 15 08:38:22 2006 UTC (18 years, 1 month ago) by dsl
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +2 -1
lines
Output all debug trace output through 'debug_file' defaulting to 'stdout'.
(Almost all the debug output went there, but some went to stderr.)
Split the parsing of -d (debug flags) out into its own routine.
Allow the output filename to be changed by specifying -dF<file> to create
a log file, or -dF+<file> to append to it. <file> may be stdout or stderr.
Also change so that -d-<flags> acts on <flags> locally but doesn't copy
them to MAKEFLAGS so they aren't inherited by child makes.
I'm not 100% happy with the command line syntax for the above, so they are
currently undocumented.
Revision 1.62: download - view: text, markup, annotated - select for diffs
Mon Oct 9 14:36:41 2006 UTC (18 years, 1 month ago) by dsl
Branches: MAIN
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +1 -5
lines
Rip out the code for the undocumented -P (don't use pipes for command
output) option. I'm sure it is baggage from the past.
Revision 1.61: download - view: text, markup, annotated - select for diffs
Sat Aug 26 22:13:00 2006 UTC (18 years, 3 months ago) by christos
Branches: MAIN
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +1 -2
lines
Don't include <util.h> if we are not NetBSD. Other OS's don't have it.
Revision 1.60: download - view: text, markup, annotated - select for diffs
Sat Aug 26 18:17:42 2006 UTC (18 years, 3 months ago) by christos
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +2 -1
lines
More programs using efun.
Revision 1.59: download - view: text, markup, annotated - select for diffs
Fri Mar 10 15:53:55 2006 UTC (18 years, 8 months ago) by christos
Branches: MAIN
CVS tags: chap-midi-nbase,
chap-midi-base,
chap-midi,
abandoned-netbsd-4-base,
abandoned-netbsd-4
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +1 -1
lines
PR/33049: OKANO Takayoshi: Fix the spelling of NetBSD RCS tags.
Revision 1.58: download - view: text, markup, annotated - select for diffs
Sun Feb 26 22:45:46 2006 UTC (18 years, 9 months ago) by apb
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +17 -9
lines
Make ".WAIT" apply recursively to all children of nodes on the right
hand side of the .WAIT, except when the recursive interpretation would
cause a cycle in the dependency graph.
Discussed in tech-toolchain. Reviewed by christos, sjg.
Revision 1.57: download - view: text, markup, annotated - select for diffs
Sun Jan 22 19:54:55 2006 UTC (18 years, 10 months ago) by dsl
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +1 -0
lines
Make .NOTPARALLEL stop the job engine issuing more than one token (instead
of trying to de-jobify the make.
You can now put .NOTPARALLEL in a submake of a recursive make (where it is
using a job-token pipe from the outer make and have it only run a single job.
You can also specify .NOTPARRALEL in the root makefile of a large recursive
make and have the submakes run multiple commands.
Add some diagnostics printfs (enabled with -dp) to the parser.
Revision 1.56: download - view: text, markup, annotated - select for diffs
Sat Dec 24 20:52:20 2005 UTC (18 years, 11 months ago) by perry
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +0 -6
lines
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
Revision 1.55: download - view: text, markup, annotated - select for diffs
Fri Jun 17 19:25:20 2005 UTC (19 years, 5 months ago) by jmc
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +1 -0
lines
Add new debugging option '-dn' which will leave the scripts fed into make on
-j jobs in /tmp for debugging purposes. Add a note to the man page that
this could cause problems if run a lot (due to the number of files created)
Revision 1.54: download - view: text, markup, annotated - select for diffs
Sun May 8 00:38:47 2005 UTC (19 years, 7 months ago) by christos
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +2 -2
lines
Now that dependencies in .BEGIN, .END, and .INTERRUPT work, allow them.
Revision 1.53: download - view: text, markup, annotated - select for diffs
Sun May 1 01:25:36 2005 UTC (19 years, 7 months ago) by christos
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +2 -1
lines
Don't accept dependencies for .BEGIN, .END, and .INTERRUPT since they
don't make sense or work anyway.
Revision 1.52: download - view: text, markup, annotated - select for diffs
Thu Jul 15 09:01:29 2004 UTC (20 years, 4 months ago) by yamt
Branches: MAIN
CVS tags: netbsd-3-base,
netbsd-3-1-RELEASE,
netbsd-3-1-RC4,
netbsd-3-1-RC3,
netbsd-3-1-RC2,
netbsd-3-1-RC1,
netbsd-3-1-1-RELEASE,
netbsd-3-1,
netbsd-3-0-RELEASE,
netbsd-3-0-RC6,
netbsd-3-0-RC5,
netbsd-3-0-RC4,
netbsd-3-0-RC3,
netbsd-3-0-RC2,
netbsd-3-0-RC1,
netbsd-3-0-3-RELEASE,
netbsd-3-0-2-RELEASE,
netbsd-3-0-1-RELEASE,
netbsd-3-0,
netbsd-3
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +11 -1
lines
define __GNUC_PREREQ__ if it isn't available on host.
Revision 1.51: download - view: text, markup, annotated - select for diffs
Thu Jul 1 20:38:09 2004 UTC (20 years, 5 months ago) by jmc
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +8 -1
lines
Change to use __unused instead and provide a compat definition in make.h if
not already defined from cdefs.h
Revision 1.50: download - view: text, markup, annotated - select for diffs
Sun Dec 7 20:30:28 2003 UTC (21 years ago) by dsl
Branches: MAIN
CVS tags: netbsd-2-base,
netbsd-2-1-RELEASE,
netbsd-2-1-RC6,
netbsd-2-1-RC5,
netbsd-2-1-RC4,
netbsd-2-1-RC3,
netbsd-2-1-RC2,
netbsd-2-1-RC1,
netbsd-2-1,
netbsd-2-0-base,
netbsd-2-0-RELEASE,
netbsd-2-0-RC5,
netbsd-2-0-RC4,
netbsd-2-0-RC3,
netbsd-2-0-RC2,
netbsd-2-0-RC1,
netbsd-2-0-3-RELEASE,
netbsd-2-0-2-RELEASE,
netbsd-2-0-1-RELEASE,
netbsd-2-0,
netbsd-2
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +2 -1
lines
Add a -Dg3 which outputs the 'input graph' only on error exit.
Lets you see the wood for the trees...
Revision 1.49: download - view: text, markup, annotated - select for diffs
Sat Sep 27 21:29:37 2003 UTC (21 years, 2 months ago) by sjg
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +8 -1
lines
Implement :[] modifier to allow picking a range of words out of a variable.
Also :tW and a W flag to :C and :S to allow treating value as a single word.
Add unit tests for the above, and fix some corner cases.
Based on patches supplied by Alan Barrett <apb@cequrux.com>
Revision 1.48: download - view: text, markup, annotated - select for diffs
Wed Sep 10 18:04:23 2003 UTC (21 years, 2 months ago) by jmmv
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +2 -1
lines
Add the 'e' debug flag (i.e., '-d e'): when enabled, show the "target
failed" and "command failed" messages added recently. These introduce
too much noise when debugging some kind of problems, specially in pkgsrc.
Revision 1.47: download - view: text, markup, annotated - select for diffs
Thu Aug 7 11:14:55 2003 UTC (21 years, 4 months ago) by agc
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +33 -1
lines
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
Revision 1.46: download - view: text, markup, annotated - select for diffs
Mon Jul 14 18:19:12 2003 UTC (21 years, 4 months ago) by christos
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +16 -6
lines
Pass WARNS=3
Revision 1.45: download - view: text, markup, annotated - select for diffs
Fri Mar 14 05:19:43 2003 UTC (21 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +4 -1
lines
Add a -X option, which prevents make(1) from putting variables
set on the command line into the environment individually. This
can be useful on systems which have a tight limit on the size
of the argument space.
Revision 1.44: download - view: text, markup, annotated - select for diffs
Sat Jun 15 18:24:57 2002 UTC (22 years, 5 months ago) by wiz
Branches: MAIN
CVS tags: fvdl_fs64_base
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +19 -39
lines
Remove !__STDC__ stuff, de-__P(), ANSIfy, and de-register.
Revision 1.43: download - view: text, markup, annotated - select for diffs
Wed Mar 20 18:10:30 2002 UTC (22 years, 8 months ago) by pk
Branches: MAIN
CVS tags: netbsd-1-6-base,
netbsd-1-6-RELEASE,
netbsd-1-6-RC3,
netbsd-1-6-RC2,
netbsd-1-6-RC1,
netbsd-1-6-PATCH002-RELEASE,
netbsd-1-6-PATCH002-RC4,
netbsd-1-6-PATCH002-RC3,
netbsd-1-6-PATCH002-RC2,
netbsd-1-6-PATCH002-RC1,
netbsd-1-6-PATCH002,
netbsd-1-6-PATCH001-RELEASE,
netbsd-1-6-PATCH001-RC3,
netbsd-1-6-PATCH001-RC2,
netbsd-1-6-PATCH001-RC1,
netbsd-1-6-PATCH001,
netbsd-1-6
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +5 -1
lines
Xref: parse.c, rev 1.46; make.c, rev 1.23
In these revisions `::' dependency handling was simplified by not linking
the cohort nodes into the dependency graph. This broke dependency checking
on all but the first instance of a `::' target since all of the cohort nodes
now just form a collection of disconnected dependency graphs.
Fix this by keeping a back-reference in each cohort to its leader (the
first instance of a :: node with the same name) and a count of the number
of cohorts that need to be made before dependent nodes are scheduled.
Classically, we'd need six centurions for cohort, but in this case one
suffices...
Revision 1.42: download - view: text, markup, annotated - select for diffs
Mon Feb 18 00:35:39 2002 UTC (22 years, 9 months ago) by pk
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +2 -2
lines
Make_HandleUse() no longer has a return value,
Revision 1.41: download - view: text, markup, annotated - select for diffs
Mon Feb 4 17:24:56 2002 UTC (22 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +3 -4
lines
Remove OP_NOSUFF, fix OP_MADE in compat mode [from pk], and make the OP_MADE
comment reflect reality.
Revision 1.40: download - view: text, markup, annotated - select for diffs
Sun Feb 3 21:41:44 2002 UTC (22 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +3 -2
lines
Bring down the number of stat(2) system calls from 682 to 294. This change
adds a .NOSUFF directive that has been applied to targets that have been
already made, and are not supposed to have suffix rules applied to them.
Revision 1.39: download - view: text, markup, annotated - select for diffs
Wed Oct 31 03:59:42 2001 UTC (23 years, 1 month ago) by tv
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +2 -1
lines
Overhaul the initialization and handling of .OBJDIR:
* Replace chdir_verify_path() with Main_SetObjdir(), which can be called
externally, and can take a "const char *". (There's a lot of non-const
"char *" passing around in var.c of what should be const strings....)
* Rewrite the initial "find my .OBJDIR" code to make use of the new
function. This still functions as it had in the past, but the comment
above this block was changed to reflect reality: if MAKEOBJDIRPREFIX
or MAKEOBJDIR are set in the environment, then *only that value* is
tried; make does not fall back to obj.MACHINE, obj, and /usr/obj/`pwd`
as it would without these env vars set.
* Add a new special target, .OBJDIR:, which when parsed will cause make to
change to a new object directory and reset .OBJDIR, and PWD in the
environment. This will allow some makefiles (mainly, src/tools)
to override the default objdir semantics in order to add custom logic.
Revision 1.38: download - view: text, markup, annotated - select for diffs
Wed Oct 31 01:15:57 2001 UTC (23 years, 1 month ago) by tv
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +3 -2
lines
Allow "-m" to be used in a .MAKEFLAGS: special target and get it to work.
(This splits out the "default system include paths" into its own Lst
variable, and uses it only if sysIncPath is empty. This allows sysIncPath
to be filled in by the Makefile itself.)
Revision 1.37: download - view: text, markup, annotated - select for diffs
Sun Sep 16 16:34:43 2001 UTC (23 years, 2 months ago) by wiz
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +2 -2
lines
Spell 'occurred' with two 'r's.
Revision 1.36: download - view: text, markup, annotated - select for diffs
Tue Jul 3 18:08:51 2001 UTC (23 years, 5 months ago) by christos
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +2 -1
lines
add .USEBEFORE Attribute
Revision 1.35: download - view: text, markup, annotated - select for diffs
Sat Jun 9 05:22:47 2001 UTC (23 years, 6 months ago) by sjg
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +3 -1
lines
Modify handling of command line variable assignments and their exporting
via MAKEFLAGS. Instead of appending them directly to .MAKEFLAGS, put
them in .MAKEOVERRIDES (and ensure they are quoted). This is now done
in Var_Set when it exports VAR_CMD's.
Use ExportMAKEFLAGS() to export MAKEFLAGS, using the combined content
of .MAKEFLAGS and .MAKEOVERRIDES (with duplicate supression).
If .MAKEFLAGS is assigned to in a Makefile, ExportMAKEFLAGS is called again.
This allows a line like:
.MAKEOVERRIDES=
to effectively stop the exporting of the command line vars in MAKEFLAGS.
Revision 1.34: download - view: text, markup, annotated - select for diffs
Fri Jun 1 20:33:37 2001 UTC (23 years, 6 months ago) by sjg
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +3 -1
lines
A number of semi-related changes.
1. make -dx turns on DEBUG_SHELL which causes sh -x to be used where
possible.
2. PrintOnError() is now called when make is stopping due to an error.
This routine reports the curdir and the value of any variables listed
in MAKE_PRINT_VAR_ON_ERROR.
3. Variables set via command line, are propagated to child-makes via
MAKEFLAGS. This behaviour appears to be necessary for POSIX (according
to the GNU folk anyway).
4. Do not reset MAKEFILE when reading ".depend" as this rather eliminates the
usefulness of ${MAKEFILE}.
5. Added ${.newline} as a simple means of being able to include \n in the
result of a :@ loop expansion.
6. Set ${MAKE_VERSION} if defined. Need to come up with a useful value.
Reviewed: christos
Revision 1.33: download - view: text, markup, annotated - select for diffs
Sun Jan 14 05:34:06 2001 UTC (23 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +3 -1
lines
- make the second list of commands override the first like gmake does
- remember where the first command definition occured so that we can debug
things.
Revision 1.32: download - view: text, markup, annotated - select for diffs
Wed Jan 10 15:54:00 2001 UTC (23 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +6 -1
lines
PR/11800: Chris Demetriou: Add -W flag to exit on parse warnings.
While I am here, s/make:.*"/%s:\1", progname/
Revision 1.31: download - view: text, markup, annotated - select for diffs
Mon Jan 1 15:50:23 2001 UTC (23 years, 11 months ago) by sommerfeld
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +3 -1
lines
Missing bit of last change
Revision 1.30: download - view: text, markup, annotated - select for diffs
Sat Dec 30 02:05:21 2000 UTC (23 years, 11 months ago) by sommerfeld
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +4 -1
lines
Add a token-passing scheme to allow a recursive make to successfully
use -j; all make's in a recursive build cooperate to limit the total
number of jobs, using a token-passing scheme.
The current token passing algorithm is similar to the one implemented
by gmake; there is a single pipe which is inherited through the entire
process hierarchy; tokens are obtained by reading a byte from the
"read end" of the pipe, and are returned by writing them to the "write
end". This exact algorithm is likely to change in the future.
Implementation details:
- Use the new trace facility to allow measurement of the
effectiveness of different token-passing schemes
- Get a token in MakeStartJobs(), return it in Make_Update()
- Eliminate Job_Full() and the jobFull global since they are
redundant with token system.
- Add an "internal" -J option (to pass the token pipe fd's down to
submakes) and a -T option for tracing.
- Change how compatMake is forced so that -j means something when
inherited by submakes.
- When waiting for a token, poll the token-passing pipe as well as
the output pipes of existing jobs.
Revision 1.25.2.1: download - view: text, markup, annotated - select for diffs
Fri Jun 23 16:39:44 2000 UTC (24 years, 5 months ago) by minoura
Branches: minoura-xpg4dl
Diff to: previous 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25: +3 -1
lines
Sync w/ netbsd-1-5-base.
Revision 1.29: download - view: text, markup, annotated - select for diffs
Sun Jun 11 07:39:53 2000 UTC (24 years, 5 months ago) by mycroft
Branches: MAIN
CVS tags: netbsd-1-5-base,
netbsd-1-5-RELEASE,
netbsd-1-5-PATCH003,
netbsd-1-5-PATCH002,
netbsd-1-5-PATCH001,
netbsd-1-5-BETA2,
netbsd-1-5-BETA,
netbsd-1-5-ALPHA2,
netbsd-1-5
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +2 -1
lines
Readd optimization last night. Problems earlier were partially due to the
arguments names on one function being swapped (by a previous author).
Do not do any duplicate suppression when a source list is created. Instead:
* OP_MADE protects against trying to make the source multiple times.
* A new OP_MARK flag is introduced to suppress duplicates while expanding
the .ALLSRC variable and .USE targets.
This turns the O(n^2) insertion into O(n) in most cases.
This is tested with a `make build' and some special test cases.
Revision 1.28: download - view: text, markup, annotated - select for diffs
Sat Jun 10 22:28:33 2000 UTC (24 years, 5 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +0 -1
lines
Back out last night's optimization for now.
Revision 1.27: download - view: text, markup, annotated - select for diffs
Sat Jun 10 21:44:08 2000 UTC (24 years, 5 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +2 -1
lines
Introduce an OP_MARK bit, and use it to suppress duplicates during .ALLSRC
and .USE expansion. Also, remove some more Lst_Member() checks that are now
redundant.
Revision 1.26: download - view: text, markup, annotated - select for diffs
Thu Jun 1 04:16:39 2000 UTC (24 years, 6 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +2 -1
lines
Create a `for' context, and substitute iteration variable from it using the
normal Var_Parse() path. This allows :R, etc. to work on iteration variables.
Revision 1.25: download - view: text, markup, annotated - select for diffs
Thu May 4 18:27:53 2000 UTC (24 years, 7 months ago) by drochner
Branches: MAIN
CVS tags: minoura-xpg4dl-base
Branch point for: minoura-xpg4dl
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +2 -2
lines
make cleaner C for more picky compilers
Revision 1.24: download - view: text, markup, annotated - select for diffs
Thu Apr 20 11:23:26 2000 UTC (24 years, 7 months ago) by sjg
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +3 -1
lines
Changes to make MAKEOBJDIRPREFIX useful.
Firstly, we ignore getenv("PWD") if MAKEOBJDIRPREFIX is set so that we always
get the same value for .CURDIR regardless of how make was invoked.
Second, when executing a command we check if it is ${.MAKE} or ${.MAKE:T}
without a preceeding chdir, if so we insert a chdir(${.CURDIR}) so that
the Makefile will be found by the child make. Note that this behaviour is
dissabled if MAKEOBJDIRPREFIX is not set or if NOCHECKMAKECHDIR is set.
See the comments in main.c for more detail.
With these two changes, one can successfully build usr/src using MAKEOBJDIRPREFIX
allowing the src to be mounted from a CD-ROM.
Revision 1.23: download - view: text, markup, annotated - select for diffs
Thu Sep 16 19:57:54 1999 UTC (25 years, 2 months ago) by kim
Branches: MAIN
CVS tags: wrstuden-devbsize-base,
wrstuden-devbsize-19991221,
wrstuden-devbsize,
comdex-fall-1999-base,
comdex-fall-1999
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +6 -1
lines
Make this compile on Solaris...
Revision 1.22: download - view: text, markup, annotated - select for diffs
Wed Sep 15 02:56:34 1999 UTC (25 years, 2 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +3 -2
lines
Replace the linear variable list in the GNode with a hash table. Gives a
small (~10% on my machine) speedup building libc.
Changes by: perry (+ bug fix and minor change by me)
Reviewed by: mycroft sommerfeld
Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Nov 11 19:37:06 1998 UTC (26 years ago) by christos
Branches: MAIN
CVS tags: netbsd-1-4-base,
netbsd-1-4-RELEASE,
netbsd-1-4-PATCH003,
netbsd-1-4-PATCH002,
netbsd-1-4-PATCH001,
netbsd-1-4
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +6 -4
lines
This patch fixes the problem introduced in the previous commit where
parents would be get remade, even if children were not really updated
by the commands executed for them. It also makes all the children have
the real modification time set if possible, so it should fix some other
timing weirdnesses...
- collapse childMade and make fields into flags and convert them to bits
CHILDMADE and REMAKE
- introduce FORCE flag that gets set in all the parents of a child that
has no sources and does not exist.
- set oodate if the FORCE flag is set, and not if CHILDMADE
- centralize the RECHECK into Make_Recheck() and use this in make.c and compat.c
- use Make_TimeStamp for all child -> parent timestamp propagations
Revision 1.20: download - view: text, markup, annotated - select for diffs
Sun Oct 18 14:23:48 1998 UTC (26 years, 1 month ago) by christos
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +8 -6
lines
Only define const and volatile when __STDC__ is not defined (for BOOTSTRAP)
Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu May 21 17:19:46 1998 UTC (26 years, 6 months ago) by tv
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -2
lines
Make a MAKE_BOOTSTRAP case work on NetBSD, too, for cross-compile cases
Revision 1.18: download - view: text, markup, annotated - select for diffs
Tue Sep 23 21:15:08 1997 UTC (27 years, 2 months ago) by fair
Branches: MAIN
CVS tags: netbsd-1-3-base,
netbsd-1-3-RELEASE,
netbsd-1-3-PATCH003-CANDIDATE2,
netbsd-1-3-PATCH003-CANDIDATE1,
netbsd-1-3-PATCH003-CANDIDATE0,
netbsd-1-3-PATCH003,
netbsd-1-3-PATCH002,
netbsd-1-3-PATCH001,
netbsd-1-3-BETA,
netbsd-1-3
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +3 -3
lines
fix some ints that should be "time_t" per PR#4139
Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu May 8 21:24:46 1997 UTC (27 years, 7 months ago) by gwr
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +2 -1
lines
Add the new .NOPATH feature which can be used to disable .PATH search
for particular targets, i.e. .depend, objects, etc. (from Christos).
Revision 1.16: download - view: text, markup, annotated - select for diffs
Fri May 2 14:24:28 1997 UTC (27 years, 7 months ago) by christos
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +3 -1
lines
- Target searching addition:
Make used to only use the search path for nodes that were pure
sources (not targets of other sources). This has been corrected
and now gnu-autoconf generated Makefiles work in directories other
than the source one.
- Suffix transformation rescanning:
Suffix transformations (.c.o:; cc ...) were only recognized in
the past when both suffixes were members of the suffix list.
Thus a sequence like:
.z.b:
echo ${.TARGET}
.SUFFIXES: .z
would cause .z.b: to be inserted as a regular target (and the main
target in this case). Other make programs always add rules that
start with a period in the transformation list and never consider
them as targets. We cannot do that (consider .depend files) so we
resort to scanning the list of the current targets every time a
suffix gets added, and we mutate existing targets that are now
valid transformation rules into transformation rules. If the
transformed target was also the main target, we set the main target
to be the next target in the targets list.
Revision 1.15: download - view: text, markup, annotated - select for diffs
Mon Mar 10 21:20:00 1997 UTC (27 years, 9 months ago) by christos
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +3 -1
lines
Add a .MADE directive to indicated that the children of a target are
up-to-date, even when they are not. This is to simulate our current
make install behavior with proper dependencies.
Revision 1.14: download - view: text, markup, annotated - select for diffs
Thu Feb 20 16:51:49 1997 UTC (27 years, 9 months ago) by christos
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +3 -1
lines
Reported by cgd: fix .USE directive problems:
1. ${.*} variables did not get expanded in dependencies.
2. expanded ${.*} variables in .USE dependencies can cause tree
restructuring; handle it.
3. in compat mode, expand .USE before evaluating the list of targets,
instead of doing .USE expansions on demand, because they can cause
tree restructuring.
Revision 1.9.4.1: download - view: text, markup, annotated - select for diffs
Sun Jan 26 05:51:46 1997 UTC (27 years, 10 months ago) by rat
Branches: netbsd-1-2
CVS tags: netbsd-1-2-PATCH001
Diff to: previous 1.9: preferred, colored; next MAIN 1.10: preferred, colored
Changes since revision 1.9: +27 -16
lines
Update make(1) from trunk, by request from Christos Zoulas. Fixes many bugs.
Revision 1.13: download - view: text, markup, annotated - select for diffs
Tue Dec 31 18:02:22 1996 UTC (27 years, 11 months ago) by christos
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +3 -2
lines
BSD did not traditionally have <sys/cdefs.h>; use BSD4_4 instead and include
<sys/param.h> to grab it.
Revision 1.12: download - view: text, markup, annotated - select for diffs
Tue Dec 31 17:55:02 1996 UTC (27 years, 11 months ago) by christos
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +17 -9
lines
define const and volatile for non __STDC__
Revision 1.1.1.2 (vendor branch): download - view: text, markup, annotated - select for diffs
Sat Dec 28 04:41:11 1996 UTC (27 years, 11 months ago) by tls
Branches: WFJ-920714,
CSRG
CVS tags: lite-2
Diff to: previous 1.1.1.1: preferred, colored
Changes since revision 1.1.1.1: +30 -5
lines
Import 4.4BSD-Lite2 sources onto CSRG branch (already merged at head)
Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Nov 6 17:59:17 1996 UTC (28 years, 1 month ago) by christos
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +10 -10
lines
- 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.
Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Aug 13 16:39:30 1996 UTC (28 years, 3 months ago) by christos
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +3 -1
lines
Protect __P from being multiply defined (for systems that already define it)
Revision 1.9: download - view: text, markup, annotated - select for diffs
Wed Mar 6 00:15:21 1996 UTC (28 years, 9 months ago) by christos
Branches: MAIN
CVS tags: netbsd-1-2-base,
netbsd-1-2-RELEASE,
netbsd-1-2-BETA
Branch point for: netbsd-1-2
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +3 -1
lines
Fix PR/2118; apply sysincludes patch.
Revision 1.8: download - view: text, markup, annotated - select for diffs
Sun Feb 4 22:20:53 1996 UTC (28 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +2 -2
lines
fix pr/1421 and pr/1997
Revision 1.7: download - view: text, markup, annotated - select for diffs
Sat Dec 16 05:03:11 1995 UTC (28 years, 11 months ago) by christos
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -1
lines
- Added .WAIT to synchronize between sources like other pmake variants.
- Updated documentation to include .ORDER .PARALLEL .NO_PARALLEL .NONPARALLEL
Revision 1.6: download - view: text, markup, annotated - select for diffs
Wed Jun 14 15:19:43 1995 UTC (29 years, 5 months ago) by christos
Branches: MAIN
CVS tags: netbsd-1-1-base,
netbsd-1-1-RELEASE,
netbsd-1-1-PATCH001,
netbsd-1-1
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +6 -4
lines
- $NetBSD$ rcsids
- Fixed so that .[A-Z]* targets that do not match keywords are ignored as
Posix mandates
- Added .PHONY target keyword
Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon May 9 06:36:21 1994 UTC (30 years, 7 months ago) by glass
Branches: MAIN
CVS tags: netbsd-1-0-base,
netbsd-1-0-RELEASE,
netbsd-1-0-PATCH1,
netbsd-1-0-PATCH06,
netbsd-1-0-PATCH05,
netbsd-1-0-PATCH04,
netbsd-1-0-PATCH03,
netbsd-1-0-PATCH02,
netbsd-1-0-PATCH0,
netbsd-1-0
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +7 -1
lines
bootstrap improvements
Revision 1.4: download - view: text, markup, annotated - select for diffs
Sun Apr 17 03:09:51 1994 UTC (30 years, 7 months ago) by glass
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +3 -1
lines
bootstrap changes
Revision 1.3: download - view: text, markup, annotated - select for diffs
Sat Mar 5 00:35:00 1994 UTC (30 years, 9 months ago) by cgd
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +19 -3
lines
fixes/improvements from Christos Zoulas <christos@deshaw.com>.
Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Aug 1 18:12:00 1993 UTC (31 years, 4 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +2 -1
lines
Add RCS identifiers.
Revision 1.1.1.1 (vendor branch): download - view: text, markup, annotated - select for diffs
Sun Mar 21 09:45:37 1993 UTC (31 years, 8 months ago) by cgd
Branches: WFJ-920714,
CSRG
CVS tags: patchkit-0-2-2,
netbsd-alpha-1,
netbsd-0-9-base,
netbsd-0-9-RELEASE,
netbsd-0-9-BETA,
netbsd-0-9-ALPHA2,
netbsd-0-9-ALPHA,
netbsd-0-9,
netbsd-0-8,
WFJ-386bsd-01
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +0 -0
lines
initial import of 386bsd-0.1 sources
Revision 1.1: download - view: text, markup, annotated - select for diffs
Sun Mar 21 09:45:37 1993 UTC (31 years, 8 months ago) by cgd
Branches: MAIN
Initial revision
CVSweb <webmaster@jp.NetBSD.org>