From 8636a172146f3b78474c61a7021ca2628b3370b1 Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Tue, 7 Apr 2020 17:07:22 -0300 Subject: [PATCH] build: simplify building *config targets 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 --- 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; \ -- 2.25.1