diff --git a/Makefile b/Makefile index a588ef0d..de3ac097 100644 --- a/Makefile +++ b/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 $@ diff --git a/Makefile.in b/Makefile.in index 052b14a5..b0354529 100644 --- a/Makefile.in +++ b/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)) diff --git a/default_pfx.py b/default_pfx.py index e59a51ca..38400944 100755 --- a/default_pfx.py +++ b/default_pfx.py @@ -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 diff --git a/make/rules-autoconf.mk b/make/rules-autoconf.mk index 878640d2..42953708 100644 --- a/make/rules-autoconf.mk +++ b/make/rules-autoconf.mk @@ -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) \ diff --git a/make/rules-cmake.mk b/make/rules-cmake.mk index 520d88ac..34b79a83 100644 --- a/make/rules-cmake.mk +++ b/make/rules-cmake.mk @@ -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) \ diff --git a/make/rules-common.mk b/make/rules-common.mk index 778c64e5..a0310193 100644 --- a/make/rules-common.mk +++ b/make/rules-common.mk @@ -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 diff --git a/make/rules-configure.mk b/make/rules-configure.mk index a2205c1c..f642c567 100644 --- a/make/rules-configure.mk +++ b/make/rules-configure.mk @@ -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)) diff --git a/make/rules-meson.mk b/make/rules-meson.mk index 985f2085..4df174d5 100644 --- a/make/rules-meson.mk +++ b/make/rules-meson.mk @@ -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) \ diff --git a/proton b/proton index 510a40aa..6475f772 100755 --- a/proton +++ b/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: