From 8efe46dceeaf08984477003d07efd5d80865cde5 Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Fri, 16 Nov 2018 18:21:57 +0100 Subject: [PATCH] BUILD: Set PKG_CONFIG_LIBDIR only when needed when running configure Remember if PKG_CONFIG_LIBDIR is set when running configure manually, when automatically running configure, only set PKG_CONFIG_LIBDIR if it was set during the manual run. Fixes #10807. --- Makefile | 28 +++++++++++++++++++--------- configure | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index bbba24f0921..56ebfc73b52 100644 --- a/Makefile +++ b/Makefile @@ -82,20 +82,30 @@ EXECUTABLE := $(EXEPRE)scummvm$(EXEEXT) include $(srcdir)/Makefile.common -# check if configure has been run or has been changed since last run ENGINE_SUBDIRS_CONFIGURE := $(wildcard $(srcdir)/engines/*/configure.engine) + +config.h: +SAVED_ENV_VARS = AR AS ASFLAGS CPPFLAGS CXX CXXFLAGS LD LDFLAGS RANLIB SDL_CONFIG STRIP WINDRES WINDRESFLAGS + +# The environment variable PKG_CONFIG_LIBDIR has a different meaning +# for pkg-config when it is empty and when it is not defined. +# When PKG_CONFIG_LIBDIR is defined but empty, the .pc files cannot +# be found because the search path is empty. +# Here we make sure not to define PKG_CONFIG_LIBDIR when automatically +# running configure and it was not set for the previous run +# so pkg-config uses the system default search path for the .pc files. +ifneq ($(SAVED_PKG_CONFIG_LIBDIR),unset) + SAVED_ENV_VARS += PKG_CONFIG_LIBDIR +endif + +# check if configure has been run or has been changed since last run config.h: $(srcdir)/configure $(ENGINE_SUBDIRS_CONFIGURE) ifeq "$(findstring config.mk,$(MAKEFILE_LIST))" "config.mk" @echo "Running $(srcdir)/configure with the last specified parameters" @sleep 2 - AR="$(SAVED_AR)" AS="$(SAVED_AS)" ASFLAGS="$(SAVED_ASFLAGS)" \ - CPPFLAGS="$(SAVED_CPPFLAGS)" CXX="$(SAVED_CXX)" \ - CXXFLAGS="$(SAVED_CXXFLAGS)" LD="$(SAVED_LD)" \ - LDFLAGS="$(SAVED_LDFLAGS)" PKG_CONFIG_LIBDIR="$(SAVED_PKG_CONFIG_LIBDIR)" \ - RANLIB="$(SAVED_RANLIB)" SDL_CONFIG="$(SAVED_SDL_CONFIG)" \ - STRIP="$(SAVED_STRIP)" WINDRES="$(SAVED_WINDRES)" \ - WINDRESFLAGS="$(SAVED_WINDRESFLAGS)" \ - $(srcdir)/configure $(SAVED_CONFIGFLAGS) + + $(foreach VAR,$(SAVED_ENV_VARS),$(VAR)="$(SAVED_$(VAR))") \ + $(srcdir)/configure $(SAVED_CONFIGFLAGS) else $(error You need to run $(srcdir)/configure before you can run make. Check $(srcdir)/configure --help for a list of parameters) endif diff --git a/configure b/configure index 161551e616e..1d050f03a69 100755 --- a/configure +++ b/configure @@ -38,7 +38,7 @@ SAVED_CXXFLAGS=$CXXFLAGS SAVED_DWP=$DWP SAVED_LD=$LD SAVED_LDFLAGS=$LDFLAGS -SAVED_PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR +SAVED_PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-unset} SAVED_RANLIB=$RANLIB SAVED_SDL_CONFIG=$SDL_CONFIG SAVED_STRIP=$STRIP