build: simplify building *config targets
authorEneas U de Queiroz <cotequeiroz@gmail.com>
Tue, 7 Apr 2020 20:07:22 +0000 (17:07 -0300)
committerPetr Štetiar <ynezz@true.cz>
Thu, 9 Apr 2020 10:51:10 +0000 (12:51 +0200)
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@gmail.com>
include/toplevel.mk
scripts/config/Makefile

index 2b3b55db9f75d79b4400a5ee2a90718a3d48fd2f..2965f75c7cd7e66fef5b7562a77f134ff6ddb18f 100644 (file)
@@ -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
index 0eac8edd228717dd45fcfa243193e82813d7ff8f..1f9184e3aa2d75a9288735cd16d69ff80de9bb79 100644 (file)
@@ -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; \