From 82b173490c9d6ba608129b1b6ec6e643997fb24c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Sun, 12 Jan 2025 11:37:25 +0100 Subject: [PATCH] make: Use prefixes for archs in variables. --- Makefile | 16 +-- Makefile.in | 246 ++++++++++++++++++------------------ make/rules-autoconf.mk | 28 ++-- make/rules-cargo.mk | 25 ++-- make/rules-cmake.mk | 24 ++-- make/rules-common.mk | 184 +++++++++++++-------------- make/rules-configure.mk | 28 ++-- make/rules-makedep.mk | 56 ++++---- make/rules-meson.mk | 48 +++---- make/rules-wine-requests.mk | 16 +-- make/rules-winemaker.mk | 42 +++--- 11 files changed, 354 insertions(+), 359 deletions(-) diff --git a/Makefile b/Makefile index de3ac097..abcc07ac 100644 --- a/Makefile +++ b/Makefile @@ -153,15 +153,15 @@ 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)/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)/lib/wine/x86_64-unix/; \ + cp -f $(BUILD_DIR)/obj-wine-32/dlls/$(module)/$(MODULE_PEFILE) $(BUILD_ROOT)/$(module)/lib/wine/i386-windows/ && \ + cp -f $(BUILD_DIR)/obj-wine-64/dlls/$(module)/$(MODULE_PEFILE) $(BUILD_ROOT)/$(module)/lib/wine/x86_64-windows/ && \ + if [ -e $(BUILD_DIR)/obj-wine-32/dlls/$(module)/$(MODULE_PEFILE).so ]; then \ + cp -f $(BUILD_DIR)/obj-wine-32/dlls/$(module)/$(MODULE_PEFILE).so $(BUILD_ROOT)/$(module)/lib/wine/i386-unix/ && \ + cp -f $(BUILD_DIR)/obj-wine-64/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)/lib/wine/x86_64-unix/; \ + if [ -e $(BUILD_DIR)/obj-wine-32/dlls/$(module)/$(MODULE_SOFILE) ]; then \ + cp -f $(BUILD_DIR)/obj-wine-32/dlls/$(module)/$(MODULE_SOFILE) $(BUILD_ROOT)/$(module)/lib/wine/i386-unix/ && \ + cp -f $(BUILD_DIR)/obj-wine-64/dlls/$(module)/$(MODULE_SOFILE) $(BUILD_ROOT)/$(module)/lib/wine/x86_64-unix/; \ fi any $(CONTAINERGOALS): configure diff --git a/Makefile.in b/Makefile.in index 1a1e0858..1317b7ab 100644 --- a/Makefile.in +++ b/Makefile.in @@ -57,8 +57,8 @@ OPTIMIZE_FLAGS := -O2 -march=nocona -mtune=core-avx2 -mfpmath=sse SANITY_FLAGS := -fwrapv -fno-strict-aliasing DEBUG_FLAGS := -ggdb -ffunction-sections -fdata-sections -fno-omit-frame-pointer COMMON_FLAGS = $(DEBUG_FLAGS) $(OPTIMIZE_FLAGS) $(SANITY_FLAGS) -ffile-prefix-map=$(CCACHE_BASEDIR)=. -COMMON_FLAGS32 := -mstackrealign -COMMON_FLAGS64 := -mcmodel=small +32_COMMON_FLAGS := -mstackrealign +64_COMMON_FLAGS := -mcmodel=small ifneq ($(SUPPRESS_WARNINGS),) COMMON_FLAGS += -w @@ -74,8 +74,8 @@ $(DST_DIR): mkdir -p $@ ifeq ($(CONTAINER),1) # inside the container -BASE_SOURCE_DATE_EPOCH32 := $(BASE_SOURCE_DATE_EPOCH) -BASE_SOURCE_DATE_EPOCH64 := $(shell expr $(BASE_SOURCE_DATE_EPOCH) - 10) +32_SOURCE_DATE_EPOCH := $(BASE_SOURCE_DATE_EPOCH) +64_SOURCE_DATE_EPOCH := $(shell expr $(BASE_SOURCE_DATE_EPOCH) - 10) # all, all-dist and dist are basically synonyms .PHONY: all all-dist dist @@ -245,9 +245,9 @@ $(eval $(call rules-configure,ffmpeg,32)) $(eval $(call rules-configure,ffmpeg,64)) ## Only use ffmpeg to build gst-libav; we don't ship it. -$(OBJ)/.ffmpeg-dist32: +$(OBJ)/.ffmpeg-32-dist: touch $@ -$(OBJ)/.ffmpeg-dist64: +$(OBJ)/.ffmpeg-64-dist: touch $@ ## @@ -274,14 +274,14 @@ $(eval $(call rules-source,gst_plugins_rs,$(SRCDIR)/gst-plugins-rs)) $(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)/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/ +$(OBJ)/.gst_plugins_rs-64-post-build: + mkdir -p $(GST_PLUGINS_RS_64_DST)/lib/x86_64-linux-gnu/gstreamer-1.0/ + cp -a $(GST_PLUGINS_RS_64_OBJ)/x86_64-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_64_DST)/lib/x86_64-linux-gnu/gstreamer-1.0/ touch $@ -$(OBJ)/.gst_plugins_rs-post-build32: - 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/ +$(OBJ)/.gst_plugins_rs-32-post-build: + mkdir -p $(GST_PLUGINS_RS_32_DST)/lib/i386-linux-gnu/gstreamer-1.0/ + cp -a $(GST_PLUGINS_RS_32_OBJ)/i686-unknown-linux-gnu/release/libgstdav1d.so $(GST_PLUGINS_RS_32_DST)/lib/i386-linux-gnu/gstreamer-1.0/ touch $@ @@ -347,13 +347,13 @@ WINEOPENXR_DEPENDS = wine openxr $(eval $(call rules-source,wineopenxr,$(SRCDIR)/wineopenxr)) $(eval $(call rules-makedep,wineopenxr,64,CROSS)) -DIST_WINEOPENXR_JSON64 := $(DIST_PREFIX)/drive_c/openxr/wineopenxr64.json +DIST_WINEOPENXR64_JSON := $(DIST_PREFIX)/drive_c/openxr/wineopenxr64.json $(WINEOPENXR_SRC)/wineopenxr64.json: wineopenxr -$(DIST_WINEOPENXR_JSON64): $(WINEOPENXR_SRC)/wineopenxr64.json default_pfx +$(DIST_WINEOPENXR64_JSON): $(WINEOPENXR_SRC)/wineopenxr64.json default_pfx mkdir -p $(dir $@) cp -a $< $@ -all-dist: $(DIST_WINEOPENXR_JSON64) +all-dist: $(DIST_WINEOPENXR64_JSON) ## @@ -392,11 +392,11 @@ $(OBJ)/.steamexe-post-build64: $(eval $(call rules-source,piper,$(SRCDIR)/piper)) $(eval $(call rules-cmake,piper,64)) -$(OBJ)/.piper-post-build64: - mkdir -p $(PIPER_DST64)/lib/$(TARGET_64) - mv $(PIPER_DST64)/*.so* $(PIPER_DST64)/lib/$(TARGET_64) +$(OBJ)/.piper-64-post-build: + mkdir -p $(PIPER_64_DST)/lib/$(64_TARGET) + mv $(PIPER_64_DST)/*.so* $(PIPER_64_DST)/lib/$(64_TARGET) mkdir -p $(DST_DIR)/share - cp -a $(PIPER_DST64)/{espeak-ng-data,libtashkeel_model.ort} $(DST_DIR)/share/ + cp -a $(PIPER_64_DST)/{espeak-ng-data,libtashkeel_model.ort} $(DST_DIR)/share/ touch $@ ## @@ -427,19 +427,19 @@ WINE_AUTOCONF_ARGS = \ --with-mingw \ --disable-tests -WINE_AUTOCONF_ARGS32 = \ - VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_DST32)/include -I$(VKD3D_DST32)/include/vkd3d" \ - VKD3D_PE_LIBS="-L$(VKD3D_LIBDIR32)/vkd3d/i386-windows -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll" +WINE_32_AUTOCONF_ARGS = \ + VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_32_DST)/include -I$(VKD3D_32_DST)/include/vkd3d" \ + VKD3D_PE_LIBS="-L$(VKD3D_32_LIBDIR)/vkd3d/i386-windows -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll" -WINE_AUTOCONF_ARGS64 = --enable-win64 \ - VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_DST64)/include -I$(VKD3D_DST64)/include/vkd3d" \ - VKD3D_PE_LIBS="-L$(VKD3D_LIBDIR64)/vkd3d/x86_64-windows -l:libvkd3d-1.dll -l:libvkd3d-shader-1.dll" +WINE_64_AUTOCONF_ARGS = --enable-win64 \ + VKD3D_PE_CFLAGS="-I$(VULKAN_HEADERS_64_DST)/include -I$(VKD3D_64_DST)/include/vkd3d" \ + VKD3D_PE_LIBS="-L$(VKD3D_64_LIBDIR)/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_64_DEPENDS = piper -WINE_LIBDIR32 = $(WINE_DST32)/lib -WINE_LIBDIR64 = $(WINE_DST64)/lib +WINE_32_LIBDIR = $(WINE_32_DST)/lib +WINE_64_LIBDIR = $(WINE_64_DST)/lib $(eval $(call rules-source,wine,$(SRCDIR)/wine)) $(eval $(call rules-autoconf,wine,32)) @@ -451,19 +451,19 @@ $(OBJ)/.wine-post-source: -cd $(WINE_SRC) && tools/make_specfiles touch $@ -$(OBJ)/.wine-post-build64: +$(OBJ)/.wine-64-post-build: mkdir -p $(DST_DIR)/{bin,share} - $(call install-strip,$(WINE_DST64)/bin/wine64,$(DST_DIR)/bin) - $(call install-strip,$(WINE_DST64)/bin/wine64-preloader,$(DST_DIR)/bin) - $(call install-strip,$(WINE_DST64)/bin/wineserver,$(DST_DIR)/bin) - cp -a $(WINE_DST64)/share/wine $(DST_DIR)/share - cp -a $(WINE_DST64)/bin/msidb $(DST_DIR)/bin + $(call install-strip,$(WINE_64_DST)/bin/wine64,$(DST_DIR)/bin) + $(call install-strip,$(WINE_64_DST)/bin/wine64-preloader,$(DST_DIR)/bin) + $(call install-strip,$(WINE_64_DST)/bin/wineserver,$(DST_DIR)/bin) + cp -a $(WINE_64_DST)/share/wine $(DST_DIR)/share + cp -a $(WINE_64_DST)/bin/msidb $(DST_DIR)/bin touch $@ -$(OBJ)/.wine-post-build32: +$(OBJ)/.wine-32-post-build: mkdir -p $(DST_DIR)/bin - $(call install-strip,$(WINE_DST32)/bin/wine,$(DST_DIR)/bin) - $(call install-strip,$(WINE_DST32)/bin/wine-preloader,$(DST_DIR)/bin) + $(call install-strip,$(WINE_32_DST)/bin/wine,$(DST_DIR)/bin) + $(call install-strip,$(WINE_32_DST)/bin/wine-preloader,$(DST_DIR)/bin) touch $@ @@ -484,14 +484,14 @@ $(eval $(call rules-makedep,vrclient,64,CROSS)) ## # wine builds DLLs with the same names, we need to differentiate the timestamps -DXVK_SOURCE_DATE_EPOCH32 := $(shell expr $(BASE_SOURCE_DATE_EPOCH32) - 1) -DXVK_SOURCE_DATE_EPOCH64 := $(shell expr $(BASE_SOURCE_DATE_EPOCH64) - 1) +DXVK_32_SOURCE_DATE_EPOCH := $(shell expr $(32_SOURCE_DATE_EPOCH) - 1) +DXVK_64_SOURCE_DATE_EPOCH := $(shell expr $(64_SOURCE_DATE_EPOCH) - 1) DXVK_SOURCE_ARGS = \ --exclude version.h.in \ -DXVK_MESON_ARGS32 = --bindir=$(DXVK_DST32)/lib/wine/dxvk/i386-windows -DXVK_MESON_ARGS64 = --bindir=$(DXVK_DST64)/lib/wine/dxvk/x86_64-windows +DXVK_32_MESON_ARGS = --bindir=$(DXVK_32_DST)/lib/wine/dxvk/i386-windows +DXVK_64_MESON_ARGS = --bindir=$(DXVK_64_DST)/lib/wine/dxvk/x86_64-windows DXVK_DEPENDS = glslang $(eval $(call rules-source,dxvk,$(SRCDIR)/dxvk)) @@ -511,8 +511,8 @@ $(OBJ)/.dxvk-post-source: ## dxvk-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 +DXVK_NVAPI_32_MESON_ARGS = --bindir=$(DXVK_NVAPI_32_DST)/lib/wine/nvapi/i386-windows +DXVK_NVAPI_64_MESON_ARGS = --bindir=$(DXVK_NVAPI_64_DST)/lib/wine/nvapi/x86_64-windows $(eval $(call rules-source,dxvk-nvapi,$(SRCDIR)/dxvk-nvapi)) $(eval $(call rules-meson,dxvk-nvapi,32,CROSS)) @@ -556,23 +556,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 +VKD3D_32_LIBDIR = $(VKD3D_32_DST)/lib +VKD3D_64_LIBDIR = $(VKD3D_64_DST)/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/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 +$(OBJ)/.vkd3d-64-post-build: + mkdir -p $(VKD3D_64_LIBDIR)/vkd3d/x86_64-windows + mv $(VKD3D_64_DST)/bin/libvkd3d-1.dll $(VKD3D_64_LIBDIR)/vkd3d/x86_64-windows + mv $(VKD3D_64_DST)/bin/libvkd3d-shader-1.dll $(VKD3D_64_LIBDIR)/vkd3d/x86_64-windows touch $@ -$(OBJ)/.vkd3d-post-build32: - 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 +$(OBJ)/.vkd3d-32-post-build: + mkdir -p $(VKD3D_32_LIBDIR)/vkd3d/i386-windows + mv $(VKD3D_32_DST)/bin/libvkd3d-1.dll $(VKD3D_32_LIBDIR)/vkd3d/i386-windows + mv $(VKD3D_32_DST)/bin/libvkd3d-shader-1.dll $(VKD3D_32_LIBDIR)/vkd3d/i386-windows touch $@ ## @@ -580,15 +580,15 @@ $(OBJ)/.vkd3d-post-build32: ## # wine builds DLLs with the same names, we need to differentiate the timestamps -VKD3D_PROTON_SOURCE_DATE_EPOCH32 := $(shell expr $(BASE_SOURCE_DATE_EPOCH32) - 2) -VKD3D_PROTON_SOURCE_DATE_EPOCH64 := $(shell expr $(BASE_SOURCE_DATE_EPOCH64) - 2) +VKD3D_PROTON_32_SOURCE_DATE_EPOCH := $(shell expr $(32_SOURCE_DATE_EPOCH) - 2) +VKD3D_PROTON_64_SOURCE_DATE_EPOCH := $(shell expr $(64_SOURCE_DATE_EPOCH) - 2) 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/i386-windows -VKD3D_PROTON_MESON_ARGS64 = --bindir=$(VKD3D_PROTON_DST64)/lib/wine/vkd3d-proton/x86_64-windows +VKD3D_PROTON_32_MESON_ARGS = --bindir=$(VKD3D_PROTON_32_DST)/lib/wine/vkd3d-proton/i386-windows +VKD3D_PROTON_64_MESON_ARGS = --bindir=$(VKD3D_PROTON_64_DST)/lib/wine/vkd3d-proton/x86_64-windows VKD3D_PROTON_DEPENDS = glslang ifneq ($(UNSTRIPPED_BUILD),) @@ -625,20 +625,20 @@ $(eval $(call rules-winemaker,battleye,32,beclient.dll)) $(eval $(call rules-winemaker,battleye,64,beclient_x64.dll)) $(OBJ)/.battleye-post-source: - mkdir -p $(BATTLEYE_OBJ32) && cp -a $(BATTLEYE_SRC)/beclient.spec $(BATTLEYE_OBJ32)/beclient.spec - mkdir -p $(BATTLEYE_OBJ64) && cp -a $(BATTLEYE_SRC)/beclient.spec $(BATTLEYE_OBJ64)/beclient_x64.spec + mkdir -p $(BATTLEYE_32_OBJ) && cp -a $(BATTLEYE_SRC)/beclient.spec $(BATTLEYE_32_OBJ)/beclient.spec + mkdir -p $(BATTLEYE_64_OBJ) && cp -a $(BATTLEYE_SRC)/beclient.spec $(BATTLEYE_64_OBJ)/beclient_x64.spec touch $@ -$(OBJ)/.battleye-post-build64: +$(OBJ)/.battleye-64-post-build: mkdir -p $(OBJ)/dist-battleye/v1 - cp -r $(BATTLEYE_DST64)/* $(OBJ)/dist-battleye/v1/ - rm -rf $(BATTLEYE_DST64)/* + cp -r $(BATTLEYE_64_DST)/* $(OBJ)/dist-battleye/v1/ + rm -rf $(BATTLEYE_64_DST)/* touch $@ -$(OBJ)/.battleye-post-build32: +$(OBJ)/.battleye-32-post-build: mkdir -p $(OBJ)/dist-battleye/v1 - cp -r $(BATTLEYE_DST32)/* $(OBJ)/dist-battleye/v1/ - rm -rf $(BATTLEYE_DST32)/* + cp -r $(BATTLEYE_32_DST)/* $(OBJ)/dist-battleye/v1/ + rm -rf $(BATTLEYE_32_DST)/* touch $@ endif @@ -656,26 +656,26 @@ $(eval $(call create-rules-common,eac,EAC,64)) $(eval $(call create-rules-common,eac,EAC,32)) -$(OBJ)/.eac-build64: +$(OBJ)/.eac-64-build: @echo ":: building 64bit eac..." >&2 - 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" + rsync -arx "$(EAC_SRC)/" "$(EAC_64_OBJ)/" + env $(EAC_64_ENV) \ + $(MAKE) -C "$(EAC_64_OBJ)" WINE_OBJ="$(WINE_64_OBJ)" HOST="x86_64-w64-mingw32" CROSSCXX="x86_64-w64-mingw32-g++" BIT="64" 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) + $(call install-strip,$(EAC_64_OBJ)/easyanticheat.so,$(OBJ)/dist-eac/v2/lib/x86_64-linux-gnu) + $(call install-strip,$(EAC_64_OBJ)/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: +$(OBJ)/.eac-32-build: @echo ":: building 32bit eac..." >&2 - rsync -arx "$(EAC_SRC)/" "$(EAC_OBJ32)/" - env $(EAC_ENV32) \ - $(MAKE) -C "$(EAC_OBJ32)" WINE_OBJ="$(WINE_OBJ32)" HOST="i686-w64-mingw32" CROSSCXX="i686-w64-mingw32-g++" BIT="32" + rsync -arx "$(EAC_SRC)/" "$(EAC_32_OBJ)/" + env $(EAC_32_ENV) \ + $(MAKE) -C "$(EAC_32_OBJ)" WINE_OBJ="$(WINE_32_OBJ)" HOST="i686-w64-mingw32" CROSSCXX="i686-w64-mingw32-g++" BIT="32" mkdir -p $(OBJ)/dist-eac/v2/lib32 - $(call install-strip,$(EAC_OBJ32)/easyanticheat.so,$(OBJ)/dist-eac/v2/lib32) - $(call install-strip,$(EAC_OBJ32)/easyanticheat.dll,$(OBJ)/dist-eac/v2/lib32) + $(call install-strip,$(EAC_32_OBJ)/easyanticheat.so,$(OBJ)/dist-eac/v2/lib32) + $(call install-strip,$(EAC_32_OBJ)/easyanticheat.dll,$(OBJ)/dist-eac/v2/lib32) mv $(OBJ)/dist-eac/v2/lib32/easyanticheat.so $(OBJ)/dist-eac/v2/lib32/easyanticheat_x86.so mv $(OBJ)/dist-eac/v2/lib32/easyanticheat.dll $(OBJ)/dist-eac/v2/lib32/easyanticheat_x86.dll touch $@ @@ -691,16 +691,16 @@ SYMSTORE_DEPENDS = wine $(eval $(call rules-source,symstore,$(SRCDIR)/symstore)) $(eval $(call create-rules-common,symstore,SYMSTORE,64)) -$(OBJ)/.symstore-build64: +$(OBJ)/.symstore-64-build: @echo ":: building symstore helper..." >&2 - rsync -arx "$(SYMSTORE_SRC)/" "$(SYMSTORE_OBJ64)/" - $(MAKE) -C "$(SYMSTORE_OBJ64)" SYMSTORE_CFLAGS="-I$(WINE_SRC)/include -I$(WINE_OBJ64)/include" + rsync -arx "$(SYMSTORE_SRC)/" "$(SYMSTORE_64_OBJ)/" + $(MAKE) -C "$(SYMSTORE_64_OBJ)" SYMSTORE_CFLAGS="-I$(WINE_SRC)/include -I$(WINE_64_OBJ)/include" touch $@ .PHONY: symstore-tarball symstore-tarball: mkdir -p $(OBJ)/symstore/$(BUILD_NAME) - $(SYMSTORE_OBJ64)/symstore --skip-managed $(DST_BASE) $(OBJ)/symstore/$(BUILD_NAME) + $(SYMSTORE_64_OBJ)/symstore --skip-managed $(DST_BASE) $(OBJ)/symstore/$(BUILD_NAME) cd $(OBJ)/symstore/$(BUILD_NAME) && zip -r ../$(BUILD_NAME)-symstore.zip . >& /dev/null ## @@ -929,35 +929,33 @@ all-dist: $(DIST_FONTS) ## GECKO_VER := 2.47.4 -GECKO32_TARBALL := wine-gecko-$(GECKO_VER)-x86.tar.xz -GECKO64_TARBALL := wine-gecko-$(GECKO_VER)-x86_64.tar.xz -GECKO64_TARBALL_URL := https://dl.winehq.org/wine/wine-gecko/$(GECKO_VER)/$(GECKO64_TARBALL) -GECKO32_TARBALL_URL := https://dl.winehq.org/wine/wine-gecko/$(GECKO_VER)/$(GECKO32_TARBALL) -DIST_GECKO_DIR := $(DST_DIR)/share/wine/gecko -DIST_GECKO32 := $(OBJ)/.gecko-dist32 -DIST_GECKO64 := $(OBJ)/.gecko-dist64 +GECKO_32_TARBALL := wine-gecko-$(GECKO_VER)-x86.tar.xz +GECKO_64_TARBALL := wine-gecko-$(GECKO_VER)-x86_64.tar.xz +GECKO_64_TARBALL_URL := https://dl.winehq.org/wine/wine-gecko/$(GECKO_VER)/$(GECKO_64_TARBALL) +GECKO_32_TARBALL_URL := https://dl.winehq.org/wine/wine-gecko/$(GECKO_VER)/$(GECKO_32_TARBALL) +GECKO_DST := $(DST_DIR)/share/wine/gecko -$(SRC)/contrib/$(GECKO64_TARBALL): +$(SRC)/contrib/$(GECKO_64_TARBALL): mkdir -p $(dir $@) - wget --no-use-server-timestamps -O $@ $(GECKO64_TARBALL_URL) || (rm $@; false) + wget --no-use-server-timestamps -O $@ $(GECKO_64_TARBALL_URL) || (rm $@; false) -$(SRC)/contrib/$(GECKO32_TARBALL): +$(SRC)/contrib/$(GECKO_32_TARBALL): mkdir -p $(dir $@) - wget --no-use-server-timestamps -O $@ $(GECKO32_TARBALL_URL) || (rm $@; false) + wget --no-use-server-timestamps -O $@ $(GECKO_32_TARBALL_URL) || (rm $@; false) -$(DIST_GECKO32): $(SRC)/contrib/$(GECKO32_TARBALL) - mkdir -p $(DIST_GECKO_DIR) - rm -rf $(DIST_GECKO_DIR)/wine-gecko-$(GECKO_VER)-x86 - tar --no-same-owner -xf $< -C $(DIST_GECKO_DIR) +$(OBJ)/.gecko-32-dist: $(SRC)/contrib/$(GECKO_32_TARBALL) + mkdir -p $(GECKO_DST) + rm -rf $(GECKO_DST)/wine-gecko-$(GECKO_VER)-x86 + tar --no-same-owner -xf $< -C $(GECKO_DST) touch $@ -$(DIST_GECKO64): $(SRC)/contrib/$(GECKO64_TARBALL) - mkdir -p $(DIST_GECKO_DIR) - rm -rf $(DIST_GECKO_DIR)/wine-gecko-$(GECKO_VER)-x86_64 - tar --no-same-owner -xf $< -C $(DIST_GECKO_DIR) +$(OBJ)/.gecko-64-dist: $(SRC)/contrib/$(GECKO_64_TARBALL) + mkdir -p $(GECKO_DST) + rm -rf $(GECKO_DST)/wine-gecko-$(GECKO_VER)-x86_64 + tar --no-same-owner -xf $< -C $(GECKO_DST) touch $@ -all-dist: $(DIST_GECKO32) $(DIST_GECKO64) +all-dist: $(OBJ)/.gecko-32-dist $(OBJ)/.gecko-64-dist ## @@ -1011,43 +1009,41 @@ all-dist: $(DIST_XALIA) ## ICU_VER := 6.8.2 -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_LIBDIR)/wine/icu/i386-windows -DIST_ICU32 := $(OBJ)/.icu-dist32 -ICU32_TARBALL := icu-$(ICU_VER)-x86.tar.xz +ICU_64_DIST_DIR := $(DST_LIBDIR)/wine/icu/x86_64-windows +ICU_64_TARBALL := icu-$(ICU_VER)-x86_64.tar.xz +ICU_32_DIST_DIR := $(DST_LIBDIR)/wine/icu/i386-windows +ICU_32_TARBALL := icu-$(ICU_VER)-x86.tar.xz -$(DIST_ICU64): $(SRC)/icu/$(ICU64_TARBALL) - mkdir -p $(DIST_ICU64_DIR) - rm -rf $(DIST_ICU64_DIR)/*.dll - tar --no-same-owner -xf $< -C $(DIST_ICU64_DIR) +$(OBJ)/.icu-64-dist: $(SRC)/icu/$(ICU_64_TARBALL) + mkdir -p $(ICU_64_DIST_DIR) + rm -rf $(ICU_64_DIST_DIR)/*.dll + tar --no-same-owner -xf $< -C $(ICU_64_DIST_DIR) touch $@ -$(DIST_ICU32): $(SRC)/icu/$(ICU32_TARBALL) - mkdir -p $(DIST_ICU32_DIR) - rm -rf $(DIST_ICU32_DIR)/*.dll - tar --no-same-owner -xf $< -C $(DIST_ICU32_DIR) +$(OBJ)/.icu-32-dist: $(SRC)/icu/$(ICU_32_TARBALL) + mkdir -p $(ICU_32_DIST_DIR) + rm -rf $(ICU_32_DIST_DIR)/*.dll + tar --no-same-owner -xf $< -C $(ICU_32_DIST_DIR) touch $@ -all-dist: $(DIST_ICU64) $(DIST_ICU32) +all-dist: $(OBJ)/.icu-64-dist $(OBJ)/.icu-32-dist ## ## openvr ## -DIST_OVR32 := $(DST_LIBDIR)/wine/dxvk/i386-windows/openvr_api_dxvk.dll -$(DIST_OVR32): $(SRCDIR)/openvr/bin/win32/openvr_api.dll | $(DST_DIR) +OVR_32_DIST := $(DST_LIBDIR)/wine/dxvk/i386-windows/openvr_api_dxvk.dll +$(OVR_32_DIST): $(SRCDIR)/openvr/bin/win32/openvr_api.dll | $(DST_DIR) mkdir -p $(DST_LIBDIR)/wine/dxvk/i386-windows cp -af $< $@ -DIST_OVR64 := $(DST_LIBDIR)/wine/dxvk/x86_64-windows/openvr_api_dxvk.dll -$(DIST_OVR64): $(SRCDIR)/openvr/bin/win64/openvr_api.dll | $(DST_DIR) +OVR_64_DIST := $(DST_LIBDIR)/wine/dxvk/x86_64-windows/openvr_api_dxvk.dll +$(OVR_64_DIST): $(SRCDIR)/openvr/bin/win64/openvr_api.dll | $(DST_DIR) mkdir -p $(DST_LIBDIR)/wine/dxvk/x86_64-windows cp -af $< $@ -all-dist: $(DIST_OVR32) $(DIST_OVR64) +all-dist: $(OVR_32_DIST) $(OVR_64_DIST) ## @@ -1167,11 +1163,11 @@ redist: all .PHONY: module32 module64 module -module32: | all-source wine-configure32 - +$(BEAR) $(MAKE) -j$(J) $(filter -j%,$(MAKEFLAGS)) $(MFLAGS) $(MAKEOVERRIDES) -C $(WINE_OBJ32)/dlls/$(module) +module32: | all-source wine-32-configure + +$(BEAR) $(MAKE) -j$(J) $(filter -j%,$(MAKEFLAGS)) $(MFLAGS) $(MAKEOVERRIDES) -C $(WINE_32_OBJ)/dlls/$(module) -module64: | all-source wine-configure64 - +$(BEAR) $(MAKE) -j$(J) $(filter -j%,$(MAKEFLAGS)) $(MFLAGS) $(MAKEOVERRIDES) -C $(WINE_OBJ64)/dlls/$(module) +module64: | all-source wine-64-configure + +$(BEAR) $(MAKE) -j$(J) $(filter -j%,$(MAKEFLAGS)) $(MFLAGS) $(MAKEOVERRIDES) -C $(WINE_64_OBJ)/dlls/$(module) module: | all-source wine-configure module: module32 module64 diff --git a/make/rules-autoconf.mk b/make/rules-autoconf.mk index 261daa57..a8e8f3d4 100644 --- a/make/rules-autoconf.mk +++ b/make/rules-autoconf.mk @@ -11,27 +11,27 @@ $$($(2)_SRC)/configure: $$($(2)_ORIGIN)/configure.ac | $$(OBJ)/.$(1)-post-source @echo ":: autoreconfing $(1)..." >&2 cd "$$($(2)_SRC)" && autoreconf -fiv -$$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/configure - @echo ":: configuring $(3)bit $(1)..." >&2 - rm -rf "$$($(2)_OBJ$(3))/config.cache" +$$(OBJ)/.$(1)-$(3)-configure: $$($(2)_SRC)/configure + @echo ":: configuring $(1)-$(3)..." >&2 + rm -rf "$$($(2)_$(3)_OBJ)/config.cache" - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$($(2)_SRC)/configure $(--quiet?) -C \ - --prefix="$$($(2)_DST$(3))" \ - --libdir="$$($(2)_DST$(3))/lib" \ - --host="$$(TARGET_$(4)$(3))" \ - $$($(2)_ENV$(3)) \ - $$(AUTOCONF_ARGS_$(3)) \ + --prefix="$$($(2)_$(3)_DST)" \ + --libdir="$$($(2)_$(3)_DST)/lib" \ + --host="$$($(4)$(3)_TARGET)" \ + $$($(2)_$(3)_ENV) \ + $$($(3)_AUTOCONF_ARGS) \ $$($(2)_AUTOCONF_ARGS) \ - $$($(2)_AUTOCONF_ARGS$(3)) \ + $$($(2)_$(3)_AUTOCONF_ARGS) touch $$@ -$$(OBJ)/.$(1)-build$(3): - @echo ":: building $(3)bit $(1)..." >&2 - +cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ +$$(OBJ)/.$(1)-$(3)-build: + @echo ":: building $(1)-$(3)..." >&2 + +cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(BEAR) $$(MAKE) - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(MAKE) install touch $$@ endef diff --git a/make/rules-cargo.mk b/make/rules-cargo.mk index 1a9825fb..fb9f3ac2 100644 --- a/make/rules-cargo.mk +++ b/make/rules-cargo.mk @@ -6,27 +6,26 @@ define create-rules-cargo $(call create-rules-common,$(1),$(2),$(3)) -$$(OBJ)/.$(1)-configure$(3): - @echo ":: configuring $(3)bit $(1)..." >&2 +$$(OBJ)/.$(1)-$(3)-configure: + @echo ":: configuring $(1)-$(3)..." >&2 touch $$@ -$$(OBJ)/.$(1)-build$(3): - @echo ":: building $(3)bit $(1)..." >&2 - cd $$($(2)_SRC) && env $$($(2)_ENV$(3)) \ +$$(OBJ)/.$(1)-$(3)-build: + @echo ":: building $(1)-$(3)..." >&2 + cd $$($(2)_SRC) && env $$($(2)_$(3)_ENV) \ cargo build $(--quiet?) --release \ $$(filter -j%,$$(MAKEFLAGS)) \ - --target-dir $$($(2)_OBJ$(3)) \ - $$(CARGO_ARGS_$(3)) \ + --target-dir $$($(2)_$(3)_OBJ) \ + $$($(3)_CARGO_ARGS) \ $$($(2)_CARGO_ARGS) \ - $$($(2)_CARGO_ARGS$(3)) \ - + $$($(2)_$(3)_CARGO_ARGS) touch $$@ endef rules-cargo = $(call create-rules-cargo,$(1),$(call toupper,$(1)),$(2)) -CARGO_TARGET_32 := i686-unknown-linux-gnu -CARGO_TARGET_64 := x86_64-unknown-linux-gnu +32_CARGO_TARGET := i686-unknown-linux-gnu +64_CARGO_TARGET := x86_64-unknown-linux-gnu -CARGO_ARGS_32 := --target $(CARGO_TARGET_32) -CARGO_ARGS_64 := --target $(CARGO_TARGET_64) +32_CARGO_ARGS := --target $(32_CARGO_TARGET) +64_CARGO_ARGS := --target $(64_CARGO_TARGET) diff --git a/make/rules-cmake.mk b/make/rules-cmake.mk index 1997e8bf..f1a3b1f7 100644 --- a/make/rules-cmake.mk +++ b/make/rules-cmake.mk @@ -8,29 +8,29 @@ define create-rules-cmake $(call create-rules-common,$(1),$(2),$(3),$(4)) $$($(2)_SRC)/CMakeLists.txt: | $$(OBJ)/.$(1)-post-source -$$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/CMakeLists.txt - @echo ":: configuring $(3)bit $(1)..." >&2 - rm -rf "$$($(2)_OBJ$(3))/CMakeCache.txt" +$$(OBJ)/.$(1)-$(3)-configure: $$($(2)_SRC)/CMakeLists.txt + @echo ":: configuring $(1)-$(3)..." >&2 + rm -rf "$$($(2)_$(3)_OBJ)/CMakeCache.txt" - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ cmake "$$($(2)_SRC)" \ - -DCMAKE_INSTALL_PREFIX="$$($(2)_DST$(3))" \ - -DCMAKE_INSTALL_LIBDIR="lib/$$(LIBDIR_$(4)$(3))" \ + -DCMAKE_INSTALL_PREFIX="$$($(2)_$(3)_DST)" \ + -DCMAKE_INSTALL_LIBDIR="lib/$$($(4)$(3)_LIBDIR)" \ -DCMAKE_BUILD_TYPE=plain \ -DCMAKE_SYSTEM_NAME=$(if $(4),Windows,) \ -DCMAKE_SHARED_LIBRARY_PREFIX_C=$(if $(4),,lib) \ -DCMAKE_IMPORT_LIBRARY_PREFIX_C=$(if $(4),,lib) \ - $$(CMAKE_ARGS_$(3)) \ + $$($(3)_CMAKE_ARGS) \ $$($(2)_CMAKE_ARGS) \ - $$($(2)_CMAKE_ARGS$(3)) \ + $$($(2)_$(3)_CMAKE_ARGS) touch $$@ -$$(OBJ)/.$(1)-build$(3): - @echo ":: building $(3)bit $(1)..." >&2 - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ +$$(OBJ)/.$(1)-$(3)-build: + @echo ":: building $(1)-$(3)..." >&2 + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(MAKE) - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(MAKE) install touch $$@ endef diff --git a/make/rules-common.mk b/make/rules-common.mk index c057c84b..7c4763e9 100644 --- a/make/rules-common.mk +++ b/make/rules-common.mk @@ -4,98 +4,98 @@ # $(3): 32/64, build type # $(4): CROSS/, cross compile define create-rules-common -$(2)_OBJ$(3) := $$(OBJ)/obj-$(1)$(3) -$(2)_DST$(3) := $$(OBJ)/dst-$(1)$(3) -$(2)_DEPS$(3) := $$(call toupper,$$($(2)_DEPENDS)) $$(call toupper,$$($(2)_DEPENDS$(3))) +$(2)_$(3)_OBJ := $$(OBJ)/obj-$(1)-$(3) +$(2)_$(3)_DST := $$(OBJ)/dst-$(1)-$(3) +$(2)_$(3)_DEPS := $$(call toupper,$$($(2)_DEPENDS)) $$(call toupper,$$($(2)_$(3)_DEPENDS)) -$(2)_BINDIR$(3) ?= $$($(2)_DST$(3))/bin -$(2)_LIBDIR$(3) ?= $$($(2)_DST$(3))/lib -$(2)_INCDIR$(3) ?= $$($(2)_DST$(3))/include +$(2)_$(3)_BINDIR ?= $$($(2)_$(3)_DST)/bin +$(2)_$(3)_LIBDIR ?= $$($(2)_$(3)_DST)/lib +$(2)_$(3)_INCDIR ?= $$($(2)_$(3)_DST)/include -$$(OBJ)/.$(1)-configure$(3): $$(shell mkdir -p $$($(2)_OBJ$(3))) -$$(OBJ)/.$(1)-configure$(3): CCACHE_BASEDIR = $$($(2)_SRC) -$$(OBJ)/.$(1)-configure$(3): $$(patsubst %,%-build$(3),$$($(2)_DEPENDS) $$($(2)_DEPENDS$(3))) -$$(OBJ)/.$(1)-configure$(3): | $$(OBJ)/.$(1)-post-source +$$(OBJ)/.$(1)-$(3)-configure: $$(shell mkdir -p $$($(2)_$(3)_OBJ)) +$$(OBJ)/.$(1)-$(3)-configure: CCACHE_BASEDIR = $$($(2)_SRC) +$$(OBJ)/.$(1)-$(3)-configure: $$(patsubst %,%-$(3)-build,$$($(2)_DEPENDS) $$($(2)_$(3)_DEPENDS)) +$$(OBJ)/.$(1)-$(3)-configure: | $$(OBJ)/.$(1)-post-source -$(1)-configure$(3): $$(OBJ)/.$(1)-configure$(3) -.INTERMEDIATE: $(1)-configure$(3) +$(1)-$(3)-configure: $$(OBJ)/.$(1)-$(3)-configure +.INTERMEDIATE: $(1)-$(3)-configure -all-configure$(3) $(1)-configure: $(1)-configure$(3) -.PHONY: all-configure$(3) $(1)-configure +all-$(3)-configure $(1)-configure: $(1)-$(3)-configure +.PHONY: all-$(3)-configure $(1)-configure all-configure: $(1)-configure .PHONY: all-configure -$$(OBJ)/.$(1)-build$(3): CCACHE_BASEDIR = $$($(2)_SRC) -$$(OBJ)/.$(1)-build$(3): $$(OBJ)/.$(1)-source -$$(OBJ)/.$(1)-build$(3): $$(OBJ)/.$(1)-configure$(3) +$$(OBJ)/.$(1)-$(3)-build: CCACHE_BASEDIR = $$($(2)_SRC) +$$(OBJ)/.$(1)-$(3)-build: $$(OBJ)/.$(1)-source +$$(OBJ)/.$(1)-$(3)-build: $$(OBJ)/.$(1)-$(3)-configure -$$(OBJ)/.$(1)-post-build$(3): $$(OBJ)/.$(1)-build$(3) +$$(OBJ)/.$(1)-$(3)-post-build: $$(OBJ)/.$(1)-$(3)-build -$(1)-build$(3): $$(OBJ)/.$(1)-build$(3) -.INTERMEDIATE: $(1)-build$(3) +$(1)-$(3)-build: $$(OBJ)/.$(1)-$(3)-build +.INTERMEDIATE: $(1)-$(3)-build -all-build$(3) $(1)-build: $(1)-build$(3) -.PHONY: all-build$(3) $(1)-build +all-$(3)-build $(1)-build: $(1)-$(3)-build +.PHONY: all-$(3)-build $(1)-build all-build: $(1)-build .PHONY: all-build -$$(OBJ)/.$(1)-dist$(3): $$(OBJ)/.$(1)-build$(3) -$$(OBJ)/.$(1)-dist$(3): $$(OBJ)/.$(1)-post-build$(3) +$$(OBJ)/.$(1)-$(3)-dist: $$(OBJ)/.$(1)-$(3)-build +$$(OBJ)/.$(1)-$(3)-dist: $$(OBJ)/.$(1)-$(3)-post-build -$(2)_SOURCE_DATE_EPOCH$(3) ?= $$(BASE_SOURCE_DATE_EPOCH$(3)) +$(2)_$(3)_SOURCE_DATE_EPOCH ?= $$($(3)_SOURCE_DATE_EPOCH) -$$(OBJ)/.$(1)-dist$(3): - @echo ":: installing $(3)bit $(1)..." >&2 - if [ -f "$$($(2)_OBJ$(3))/compile_commands.json" ]; then \ - 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"; \ +$$(OBJ)/.$(1)-$(3)-dist: + @echo ":: installing $(1)-$(3)..." >&2 + if [ -f "$$($(2)_$(3)_OBJ)/compile_commands.json" ]; then \ + mkdir -p "$$(OBJ)/compile_commands/$(1)-$(3)/"; \ + sed "s#$$($(2)_SRC)#$$($(2)_ORIGIN)#g" "$$($(2)_$(3)_OBJ)/compile_commands.json" > "$$(OBJ)/compile_commands/$(1)-$(3)/compile_commands.json"; \ fi - 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 + mkdir -p $$($(2)_$(3)_LIBDIR)/ $$(DST_LIBDIR)/ + cd $$($(2)_$(3)_LIBDIR) && find -type f -printf '$$(DST_LIBDIR)/%h\0' | sort -z | uniq -z | xargs $(--verbose?) -0 -r -P$$(J) mkdir -p + cd $$($(2)_$(3)_LIBDIR) && find -type l -printf '%p\0$$(DST_LIBDIR)/%p\0' | xargs $(--verbose?) -0 -r -P$$(J) -n2 cp -a ifneq ($(UNSTRIPPED_BUILD),) - 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' ')' \ + cd $$($(2)_$(3)_LIBDIR) && 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)/%p.debug\0' | \ xargs $(--verbose?) -0 -r -P$$(J) -n3 objcopy $(OBJCOPY_FLAGS) - 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' ')' \ + cd $$($(2)_$(3)_LIBDIR) && 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)/%p.debug\0--strip-debug\0%p\0$$(DST_LIBDIR)/%p\0' | \ xargs $(--verbose?) -0 -r -P$$(J) -n4 objcopy $(OBJCOPY_FLAGS) --set-section-flags .text=contents,alloc,load,readonly,code touch $$@ else - 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' ')' \ + cd $$($(2)_$(3)_LIBDIR) && find -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.h' ')' \ -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' ')' \ + cd $$($(2)_$(3)_LIBDIR) && 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)/%p\0' | \ xargs $(--verbose?) -0 -r -P$$(J) -n3 objcopy $(OBJCOPY_FLAGS) --set-section-flags .text=contents,alloc,load,readonly,code touch $$@ endif -$(1)-dist$(3): $$(OBJ)/.$(1)-dist$(3) -.INTERMEDIATE: $(1)-dist$(3) +$(1)-$(3)-dist: $$(OBJ)/.$(1)-$(3)-dist +.INTERMEDIATE: $(1)-$(3)-dist -all-dist$(3) $(1)-dist: $(1)-dist$(3) -.PHONY: all-dist$(3) $(1)-dist +all-$(3)-dist $(1)-dist: $(1)-$(3)-dist +.PHONY: all-$(3)-dist $(1)-dist all-dist: $(1)-dist .PHONY: all-dist -$(1)$(3): $(1)-configure$(3) $(1)-build$(3) $(1)-dist$(3) -.INTERMEDIATE: $(1)$(3) +$(1)-$(3): $(1)-$(3)-configure $(1)-$(3)-build $(1)-$(3)-dist +.INTERMEDIATE: $(1)-$(3) -all$(3) $(1): $(1)$(3) -.PHONY: all$(3) $(1) +all-$(3) $(1): $(1)-$(3) +.PHONY: all-$(3) $(1) 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))/$$(LIBDIR_$(4)$(3))) \ - $$(foreach d,$$($(2)_DEPS$(3)),-Wl,-rpath-link=$$($$(d)_LIBDIR$(3))/$$(LIBDIR_$(4)$(3))) \ +$(2)_$(3)_INCFLAGS = $$(foreach d,$$($(2)_$(3)_DEPS),-I$$($$(d)_$(3)_INCDIR)) +$(2)_$(3)_LIBFLAGS = $$(foreach d,$$($(2)_$(3)_DEPS),-L$$($$(d)_$(3)_LIBDIR)/$$($(4)$(3)_LIBDIR)) \ + $$(foreach d,$$($(2)_$(3)_DEPS),-Wl,-rpath-link=$$($$(d)_$(3)_LIBDIR)/$$($(4)$(3)_LIBDIR)) \ # PKG_CONFIG is intentionally never using CROSS target, as it's missing # wrapper scripts in the toolchain, we use PKG_CONFIG_LIBDIR directly @@ -105,27 +105,27 @@ $(2)_LIBFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-L$$($$(d)_LIBDIR$(3))/$$(LIB # native version doesn't exist. -$(2)_ENV$(3) = \ - CARGO_TARGET_$$(call toupper,$$(CARGO_TARGET_$(3)))_LINKER="$$(TARGET_$(4)$(3))-gcc" \ +$(2)_$(3)_ENV = \ + CARGO_TARGET_$$(call toupper,$$($(3)_CARGO_TARGET))_LINKER="$$($(4)$(3)_TARGET)-gcc" \ CCACHE_BASEDIR="$$(CCACHE_BASEDIR)" \ STRIP="$$(STRIP)" \ - AR="$$(TARGET_$(4)$(3))-ar" \ - RANLIB="$$(TARGET_$(4)$(3))-ranlib" \ - CC="$$(TARGET_$(4)$(3))-gcc" \ - CXX="$$(TARGET_$(4)$(3))-g++" \ - LD="$$(TARGET_$(4)$(3))-ld" \ - RC="$$(TARGET_CROSS$(3))-windres" \ - 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))/$$(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" \ - LDFLAGS="$$($(2)_LIBFLAGS$(3)) $$($(2)_LDFLAGS$(3)) $$($(2)_LDFLAGS) $$($(4)LDFLAGS)" \ - SOURCE_DATE_EPOCH="$$($(2)_SOURCE_DATE_EPOCH$(3))" \ + AR="$$($(4)$(3)_TARGET)-ar" \ + RANLIB="$$($(4)$(3)_TARGET)-ranlib" \ + CC="$$($(4)$(3)_TARGET)-gcc" \ + CXX="$$($(4)$(3)_TARGET)-g++" \ + LD="$$($(4)$(3)_TARGET)-ld" \ + RC="$$(CROSS$(3)_TARGET)-windres" \ + WIDL="$$(CROSS$(3)_TARGET)-widl" \ + PKG_CONFIG="$$($(3)_TARGET)-pkg-config" \ + PATH="$$(call list-join,:,$$(foreach d,$$($(2)_$(3)_DEPS),$$($$(d)_$(3)_BINDIR)),,:):$$$$PATH" \ + LD_LIBRARY_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_$(3)_DEPS),$$($$(d)_$(3)_LIBDIR)/$$($(4)$(3)_LIBDIR)),,:)$$$$LD_LIBRARY_PATH" \ + PKG_CONFIG_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_$(3)_DEPS),$$($$(d)_$(3)_LIBDIR)/$$($(4)$(3)_LIBDIR)/pkgconfig))" \ + PKG_CONFIG_LIBDIR="/usr/lib/$$($(4)$(3)_LIBDIR)/pkgconfig:/usr/share/pkgconfig" \ + CFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)" \ + CPPFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)" \ + CXXFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS) -std=c++17" \ + LDFLAGS="$$($(2)_$(3)_LIBFLAGS) $$($(2)_$(3)_LDFLAGS) $$($(2)_LDFLAGS) $$($(4)LDFLAGS)" \ + SOURCE_DATE_EPOCH="$$($(2)_$(3)_SOURCE_DATE_EPOCH)" \ ifneq ($(4),CROSS) @@ -135,17 +135,17 @@ ifneq ($(4),CROSS) # This is for instance used by Wine, but also Meson, as it requires the # environment variable to ones for native. -$(2)_ENV$(3) += \ - CROSSAR="$$(TARGET_CROSS$(3))-ar" \ - CROSSRANLIB="$$(TARGET_CROSS$(3))-ranlib" \ - CROSSCC="$$(TARGET_CROSS$(3))-gcc" \ - CROSSCXX="$$(TARGET_CROSS$(3))-g++" \ - CROSSLD="$$(TARGET_CROSS$(3))-ld" \ - CROSSCFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(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/$$(LIBDIR_CROSS$(3))/pkgconfig:/usr/share/pkgconfig" \ +$(2)_$(3)_ENV += \ + CROSSAR="$$(CROSS$(3)_TARGET)-ar" \ + CROSSRANLIB="$$(CROSS$(3)_TARGET)-ranlib" \ + CROSSCC="$$(CROSS$(3)_TARGET)-gcc" \ + CROSSCXX="$$(CROSS$(3)_TARGET)-g++" \ + CROSSLD="$$(CROSS$(3)_TARGET)-ld" \ + CROSSCFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)" \ + CROSSCPPFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)" \ + CROSSCXXFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS) -std=c++17" \ + CROSSLDFLAGS="$$($(2)_$(3)_LIBFLAGS) $$($(2)_$(3)_LDFLAGS) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \ + CROSSPKG_CONFIG_LIBDIR="/usr/lib/$$(CROSS$(3)_LIBDIR)/pkgconfig:/usr/share/pkgconfig" \ endif @@ -158,24 +158,24 @@ else install-strip = objcopy $(OBJCOPY_FLAGS) --strip-debug $(1) $(2)/$(notdir $(1)) && rm -f $(2)/$(notdir $(1)).debug endif -TARGET_32 := i686-linux-gnu -TARGET_64 := x86_64-linux-gnu -TARGET_CROSS32 := i686-w64-mingw32 -TARGET_CROSS64 := x86_64-w64-mingw32 +32_TARGET := i686-linux-gnu +64_TARGET := x86_64-linux-gnu +CROSS32_TARGET := i686-w64-mingw32 +CROSS64_TARGET := 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 +32_LIBDIR := i386-linux-gnu +64_LIBDIR := x86_64-linux-gnu +CROSS32_LIBDIR := i386-w64-mingw32 +CROSS64_LIBDIR := x86_64-w64-mingw32 -LIBDIR_WINE_32 := wine/i386-unix -LIBDIR_WINE_64 := wine/x86_64-unix -LIBDIR_WINE_CROSS32 := wine/i386-windows -LIBDIR_WINE_CROSS64 := wine/x86_64-windows +32_WINEDIR := wine/i386-unix +64_WINEDIR := wine/x86_64-unix +CROSS32_WINEDIR := wine/i386-windows +CROSS64_WINEDIR := wine/x86_64-windows -$(OBJ)/.%-post-build32: +$(OBJ)/.%-32-post-build: touch $@ -$(OBJ)/.%-post-build64: +$(OBJ)/.%-64-post-build: touch $@ rules-common = $(call create-rules-common,$(1),$(call toupper,$(1)),$(2),$(3)) diff --git a/make/rules-configure.mk b/make/rules-configure.mk index aff34de5..356f2508 100644 --- a/make/rules-configure.mk +++ b/make/rules-configure.mk @@ -7,31 +7,31 @@ define create-rules-configure $(call create-rules-common,$(1),$(2),$(3),$(4)) -$$(OBJ)/.$(1)-configure$(3): - @echo ":: configuring $(3)bit $(1)..." >&2 +$$(OBJ)/.$(1)-$(3)-configure: + @echo ":: configuring $(1)-$(3)..." >&2 - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$($(2)_SRC)/configure $(--quiet?) \ - --cross-prefix=$$(TARGET_$(3))- \ + --cross-prefix=$$($(3)_TARGET)- \ --target-os=linux \ - --prefix="$$($(2)_DST$(3))" \ - --libdir="$$($(2)_LIBDIR$(3))/$$(LIBDIR_$(4)$(3))" \ - $$(CONFIGURE_ARGS_$(3)) \ + --prefix="$$($(2)_$(3)_DST)" \ + --libdir="$$($(2)_$(3)_LIBDIR)/$$($(4)$(3)_LIBDIR)" \ + $$($(3)_CONFIGURE_ARGS) \ $$($(2)_CONFIGURE_ARGS) \ - $$($(2)_CONFIGURE_ARGS$(3)) \ + $$($(2)_$(3)_CONFIGURE_ARGS) touch $$@ -$$(OBJ)/.$(1)-build$(3): - @echo ":: building $(3)bit $(1)..." >&2 - +cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ +$$(OBJ)/.$(1)-$(3)-build: + @echo ":: building $(1)-$(3)..." >&2 + +cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(BEAR) $$(MAKE) - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(MAKE) install touch $$@ endef -CONFIGURE_ARGS_32 := --arch=x86 -CONFIGURE_ARGS_64 := --arch=x86_64 +32_CONFIGURE_ARGS := --arch=x86 +64_CONFIGURE_ARGS := --arch=x86_64 rules-configure = $(call create-rules-configure,$(1),$(call toupper,$(1)),$(2),$(3)) diff --git a/make/rules-makedep.mk b/make/rules-makedep.mk index adfd2abe..5faf2e42 100644 --- a/make/rules-makedep.mk +++ b/make/rules-makedep.mk @@ -6,47 +6,47 @@ define create-rules-makedep $(call create-rules-common,$(1),$(2),$(3)) # cannot pass $(4)/CROSS here because of link flags for remaining .dll.so modules -$$(OBJ)/.$(1)-configure$(3): - @echo ":: configuring $(3)bit $(1)..." >&2 +$$(OBJ)/.$(1)-$(3)-configure: + @echo ":: configuring $(1)-$(3)..." >&2 sed -e '/^all:$$$$/,$$$$c all:' \ -e '/^SUBDIRS/,/[^\\]$$$$/c SUBDIRS = $$($(2)_SRC)' \ \ - -e '/^srcdir/a objdir = $$(WINE_OBJ$(3))' \ - -e '/^prefix/c prefix = $$($(2)_DST$(3))' \ - -e '/^libdir/c libdir = $$($(2)_LIBDIR$(3))' \ - -e '/^toolsdir/c toolsdir = $$(WINE_OBJ$(3))' \ + -e '/^srcdir/a objdir = $$(WINE_$(3)_OBJ)' \ + -e '/^prefix/c prefix = $$($(2)_$(3)_DST)' \ + -e '/^libdir/c libdir = $$($(2)_$(3)_LIBDIR)' \ + -e '/^toolsdir/c toolsdir = $$(WINE_$(3)_OBJ)' \ \ - -e '/^CFLAGS/c CFLAGS = $$($(2)_INCFLAGS$(3)) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))' \ - -e '/^CPPFLAGS/c CPPFLAGS = $$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))' \ - -e '/^CXXFLAGS/c CXXFLAGS = $$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17' \ - -e '/^LDFLAGS/c LDFLAGS = $$($(2)_LIBFLAGS$(3)) $$($(2)_LDFLAGS$(3)) $$($(2)_LDFLAGS)' \ + -e '/^CFLAGS/c CFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)' \ + -e '/^CPPFLAGS/c CPPFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)' \ + -e '/^CXXFLAGS/c CXXFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS) -std=c++17' \ + -e '/^LDFLAGS/c LDFLAGS = $$($(2)_$(3)_LIBFLAGS) $$($(2)_$(3)_LDFLAGS) $$($(2)_LDFLAGS)' \ \ - -e '/^x86_64_CC/a x86_64_CXX = $$(TARGET_CROSS64)-g++' \ - -e '/^x86_64_CFLAGS/c x86_64_CFLAGS = $$($(2)_INCFLAGS64) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS64)' \ - -e '/^x86_64_CPPFLAGS/c x86_64_CPPFLAGS = $$($(2)_INCFLAGS64) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS64)' \ - -e '/^x86_64_CXXFLAGS/c x86_64_CXXFLAGS = $$($(2)_INCFLAGS64) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS64) -std=c++17' \ - -e '/^x86_64_LDFLAGS/c x86_64_LDFLAGS = $$($(2)_LIBFLAGS64) $$($(2)_LDFLAGS64) $$(CROSSLDFLAGS)' \ + -e '/^x86_64_CC/a x86_64_CXX = $$(CROSS64_TARGET)-g++' \ + -e '/^x86_64_CFLAGS/c x86_64_CFLAGS = $$($(2)_64_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(64_COMMON_FLAGS)' \ + -e '/^x86_64_CPPFLAGS/c x86_64_CPPFLAGS = $$($(2)_64_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(64_COMMON_FLAGS)' \ + -e '/^x86_64_CXXFLAGS/c x86_64_CXXFLAGS = $$($(2)_64_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(64_COMMON_FLAGS) -std=c++17' \ + -e '/^x86_64_LDFLAGS/c x86_64_LDFLAGS = $$($(2)_64_LIBFLAGS) $$($(2)_64_LDFLAGS) $$(CROSSLDFLAGS)' \ \ - -e '/^i386_CC/a i386_CXX = $$(TARGET_CROSS32)-g++' \ - -e '/^i386_CFLAGS/c i386_CFLAGS = $$($(2)_INCFLAGS32) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS32)' \ - -e '/^i386_CPPFLAGS/c i386_CPPFLAGS = $$($(2)_INCFLAGS32) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS32)' \ - -e '/^i386_CXXFLAGS/c i386_CXXFLAGS = $$($(2)_INCFLAGS32) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS32) -std=c++17' \ - -e '/^i386_LDFLAGS/c i386_LDFLAGS = $$($(2)_LIBFLAGS32) $$($(2)_LDFLAGS32) $$(CROSSLDFLAGS)' \ + -e '/^i386_CC/a i386_CXX = $$(CROSS32_TARGET)-g++' \ + -e '/^i386_CFLAGS/c i386_CFLAGS = $$($(2)_32_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(32_COMMON_FLAGS)' \ + -e '/^i386_CPPFLAGS/c i386_CPPFLAGS = $$($(2)_32_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(32_COMMON_FLAGS)' \ + -e '/^i386_CXXFLAGS/c i386_CXXFLAGS = $$($(2)_32_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(32_COMMON_FLAGS) -std=c++17' \ + -e '/^i386_LDFLAGS/c i386_LDFLAGS = $$($(2)_32_LIBFLAGS) $$($(2)_32_LDFLAGS) $$(CROSSLDFLAGS)' \ \ - -e 's@UNIXLDFLAGS =@UNIXLDFLAGS = -L$$(WINE_LIBDIR$(3))/$$(LIBDIR_WINE_$(3)) -l:ntdll.so@' \ - $$(WINE_OBJ$(3))/Makefile > $$($(2)_OBJ$(3))/Makefile + -e 's@UNIXLDFLAGS =@UNIXLDFLAGS = -L$$(WINE_$(3)_LIBDIR)/$$($(3)_WINEDIR) -l:ntdll.so@' \ + $$(WINE_$(3)_OBJ)/Makefile > $$($(2)_$(3)_OBJ)/Makefile - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ - $$(WINE_OBJ$(3))/tools/makedep + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ + $$(WINE_$(3)_OBJ)/tools/makedep touch $$@ -$$(OBJ)/.$(1)-build$(3): - @echo ":: building $(3)bit $(1)..." >&2 - +cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ +$$(OBJ)/.$(1)-$(3)-build: + @echo ":: building $(1)-$(3)..." >&2 + +cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(BEAR) $$(MAKE) - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ $$(MAKE) install touch $$@ endef diff --git a/make/rules-meson.mk b/make/rules-meson.mk index bb34da50..02e242a7 100644 --- a/make/rules-meson.mk +++ b/make/rules-meson.mk @@ -9,7 +9,7 @@ define create-rules-meson # cross compilation below with the CROSS-prefixed variables. $(call create-rules-common,$(1),$(2),$(3)) -define $(2)_MESON_CROSS$(3) +define $(2)_$(3)_MESON_CROSS cat <&2 - rm -rf "$$($(2)_OBJ$(3))/meson-private/coredata.dat" +$$(OBJ)/.$(1)-$(3)-configure: $$($(2)_SRC)/meson.build + @echo ":: configuring $(1)-$(3)..." >&2 + rm -rf "$$($(2)_$(3)_OBJ)/meson-private/coredata.dat" - echo "$$$$$(2)_MESON_CROSS$(3)" | env $$($(2)_ENV$(3)) sh >"$$($(2)_OBJ$(3))/cross-$(3).txt" + echo "$$$$$(2)_$(3)_MESON_CROSS" | env $$($(2)_$(3)_ENV) sh >"$$($(2)_$(3)_OBJ)/$(3)-cross.txt" - env $$($(2)_ENV$(3)) \ - meson "$$($(2)_OBJ$(3))" "$$($(2)_SRC)" \ - --prefix="$$($(2)_DST$(3))" \ - --libdir="lib/$$(LIBDIR_$(4)$(3))" \ + env $$($(2)_$(3)_ENV) \ + meson "$$($(2)_$(3)_OBJ)" "$$($(2)_SRC)" \ + --prefix="$$($(2)_$(3)_DST)" \ + --libdir="lib/$$($(4)$(3)_LIBDIR)" \ --buildtype=plain \ - $(if $(4),--cross-file="$$($(2)_OBJ$(3))/cross-$(3).txt",) \ - $$(MESON_ARGS_$(3)) \ + $(if $(4),--cross-file="$$($(2)_$(3)_OBJ)/$(3)-cross.txt",) \ + $$($(3)_MESON_ARGS) \ $$($(2)_MESON_ARGS) \ - $$($(2)_MESON_ARGS$(3)) \ + $$($(2)_$(3)_MESON_ARGS) \ $$(MESON_STRIP_ARG) touch $$@ -$$(OBJ)/.$(1)-build$(3): - @echo ":: building $(3)bit $(1)..." >&2 - +env $$($(2)_ENV$(3)) \ - ninja -C "$$($(2)_OBJ$(3))" install +$$(OBJ)/.$(1)-$(3)-build: + @echo ":: building $(1)-$(3)..." >&2 + +env $$($(2)_$(3)_ENV) \ + ninja -C "$$($(2)_$(3)_OBJ)" install touch $$@ endef -MESON_CPU32 = x86 -MESON_CPU64 = x86_64 +32_MESON_CPU = x86 +64_MESON_CPU = x86_64 rules-meson = $(call create-rules-meson,$(1),$(call toupper,$(1)),$(2),$(3)) diff --git a/make/rules-wine-requests.mk b/make/rules-wine-requests.mk index 27199c1f..b1f5cc83 100644 --- a/make/rules-wine-requests.mk +++ b/make/rules-wine-requests.mk @@ -13,13 +13,13 @@ $$($(2)_SRC)/server/request_trace.h: | $$(OBJ)/.$(1)-post-source $$($(2)_SRC)/server/request_trace.h: $$($(2)_ORIGIN)/server/request_trace.h cp -a $$< $$@ -$$(OBJ)/.$(1)-configure32: $$($(2)_SRC)/include/wine/server_protocol.h -$$(OBJ)/.$(1)-configure32: $$($(2)_SRC)/server/request_handlers.h -$$(OBJ)/.$(1)-configure32: $$($(2)_SRC)/server/request_trace.h +$$(OBJ)/.$(1)-32-configure: $$($(2)_SRC)/include/wine/server_protocol.h +$$(OBJ)/.$(1)-32-configure: $$($(2)_SRC)/server/request_handlers.h +$$(OBJ)/.$(1)-32-configure: $$($(2)_SRC)/server/request_trace.h -$$(OBJ)/.$(1)-configure64: $$($(2)_SRC)/include/wine/server_protocol.h -$$(OBJ)/.$(1)-configure64: $$($(2)_SRC)/server/request_handlers.h -$$(OBJ)/.$(1)-configure64: $$($(2)_SRC)/server/request_trace.h +$$(OBJ)/.$(1)-64-configure: $$($(2)_SRC)/include/wine/server_protocol.h +$$(OBJ)/.$(1)-64-configure: $$($(2)_SRC)/server/request_handlers.h +$$(OBJ)/.$(1)-64-configure: $$($(2)_SRC)/server/request_trace.h $$(OBJ)/.$(1)-wine-requests: $$($(2)_SRC)/include/wine/server_protocol.h $$(OBJ)/.$(1)-wine-requests: $$($(2)_SRC)/server/request_handlers.h @@ -31,8 +31,8 @@ $$(OBJ)/.$(1)-wine-requests: | $$(OBJ)/.$(1)-post-source cd "$$($(2)_SRC)" && tools/make_requests touch $$@ -$$(OBJ)/.$(1)-build32: $$(OBJ)/.$(1)-wine-requests -$$(OBJ)/.$(1)-build64: $$(OBJ)/.$(1)-wine-requests +$$(OBJ)/.$(1)-32-build: $$(OBJ)/.$(1)-wine-requests +$$(OBJ)/.$(1)-64-build: $$(OBJ)/.$(1)-wine-requests endef rules-wine-requests = $(call create-rules-wine-requests,$(1),$(call toupper,$(1))) diff --git a/make/rules-winemaker.mk b/make/rules-winemaker.mk index e626458d..bcb53ad9 100644 --- a/make/rules-winemaker.mk +++ b/make/rules-winemaker.mk @@ -6,39 +6,39 @@ # define create-rules-winemaker $(call create-rules-common,$(1),$(2),$(3)) -$(2)_OBJ$(3) := $$($(2)_OBJ$(3))/$(4) +$(2)_$(3)_OBJ := $$($(2)_$(3)_OBJ)/$(4) -$$(OBJ)/.$(1)-configure$(3): - @echo ":: configuring $(3)bit $(1)..." >&2 - rsync -arx "$$($(2)_SRC)/" "$$($(2)_OBJ$(3))/" - cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ +$$(OBJ)/.$(1)-$(3)-configure: + @echo ":: configuring $(1)-$(3)..." >&2 + rsync -arx "$$($(2)_SRC)/" "$$($(2)_$(3)_OBJ)/" + cd "$$($(2)_$(3)_OBJ)" && env $$($(2)_$(3)_ENV) \ winemaker --nosource-fix --nolower-include --nodlls --nomsvcrt \ "-I$$(WINE_SRC)/include" \ "-I$$(WINE_SRC)/include/wine" \ - "-I$$(WINE_DST$(3))/include/wine" \ + "-I$$(WINE_$(3)_DST)/include/wine" \ $(patsubst %.dll,--dll,$(patsubst %.exe,--guiexe,$(4))) \ - $$(WINEMAKER_ARGS_$(3)) \ + $$($(3)_WINEMAKER_ARGS) \ $$($(2)_WINEMAKER_ARGS) \ - $$($(2)_WINEMAKER_ARGS$(3)) \ + $$($(2)_$(3)_WINEMAKER_ARGS) \ . - sed -re 's@_LDFLAGS=@_LDFLAGS= $$$$(LDFLAGS) @' -i "$$($(2)_OBJ$(3))/Makefile" + sed -re 's@_LDFLAGS=@_LDFLAGS= $$$$(LDFLAGS) @' -i "$$($(2)_$(3)_OBJ)/Makefile" touch $$@ -$$(OBJ)/.$(1)-build$(3): - @echo ":: building $(3)bit $(1)..." >&2 - rsync -arx "$$($(2)_SRC)/" "$$($(2)_OBJ$(3))/" - env $$($(2)_ENV$(3)) \ - $$(MAKE) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)" - cd "$$($(2)_OBJ$(3))" && touch "$(basename $(4)).spec" && env $$($(2)_ENV$(3)) \ +$$(OBJ)/.$(1)-$(3)-build: + @echo ":: building $(1)-$(3)..." >&2 + rsync -arx "$$($(2)_SRC)/" "$$($(2)_$(3)_OBJ)/" + env $$($(2)_$(3)_ENV) \ + $$(MAKE) -C "$$($(2)_$(3)_OBJ)" LIBRARIES="$$($(2)_LDFLAGS)" + cd "$$($(2)_$(3)_OBJ)" && touch "$(basename $(4)).spec" && env $$($(2)_$(3)_ENV) \ winebuild --$(lastword $(subst ., ,$(4))) --fake-module -E "$(basename $(4)).spec" -o "$(4).fake" - mkdir -p $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_$(3)) - cp -a $$($(2)_OBJ$(3))/$(4).so $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_$(3))/ - mkdir -p $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_CROSS$(3)) - cp -a $$($(2)_OBJ$(3))/$(4).fake $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_CROSS$(3))/$(4) + mkdir -p $$($(2)_$(3)_LIBDIR)/$($(3)_WINEDIR) + cp -a $$($(2)_$(3)_OBJ)/$(4).so $$($(2)_$(3)_LIBDIR)/$($(3)_WINEDIR)/ + mkdir -p $$($(2)_$(3)_LIBDIR)/$(CROSS$(3)_WINEDIR) + cp -a $$($(2)_$(3)_OBJ)/$(4).fake $$($(2)_$(3)_LIBDIR)/$(CROSS$(3)_WINEDIR)/$(4) touch $$@ endef -WINEMAKER_ARGS_32 := --wine32 -WINEMAKER_ARGS_64 := +32_WINEMAKER_ARGS := --wine32 +64_WINEMAKER_ARGS := rules-winemaker = $(call create-rules-winemaker,$(1),$(call toupper,$(1)),$(2),$(3))