Make the compiler used by Makefile.devel customizable. Reported by Mike Fulton <mikefultonpersonal@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-05/msg00006.html>. * Makefile.devel: Require GNU make. (CC): Use value from the environment, if set and non-empty. (CFLAGS): Use value from the environment, if set. * autogen.sh (GMAKE): New variable. Use it for executing Makefile.devel.
diff --git a/ChangeLog b/ChangeLog index 24e8cff..6f8772a 100644 --- a/ChangeLog +++ b/ChangeLog
@@ -1,3 +1,14 @@ +2023-05-19 Bruno Haible <bruno@clisp.org> + + Make the compiler used by Makefile.devel customizable. + Reported by Mike Fulton <mikefultonpersonal@gmail.com> in + <https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-05/msg00006.html>. + * Makefile.devel: Require GNU make. + (CC): Use value from the environment, if set and non-empty. + (CFLAGS): Use value from the environment, if set. + * autogen.sh (GMAKE): New variable. + Use it for executing Makefile.devel. + 2023-05-17 Bruno Haible <bruno@clisp.org> On z/OS, allow charset tagging of temporary shell scripts.
diff --git a/Makefile.devel b/Makefile.devel index 5535acc..f20755f 100644 --- a/Makefile.devel +++ b/Makefile.devel
@@ -1,6 +1,13 @@ # -*- makefile -*- # This is the developer's makefile, not the user's makefile. # Don't use it unless you know exactly what you do! +# It requires GNU make. +# It obeys the environment variables GNULIB_TOOL, CC, CFLAGS +# if you have set them. + +ifneq (,) +This makefile requires GNU Make. +endif SHELL = /bin/sh MAKE = make @@ -9,8 +16,26 @@ AUTOMAKE = automake-1.16 ACLOCAL = aclocal-1.16 GPERF = gperf -CC = gcc -Wall + +# Ignore the built-in default for CC. Also ignore $(CC) if it is empty. +# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html +# https://www.gnu.org/software/make/manual/html_node/Origin-Function.html +# https://www.gnu.org/software/make/manual/html_node/Text-Functions.html#index-findstring +# https://www.gnu.org/software/make/manual/html_node/Text-Functions.html#index-stripping-whitespace +# https://www.gnu.org/software/make/manual/html_node/Conditional-Functions.html#index-or +# https://www.gnu.org/software/make/manual/html_node/Override-Directive.html +ifneq ($(or $(findstring $(origin CC), undefined default),$(if $(strip $(CC)),,empty)),) +override CC = gcc -Wall +endif + +# Ignore the built-in default for CFLAGS. +# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html +# https://www.gnu.org/software/make/manual/html_node/Origin-Function.html +# https://www.gnu.org/software/make/manual/html_node/Text-Functions.html#index-findstring +ifneq ($(findstring $(origin CFLAGS), undefined default),) CFLAGS = -O +endif + MAN2HTML = groff -mandoc -Thtml CP = cp RM = rm -f
diff --git a/autogen.sh b/autogen.sh index dd72d83..8b228d7 100755 --- a/autogen.sh +++ b/autogen.sh
@@ -8,7 +8,7 @@ # It also requires # - the gperf program. -# Copyright (C) 2003-2012, 2016, 2018-2022 Free Software Foundation, Inc. +# Copyright (C) 2003-2012, 2016, 2018-2023 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -47,6 +47,22 @@ # ========== Copy files from gnulib, automake, or the internet. ========== +# Find GNU Make. +if test -n "${MAKE}" && test "`${MAKE} --version 2>/dev/null | sed -e 's/ [0-9].*//' -e 1q`" = 'GNU Make'; then + GMAKE="${MAKE}" +else + if test "`make --version 2>/dev/null | sed -e 's/ [0-9].*//' -e 1q`" = 'GNU Make'; then + GMAKE=make + else + if test "`gmake --version 2>/dev/null | sed -e 's/ [0-9].*//' -e 1q`" = 'GNU Make'; then + GMAKE=gmake + else + echo "*** - GNU Make not found" 1>&2 + exit 1 + fi + fi +fi + if test $skip_gnulib = false; then if test -n "$GNULIB_SRCDIR"; then test -d "$GNULIB_SRCDIR" || { @@ -70,9 +86,9 @@ $GNULIB_TOOL --copy-file $file || exit $? chmod a+x $file || exit $? done - make -f Makefile.devel \ - gnulib-clean srclib/Makefile.gnulib gnulib-imported-files srclib/Makefile.in \ - GNULIB_TOOL="$GNULIB_TOOL" + $GMAKE -f Makefile.devel \ + gnulib-clean srclib/Makefile.gnulib gnulib-imported-files srclib/Makefile.in \ + GNULIB_TOOL="$GNULIB_TOOL" fi # Copy files into the libcharset subpackage, so that libcharset/autogen.sh @@ -89,7 +105,7 @@ # ========== Generate files. ========== -make -f Makefile.devel totally-clean all || exit $? +$GMAKE -f Makefile.devel totally-clean all || exit $? (cd libcharset ./autogen.sh || exit $?