summaryrefslogtreecommitdiff
path: root/maintMakefile
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2020-01-03 18:19:33 -0500
committerPaul Smith <psmith@gnu.org>2020-01-04 13:23:23 -0500
commitb774aebffadd5f8374ff435b4c5d660ee899add7 (patch)
treec57832e89a23bedd0c791646d424e0a5cb513e7e /maintMakefile
parent06de697268492b72297b02ef69f68becc1874b54 (diff)
downloadmake-git-b774aebffadd5f8374ff435b4c5d660ee899add7.tar.gz
Enable compilation with C90 compilers
* 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.
Diffstat (limited to 'maintMakefile')
-rw-r--r--maintMakefile45
1 files changed, 33 insertions, 12 deletions
diff --git a/maintMakefile b/maintMakefile
index 172079c1..f72f89ce 100644
--- a/maintMakefile
+++ b/maintMakefile
@@ -231,15 +231,36 @@ get-doc/make-stds.texi get-doc/fdl.texi:
# Alternative configuration checks. #
# ---------------------------------- #
+CFGCHECK_CONFIGFLAGS =
+CFGCHECK_BUILDFLAGS =
+CFGCHECK_MAKEFLAGS = CFLAGS='$(AM_CFLAGS)'
+
+checkcfg.strict-c90: CFGCHECK_CONFIGFLAGS = CFLAGS='-std=c90 -pedantic'
+checkcfg.strict-c90: CFGCHECK_MAKEFLAGS =
+
+checkcfg.no-jobserver:CFGCHECK_CONFIGFLAGS = --disable-job-server
+checkcfg.no-load: CFGCHECK_CONFIGFLAGS = --disable-load
+checkcfg.no-guile: CFGCHECK_CONFIGFLAGS = --without-guile
+checkcfg.no-spawn: CFGCHECK_CONFIGFLAGS = --disable-posix-spawn
+checkcfg.no-sysglob: CFGCHECK_CONFIGFLAGS = make_cv_sys_gnu_glob=no
+checkcfg.no-loadavg: CFGCHECK_CONFIGFLAGS = ac_cv_func_getloadavg=no \
+ ac_cv_have_decl_getloadavg=no \
+ gl_cv_have_raw_decl_getloadavg=no \
+ ac_cv_lib_util_getloadavg=no \
+ ac_cv_lib_getloadavg_getloadavg=no
+checkcfg.no-sync: CFGCHECK_CONFIGFLAGS = CPPFLAGS=-DNO_OUTPUT_SYNC
+checkcfg.no-archives: CFGCHECK_CONFIGFLAGS = CPPFLAGS=-DNO_ARCHIVES
+
CONFIG_CHECKS := \
- checkcfg.--disable-job-server \
- checkcfg.--disable-load \
- checkcfg.--without-guile \
- checkcfg.--disable-posix-spawn \
- checkcfg.make_cv_sys_gnu_glob^no \
- checkcfg.ac_cv_func_getloadavg^no+ac_cv_have_decl_getloadavg^no+gl_cv_have_raw_decl_getloadavg^no+ac_cv_lib_util_getloadavg^no+ac_cv_lib_getloadavg_getloadavg^no \
- checkcfg.CPPFLAGS^-DNO_OUTPUT_SYNC \
- checkcfg.CPPFLAGS^-DNO_ARCHIVES
+ checkcfg.strict-c90 \
+ checkcfg.no-jobserver \
+ checkcfg.no-load \
+ checkcfg.no-guile \
+ checkcfg.no-spawn \
+ checkcfg.no-sysglob \
+ checkcfg.no-loadavg \
+ checkcfg.no-sync \
+ checkcfg.no-archives
.PHONY: check-alt-config
check-alt-config: $(CONFIG_CHECKS)
@@ -251,20 +272,20 @@ NR_MAKE = $(MAKE)
$(CONFIG_CHECKS): checkcfg.%: distdir
@echo "Building $@ (output in checkcfg.$*.log)"
exec >'checkcfg.$*.log' 2>&1; \
- echo "Testing configure with $(subst ^,=,$(subst +, ,$*))"; set -x; \
+ echo "Testing configure with $(CFGCHECK_CONFIGFLAGS)"; set -x; \
rm -rf $(distdir)/_build \
&& mkdir $(distdir)/_build \
&& cd $(distdir)/_build \
- && ../configure --srcdir=.. $(subst ^,=,$(subst +, ,$*)) \
+ && ../configure --srcdir=.. $(CFGCHECK_CONFIGFLAGS) \
$(AM_DISTCHECK_CONFIGURE_FLAGS) $(DISTCHECK_CONFIGURE_FLAGS)
exec >>'checkcfg.$*.log' 2>&1; set -x; \
cd $(distdir)/_build \
- && OUTDIR=_bld ../build.sh \
+ && OUTDIR=_bld ../build.sh $(CFGCHECK_BUILD_FLAGS) \
&& _bld/make $(AM_MAKEFLAGS) check-local \
&& _bld/make $(AM_MAKEFLAGS) clean
exec >>'checkcfg.$*.log' 2>&1; set -x; \
cd $(distdir)/_build \
- && $(NR_MAKE) $(AM_MAKEFLAGS) CFLAGS='$(AM_CFLAGS)' \
+ && $(NR_MAKE) $(AM_MAKEFLAGS) $(CFGCHECK_MAKEFLAGS) \
&& ./make $(AM_MAKEFLAGS) check \
&& ./make $(AM_MAKEFLAGS) clean