summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* Rename WINDOWS32 macro to MK_OS_W32Paul Smith2023-01-151-1/+1
| | | | | | | | | | * configure.ac: Set MK_OS_W32 to 1 if we're on Windows32. * src/config.h.W32: Ditto. * mk/Windows32.mk: Ditto. * src/makeint.h: Convert #if refs to WINDOWS32, to use MK_OS_W32. * src/*: Ditto. * src/w32/*: Ditto. * gl/lib/*: Ditto.
* * NEWS: Update for the next releasePaul Smith2023-02-261-1/+1
| | | | * configure.ac: Set the version for the next release.
* GNU Make release 4.4.14.4.1Paul Smith2023-02-261-1/+1
| | | | | | | | * NEWS: Set the release number and date. * configure.ac: Update the version. * README.git: Remind to update doc/make.1. * doc/make.1: Update the date. Fix some "GNU Make" references. * doc/make.texi: Update the edition.
* * gl/modules/make-glob: Avoid glibc glob if bug #866 is presentPaul Smith2023-02-191-2/+2
|
* Prerelease GNU Make 4.4.0.914.4.0.91Paul Smith2023-02-191-1/+1
| | | | | * NEWS: Update the date. * configure.ac: Change the release.
* [SV 63668] Use autoconf to detect the default C++ compilerPaul Smith2023-02-051-0/+2
| | | | | | * configure.ac: Add AC_PROG_CXX to search for a C++ compiler. (MAKE_CXX): Add the discovered compiler to config.h. * src/default.c (default_variables): Use MAKE_CXX as the C++ compiler.
* * configure.ac: Delay setting HAVE_GUILE until we're surePaul Smith2023-01-151-1/+3
|
* Create src/mkcustom.h which is included by config.hPaul Smith2023-01-081-0/+4
| | | | | | | | | | | | | | | | Put declarations for missing functions which we create in src/misc.c into a file which is included by config.h via AH_BOTTOM(). This ensures those prototypes are available, even in files added to lib/... from gnulib. * src/mkcustom.h: Add a new file with function declarations. * configure.ac: Include src/mkcustom.h in config.h with AH_BOTTOM() * Makefile.am: Add the header to the SRCS list. * src/makeint.h: Remove content that we added to src/mkcustom.h. * src/config.ami: Add #include "mkcustom.h" to specialized config.h. * src/config.h-vms: Ditto. * src/config.h.W32: Ditto. * src/configh.dos: Ditto.
* Include <strings.h> globallyPaul Smith2023-01-081-2/+2
| | | | | | | | | | Various code uses str{,n}casecmp() so include <strings.h>, if it exists, everywhere. * configure.ac: Check for <strings.h> explicitly. * src/makeint.h: Include it if HAVE_STRINGS_H, for str{,n}casecmp(). * src/job.c: Remove include of <strings.h>. * src/main.c: Ditto.
* Convert references from "GNU make" to "GNU Make"Paul Smith2023-01-011-4/+4
|
* Update the copyright year on all filesPaul Smith2023-01-011-1/+1
|
* * configure.ac: Update for a new releasePaul Smith2022-12-181-1/+1
| | | | | * README.git: Add some packages needed for building from Git. * AUTHORS: Updates.
* Release GNU Make 4.44.4Paul Smith2022-10-311-1/+1
| | | | | | * NEWS: Update the version and date. * configure.ac: Update the version. * doc/make.texi: Update the EDITION.
* Release GNU Make 4.3.924.3.92Paul Smith2022-10-241-1/+1
| | | | | * configure.ac: Modify the release version. * NEWS: Update the version and date.
* * configure.ac: Check that we can link with GuilePaul Smith2022-10-221-3/+23
| | | | | On multi-arch systems we may be able to find the header file but not successfully link the library.
* Update URLs to use https rather than httpPaul Smith2022-10-181-2/+2
| | | | | * (all): Change http:// to https:// * README.W32: Remove invalid link to mingw.org.
* Add preprocessor macros for different platformsPaul Smith2022-10-181-2/+7
| | | | | | | | | | | | | * configure.ac: MK_CONFIGURE shows config.h was generated by configure. * src/config.ami: Define MK_AMIGAOS. * src/config.h-vms: Define MK_VMS. * src/configh.dos: Define MK_DJGPP. * src/config.h.W32: Define MK_W32 and WINDOWS32. * src/build_w32.bat: Let WINDOWS32 be defined by config.h. Remove unused setting of WIN32. * src/job.c: Clean up use of WIN32. * src/main.c: Ditto. * tests/scripts/features/default_names: Ditto.
* Remove template files to simplify distribution creationPaul Smith2022-10-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The README templates were not useful since the replacement step didn't have anything to replace: rename them. Rather than creating template files for the config variants, create mkconfig.h.in containg PACKAGE_* variables to be replaced, and have config variant header files include it. Note on POSIX we don't use this, and continue to generate a single config.h.in file. Use config.status to convert the README.in and mkconfig.h.in files during distribution creation. Modify all users of VERSION to use PACKAGE_VERSION instead. * configure.ac: Use GNU Make not GNU make as the package name. * README.in: Use GNU Make not GNU make. * README.git: Remove references to README.W32.template. * .gitignore: Update for new behavior. * Basic.mk.template: Remove unused posix_SOURCES and VERSION, and references to unshipped mk/Posix.mk * Makefile.am: Add src/mkconfig.h as an extra dist file. * bootstrap.bat: Rewrite mkconfig.h.in to mkconfig.h * maintMakefile: Remove obsolete template files; add mkconfig.h.in. * prepare_vms.com: Rewrite mkconfig.h.in to mkconfig.h * mk/VMS.mk: Fix incorrect header file prerequisite. * src/mkconfig.h.in: New file containing PACKAGE variables. * src/config.ami: Include mkconfig.h. * src/config.h.W32: Ditto. * src/configh.dos: Ditto. * src/config.h-vms: Ditto. * src/version.c: Use PACKAGE_VERSION not VERSION.
* Set the proper type for variables set in signal handlersPaul Smith2022-10-151-0/+3
| | | | | | | * bootstrap.conf: Get gnulib's sig_atomic_t type checking M4 macro. * configure.ac: Invoke it. * src/makeint.h (handling_fatal_signal): Set the type correctly. * src/commands.c (handling_fatal_signal): Ditto.
* Support systems with 32-bit long and 64-bit time_tPaul Eggert2022-10-031-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Don't assume that time_t fits in long, as some hosts (e.g., glibc x86 -D_TIME_BITS=64) have 32-bit long and 64-bit time_t. * bootstrap.conf (gnulib_modules): Add largefile, to support files with timestamps after Y2038 on hosts with 32-bit long. * configure.ac: Do not call AC_SYS_LARGEFILE, as the largefile module does that for us. * src/makeint.h (PRIdMAX, PRIuMAX, SCNdMAX): Define if not already defined (taken from gnulib). * src/ar.c: Include intprops.h, for TYPE_MAXIMUM, as INTEGER_TYPE_MAXIMUM does not work on time_t without issuing a bunch of warnings. (ar_member_date): Check that result is in time_t range. (ar_member_date_1): Use intmax_t to hold the date. (ar_glob_match): Ditto. * src/arscan.c (VMS_function, VMS_function_ret, ar_scan) (parse_int, ar_scan, ar_member_pos, ar_member_touch) (describe_member): Convert long int to intmax_t. * src/file.c (file_timestamp_sprintf): Use intmax_t/uintmax_t instead of long/unsigned long for values that might be time_t. * src/arscan.c (ar_member_touch): Fix buffer overrun if the timestamp is too large.
* Add support for intmax_tPaul Smith2022-10-031-0/+1
| | | | | | | | * configure.ac: Ask autoconf to detect it. * src/config.ami.template: Add #define intmax_t for AmigaOS. * src/config.h-vms.template: Add #define intmax_t for VMS. * src/config.h.W32.template: Add #define intmax_t for Windows. * src/configh.dos.template: Add #define intmax_t for MS-DOS/DJPP.
* * configure.ac: [SV 63070] Clean up the test program for posix_spawn.Dmitry Goncharov2022-09-251-10/+6
|
* * configure.ac: Update to GNU make 4.3.91Paul Smith2022-09-251-1/+1
| | | | * NEWS: Update the version and clarify some backward-compat issues.
* bootstrap: Update to the latest gnulib bootstrap modelPaul Smith2022-09-081-1/+1
| | | | | | | | | | | * README.git: Document the changes. * bootstrap.conf: Set GNULIB_REVISION to avoid random updates. * configure.ac: Set the minimum autoconf version back to 2.69: that's the most common version deployed today, and it still works. * bootstrap: Copy the latest from gnulib. * autogen.sh: Ditto. * autopull.sh: Ditto. * bootstrap-funclib.sh: Ditto.
* Support implementing the jobserver using named pipesPaul Smith2022-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using anonymous pipes for jobserver support has some advantages: for example there is nothing on disk that needs to be cleaned up. However it has many obscure problems, related to the fact that in order for it to work we need to ensure these resources are properly passed through to child processes that want to use the jobserver. At the same time we don't want to pass the pipe to process which DON'T know about the jobserver. Other processes can open file descriptors which we then think are our jobserver, but aren't. And, we open the pipe file descriptors in blocking mode which doesn't work for all users. See issues such as SV 57178, SV 57242, and SV 62397 To avoid these issues, use named pipes (on systems where they are available) instead of anonoymous pipes. This simplifies many things: we never need to pass open file descriptors to our children; they can open the jobserver named pipe. We don't need to worry about recursive vs. non-recursive children. Users don't have to "pass through" the resources if they are invoking sub-makes. Each child can open its own file descriptor and set blocking as needed. The downside is the named pipe exists on disk and so must be cleaned up when the "top-level" make instance exits. In order to allow make to continue to be used in build systems where older versions of GNU make, or other tools that want to use the jobserver, but don't understand named pipes, introduce a new option --jobserver-style that allows the user to choose anonymous pipes. * NEWS: Announce the change and the --jobserver-style option. * doc/make.1: Add --jobserver-style documentation. * doc/make.texi (Special Variables): Add missing items to .FEATURES. (Options Summary): Add --jobserver-style. (POSIX Jobserver): Named pipes, changes to --jobserver-auth, and the --jobserver-style option. (Windows Jobserver): Document --jobserver-style for Windows. * configure.ac: Check for mkfifo. * src/config.h-vms.template: Undefined HAVE_MKFIFO. * src/config.h.W32.template: Ditto. * src/main.c: Add jobserver-style as a new command line option. (main): Add jobserver-fifo to .FEATURES if supported. Pass the style option to jobserver_setup(). * src/os.h (jobserver_setup): Accept a style string option. * src/posixos.c (enum js_type): Enumeration of the jobserver style. (js_type): Which style we are currently using. (fifo_name): The path to the named pipe (if in use). (jobserver_setup): If no style is given, or "fifo" is given, set up a named pipe: get a temporary file and use mkfifo() on it, then open it for reading and writing. If something fails fall back to anonymous pipes. (jobserver_parse_auth): Parse jobserver-auth to determine the style. If we are using a named pipe, open it. If we're using anonymous pipes ensure they're valid as before. (jobserver_get_invalid_auth): Don't invalidate the jobserver when using named pipes. (jobserver_clear): Clean up memory used for named pipes. (jobserver_acquire_all): Unlink the named pipe when done. * src/w32/w32os.c (jobserver_setup): Check the style argument. * tests/scripts/features/jobserver: Use --jobserver-style to test the anonymous pipe behavior, and also test named pipe/semaphore behavior. Check invalid jobserver-style options. * tests/scripts/functions/shell: Use --jobserver-style to test the anonymous pipe behavior, and also test named pipe/semaphore behavior.
* Convert HAVE_GETLOADAVG to HAVE_DECL_GETLOADAVGPaul Smith2022-07-091-0/+3
| | | | | | | | | | | We want to know if getloadavg() is declared, not if we have it. * configure.ac: Add it as a define (why is this not the default?) * src/job.c: Conditionalize declaration on HAVE_DECL_GETLOADAVG. * config.ami.template: Rename HAVE_GETLOADAVG to HAVE_DECL_GETLOADAVG. * config.h-vms.template: Ditto. * config.h.W32.template: Ditto. Clean up and add new elements from latest config.h.
* Move our local m4 macros to gl/m4Paul Smith2022-07-091-3/+0
| | | | | | | | | | | The gl subdirectory contains our local versions of gnulib module implementations, so move m4/acinclude.m4 and m4/dospaths.m4 there. * gl/modules/make-macros: Create a new module to handle the macros. * bootstrap.conf: Add the new module. * configure.ac: Macro invocation is moved to make-macros. * m4/.gitignore: Delete unnecessary ignore file: m4 is empty. * .gitignore: Add m4/ as an ignored directory.
* * configure.ac: Remove AC_FUNC_SETVBUF_REVERSED.Paul Smith2022-07-091-2/+0
| | | | | | | | This macro is obsolete: no useful system has this problem anymore. * src/output.c (output_init): Remove reference to SETVBUF_REVERSED. * src/config.ami.template: Remove undef of SETVBUF_REVERSED. * src/config.h-vms.template: Ditto. * src/config.h.W32.template: Ditto.
* * configure.ac: Check for stpcpy() support.Paul Smith2022-07-091-2/+2
| | | | * src/misc.c (stpcpy): Define it if not provided.
* bootstrap: Remove strerror()Paul Smith2022-07-091-1/+1
| | | | | | * bootstrap.conf: Remove strerror module * configure.ac: Add a check for strerror * src/misc.c: Add a default strerror() if not found
* bootstrap: Remove strtoll()Paul Smith2022-07-091-2/+2
| | | | | | | | | This pulls in entirely too much stuff we don't need. Instead grab just the gnulib source file, then include it in src/misc.c. * bootstrap.conf: Add just the lib/strtol.c source file. * configure.ac: Check for strtoll. * src/misc.c: Include strtol.c, with QUAD set, if needed.
* bootstrap: Remove gnulib version of mempcpy()Paul Smith2022-07-091-1/+1
| | | | | | | | This pulls in a metric ton of stuff that we otherwise don't need, just for a one-liner that we already have a replacement for in src/misc.c. * bootstrap.conf: Remove mempcpy * configure.ac: Add mempcpy to AC_CHECK_FUNCS
* Run autoupdate and clean up autoconf usagePaul Smith2022-07-091-22/+9
| | | | | | | | | | | | | | | | | | | | | | | | | We can assume that the return type of a signal handler is void. We can assume that, if sys/time.h exists, it can be included with time.h. * bootstrap: Get the latest version * configure.ac: Require a newer version of autoconf. Remove unnecessary AC_PROG_CC_C99 (already have AC_PROC_CC). Remove unnecessary AC_AIX, AC_ISC_POSIX, AC_MINIX. Remove unnecessary AC_HEADER_STDC, AC_HEADER_TIME, AC_TYPE_SIGNAL. Use strerror to search for the cposix library. * src/commands.c (fatal_error_signal): Assume return type is void. * src/commands.h: Ditto. * src/job.c: Ditto. * src/job.h: Ditto. * src/main.c: Ditto. * src/makeint.h: Ditto. Don't bother with TIME_WITH_SYS_TIME. * src/remote-cstms.c: Check HAVE_SYS_TIME_H. * src/config.ami.template: Remove RETSIGTYPE. * src/config.h-vms.template: Ditto. * src/config.h.W32.template: Ditto. Remove TIME_WITH_SYS_TIME.
* * <all>: Update copyright notices.Paul Smith2022-02-101-1/+1
|
* [SV 60378] Don't add duplicate default search directoriesDmitry Goncharov2021-05-301-0/+5
| | | | | | | | | | | Depending on how make was configured it may add duplicate directories in the default include search path: avoid this. (Tweaked by psmith@gnu.org) * configure.ac: Set AM variable KNOWN_PREFIX if --prefix is known * Makefile.am: Only set INCLUDEDIR if prefix is not known * read.c [default_include_directories]: Only add INCLUDEDIR if set
* * configure.ac: [SV 58836] Copy build.sh to the build directoryPaul Smith2020-12-051-0/+3
|
* * NEWS: [SV 58435] Document minimum C compiler version requirementPaul Smith2020-07-191-0/+3
| | | | * configure.ac: Require c99 via AC_PROG_CC_C99
* Update to GNU make 4.3.90Paul Smith2020-01-201-1/+1
| | | | | * NEWS: Add a 4.3.90 section and update Savannah bug URL * configure.ac (AC_INIT): Change release to 4.3.90
* GNU Make release 4.34.3Paul Smith2020-01-191-1/+1
| | | | | | * NEWS: Update for the release * configure.ac: New release number * doc/make.texi: New edition number
* * configure.ac (guile): Check for Guile 3.0 installationsPaul Smith2020-01-191-1/+1
|
* Enable compilation with C90 compilersPaul Smith2020-01-041-5/+13
| | | | | | | | | | | | | * configure.ac: Try compiling Guile headers: they don't work with C90. * maintMakefile: Simplify config checks via target-specific variables. * src/makeint.h: Use ATTRIBUTE rather than defining __attribute__, as that causes compile issues with system headers. (ENUM_BITFIELD): Don't use enum bitfields in ANSI mode. * src/main.c: Use ATTRIBUTE instead of __attribute__. * src/job.h: Ditto. * src/file.c: Don't define variables inside for loops. * src/rule.c: Ditto. * src/dep.h (SI): Only use static inline in non-ANSI mode.
* Release GNU make 4.2.934.2.93Paul Smith2020-01-031-1/+1
| | | | | * NEWS: Update the release and date * configure.ac: Update the release number
* Update copyright statements for 2020Paul Smith2020-01-031-1/+1
|
* [SV 57022] Avoid posix_spawn which fails asynchronouslyPaul Smith2019-12-271-1/+22
| | | | | | | | | | | | | | | | | | Avoid using posix_spawn implementations that fail asynchronously when the spawned program can't be invoked: this means instead of getting an error such as "No such file or directory" we get just "Exit 127". Original implementation of the configure.ac macro provided by Martin Dorey <martin.dorey@hds.com> Original implementation of the regression tests provided by Dmitry Goncharov <dgoncharov@users.sf.net> * configure.ac: Test whether posix_spawn fails asynchronously. In a cross-compilation environment, assume that it does not. If we detect that it does, fall back to fork/exec. * tests/scripts/features/exec: Add regression tests for different shebang invocation methods.
* * src/implicit.c (pattern_search): Set lastslash correctlyJouke Witteveen2019-12-171-1/+1
| | | | | | If filename contained multiple slashes lastslash is wrongly set to 0. * configure.ac: Check for the GNU memrchr() extension function. * src/misc.c (memrchr): Supply memrchr() if not available.
* Release GNU make 4.2.924.2.92Paul Smith2019-10-081-1/+1
| | | | | * NEWS: Update the release and date * configure.ac: Update the release number
* * configure.ac (HAVE_GETTIMEOFDAY): Avoid undeclared exit function.Florian Weimer2019-09-221-2/+2
| | | | Copyright-paperwork-exempt: yes
* Rework the creation of build.sh so it's not a template.Paul Smith2019-09-091-8/+1
| | | | | | | | | | | | | * build.sh: Rename from build.template. Get the list of objects from the Makefile. Move configure-replaced variables ... * build.cfg.in: to this new .in file. * configure.ac: Remove special handling of build.sh.in and add build.cfg as a generated file. * Makefile.am (EXTRA_DIST): Remove build.sh.in and add build.sh and build.cfg.in for build.sh.in. * maintMakefile: Remove handling for build.template. Treat build.sh as a source file, not a generated file. * .gitignore: Ignore generated build.cfg file.
* * gl/modules/make-glob: Move local glob configure.ac to herePaul Smith2019-09-081-24/+0
| | | | * configure.ac: from here.
* * configure.ac: Check whether struct dirent has a d_type fieldPaul Smith2019-09-071-0/+3
| | | | | | | * src/dir.c (dir_contents_file_exists_p): Use the autoconf macro HAVE_STRUCT_DIRENT_D_TYPE rather than relying on the GNU libc- specific _DIRENT_HAVE_D_TYPE. * lib/glob.c: Set HAVE_D_TYPE if HAVE_STRUCT_DIRENT_D_TYPE.