summaryrefslogtreecommitdiff
path: root/variable.c
AgeCommit message (Collapse)AuthorFilesLines
2015-03-24Support SunOS make target-specific variablesIgor Pashev1-0/+3
2015-01-27Fix bs-nl handling, exit and Environment for VMS.John Malmberg1-12/+32
This fix required a complete rewrite of the command parser vmsjobs.c child_execute_job. The old parser had too many incorrect assumptions about DCL commands and could not be repaired to extended. The parser now more closely parses VMS commands and handles quoted commands and redirection. Command File mode has been improved, but can not fully support bs-nl syntax. VMS Unix shell simulation has been improved. * commands.c: vms_comma_separator is now a run-time setting. * function.c: vms_comma_separator is now a run-time setting. * function.c(func_basename_dir) now reports "[]" or "./" based on VMS crtl runtime setting. * job.c(start_job_command): VMS Handle empty commands propery. * main.c: Add VMS environment variables for run-time settings. * vms_legacy_behavior - Force older behavior. * vms_comma_separator - Commas or spaces for separators. * vms_unix_simulation - Enhanced Posix shell simulation features. * Detect if VMS CRTL is set to report Unix paths instead of VMS. * ':' and '>' are also MAP_DIRSEP on VMS. * makeint.h: Add VMS run-time option variables. * readme.vms: Update to current behavior. * variable.c(define_variable_in_set): Fix VMS Environment variable lookup. * variable.c(define_automatic_variables): Remove some VMS specific automatic variables and use the Unix ones instead. * vms_export_symbol.c: Set max symbol size correctly. * vmsjobs.c: child_execute_job() complete rewrite of VMS comand parsing. * vmsjobs.c(build_vms_cmd): VMS commmand building with shell simulation. Signed-off-by: Paul Smith <psmith@gnu.org>
2014-09-30Update Copyright statements for 2014.Paul Smith1-1/+1
2014-07-07* various: Assume ISO C89-compliant free() implementation.Paul Smith1-17/+7
2014-07-07* maintMakefile, various: Improve constification of the codebase.Paul Smith1-14/+10
2013-11-23[SV 40361] Don't use vsnprintf(), which is an ISO C99 function.Paul Smith1-1/+1
* output.c (error, fatal, message): Take an extra argument specifying how many bytes are used by the formatted arguments. (get_buffer): New function that allocates the requested buffer size. Remove msc_vsnprintf(), vfmtconcat(), and fmtconcat() as unneeded. * makeint.h: Declare various helper macros for generating output. * *.c: Change all error(), fatal(), message() calls to use the macros, or pass the extra length argument directly.
2013-09-22Add VMS port updates from Hartmut Becker.Paul Smith1-1/+1
2013-06-22Create a character map to use for locating stop-points in strings.Paul Smith1-1/+1
In various places we were passing flags and characters to compare, then using complex conditionals to see where to stop in string searches. Performance numbers reveal that we were spending as much as 23% of our processing time in these functions, most of it in the comparison lines. Instead create a character map and use a single bitwise comparison to determine if this is any one of the stop characters.
2013-05-27Create a new variable MAKE_HOST providing the host architecture.Paul Smith1-0/+1
2013-05-17Update source file format: remove TABs, use GNU coding styles.Paul Smith1-230/+230
2013-05-17Update copyright for changes in 2013.Paul Smith1-1/+1
2013-05-13[Savannah #20501] Handle adding -r/-R to MAKEFLAGS in the makefile.Paul Smith1-23/+20
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-01-20Rename struct floc to typedef gmk_floc as an externally scoped symbol.Paul Smith1-3/+3
2013-01-20Rename the make.h file to makeint.h for internal use only.Paul Smith1-1/+1
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-9/+9
Fixes Savannah bug #34530.
2012-01-30Add support for "::=" simple assignment operator.Paul Smith1-29/+47
The next POSIX standard will define "::=" to have the same behavior as GNU make's ":=", so add support for this new operator.
2012-01-16Update copyright notices.Paul Smith1-3/+3
2011-04-18Add new feature: != shell assignment for portability with BSD make.Paul Smith1-1/+37
Feature submitted by David Wheeler.
2010-11-06Improve backslash/newline handling to adhere to POSIX requirements.Paul Smith1-7/+45
2010-08-27 variable.c (define_automatic_variables) [__MSDOS__ || WINDOWS32]:Eli Zaretskii1-1/+17
Remove trailing backslashes in $(@D), $(<D), etc., for consistency with forward slashes. Fixes Savannah bug #30795.
2010-07-13Update copyrights for 2010.Paul Smith1-2/+2
2009-10-25Update copyright years.Paul Smith1-2/+2
2009-10-25Various simple code cleanups.Paul Smith1-27/+27
2009-10-06Implement the new undefine directive.Boris Kolpackov1-0/+45
2009-09-28Implement the shortest stem first search order for pattern-specific ↵Boris Kolpackov1-9/+43
variables and pattern rules.
2009-09-16- Add xcalloc() and call itPaul Smith1-5/+9
- Fix memory errors found by valgrind - Remove multi_glob() and empower parse_file_seq() to do its job: the goal here is to remove the confusing reverse/re-reverse we do on the file lists: needed for future fixes. - Add a prefix arg to parse_file_seq() - Make concat() variadic so it can take arbitrary #'s of strings
2009-08-02- Fix Savannah bug #27093Paul Smith1-9/+14
- Fix Savannah bug #27143 - Fix Savannah bug #23960 - Fix Savannah bug #27148
2009-05-26Add 'private' variable modifier, feature submitted by Ramon Garcia.Paul Smith1-60/+109
Rework the parser for variables to allow multiple modifiers and also allow for variables and targets with modifier names, like "export" and "private".
2009-05-24Found this change in an old CVS workspace: rewrite savestring() to thePaul Smith1-1/+1
more standard xstrndup().
2008-01-26(target_environment): Don't use shell_var if its `value' field is NULL.Eli Zaretskii1-9/+12
2007-12-22configh.dos.template [__DJGPP__]: Replace HAVE_SYS_SIGLIST withEli Zaretskii1-0/+3
HAVE_DECL_SYS_SIGLIST. job.c (child_execute_job): Remove __MSDOS__ because MSDOS/DJGPP build does not use child_execute_job. variable.c (define_automatic_variables) [__MSDOS__]: Always export the SHELL environment variable to the child.
2007-11-04New special variable: .RECIPEPREFIXPaul Smith1-4/+18
Allows the user to reset the prefix character for introducing recipe lines from the default (tab) to any other single character, and back again. Also, reworked the manual to consistently use the word "recipe" to describe the set of commands we use to update a target, instead of the various phrases used in the past: "commands", "command lines", "command scripts", etc.
2007-10-13Windows: allow SHELL to be set to a more complex value by checking itsPaul Smith1-1/+18
expansion to see if it's a valid shell, not just the unexpanded value.
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-27/+28
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-11-18Fix from Eli for incorrect value of $(MAKE) on Cygwin.Paul Smith1-1/+1
A few changes from char* to void* where appropriate, and removing of unnecessary casts. Much more work on const-ifying the codebase. This round involves some code changes to make it correct. NOTE!! There will almost certainly be problems on the non-POSIX ports that will need to be addressed after the const changes are finished: they will need to be const-ified properly and there may need to be some changes to allocate memory, etc. as well. The next (last?) big push for this, still to come, is const-ifying the filenames in struct file, struct dep, etc. This will allow us to store file names in the string cache and finally resolve Savannah bug #15182 (make uses too much memory), among other advantages.
2006-10-01Fixed a number of documentation bugs, plus some build/install issues:Paul Smith1-1/+1
16304, 16468, 16577, 17701, 17880, 16051, 16652, 16698 Plus some from the mailing list. Imported a patch from Eli to allow Cygwin builds to support DOS-style pathnames.
2006-04-09Another round of cleanups:Paul Smith1-23/+22
- Add more warnings. - Rename variables that mask out-scope vars with the same name. - Remove all casts of return values from xmalloc, xrealloc, and alloca. - Remove casts of the first argument to xrealloc. - Convert all bcopy/bzero/bcmp invocations to use memcp/memmove/memset/memcmp.
2006-03-08Some test updates for Windows.Paul Smith1-1/+2
Handle SHELL set on the command line properly for windows.
2006-02-21Fix a potential core dump when merging aliases. Might fix bug #15818.Paul Smith1-8/+9
Revert intermediate file free code. Suppress some warnings in VMS builds.
2006-02-17Make sure we don't introduce a circularity into the variable set linkedPaul Smith1-7/+13
list. Fixes Savannah bug #15757.
2006-02-14Some memory leak cleanups (found with valgrind).Paul Smith1-8/+17
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.
2005-09-26Make sure to assign a boolean value to a 1-bit bitfield. Reported onPaul Smith1-1/+1
the bug-make mailing list. Fix Savannah bug # 14527: remember to free temporary line constructor memory if the line is empty.
2005-06-09Fix Savannah bug #11913: ensure that scopes such as foreach, etc. takePaul Smith1-17/+56
precedence over the global scope when they're used in a global context (such as an eval).
2005-04-08Fix some Savannah bugs.Paul Smith1-2/+2
Updates to docs (still need more work here) and NEWS file. New language.
2005-02-28* New feature: -L optionPaul Smith1-1/+1
* 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)
2004-12-05Fix bug with SHELL handling: make sure the variable struct is initialized.Paul Smith1-9/+7