summaryrefslogtreecommitdiff
path: root/filedef.h
Commit message (Collapse)AuthorAgeFilesLines
* Update source file format: remove TABs, use GNU coding styles.Paul Smith2013-05-171-34/+34
|
* Update copyright for changes in 2013.Paul Smith2013-05-171-1/+1
|
* Remove the dlopen() pointer from struct filedef.Paul Smith2013-05-171-3/+2
| | | | | | | | | This pointer is almost never needed, and it increases the size of the filedef struct for all files (of which there are a huge number for large builds). Instead keep a bit field marking whether the file is a loaded object and if so call a new function to unload it. In load.c we keep a simple linked list of loaded objects (of which there will be very few typically) and their dlopen() pointers.
* [Savannah #20501] Handle adding -r/-R to MAKEFLAGS in the makefile.Paul Smith2013-05-131-0/+1
| | | | | | | If -R is set in the makefile and not the command line, then go through all the default variables and undefine them. If -r is set in the makefile and not in the command line, then remove all .SUFFIX prefixes (unless the user set it) and SUFFIX variable setting. In -p mode don't print builtins.
* Fix interfacing with and remaking dynamic objects on MS-Windows.Eli Zaretskii2013-05-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Small cleanups and fixes.Paul Smith2013-04-281-5/+5
|
* Simplify copyrights using ranges of years.Paul Smith2012-03-051-3/+1
| | | | | The new GNU Maintainer's Manual allows the use of year ranges in certain situations; take advantage of this simplification.
* Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines.Paul Smith2012-03-041-5/+5
| | | | Fixes Savannah bug #34530.
* Update copyright notices.Paul Smith2012-01-161-3/+3
|
* Changes to resolve warnings.Paul Smith2011-11-141-1/+1
| | | | Fixes Savannah bug #34608.
* Enable high-resolution timestamps for Darwin (Mac OSX)Paul Smith2011-11-131-1/+1
| | | | Patch provided by Troy Runkel <Troy.Runkel@mathworks.com>
* Improve backslash/newline handling to adhere to POSIX requirements.Paul Smith2010-11-061-1/+0
|
* Update copyrights for 2010.Paul Smith2010-07-131-2/+2
|
* Update copyright years.Paul Smith2009-10-251-2/+2
|
* Fix Savannah bugs #15110, #25493, #12686, and #17740.Boris Kolpackov2009-09-301-0/+2
|
* - Rework secondary expansion so we only defer it if there's a possibilityPaul Smith2009-09-241-1/+4
| | | | | | it might be needed: for most situations we parse prereqs immediately as we used to. Reduces memory usage. - Fixes Savannah bug #18622.
* - Modify access of config and gnulib Savannah modules to use GITPaul Smith2009-06-041-2/+1
| | | | | | | | | | | | | - Fix Savannah bug #24655. - Fix Savannah bug #24588. - Fix Savannah bug #24277. - Fix Savannah bug #25697. - Fix Savannah bug #25694. - Fix Savannah bug #25460. - Fix Savannah bug #26207. - Fix Savannah bug #25712. - Fix Savannah bug #26593. - Fix various doc issues.
* * Update to GPLv3Paul Smith2007-07-041-4/+4
| | | | | * Update copyright to 2007 * Fix download URL for translation files (thanks to Thiemo Seufer)
* This is a major update, which switches virtually every allocated-but-not-freedPaul Smith2007-03-201-9/+9
| | | | | | | | | | | | | | | string into the strcache. As a side-effect, many more structure members and function arguments can/should be declared const. As mentioned in the changelog, unfortunately measurement shows that this change does not yet reduce memory. The problem is with secondary expansion: because of this we store all the prerequisites in the string cache twice. First we store the prerequisite string after initial expansion but before secondary expansion, then we store each individual file after secondary expansion and expand_deps(). I plan to change expand_deps() to be callable in either context (eval or snap_deps) then have non-second-expansion targets call expand_deps() during eval, so that we only need to store that dependency list once.
* Code cleanup: Remove all references to PARAMS() & ansi2knr.Paul Smith2006-04-071-16/+15
|
* Last of the copyright updates.Paul Smith2006-02-111-1/+2
|
* Update copyright and license notices on all files.Paul Smith2006-02-111-14/+11
| | | | Added new file strcache.c to various non-UNIX makefiles and build scripts.
* Fix Savannah bugs # 15341, 15534, and 15533.Paul Smith2006-02-061-0/+1
| | | | | Rewrite large chunks of the "Commands" section of the manual to better describe then backslash-newline handling, the SHELL variable, etc.
* Make second expansion optional (partial implementation).Paul Smith2005-10-241-5/+5
| | | | | | | | | | | | | | | | I decided this feature was too impacting to make the permanent default behavior. This set of changes makes the default behavior of make the old behavior (no second expansion). If you want second expansion, you must define the .SECONDEXPANSION: special target before the first target that needs it. This set of changes ONLY fixes explicit and static pattern rules to work like this. Implicit rules still have second expansion enabled all the time: I'll work on that next. Note that there is still a backward-incompatibility: now to get the old SysV behavior using $$@ etc. in the prerequisites list you need to set .SECONDEXPANSION: as well.
* Fix problems with losing tokens in the jobserver, reported by GrantPaul Smith2005-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Taylor. There are two forms of this: first, it was possible to lose tokens when using -j and -l at the same time, because waiting jobs were not checked when determining whether any jobs were outstanding. Second, if you had an exported recursive variable that contained a $(shell ...) function there is a possibility to lose tokens, since a token was taken but the child list was not updated until after the shell function was complete. To resolve this I introduced a new variable that counted the number of tokens we have obtained, rather than checking whether there were any children on the list. I also added some sanity checks to make sure we weren't writing back too many or not enough tokens. And, the master make will drain the token pipe before exiting and compare the count of tokens at the end to what was written there at the beginning. Also: * Ensure a bug in the environment (missing "=") doesn't cause make to core. * Rename the .DEFAULT_TARGET variable to .DEFAULT_GOAL, to match the terminology in the documentation and other variables like MAKECMDGOALS. * Add documentation of the .DEFAULT_GOAL special variable. Still need to document the secondary expansion stuff...
* * New feature: -L optionPaul Smith2005-02-281-0/+3
| | | | | | | | * New function: $(info ...) * Disallow $(eval ...) to create prereq relationships inside command scripts (caused core dumps) * Try to allow more tests to succeed in Windows/DOS by sanitizing CRLF and \ * Various bug fixes and code cleanups (see the ChangeLog entry)
* Implementation of the .DEFAULT_TARGET special variable.Boris Kolpackov2005-02-271-0/+1
|
* Many compiler warning cleanups.Paul Smith2004-02-241-2/+2
| | | | | Small fixes for W32 (from Jonathan Grant <jg-make@jguk.org>) Maintainer enhancements to clean up the tree.
* New variables, .VARIABLES and .TARGETS.Paul Smith2002-08-011-0/+1
|
* Install Greg McGary's patches to port the id-utils hashing functions toPaul Smith2002-07-111-6/+6
| | | | | | | GNU make. Also he provides some other performance fixups after doing some profiling of make on large makefiles. Modify the test suite to allow the use of Valgrind to find memory problems.
* * Various fixes; see the ChangeLog.Paul Smith2000-07-301-4/+3
|
* * Minor code cleanupsPaul Smith2000-07-071-3/+3
| | | | * Fix for PR/1811, from Paul Eggert.
* * More updates and fixes.Paul Smith2000-06-201-7/+0
|
* * Some timestamp fixes from Paul Eggert.Paul Smith2000-06-131-31/+44
| | | | | * Fix compilation on Linux; use libintl.h and not gettext.h when using the system gettext.
* * Ignore attempt to change a file into itself.Paul Smith2000-03-261-2/+2
| | | | | | * Define COFLAGS to avoid unknown variable warning. * Fix some usec problems on UnixWare. * Don't remove .INTERMEDIATE targets specified on the command line.
* * Fix PR/1407.Paul Smith2000-02-051-4/+4
| | | | * Keep filename/lineno information for variables, for debugging.
* * A few fixes.Paul Smith2000-01-231-2/+0
|
* * Installed new versions of GLIBC glob library.Paul Smith1999-07-221-0/+6
| | | | | | * Installed Tim Magill's "graph pruning" performance enhancement. * Update version to 3.77.90 for the release. * Require automake 1.4.
* * Fix up and document $(apply ...) function.Paul Smith1999-07-151-0/+2
|
* * Various bugfixes/updates. See ChangeLog.Paul Smith1999-07-061-3/+4
|
* * Update FSF address info in copyright notices.Paul Smith1999-03-051-1/+2
| | | | | | | | * Update maintainers build process; remove GNUmakefile. Require builders to run automake && autoreconf by hand. * Use AC_SUBST_FILE to get the maintMakefile included, rather than GNU make's include directive, which conflicts with automake 1.4's include directive.
* Checkpoint changes. Bug fixes, mostly.Paul Smith1998-10-031-13/+66
|
* GNU make release 3.77.Paul Smith1998-07-301-0/+7
|
* Updates for GNU make 3.75.92.Paul Smith1997-08-271-4/+9
|
* Bug fixes and automake changes.Paul Smith1997-08-181-1/+1
|
* Changes for make 3.75.1Paul Smith1997-04-071-7/+7
|
* Tue Mar 19 20:21:34 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>Roland McGrath1996-03-201-0/+120
Merged VMS port from Klaus Kaempf <kkaempf@didymus.rmi.de>. * make.h (PARAMS): New macro. * config.h-vms: New file. * makefile.com: New file. * makefile.vms: New file. * readme.vms: New file. * vmsdir.h: New file. * vmsfunctions.c: New file. * vmsify.c: New file. * file.h: Renamed to filedef.h to avoid conflict with VMS system hdr. * ar.c: Added prototypes and changes for VMS. * commands.c: Likewise. * commands.h: Likewise. * default.c: Likewise. * dep.h: Likewise. * dir.c: Likewise. * expand.c: Likewise. * file.c: Likewise. * function.c: Likewise. * implicit.c: Likewise. * job.c: Likewise. * job.h: Likewise. * main.c: Likewise. * make.h: Likewise. * misc.c: Likewise. * read.c: Likewise. * remake.c: Likewise. * remote-stub.c: Likewise. * rule.c: Likewise. * rule.h: Likewise. * variable.c: Likewise. * variable.h: Likewise. * vpath.c: Likewise. * compatMakefile (srcs): Rename file.h to filedef.h.