summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-03-24Implemented .WAITHEADmasterIgor Pashev4-0/+87
Based on this patch: http://lists.gnu.org/archive/html/help-make/2005-04/msg00091.html Test file (wait.mk): simple: 1 .WAIT 2 @echo $@ 1: @sleep 2; echo $@ 2: @echo $@ run: ./make --sun -f wait.mk -j50 simple Output: 1 2 simple
2015-03-24Eat trailing spaces in sun modeIgor Pashev2-0/+39
2015-03-24Ignore ? before the command in SunOS modeIgor Pashev1-0/+2
2015-03-24Support SunOS make target-specific variablesIgor Pashev3-1/+32
2015-03-24Option --sun to enable syntax and features of SunOS makeIgor Pashev2-0/+15
2015-02-28[SV 44348] Fix handling of shell widlcards on MS-Windows.Eli Zaretskii1-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.
2015-01-27Fix bs-nl handling, exit and Environment for VMS.John Malmberg9-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>
2014-12-27Fix $(shell) on hosts with 64-bit pid_t.Christian Boos2-2/+4
* function.c: Use pid_t for shell_function_pid. * job.c: Likewise. Copyright-paperwork-exempt: yes
2014-10-20* main.c (main): [SV 43434] Handle NULL returns from ttyname().Paul Smith2-6/+12
2014-10-20* tests/scripts/features/archives: [SV 43405] override AR variable.Benedikt Morbach1-17/+10
Copyright-paperwork-exempt: yes
2014-10-20Fix VMS implicit rules and UNIX paths.John Malmberg7-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.
2014-10-20Update README.VMS and move news to the NEWS fileJohn Malmberg2-229/+666
* NEWS: Merge in VMS history. * README.VMS: Remove VMS history, document current behavior and known issues.
2014-10-20[SV 41758]: Fix archive support for VMS.John Malmberg4-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.
2014-10-20[SV 42447]: VMS simulate exporting symbolsJohn Malmberg12-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.
2014-10-20Set up for running tests on VMS.John Malmberg2-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.
2014-10-09* configure.ac, NEWS, README.git: Set up for the next release.Paul Smith3-2/+11
2014-10-05GNU Make release 4.1.4.1Paul Smith4-7/+10
2014-10-02Fix Cygwin compilation error.Eli Zaretskii1-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>.
2014-10-01Fix last commit.Gisle Vanem1-1/+1
2014-10-01* makeint.h (ftruncate): Define also for __WATCOMC__.Gisle Vanem1-1/+1
Copyright-paperwork-exempt: yes.
2014-10-01Avoid compilation warnings.Eli Zaretskii2-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.
2014-10-01Treat redirection of standard handles on Windows as it is done on Unix.Eli Zaretskii2-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.
2014-09-30Update Copyright statements for 2014.Paul Smith98-104/+104
2014-09-30* tests/scripts/features/load: Avoid unused variable warnings.Paul Smith1-0/+2
2014-09-30* loadapi.c (gmk_eval): Use C90 syntax.Paul Smith1-1/+2
2014-09-30* job.c: fix make action continuation lines.Hartmut Becker2-45/+53
* vmsjobs.c: fix writing DCL command files when trimming (white spaces and $ signs) especially after a split (command continuation).
2014-09-15* configure.ac: Fix spacing in helptext of customsBernhard Reutner-Fischer1-2/+2
Copyright-paperwork-exempt: yes
2014-09-15Support MAKE_TERMOUT and MAKE_TERMERR on MS-Windows.Eli Zaretskii2-1/+32
* w32/compat/posixfcn.c (isatty, ttyname): New functions. * config.h.W32.template (HAVE_TTYNAME): Define. Add a prototype for ttyname.
2014-09-15* loadapi.c (gmk_eval): [SV 43221] Preserve var buff content for eval.Paul Smith1-0/+8
2014-09-15* main.c, NEWS, doc/make.text: Rename MAKE_TTY* to MAKE_TERM*Paul Smith3-11/+14
2014-09-14* main.c (main): Set MAKE_TTYOUT and MAKE_TTYERR.Paul Smith8-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.
2014-09-07* tests/config-flags.pm.in, tests/scripts/features/archives: [SV 43046]Paul Smith2-10/+13
Use the "ar" program detected by configure when running the test suite.
2014-09-07* doc/make.texi: Clarify implicit rule lookup of phony targetsPaul Smith2-40/+33
Reported by Frank Heckenbach <f.heckenbach@fh-soft.de>
2014-09-07Fix and enhance VMS library support.Hartmut Becker3-104/+281
* ar.c: fix VMS library search for members, which do not have suffixes, aka filename extensions. * arscan.c: fix time conversion and library callback routines. * default.c: more suffixes and automatically create the VMS library if it doesn't exists.
2014-09-07Enhance VMS exporting make environment variables.Hartmut Becker2-2/+37
* config.h-vms.template: add feature macro USE_DCL_COM_FILE to always write a DCL command file, enabled by default. * vmsjobs.c: with USE_DCL_COM_FILE enabled write make variables as DCL symbol assignments into the command file. This enables printing directory and make level info for recursive use of make. This also enables forced DCL symbol substitution in the actions.
2014-09-07Fix VMS automatic variable expansionHartmut Becker1-1/+39
* function.c: add VMS code to func_notdir_suffix and func_basename_dir to work on comma separated lists; this fixes the expansion of $(^D), $(+D) and the F variants for VMS.
2014-09-07* main.c [VMS]: Say that parallel jobs (-j) are not supported on VMSHartmut Becker1-1/+1
2014-09-07Enhance/fix VMS ONESHELL implementation and command executionHartmut Becker2-102/+273
* job.c, vmsjobs.c: fix some double quote and new line handling; implement ONESHELL with writing multiple lines into one DCL command procedure; in ONESHELL allow VMS/make internal redirection only on the first line; fix the created DCL command procedure, which didn't abort on errors; return correct exit status from the DCL command procedure; preserve current procedure verification; make the generated command procedure more robust.
2014-09-07Enhance/fix VMS setting of program name, MAKE/MAKE_COMMAND variablesHartmut Becker5-140/+115
* default.c, main.c, makeint.h, vmsfunctions.c: prefix argv[0] with "mcr " for MAKE/MAKE_COMMAND and set the program name to the image filename (without the .exe;version) * vmsfunctions.c: remove obsolete code * vmsify: use xmalloc
2014-09-07Enhance/fix VMS exit code handling.Hartmut Becker8-19/+30
* commands.c, function.c, hash.c, job.c, main.c, output.c: use MAKE exit codes. * makeint.h: encode make exit codes so that they are VMS compatible. * job.c: check child exit code for VMS style exit codes. * vmsjobs.c: save and return VMS style exit code.
2014-09-07Enhance/fix VMS multi-line support.Hartmut Becker3-28/+53
* job.c: split the command line at a newline. * default.c, vmsjobs.c: change ECHO variable to a pseudo builtin, which ensures that the VMS/DCL ECHO ("write sys$output") is used and is correctly quoted. * vmsjobs.c: remove unused builtin 'rm'.
2014-09-07* config_flags_pm.com, [RENAMED test_make.com] run_make_tests.com:Hartmut Becker2-7/+8
Moved into tests directory.
2014-09-07Enhance/fix VMS build environmentHartmut Becker4-57/+140
* config.h-vms.template: make sure the CRTL version is known * makefile.com: always compile/link the guile module, remove VAXCRTL parameter, new LIST parameter * makefile.vms: always compile/link the guile module, use more complete dependencies * prepare_vms.com: helper to create a VMS config file when building from a snapshot of the repository
2014-09-07* configure.ac, maintMakefile, w32/Makefile.am: Fix autotools issues.Paul Smith5-7/+12
Reported by Paul Eggert <eggert@cs.ucla.edu>
2014-08-30Change the order of "makefile" and "Makefile" to match the manual.Eli Zaretskii1-1/+1
2014-08-30Fix regression with "makefile" not being found on MS-Windows.Eli Zaretskii1-1/+1
* read.c (read_all_makefiles) [WINDOWS32]: Recognize "makefile", all-lowercase, as a makefile. Reported by Michael Waeber <waeber@gmail.com>.
2014-07-16Fix compilation on MS-Windows.Eli Zaretskii1-0/+4
* makeint.h [WINDOWS32]: Don't declare 'program' as 'const char *', since it is modified in 'main'.
2014-07-12[SV 42695] Fix compilation error on MS-Windows.Eli Zaretskii1-0/+6
* main.c [WINDOWS32]: Don't declare 'program' as 'const char *', since it is modified in 'main'.
2014-07-12Fix defalt_makefiles[] for MS-Windows.Jonny Grant1-0/+4
* read.c (read_all_makefiles) [WINDOWS32]: Remove the redundant "makefile" and add "makefile.mak". Copyright-paperwork-exempt: yes
2014-07-07* arscan.c [ANDROID]: Android has no ar.h but supports archives.Fredrik Fornwall1-2/+2
Copyright-paperwork-exempt: yes