summaryrefslogtreecommitdiff
path: root/filedef.h
AgeCommit message (Collapse)AuthorFilesLines
2013-05-17Update copyright for changes in 2013.Paul Smith1-1/+1
2013-05-17Remove the dlopen() pointer from struct filedef.Paul Smith1-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.
2013-05-13[Savannah #20501] Handle adding -r/-R to MAKEFLAGS in the makefile.Paul Smith1-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.
2013-05-03Fix interfacing with and remaking dynamic objects on MS-Windows.Eli Zaretskii1-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.
2013-04-28Small cleanups and fixes.Paul Smith1-5/+5
2012-03-05Simplify copyrights using ranges of years.Paul Smith1-3/+1
The new GNU Maintainer's Manual allows the use of year ranges in certain situations; take advantage of this simplification.
2012-03-04Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines.Paul Smith1-5/+5
Fixes Savannah bug #34530.
2012-01-16Update copyright notices.Paul Smith1-3/+3
2011-11-14Changes to resolve warnings.Paul Smith1-1/+1
Fixes Savannah bug #34608.
2011-11-13Enable high-resolution timestamps for Darwin (Mac OSX)Paul Smith1-1/+1
Patch provided by Troy Runkel <Troy.Runkel@mathworks.com>
2010-11-06Improve backslash/newline handling to adhere to POSIX requirements.Paul Smith1-1/+0
2010-07-13Update copyrights for 2010.Paul Smith1-2/+2
2009-10-25Update copyright years.Paul Smith1-2/+2
2009-09-30Fix Savannah bugs #15110, #25493, #12686, and #17740.Boris Kolpackov1-0/+2
2009-09-24- Rework secondary expansion so we only defer it if there's a possibilityPaul Smith1-1/+4
it might be needed: for most situations we parse prereqs immediately as we used to. Reduces memory usage. - Fixes Savannah bug #18622.
2009-06-04- Modify access of config and gnulib Savannah modules to use GITPaul Smith1-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.
2007-07-04* Update to GPLv3Paul Smith1-4/+4
* Update copyright to 2007 * Fix download URL for translation files (thanks to Thiemo Seufer)
2007-03-20This is a major update, which switches virtually every allocated-but-not-freedPaul Smith1-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.
2006-04-07Code cleanup: Remove all references to PARAMS() & ansi2knr.Paul Smith1-16/+15
2006-02-11Last of the copyright updates.Paul Smith1-1/+2
2006-02-11Update copyright and license notices on all files.Paul Smith1-14/+11
Added new file strcache.c to various non-UNIX makefiles and build scripts.
2006-02-06Fix Savannah bugs # 15341, 15534, and 15533.Paul Smith1-0/+1
Rewrite large chunks of the "Commands" section of the manual to better describe then backslash-newline handling, the SHELL variable, etc.
2005-10-24Make second expansion optional (partial implementation).Paul Smith1-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.
2005-05-03Fix problems with losing tokens in the jobserver, reported by GrantPaul Smith1-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...
2005-02-28* New feature: -L optionPaul Smith1-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)
2005-02-27Implementation of the .DEFAULT_TARGET special variable.Boris Kolpackov1-0/+1
2004-02-24Many compiler warning cleanups.Paul Smith1-2/+2
Small fixes for W32 (from Jonathan Grant <jg-make@jguk.org>) Maintainer enhancements to clean up the tree.
2002-08-01New variables, .VARIABLES and .TARGETS.Paul Smith1-0/+1
2002-07-11Install Greg McGary's patches to port the id-utils hashing functions toPaul Smith1-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.
2000-07-30* Various fixes; see the ChangeLog.Paul Smith1-4/+3
2000-07-07* Minor code cleanupsPaul Smith1-3/+3
* Fix for PR/1811, from Paul Eggert.
2000-06-20* More updates and fixes.Paul Smith1-7/+0
2000-06-13* Some timestamp fixes from Paul Eggert.Paul Smith1-31/+44
* Fix compilation on Linux; use libintl.h and not gettext.h when using the system gettext.
2000-03-26* Ignore attempt to change a file into itself.Paul Smith1-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.
2000-02-05* Fix PR/1407.Paul Smith1-4/+4
* Keep filename/lineno information for variables, for debugging.
2000-01-23* A few fixes.Paul Smith1-2/+0
1999-07-22* Installed new versions of GLIBC glob library.Paul Smith1-0/+6
* Installed Tim Magill's "graph pruning" performance enhancement. * Update version to 3.77.90 for the release. * Require automake 1.4.
1999-07-15* Fix up and document $(apply ...) function.Paul Smith1-0/+2
1999-07-06* Various bugfixes/updates. See ChangeLog.Paul Smith1-3/+4
1999-03-05* Update FSF address info in copyright notices.Paul Smith1-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.
1998-10-03Checkpoint changes. Bug fixes, mostly.Paul Smith1-13/+66
1998-07-30GNU make release 3.77.Paul Smith1-0/+7
1997-08-27Updates for GNU make 3.75.92.Paul Smith1-4/+9
1997-08-18Bug fixes and automake changes.Paul Smith1-1/+1
1997-04-07Changes for make 3.75.1Paul Smith1-7/+7
1996-03-20Tue Mar 19 20:21:34 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>Roland McGrath1-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.