# # spec file for package make # # Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: make Version: 4.4.1 Release: 3.2 Summary: GNU make License: GPL-3.0-or-later Group: Development/Tools/Building URL: https://www.gnu.org/software/make/make.html Source: https://ftp.gnu.org/gnu/make/make-%{version}.tar.gz Source1: https://ftp.gnu.org/gnu/make/make-%{version}.tar.gz.sig # keyring downloaded from https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=make&download=1 Source2: %{name}.keyring Patch64: make-library-search-path.diff BuildRequires: pkgconfig Requires(post): %{install_info_prereq} Requires(preun):%{install_info_prereq} Provides: gmake %description The GNU make command with extensive documentation. %lang_package %prep %autosetup -N %if "%{_lib}" == "lib64" %patch -P 64 -p1 %endif %build %configure %make_build %check %make_build check || { for f in tests/work/*/*.diff*; do test -f "$f" || continue printf "++++++++++++++ %s ++++++++++++++\n" "${f##*/}" cat "$f" done } %install %make_install ln -s make %{buildroot}%{_bindir}/gmake %find_lang %{name} # gnumake.h was introduced in 4.0, looks useless rm %{buildroot}%{_includedir}/gnumake.h %files %{_bindir}/make %{_bindir}/gmake %{_infodir}/make.info-*%{ext_info} %{_infodir}/make.info%{ext_info} %{_mandir}/man1/make.1%{ext_man} %files lang -f %{name}.lang %post %install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} %preun %install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} %changelog * Wed Feb 21 2024 Andreas Schwab - Use %%patch -P * Thu Apr 6 2023 Frederic Crozat - Update license tag, tarball contains GPL-3.0-or-later code. * Mon Feb 27 2023 Andreas Schwab - Update to make 4.4.1 * WARNING: Backward-incompatibility! In previous releases it was not well-defined when updates to MAKEFLAGS made inside a makefile would be visible. This release ensures they are visible immediately, even when invoking $(shell ...) functions. * New feature: Parallel builds of archives Previously it was not possible to use parallel builds with archives. It is still not possible using the built-in rules, however you can now override the built-in rules with a slightly different set of rules and use parallel builds with archive creation. * Previously target-specific variables would inherit their "export" capability from parent target-specific variables even if they were marked private. Now private parent target-specific variables have no affect. - sigpipe-fatal.patch: removed * Mon Nov 21 2022 Andreas Schwab - reset-sigpipe.patch: Removed - sigpipe-fatal.patch: Handle SIGPIPE as a fatal signal * Wed Nov 2 2022 Andreas Schwab - reset-sigpipe.patch: Reset SIGPIPE in children * Mon Oct 31 2022 Andreas Schwab - Update to make 4.4 * WARNING: Future backward-incompatibility! In the NEXT release of GNU Make, pattern rules will implement the same behavior change for multiple targets as explicit grouped targets * WARNING: Backward-incompatibility! GNU Make now uses temporary files in more situations than previous releases. * WARNING: Backward-incompatibility! Previously each target in a explicit grouped target rule was considered individually: if the targets needed by the build were not out of date the recipe was not run even if other targets in the group were out of date. Now if any of the grouped targets are needed by the build, then if any of the grouped targets are out of date the recipe is run and all targets in the group are considered updated. * WARNING: Backward-incompatibility! Previously if --no-print-directory was seen anywhere in the environment or command line it would take precedence over any --print-directory. Now, the last setting of directory printing options seen will be used, so a command line such as "--no-print-directory -w" _will_ show directory entry/exits. * WARNING: Backward-incompatibility! Previously the order in which makefiles were remade was not explicitly stated, but it was (roughly) the inverse of the order in which they were processed by make. In this release, the order in which makefiles are rebuilt is the same order in which make processed them, and this is defined to be true in the GNU Make manual. * WARNING: Backward-incompatibility! Previously only simple (one-letter) options were added to the MAKEFLAGS variable that was visible while parsing makefiles. Now, all options are available in MAKEFLAGS. If you want to check MAKEFLAGS for a one-letter option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return the set of one-letter options which can be examined via findstring, etc. * WARNING: Backward-incompatibility! Previously makefile variables marked as export were not exported to commands started by the $(shell ...) function. Now, all exported variables are exported to $(shell ...). If this leads to recursion during expansion, then for backward-compatibility the value from the original environment is used. To detect this change search for 'shell-export' in the .FEATURES variable. * WARNING: New build requirement GNU Make utilizes facilities from GNU Gnulib: Gnulib requires certain C99 features in the C compiler and so these features are required by GNU Make: https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html The configure script should verify the compiler has these features. * New feature: The .WAIT special target If the .WAIT target appears between two prerequisites of a target, then GNU Make will wait for all of the targets to the left of .WAIT in the list to complete before starting any of the targets to the right of .WAIT. * New feature: .NOTPARALLEL accepts prerequisites If the .NOTPARALLEL special target has prerequisites then all prerequisites of those targets will be run serially (as if .WAIT was specified between each prerequisite). * New feature: The .NOTINTERMEDIATE special target .NOTINTERMEDIATE disables intermediate behavior for specific files, for all files built using a pattern, or for the entire makefile. * New feature: The $(let ...) function This function allows user-defined functions to define a set of local variables: values can be assigned to these variables from within the user-defined function and they will not impact global variable assignments. * New feature: The $(intcmp ...) function This function allows conditional evaluation controlled by a numerical comparison. * New feature: Improved support for -l / --load-average On systems that provide /proc/loadavg (Linux), GNU Make will use it to determine the number of runnable jobs and use this as the current load, avoiding the need for heuristics. * New feature: The --shuffle command line option This option reorders goals and prerequisites to simulate non-determinism that may be seen using parallel build. Shuffle mode allows a form of "fuzz testing" of parallel builds to verify that all prerequisites are correctly described in the makefile. * New feature: The --jobserver-style command line option and named pipes A new jobserver method is used on systems where mkfifo(3) is supported. * GNU Make has sometimes chosen unexpected, and sub-optimal, chains of implicit rules due to the definition of "ought to exist" in the implicit rule search algorithm, which considered any prerequisite mentioned in the makefile as "ought to exist". This algorithm has been modified to prefer prerequisites mentioned explicitly in the target being built and only if that results in no matching rule, will GNU Make consider prerequisites mentioned in other targets as "ought to exist". * GNU Make was performing secondary expansion of all targets, even targets which didn't need to be considered during the build. In this release only targets which are considered will be secondarily expanded. * If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed immediately rather than after all makefiles have been read. * The -I option accepts an argument "-" (e.g., "-I-") which means "reset the list of search directories to empty". * New debug option "print" will show the recipe to be run, even when silent mode is set, and new debug option "why" will show why a target is rebuilt (which prerequisites caused the target to be considered out of date). * The existing --trace option is made equivalent to --debug=print,why * Target-specific variables can now be marked "unexport". * Exporting / unexporting target-specific variables is handled correctly, so that the attribute of the most specific variable setting is used. * Special targets like .POSIX are detected upon definition, ensuring that any change in behavior takes effect immediately, before the next line is parsed. * When the pipe-based jobserver is enabled and GNU Make decides it is invoking a non-make sub-process and closes the jobserver pipes, it will now add a new option to the MAKEFLAGS environment variable that disables the jobserver. * A long-standing issue with the directory cache has been resolved: changes made as a side-effect of some other target's recipe are now noticed as expected. - jobserver-noinherit.patch, jobserver-fifo.patch: Removed - test-driver.patch: Removed - fix-57962.patch: Removed - make-testcases_timeout.diff: Removed * Wed Aug 17 2022 Andreas Schwab - jobserver-noinherit.patch: Disable inheritance of jobserver FDs for recursive make - jobserver-fifo.patch: Add support for jobserver using named pipes * Tue Apr 19 2022 Marcus Meissner - use https urls * Tue Apr 14 2020 Martin Liška - Add fix-57962.patch in order to fix bug #57962. * Sat Feb 22 2020 Bjørn Lie - No longer recommend -lang: supplements are in use. * Mon Jan 20 2020 Andreas Schwab - Update to make 4.3 * WARNING: Backward-incompatibility! Number signs (#) appearing inside a macro reference or function invocation no longer introduce comments and should not be escaped with backslashes * WARNING: Backward-incompatibility! Previously appending using '+=' to an empty variable would result in a value starting with a space * NOTE: Deprecated behavior. Contrary to the documentation, suffix rules with prerequisites are being treated BOTH as simple targets AND as pattern rules * New feature: Grouped explicit targets * New feature: .EXTRA_PREREQS variable * Makefiles can now specify the '-j' option in their MAKEFLAGS variable and this will cause make to enable that parallelism mode * Error messages printed when invoking non-existent commands have been cleaned up and made consistent. * A new option --no-silent has been added, that cancels the effect of the -s/--silent/--quiet flag * A new option -E has been added as a short alias for --eval * All wildcard expansion within GNU make, including $(wildcard ...), will sort the results * Performance improvements provided by Paolo Bonzini - make-sorted-glob.patch, glob-lstat.patch, glob-interface.patch, pselect-non-blocking.patch: Removed, upstreamed * Fri Jul 27 2018 jengelh@inai.de - Avoid bashisms in spec * Mon Jul 16 2018 schwab@suse.de - pselect-non-blocking.patch: Use a non-blocking read with pselect to avoid hangs (bsc#1100504) * Tue Jan 23 2018 schwab@suse.de - test-driver.patch: let perl find test_driver.pl - glob-interface.patch: Support GLIBC glob interface version 2 * Mon Nov 6 2017 schwab@suse.de - glob-lstat.patch: Do not assume glibc glob internals * Wed Oct 18 2017 bwiedemann@suse.com - Add make-sorted-glob.patch to make many other packages like dpdk build reproducibly without patching them individually (boo#1041090) * Tue Sep 12 2017 schwab@suse.de - Print out testsuite results after failure * Sun Jun 12 2016 mpluskal@suse.com - Update to version 4.2.1: * bug-fix release - Drop upstream patches: * 0001-SV-47995-Ensure-forced-double-colon-rules-work-with-.patch * 0002-main.c-main-SV-48009-Reset-stack-limit-for-make-re-e.patch - Small spec file cleanup * man and info pages are implicitly marked as documentation * Mon May 23 2016 schwab@suse.de - Update to make 4.2 * New variable: $(.SHELLSTATUS) is set to the exit status of the last != or $(shell ...) function invoked in this instance of make. * The $(file ...) function can now read from a file with $(file 1 object.. Add oneshell to $(.FEATURES). Fix the NEWS file to be accurate. - make-savannah-bug30723-expand_makeflags_before_reexec.diff Fix Savannah bug #30723: expand MAKEFLAGS before we re-exec after rebuilding makefiles. * Mon Aug 30 2010 mhopf@novell.com - Disable some inherrently broken test cases. * Mon Aug 23 2010 mhopf@novell.com - Update to 3.82 - Bug fixes - Backwards Incompatibilities: - Makefiles with .POSIX target: shells called with -e - $? contains prerequisites even if not existent - Prerequisite with '=' cannot be backslash escaped any more (use variable with '=' instead) - Variable names may not contain whitespaces any more - Mixture of explicit and pattern targets didn't always fail - Pattern specific rules application order changed - Library search behavior now compatible with standard linker - New features - --eval=STRING: Evaluate makefile syntax string before makefile - Variable .RECIPEPREFIX: Exchange TAB character - Variable .SHELLFLAGS: Options passed to shells - Target .ONESHELL: Single instance of shell for recipe - Modifier private: Suppresses inheritance of variables - Directive undefine: Undefine variable - Changed features - Multiple modifiers for variables allowed now. - Directive define: Allow variable assignment operator. - Nuke memory-hog-2.diff which didn't apply since 3.81 - Addapt make-slowdown-parallelism.diff to new parallelization tests - Separate make checks into %%checks section * Mon Jun 28 2010 jengelh@medozas.de - use %%_smp_mflags * Mon May 24 2010 coolo@novell.com - fix test case * Fri Jan 8 2010 ro@suse.de - enable parallel build * Mon May 14 2007 coolo@suse.de - use %%find_lang * Tue Oct 31 2006 mhopf@suse.de - Reducing race probability in test case features/parallelism even more. * Wed Jun 7 2006 mhopf@suse.de - Improving occasional build failures due to races in test cases. * Mon May 29 2006 mhopf@suse.de - Update to 3.81 - Bug fixes - New functions: lastword, abspath, realpath, info, flavor, or, and - New variables: .INCLUDE_DIRS, .FEATURES, .DEFAULT_GOAL, MAKE_RESTARTS, $| - Some new features - More POSIX compatibility - memory-hog-2.diff doesn't apply any longer * Wed Feb 1 2006 kssingvo@suse.de - fix for memory-hog.diff (bugzilla#147229) * Wed Feb 1 2006 kssingvo@suse.de - disabled memory-hog.diff due to crashes (bugzilla#147229) * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Thu Jan 19 2006 aj@suse.de - Reduce memory usage. * Fri Jan 9 2004 adrian@suse.de - do not strip binaries during install * Tue Sep 30 2003 stepan@suse.de - fix "virtual memory exhausted" bug (backport from mainline) * Thu Apr 24 2003 ro@suse.de - fix install_info --delete call and move from preun to postun * Wed Apr 16 2003 coolo@suse.de - use BuildRoot * Fri Feb 7 2003 ro@suse.de - added install_info macros * Mon Dec 30 2002 aj@suse.de - Update to version 3.80: - number of bug fixes - new features as mentioned in the NEWS file: * New functions $(value ...), $(eval ...) * New feature: order-only prerequesites. * Argument to ifdef can now be a variable. * new option --always-make * Tue Sep 17 2002 ro@suse.de - removed bogus self-provides * Thu May 23 2002 meissner@suse.de - Made %%_lib fix generic, do not use ifarch. * Mon Apr 22 2002 meissner@suse.de - x86_64 needs /*/lib64 as search path too. * Fri Apr 19 2002 ke@suse.de - Update German translation from http://www.iro.umontreal.ca/contrib/po/teams/PO/de/ [# 15851]. * Tue Dec 11 2001 froh@suse.de - s390x, sparc64 and ia64: extended the 'Dynamic Library Search' default path to search /lib64 and /usr/lib64 as well. * Wed Nov 28 2001 fehr@suse.de - add mo-files for translations of messages * Wed May 9 2001 cstein@suse.de - repacked source files with bzip2 * Fri Nov 17 2000 fehr@suse.de - set group tag * Mon Jun 26 2000 fehr@suse.de - change to new version 3.79.1 * Wed Apr 19 2000 fehr@suse.de - change to new version 3.79 * Mon Feb 14 2000 fehr@suse.de - add compatibility link gmake -> make, needed for oracle install * Thu Jan 20 2000 fehr@suse.de - security fix for files created in /tmp when using -j * Mon Jan 17 2000 schwab@suse.de - Update to 3.78.1. - Get rid of Makefile.Linux. - Run testsuite. * Fri Jan 14 2000 schwab@suse.de - Fix glob problem. * Wed Oct 13 1999 schwab@suse.de - Fix file list. - Add autoconf to needforbuild * Mon Sep 13 1999 bs@suse.de - ran old prepare_spec on spec file to switch to new prepare_spec. * Tue Feb 23 1999 ro@suse.de - updated to 3.77 using fixes by c. gafton * Wed Sep 23 1998 ro@suse.de - downgrade to 3.76.1 (works at least) * Tue Sep 22 1998 ro@suse.de - update to 3.77 * Thu Oct 9 1997 florian@suse.de - prepare for autobuild Mon Sep 2 02:48:35 MET DST 1996 update to version 3.75