mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-07-27 23:51:56 +03:00
makefile_base.mak: Proper platform-specific variable handling
Split variables section for platform-specific variables. Import OS X values from build_proton, ensure they are quoted properly when defined and passed to shell in recipes.
This commit is contained in:
parent
fc98b7b36a
commit
53ae49fc44
@ -22,7 +22,7 @@ nested_make:
|
|||||||
else # (Rest of the file is the else)
|
else # (Rest of the file is the else)
|
||||||
|
|
||||||
##
|
##
|
||||||
## Config
|
## General/global config
|
||||||
##
|
##
|
||||||
|
|
||||||
# We expect the configure script to conditionally set the following:
|
# We expect the configure script to conditionally set the following:
|
||||||
@ -96,32 +96,6 @@ ifneq ($(shell $(CONTAINER_SHELL32) -c "echo hi"), hi)
|
|||||||
$(error "Cannot run commands in 32bit container")
|
$(error "Cannot run commands in 32bit container")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# TODO Used by build_proton for the OS X steps
|
|
||||||
LIB_SUFFIX := "so"
|
|
||||||
STRIP := strip
|
|
||||||
FREETYPE32_CFLAGS :=
|
|
||||||
FREETYPE32_LIBS :=
|
|
||||||
FREETYPE32_AUTOCONF :=
|
|
||||||
FREETYPE64_CFLAGS :=
|
|
||||||
FREETYPE64_LIBS :=
|
|
||||||
FREETYPE64_AUTOCONF :=
|
|
||||||
PNG32_CFLAGS :=
|
|
||||||
PNG32_LIBS :=
|
|
||||||
PNG32_AUTOCONF :=
|
|
||||||
PNG64_CFLAGS :=
|
|
||||||
PNG64_LIBS :=
|
|
||||||
PNG64_AUTOCONF :=
|
|
||||||
JPEG32_CFLAGS :=
|
|
||||||
JPEG32_LIBS :=
|
|
||||||
JPEG32_AUTOCONF :=
|
|
||||||
JPEG64_CFLAGS :=
|
|
||||||
JPEG64_LIBS :=
|
|
||||||
JPEG64_AUTOCONF :=
|
|
||||||
WITHOUT_X :=
|
|
||||||
|
|
||||||
# TODO Release/debug configuration
|
|
||||||
INSTALL_PROGRAM_FLAGS :=
|
|
||||||
|
|
||||||
# Many of the configure steps below depend on the makefile itself, such that they are dirtied by changing the recipes
|
# Many of the configure steps below depend on the makefile itself, such that they are dirtied by changing the recipes
|
||||||
# that create them. This can be annoying when working on the makefile, building with NO_MAKEFILE_DEPENDENCY=1 disables
|
# that create them. This can be annoying when working on the makefile, building with NO_MAKEFILE_DEPENDENCY=1 disables
|
||||||
# this.
|
# this.
|
||||||
@ -130,6 +104,89 @@ ifeq ($(NO_MAKEFILE_DEPENDENCY),1)
|
|||||||
MAKEFILE_DEP :=
|
MAKEFILE_DEP :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# TODO Release/debug configuration
|
||||||
|
INSTALL_PROGRAM_FLAGS :=
|
||||||
|
|
||||||
|
##
|
||||||
|
## Platform-specific variables
|
||||||
|
##
|
||||||
|
|
||||||
|
LIB_SUFFIX := "so"
|
||||||
|
STRIP := strip
|
||||||
|
FREETYPE32_CFLAGS :=
|
||||||
|
FREETYPE32_LIBS :=
|
||||||
|
FREETYPE64_CFLAGS :=
|
||||||
|
FREETYPE64_LIBS :=
|
||||||
|
PNG32_CFLAGS :=
|
||||||
|
PNG32_LIBS :=
|
||||||
|
PNG64_CFLAGS :=
|
||||||
|
PNG64_LIBS :=
|
||||||
|
JPEG32_CFLAGS :=
|
||||||
|
JPEG32_LIBS :=
|
||||||
|
JPEG64_CFLAGS :=
|
||||||
|
JPEG64_LIBS :=
|
||||||
|
WINE32_AUTOCONF :=
|
||||||
|
WINE64_AUTOCONF :=
|
||||||
|
|
||||||
|
# Use $(call QUOTE,$(VAR)) to flatten a list to a single element (for feeding to a shell)
|
||||||
|
|
||||||
|
# OS X specific
|
||||||
|
ifeq ($(OSX),1)
|
||||||
|
STRIP := strip -x
|
||||||
|
LIB_SUFFIX := dylib
|
||||||
|
WINE32_AUTOCONF := --without-x \
|
||||||
|
ac_cv_lib_soname_freetype32=libprotonfreetype.dylib \
|
||||||
|
ac_cv_lib_soname_png32=libprotonpng16.dylib \
|
||||||
|
ac_cv_lib_soname_jpeg32=libprotonjpeg.dylib
|
||||||
|
WINE64_AUTOCONF := --without-x \
|
||||||
|
ac_cv_lib_soname_freetype64=libprotonfreetype.dylib \
|
||||||
|
ac_cv_lib_soname_png64=libprotonpng16.dylib \
|
||||||
|
ac_cv_lib_soname_jpeg64=libprotonjpeg.dylib
|
||||||
|
|
||||||
|
FREETYPE32_CFLAGS := -I$(abspath $(TOOLS_DIR32))/include/freetype2
|
||||||
|
FREETYPE32_LIBS := -L$(abspath $(TOOLS_DIR32))/lib -lprotonfreetype -framework CoreServices -framework ApplicationServices -lz
|
||||||
|
FREETYPE64_CFLAGS := -I$(abspath $(TOOLS_DIR64))/include/freetype2
|
||||||
|
FREETYPE64_LIBS := -L$(abspath $(TOOLS_DIR64))/lib -lprotonfreetype
|
||||||
|
PNG32_CFLAGS := -I$(abspath $(TOOLS_DIR32))/include
|
||||||
|
PNG32_LIBS := -L$(abspath $(TOOLS_DIR32))/lib -lprotonpng
|
||||||
|
PNG64_CFLAGS := -I$(abspath $(TOOLS_DIR64))/include
|
||||||
|
PNG64_LIBS := -L$(abspath $(TOOLS_DIR64))/lib -lprotonpng
|
||||||
|
JPEG32_CFLAGS := -I$(abspath $(TOOLS_DIR32))/include
|
||||||
|
JPEG32_LIBS := -L$(abspath $(TOOLS_DIR32))/lib -lprotonjpeg
|
||||||
|
JPEG64_CFLAGS := -I$(abspath $(TOOLS_DIR64))/include
|
||||||
|
JPEG64_LIBS := -L$(abspath $(TOOLS_DIR64))/lib -lprotonjpeg
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Make magic: We don't want the variables listed here to be lists, just single elements with spaces in them for passing
|
||||||
|
# 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 \
|
||||||
|
FREETYPE64_LIBS \
|
||||||
|
PNG32_CFLAGS \
|
||||||
|
PNG32_LIBS \
|
||||||
|
PNG64_CFLAGS \
|
||||||
|
PNG64_LIBS \
|
||||||
|
JPEG32_CFLAGS \
|
||||||
|
JPEG32_LIBS \
|
||||||
|
JPEG64_CFLAGS \
|
||||||
|
JPEG64_LIBS \
|
||||||
|
WINE32_AUTOCONF \
|
||||||
|
WINE64_AUTOCONF
|
||||||
|
|
||||||
|
# v-- This flattens a list when called. Don't look directly into it.
|
||||||
|
QUOTE = $(subst $(eval) ,\ ,$(1))
|
||||||
|
QUOTE_VARIABLE = $(eval $(1) := $$(call QUOTE,$$($(1))))
|
||||||
|
QUOTE_VARIABLE_LIST = $(foreach a,$(1),$(call QUOTE_VARIABLE,$(a)))
|
||||||
|
$(call QUOTE_VARIABLE_LIST,$(QUOTED_VARIABLES))
|
||||||
|
|
||||||
|
##
|
||||||
|
## Target configs
|
||||||
|
##
|
||||||
|
|
||||||
COMPAT_MANIFEST_TEMPLATE := $(SRCDIR)/compatibilitytool.vdf.template
|
COMPAT_MANIFEST_TEMPLATE := $(SRCDIR)/compatibilitytool.vdf.template
|
||||||
LICENSE := $(SRCDIR)/dist.LICENSE.lin
|
LICENSE := $(SRCDIR)/dist.LICENSE.lin
|
||||||
ifeq ($(OSX),1)
|
ifeq ($(OSX),1)
|
||||||
@ -641,47 +698,47 @@ WINE_CONFIGURE_FILES64 := $(WINE_OBJ64)/Makefile
|
|||||||
$(WINE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
|
$(WINE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
|
||||||
$(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(WINE_OBJ64) $(FREETYPE_OUT64)
|
$(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(WINE_OBJ64) $(FREETYPE_OUT64)
|
||||||
cd $(dir $@) && \
|
cd $(dir $@) && \
|
||||||
STRIP="$(STRIP)" \
|
STRIP=$(STRIP) \
|
||||||
CFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g -O2" \
|
CFLAGS=-I$(abspath $(TOOLS_DIR64))"/include -g -O2" \
|
||||||
LDFLAGS="-L$(abspath $(TOOLS_DIR64))/lib" \
|
LDFLAGS=-L$(abspath $(TOOLS_DIR64))/lib \
|
||||||
PKG_CONFIG_PATH="$(abspath $(TOOLS_DIR64))/lib/pkgconfig" \
|
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \
|
||||||
CC="$(CC)" \
|
CC=$(CC) \
|
||||||
CXX="$(CXX)" \
|
CXX=$(CXX) \
|
||||||
PNG_CFLAGS="$(PNG64_CFLAGS)" \
|
PNG_CFLAGS=$(PNG64_CFLAGS) \
|
||||||
PNG_LIBS="$(PNG64_LIBS)" \
|
PNG_LIBS=$(PNG64_LIBS) \
|
||||||
JPEG_CFLAGS="$(JPEG64_CFLAGS)" \
|
JPEG_CFLAGS=$(JPEG64_CFLAGS) \
|
||||||
JPEG_LIBS="$(JPEG64_LIBS)" \
|
JPEG_LIBS=$(JPEG64_LIBS) \
|
||||||
FREETYPE_CFLAGS="$(FREETYPE64_CFLAGS)" \
|
FREETYPE_CFLAGS=$(FREETYPE64_CFLAGS) \
|
||||||
FREETYPE_LIBS="$(FREETYPE64_LIBS)" \
|
FREETYPE_LIBS=$(FREETYPE64_LIBS) \
|
||||||
../$(WINE)/configure \
|
../$(WINE)/configure \
|
||||||
$(FREETYPE64_AUTOCONF) \
|
$(FREETYPE64_AUTOCONF) \
|
||||||
$(JPEG64_AUTOCONF) \
|
$(JPEG64_AUTOCONF) \
|
||||||
$(PNG64_AUTOCONF) \
|
$(PNG64_AUTOCONF) \
|
||||||
--without-curses $(WITHOUT_X) \
|
--without-curses $(WINE_AUTOCONF) \
|
||||||
--enable-win64 --disable-tests --prefix="$(abspath $(DST_DIR))"
|
--enable-win64 --disable-tests --prefix=$(abspath $(DST_DIR))
|
||||||
|
|
||||||
# 32-bit configure
|
# 32-bit configure
|
||||||
$(WINE_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
|
$(WINE_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
|
||||||
$(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(WINE_OBJ32) $(FREETYPE_OUT32)
|
$(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(WINE_OBJ32) $(FREETYPE_OUT32)
|
||||||
cd $(dir $@) && \
|
cd $(dir $@) && \
|
||||||
STRIP="$(STRIP)" \
|
STRIP=$(STRIP) \
|
||||||
CFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g -O2" \
|
CFLAGS=-I$(abspath $(TOOLS_DIR32))"/include -g -O2" \
|
||||||
LDFLAGS="-L$(abspath $(TOOLS_DIR32))/lib" \
|
LDFLAGS=-L$(abspath $(TOOLS_DIR32))/lib \
|
||||||
PKG_CONFIG_PATH="$(abspath $(TOOLS_DIR32))/lib/pkgconfig" \
|
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
|
||||||
CC="$(CC)" \
|
CC=$(CC) \
|
||||||
CXX="$(CXX)" \
|
CXX=$(CXX) \
|
||||||
PNG_CFLAGS="$(PNG32_CFLAGS)" \
|
PNG_CFLAGS=$(PNG32_CFLAGS) \
|
||||||
PNG_LIBS="$(PNG32_LIBS)" \
|
PNG_LIBS=$(PNG32_LIBS) \
|
||||||
JPEG_CFLAGS="$(JPEG32_CFLAGS)" \
|
JPEG_CFLAGS=$(JPEG32_CFLAGS) \
|
||||||
JPEG_LIBS="$(JPEG32_LIBS)" \
|
JPEG_LIBS=$(JPEG32_LIBS) \
|
||||||
FREETYPE_CFLAGS="$(FREETYPE32_CFLAGS)" \
|
FREETYPE_CFLAGS=$(FREETYPE32_CFLAGS) \
|
||||||
FREETYPE_LIBS="$(FREETYPE32_LIBS)" \
|
FREETYPE_LIBS=$(FREETYPE32_LIBS) \
|
||||||
../$(WINE)/configure \
|
../$(WINE)/configure \
|
||||||
$(FREETYPE32_AUTOCONF) \
|
$(FREETYPE32_AUTOCONF) \
|
||||||
$(JPEG32_AUTOCONF) \
|
$(JPEG32_AUTOCONF) \
|
||||||
$(PNG32_AUTOCONF) \
|
$(PNG32_AUTOCONF) \
|
||||||
--without-curses $(WITHOUT_X) \
|
--without-curses $(WINE_AUTOCONF) \
|
||||||
--disable-tests --prefix="$(abspath $(WINE_DST32))"
|
--disable-tests --prefix=$(abspath $(WINE_DST32))
|
||||||
|
|
||||||
## wine goals
|
## wine goals
|
||||||
|
|
||||||
@ -707,11 +764,11 @@ $(WINE_BUILDTOOLS64) $(WINE_OUT) wine64: wine64-intermediate
|
|||||||
wine64-intermediate: SHELL = $(CONTAINER_SHELL64)
|
wine64-intermediate: SHELL = $(CONTAINER_SHELL64)
|
||||||
wine64-intermediate: $(WINE_CONFIGURE_FILES64)
|
wine64-intermediate: $(WINE_CONFIGURE_FILES64)
|
||||||
cd $(WINE_OBJ64) && \
|
cd $(WINE_OBJ64) && \
|
||||||
env STRIP="$(STRIP)" $(MAKE) && \
|
env STRIP=$(STRIP) $(MAKE) && \
|
||||||
INSTALL_PROGRAM_FLAGS="$(INSTALL_PROGRAM_FLAGS)" STRIP="$(STRIP)" $(MAKE) install-lib && \
|
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) $(MAKE) install-lib && \
|
||||||
INSTALL_PROGRAM_FLAGS="$(INSTALL_PROGRAM_FLAGS)" STRIP="$(STRIP)" $(MAKE) \
|
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) $(MAKE) \
|
||||||
prefix="$(abspath $(TOOLS_DIR64))" libdir="$(abspath $(TOOLS_DIR64))/lib64" \
|
prefix=$(abspath $(TOOLS_DIR64)) libdir=$(abspath $(TOOLS_DIR64))/lib64 \
|
||||||
dlldir="$(abspath $(TOOLS_DIR64))/lib64/wine" \
|
dlldir=$(abspath $(TOOLS_DIR64))/lib64/wine \
|
||||||
install-dev install-lib && \
|
install-dev install-lib && \
|
||||||
rm -f ../$(DST_DIR)/bin/{msiexec,notepad,regedit,regsvr32,wineboot,winecfg,wineconsole,winedbg,winefile,winemine,winepath}
|
rm -f ../$(DST_DIR)/bin/{msiexec,notepad,regedit,regsvr32,wineboot,winecfg,wineconsole,winedbg,winefile,winemine,winepath}
|
||||||
rm -rf ../$(DST_DIR)/share/man/
|
rm -rf ../$(DST_DIR)/share/man/
|
||||||
@ -725,12 +782,12 @@ wine32-intermediate: $(WINE_CONFIGURE_FILES32)
|
|||||||
cd $(WINE_OBJ32) && \
|
cd $(WINE_OBJ32) && \
|
||||||
STRIP="$(STRIP)" \
|
STRIP="$(STRIP)" \
|
||||||
$(MAKE) && \
|
$(MAKE) && \
|
||||||
INSTALL_PROGRAM_FLAGS="$(INSTALL_PROGRAM_FLAGS)" STRIP="$(STRIP)" \
|
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) \
|
||||||
$(MAKE) install-lib && \
|
$(MAKE) install-lib && \
|
||||||
INSTALL_PROGRAM_FLAGS="$(INSTALL_PROGRAM_FLAGS)" STRIP="$(STRIP)" \
|
INSTALL_PROGRAM_FLAGS=$(INSTALL_PROGRAM_FLAGS) STRIP=$(STRIP) \
|
||||||
$(MAKE) \
|
$(MAKE) \
|
||||||
prefix="$(abspath $(TOOLS_DIR32))" libdir="$(abspath $(TOOLS_DIR32))/lib" \
|
prefix=$(abspath $(TOOLS_DIR32)) libdir=$(abspath $(TOOLS_DIR32))/lib \
|
||||||
dlldir="$(abspath $(TOOLS_DIR32))/lib/wine" \
|
dlldir=$(abspath $(TOOLS_DIR32))/lib/wine \
|
||||||
install-dev install-lib && \
|
install-dev install-lib && \
|
||||||
mkdir -p ../$(DST_DIR)/{lib,bin} && \
|
mkdir -p ../$(DST_DIR)/{lib,bin} && \
|
||||||
cp -a ../$(WINE_DST32)/lib ../$(DST_DIR)/ && \
|
cp -a ../$(WINE_DST32)/lib ../$(DST_DIR)/ && \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user