From b774aebffadd5f8374ff435b4c5d660ee899add7 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Fri, 3 Jan 2020 18:19:33 -0500 Subject: 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. --- maintMakefile | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) (limited to 'maintMakefile') 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 -- cgit v1.2.1