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.
This commit is contained in:
Bastien Bouclet 2018-11-16 18:21:57 +01:00
parent 4d36606b27
commit 8efe46dcee
2 changed files with 20 additions and 10 deletions

View file

@ -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

2
configure vendored
View file

@ -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