]> git.ipfire.org Git - thirdparty/make.git/log
thirdparty/make.git
9 years agoUpdate Copyright statements for the new year.
Paul Smith [Sun, 28 Feb 2016 17:55:20 +0000 (12:55 -0500)] 
Update Copyright statements for the new year.

9 years ago* doc/make.texi: [SV 47163] Fix typo in 'ifdef' documentation.
Paul Smith [Sun, 28 Feb 2016 17:41:41 +0000 (12:41 -0500)] 
* doc/make.texi: [SV 47163] Fix typo in 'ifdef' documentation.

9 years ago* doc/make.texi: [SV 35455] Add more uses for Empty Recipes.
Paul Smith [Sun, 28 Feb 2016 17:35:15 +0000 (12:35 -0500)] 
* doc/make.texi: [SV 35455] Add more uses for Empty Recipes.

9 years agoFix diagnostics on MS-Windows when environment is too large
Gisle Vanem [Sat, 7 Nov 2015 09:27:03 +0000 (11:27 +0200)] 
Fix diagnostics on MS-Windows when environment is too large

* w32/subproc/sub_proc.c (process_begin): Fix test of the error
cause when the environment block is too large.

Copyright-paperwork-exempt: yes.

9 years agoUpdate README.W32.template
Eli Zaretskii [Tue, 27 Oct 2015 18:51:43 +0000 (20:51 +0200)] 
Update README.W32.template

* README.W32.template: Update for latest developments.  Make it
clear we don't recommend using HAVE_CASE_INSENSITIVE_FS in
general.

9 years ago[SV 46304] Don't invoke C++ compiler on C sources on MS-Windows
Eli Zaretskii [Tue, 27 Oct 2015 18:47:27 +0000 (20:47 +0200)] 
[SV 46304] Don't invoke C++ compiler on C sources on MS-Windows

* default.c (default_variables) [HAVE_CASE_INSENSITIVE_FS]: Make
COMPILE.C and LINK.C be synonyms for COMPILE.c and LINK.c,
respectively.

9 years ago[SV 45838] When invoking w32 programs, don't use free'd memory.
Eli Zaretskii [Wed, 23 Sep 2015 08:42:53 +0000 (11:42 +0300)] 
[SV 45838] When invoking w32 programs, don't use free'd memory.

* 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].

10 years ago* implicit.c (pattern_search): [SV 43677] Mark files secondary.
Paul Smith [Mon, 13 Jul 2015 04:51:35 +0000 (00:51 -0400)] 
* implicit.c (pattern_search): [SV 43677] Mark files secondary.

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.

10 years ago[SV 28092] Preserve the exit status of the $(shell...) function.
Paul Smith [Mon, 13 Jul 2015 01:03:24 +0000 (21:03 -0400)] 
[SV 28092] Preserve the exit status of the $(shell...) function.

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.

10 years ago* tests/scripts/misc/fopen-fail: [SV 42390] Increase test timeout.
Paul Smith [Sun, 12 Jul 2015 22:05:50 +0000 (18:05 -0400)] 
* tests/scripts/misc/fopen-fail: [SV 42390] Increase test timeout.

* Makefile.am (check-regression): Force ulimit -n for fopen-fail test.

10 years ago* job.c: [SV 43936] Check sigaction for error return.
Paul Smith [Sun, 12 Jul 2015 21:29:05 +0000 (17:29 -0400)] 
* job.c: [SV 43936] Check sigaction for error return.

10 years ago[SV 45049] Check for '$' being the last character in a string.
Paul Smith [Sun, 12 Jul 2015 17:25:16 +0000 (13:25 -0400)] 
[SV 45049] Check for '$' being the last character in a string.

* 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.

10 years ago* read.c (unescape_char): [SV 45050] Handle final backslashes.
Paul Smith [Sun, 12 Jul 2015 16:35:42 +0000 (12:35 -0400)] 
* read.c (unescape_char): [SV 45050] Handle final backslashes.

If the last thing in the string to be unescaped is a backslash,
stop without reading beyond the end of the string.

10 years ago* strcache.c: [SV 45275] Handle very long strings.
Paul Smith [Sat, 11 Jul 2015 21:21:22 +0000 (17:21 -0400)] 
* strcache.c: [SV 45275] Handle very long strings.

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.

10 years ago* job.c [RISCOS]: Remove logic that is no longer required.
Duncan Moore [Sun, 14 Jun 2015 13:34:18 +0000 (14:34 +0100)] 
* job.c [RISCOS]: Remove logic that is no longer required.

Signed-off-by: Paul Smith <psmith@gnu.org>
Copyright-paperwork-exempt: yes

10 years ago* remake.c (update_file): [SV 44742] Keep double-colon rule status.
Paul Smith [Sat, 11 Jul 2015 17:55:45 +0000 (13:55 -0400)] 
* remake.c (update_file): [SV 44742] Keep double-colon rule status.

Fix suggested by Everett Boyer <EvBoyer@aol.com>

10 years ago[SVN 45515] Check exit status of sub-make in subproc.bat
James Johnston [Fri, 10 Jul 2015 06:56:27 +0000 (09:56 +0300)] 
[SVN 45515] Check exit status of sub-make in subproc.bat

* subproc.bat: Exit when sub-make invocation fails.

Copyright-paperwork-exempt: yes

10 years ago[SV 45515] Ignore Windows-specific build artifacts
Eli Zaretskii [Fri, 10 Jul 2015 06:50:27 +0000 (09:50 +0300)] 
[SV 45515] Ignore Windows-specific build artifacts

* .gitignore: Ignore *.exe, *.dll.a, *.lib, *pdb, and a few more MSVC
specific artifacts.
Suggested by James Johnston <johnstonj.public@codenest.com>

10 years ago[SV 44348] Fix handling of shell widlcards on MS-Windows.
Eli Zaretskii [Sat, 28 Feb 2015 12:34:51 +0000 (14:34 +0200)] 
[SV 44348] Fix handling of shell widlcards on MS-Windows.

* 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.

10 years agoFix bs-nl handling, exit and Environment for VMS.
John Malmberg [Fri, 28 Nov 2014 03:28:30 +0000 (21:28 -0600)] 
Fix bs-nl handling, exit and Environment for VMS.

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>
10 years agoFix $(shell) on hosts with 64-bit pid_t.
Christian Boos [Sat, 27 Dec 2014 08:55:01 +0000 (10:55 +0200)] 
Fix $(shell) on hosts with 64-bit pid_t.

* function.c: Use pid_t for shell_function_pid.
* job.c: Likewise.

Copyright-paperwork-exempt: yes

10 years ago* main.c (main): [SV 43434] Handle NULL returns from ttyname().
Paul Smith [Mon, 20 Oct 2014 05:54:56 +0000 (01:54 -0400)] 
* main.c (main): [SV 43434] Handle NULL returns from ttyname().

10 years ago* tests/scripts/features/archives: [SV 43405] override AR variable.
Benedikt Morbach [Sun, 12 Oct 2014 08:11:17 +0000 (10:11 +0200)] 
* tests/scripts/features/archives: [SV 43405] override AR variable.

Copyright-paperwork-exempt: yes

10 years agoFix VMS implicit rules and UNIX paths.
John Malmberg [Wed, 8 Oct 2014 00:23:47 +0000 (19:23 -0500)] 
Fix VMS implicit rules and UNIX paths.

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.

10 years agoUpdate README.VMS and move news to the NEWS file
John Malmberg [Wed, 15 Oct 2014 12:19:42 +0000 (07:19 -0500)] 
Update README.VMS and move news to the NEWS file

* NEWS: Merge in VMS history.
* README.VMS: Remove VMS history, document current behavior and
known issues.

10 years ago[SV 41758]: Fix archive support for VMS.
John Malmberg [Fri, 12 Sep 2014 03:39:34 +0000 (22:39 -0500)] 
[SV 41758]: Fix archive support for VMS.

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.

10 years ago[SV 42447]: VMS simulate exporting symbols
John Malmberg [Sun, 14 Sep 2014 01:20:22 +0000 (20:20 -0500)] 
[SV 42447]: VMS simulate exporting symbols

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.

10 years agoSet up for running tests on VMS.
John Malmberg [Tue, 7 Oct 2014 02:46:34 +0000 (21:46 -0500)] 
Set up for running tests on VMS.

* 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.

10 years ago* configure.ac, NEWS, README.git: Set up for the next release.
Paul Smith [Thu, 9 Oct 2014 06:06:53 +0000 (02:06 -0400)] 
* configure.ac, NEWS, README.git: Set up for the next release.

10 years agoGNU Make release 4.1. 4.1
Paul Smith [Sun, 5 Oct 2014 16:18:08 +0000 (12:18 -0400)] 
GNU Make release 4.1.

10 years agoFix Cygwin compilation error.
Eli Zaretskii [Thu, 2 Oct 2014 15:11:43 +0000 (18:11 +0300)] 
Fix Cygwin compilation error.

* job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]: Fix
initializer for sh_chars_sh.
Reported by Denis Excoffier<cygwin@Denis-Excoffier.org>.

10 years agoFix last commit.
Gisle Vanem [Wed, 1 Oct 2014 17:43:12 +0000 (20:43 +0300)] 
Fix last commit.

10 years ago* makeint.h (ftruncate): Define also for __WATCOMC__.
Gisle Vanem [Wed, 1 Oct 2014 17:41:28 +0000 (20:41 +0300)] 
* makeint.h (ftruncate): Define also for __WATCOMC__.

Copyright-paperwork-exempt: yes.

10 years agoAvoid compilation warnings.
Eli Zaretskii [Wed, 1 Oct 2014 15:34:29 +0000 (18:34 +0300)] 
Avoid compilation warnings.

* 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.

10 years agoTreat redirection of standard handles on Windows as it is done on Unix.
Eli Zaretskii [Wed, 1 Oct 2014 15:26:28 +0000 (18:26 +0300)] 
Treat redirection of standard handles on Windows as it is done on Unix.

* 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.

10 years agoUpdate Copyright statements for 2014.
Paul Smith [Tue, 30 Sep 2014 12:33:21 +0000 (08:33 -0400)] 
Update Copyright statements for 2014.

10 years ago* tests/scripts/features/load: Avoid unused variable warnings.
Paul Smith [Tue, 30 Sep 2014 13:31:39 +0000 (09:31 -0400)] 
* tests/scripts/features/load: Avoid unused variable warnings.

10 years ago* loadapi.c (gmk_eval): Use C90 syntax.
Paul Smith [Tue, 30 Sep 2014 12:32:06 +0000 (08:32 -0400)] 
* loadapi.c (gmk_eval): Use C90 syntax.

10 years ago* job.c: fix make action continuation lines.
Hartmut Becker [Thu, 18 Sep 2014 21:49:49 +0000 (23:49 +0200)] 
* job.c: fix make action continuation lines.

* vmsjobs.c: fix writing DCL command files when trimming (white
  spaces and $ signs) especially after a split (command continuation).

10 years ago* configure.ac: Fix spacing in helptext of customs
Bernhard Reutner-Fischer [Mon, 15 Sep 2014 11:03:44 +0000 (13:03 +0200)] 
* configure.ac: Fix spacing in helptext of customs

Copyright-paperwork-exempt: yes

10 years agoSupport MAKE_TERMOUT and MAKE_TERMERR on MS-Windows.
Eli Zaretskii [Mon, 15 Sep 2014 16:51:41 +0000 (19:51 +0300)] 
Support MAKE_TERMOUT and MAKE_TERMERR on MS-Windows.

* w32/compat/posixfcn.c (isatty, ttyname): New functions.
* config.h.W32.template (HAVE_TTYNAME): Define.  Add a prototype
for ttyname.

10 years ago* loadapi.c (gmk_eval): [SV 43221] Preserve var buff content for eval.
Paul Smith [Mon, 15 Sep 2014 13:38:02 +0000 (09:38 -0400)] 
* loadapi.c (gmk_eval): [SV 43221] Preserve var buff content for eval.

10 years ago* main.c, NEWS, doc/make.text: Rename MAKE_TTY* to MAKE_TERM*
Paul Smith [Mon, 15 Sep 2014 13:30:40 +0000 (09:30 -0400)] 
* main.c, NEWS, doc/make.text: Rename MAKE_TTY* to MAKE_TERM*

10 years ago* main.c (main): Set MAKE_TTYOUT and MAKE_TTYERR.
Paul Smith [Sun, 14 Sep 2014 05:03:19 +0000 (01:03 -0400)] 
* main.c (main): Set MAKE_TTYOUT and MAKE_TTYERR.

* 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.

10 years ago* tests/config-flags.pm.in, tests/scripts/features/archives: [SV 43046]
Paul Smith [Mon, 8 Sep 2014 00:12:12 +0000 (20:12 -0400)] 
* tests/config-flags.pm.in, tests/scripts/features/archives: [SV 43046]

Use the "ar" program detected by configure when running the test suite.

10 years ago* doc/make.texi: Clarify implicit rule lookup of phony targets
Paul Smith [Mon, 8 Sep 2014 00:02:31 +0000 (20:02 -0400)] 
* doc/make.texi: Clarify implicit rule lookup of phony targets

Reported by Frank Heckenbach <f.heckenbach@fh-soft.de>

10 years agoFix and enhance VMS library support.
Hartmut Becker [Thu, 4 Sep 2014 19:04:52 +0000 (21:04 +0200)] 
Fix and enhance VMS library support.

* 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.

10 years agoEnhance VMS exporting make environment variables.
Hartmut Becker [Wed, 3 Sep 2014 21:39:25 +0000 (23:39 +0200)] 
Enhance VMS exporting make environment variables.

* 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.

10 years agoFix VMS automatic variable expansion
Hartmut Becker [Wed, 3 Sep 2014 17:27:17 +0000 (19:27 +0200)] 
Fix VMS automatic variable expansion

* 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.

10 years ago* main.c [VMS]: Say that parallel jobs (-j) are not supported on VMS
Hartmut Becker [Sun, 31 Aug 2014 22:29:19 +0000 (00:29 +0200)] 
* main.c [VMS]: Say that parallel jobs (-j) are not supported on VMS

10 years agoEnhance/fix VMS ONESHELL implementation and command execution
Hartmut Becker [Sun, 31 Aug 2014 21:52:25 +0000 (23:52 +0200)] 
Enhance/fix VMS ONESHELL implementation and command execution

* 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.

10 years agoEnhance/fix VMS setting of program name, MAKE/MAKE_COMMAND variables
Hartmut Becker [Sun, 31 Aug 2014 17:11:08 +0000 (19:11 +0200)] 
Enhance/fix VMS setting of program name, MAKE/MAKE_COMMAND variables

* 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

10 years agoEnhance/fix VMS exit code handling.
Hartmut Becker [Sun, 24 Aug 2014 20:06:15 +0000 (22:06 +0200)] 
Enhance/fix VMS exit code handling.

* 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.

10 years agoEnhance/fix VMS multi-line support.
Hartmut Becker [Sat, 23 Aug 2014 15:54:21 +0000 (17:54 +0200)] 
Enhance/fix VMS multi-line support.

* 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'.

10 years ago* config_flags_pm.com, [RENAMED test_make.com] run_make_tests.com:
Hartmut Becker [Mon, 18 Aug 2014 21:39:44 +0000 (23:39 +0200)] 
* config_flags_pm.com, [RENAMED test_make.com] run_make_tests.com:

Moved into tests directory.

10 years agoEnhance/fix VMS build environment
Hartmut Becker [Mon, 18 Aug 2014 20:45:29 +0000 (22:45 +0200)] 
Enhance/fix VMS build environment

* 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

10 years ago* configure.ac, maintMakefile, w32/Makefile.am: Fix autotools issues.
Paul Smith [Sun, 7 Sep 2014 20:54:36 +0000 (16:54 -0400)] 
* configure.ac, maintMakefile, w32/Makefile.am: Fix autotools issues.

Reported by Paul Eggert <eggert@cs.ucla.edu>

10 years agoChange the order of "makefile" and "Makefile" to match the manual.
Eli Zaretskii [Sat, 30 Aug 2014 07:43:34 +0000 (10:43 +0300)] 
Change the order of "makefile" and "Makefile" to match the manual.

10 years agoFix regression with "makefile" not being found on MS-Windows.
Eli Zaretskii [Sat, 30 Aug 2014 07:40:12 +0000 (10:40 +0300)] 
Fix regression with "makefile" not being found on MS-Windows.

* read.c (read_all_makefiles) [WINDOWS32]: Recognize "makefile",
all-lowercase, as a makefile.  Reported by Michael Waeber
<waeber@gmail.com>.

11 years agoFix compilation on MS-Windows.
Eli Zaretskii [Wed, 16 Jul 2014 15:23:04 +0000 (18:23 +0300)] 
Fix compilation on MS-Windows.

* makeint.h [WINDOWS32]: Don't declare 'program' as 'const char *',
since it is modified in 'main'.

11 years ago[SV 42695] Fix compilation error on MS-Windows.
Eli Zaretskii [Sat, 12 Jul 2014 10:01:18 +0000 (13:01 +0300)] 
[SV 42695] Fix compilation error on MS-Windows.

* main.c [WINDOWS32]: Don't declare 'program' as 'const char *',
since it is modified in 'main'.

11 years agoFix defalt_makefiles[] for MS-Windows.
Jonny Grant [Sat, 12 Jul 2014 09:53:59 +0000 (12:53 +0300)] 
Fix defalt_makefiles[] for MS-Windows.

* read.c (read_all_makefiles) [WINDOWS32]: Remove the redundant
"makefile" and add "makefile.mak".

Copyright-paperwork-exempt: yes

11 years ago* arscan.c [ANDROID]: Android has no ar.h but supports archives.
Fredrik Fornwall [Mon, 3 Feb 2014 14:28:40 +0000 (09:28 -0500)] 
* arscan.c [ANDROID]: Android has no ar.h but supports archives.

Copyright-paperwork-exempt: yes

11 years ago* read.c (eval): [SV 41677] Correct test for TAB vs. 8 spaces.
Paul Smith [Mon, 7 Jul 2014 07:43:57 +0000 (03:43 -0400)] 
* read.c (eval): [SV 41677] Correct test for TAB vs. 8 spaces.

11 years ago* output.c (pump_from_tmp): [SV 42378] Flush the output file regularly.
Piotr Jaroszynski [Thu, 15 May 2014 18:40:27 +0000 (11:40 -0700)] 
* output.c (pump_from_tmp): [SV 42378] Flush the output file regularly.

Copyright-paperwork-exempt: yes

11 years agoUpdate the regression test harness to support VMS.
John Malmberg [Wed, 2 Apr 2014 00:31:57 +0000 (19:31 -0500)] 
Update the regression test harness to support VMS.

* config_flags_pm.com, test_make.com: set up and run the regression
test environment on VMS.
* tests/run_make_tests.pl [VMS]: Use an alternate rmdir()
implementation on VMS.
(run_make_with_options) [VMS]: Provide VMS-specific quoting and shell
invocations.
(set_more_defaults) [VMS]: Set default values when running on VMS.
* tests/test_driver.pl (vms_get_process_logicals) [VMS]: Retrieve the
proper values from %ENV on VMS.
(resetENV) [VMS]: Use it.
(toplevel) [VMS]: Fix a bug with opendir() on some logical_devices.
(compare_output) [VMS]: Convert VMS test output to a "standard" format.
(_run_command) [VMS]: Handle signals and exit codes the VMS way.
(remove_directory_tree_inner) [VMS]: Unlink all versions of the file.

11 years ago* various: Assume ISO C89-compliant free() implementation.
Paul Smith [Fri, 25 Apr 2014 21:38:08 +0000 (17:38 -0400)] 
* various: Assume ISO C89-compliant free() implementation.

11 years ago* maintMakefile, various: Improve constification of the codebase.
Paul Smith [Fri, 25 Apr 2014 21:10:47 +0000 (17:10 -0400)] 
* maintMakefile, various: Improve constification of the codebase.

11 years ago[SV 41983] Support omitting the text argument to $(file ...)
Paul Smith [Tue, 8 Apr 2014 22:25:27 +0000 (18:25 -0400)] 
[SV 41983] Support omitting the text argument to $(file ...)

Reported by Tim Murphy <tnmurphy@gmail.com>
* function.c (func_file): Only write TEXT if it is not NULL.
* NEWS, doc/make.texi: Document the new feature
* tests/scripts/functions/file: Verify that the no-text version of
  $(file ...) works and doesn't add a newline.

11 years agoNMakefile.template ($(OUTDIR)/posixfcn.obj): Fix a typo.
Jacques Germishuys [Tue, 13 May 2014 17:30:47 +0000 (20:30 +0300)] 
NMakefile.template ($(OUTDIR)/posixfcn.obj): Fix a typo.

Copyright-paperwork-exempt: yes.

11 years ago[SV 42249] Propagate correct rule status results.
Paul Smith [Thu, 1 May 2014 13:48:10 +0000 (09:48 -0400)] 
[SV 42249] Propagate correct rule status results.

* remake.c (update_file, update_file_1, check_dep): Return an enum
  update_status value instead of an int, and keep the highest value we
  find as we walk the graph so that the ultimate status is correct.
* tests/scripts/options/dash-q: Add a test for updating prerequisites.

11 years ago* Rename MAP_PATHSEP to MAP_DIRSEP.
Paul Smith [Sun, 2 Feb 2014 22:28:46 +0000 (17:28 -0500)] 
* Rename MAP_PATHSEP to MAP_DIRSEP.

11 years ago* configure.ac: Fixup for newer autoconf/automake
Paul Smith [Sun, 2 Feb 2014 17:27:48 +0000 (12:27 -0500)] 
* configure.ac: Fixup for newer autoconf/automake

11 years ago* output.c: Ensure space for final nul byte in fmtbuf.
Ray Donnelly [Sun, 2 Feb 2014 15:51:05 +0000 (10:51 -0500)] 
* output.c: Ensure space for final nul byte in fmtbuf.

Copyright-paperwork-exempt: yes

11 years agoImprove error reporting in the Windows port when env size is too large.
Gisle Vanem [Fri, 7 Feb 2014 09:15:56 +0000 (11:15 +0200)] 
Improve error reporting in the Windows port when env size is too large.

w32/subproc/misc.c (arr2envblk): Compute and return the size of
the environment passed to child process.

w32/subproc/sub_proc.c (process_begin): If the call to
CreateProcess failed with EINVAL, and the required environment
size was larger than 32KB, assume it's a Windows XP limitation,
and display an error message to that effect.

w32/subproc/proc.h (arr2envblk): Update prototype.

Copyright-paperwork-exempt: yes

11 years ago* job.c (set_child_handler_action_flags): [SV 41341]
Paul Smith [Sun, 2 Feb 2014 04:08:59 +0000 (23:08 -0500)] 
* job.c (set_child_handler_action_flags): [SV 41341]

Ensure signal handler is in place before alarm(1).

11 years ago* configure.ac: [SV 40790] Fix load autoconf variables.
Alan Hourihane [Sat, 18 Jan 2014 21:41:47 +0000 (16:41 -0500)] 
* configure.ac: [SV 40790] Fix load autoconf variables.

Copyright-paperwork-exempt: yes

11 years agoAllow the EMX build to use output_sync.
Pavel Fedin [Fri, 17 Jan 2014 07:51:28 +0000 (09:51 +0200)] 
Allow the EMX build to use output_sync.

job.c (start_job_command): Move the child output diversion out
of non-EMX branch.
[__EMX__]: Don't use fixed FD_STDOUT and FD_STDERR in the call to
child_execute_job.

Copyright-paperwork-exempt: yes

11 years ago* commands.c: [SV 40789] Remove unneeded header dlfcn.h
Paul Smith [Sun, 12 Jan 2014 05:13:22 +0000 (00:13 -0500)] 
* commands.c: [SV 40789] Remove unneeded header dlfcn.h

11 years ago* main.c (die): Close output_context AND make_sync.
Paul Smith [Sat, 11 Jan 2014 21:10:02 +0000 (16:10 -0500)] 
* main.c (die): Close output_context AND make_sync.

die() can be invoked inside a separate output_context, if the
$(error ...) function is expanded as part of a recipe.

11 years agoFix .LIBPATTERNS for MS-Windows builds.
Pavel Fedin [Fri, 10 Jan 2014 12:00:02 +0000 (14:00 +0200)] 
Fix .LIBPATTERNS for MS-Windows builds.

default.c (.LIBPATTERNS) [__CYGWIN__ || WINDOWS32]: Provide
library patterns for MS-Windows.

Copyright-paperwork-exempt: yes

11 years ago* w32/*: Remove TABs from the source code.
Paul Smith [Thu, 28 Nov 2013 00:43:33 +0000 (19:43 -0500)] 
* w32/*: Remove TABs from the source code.

I know whitespace commits are annoying, but having these TABs is
causing me to miss things when I search through the code.  This
doesn't try to change the w32 code to meet GNU coding standards.

11 years ago* main.c (decode_env_switches): Ensure we have enough space.
Paul Smith [Thu, 28 Nov 2013 00:06:45 +0000 (19:06 -0500)] 
* main.c (decode_env_switches): Ensure we have enough space.

Reported (with patch) by Gerte Hoogewerf <g.hoogewerf@gmail.com>

11 years agoSolve some Windows build issues.
Stephan T. Lavavej [Wed, 27 Nov 2013 15:57:01 +0000 (10:57 -0500)] 
Solve some Windows build issues.

* main.c (main): Use ONS(), not OSN().
(prepare_mutex_handle_string) [WINDOWS32]: Use %Ix formatting to
support both 32bit and 64bit systems.
* job.c (free_child, new_job): Use ONS(), not OSN().
* w32/subproc/w32err.c (map_windws32_error_to_string): Use O() when
calling fatal().

Copyright-paperwork-exempt: yes

11 years ago* features/loadapi (test_expand): Allocate memory for the nul byte.
Paul Smith [Sun, 24 Nov 2013 09:08:30 +0000 (04:08 -0500)] 
* features/loadapi (test_expand): Allocate memory for the nul byte.

11 years ago* load.c (load_file): Reset the name length minus the symbol.
Paul Smith [Sun, 24 Nov 2013 09:03:19 +0000 (04:03 -0500)] 
* load.c (load_file): Reset the name length minus the symbol.

11 years ago* read.c (unescape_char): Use memmove() for overlapping memory.
Paul Smith [Sun, 24 Nov 2013 08:45:38 +0000 (03:45 -0500)] 
* read.c (unescape_char): Use memmove() for overlapping memory.

11 years agoFix memory leak during environment option decoding.
Paul Smith [Sun, 24 Nov 2013 08:45:02 +0000 (03:45 -0500)] 
Fix memory leak during environment option decoding.

* main.c (decode_switches): Always make a copy of option arguments.
(decode_env_switches): Use a stack buffer to convert environment
switches for parsing.

11 years ago[SV 40226] Add a new type of switch: single-string options
Paul Smith [Sun, 24 Nov 2013 08:21:40 +0000 (03:21 -0500)] 
[SV 40226] Add a new type of switch: single-string options

* main.c (struct command_switch): Change the "string" types to "strlist"
and make "string" be a single-valued string instead.
(output_sync_option, jobserver_fds, sync_mutex): Change to string type.
(decode_output_sync_flags): Handle single strings instead of lists.
(prepare_mutex_handle_string): Ditto.
(main): Ditto.
(clean_jobserver): Ditto.
(init_switches): Handle the new type.
(decode_switches): Ditto.
(define_makeflags): Ditto.

11 years ago* load.c: [SV 40515] Define RTLD_GLOBAL if not set.
Daniel Richard G [Sun, 24 Nov 2013 03:31:36 +0000 (22:31 -0500)] 
* load.c: [SV 40515] Define RTLD_GLOBAL if not set.

Copyright-paperwork-exempt: yes

11 years ago[SV 40361] Don't use vsnprintf(), which is an ISO C99 function.
Paul Smith [Sun, 24 Nov 2013 03:23:52 +0000 (22:23 -0500)] 
[SV 40361] Don't use vsnprintf(), which is an ISO C99 function.

* 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.

11 years ago* makeint.h (STOP_SET): [SV 40371] Cast to unsigned char.
Paul Smith [Sat, 26 Oct 2013 04:10:17 +0000 (00:10 -0400)] 
* makeint.h (STOP_SET): [SV 40371] Cast to unsigned char.

* tests/scripts/misc/utf8: Test variable names with characters >127.
Fix suggested by Robert Bogomip <bob.bogo@milohedge.com>

11 years agoFix MS Visual Studio NET2003 build.
Gerte Hoogewerf [Thu, 24 Oct 2013 18:20:36 +0000 (21:20 +0300)] 
Fix MS Visual Studio NET2003 build.

* make_msvc_net2003.vcproj: Do not exclude guile.c from compilation.
Copyright-paperwork-exempt: Yes.

11 years agoFix SV bug #40227 with respect to stack size set for the MSVC build.
Christian Boos [Wed, 23 Oct 2013 16:56:18 +0000 (19:56 +0300)] 
Fix SV bug #40227 with respect to stack size set for the MSVC build.

* NMakefile.template (/STACK): Increase to 0x400000, mainly for
the 64-bit builds.  Fixes SV bug #40227.
Copyright-paperwork-exempt: Yes.
(guile): Uncomment.

11 years agoFix the MS-Windows build: now guile.c must always be compiled in.
Eli Zaretskii [Wed, 23 Oct 2013 16:28:38 +0000 (19:28 +0300)] 
Fix the MS-Windows build: now guile.c must always be compiled in.

* build_w32.bat: Always compile guile.c and link against guile.o.
  Reported by Alexey Pavlov <alexpux@gmail.com>.

* makeint.h (guile_gmake_setup): Define prototype unconditionally,
to avoid compiler warnings.

11 years agoFix Savannah bug #31150 with failures due to setting window title.
Eli Zaretskii [Tue, 22 Oct 2013 16:04:34 +0000 (19:04 +0300)] 
Fix Savannah bug #31150 with failures due to setting window title.

* sub_proc.c (process_begin): Don't set startInfo.lpTitle, it
reportedly causes SV bug #31150, and according to MSDN it's a
no-no.

11 years agoFix Savannah bug 40241 with Unixy file names as commands to MSYS shell.
Eli Zaretskii [Tue, 22 Oct 2013 15:55:38 +0000 (18:55 +0300)] 
Fix Savannah bug 40241 with Unixy file names as commands to MSYS shell.

* sub_proc.c: Include filedef.h and variable.h.
(process_begin): If exec_path was not found, but its first
character is '/', assume there's some shell magic, and invoke the
command through '$(SHELL) -c "COMMAND"'.  Fixes SV bug#40241.
(make_command_line): Kludgey feature: if full_exec_path is "-c",
assume that argv[0] is not to be skipped, as it holds the command
string to be passed to the shell.

11 years ago* glob.c (glob) [SV 18123]: Cherry-pick glibc fix
Paul Smith [Sun, 20 Oct 2013 17:18:03 +0000 (13:18 -0400)] 
* glob.c (glob) [SV 18123]: Cherry-pick glibc fix

Apply commit a471e96a5352a5f0bde6d32dd36d33524811a2b1 from
git://sourceware.org/git/glibc.git to fix
https://sourceware.org/bugzilla/show_bug.cgi?id=10278

11 years ago* read.c (record_files): [SV 33034] Change fatal() to error()
Paul Smith [Sun, 20 Oct 2013 16:49:01 +0000 (12:49 -0400)] 
* read.c (record_files): [SV 33034] Change fatal() to error()

Allows deprecated syntax.  However we don't guarantee this syntax
will continue to be legal in the future.
Change suggested by David Boyce <david.s.boyce@gmail.com>

11 years ago* README.git: Add some missing release steps.
Paul Smith [Sun, 20 Oct 2013 16:49:56 +0000 (12:49 -0400)] 
* README.git: Add some missing release steps.