Age | Commit message (Collapse) | Author | Files | Lines |
|
We tried to get some efficiency by avoiding a parse_file_seq() for simple
pattern prerequisites, but this also means no wildcard expansion was
happening, so add it back. Add regression tests for wildcards in target and
prerequisite lists.
|
|
This global variable could be modified during recursion so keep our
own local copy to compare against.
|
|
|
|
|
|
This mode replaces the previous heuristic setting enabled with -O, where we
would log directory enter/leave for each synchronized output. Now we only
do that if --trace=dir is given.
|
|
|
|
If output-sync is enabled, have make write the command line to the temp file
instead of printing it directly to the screen to ensure that the output is
ordered properly. Also, remove extraneous enter/leave operations by having
them printed directly when dumping temp file output.
|
|
Add gmk_alloc() and gmk_free() functions so loadable objects can access our
memory model. Also provide a more extensive example in the manual.
|
|
If we are not going to sync a command line then dump any collected output
first to preserve ordering. Do some code cleanup:
* Move the handle init to a separate function.
* Move the temp file truncation to the output function.
* Remember whether we sync in a variable for readability.
* Handle EINTR and short writes in child_out().
* Always call sync_output() in case output_sync was changed due to error.
|
|
load.c (load_object, load_file): Accept an additional argument
DLP and return in it a pointer that can be used to unload the
dynamic object.
read.c (eval): Call load_file with an additional argument, and
record the pointer returned there in the 'struct file' object of
dynamic objects in that object's 'struct file'.
commands.c (execute_file_commands): Unload dynamic objects
before remaking them, to avoid failure to remake if the OS doesn't
allow overwriting objects that are in use.
filedef.h (struct file): New member dlopen_ptr.
gnumake.h (GMK_EXPORT): Define to dllexport/dllimport
decorations for Windows and to nothing on other platforms.
(gmk_eval, gmk_expand, gmk_add_function): Add GMK_EXPORT qualifier
to prototypes.
makeint.h (MAIN): Define before including gnumake.h, to give
correct dllexport decorations to exported functions.
(load_file): Adjust prototype.
loadapi.c: Don't include gnumake.h, since makeint.h already
includes it, and takes care of defining MAIN before doing so.
build_w32.bat (LinkGCC): Produce an import library for functions
exported by Make for loadable dynamic objects.
w32/compat/posixfcn.c (dlclose): New function.
w32/include/dlfcn.h (dlclose): Add prototype.
scripts/features/load: Fix signatures of testload_gmk_setup and
explicit_setup, to bring them in line with the documentation.
|
|
Enhance the child_error() function so that it will write error output to the
child's sync output buffer, if it exists. If it doesn't the output goes to
stdout/stderr.
|
|
|
|
A new flag to the -O/--output-sync, "job", selects a per-job (that is, per
line of a recipe) output synchronization. To support this move the close of
the temp file out of the sync_output() function and don't do it until we free
the child, since we may call sync_output() multiple times in a given recipe.
When we set up for a new temp file, if we're in per-job mode we truncate the
file and seek to the beginning to re-use it for every job.
|
|
|
|
|
|
|
|
Based on work by David Boyce <David.S.Boyce@gmail.com>.
|
|
Provide a simple API for loaded objects to interact with GNU make. I still
won't guarantee that this API won't change but it's much closer to something
that's supported and provides easy-to-use interfaces with a public header
file.
|
|
|
|
|
|
|
|
Provides support for dynamically loadable objects in GNU make, as a
"technology preview".
|
|
|
|
parent needs to be remade. Fixes Savannah bug #30653.
|
|
|
|
|
|
Fixes Savannah bug #12126 and bug #16545
|
|
Fixes Savannah bug #34530.
|
|
escape characters (backslashes) in the target name.
See Savannah bug #33399
|
|
that MAKEFLAGS is set properly so the re-exec'd make runs in parallel.
See Savannah bug #33873.
|
|
and store them in static variables; however one value (std_dirs)
was not being stored statically so the second time through it was
not set.
Fixes Savannah bug #32511
|
|
to be freed (if they're the value of a variable that's reset for example).
See Savannah patch #7534
|
|
Newer version of VMS support strncasecmp() so update the config.h.
|
|
Feature submitted by David Wheeler.
|
|
variable, and if so don't try to update it. Savannah bug #31743.
|
|
|
|
Fix some doc bugs.
Implement the --trace flag.
Show filename/linenumber on error.
|
|
- Add oneshell to $(.FEATURES) (forgot that!)
- Fix Savannah bug #30612: handling of archive references with >1 object
|
|
rebuilding makefiles.
|
|
|
|
- Set up .FEATURES with separate calls for optional features, as some
compilers don't like conditionals inside macro invocations.
|
|
|
|
|
|
|
|
- Add some tests for unresolved bugs.
|
|
|
|
- Add new "-all" flag to the test suite to run tests that don't pass yet
- Add some non-passing tests
- Fix from Andreas Buening for OS/2.
|
|
variables and pattern rules.
|
|
of implicit rules.
- Fix leaked memory when dealing with implicit rule chains that
have file variables or pattern variables.
|
|
it might be needed: for most situations we parse prereqs immediately as
we used to. Reduces memory usage.
- Fixes Savannah bug #18622.
|