build: Disable dxvk by default on OS X

This commit is contained in:
John Schoenick 2018-08-28 14:45:54 -07:00
parent 4b65a3531c
commit 154cda1b7f
2 changed files with 44 additions and 5 deletions

View File

@ -210,9 +210,12 @@ default: all dist
# TODO ffmpeg is optional, disabled # TODO ffmpeg is optional, disabled
GOAL_TARGETS_LIBS := openal lsteamclient vrclient dxvk dist # All top level goals. Lazy evaluated so they can be added below.
GOAL_TARGETS := wine $(GOAL_TARGETS_LIBS) GOAL_TARGETS = $(GOAL_TARGETS_LIBS)
# Excluding goals like wine and dist that are either long running or slow per invocation
GOAL_TARGETS_LIBS =
# All target
all: $(GOAL_TARGETS) all: $(GOAL_TARGETS)
@echo ":: make $@ succeeded" @echo ":: make $@ succeeded"
@ -224,7 +227,6 @@ all64: $(addsuffix 64,$(GOAL_TARGETS))
# Libraries (not wine) only -- wine has a length install step that runs unconditionally, so this is useful for updating # Libraries (not wine) only -- wine has a length install step that runs unconditionally, so this is useful for updating
# incremental builds when not iterating on wine itself. # incremental builds when not iterating on wine itself.
all-lib: $(GOAL_TARGETS_LIBS) all-lib: $(GOAL_TARGETS_LIBS)
@echo ":: make $@ succeeded" @echo ":: make $@ succeeded"
@ -292,6 +294,8 @@ $(DIST_COMPAT_MANIFEST): $(COMPAT_MANIFEST_TEMPLATE) $(MAKEFILE_DEP) | $(DST_DIR
.PHONY: dist .PHONY: dist
GOAL_TARGETS += dist
# Only drag in WINE_OUT if they need to be built at all, otherwise this doesn't imply a rebuild of wine. If wine is in # Only drag in WINE_OUT if they need to be built at all, otherwise this doesn't imply a rebuild of wine. If wine is in
# the explicit targets, specify that this should occur after. # the explicit targets, specify that this should occur after.
dist: $(DIST_TARGETS) | $(WINE_OUT) $(filter $(MAKECMDGOALS),wine64 wine32 wine) $(DST_DIR) dist: $(DIST_TARGETS) | $(WINE_OUT) $(filter $(MAKECMDGOALS),wine64 wine32 wine) $(DST_DIR)
@ -384,6 +388,7 @@ $(OPENAL_CONFIGURE_FILES32): $(OPENAL)/CMakeLists.txt $(MAKEFILE_DEP) $(CMAKE_BI
## OpenAL goals ## OpenAL goals
.PHONY: openal openal_configure openal32 openal64 openal_configure32 openal_configure64 .PHONY: openal openal_configure openal32 openal64 openal_configure32 openal_configure64
GOAL_TARGETS_LIBS += openal
openal_configure: $(OPENAL_CONFIGURE_FILES32) $(OPENAL_CONFIGURE_FILES64) openal_configure: $(OPENAL_CONFIGURE_FILES32) $(OPENAL_CONFIGURE_FILES64)
@ -566,6 +571,8 @@ $(LSTEAMCLIENT_CONFIGURE_FILES32): $(LSTEAMCLIENT) $(WINEMAKER) $(MAKEFILE_DEP)
.PHONY: lsteamclient lsteamclient_configure lsteamclient32 lsteamclient64 lsteamclient_configure32 lsteamclient_configure64 .PHONY: lsteamclient lsteamclient_configure lsteamclient32 lsteamclient64 lsteamclient_configure32 lsteamclient_configure64
GOAL_TARGETS_LIBS += lsteamclient
lsteamclient_configure: $(LSTEAMCLIENT_CONFIGURE_FILES32) $(LSTEAMCLIENT_CONFIGURE_FILES64) lsteamclient_configure: $(LSTEAMCLIENT_CONFIGURE_FILES32) $(LSTEAMCLIENT_CONFIGURE_FILES64)
lsteamclient_configure64: $(LSTEAMCLIENT_CONFIGURE_FILES64) lsteamclient_configure64: $(LSTEAMCLIENT_CONFIGURE_FILES64)
@ -650,6 +657,8 @@ $(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(WINE_OBJ32)
.PHONY: wine wine_configure wine32 wine64 wine_configure32 wine_configure64 .PHONY: wine wine_configure wine32 wine64 wine_configure32 wine_configure64
GOAL_TARGETS += wine
wine_configure: $(WINE_CONFIGURE_FILES32) $(WINE_CONFIGURE_FILES64) wine_configure: $(WINE_CONFIGURE_FILES32) $(WINE_CONFIGURE_FILES64)
wine_configure64: $(WINE_CONFIGURE_FILES64) wine_configure64: $(WINE_CONFIGURE_FILES64)
@ -758,6 +767,8 @@ $(VRCLIENT_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(VRCLIENT32) | $(VRCLIENT_OBJ32)
.PHONY: vrclient vrclient_configure vrclient32 vrclient64 vrclient_configure32 vrclient_configure64 .PHONY: vrclient vrclient_configure vrclient32 vrclient64 vrclient_configure32 vrclient_configure64
GOAL_TARGETS_LIBS += vrclient
vrclient_configure: $(VRCLIENT_CONFIGURE_FILES32) $(VRCLIENT_CONFIGURE_FILES64) vrclient_configure: $(VRCLIENT_CONFIGURE_FILES32) $(VRCLIENT_CONFIGURE_FILES64)
vrclient_configure32: $(VRCLIENT_CONFIGURE_FILES32) vrclient_configure32: $(VRCLIENT_CONFIGURE_FILES32)
@ -852,6 +863,8 @@ cmake32-intermediate: $(CMAKE_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),cmake3
## Create & configure object directory for dxvk ## Create & configure object directory for dxvk
ifneq ($(NO_DXVK),1) # May be disabled by configure
DXVK_CONFIGURE_FILES32 := $(DXVK_OBJ32)/build.ninja DXVK_CONFIGURE_FILES32 := $(DXVK_OBJ32)/build.ninja
DXVK_CONFIGURE_FILES64 := $(DXVK_OBJ64)/build.ninja DXVK_CONFIGURE_FILES64 := $(DXVK_OBJ64)/build.ninja
@ -877,6 +890,8 @@ $(DXVK_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(DXVK_OBJ32)
.PHONY: dxvk dxvk_configure dxvk32 dxvk64 dxvk_configure32 dxvk_configure64 .PHONY: dxvk dxvk_configure dxvk32 dxvk64 dxvk_configure32 dxvk_configure64
GOAL_TARGETS_LIBS += dxvk
dxvk_configure: $(DXVK_CONFIGURE_FILES32) $(DXVK_CONFIGURE_FILES64) dxvk_configure: $(DXVK_CONFIGURE_FILES32) $(DXVK_CONFIGURE_FILES64)
dxvk_configure64: $(DXVK_CONFIGURE_FILES64) dxvk_configure64: $(DXVK_CONFIGURE_FILES64)
@ -906,6 +921,8 @@ dxvk32: $(DXVK_CONFIGURE_FILES32)
cp "$(DXVK_OBJ32)"/bin/d3d11.dll "$(DST_DIR)"/lib/wine/dxvk/ cp "$(DXVK_OBJ32)"/bin/d3d11.dll "$(DST_DIR)"/lib/wine/dxvk/
( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version ( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version
endif # NO_DXVK
# TODO OS X # TODO OS X
# build_libpng # build_libpng
# build_libjpeg # build_libjpeg

View File

@ -27,6 +27,10 @@ die() { err "$@"; exit 1; }
finish() { stat "$@"; exit 0; } finish() { stat "$@"; exit 0; }
cmd() { showcmd "$@"; "$@"; } cmd() { showcmd "$@"; "$@"; }
# Environment
OSX=""
[[ $(uname || true) != Darwin ]] || OSX=1
# #
# Configure # Configure
# #
@ -76,13 +80,23 @@ function configure() {
# Don't die after this point or we'll have rather unhelpfully deleted the Makefile # Don't die after this point or we'll have rather unhelpfully deleted the Makefile
[[ ! -e "$MAKEFILE" ]] || rm "$MAKEFILE" [[ ! -e "$MAKEFILE" ]] || rm "$MAKEFILE"
# Config
echo >> "$MAKEFILE" "# Generated by: $THIS_COMMAND" echo >> "$MAKEFILE" "# Generated by: $THIS_COMMAND"
echo >> "$MAKEFILE" "" echo >> "$MAKEFILE" ""
echo >> "$MAKEFILE" "SRCDIR := $(escape_for_make "$srcdir")" echo >> "$MAKEFILE" "SRCDIR := $(escape_for_make "$srcdir")"
# DXVK?
if [[ -n $OSX && ! -n $arg_force_dxvk ]]; then
echo >> "$MAKEFILE" "NO_DXVK := 1"
fi
# SteamRT
echo >> "$MAKEFILE" "STEAMRT64_MODE := $(escape_for_make "$steamrt64_type")" echo >> "$MAKEFILE" "STEAMRT64_MODE := $(escape_for_make "$steamrt64_type")"
echo >> "$MAKEFILE" "STEAMRT64_IMAGE := $(escape_for_make "$steamrt64_name")" echo >> "$MAKEFILE" "STEAMRT64_IMAGE := $(escape_for_make "$steamrt64_name")"
echo >> "$MAKEFILE" "STEAMRT32_MODE := $(escape_for_make "$steamrt32_type")" echo >> "$MAKEFILE" "STEAMRT32_MODE := $(escape_for_make "$steamrt32_type")"
echo >> "$MAKEFILE" "STEAMRT32_IMAGE := $(escape_for_make "$steamrt32_name")" echo >> "$MAKEFILE" "STEAMRT32_IMAGE := $(escape_for_make "$steamrt32_name")"
# Include base
echo >> "$MAKEFILE" "" echo >> "$MAKEFILE" ""
echo >> "$MAKEFILE" "include \$(SRCDIR)/build/makefile_base.mak" echo >> "$MAKEFILE" "include \$(SRCDIR)/build/makefile_base.mak"
@ -97,6 +111,7 @@ function configure() {
arg_steamrt32="" arg_steamrt32=""
arg_steamrt64="" arg_steamrt64=""
arg_no_steamrt="" arg_no_steamrt=""
arg_force_dxvk=""
invalid_args="" invalid_args=""
function parse_args() { function parse_args() {
local arg; local arg;
@ -127,7 +142,9 @@ function parse_args() {
fi fi
# The args # The args
if [[ $arg = --steam-runtime32 ]]; then if [[ $arg = --osx-force-dxvk ]]; then
arg_force_dxvk=1
elif [[ $arg = --steam-runtime32 ]]; then
val_used=1 val_used=1
arg_steamrt32="$val" arg_steamrt32="$val"
elif [[ $arg = --steam-runtime64 ]]; then elif [[ $arg = --steam-runtime64 ]]; then
@ -173,6 +190,10 @@ usage() {
"$1" " Generate a Makefile for building Proton. May be run from another directory to create" "$1" " Generate a Makefile for building Proton. May be run from another directory to create"
"$1" " out-of-tree build directories (e.g. mkdir mybuild && cd mybuild && ../configure.sh)" "$1" " out-of-tree build directories (e.g. mkdir mybuild && cd mybuild && ../configure.sh)"
"$1" "" "$1" ""
"$1" " Options"
"$1" " --osx-force-dxvk Attempt to build DXVK on OS X - not currently functioning,"
"$1" " development use"
"$1" ""
"$1" " Steam Runtime" "$1" " Steam Runtime"
"$1" " Proton builds that are to be installed & run under the steam client must be built with" "$1" " Proton builds that are to be installed & run under the steam client must be built with"
"$1" " the Steam Runtime SDK to ensure compatibility. See BUILDING.md for more information." "$1" " the Steam Runtime SDK to ensure compatibility. See BUILDING.md for more information."
@ -193,6 +214,7 @@ usage() {
[[ $# -gt 0 ]] || usage info [[ $# -gt 0 ]] || usage info
parse_args "$@" || usage err parse_args "$@" || usage err
# Sanity check arguments
if [[ -n $arg_no_steamrt && (-n $arg_steamrt32 || -n $arg_steamrt64) ]]; then if [[ -n $arg_no_steamrt && (-n $arg_steamrt32 || -n $arg_steamrt64) ]]; then
die "Cannot specify a Steam Runtime SDK as well as --no-steam-runtime" die "Cannot specify a Steam Runtime SDK as well as --no-steam-runtime"
elif [[ -z $arg_no_steamrt && ( -z $arg_steamrt32 || -z $arg_steamrt64 ) ]]; then elif [[ -z $arg_no_steamrt && ( -z $arg_steamrt32 || -z $arg_steamrt64 ) ]]; then