summaryrefslogtreecommitdiff
path: root/bootstrap.conf
Commit message (Collapse)AuthorAgeFilesLines
* Update to the latest gnulib stable branchPaul Smith2023-01-011-1/+1
| | | | | | | | | * bootstrap.conf: Request the latest gnulib stable branch. * README.git: Recommend the argument form of autogen/autopull. * bootstrap: Import the latest version of bootstrap. * bootstrap-funclib.sh: Ditto. * autogen.sh: Ditto. * autopull.sh: Ditto.
* Update the copyright year on all filesPaul Smith2023-01-011-1/+1
|
* Set the proper type for variables set in signal handlersPaul Smith2022-10-151-1/+1
| | | | | | | * 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-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Release GNU make 4.3.904.3.90Paul Smith2022-09-201-1/+1
| | | | | | * NEWS: Update for the prerelease. * bootstrap.conf: Choose the latest stable gnulib. * README.git: Updates.
* bootstrap: Update to the latest gnulib bootstrap modelPaul Smith2022-09-081-0/+3
| | | | | | | | | | | * 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.
* Move our local m4 macros to gl/m4Paul Smith2022-07-091-1/+2
| | | | | | | | | | | 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.
* bootstrap: Remove strerror()Paul Smith2022-07-091-1/+0
| | | | | | * 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-1/+5
| | | | | | | | | 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/+0
| | | | | | | | 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-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | 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
|
* Convert word, wordlist, and intcmp functions to use long longPaul Smith2021-11-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | Modify make functions that parse integer values to use long long values instead of long: on Windows long is the same as int (4 bytes) and we don't want behavior to differ between different platforms. * bootstrap.conf: Change strtol module to strtoll module. * src/function.c (parse_numeric): Use strtoll() and return long long. (func_word): Use long long. (func_wordlist): Use long long. Verify second argument is >= 0. (func_intcmp): Use long long. * src/config.ami.template: Don't define HAVE_STRTOLL. * src/config-vms.template: Define HAVE_STRTOLL. * src/config.W32.template: Define HAVE_STRTOLL. * tests/run_make_tests.pl: Set $ERR_out_of_range to the proper string. * tests/scripts/functions/word: Rework to use the new style and avoid TAB characters. Verify trailing whitespace is ignored. Add a test for a negative second argument to wordlist. Add tests for max signed integer values. Use $ERR_out_of_range for the error string. * tests/scripts/functions/intcmp: Add tests for min and max signed integer values. Use $ERR_out_of_range for the error string.
* Use strtol() instead of atoi()Jouke Witteveen2021-11-281-0/+1
| | | | | | | strtol() is part of C89 and a fallback is provided by gnulib. * src/function.c (func_word, func_wordlist): Change atoi to strtol. * test/scripts/functions/word: Add out-of-range verification testing.
* [SV 61042] Enhance logging of implicit rule searchDmitry Goncharov2021-10-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Logging of implicit rule search gives limited information as to why a given implicit rule was rejected, and if no implicit rule is found we get the confusing "No rule to make target" result when the real issue is that some prerequisite of some implicit rule could not be built. Enhance logging around implicit rule search as follows: 1. The messages which refer to a rule print a description (the targets and prerequisites) of the rule. 2. A new message tells when a rule is rejected, along with the reason. 3. The 'Looking for an implicit rule...' message is printed for every prerequisite, not just the top-level target. 4. "Trying harder" message is printed, when intermediate prerequisites are going to be searched. 5. The 'No rule found...' and 'Found implicit rule...' messages are printed for every prerequisite, not just the top-level target. 6. "Ought to exist...", "Found..." or "Not found..." message is printed for each prerequisite. * src/rule.h (struct rule): Remember the definition of the rule. * src/rule.c (get_rule_defn): Compute the definition of a rule. (install_pattern_rule): Initialize the definition to empty. (create_pattern_rule): Ditto. (freerule): Free the definition. (print_rule): Use the definition when printing rules. * src/remake.c (update_file_1): Push debug output down into try_implicit_rule(). * src/implicit.c (try_implicit_rule): Add debugging (pattern_search): Show the rule definition in various debug output. Add new debug messages for implicit rule search. Additional changes by Paul Smith <psmith@gnu.org>: Since we usually don't need the rule definition, defer computing it until we do. * bootstrap.conf: Include the mempcpy Gnulib module. * src/makeint.h (mempcpy): Declare mempcpy if not available. * src/misc.c (mempcpy): Define mempcpy if not available. * src/config.h-vms.template: Don't set HAVE_MEMPCPY. * src/config.h.W32.template: Ditto. * src/rule.h (get_rule_defn): Return the definition of a rule. * src/rule.c (get_rule_defn): If we don't have a definition compute it; either way return it. * src/implicit.c (pattern_search): Rework the handling of explicit prerequisites to pattern rules to be more clear. There is no change in behavior.
* Update copyright statements for 2020Paul Smith2020-01-031-1/+1
|
* [SV 56834] Support local PATH search with posix_spawnpPaul Smith2019-09-081-0/+1
| | | | | | | | | | | | | | | | | | | | | When using exec we install the child's environment before invoking execlp(), so commands are found on the child's PATH. posix_spawnp searches on the parent's PATH, which we don't want. Import gnulib's findprog-in module and use it to search the child's PATH, then use posix_spawn() to run it. Also, posix_spawn() does not fall back to trying sh on ENOEXEC, as execlp() does, so implement that as well. * bootstrap.conf: Add the findprog-in gnulib module * src/job.c: Include findprog.h if we're using posix_spawn. (start_job_command): Remove the handling of child->cmd_name, (child_execute_job): and add it here. Look up the command to be run in the child's path and invoke it if found. If it fails with ENOEXEC then retry it as an argument to the default shell. * tests/scripts/misc/general4: Test makefile PATH assignments. * tests/scripts/features/targetvars: Ditto, for target variables.
* Switch to the gnulib version of strerror()Paul Smith2019-07-131-0/+1
| | | | | | | | | * bootstrap.conf: Add strerror module * configure.ac: Remove strerror check * src/misc.c: Remove local strerror() implementation * src/config.ami.template: Remove HAVE_STRERROR * src/config.h-vms.template: Ditto. * src/config.h.W32.template: Ditto.
* Update copyright statements for 2019Paul Smith2019-05-191-1/+1
|
* Convert GNU make to use the gnulib portability libraryPaul Smith2018-07-021-0/+51
Move content from glob/* and config/* into standard GNU directory locations lib/* and m4/*. Install the gnulib bootstrap script and its configuration file, and create a bootstrap.bat file for Windows. Update the README.git file with new requirements and instructions for building from Git. At this point we only install the alloca, getloadavg, and FDL modules from gnulib. We keep our old glob/fnmatch implementation since the gnulib versions require significant amounts of infrastructure which doesn't exist on Windows yet. Further work is required here. Due to a problem with gnulib's version of getloadavg, we need to bump the minimum required version of automake to 1.16.1 unfortunately. * README.git: Update instructions * NEWS: Move developer news to a separate section * configure.ac: Update for use with gnulib modules * bootstrap: Bootstrap from Git workspace (import from gnulib) * bootstrap.conf: Bootstrap configuration for GNU make * bootstrap.bat: Bootstrap from Git workspace for Windows * gl/modules/make-glob: Support our local fnmatch/glob implementation * config/acinclude.m4: Move to m4/ * config/dospaths.m4: Move to m4/ * glob/fnmatch.c: Move to lib/ * glob/fnmatch.h.in: Move to lib/ * glob/glob.c: Move to lib/ * glob/glob.h.in: Move to lib/ * Makefile.am: Update for new directories * build.template: Update for new directories * build_w32.bat: Update for new directories * builddos.bat: Update for new directories * maintMakefile: Update for new directories * makefile.com: Update for new directories * mk/Amiga.mk: Update for new directories * mk/Posix.mk.in: Update for new directories * mk/VMS.mk: Update for new directories * mk/Windows32.mk: Update for new directories * mk/msdosdjgpp.mk: Update for new directories * po/LINGUAS: One language per line (needed by gnulib) * INSTALL: Remove (obtained from gnulib) * src/alloca.c: Remove (obtained from gnulib) * src/getloadavg.c: Remove (obtained from gnulib) * po/Makevars: Remove (created by bootstrap) * config/*: Remove leftover files * glob/*: Remove leftover files