mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-06-24 03:19:35 +03:00
proton: Install DLLs and libraries to arch specific directories.
Based on a patch from Billy Laws.
This commit is contained in:
parent
59068ee39f
commit
cc6cd89eac
54
Makefile
54
Makefile
@ -149,77 +149,71 @@ deploy: configure
|
||||
|
||||
module: | $(BUILD_ROOT)/$(module)/lib/wine/i386-windows
|
||||
module: | $(BUILD_ROOT)/$(module)/lib/wine/i386-unix
|
||||
module: | $(BUILD_ROOT)/$(module)/lib64/wine/x86_64-windows
|
||||
module: | $(BUILD_ROOT)/$(module)/lib64/wine/x86_64-unix
|
||||
module: | $(BUILD_ROOT)/$(module)/lib/wine/x86_64-windows
|
||||
module: | $(BUILD_ROOT)/$(module)/lib/wine/x86_64-unix
|
||||
module: configure
|
||||
$(MAKE) $(MFLAGS) $(MAKEOVERRIDES) -C $(BUILD_DIR)/ $(UNSTRIPPED) module=$(module) module && \
|
||||
cp -f $(BUILD_DIR)/obj-wine32/dlls/$(module)/$(MODULE_PEFILE) $(BUILD_ROOT)/$(module)/lib/wine/i386-windows/ && \
|
||||
cp -f $(BUILD_DIR)/obj-wine64/dlls/$(module)/$(MODULE_PEFILE) $(BUILD_ROOT)/$(module)/lib64/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/obj-wine64/dlls/$(module)/$(MODULE_PEFILE) $(BUILD_ROOT)/$(module)/lib/wine/x86_64-windows/ && \
|
||||
if [ -e $(BUILD_DIR)/obj-wine32/dlls/$(module)/$(MODULE_PEFILE).so ]; then \
|
||||
cp -f $(BUILD_DIR)/obj-wine32/dlls/$(module)/$(MODULE_PEFILE).so $(BUILD_ROOT)/$(module)/lib/wine/i386-unix/ && \
|
||||
cp -f $(BUILD_DIR)/obj-wine64/dlls/$(module)/$(MODULE_PEFILE).so $(BUILD_ROOT)/$(module)/lib64/wine/x86_64-unix/; \
|
||||
cp -f $(BUILD_DIR)/obj-wine64/dlls/$(module)/$(MODULE_PEFILE).so $(BUILD_ROOT)/$(module)/lib/wine/x86_64-unix/; \
|
||||
fi
|
||||
if [ -e $(BUILD_DIR)/obj-wine32/dlls/$(module)/$(MODULE_SOFILE) ]; then \
|
||||
cp -f $(BUILD_DIR)/obj-wine32/dlls/$(module)/$(MODULE_SOFILE) $(BUILD_ROOT)/$(module)/lib/wine/i386-unix/ && \
|
||||
cp -f $(BUILD_DIR)/obj-wine64/dlls/$(module)/$(MODULE_SOFILE) $(BUILD_ROOT)/$(module)/lib64/wine/x86_64-unix/; \
|
||||
cp -f $(BUILD_DIR)/obj-wine64/dlls/$(module)/$(MODULE_SOFILE) $(BUILD_ROOT)/$(module)/lib/wine/x86_64-unix/; \
|
||||
fi
|
||||
|
||||
any $(CONTAINERGOALS): configure
|
||||
$(MAKE) $(MFLAGS) $(MAKEOVERRIDES) -C $(BUILD_DIR)/ $(UNSTRIPPED) $(CONTAINERGOALS)
|
||||
|
||||
dxvk: | $(BUILD_ROOT)/dxvk/lib/wine/dxvk
|
||||
dxvk: | $(BUILD_ROOT)/dxvk/lib64/wine/dxvk
|
||||
dxvk: any
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/dxvk/*.dll $(BUILD_ROOT)/dxvk/lib/wine/dxvk/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/dxvk/*.dll $(BUILD_ROOT)/dxvk/lib64/wine/dxvk/
|
||||
cp -rf $(BUILD_DIR)/dist/files/lib/wine/dxvk/* $(BUILD_ROOT)/dxvk/lib/wine/dxvk/
|
||||
|
||||
dxvk-nvapi: | $(BUILD_ROOT)/dxvk-nvapi/lib/wine/nvapi
|
||||
dxvk-nvapi: | $(BUILD_ROOT)/dxvk-nvapi/lib64/wine/nvapi
|
||||
dxvk-nvapi: any
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/nvapi/*.dll $(BUILD_ROOT)/dxvk-nvapi/lib/wine/nvapi/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/nvapi/*.dll $(BUILD_ROOT)/dxvk-nvapi/lib64/wine/nvapi/
|
||||
cp -rf $(BUILD_DIR)/dist/files/lib/wine/nvapi/* $(BUILD_ROOT)/dxvk-nvapi/lib/wine/nvapi/
|
||||
|
||||
vkd3d-proton: | $(BUILD_ROOT)/vkd3d-proton/lib/wine/vkd3d-proton
|
||||
vkd3d-proton: | $(BUILD_ROOT)/vkd3d-proton/lib64/wine/vkd3d-proton
|
||||
vkd3d-proton: any
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/vkd3d-proton/*.dll $(BUILD_ROOT)/vkd3d-proton/lib/wine/vkd3d-proton/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/vkd3d-proton/*.dll $(BUILD_ROOT)/vkd3d-proton/lib64/wine/vkd3d-proton/
|
||||
cp -rf $(BUILD_DIR)/dist/files/lib/wine/vkd3d-proton/* $(BUILD_ROOT)/vkd3d-proton/lib/wine/vkd3d-proton/
|
||||
|
||||
lsteamclient: | $(BUILD_ROOT)/lsteamclient/lib/wine/i386-windows
|
||||
lsteamclient: | $(BUILD_ROOT)/lsteamclient/lib/wine/i386-unix
|
||||
lsteamclient: | $(BUILD_ROOT)/lsteamclient/lib64/wine/x86_64-windows
|
||||
lsteamclient: | $(BUILD_ROOT)/lsteamclient/lib64/wine/x86_64-unix
|
||||
lsteamclient: | $(BUILD_ROOT)/lsteamclient/lib/wine/x86_64-windows
|
||||
lsteamclient: | $(BUILD_ROOT)/lsteamclient/lib/wine/x86_64-unix
|
||||
lsteamclient: any
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/i386-windows/lsteamclient.dll $(BUILD_ROOT)/lsteamclient/lib/wine/i386-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/i386-unix/lsteamclient.dll.so $(BUILD_ROOT)/lsteamclient/lib/wine/i386-unix/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/x86_64-windows/lsteamclient.dll $(BUILD_ROOT)/lsteamclient/lib64/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/x86_64-unix/lsteamclient.dll.so $(BUILD_ROOT)/lsteamclient/lib64/wine/x86_64-unix/
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/x86_64-windows/lsteamclient.dll $(BUILD_ROOT)/lsteamclient/lib/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/x86_64-unix/lsteamclient.dll.so $(BUILD_ROOT)/lsteamclient/lib/wine/x86_64-unix/
|
||||
|
||||
vrclient: | $(BUILD_ROOT)/vrclient/lib/wine/i386-windows
|
||||
vrclient: | $(BUILD_ROOT)/vrclient/lib/wine/i386-unix
|
||||
vrclient: | $(BUILD_ROOT)/vrclient/lib64/wine/x86_64-windows
|
||||
vrclient: | $(BUILD_ROOT)/vrclient/lib64/wine/x86_64-unix
|
||||
vrclient: | $(BUILD_ROOT)/vrclient/lib/wine/x86_64-windows
|
||||
vrclient: | $(BUILD_ROOT)/vrclient/lib/wine/x86_64-unix
|
||||
vrclient: any
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/i386-windows/vrclient.dll $(BUILD_ROOT)/vrclient/lib/wine/i386-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/i386-unix/vrclient.dll.so $(BUILD_ROOT)/vrclient/lib/wine/i386-unix/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/x86_64-windows/vrclient_x64.dll $(BUILD_ROOT)/vrclient/lib64/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/x86_64-unix/vrclient_x64.dll.so $(BUILD_ROOT)/vrclient/lib64/wine/x86_64-unix/
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/x86_64-windows/vrclient_x64.dll $(BUILD_ROOT)/vrclient/lib/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/x86_64-unix/vrclient_x64.dll.so $(BUILD_ROOT)/vrclient/lib/wine/x86_64-unix/
|
||||
|
||||
wineopenxr: | $(BUILD_ROOT)/wineopenxr/lib64/wine/x86_64-windows
|
||||
wineopenxr: | $(BUILD_ROOT)/wineopenxr/lib64/wine/x86_64-unix
|
||||
wineopenxr: | $(BUILD_ROOT)/wineopenxr/lib/wine/x86_64-windows
|
||||
wineopenxr: | $(BUILD_ROOT)/wineopenxr/lib/wine/x86_64-unix
|
||||
wineopenxr: any
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/x86_64-windows/wineopenxr.dll $(BUILD_ROOT)/wineopenxr/lib64/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib64/wine/x86_64-unix/wineopenxr.dll.so $(BUILD_ROOT)/wineopenxr/lib64/wine/x86_64-unix/
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/x86_64-windows/wineopenxr.dll $(BUILD_ROOT)/wineopenxr/lib/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist/files/lib/wine/x86_64-unix/wineopenxr.dll.so $(BUILD_ROOT)/wineopenxr/lib/wine/x86_64-unix/
|
||||
|
||||
battleye: | $(BUILD_ROOT)/battleye/v1/lib/wine/i386-windows
|
||||
battleye: | $(BUILD_ROOT)/battleye/v1/lib/wine/i386-unix
|
||||
battleye: | $(BUILD_ROOT)/battleye/v1/lib64/wine/x86_64-windows
|
||||
battleye: | $(BUILD_ROOT)/battleye/v1/lib64/wine/x86_64-unix
|
||||
battleye: | $(BUILD_ROOT)/battleye/v1/lib/wine/x86_64-windows
|
||||
battleye: | $(BUILD_ROOT)/battleye/v1/lib/wine/x86_64-unix
|
||||
battleye: any
|
||||
cp -f $(BUILD_DIR)/dist-battleye/v1/lib/wine/i386-windows/beclient.dll $(BUILD_ROOT)/battleye/v1/lib/wine/i386-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist-battleye/v1/lib/wine/i386-unix/beclient.dll.so $(BUILD_ROOT)/battleye/v1/lib/wine/i386-unix/ && \
|
||||
cp -f $(BUILD_DIR)/dist-battleye/v1/lib64/wine/x86_64-windows/beclient_x64.dll $(BUILD_ROOT)/battleye/v1/lib64/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist-battleye/v1/lib64/wine/x86_64-unix/beclient_x64.dll.so $(BUILD_ROOT)/battleye/v1/lib64/wine/x86_64-unix/
|
||||
cp -f $(BUILD_DIR)/dist-battleye/v1/lib/wine/x86_64-windows/beclient_x64.dll $(BUILD_ROOT)/battleye/v1/lib/wine/x86_64-windows/ && \
|
||||
cp -f $(BUILD_DIR)/dist-battleye/v1/lib/wine/x86_64-unix/beclient_x64.dll.so $(BUILD_ROOT)/battleye/v1/lib/wine/x86_64-unix/
|
||||
|
||||
$(BUILD_ROOT)/%:
|
||||
mkdir -p $@
|
||||
|
107
Makefile.in
107
Makefile.in
@ -36,8 +36,7 @@ unexport SOURCE_DATE_EPOCH
|
||||
|
||||
DST_BASE := $(OBJ)/dist
|
||||
DST_DIR := $(DST_BASE)/files
|
||||
DST_LIBDIR32 := $(DST_DIR)/lib
|
||||
DST_LIBDIR64 := $(DST_DIR)/lib64
|
||||
DST_LIBDIR := $(DST_DIR)/lib
|
||||
DIST_PREFIX := $(DST_DIR)/share/default_pfx/
|
||||
DIST_VERSION := $(DST_BASE)/version
|
||||
DEPLOY_DIR := ./deploy
|
||||
@ -277,13 +276,13 @@ $(eval $(call rules-cargo,gst_plugins_rs,32))
|
||||
$(eval $(call rules-cargo,gst_plugins_rs,64))
|
||||
|
||||
$(OBJ)/.gst_plugins_rs-post-build64:
|
||||
mkdir -p $(GST_PLUGINS_RS_DST64)/lib64/gstreamer-1.0/
|
||||
cp -a $(GST_PLUGINS_RS_OBJ64)/x86_64-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_DST64)/lib64/gstreamer-1.0/
|
||||
mkdir -p $(GST_PLUGINS_RS_DST64)/lib/x86_64-linux-gnu/gstreamer-1.0/
|
||||
cp -a $(GST_PLUGINS_RS_OBJ64)/x86_64-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_DST64)/lib/x86_64-linux-gnu/gstreamer-1.0/
|
||||
touch $@
|
||||
|
||||
$(OBJ)/.gst_plugins_rs-post-build32:
|
||||
mkdir -p $(GST_PLUGINS_RS_DST32)/lib/gstreamer-1.0/
|
||||
cp -a $(GST_PLUGINS_RS_OBJ32)/i686-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_DST32)/lib/gstreamer-1.0/
|
||||
mkdir -p $(GST_PLUGINS_RS_DST32)/lib/i386-linux-gnu/gstreamer-1.0/
|
||||
cp -a $(GST_PLUGINS_RS_OBJ32)/i686-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_DST32)/lib/i386-linux-gnu/gstreamer-1.0/
|
||||
touch $@
|
||||
|
||||
|
||||
@ -378,11 +377,13 @@ $(eval $(call rules-makedep,steamexe,64))
|
||||
$(eval $(call rules-makedep,steamexe,32))
|
||||
|
||||
$(OBJ)/.steamexe-post-build32:
|
||||
cp $(SRC)/steam_helper/32/libsteam_api.so $(DST_LIBDIR32)/
|
||||
mkdir -p $(DST_LIBDIR)/i386-linux-gnu/
|
||||
cp $(SRC)/steam_helper/32/libsteam_api.so $(DST_LIBDIR)/i386-linux-gnu/
|
||||
touch $@
|
||||
|
||||
$(OBJ)/.steamexe-post-build64:
|
||||
cp $(SRC)/steam_helper/64/libsteam_api.so $(DST_LIBDIR64)/
|
||||
mkdir -p $(DST_LIBDIR)/x86_64-linux-gnu/
|
||||
cp $(SRC)/steam_helper/64/libsteam_api.so $(DST_LIBDIR)/x86_64-linux-gnu/
|
||||
touch $@
|
||||
|
||||
##
|
||||
@ -393,9 +394,9 @@ $(eval $(call rules-source,piper,$(SRCDIR)/piper))
|
||||
$(eval $(call rules-cmake,piper,64))
|
||||
|
||||
$(OBJ)/.piper-post-build64:
|
||||
mkdir -p $(PIPER_DST64)/lib64
|
||||
mkdir -p $(PIPER_DST64)/lib/$(TARGET_64)
|
||||
mv $(PIPER_DST64)/*.so* $(PIPER_DST64)/lib/$(TARGET_64)
|
||||
mkdir -p $(DST_DIR)/share
|
||||
mv $(PIPER_DST64)/*.so* $(PIPER_DST64)/lib64/
|
||||
cp -a $(PIPER_DST64)/{espeak-ng-data,libtashkeel_model.ort} $(DST_DIR)/share/
|
||||
touch $@
|
||||
|
||||
@ -429,15 +430,18 @@ WINE_CONFIGURE_ARGS = \
|
||||
|
||||
WINE_CONFIGURE_ARGS32 = \
|
||||
VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_DST32)/include -I$(VKD3D_DST32)/include/vkd3d" \
|
||||
VKD3D_PE_LIBS="-L$(VKD3D_LIBDIR32)/vkd3d -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll"
|
||||
VKD3D_PE_LIBS="-L$(VKD3D_LIBDIR32)/vkd3d/i386-windows -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll"
|
||||
|
||||
WINE_CONFIGURE_ARGS64 = --enable-win64 \
|
||||
VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_DST64)/include -I$(VKD3D_DST64)/include/vkd3d" \
|
||||
VKD3D_PE_LIBS="-L$(VKD3D_LIBDIR64)/vkd3d -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll"
|
||||
VKD3D_PE_LIBS="-L$(VKD3D_LIBDIR64)/vkd3d/x86_64-windows -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll"
|
||||
|
||||
WINE_DEPENDS = gst_orc gstreamer gst_base vkd3d ffmpeg
|
||||
WINE_DEPENDS64 = piper
|
||||
|
||||
WINE_LIBDIR32 = $(WINE_DST32)/lib
|
||||
WINE_LIBDIR64 = $(WINE_DST64)/lib
|
||||
|
||||
$(eval $(call rules-source,wine,$(SRCDIR)/wine))
|
||||
$(eval $(call rules-autoconf,wine,32))
|
||||
$(eval $(call rules-autoconf,wine,64))
|
||||
@ -487,8 +491,8 @@ DXVK_SOURCE_DATE_EPOCH64 := $(shell expr $(BASE_SOURCE_DATE_EPOCH64) - 1)
|
||||
DXVK_SOURCE_ARGS = \
|
||||
--exclude version.h.in \
|
||||
|
||||
DXVK_MESON_ARGS32 = --bindir=$(DXVK_DST32)/lib/wine/dxvk
|
||||
DXVK_MESON_ARGS64 = --bindir=$(DXVK_DST64)/lib64/wine/dxvk
|
||||
DXVK_MESON_ARGS32 = --bindir=$(DXVK_DST32)/lib/wine/dxvk/i386-windows
|
||||
DXVK_MESON_ARGS64 = --bindir=$(DXVK_DST64)/lib/wine/dxvk/x86_64-windows
|
||||
DXVK_DEPENDS = glslang
|
||||
|
||||
$(eval $(call rules-source,dxvk,$(SRCDIR)/dxvk))
|
||||
@ -498,12 +502,9 @@ $(eval $(call rules-meson,dxvk,64,CROSS))
|
||||
$(OBJ)/.dxvk-post-source:
|
||||
sed -re 's#@VCS_TAG@#$(shell git -C $(SRCDIR)/dxvk describe --always --abbrev=15 --dirty=0)#' \
|
||||
$(SRCDIR)/dxvk/version.h.in > $(DXVK_SRC)/version.h.in
|
||||
mkdir -p $(DST_DIR)/lib/wine/dxvk
|
||||
mkdir -p $(DST_DIR)/lib64/wine/dxvk
|
||||
rm -rf $(DST_DIR)/lib/wine/dxvk/version
|
||||
rm -rf $(DST_DIR)/lib64/wine/dxvk/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- dxvk)" > $(DST_DIR)/lib/wine/dxvk/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- dxvk)" > $(DST_DIR)/lib64/wine/dxvk/version
|
||||
mkdir -p $(DST_LIBDIR)/wine/dxvk
|
||||
rm -rf $(DST_LIBDIR)/wine/dxvk/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- dxvk)" > $(DST_LIBDIR)/wine/dxvk/version
|
||||
touch $@
|
||||
|
||||
|
||||
@ -511,20 +512,17 @@ $(OBJ)/.dxvk-post-source:
|
||||
## dxvk-nvapi
|
||||
##
|
||||
|
||||
DXVK_NVAPI_MESON_ARGS32 = --bindir=$(DXVK_NVAPI_DST32)/lib/wine/nvapi
|
||||
DXVK_NVAPI_MESON_ARGS64 = --bindir=$(DXVK_NVAPI_DST64)/lib64/wine/nvapi
|
||||
DXVK_NVAPI_MESON_ARGS32 = --bindir=$(DXVK_NVAPI_DST32)/lib/wine/nvapi/i386-windows
|
||||
DXVK_NVAPI_MESON_ARGS64 = --bindir=$(DXVK_NVAPI_DST64)/lib/wine/nvapi/x86_64-windows
|
||||
|
||||
$(eval $(call rules-source,dxvk-nvapi,$(SRCDIR)/dxvk-nvapi))
|
||||
$(eval $(call rules-meson,dxvk-nvapi,32,CROSS))
|
||||
$(eval $(call rules-meson,dxvk-nvapi,64,CROSS))
|
||||
|
||||
$(OBJ)/.dxvk-nvapi-post-source:
|
||||
mkdir -p $(DST_DIR)/lib/wine/nvapi
|
||||
mkdir -p $(DST_DIR)/lib64/wine/nvapi
|
||||
rm -rf $(DST_DIR)/lib/wine/nvapi/version
|
||||
rm -rf $(DST_DIR)/lib64/wine/nvapi/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- dxvk-nvapi)" > $(DST_DIR)/lib/wine/nvapi/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- dxvk-nvapi)" > $(DST_DIR)/lib64/wine/nvapi/version
|
||||
mkdir -p $(DST_LIBDIR)/wine/nvapi
|
||||
rm -rf $(DST_LIBDIR)/wine/nvapi/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- dxvk-nvapi)" > $(DST_LIBDIR)/wine/nvapi/version
|
||||
touch $@
|
||||
|
||||
|
||||
@ -559,20 +557,23 @@ VKD3D_CFLAGS = -fno-lto
|
||||
VKD3D_LDFLAGS = -static-libgcc $(CROSSLDFLAGS)
|
||||
VKD3D_DEPENDS = vulkan-headers spirv-headers
|
||||
|
||||
VKD3D_LIBDIR32 = $(VKD3D_DST32)/lib
|
||||
VKD3D_LIBDIR64 = $(VKD3D_DST64)/lib
|
||||
|
||||
$(eval $(call rules-source,vkd3d,$(SRCDIR)/vkd3d))
|
||||
$(eval $(call rules-autoconf,vkd3d,32,CROSS))
|
||||
$(eval $(call rules-autoconf,vkd3d,64,CROSS))
|
||||
|
||||
$(OBJ)/.vkd3d-post-build64:
|
||||
mkdir -p $(VKD3D_LIBDIR64)/vkd3d
|
||||
mv $(VKD3D_DST64)/bin/libvkd3d-1.dll $(VKD3D_LIBDIR64)/vkd3d
|
||||
mv $(VKD3D_DST64)/bin/libvkd3d-shader-1.dll $(VKD3D_LIBDIR64)/vkd3d
|
||||
mkdir -p $(VKD3D_LIBDIR64)/vkd3d/x86_64-windows
|
||||
mv $(VKD3D_DST64)/bin/libvkd3d-1.dll $(VKD3D_LIBDIR64)/vkd3d/x86_64-windows
|
||||
mv $(VKD3D_DST64)/bin/libvkd3d-shader-1.dll $(VKD3D_LIBDIR64)/vkd3d/x86_64-windows
|
||||
touch $@
|
||||
|
||||
$(OBJ)/.vkd3d-post-build32:
|
||||
mkdir -p $(VKD3D_LIBDIR32)/vkd3d
|
||||
mv $(VKD3D_DST32)/bin/libvkd3d-1.dll $(VKD3D_LIBDIR32)/vkd3d
|
||||
mv $(VKD3D_DST32)/bin/libvkd3d-shader-1.dll $(VKD3D_LIBDIR32)/vkd3d
|
||||
mkdir -p $(VKD3D_LIBDIR32)/vkd3d/i386-windows
|
||||
mv $(VKD3D_DST32)/bin/libvkd3d-1.dll $(VKD3D_LIBDIR32)/vkd3d/i386-windows
|
||||
mv $(VKD3D_DST32)/bin/libvkd3d-shader-1.dll $(VKD3D_LIBDIR32)/vkd3d/i386-windows
|
||||
touch $@
|
||||
|
||||
##
|
||||
@ -587,8 +588,8 @@ VKD3D_PROTON_SOURCE_ARGS = \
|
||||
--exclude vkd3d_build.h.in \
|
||||
--exclude vkd3d_version.h.in \
|
||||
|
||||
VKD3D_PROTON_MESON_ARGS32 = --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton
|
||||
VKD3D_PROTON_MESON_ARGS64 = --bindir=$(VKD3D_PROTON_DST64)/lib64/wine/vkd3d-proton
|
||||
VKD3D_PROTON_MESON_ARGS32 = --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton/i386-windows
|
||||
VKD3D_PROTON_MESON_ARGS64 = --bindir=$(VKD3D_PROTON_DST64)/lib/wine/vkd3d-proton/x86_64-windows
|
||||
VKD3D_PROTON_DEPENDS = glslang
|
||||
|
||||
ifneq ($(UNSTRIPPED_BUILD),)
|
||||
@ -604,12 +605,9 @@ $(OBJ)/.vkd3d-proton-post-source:
|
||||
$(SRCDIR)/vkd3d-proton/vkd3d_build.h.in > $(VKD3D_PROTON_SRC)/vkd3d_build.h.in
|
||||
sed -re 's#@VCS_TAG@#$(shell git -C $(SRCDIR)/vkd3d-proton describe --always --tags --dirty=+)#' \
|
||||
$(SRCDIR)/vkd3d-proton/vkd3d_version.h.in > $(VKD3D_PROTON_SRC)/vkd3d_version.h.in
|
||||
mkdir -p $(DST_DIR)/lib/wine/vkd3d-proton
|
||||
mkdir -p $(DST_DIR)/lib64/wine/vkd3d-proton
|
||||
rm -rf $(DST_DIR)/lib/wine/vkd3d-proton/version
|
||||
rm -rf $(DST_DIR)/lib64/wine/vkd3d-proton/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- vkd3d-proton)" > $(DST_DIR)/lib/wine/vkd3d-proton/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- vkd3d-proton)" > $(DST_DIR)/lib64/wine/vkd3d-proton/version
|
||||
mkdir -p $(DST_LIBDIR)/wine/vkd3d-proton
|
||||
rm -rf $(DST_LIBDIR)/wine/vkd3d-proton/version
|
||||
echo "$(shell git -C $(SRCDIR) submodule status -- vkd3d-proton)" > $(DST_LIBDIR)/wine/vkd3d-proton/version
|
||||
touch $@
|
||||
|
||||
|
||||
@ -664,11 +662,11 @@ $(OBJ)/.eac-build64:
|
||||
rsync -arx "$(EAC_SRC)/" "$(EAC_OBJ64)/"
|
||||
env $(EAC_ENV64) \
|
||||
$(MAKE) -C "$(EAC_OBJ64)" WINE_OBJ="$(WINE_OBJ64)" HOST="x86_64-w64-mingw32" CROSSCXX="x86_64-w64-mingw32-g++" BIT="64"
|
||||
mkdir -p $(OBJ)/dist-eac/v2/lib64
|
||||
$(call install-strip,$(EAC_OBJ64)/easyanticheat.so,$(OBJ)/dist-eac/v2/lib64)
|
||||
$(call install-strip,$(EAC_OBJ64)/easyanticheat.dll,$(OBJ)/dist-eac/v2/lib64)
|
||||
cp $(OBJ)/dist-eac/v2/lib64/easyanticheat.so $(OBJ)/dist-eac/v2/lib64/easyanticheat_x64.so
|
||||
cp $(OBJ)/dist-eac/v2/lib64/easyanticheat.dll $(OBJ)/dist-eac/v2/lib64/easyanticheat_x64.dll
|
||||
mkdir -p $(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu
|
||||
$(call install-strip,$(EAC_OBJ64)/easyanticheat.so,$(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu)
|
||||
$(call install-strip,$(EAC_OBJ64)/easyanticheat.dll,$(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu)
|
||||
cp $(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu/easyanticheat.so $(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu/easyanticheat_x64.so
|
||||
cp $(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu/easyanticheat.dll $(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu/easyanticheat_x64.dll
|
||||
touch $@
|
||||
|
||||
$(OBJ)/.eac-build32:
|
||||
@ -1014,10 +1012,10 @@ all-dist: $(DIST_XALIA)
|
||||
##
|
||||
|
||||
ICU_VER := 6.8.2
|
||||
DIST_ICU64_DIR := $(DST_DIR)/lib64/icu
|
||||
DIST_ICU64_DIR := $(DST_LIBDIR)/wine/icu/x86_64-windows
|
||||
DIST_ICU64 := $(OBJ)/.icu-dist64
|
||||
ICU64_TARBALL := icu-$(ICU_VER)-x86_64.tar.xz
|
||||
DIST_ICU32_DIR := $(DST_DIR)/lib/icu
|
||||
DIST_ICU32_DIR := $(DST_LIBDIR)/wine/icu/i386-windows
|
||||
DIST_ICU32 := $(OBJ)/.icu-dist32
|
||||
ICU32_TARBALL := icu-$(ICU_VER)-x86.tar.xz
|
||||
|
||||
@ -1040,14 +1038,14 @@ all-dist: $(DIST_ICU64) $(DIST_ICU32)
|
||||
## openvr
|
||||
##
|
||||
|
||||
DIST_OVR32 := $(DST_LIBDIR32)/wine/dxvk/openvr_api_dxvk.dll
|
||||
DIST_OVR32 := $(DST_LIBDIR)/wine/dxvk/i386-windows/openvr_api_dxvk.dll
|
||||
$(DIST_OVR32): $(SRCDIR)/openvr/bin/win32/openvr_api.dll | $(DST_DIR)
|
||||
mkdir -p $(DST_LIBDIR32)/wine/dxvk
|
||||
mkdir -p $(DST_LIBDIR)/wine/dxvk/i386-windows
|
||||
cp -af $< $@
|
||||
|
||||
DIST_OVR64 := $(DST_LIBDIR64)/wine/dxvk/openvr_api_dxvk.dll
|
||||
DIST_OVR64 := $(DST_LIBDIR)/wine/dxvk/x86_64-windows/openvr_api_dxvk.dll
|
||||
$(DIST_OVR64): $(SRCDIR)/openvr/bin/win64/openvr_api.dll | $(DST_DIR)
|
||||
mkdir -p $(DST_LIBDIR64)/wine/dxvk
|
||||
mkdir -p $(DST_LIBDIR)/wine/dxvk/x86_64-windows
|
||||
cp -af $< $@
|
||||
|
||||
all-dist: $(DIST_OVR32) $(DIST_OVR64)
|
||||
@ -1058,8 +1056,7 @@ all-dist: $(DIST_OVR32) $(DIST_OVR64)
|
||||
##
|
||||
|
||||
default_pfx: wine gst_good gst_bad gst_libav gst_plugins_rs lsteamclient steamexe vrclient wineopenxr dxvk dxvk-nvapi vkd3d-proton
|
||||
find $(DST_LIBDIR32)/wine -type f -execdir chmod a-w '{}' '+'
|
||||
find $(DST_LIBDIR64)/wine -type f -execdir chmod a-w '{}' '+'
|
||||
find $(DST_LIBDIR)/wine -type f -execdir chmod a-w '{}' '+'
|
||||
rm -rf $(abspath $(DIST_PREFIX))
|
||||
python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX)) $(abspath $(DST_DIR))
|
||||
|
||||
|
@ -62,7 +62,7 @@ def setup_dll_symlinks(default_pfx_dir, dist_dir):
|
||||
if bitness == 32:
|
||||
libdir = os.path.join(dist_dir, 'lib/wine/i386-windows')
|
||||
elif bitness == 64:
|
||||
libdir = os.path.join(dist_dir, 'lib64/wine/x86_64-windows')
|
||||
libdir = os.path.join(dist_dir, 'lib/wine/x86_64-windows')
|
||||
else:
|
||||
continue
|
||||
if os.path.exists(os.path.join(libdir, file_)):
|
||||
@ -120,8 +120,8 @@ def fixup_drive_links(default_pfx_dir):
|
||||
def make_default_pfx(default_pfx_dir, dist_dir):
|
||||
local_env = dict(os.environ)
|
||||
|
||||
ld_path = dist_dir + "/lib64:" + dist_dir + "/lib"
|
||||
dll_path = dist_dir + "/lib64/vkd3d:" + dist_dir + "/lib/vkd3d"
|
||||
ld_path = dist_dir + "/lib/x86_64-linux-gnu:" + dist_dir + "/lib/i386-linux-gnu"
|
||||
dll_path = dist_dir + "/lib/vkd3d/x86_64-windows:" + dist_dir + "/lib/vkd3d/i386-windows"
|
||||
|
||||
local_env["LD_LIBRARY_PATH"] = ld_path
|
||||
local_env["WINEPREFIX"] = default_pfx_dir
|
||||
|
@ -18,7 +18,7 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/configure
|
||||
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
|
||||
$$($(2)_SRC)/configure $(--quiet?) -C \
|
||||
--prefix="$$($(2)_DST$(3))" \
|
||||
--libdir="$$($(2)_DST$(3))/lib$(subst 32,,$(3))" \
|
||||
--libdir="$$($(2)_DST$(3))/lib" \
|
||||
--host="$$(TARGET_$(4)$(3))" \
|
||||
$$($(2)_ENV$(3)) \
|
||||
$$($(2)_CONFIGURE_ARGS) \
|
||||
|
@ -15,7 +15,7 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/CMakeLists.txt
|
||||
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
|
||||
cmake "$$($(2)_SRC)" \
|
||||
-DCMAKE_INSTALL_PREFIX="$$($(2)_DST$(3))" \
|
||||
-DCMAKE_INSTALL_LIBDIR="lib$(subst 32,,$(3))" \
|
||||
-DCMAKE_INSTALL_LIBDIR="lib/$$(LIBDIR_$(4)$(3))" \
|
||||
-DCMAKE_BUILD_TYPE=plain \
|
||||
-DCMAKE_SYSTEM_NAME=$(if $(4),Windows,) \
|
||||
-DCMAKE_SHARED_LIBRARY_PREFIX_C=$(if $(4),,lib) \
|
||||
|
@ -9,7 +9,7 @@ $(2)_DST$(3) := $$(OBJ)/dst-$(1)$(3)
|
||||
$(2)_DEPS$(3) := $$(call toupper,$$($(2)_DEPENDS)) $$(call toupper,$$($(2)_DEPENDS$(3)))
|
||||
|
||||
$(2)_BINDIR$(3) ?= $$($(2)_DST$(3))/bin
|
||||
$(2)_LIBDIR$(3) ?= $$($(2)_DST$(3))/lib$(subst 32,,$(3))
|
||||
$(2)_LIBDIR$(3) ?= $$($(2)_DST$(3))/lib
|
||||
$(2)_INCDIR$(3) ?= $$($(2)_DST$(3))/include
|
||||
|
||||
$$(OBJ)/.$(1)-configure$(3): $$(shell mkdir -p $$($(2)_OBJ$(3)))
|
||||
@ -55,14 +55,14 @@ $$(OBJ)/.$(1)-dist$(3):
|
||||
mkdir -p "$$(OBJ)/compile_commands/$(1)$(3)/"; \
|
||||
sed "s#$$($(2)_SRC)#$$($(2)_ORIGIN)#g" "$$($(2)_OBJ$(3))/compile_commands.json" > "$$(OBJ)/compile_commands/$(1)$(3)/compile_commands.json"; \
|
||||
fi
|
||||
mkdir -p $$($(2)_LIBDIR$(3))/ $$(DST_LIBDIR$(3))/
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -printf '$$(DST_LIBDIR$(3))/%h\0' | sort -z | uniq -z | xargs $(--verbose?) -0 -r -P$$(J) mkdir -p
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type l -printf '%p\0$$(DST_LIBDIR$(3))/%p\0' | xargs $(--verbose?) -0 -r -P$$(J) -n2 cp -a
|
||||
mkdir -p $$($(2)_LIBDIR$(3))/ $$(DST_LIBDIR)/
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -printf '$$(DST_LIBDIR)/%h\0' | sort -z | uniq -z | xargs $(--verbose?) -0 -r -P$$(J) mkdir -p
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type l -printf '%p\0$$(DST_LIBDIR)/%p\0' | xargs $(--verbose?) -0 -r -P$$(J) -n2 cp -a
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \
|
||||
-printf '--only-keep-debug\0%p\0$$(DST_LIBDIR$(3))/%p.debug\0' | \
|
||||
-printf '--only-keep-debug\0%p\0$$(DST_LIBDIR)/%p.debug\0' | \
|
||||
xargs $(--verbose?) -0 -r -P$$(J) -n3 objcopy -p --file-alignment=4096
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \
|
||||
-printf '--add-gnu-debuglink=$$(DST_LIBDIR$(3))/%p.debug\0--strip-debug\0%p\0$$(DST_LIBDIR$(3))/%p\0' | \
|
||||
-printf '--add-gnu-debuglink=$$(DST_LIBDIR)/%p.debug\0--strip-debug\0%p\0$$(DST_LIBDIR)/%p\0' | \
|
||||
xargs $(--verbose?) -0 -r -P$$(J) -n4 objcopy -p --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code
|
||||
touch $$@
|
||||
else
|
||||
@ -72,13 +72,13 @@ $$(OBJ)/.$(1)-dist$(3):
|
||||
mkdir -p "$$(OBJ)/compile_commands/$(1)$(3)/"; \
|
||||
sed "s#$$($(2)_SRC)#$$($(2)_ORIGIN)#g" "$$($(2)_OBJ$(3))/compile_commands.json" > "$$(OBJ)/compile_commands/$(1)$(3)/compile_commands.json"; \
|
||||
fi
|
||||
mkdir -p $$($(2)_LIBDIR$(3))/ $$(DST_LIBDIR$(3))/
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -printf '$$(DST_LIBDIR$(3))/%h\0' | sort -z | uniq -z | xargs $(--verbose?) -0 -r -P$$(J) mkdir -p
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type l -printf '%p\0$$(DST_LIBDIR$(3))/%p\0' | xargs $(--verbose?) -0 -r -P$$(J) -n2 cp -a
|
||||
mkdir -p $$($(2)_LIBDIR$(3))/ $$(DST_LIBDIR)/
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -printf '$$(DST_LIBDIR)/%h\0' | sort -z | uniq -z | xargs $(--verbose?) -0 -r -P$$(J) mkdir -p
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type l -printf '%p\0$$(DST_LIBDIR)/%p\0' | xargs $(--verbose?) -0 -r -P$$(J) -n2 cp -a
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \
|
||||
-printf '$$(DST_LIBDIR$(3))/%p.debug\0' | xargs $(--verbose?) -0 -r -P$$(J) rm -f
|
||||
-printf '$$(DST_LIBDIR)/%p.debug\0' | xargs $(--verbose?) -0 -r -P$$(J) rm -f
|
||||
cd $$($(2)_LIBDIR$(3)) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \
|
||||
-printf '--strip-debug\0%p\0$$(DST_LIBDIR$(3))/%p\0' | \
|
||||
-printf '--strip-debug\0%p\0$$(DST_LIBDIR)/%p\0' | \
|
||||
xargs $(--verbose?) -0 -r -P$$(J) -n3 objcopy -p --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code
|
||||
touch $$@
|
||||
endif
|
||||
@ -103,8 +103,8 @@ all: $(1)
|
||||
.PHONY: all
|
||||
|
||||
$(2)_INCFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-I$$($$(d)_INCDIR$(3)))
|
||||
$(2)_LIBFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-L$$($$(d)_LIBDIR$(3))) \
|
||||
$$(foreach d,$$($(2)_DEPS$(3)),-Wl,-rpath-link=$$($$(d)_LIBDIR$(3))) \
|
||||
$(2)_LIBFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-L$$($$(d)_LIBDIR$(3))/$$(LIBDIR_$(4)$(3))) \
|
||||
$$(foreach d,$$($(2)_DEPS$(3)),-Wl,-rpath-link=$$($$(d)_LIBDIR$(3))/$$(LIBDIR_$(4)$(3))) \
|
||||
|
||||
# PKG_CONFIG is intentionally never using CROSS target, as it's missing
|
||||
# wrapper scripts in the toolchain, we use PKG_CONFIG_LIBDIR directly
|
||||
@ -127,9 +127,9 @@ $(2)_ENV$(3) = \
|
||||
WIDL="$$(TARGET_CROSS$(3))-widl" \
|
||||
PKG_CONFIG="$$(TARGET_$(3))-pkg-config" \
|
||||
PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_BINDIR$(3))),,:):$$$$PATH" \
|
||||
LD_LIBRARY_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))),,:)$$$$LD_LIBRARY_PATH" \
|
||||
PKG_CONFIG_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))/pkgconfig))" \
|
||||
PKG_CONFIG_LIBDIR="/usr/lib/$$(PKG_CONFIG_TARGET_$(4)$(3))/pkgconfig:/usr/share/pkgconfig" \
|
||||
LD_LIBRARY_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))/$$(LIBDIR_$(4)$(3))),,:)$$$$LD_LIBRARY_PATH" \
|
||||
PKG_CONFIG_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))/$$(LIBDIR_$(4)$(3))/pkgconfig))" \
|
||||
PKG_CONFIG_LIBDIR="/usr/lib/$$(LIBDIR_$(4)$(3))/pkgconfig:/usr/share/pkgconfig" \
|
||||
CFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
|
||||
CPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
|
||||
CXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \
|
||||
@ -154,7 +154,7 @@ $(2)_ENV$(3) += \
|
||||
CROSSCPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
|
||||
CROSSCXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \
|
||||
CROSSLDFLAGS="$$($(2)_LIBFLAGS$(3)) $$($(2)_LDFLAGS$(3)) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \
|
||||
CROSSPKG_CONFIG_LIBDIR="/usr/lib/$$(PKG_CONFIG_TARGET_CROSS$(3))/pkgconfig:/usr/share/pkgconfig" \
|
||||
CROSSPKG_CONFIG_LIBDIR="/usr/lib/$$(LIBDIR_CROSS$(3))/pkgconfig:/usr/share/pkgconfig" \
|
||||
|
||||
endif
|
||||
|
||||
@ -172,10 +172,10 @@ TARGET_64 := x86_64-linux-gnu
|
||||
TARGET_CROSS32 := i686-w64-mingw32
|
||||
TARGET_CROSS64 := x86_64-w64-mingw32
|
||||
|
||||
PKG_CONFIG_TARGET_32 := i386-linux-gnu
|
||||
PKG_CONFIG_TARGET_64 := x86_64-linux-gnu
|
||||
PKG_CONFIG_TARGET_CROSS32 := i386-w64-mingw32
|
||||
PKG_CONFIG_TARGET_CROSS64 := x86_64-w64-mingw32
|
||||
LIBDIR_32 := i386-linux-gnu
|
||||
LIBDIR_64 := x86_64-linux-gnu
|
||||
LIBDIR_CROSS32 := i386-w64-mingw32
|
||||
LIBDIR_CROSS64 := x86_64-w64-mingw32
|
||||
|
||||
LIBDIR_WINE_32 := wine/i386-unix
|
||||
LIBDIR_WINE_64 := wine/x86_64-unix
|
||||
|
@ -16,7 +16,7 @@ $$(OBJ)/.$(1)-configure$(3):
|
||||
--arch=$(CONFIGURE_ARCH$(3)) \
|
||||
--target-os=linux \
|
||||
--prefix="$$($(2)_DST$(3))" \
|
||||
--libdir="$$($(2)_DST$(3))/lib$(subst 32,,$(3))" \
|
||||
--libdir="$$($(2)_LIBDIR$(3))/$$(LIBDIR_$(4)$(3))" \
|
||||
$$($(2)_CONFIGURE_ARGS) \
|
||||
$$($(2)_CONFIGURE_ARGS$(3))
|
||||
|
||||
|
@ -49,7 +49,7 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/meson.build
|
||||
env $$($(2)_ENV$(3)) \
|
||||
meson "$$($(2)_OBJ$(3))" "$$($(2)_SRC)" \
|
||||
--prefix="$$($(2)_DST$(3))" \
|
||||
--libdir="lib$(subst 32,,$(3))" \
|
||||
--libdir="lib/$$(LIBDIR_$(4)$(3))" \
|
||||
--buildtype=plain \
|
||||
$(if $(4),--cross-file="$$($(2)_OBJ$(3))/cross-$(3).txt",) \
|
||||
$$($(2)_MESON_ARGS) \
|
||||
|
57
proton
57
proton
@ -39,7 +39,7 @@ from random import randrange
|
||||
#To enable debug logging, copy "user_settings.sample.py" to "user_settings.py"
|
||||
#and edit it if needed.
|
||||
|
||||
CURRENT_PREFIX_VERSION="10.0-100"
|
||||
CURRENT_PREFIX_VERSION="10.0-101"
|
||||
|
||||
PFX="Proton: "
|
||||
ld_path_var = "LD_LIBRARY_PATH"
|
||||
@ -80,12 +80,15 @@ def file_is_wine_builtin_dll(path):
|
||||
if os.path.islink(path):
|
||||
contents = os.readlink(path)
|
||||
if os.path.dirname(contents).endswith((
|
||||
'/lib/wine',
|
||||
'/lib64/wine',
|
||||
'/lib/wine/fakedlls',
|
||||
'/lib64/wine/fakedlls',
|
||||
'/lib/wine/i386-unix',
|
||||
'/lib/wine/i386-windows',
|
||||
'/lib/wine/x86_64-unix',
|
||||
'/lib/wine/x86_64-windows'
|
||||
# old paths
|
||||
'/lib/wine',
|
||||
'/lib/wine/fakedlls',
|
||||
'/lib64/wine',
|
||||
'/lib64/wine/fakedlls',
|
||||
'/lib64/wine/x86_64-unix',
|
||||
'/lib64/wine/x86_64-windows'
|
||||
)):
|
||||
@ -463,7 +466,6 @@ class Proton:
|
||||
self.dist_dir = self.path("files/")
|
||||
self.bin_dir = self.path("files/bin/")
|
||||
self.lib_dir = self.path("files/lib/")
|
||||
self.lib64_dir = self.path("files/lib64/")
|
||||
self.fonts_dir = self.path("files/share/fonts/")
|
||||
self.media_dir = self.path("files/share/media/")
|
||||
self.wine_fonts_dir = self.path("files/share/wine/fonts/")
|
||||
@ -697,7 +699,9 @@ class CompatData:
|
||||
def pfx_copy(self, src, dst, dll_copy=False):
|
||||
if os.path.islink(src):
|
||||
contents = os.readlink(src)
|
||||
if os.path.dirname(contents).endswith(('/lib/wine/i386-unix', '/lib/wine/i386-windows', '/lib64/wine/x86_64-unix', '/lib64/wine/x86_64-windows')):
|
||||
if os.path.dirname(contents).endswith(('/lib/wine/i386-unix', '/lib/wine/i386-windows', '/lib/wine/x86_64-unix', '/lib/wine/x86_64-windows',
|
||||
# old paths:
|
||||
'/lib64/wine/x86_64-unix', '/lib64/wine/x86_64-windows')):
|
||||
# wine builtin dll
|
||||
# make the destination an absolute symlink
|
||||
contents = os.path.normpath(os.path.join(os.path.dirname(src), contents))
|
||||
@ -910,7 +914,6 @@ class CompatData:
|
||||
CURRENT_PREFIX_VERSION,
|
||||
g_proton.fonts_dir,
|
||||
g_proton.lib_dir,
|
||||
g_proton.lib64_dir,
|
||||
steamdir,
|
||||
getmtimestr(steamdir, 'legacycompat', 'steamclient.dll'),
|
||||
getmtimestr(steamdir, 'legacycompat', 'steamclient64.dll'),
|
||||
@ -970,12 +973,12 @@ class CompatData:
|
||||
makedirs(self.prefix_dir + "/drive_c/vrclient/bin")
|
||||
try_copy(g_proton.lib_dir + "wine/i386-windows/vrclient.dll", "drive_c/vrclient/bin",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib64_dir + "wine/x86_64-windows/vrclient_x64.dll", "drive_c/vrclient/bin",
|
||||
try_copy(g_proton.lib_dir + "wine/x86_64-windows/vrclient_x64.dll", "drive_c/vrclient/bin",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
|
||||
try_copy(g_proton.lib_dir + "wine/dxvk/openvr_api_dxvk.dll", "drive_c/windows/syswow64",
|
||||
try_copy(g_proton.lib_dir + "wine/dxvk/x86_64-windows/openvr_api_dxvk.dll", "drive_c/windows/syswow64",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib64_dir + "wine/dxvk/openvr_api_dxvk.dll", "drive_c/windows/system32",
|
||||
try_copy(g_proton.lib_dir + "wine/dxvk/i386-windows/openvr_api_dxvk.dll", "drive_c/windows/system32",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
|
||||
makedirs(self.prefix_dir + "/drive_c/openxr")
|
||||
@ -983,13 +986,13 @@ class CompatData:
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
|
||||
#copy vkd3d files into place
|
||||
try_copy(g_proton.lib64_dir + "vkd3d/libvkd3d-1.dll", "drive_c/windows/system32",
|
||||
try_copy(g_proton.lib_dir + "vkd3d/x86_64-windows/libvkd3d-1.dll", "drive_c/windows/system32",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib_dir + "vkd3d/libvkd3d-1.dll", "drive_c/windows/syswow64",
|
||||
try_copy(g_proton.lib_dir + "vkd3d/i386-windows/libvkd3d-1.dll", "drive_c/windows/syswow64",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib64_dir + "vkd3d/libvkd3d-shader-1.dll", "drive_c/windows/system32",
|
||||
try_copy(g_proton.lib_dir + "vkd3d/x86_64-windows/libvkd3d-shader-1.dll", "drive_c/windows/system32",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib_dir + "vkd3d/libvkd3d-shader-1.dll", "drive_c/windows/syswow64",
|
||||
try_copy(g_proton.lib_dir + "vkd3d/i386-windows/libvkd3d-shader-1.dll", "drive_c/windows/syswow64",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
|
||||
if use_wined3d:
|
||||
@ -1020,9 +1023,9 @@ class CompatData:
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
|
||||
for f in dxvkfiles:
|
||||
try_copy(g_proton.lib64_dir + "wine/dxvk/" + f + ".dll", "drive_c/windows/system32",
|
||||
try_copy(g_proton.lib_dir + "wine/dxvk/x86_64-windows/" + f + ".dll", "drive_c/windows/system32",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib_dir + "wine/dxvk/" + f + ".dll", "drive_c/windows/syswow64",
|
||||
try_copy(g_proton.lib_dir + "wine/dxvk/i386-windows/" + f + ".dll", "drive_c/windows/syswow64",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
g_session.dlloverrides[f] = "n"
|
||||
|
||||
@ -1030,9 +1033,9 @@ class CompatData:
|
||||
optional = False
|
||||
if f == "d3d12core":
|
||||
optional = True
|
||||
try_copy(g_proton.lib64_dir + "wine/vkd3d-proton/" + f + ".dll", "drive_c/windows/system32",
|
||||
try_copy(g_proton.lib_dir + "wine/vkd3d-proton/x86_64-windows/" + f + ".dll", "drive_c/windows/system32",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True, optional=optional)
|
||||
try_copy(g_proton.lib_dir + "wine/vkd3d-proton/" + f + ".dll", "drive_c/windows/syswow64",
|
||||
try_copy(g_proton.lib_dir + "wine/vkd3d-proton/i386-windows/" + f + ".dll", "drive_c/windows/syswow64",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True, optional=optional)
|
||||
g_session.dlloverrides[f] = "n"
|
||||
|
||||
@ -1040,21 +1043,21 @@ class CompatData:
|
||||
dst = "drive_c/windows/system32/" + f + ".dll"
|
||||
if not file_exists(self.prefix_dir + dst, follow_symlinks=False):
|
||||
tracked_files.write(dst + '\n')
|
||||
self.create_symlink(self.prefix_dir + dst, g_proton.lib64_dir + "icu/" + f + ".dll")
|
||||
self.create_symlink(self.prefix_dir + dst, g_proton.lib_dir + "wine/icu/x86_64-windows/" + f + ".dll")
|
||||
|
||||
dst = "drive_c/windows/syswow64/" + f + ".dll"
|
||||
if not file_exists(self.prefix_dir + dst, follow_symlinks=False):
|
||||
tracked_files.write(dst + '\n')
|
||||
self.create_symlink(self.prefix_dir + dst, g_proton.lib_dir + "icu/" + f + ".dll")
|
||||
self.create_symlink(self.prefix_dir + dst, g_proton.lib_dir + "wine/icu/i386-windows/" + f + ".dll")
|
||||
|
||||
# If the user requested the NVAPI be available, copy it into place.
|
||||
# If they didn't, clean up any stray nvapi DLLs.
|
||||
if use_nvapi:
|
||||
try_copy(g_proton.lib64_dir + "wine/nvapi/nvapi64.dll", "drive_c/windows/system32",
|
||||
try_copy(g_proton.lib_dir + "wine/nvapi/x86_64-windows/nvapi64.dll", "drive_c/windows/system32",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib64_dir + "wine/nvapi/nvofapi64.dll", "drive_c/windows/system32",
|
||||
try_copy(g_proton.lib_dir + "wine/nvapi/x86_64-windows/nvofapi64.dll", "drive_c/windows/system32",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
try_copy(g_proton.lib_dir + "wine/nvapi/nvapi.dll", "drive_c/windows/syswow64",
|
||||
try_copy(g_proton.lib_dir + "wine/nvapi/i386-windows/nvapi.dll", "drive_c/windows/syswow64",
|
||||
prefix=self.prefix_dir, track_file=tracked_files, link_debug=True)
|
||||
g_session.dlloverrides["nvapi64"] = "n"
|
||||
g_session.dlloverrides["nvofapi64"] = "n"
|
||||
@ -1382,11 +1385,11 @@ class Session:
|
||||
# Allow wine to restore this when calling an external app.
|
||||
self.env['ORIG_'+ld_path_var] = os.environ.get(ld_path_var, '')
|
||||
|
||||
prepend_to_env_str(self.env, ld_path_var, g_proton.lib64_dir + ":" + g_proton.lib_dir, ":")
|
||||
prepend_to_env_str(self.env, ld_path_var, g_proton.lib_dir + "x86_64-linux-gnu:" + g_proton.lib_dir + "i386-linux-gnu", ":")
|
||||
|
||||
self.env["WINEDLLPATH"] = g_proton.lib64_dir + "/wine:" + g_proton.lib_dir + "/wine"
|
||||
self.env["WINEDLLPATH"] = g_proton.lib_dir + "wine"
|
||||
|
||||
self.env["GST_PLUGIN_SYSTEM_PATH_1_0"] = g_proton.lib64_dir + "gstreamer-1.0" + ":" + g_proton.lib_dir + "gstreamer-1.0"
|
||||
self.env["GST_PLUGIN_SYSTEM_PATH_1_0"] = g_proton.lib_dir + "x86_64-linux-gnu/gstreamer-1.0" + ":" + g_proton.lib_dir + "i386-linux-gnu/gstreamer-1.0"
|
||||
self.env["WINE_GST_REGISTRY_DIR"] = g_compatdata.path("gstreamer-1.0/")
|
||||
|
||||
if "STEAM_COMPAT_MEDIA_PATH" in os.environ:
|
||||
|
Loading…
x
Reference in New Issue
Block a user