summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* * strcache.c (add_string): [SV 47071] Handle huge initial string.Paul Smith2016-02-291-4/+4
| | | | | | If the very first string added to the string cache is more than half the maximum size, we failed when moving the only strcache buffer to the full list.
* [SV 47151] Exit with 1 when checking recursive make -qPaul Smith2016-02-293-7/+25
| | | | | | | | * job.h (struct child): New bit to mark recursive command lines. * job.c (start_job_command): Set the recursive command line bit. (reap_children): If the child is a recursive command and it exits with 1 during question mode, don't print an error and exit with 1. * tests/scripts/options/dash-q: Add a regression test.
* * main.c (define_makeflags): Add parens to avoid GCC warning.Paul Smith2016-02-291-1/+1
|
* * tests/scripts/features/archives: Handle deterministic archives.Paul Smith2016-02-291-22/+36
| | | | | | | | | | | | | Newer versions of binutils allow ar to be compiled to generate "deterministic archives" by default: in this mode no timestamp information is generated in the static archive, which utterly breaks GNU make's archive updating capability. Debian and Ubuntu have turned this feature on by default in their distributions which causes the regression tests to fail. Update the regression tests to check for the availability of the "U" option to ar which disables deterministic archives and allows GNU make's archive support to work properly again.
* Update Copyright statements for the new year.Paul Smith2016-02-28111-113/+114
|
* * doc/make.texi: [SV 47163] Fix typo in 'ifdef' documentation.Paul Smith2016-02-281-6/+6
|
* * doc/make.texi: [SV 35455] Add more uses for Empty Recipes.Paul Smith2016-02-281-20/+17
|
* Fix diagnostics on MS-Windows when environment is too largeGisle Vanem2015-11-071-2/+3
| | | | | | | * w32/subproc/sub_proc.c (process_begin): Fix test of the error cause when the environment block is too large. Copyright-paperwork-exempt: yes.
* Update README.W32.templateEli Zaretskii2015-10-271-11/+10
| | | | | | * README.W32.template: Update for latest developments. Make it clear we don't recommend using HAVE_CASE_INSENSITIVE_FS in general.
* [SV 46304] Don't invoke C++ compiler on C sources on MS-WindowsEli Zaretskii2015-10-271-0/+11
| | | | | | * default.c (default_variables) [HAVE_CASE_INSENSITIVE_FS]: Make COMPILE.C and LINK.C be synonyms for COMPILE.c and LINK.c, respectively.
* [SV 45838] When invoking w32 programs, don't use free'd memory.Eli Zaretskii2015-09-231-1/+18
| | | | | | | * w32/subproc/sub_proc.c (process_begin): Freeing argv[0] makes the other argv[i] pointers invalid, so need to allocate a new array and copy argv[i] for i != 0 first, replacing argv[0] with the batch file name, before we can free argv[0].
* * implicit.c (pattern_search): [SV 43677] Mark files secondary.Paul Smith2015-07-132-2/+25
| | | | | | | | | In order to fix SV 12267 we were marking the prerequisites of implicit (pattern) targets that existed elsewhere in the makefile as precious to keep them from being deleted as intermediate files. However this also keeps them from being deleted on error. Instead mark them as secondary. * tests/scripts/targets/DELETE_ON_ERROR: Test DELETE_ON_ERROR.
* [SV 28092] Preserve the exit status of the $(shell...) function.Paul Smith2015-07-126-21/+62
| | | | | | | | | | | | Add a new variable .SHELLSTATUS which holds the exit status of the last-invoked shell function or != assignment. * NEWS, doc/make.texi: Document the change. * function.c (shell_completed, msdos_openpipe, func_shell_base): Add shell_completed() to handle the completion of the shell, by setting .SHELLSTATUS. Call it where needed. * job.c (child_handler): Call shell_completed(). * tests/scripts/functions/shell: Add tests for .SHELLSTATUS.
* * tests/scripts/misc/fopen-fail: [SV 42390] Increase test timeout.Paul Smith2015-07-122-5/+9
| | | | * Makefile.am (check-regression): Force ulimit -n for fopen-fail test.
* * job.c: [SV 43936] Check sigaction for error return.Paul Smith2015-07-121-8/+12
|
* [SV 45049] Check for '$' being the last character in a string.Paul Smith2015-07-123-5/+12
| | | | | | | | * expand.c (variable_expand_string): Add a single '$' if '$' ends the string. * read.c (find_char_unquote, get_next_mword): Stop if '$' ends the string. * variable.c (parse_variable_definition): Ditto.
* * read.c (unescape_char): [SV 45050] Handle final backslashes.Paul Smith2015-07-121-0/+5
| | | | | If the last thing in the string to be unescaped is a backslash, stop without reading beyond the end of the string.
* * strcache.c: [SV 45275] Handle very long strings.Paul Smith2015-07-122-41/+44
| | | | | | | | Our previous behavior for handling too-long strings involved increasing the size of the default string cache buffer, but the implementation was incomplete. Instead, create a one-off large string cache entry and add it directly to the full cache list without changing the default buffer size.
* * job.c [RISCOS]: Remove logic that is no longer required.Duncan Moore2015-07-121-6/+0
| | | | | Signed-off-by: Paul Smith <psmith@gnu.org> Copyright-paperwork-exempt: yes
* * remake.c (update_file): [SV 44742] Keep double-colon rule status.Paul Smith2015-07-121-1/+1
| | | | Fix suggested by Everett Boyer <EvBoyer@aol.com>
* [SVN 45515] Check exit status of sub-make in subproc.batJames Johnston2015-07-101-0/+1
| | | | | | * subproc.bat: Exit when sub-make invocation fails. Copyright-paperwork-exempt: yes
* [SV 45515] Ignore Windows-specific build artifactsEli Zaretskii2015-07-101-0/+6
| | | | | | * .gitignore: Ignore *.exe, *.dll.a, *.lib, *pdb, and a few more MSVC specific artifacts. Suggested by James Johnston <johnstonj.public@codenest.com>
* [SV 44348] Fix handling of shell widlcards on MS-Windows.Eli Zaretskii2015-02-281-0/+4
| | | | | | * job.c (construct_command_argv_internal): If shell wildcard characters are found inside a string quoted with "..", give up the fast route and go through the shell. Fixes Savannah bug #44348.
* Fix bs-nl handling, exit and Environment for VMS.John Malmberg2015-01-279-604/+1307
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix $(shell) on hosts with 64-bit pid_t.Christian Boos2014-12-272-2/+4
| | | | | | | * function.c: Use pid_t for shell_function_pid. * job.c: Likewise. Copyright-paperwork-exempt: yes
* * main.c (main): [SV 43434] Handle NULL returns from ttyname().Paul Smith2014-10-202-6/+12
|
* * tests/scripts/features/archives: [SV 43405] override AR variable.Benedikt Morbach2014-10-201-17/+10
| | | | Copyright-paperwork-exempt: yes
* Fix VMS implicit rules and UNIX paths.John Malmberg2014-10-207-92/+302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes VMS implicit rules and UNIX style pathname handling. It also fixes some of the VMS style pathname handling, more work there will be needed later. TODO: There are other case insensitive platforms besides VMS. We need to find out why there is extra VMS code for this. This indicates either the extra VMS code is not needed, or the case insensitive support may not be complete on the other case insensitive platforms. * default.c: Add missing definitions to default_suffix_rules[] and default_variables[]. TODO: As it is important that VMS DCL mode definitions must always be a superset of UNIX definitions, a better way of maintaining the VMS DCL mode definitions should be devised. * dir.c (downcase_inplace): Add a reentrant downcase() routine. Add future support for VMS 8.2+ _USE_STD_STAT macro which will disable a lot of VMS specific code from compiling. (dir_file_exists_p): vmsify filename only if directory name has VMS directory delimiters. (file_exists_p): Handle both VMS and UNIX directories. (file_impossible): Handle both VMS and Unix directories. Track whether a VMS format path is needed for the return value. * file.c (lookup_file): Check if vmsify is needed; handle UNIX paths. * implicit.c (pattern_search): Enable UNIX paths. * read.c (parse_file_seq): Enable UNIX paths. * remake.c (f_mtime): Fix gpath_search call for VMS paths. * rule.c (count_implicit_rule): Enable UNIX paths, Fix VMS paths. * vpath.c (selective_vpath_search): Enable UNIX paths.
* Update README.VMS and move news to the NEWS fileJohn Malmberg2014-10-202-229/+666
| | | | | | * NEWS: Merge in VMS history. * README.VMS: Remove VMS history, document current behavior and known issues.
* [SV 41758]: Fix archive support for VMS.John Malmberg2014-10-204-26/+220
| | | | | | | | | | | | | Upated to match change to run_make_tests and some future fixes to make on VMS. * arscan.c: Use ANSI compatible pragmas instead of VAX C extensions. * tests/scripts/features/archives: Fix tests to use VMS rules and answers when running on VMS and using DCL as a shell. * tests/scripts/features/vpath3: Fix epected answer on test when run on VMS. * tests/scripts/vms/library: (New) Test the VMS library rules that are not tested by existing tests.
* [SV 42447]: VMS simulate exporting symbolsJohn Malmberg2014-10-2012-138/+1371
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also includes fixing the most of the exit handling code for VMS. Self tests: Previously about 94 Tests in 36 categories fail. Now about 45 tests in 22 categories fail. Because some tests do not properly clean up, the number of tests that fail can vary by one or two test cases between consecutive runs. * Makefile.am: Add new VMS files. * job.c: add prototype for vms_strsignal(). * job.c: (child_error): Remove VMS specific code as no longer needed. * job.c: (reap_children): The VMS specific code was setting the status to 0 instead of setting it to the proper exit status. * job.h: Add vms_launch_status to struct child. * main.c: (main): Use environment variables for options to use MCR * instead of a foreign command, and to always use command files for subprocesses. For VMS use (set_program_name) routine which is common to ports of other GNU packages to VMS to set the program name used internally. Use (vms_putenv_symbol) to set up symbols to be visible in child programs, including recursive make launched by execve() Start of Bash shell detection code for VMS. * makefile.com: Need nested_include=none for building on VMS search lists. Add vms_progname, vms_exit, and vms_export_symbol. * makefile.vms: Need nested_include=none for building on VMS search lists. Add vms_progname, vms_exit, vms_export_symbol. * makeint.h: Make sure non-standard "VMS" macro is defined. Add prototypes for new VMS routines. Remove VMS-specific failure codes. * vmsjobs.c: Add VMS POSIX exit code constants. (_is_unixy_shell): Detect Bash shell. (vms_strsignal): simulate strsignal() on VMS. (vmsHandleChildTerm): fix to properly report failed LIB$SPAWN() exit status codes. Remove code that duplicated code in job.c. (child_execute_job): Export environment symbols before spawning a child and restore afterward unless option to use command files for subprocesses is set. Improve handling of UNIX null commands ":". * vms_exit.c: Provides vms_exit() to detect if an exit code is UNIX or VMS, and converts the UNIX code into a VMS exit code. * vms_export_symbol.c: Routines to create DCL symbols that work like shell aliases or exported shell symbols and clean them up on exit. * vms_export_symbol_test.com: Unit test for vms_export_symbol.c * vms_progname.c: New file: VMS specific replace for progname.c that is used in some GNU projects.
* Set up for running tests on VMS.John Malmberg2014-10-202-3/+10
| | | | | | | | | * run_make_tests.pl: set $port_type to be 'VMS-DCL' when the test are run from the VMS DCL Interpreter. When the tests are run from GNV on VMS, the $port_type will be 'UNIX'. * run_make_tests.com: VMS search list support. This is needed for using a search list such as prj_root = lcl_root:,vms_root:,src_root: for building and testing.
* * configure.ac, NEWS, README.git: Set up for the next release.Paul Smith2014-10-093-2/+11
|
* GNU Make release 4.1.4.1Paul Smith2014-10-054-7/+10
|
* Fix Cygwin compilation error.Eli Zaretskii2014-10-021-2/+3
| | | | | | * job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]: Fix initializer for sh_chars_sh. Reported by Denis Excoffier<cygwin@Denis-Excoffier.org>.
* Fix last commit.Gisle Vanem2014-10-011-1/+1
|
* * makeint.h (ftruncate): Define also for __WATCOMC__.Gisle Vanem2014-10-011-1/+1
| | | | Copyright-paperwork-exempt: yes.
* Avoid compilation warnings.Eli Zaretskii2014-10-012-3/+7
| | | | | | | | * main.c (find_and_set_default_shell, main) [WINDOWS32]: Declare variables 'const char *' to avoid compiler warnings. * job.c (construct_command_argv_internal) [!NDEBUG]: Declare 'end' and set it only if NDEBUG is not defined, to avoid compiler warnings.
* Treat redirection of standard handles on Windows as it is done on Unix.Eli Zaretskii2014-10-012-10/+14
| | | | | | | | | | * job.c (start_job_command) [WINDOWS32]: Compute outfd and errfd as on Posix platforms, and pass the results to process_easy. * function.c (windows32_openpipe) [WINDOWS32]: Accept an additional argument ERRFD and use it for redirecting the standard error handle passed to the subprocess. (func_shell_base) [WINDOWS32]: Pass the computed errfd to windows32_openpipe.
* Update Copyright statements for 2014.Paul Smith2014-09-3098-104/+104
|
* * tests/scripts/features/load: Avoid unused variable warnings.Paul Smith2014-09-301-0/+2
|
* * loadapi.c (gmk_eval): Use C90 syntax.Paul Smith2014-09-301-1/+2
|
* * job.c: fix make action continuation lines.Hartmut Becker2014-09-302-45/+53
| | | | | * vmsjobs.c: fix writing DCL command files when trimming (white spaces and $ signs) especially after a split (command continuation).
* * configure.ac: Fix spacing in helptext of customsBernhard Reutner-Fischer2014-09-151-2/+2
| | | | Copyright-paperwork-exempt: yes
* Support MAKE_TERMOUT and MAKE_TERMERR on MS-Windows.Eli Zaretskii2014-09-152-1/+32
| | | | | | * w32/compat/posixfcn.c (isatty, ttyname): New functions. * config.h.W32.template (HAVE_TTYNAME): Define. Add a prototype for ttyname.
* * loadapi.c (gmk_eval): [SV 43221] Preserve var buff content for eval.Paul Smith2014-09-151-0/+8
|
* * main.c, NEWS, doc/make.text: Rename MAKE_TTY* to MAKE_TERM*Paul Smith2014-09-153-11/+14
|
* * main.c (main): Set MAKE_TTYOUT and MAKE_TTYERR.Paul Smith2014-09-148-2/+61
| | | | | | | | * configure.ac: Test for isatty() and ttyname() * makeint.h: provide a substitute for ttyname() if it's not available. * config.ami.template, config.h-vms.template, config.h.W32.template: define/undefine HAVE_ISATTY/HAVE_TTYNAME macros. * NEWS, doc/make.texi: Document these new variables.
* * tests/config-flags.pm.in, tests/scripts/features/archives: [SV 43046]Paul Smith2014-09-072-10/+13
| | | | Use the "ar" program detected by configure when running the test suite.
* * doc/make.texi: Clarify implicit rule lookup of phony targetsPaul Smith2014-09-072-40/+33
| | | | Reported by Frank Heckenbach <f.heckenbach@fh-soft.de>