makefile_base.mak: Fix quoting hazards

Some of these variables are expanded into shell assignments, in which
case we want them to be single-element variables and not lists under
make.
This commit is contained in:
John Schoenick 2018-08-29 17:55:28 -07:00
parent e6d905c135
commit de1796ae91

View File

@ -169,7 +169,6 @@ endif
# to shells. But we don't want someone forgetting to type "\ " to cause bizarre bugs. Just let them be entered
# free-form above, then enforce flattening on them all.
QUOTED_VARIABLES := LIB_SUFFIX \
STRIP \
FREETYPE32_CFLAGS \
FREETYPE32_LIBS \
FREETYPE64_CFLAGS \
@ -191,6 +190,14 @@ QUOTE_VARIABLE = $(eval $(1) := $$(call QUOTE,$$($(1))))
QUOTE_VARIABLE_LIST = $(foreach a,$(1),$(call QUOTE_VARIABLE,$(a)))
$(call QUOTE_VARIABLE_LIST,$(QUOTED_VARIABLES))
# These variables might need to be quoted, but might not
#
# That is, $(STRIP) is how you invoke strip, STRIP=$(STRIP_QUOTED) is how you pass it to a shell script properly
# quoted
STRIP_QUOTED = $(call QUOTE,$(STRIP))
CC_QUOTED = $(call QUOTE,$(CC))
CXX_QUOTED = $(call QUOTE,$(CXX))
##
## Target configs
##
@ -428,14 +435,14 @@ FREETYPE_CONFIGURE_FILES64 := $(FREETYPE_OBJ64)/unix-cc.mk $(FREETYPE_OBJ64)/Mak
# 64-bit configure
$(FREETYPE_CONFIGURE_FILES64): $(FREETYPE_AUTOGEN_FILES) $(MAKEFILE_DEP) | $(FREETYPE_OBJ64)
cd $(dir $@) && \
$(abspath $(FREETYPE)/configure) CC="$(CC)" CXX="$(CXX)" PKG_CONFIG=false \
$(abspath $(FREETYPE)/configure) CC=$(CC_QUOTED) CXX=$(CXX_QUOTED) PKG_CONFIG=false \
--prefix=$(abspath $(TOOLS_DIR64)) --without-png --host x86_64-apple-darwin && \
echo 'LIBRARY := libprotonfreetype' >> unix-cc.mk
# 32bit-configure
$(FREETYPE_CONFIGURE_FILES32): $(FREETYPE_AUTOGEN_FILES) $(MAKEFILE_DEP) | $(FREETYPE_OBJ32)
cd $(dir $@) && \
$(abspath $(FREETYPE)/configure) CC="$(CC)" CXX="$(CXX)" PKG_CONFIG=false \
$(abspath $(FREETYPE)/configure) CC=$(CC_QUOTED) CXX=$(CXX_QUOTED) PKG_CONFIG=false \
CFLAGS='-m32 -g -O2' LDFLAGS=-m32 \
--prefix=$(abspath $(TOOLS_DIR32)) --without-png --host i686-apple-darwin && \
echo 'LIBRARY := libprotonfreetype' >> unix-cc.mk
@ -764,8 +771,8 @@ $(FFMPEG_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
$(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ64)
cd $(dir $@) && \
$(abspath $(FFMPEG))/configure \
--cc="$(CC)" --cxx="$(CXX)" \
--prefix="$(abspath $(TOOLS_DIR64))" \
--cc=$(CC_QUOTED) --cxx=$(CXX_QUOTED) \
--prefix=$(abspath $(TOOLS_DIR64)) \
--disable-static \
--enable-shared \
--disable-programs \
@ -799,9 +806,9 @@ $(FFMPEG_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
$(FFMPEG_CONFIGURE_FILES32): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ32)
cd $(dir $@) && \
$(abspath $(FFMPEG))/configure \
--cc="$(CC)" --cxx="$(CXX)" \
--prefix="$(abspath $(TOOLS_DIR32))" \
--extra-cflags="$(FFMPEG_CROSS_CFLAGS)" --extra-ldflags="$(FFMPEG_CROSS_LDFLAGS)" \
--cc=$(CC_QUOTED) --cxx=$(CXX_QUOTED) \
--prefix=$(abspath $(TOOLS_DIR32)) \
--extra-cflags=$(FFMPEG_CROSS_CFLAGS) --extra-ldflags=$(FFMPEG_CROSS_LDFLAGS) \
--disable-static \
--enable-shared \
--disable-programs \
@ -943,12 +950,12 @@ WINE_CONFIGURE_FILES64 := $(WINE_OBJ64)/Makefile
$(WINE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
$(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(WINE_OBJ64) $(FREETYPE_OUT64) $(LIBPNG_OUT64) $(LIBJPEG_OUT64) $(LIBSDL_OUT64)
cd $(dir $@) && \
STRIP=$(STRIP) \
STRIP=$(STRIP_QUOTED) \
CFLAGS=-I$(abspath $(TOOLS_DIR64))"/include -g -O2" \
LDFLAGS=-L$(abspath $(TOOLS_DIR64))/lib \
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \
CC=$(CC) \
CXX=$(CXX) \
CC=$(CC_QUOTED) \
CXX=$(CXX_QUOTED) \
PNG_CFLAGS=$(PNG64_CFLAGS) \
PNG_LIBS=$(PNG64_LIBS) \
JPEG_CFLAGS=$(JPEG64_CFLAGS) \
@ -966,12 +973,12 @@ $(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(WINE_OBJ64) $(FREETYPE_OUT64) $(L
$(WINE_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
$(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(WINE_OBJ32) $(FREETYPE_OUT32) $(LIBPNG_OUT32) $(LIBJPEG_OUT32) $(LIBSDL_OUT32)
cd $(dir $@) && \
STRIP=$(STRIP) \
STRIP=$(STRIP_QUOTED) \
CFLAGS=-I$(abspath $(TOOLS_DIR32))"/include -g -O2" \
LDFLAGS=-L$(abspath $(TOOLS_DIR32))/lib \
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
CC=$(CC) \
CXX=$(CXX) \
CC=$(CC_QUOTED) \
CXX=$(CXX_QUOTED) \
PNG_CFLAGS=$(PNG32_CFLAGS) \
PNG_LIBS=$(PNG32_LIBS) \
JPEG_CFLAGS=$(JPEG32_CFLAGS) \
@ -1009,9 +1016,12 @@ $(WINE_BUILDTOOLS64) $(WINE_OUT) wine64: wine64-intermediate
wine64-intermediate: SHELL = $(CONTAINER_SHELL64)
wine64-intermediate: $(WINE_CONFIGURE_FILES64)
cd $(WINE_OBJ64) && \
env STRIP=$(STRIP) $(MAKE) && \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) $(MAKE) install-lib && \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) $(MAKE) \
STRIP=$(STRIP_QUOTED) \
$(MAKE) && \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP_QUOTED) \
$(MAKE) install-lib && \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP_QUOTED) \
$(MAKE) \
prefix=$(abspath $(TOOLS_DIR64)) libdir=$(abspath $(TOOLS_DIR64))/lib64 \
dlldir=$(abspath $(TOOLS_DIR64))/lib64/wine \
install-dev install-lib && \
@ -1025,11 +1035,11 @@ $(WINE_BUILDTOOLS32) wine32: wine32-intermediate
wine32-intermediate: SHELL = $(CONTAINER_SHELL32)
wine32-intermediate: $(WINE_CONFIGURE_FILES32)
cd $(WINE_OBJ32) && \
STRIP="$(STRIP)" \
STRIP=$(STRIP_QUOTED) \
$(MAKE) && \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP_QUOTED) \
$(MAKE) install-lib && \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) \
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP_QUOTED) \
$(MAKE) \
prefix=$(abspath $(TOOLS_DIR32)) libdir=$(abspath $(TOOLS_DIR32))/lib \
dlldir=$(abspath $(TOOLS_DIR32))/lib/wine \