[Libosinfo] [osinfo-db-tools PATCH v2 13/16] Support `make syntax-check` without Makefile

Fabiano Fidêncio fidencio at redhat.com
Tue Jul 9 10:47:41 UTC 2019


A few dirty hacks have been done in GNUmakefile, cfg.mk, and maint.mk
in order to support running `make syntax-check` without having to have a
Makefile around.

GNUmakefile: set srcdir & top_srcdir and remove the parts that would
cause an error due to no presence of a Makefile.

cfg.mk: add sc_prohibit_always-defined_macros to the list of local
checks to skip as it looks for Makefile, which is generated after
running ./configure.

maint.mk: allow running `make syntax-check` without having a Makefile
generated.

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 GNUmakefile | 28 ++--------------------------
 cfg.mk      |  3 ++-
 maint.mk    |  2 --
 3 files changed, 4 insertions(+), 29 deletions(-)

diff --git a/GNUmakefile b/GNUmakefile
index ca88b6b..a62b880 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -30,10 +30,8 @@ else
 SHELL = sh
 endif
 
-# If the user runs GNU make but has not yet run ./configure,
-# give them a diagnostic.
-_have-Makefile := $(shell test -f Makefile && echo yes)
-ifeq ($(_have-Makefile),yes)
+srcdir = .
+top_srcdir = .
 
 # Make tar archive easier to reproduce.
 export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
@@ -41,8 +39,6 @@ export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
 # Allow the user to add to this in the Makefile.
 ALL_RECURSIVE_TARGETS =
 
-include Makefile
-
 # Some projects override e.g., _autoreconf here.
 -include $(srcdir)/cfg.mk
 
@@ -94,26 +90,6 @@ _version:
 	cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf)
 	$(MAKE) $(AM_MAKEFLAGS) Makefile
 
-else
-
-.DEFAULT_GOAL := abort-due-to-no-makefile
-srcdir = .
-
-# The package can override .DEFAULT_GOAL to run actions like autoreconf.
--include ./cfg.mk
-include ./maint.mk
-
-ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
-$(MAKECMDGOALS): abort-due-to-no-makefile
-endif
-
-abort-due-to-no-makefile:
-	@echo There seems to be no Makefile in this directory.   1>&2
-	@echo "You must run ./configure before running \`make'." 1>&2
-	@exit 1
-
-endif
-
 # Tell version 3.79 and up of GNU make to not build goals in this
 # directory in parallel, in case someone tries to build multiple
 # targets, and one of them can cause a recursive target to be invoked.
diff --git a/cfg.mk b/cfg.mk
index 84ca1cd..8f41450 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -35,7 +35,8 @@ local-checks-to-skip =			\
   sc_program_name			\
   sc_makefile_check			\
   sc_require_config_h			\
-  sc_require_config_h_first
+  sc_require_config_h_first		\
+  sc_prohibit_always-defined_macros
 
 # Files that should never cause syntax check failures.
 VC_LIST_ALWAYS_EXCLUDE_REGEX = \
diff --git a/maint.mk b/maint.mk
index 16e9360..b8c207d 100644
--- a/maint.mk
+++ b/maint.mk
@@ -159,7 +159,6 @@ export LC_ALL = C
 ## Sanity checks.  ##
 ## --------------- ##
 
-ifneq ($(_gl-Makefile),)
 _cfg_mk := $(wildcard $(srcdir)/cfg.mk)
 
 # Collect the names of rules starting with 'sc_'.
@@ -201,7 +200,6 @@ local-check :=								\
     $(filter-out $(local-checks-to-skip), $(local-checks-available)))
 
 syntax-check: $(local-check)
-endif
 
 # _sc_search_regexp
 #
-- 
2.21.0




More information about the Libosinfo mailing list