summaryrefslogtreecommitdiff
path: root/ChangeLog
AgeCommit message (Collapse)AuthorFilesLines
2013-06-22Compare internal commands of non-Unix shells on Windows case-insensitively.Eli Zaretskii1-0/+4
job.c (construct_command_argv_internal) [WINDOWS32]: Use case-insensitive comparison with internal commands of non-Unix shells.
2013-06-22Fix a fatal error at startup on Windows due to non-ASCII characters in PATH.Eli Zaretskii1-0/+9
main.c (find_and_set_default_shell): Don't use file_exists_p or dir_file_exists_p, as those call readdir, which can fail if PATH includes directories with non-ASCII characters, and that would cause Make to fail at startup with confusing diagnostics. See https://sourceforge.net/mailarchive/message.php?msg_id=30846737 for the details.
2013-06-22Create a character map to use for locating stop-points in strings.Paul Smith1-0/+36
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-06-21Disable database verification unless debug enabled.Paul Smith1-0/+10
The database verification can take a long time. Only enable it if debug mode is enabled. If MAKE_MAINTAINER_MODE is set, it's also enabled by default.
2013-05-27Create a new variable MAKE_HOST providing the host architecture.Paul Smith1-0/+5
2013-05-27Porting to VMS, from Hartmut Becker.Paul Smith1-0/+10
2013-05-26[SV #38442] Add library names to the string cache.Paul Smith1-0/+3
2013-05-26[SV #38945] Copy the entire buffer back when overwriting CRPaul Smith1-0/+3
2013-05-26[SV #39028] Fix some small typos in messages.Paul Smith1-0/+7
2013-05-26[SV #39035] Compare OUT to the beginning of the OUT var/func, not IN.Paul Smith1-0/+5
2013-05-22Force version printing whenever we print the database.Paul Smith1-0/+1
2013-05-22Make MFLAGS and MAKEFLAGS more reliable and predictable.Paul Smith1-0/+11
Ensure all simple flags are kept in the initial batch of flags. Do not allow any flags with options in that batch. If there are only non-simple flags ensure MAKEFLAGS begins with " ". Don't let MFLAGS start with "- ".
2013-05-18Fix the MS-Windows build using the Posix configury.Alexey Pavlov1-1/+5
w32/Makefile.am (libw32_a_SOURCES): Add compat/posixfcn.c. configure.ac (OUTPUT_SYNC): Define for mingw32 target.
2013-05-18Support "move" as internal shell command on Windows with cmd.exe.Eli Zaretskii1-0/+3
job.c (construct_command_argv_internal) <sh_cmds_dos> [WINDOWS32]: Add "move". Fixes Savannah bug #30714.
2013-05-18Fix MS-Windows build with Guile.Eli Zaretskii1-0/+8
guile.c: Move inclusion of makeint.h before gnumake.h. This order must be observed when building Make, because gnumake.h must be included with GMK_BUILDING_MAKE defined, which makeint.h already does. Otherwise, the linker will look for, and fail to find, gmk_* functions in some external dynamic library.
2013-05-17Fix MS-Windows compilation when OUTPUT_SYNC is not defined.Eli Zaretskii1-0/+3
main.c (prepare_mutex_handle_string): Define conditioned on OUTPUT_SYNC.
2013-05-17Fix a bug in build_w32.bat when building a released tarball.Eli Zaretskii1-0/+5
build_w32.bat: Copy config.h.W32 to config.h regardless of whether or not we are building from SCM.
2013-05-17Update for GNU make release candidate 3.99.90.3.99.90Paul Smith1-0/+3
2013-05-17Update source file format: remove TABs, use GNU coding styles.Paul Smith1-0/+2
2013-05-17Update copyright for changes in 2013.Paul Smith1-1/+3
2013-05-17Use xcalloc() in hash.c to handle out of memory errors.Paul Smith1-0/+2
2013-05-17Remove the dlopen() pointer from struct filedef.Paul Smith1-0/+18
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-14Add requirement for plugin_is_GPL_compatible symbol in loaded objects.Paul Smith1-0/+6
2013-05-13[Savannah #20501] Handle adding -r/-R to MAKEFLAGS in the makefile.Paul Smith1-0/+11
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-13Use level o_env_override for MAKEFLAGS so it's reset even with -e.Paul Smith1-0/+4
Fixes Savannah bug #2216.
2013-05-13Add new --trace[=MODE] flags, with --trace=dirPaul Smith1-0/+12
This mode replaces the previous heuristic setting enabled with -O, where we would log directory enter/leave for each synchronized output. Now we only do that if --trace=dir is given.
2013-05-11Avoid printing stdout and stderr messages without a newline between them.Eli Zaretskii1-0/+6
job.c (child_out): Output the newline following the message before fllush-ing the stream. Avoids displaying the following failure message, which goes to stderr, on the same line.
2013-05-06Rearrange dllimport/dllexport declarations for MS-Windows.Eli Zaretskii1-0/+6
gnumake.h (GMK_EXPORT) [_WIN32]: Move the dllexport declaration here from makeint.h. makeint.h (GMK_BUILDING_MAKE) [WINDOWS32]: Define before including gnumake.h.
2013-05-06doc/make.texi (Loaded Object Example): Add a note about buildingEli Zaretskii1-0/+5
shared objects on MS-Windows.
2013-05-06build: enable 'subdir-objects' and 'silent-rules' automake optionsStefano Lattarini1-0/+8
On 04/30/2013 05:11 PM, Stefano Lattarini wrote: > * configure.ac (AM_INIT_AUTOMAKE): Here. The future major Automake > version 2.0 (ETA about one, one and half year from now) will likely > enable them by default, so better prepare ourselves. > Please drop this patch. Enabling 'subdir-objects' would require sublter changes to several other parts of the build system that I don't know how to test properly. We should only enable the 'silent-rules' option for the moment. The updated patch below does this. Sorry for the noise, Stefano ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- >From 46623411f017a447caa8fe75b3b42ec2fbeac458 Mon Sep 17 00:00:00 2001 Message-Id: <46623411f017a447caa8fe75b3b42ec2fbeac458.1367335124.git.stefano.lattarini@gmail.com> From: Stefano Lattarini <stefano.lattarini@gmail.com> Date: Tue, 30 Apr 2013 16:30:04 +0200 Subject: [PATCH] build: enable the 'silent-rules' automake options * configure.ac (AM_INIT_AUTOMAKE): Here. The future major Automake version 2.0 (ETA about one, one and half year from now) will enable it by default, so better prepare ourselves. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2013-05-06build: require Autoconf >= 2.62 and Automake >= 1.11.1Stefano Lattarini1-0/+14
Older versions of those tools should be considered fully obsolete. Also, GNU make already requires Gettext >= 0.18.1, which has been released six months after Automake 1.11.1 and two years after Autoconf 2.62; so the new requirement shouldn't be problematic for people already bootstrapping GNU make from the Git repository. * configure.ac (AC_PREREQ): Require Autoconf 2.62 or later. (AM_INIT_AUTOMAKE): Require Automake 1.11.1 or later (1.11 had some serious bugs, and should not be used). Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2013-05-05cosmetics: fix few innocuous typosStefano Lattarini1-0/+24
Most of these were found using Lucas De Marchi's 'codespell' tool. * ChangeLog: Fix minor typos. * ChangeLog.2: Likewise. * README.Amiga: Likewise. * TODO.private: Likewise. * function.c: Likewise. * glob/glob.h: Likewise. * job.c: Likewise. * main.c: Likewise. * readme.vms: Likewise. * remake.c: Likewise. * tests/ChangeLog: Likewise. * tests/NEWS: Likewise. * tests/README: Likewise. * tests/scripts/variables/private: Likewise. * vmsdir.h: Likewise. * signame.c: Likewise. While at it, improve line wrapping in the touched comment. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2013-05-05build: get rid of 'HAVE_ANSI_COMPILER' C preprocessor conditionalStefano Lattarini1-0/+13
GNU make already assume C89 or later throughout the codebase, and that preprocessor conditional was no longer used anyway. * configure.ac: Remove AC_DEFINE of HAVE_ANSI_COMPILER. * config.ami.template: Remove #define of HAVE_ANSI_COMPILER. * config.h-vms.template: Likewise. * config.h.W32.template: Likewise. * configh.dos.template: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2013-05-05Rename the -O "job" mode to "line" and "make" to "recurse".Paul Smith1-0/+8
2013-05-05Ensure command lines are written synchronously with -O.Paul Smith1-0/+12
If output-sync is enabled, have make write the command line to the temp file instead of printing it directly to the screen to ensure that the output is ordered properly. Also, remove extraneous enter/leave operations by having them printed directly when dumping temp file output.
2013-05-04Add memory allocation cleanup to loadable objects.Paul Smith1-0/+7
Add gmk_alloc() and gmk_free() functions so loadable objects can access our memory model. Also provide a more extensive example in the manual.
2013-05-04Don't pump output to the descriptor, as we use FILE* elsewhere.Paul Smith1-0/+5
2013-05-04Minor portabiulity fixes for MS-Windows.Eli Zaretskii1-0/+5
makeint.h (ftruncate) [_MSC_VER]: Redirect to _chsize. (_S_ISDIR): If not defined (MinGW64), define to S_ISDIR.
2013-05-04Improve sync handling for -Ojob/-Otarget and recursion.Paul Smith1-0/+13
If we are not going to sync a command line then dump any collected output first to preserve ordering. Do some code cleanup: * Move the handle init to a separate function. * Move the temp file truncation to the output function. * Remember whether we sync in a variable for readability. * Handle EINTR and short writes in child_out(). * Always call sync_output() in case output_sync was changed due to error.
2013-05-04Fix the MS-Windows branch of output_sync code.Eli Zaretskii1-0/+6
job.c (start_job_command): Make the condition for creating a temporary output file be identical to the Posix code branch. Suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
2013-05-03Fix invocation of Windows batch files with whitespace in their names.Eli Zaretskii1-0/+10
w32/subproc/sub_proc.c: Include makeint.h. Remove a private incompatible prototype of xmalloc. (batch_file_with_spaces): New function, detects Windows batch files whose names include whitespace characters. (process_begin): If exec_name is a batch file with whitespace characters in its name, pass NULL as the first argument to CreateProcess. This avoids weird failures due to buggy quoting by CreateProcess. For the details, see the discussion starting at http://lists.gnu.org/archive/html/make-w32/2013-04/msg00008.html.
2013-05-03Fix interfacing with and remaking dynamic objects on MS-Windows.Eli Zaretskii1-0/+35
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-05-01Fix treatment of whitespace after a backslash on MS-Windows.Eli Zaretskii1-0/+4
job.c (construct_command_argv_internal): Don't treat a backslash as an escape character before whitespace, if the shell is not a Posix shell. For the description of the problem, see http://lists.gnu.org/archive/html/make-w32/2013-04/msg00014.html.
2013-05-01job.c (start_job_command) [WINDOWS32]: Make the same fix forEli Zaretskii1-0/+5
MS-Windows as the previous commit did for Posix platforms.
2013-05-01Don't synchronize output for recursive make unless -OmakePaul Smith1-0/+5
2013-04-29Support dynamic object loading on MS-Windows.Eli Zaretskii1-0/+11
w32/include/dlfcn.h: New file. w32/compat/posixfcn.c: Include dlfcn.h. (dlopen, dlerror, dlsym) [MAKE_LOAD]: New functions, in support of dynamic loading. config.h.W32.template (MAKE_LOAD): Define. load.c (load_object) [HAVE_DOS_PATHS]: Support backslashes and drive letters in file names of dynamic objects.
2013-04-29Fix the .ONESHELL operation on MS-Windows.Eli Zaretskii1-0/+6
job.c (construct_command_argv_internal) [WINDOWS32]: Return right after generating new_argv for one_shell case. This fixes the Windows build for both Unixy shell and stock Windows shells.
2013-04-28Merge branch 'master' of git.savannah.gnu.org:/srv/git/makePaul Smith1-0/+6
2013-04-28Ensure error messages are printed with sync'd output.Paul Smith1-0/+7
Enhance the child_error() function so that it will write error output to the child's sync output buffer, if it exists. If it doesn't the output goes to stdout/stderr.
2013-04-28Remove support for pre-ANSI variadic function calls.Paul Smith1-0/+8
We've required support for ANSI C (ISO C 89) or better for quite a while. Get rid of the old varags.h, doprnt() stuff and simply assume ANSI C variadic function capability and basic C runtime library support (vfprintf, vsprintf, etc.)