summaryrefslogtreecommitdiff
path: root/maintMakefile
Commit message (Collapse)AuthorAgeFilesLines
* Remove support for AmigaOSPaul Smith2023-01-151-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a lot of specialized code for supporting AmigaOS and it has not been maintained for a number of years. It's highly unlikely that the latest versions even compile properly on AmigaOS anymore. After requesting that someone step forward to own the maintenance of the port in the GNU Make 4.4 release and getting no takers, I removed it. * NEWS: Announce the removal. * README.in: Remove README.Amiga reference. * README.Amiga: Remove unused file. * SCOPTIONS: Ditto. * src/amiga.c: Ditto. * src/amiga.h: Ditto. * src/config.ami: Ditto. * mk/Amiga.mk: Ditto. * Makefile.am: Remove references to deleted files. * Basic.mk.template: Ditto. * maintMakefile: Ditto. * src/commands.c: Remove ifdef'd Amiga code. * src/default.c: Ditto. * src/dir.c: Ditto. * src/file.c: Ditto. * src/function.c: Ditto. * src/job.c: Ditto. * src/job.h: Ditto. * src/main.c: Ditto. * src/os.h: Ditto. * src/read.c: Ditto. * src/remake.c: Ditto.
* Allow jobserver style to be forced to "pipe"Paul Smith2023-02-191-0/+2
| | | | | | | | | | | | | | Some systems that support mkfifo() don't support the usage that GNU make wants. Provide a way to force using "pipe" jobserver mode even when mkfifo() is available. * src/makeint.h (MK_OS_HURD): Define if we're on Hurd. (JOBSERVER_USE_FIFO): Define if we have mkfifo() and we're NOT on Hurd. * src/main.c (main): Test JOBSERVER_USE_FIFO not HAVE_MKFIFO. * src/posixos.c (jobserver_setup): Ditto. * maintMakefile: Create a config check test for forcing "pipe" mode. * tests/run_make_tests.pl: Show discovered FEATURES in verbose mode.
* Prerelease GNU Make 4.4.0.904.4.0.90Paul Smith2023-01-141-33/+4
| | | | | | | * NEWS: Update the date. * README.git: Fix a typo. * maintMakefile (check-alt-config): Report success. (upload-*): Use the gnulib gnupload script for uploads.
* Update ancient glob/fnmatch implementationsPaul Smith2023-01-021-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | I looked again at trying to use the latest gnulib implemenentations of GNU glob and fnmatch, and the effort required to extract them from gnulib and make them portable to systems which don't support configure is simply far too daunting for me. However it's clear that the previous implementations are growing too long on the tooth to continue to be used without some maintenance, so perform some upkeep on them. - Remove support for pre-ANSI function definitions. - Remove the obsolete "register" keyword. - Assume standard ISO C90/C99 header file support. - Assume standard ISO C "void" and "const" support. - Avoid symbols prefixed with "__" as they're reserved. * maintMakefile: Add a rule to verify lib has the latest content. * src/dir.c: Use void* not __ptr_t which was removed. * gl/lib/glob.c: See above. * gl/lib/fnmatch.in.h: See above. * gl/lib/glob.in.h: See above. * gl/lib/fnmatch.c: See above. Remove __strchrnul(): it is not checked anywhere and is only used in one place anyway.
* * maintMakefile: Add missing quotePaul Smith2023-01-011-1/+1
|
* 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
|
* Apply spelling fixes discovered by CodespellPaul Smith2022-12-311-1/+1
| | | | | | | | | | | | | | | | | | * maintMakefile: Apply spelling fixes. * src/file.c: Ditto. * src/misc.c: Ditto. * src/remake.c: Ditto. * src/vmsjobs.c: Ditto. * src/w32/pathstuff.c: Ditto. * tests/test_driver.pl: Ditto. * tests/run_make_tests.com: Ditto * tests/scripts/features/implicit_search: Ditto * tests/scripts/features/output-sync: Ditto * tests/scripts/features/patternrules: Ditto * tests/scripts/features/se_explicit: Ditto * tests/scripts/features/statipattrules: Ditto * tests/scripts/functions/foreach: Ditto * tests/scripts/variables/MAKEFLAGS: Ditto
* Avoid C99 constructsPaul Smith2022-10-291-1/+3
| | | | | | | | | | Although gnulib requires C99, most of the code does compile with a C90 compiler (perhaps with a lot of warnings). Reinstate our C90 configuration test, and clean up a few C99 things that crept in. * src/job.c (construct_command_argv_internal): Don't use loop-local variables or C++ comments. * src/read.c (eval_makefile): Don't use loop-local variables.
* * build.sh: Allow a "keep-going" mode during buildsPaul Smith2022-10-291-1/+1
|
* Update URLs to use https rather than httpPaul Smith2022-10-181-1/+1
| | | | | * (all): Change http:// to https:// * README.W32: Remove invalid link to mingw.org.
* Remove template files to simplify distribution creationPaul Smith2022-10-181-27/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* * maintMakefile: Use gnulib ncftpput-ftp if ncftpput is missing.Paul Smith2022-09-251-1/+1
|
* Clean up maintMakefilePaul Smith2022-09-101-4/+4
| | | | | | | Notes provided by Tzvetelin Katchov <katchov@gnu.org> * maintMakefile (git-very-clean): Add -x to git clean. (GNULIBDIR): Use GNULIB_SRCDIR, or the local module if not set.
* Sanitize tar file ownership, mode, and orderPaul Smith2022-09-081-0/+5
| | | | | | | | | | For reproducibility ensure all files in the dist tar file are owned by root, and sorted by name. Force the mode on all files to be writable by the owner and not writable by group or user, by default. Remove unnecessary execute permissions from build_w32.bat. Recommended by Tzvetelin Katchov <katchov@gnu.org>.
* Fix tests for MacOS and WindowsPaul Smith2022-08-301-3/+2
| | | | | | | | | | | * maintMakefile: Remove the template headers as prerequisites. * tests/scripts/features/jobserver: Only test fifo if enabled. * tests/scripts/variables/INCLUDE_DIRS: On MacOS none of the default directories exist so .INCLUDE_DIRS is empty by default. * tests/scripts/features/se_explicit: Fail via exit. cp will show different error messages on different systems. * tests/scripts/features/se_implicit: Ditto. * tests/scripts/features/se_statpat: Ditto.
* * maintMakefile: Allow checkcfg rules to succeed.Paul Smith2022-07-091-15/+21
| | | | | | | | | We can no longer pass our mondo-warnings options to the builds, as these will impact all the code including gnulib code, and this won't work. Also allow the caller to disable either the build.sh or makefile invocation, for testing. * Makefile.am: Allow the caller to reset the path to the make binary to be tested. Remove c90 test: gnulib doesn't support it.
* * <all>: Update copyright notices.Paul Smith2022-02-101-1/+1
|
* Change HTTP URLs to use HTTPS insteadPaul Smith2021-12-191-2/+1
| | | | | | | | | | | Also remove unnecessary tests/COPYING file. * README.template: Change http: to https: * README.git: Ditto * doc/make.texi: Ditto * doc/make.1: Ditto * src/main.c: Ditto * maintMakefile: Remove invalid URL
* * maintMakefile: Don't make .check-git-HEAD .PHONYPaul Smith2021-03-141-2/+3
|
* * maintMakefile: [SV 58794] Check for file existence in the releasePaul Smith2020-11-291-9/+9
|
* Convert [ ... ] to test ... in scripting.Paul Smith2020-05-031-8/+8
| | | | | | | | | | The "[" link may be missing during OS boostrapping. * build.sh: Convert "[ ... ]" to "test ..." * maintMakefile: Ditto. * scripts/copyright-update: Ditto * tests/scripts/features/reinvoke: Ditto * tests/scripts/features/targetvars: Ditto
* * maintMakefile: Clean up outputPaul Smith2020-05-031-6/+6
|
* * mainMakefile: Check that INSTALL exists in the dist filePaul Smith2020-05-031-0/+20
| | | | | For some reason the INSTALL file symlinked to gnulib was omitted from the 4.3 release package: I can't reproduce this but check for it.
* Enable compilation with C90 compilersPaul Smith2020-01-041-12/+33
| | | | | | | | | | | | | * 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.
* Update copyright statements for 2020Paul Smith2020-01-031-1/+1
|
* * Makefile.am (check-regression): Use PERLFLAGS when running PerlPaul Smith2019-10-051-0/+3
| | | | | * maintMakefile: Set PERLFLAGS to enable warnings. * tests/run_make_tests.pl: Clean up issues pointed out by perl -w.
* Rework the creation of build.sh so it's not a template.Paul Smith2019-09-091-14/+4
| | | | | | | | | | | | | * 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.
* * README.git: Describe GCC and GNU make requirementsPaul Smith2019-09-071-1/+3
| | | | | * maintMakefile: Put custom C flags into a separate variable so they can be overridden more easily on the command line.
* * maintMakefile: Use check-local when testing build.sh.Paul Smith2019-09-071-1/+1
| | | | | Running 'make check' will rebuild 'make' so we're not testing the build.sh-generated make binary.
* Update copyright statements for 2019Paul Smith2019-05-191-1/+1
|
* Add developer customizationsPaul Smith2019-05-121-3/+3
| | | | | | | * .ccls: Configure the ccls LSP server * .dir-locals.el: Reset some parameters for ccls and lsp-mode * .gitignore: Update for GTAGS and ccls * maintMakefile: Don't search hidden directories for sources
* * configure.ac: Add --disable-posix-spawn optionPaul Smith2018-08-041-0/+1
| | | | | * maintMakefile: Add a test for the option * src/job.c: Change HAVE_* preprocessor checks to USE_POSIX_SPAWN
* Enhance the Basic.mk environment to work with GnulibPaul Smith2018-08-021-0/+3
| | | | | | | | | * maintMakefile: Omit generated headers from Basic.mk prerequisites. * Basic.mk.template: Rework commands to use with $(call ...) macros. * mk/Amiga.mk: Ditto. * mk/VMS.mk: Ditto. * mk/Windows32.mk: Ditto, plus P2W to convert POSIX to Windows paths. * mk/msdosdjgpp.mk: Ditto.
* * maintMakefile: Preserve comments during compilationPaul Smith2018-07-021-5/+4
|
* Convert GNU make to use the gnulib portability libraryPaul Smith2018-07-021-37/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* * all: Update Copyright statements for 2018Paul Smith2018-07-011-1/+1
|
* Rework directory structure to use GNU-recommended "src" directory.Paul Smith2017-11-191-23/+55
| | | | | | | | | | | | | | | | | Move the source code (other than glob) into the "src" subdirectory. Update all scripting and recommendations to support this change. * *.c, *.h, w32/*: Move to src/ * configure.ac, Makefile.am, maintMakefile: Locate new source files. * Basic.mk.template, mk/*: Update for new source file locations. * NEWS, README.DOS.template: Update for new locations. * build.template, build_w32.bat, builddos.bat: Ditto. * po/POTFILES.in: Ditto * tests/run_make_tests.pl, tests/scripts/features/load*: Ditto. * make.1: Move to doc. * mk/VMS.mk: Add support for building on VMS (hopefully). * makefile.vms, prepare_w32.bat: Remove. * SCOPTIONS: Update to define HAVE_CONFIG_H
* Remove unsupported build facilities.Paul Smith2017-11-181-26/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Over time the non-standard build and install systems (nmake files, smake files, Visual Studio project files, etc.) have atrophied and maintaining them is not worth the effort, for such a simple utility as make. Remove all the non-standard build tool support and unify OS-specific build rules under a basic set of (GNU make) makefiles. Preserve the existing bootstrapping scripts (for POSIX, Windows, and MS-DOS). Also the existing VMS build scripts are left unchanged: I don't have enough experience with VMS to venture into this area. Perhaps one of the VMS maintainers might like to determine whether conversion would be appropriate. Rather than create libraries for w32 and glob (non-POSIX), simply link the object files directly to remove the complexity. * NEWS: Update with user-facing notes. * Makefile.am: Clean up to use the latest automake best practices. Build Windows code directly from the root makefile to avoid recursion. * README.Amiga, README.DOS.template, README.W32.template: Updated. * INSTALL: Point readers at the README.git file. * maintMakefile: Remove obsolete files. Create Basic.mk file. * Basic.mk.template, mk/*.mk: Create basic GNU make-based makefiles. * build_w32.bat: Copy Basic.mk to Makefile * configure.ac: We no longer need AM_PROG_AR. * dosbuild.bat: Rename to builddos.bat. Incorporate configure.bat. * Makefile.DOS.template: Remove. * NMakefile.template, w32/subproc/NMakefile: Remove. * SMakefile.template, glob/SMakefile, glob/SCOPTIONS, make.lnk: Remove. * configure.bat, glob/configure.bat: Remove. * w32/Makefile.am: Remove. * make_msvc_net2003.sln, make_msvc_net2003.vcproj: Remove.
* Update copyright statements for 2017.Paul Smith2017-07-091-1/+1
|
* Add more GCC warnings to the maintainer build.Paul Smith2016-12-251-1/+8
| | | | | | | * arscan.c: [SV 49112] Correct TEST printf() formatting. Recommended by Jaak Ristioja <jaak@ristioja.ee> * hash.c: Correct fprintf() formatting. * maintMakefile: Add extra GCC warning flags.
* * maintMakefile: Update default GPG ID for new key.Paul Smith2016-12-251-5/+5
|
* Resolve issues discovered by static code analysis.Paul Smith2016-12-141-1/+50
| | | | | | | | | | | | | | * maintMakefile: Add a rule to submit code for analysis. * configure.ac: Check for availability of the umask() function. * output.c (output_tmpfd, output_tmpfile): Use umask on temp files. * makeint.h (PATH_VAR): Reserve an extra character for nul bytes. * function.c (func_error): Initialize buffer to empty string. * job.c (child_execute_job): Verify validity of fdin. * main.c (main): Simplify code for makefile updating algorithm. * arscan.c (ar_scan): Verify member name length before reading. * read.c (readline): Cast pointer arithmetic to avoid warnings. * remake.c (update_file): Remove unreachable code. (name_mtime): Verify symlink name length.
* * maintMakefile: TP recommends rsync for retrieving PO files.Paul Smith2016-06-061-3/+4
|
* * maintMakefile: Add a rule for storing preprocessor output.Paul Smith2016-04-091-0/+4
|
* * maintMakefile: Fix logging of check-alt-config target.Paul Smith2016-04-041-2/+8
|
* Extract jobserver implementation into OS-specific files.Paul Smith2016-03-081-1/+1
| | | | | | | | | | | * os.h, posixos.c, w32/w32os.c: New files implementing jobserver. * job.c, job.h, main.c, makeint.h: Move content to new files. * w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto. * Makefile.am: Build and package OS-specific files. * build_w32.bat, make_msvc_net2003.vcproj, README.W32.template: Update for new files, and clean up the build. * POTFILES.in, maintMakefile, NMakefile.template: Ditto. * w32/subproc/build.bat: Delete as unused.
* Update Copyright statements for the new year.Paul Smith2016-02-281-1/+1
|
* GNU Make release 4.1.4.1Paul Smith2014-10-051-2/+2
|
* Update Copyright statements for 2014.Paul Smith2014-09-301-1/+1
|