[PATCH v4 06/10] build: move config file handling into build.rules

Johannes Berg johannes at sipsolutions.net
Wed Sep 9 03:41:14 EDT 2020


From: Johannes Berg <johannes.berg at intel.com>

This will make it easier to split out the handling in
a proper way, and handle common cflags/dependencies.

Signed-off-by: Johannes Berg <johannes.berg at intel.com>
---
 hostapd/Makefile        | 13 +------------
 src/build.rules         | 23 ++++++++++++++++++++++-
 wpa_supplicant/Makefile | 13 +------------
 3 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/hostapd/Makefile b/hostapd/Makefile
index 2e15c8911483..ac83730e9621 100644
--- a/hostapd/Makefile
+++ b/hostapd/Makefile
@@ -1,5 +1,5 @@
 ALL=hostapd hostapd_cli
-VERIFY=verify_config
+CONFIG_FILE = .config
 
 include ../src/build.rules
 
@@ -27,8 +27,6 @@ CFLAGS += -I$(abspath ../src/utils)
 
 export BINDIR ?= /usr/local/bin/
 
--include .config
-
 ifndef CONFIG_NO_GITVER
 # Add VERSION_STR postfix for builds from a git repository
 ifeq ($(wildcard ../.git),../.git)
@@ -1261,15 +1259,6 @@ ifdef CONFIG_NO_TKIP
 CFLAGS += -DCONFIG_NO_TKIP
 endif
 
-verify_config:
-	@if [ ! -r .config ]; then \
-		echo 'Building hostapd requires a configuration file'; \
-		echo '(.config). See README for more instructions. You can'; \
-		echo 'run "cp defconfig .config" to create an example'; \
-		echo 'configuration.'; \
-		exit 1; \
-	fi
-
 $(DESTDIR)$(BINDIR)/%: %
 	install -D $(<) $(@)
 
diff --git a/src/build.rules b/src/build.rules
index 18e23ea5338c..486fea65861e 100644
--- a/src/build.rules
+++ b/src/build.rules
@@ -1,5 +1,5 @@
 .PHONY: all
-all: $(VERIFY) $(ALL) $(EXTRA_TARGETS)
+all: _all
 
 # disable built-in rules
 .SUFFIXES:
@@ -23,6 +23,27 @@ ifndef CFLAGS
 CFLAGS = -MMD -O2 -Wall -g
 endif
 
+ifneq ($(CONFIG_FILE),)
+-include $(CONFIG_FILE)
+
+.PHONY: verify_config
+verify_config:
+	@if [ ! -r $(CONFIG_FILE) ]; then \
+		echo 'Building $(firstword $(ALL)) requires a configuration file'; \
+		echo '(.config). See README for more instructions. You can'; \
+		echo 'run "cp defconfig .config" to create an example'; \
+		echo 'configuration.'; \
+		exit 1; \
+	fi
+VERIFY := verify_config
+else
+VERIFY :=
+endif
+
+# default target
+.PHONY: _all
+_all: $(VERIFY) $(ALL) $(EXTRA_TARGETS)
+
 Q=@
 E=echo
 ifeq ($(V), 1)
diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile
index b18755bd7481..8645d908f821 100644
--- a/wpa_supplicant/Makefile
+++ b/wpa_supplicant/Makefile
@@ -14,9 +14,9 @@ ifdef CONFIG_BUILD_WPA_CLIENT_SO
 ALL += libwpa_client.so
 endif
 
-VERIFY=verify_config
 EXTRA_TARGETS=dynamic_eap_methods
 
+CONFIG_FILE=.config
 include ../src/build.rules
 
 ifdef LIBS
@@ -39,8 +39,6 @@ CFLAGS += $(EXTRA_CFLAGS)
 CFLAGS += -I$(abspath ../src)
 CFLAGS += -I$(abspath ../src/utils)
 
--include .config
-
 ifndef CONFIG_NO_GITVER
 # Add VERSION_STR postfix for builds from a git repository
 ifeq ($(wildcard ../.git),../.git)
@@ -57,15 +55,6 @@ CONFIG_WPS_TESTING=y
 CONFIG_TDLS_TESTING=y
 endif
 
-verify_config:
-	@if [ ! -r .config ]; then \
-		echo 'Building wpa_supplicant requires a configuration file'; \
-		echo '(.config). See README for more instructions. You can'; \
-		echo 'run "cp defconfig .config" to create an example'; \
-		echo 'configuration.'; \
-		exit 1; \
-	fi
-
 mkconfig:
 	@if [ -f .config ]; then \
 		echo '.config exists - did not replace it'; \
-- 
2.26.2




More information about the Hostap mailing list