[OpenWrt-Devel] [PATCH 4/6] build: simplify building *config targets
Eneas U de Queiroz
cotequeiroz at gmail.com
Mon Apr 6 16:10:34 EDT 2020
Instead of passing pkg-config location through a variable when building
qconf (make xconfig), prepend its parent directory to the PATH, as it is
being done for other conf targets.
Use a Makefile pattern rule to group all 'scripts/config/%onf'
(currently conf, mconf, qconf) targets in a single rule. Add -O2 to
CFLAGS when building them as well.
Signed-off-by: Eneas U de Queiroz <cotequeiroz at gmail.com>
---
include/toplevel.mk | 15 ++++-----------
scripts/config/Makefile | 23 +++++++++--------------
2 files changed, 13 insertions(+), 25 deletions(-)
diff --git a/include/toplevel.mk b/include/toplevel.mk
index 2b3b55db9f..2965f75c7c 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -100,21 +100,14 @@ prepare-tmpinfo: FORCE
fi
ifneq ($(DISTRO_PKG_CONFIG),)
-scripts/config/mconf: export PATH:=$(dir $(DISTRO_PKG_CONFIG)):$(PATH)
+scripts/config/%onf: export PATH:=$(dir $(DISTRO_PKG_CONFIG)):$(PATH)
endif
-scripts/config/mconf:
- @$(_SINGLE)$(SUBMAKE) -s -C scripts/config all CC="$(HOSTCC_WRAPPER)"
+scripts/config/%onf: CFLAGS+= -O2
+scripts/config/%onf:
+ @$(_SINGLE)$(SUBMAKE) -s -C scripts/config $(notdir $@) CC="$(HOSTCC_WRAPPER)"
$(eval $(call rdep,scripts/config,scripts/config/mconf))
-scripts/config/qconf:
- @$(_SINGLE)$(SUBMAKE) -s -C scripts/config qconf \
- CC="$(HOSTCC_WRAPPER)" \
- DISTRO-PKG-CONFIG="$(DISTRO_PKG_CONFIG)"
-
-scripts/config/conf:
- @$(_SINGLE)$(SUBMAKE) -s -C scripts/config conf CC="$(HOSTCC_WRAPPER)"
-
config: scripts/config/conf prepare-tmpinfo FORCE
[ -L .config ] && export KCONFIG_OVERWRITECONFIG=1; \
$< Config.in
diff --git a/scripts/config/Makefile b/scripts/config/Makefile
index 0eac8edd22..1f9184e3aa 100644
--- a/scripts/config/Makefile
+++ b/scripts/config/Makefile
@@ -39,12 +39,7 @@ conf: $(conf-objs)
mconf: $(mconf-objs) $(lxdialog-objs)
$(CC) -o $@ $^ $(call check_lxdialog,ldflags $(CC))
qconf: $(qconf-cxxobjs) $(qconf-objs)
-ifneq ($(DISTRO-PKG-CONFIG),)
$(CXX) -o $@ $^ $(HOSTLOADLIBES_qconf)
-else
- echo "You don't have 'pkg-config' installed. Cannot continue"
- echo "For now, you may use 'make menuconfig' instead of 'make xconfig'"
-endif
clean:
rm -f *.o lxdialog/*.o $(clean-files) conf mconf
@@ -74,17 +69,17 @@ qconf.o: .tmp_qtcheck
# Qt needs some extra effort...
.tmp_qtcheck:
@set -e; echo " CHECK qt"; \
- if $(DISTRO-PKG-CONFIG) --exists Qt5Core; then \
- cflags="-std=c++11 -fPIC `$(DISTRO-PKG-CONFIG) --cflags Qt5Core Qt5Gui Qt5Widgets`"; \
- libs=`$(DISTRO-PKG-CONFIG) --libs Qt5Core Qt5Gui Qt5Widgets`; \
- moc=`$(DISTRO-PKG-CONFIG) --variable=host_bins Qt5Core`/moc; \
- elif $(DISTRO-PKG-CONFIG) --exists QtCore; then \
- cflags=`$(DISTRO-PKG-CONFIG) --cflags QtCore QtGui`; \
- libs=`$(DISTRO-PKG-CONFIG) --libs QtCore QtGui`; \
- moc=`$(DISTRO-PKG-CONFIG) --variable=moc_location QtCore`; \
+ if pkg-config --exists Qt5Core; then \
+ cflags="-std=c++11 -fPIC `pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets`"; \
+ libs=`pkg-config --libs Qt5Core Qt5Gui Qt5Widgets`; \
+ moc=`pkg-config --variable=host_bins Qt5Core`/moc; \
+ elif pkg-config --exists QtCore; then \
+ cflags=`pkg-config --cflags QtCore QtGui`; \
+ libs=`pkg-config --libs QtCore QtGui`; \
+ moc=`pkg-config --variable=moc_location QtCore`; \
else \
echo >&2 "*"; \
- echo >&2 "* Could not find Qt via $(DISTRO-PKG-CONFIG)."; \
+ echo >&2 "* Could not find Qt via pkg-config."; \
echo >&2 "* Please install either Qt 4.8 or 5.x. and make sure it's in PKG_CONFIG_PATH"; \
echo >&2 "*"; \
exit 1; \
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list