build: Use build macros for wine.
This commit is contained in:
parent
8c105d7aa1
commit
2bf35d9f4f
1 changed files with 32 additions and 106 deletions
|
@ -216,11 +216,6 @@ STEAMEXE_SRC := $(SRCDIR)/steam_helper
|
||||||
STEAMEXE_OBJ := ./obj-steam
|
STEAMEXE_OBJ := ./obj-steam
|
||||||
STEAMEXE_SYN := ./syn-steam/steam
|
STEAMEXE_SYN := ./syn-steam/steam
|
||||||
|
|
||||||
WINE := $(SRCDIR)/wine
|
|
||||||
WINE_DST32 := ./dist-wine32
|
|
||||||
WINE_OBJ32 := ./obj-wine32
|
|
||||||
WINE_OBJ64 := ./obj-wine64
|
|
||||||
|
|
||||||
# Wine outputs that need to exist for other steps (dist)
|
# Wine outputs that need to exist for other steps (dist)
|
||||||
WINE_OUT_BIN := $(DST_DIR)/bin/wine64
|
WINE_OUT_BIN := $(DST_DIR)/bin/wine64
|
||||||
WINE_OUT_SERVER := $(DST_DIR)/bin/wineserver
|
WINE_OUT_SERVER := $(DST_DIR)/bin/wineserver
|
||||||
|
@ -247,7 +242,6 @@ OBJ_DIRS := $(TOOLS_DIR32) $(TOOLS_DIR64) \
|
||||||
$(LSTEAMCLIENT_OBJ32) $(LSTEAMCLIENT_OBJ64) \
|
$(LSTEAMCLIENT_OBJ32) $(LSTEAMCLIENT_OBJ64) \
|
||||||
$(WINEOPENXR_OBJ64) \
|
$(WINEOPENXR_OBJ64) \
|
||||||
$(STEAMEXE_OBJ) \
|
$(STEAMEXE_OBJ) \
|
||||||
$(WINE_OBJ32) $(WINE_OBJ64) \
|
|
||||||
$(VRCLIENT_OBJ32) $(VRCLIENT_OBJ64) \
|
$(VRCLIENT_OBJ32) $(VRCLIENT_OBJ64) \
|
||||||
$(DXVK_OBJ32) $(DXVK_OBJ64) \
|
$(DXVK_OBJ32) $(DXVK_OBJ64) \
|
||||||
$(MEDIACONV_OBJ32) $(MEDIACONV_OBJ64)
|
$(MEDIACONV_OBJ32) $(MEDIACONV_OBJ64)
|
||||||
|
@ -916,115 +910,47 @@ steam: $(STEAMEXE_CONFIGURE_FILES) wine32 | $(filter $(MAKECMDGOALS),wine64 wine
|
||||||
## wine
|
## wine
|
||||||
##
|
##
|
||||||
|
|
||||||
## Create & configure object directory for wine
|
WINE_SOURCE_ARGS = \
|
||||||
|
--exclude configure \
|
||||||
|
--exclude autom4te.cache \
|
||||||
|
--exclude include/config.h.in \
|
||||||
|
|
||||||
WINE_CONFIGURE_FILES32 := $(WINE_OBJ32)/Makefile
|
WINE_CONFIGURE_ARGS = \
|
||||||
WINE_CONFIGURE_FILES64 := $(WINE_OBJ64)/Makefile
|
--with-mingw \
|
||||||
|
--disable-tests
|
||||||
|
|
||||||
WINE_COMMON_MAKE_ARGS := \
|
WINE_CONFIGURE_ARGS64 = --enable-win64
|
||||||
STRIP="$(STRIP_QUOTED)" \
|
|
||||||
INSTALL_PROGRAM_FLAGS="$(INSTALL_PROGRAM_FLAGS)"
|
|
||||||
|
|
||||||
WINE64_MAKE_ARGS := \
|
WINE_DEPENDS = gst_orc gstreamer gst_base faudio jxrlib
|
||||||
$(WINE_COMMON_MAKE_ARGS) \
|
|
||||||
prefix="$(abspath $(TOOLS_DIR64))" \
|
|
||||||
libdir="$(abspath $(TOOLS_DIR64))/lib64" \
|
|
||||||
dlldir="$(abspath $(TOOLS_DIR64))/lib64/wine"
|
|
||||||
|
|
||||||
WINE32_MAKE_ARGS := \
|
$(eval $(call rules-source,wine,$(SRCDIR)/wine))
|
||||||
$(WINE_COMMON_MAKE_ARGS) \
|
$(eval $(call rules-autoconf,wine,32))
|
||||||
prefix="$(abspath $(TOOLS_DIR32))" \
|
$(eval $(call rules-autoconf,wine,64))
|
||||||
libdir="$(abspath $(TOOLS_DIR32))/lib" \
|
|
||||||
dlldir="$(abspath $(TOOLS_DIR32))/lib/wine"
|
|
||||||
|
|
||||||
# 64bit-configure
|
$(WINE_SRC)/configure: $(SRCDIR)/wine/configure.ac | $(OBJ)/.wine-source
|
||||||
$(WINE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL)
|
cd $(WINE_SRC) && autoreconf -fi
|
||||||
$(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) gst_base64 faudio64 | jxrlib64 $(WINE_OBJ64)
|
touch $@
|
||||||
cd $(dir $@) && \
|
|
||||||
../$(WINE)/configure \
|
|
||||||
--enable-win64 \
|
|
||||||
--disable-tests \
|
|
||||||
--prefix=$(abspath $(DST_DIR)) \
|
|
||||||
LD_LIBRARY_PATH=$(abspath $(TOOLS_DIR64))/lib \
|
|
||||||
STRIP=$(STRIP_QUOTED) \
|
|
||||||
CFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g $(COMMON_FLAGS)" \
|
|
||||||
CROSSCFLAGS="-g $(COMMON_FLAGS)" \
|
|
||||||
LDFLAGS=-L$(abspath $(TOOLS_DIR64))/lib \
|
|
||||||
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \
|
|
||||||
JXRLIB_CFLAGS=-I$(abspath $(TOOLS_DIR64))/include/jxrlib \
|
|
||||||
CC=$(CC_QUOTED) \
|
|
||||||
CXX=$(CXX_QUOTED) \
|
|
||||||
CROSSCC=$(CROSSCC64_QUOTED) \
|
|
||||||
CROSSDEBUG=split-dwarf
|
|
||||||
|
|
||||||
# 32-bit configure
|
$(OBJ)/.wine-post-source: $(WINE_SRC)/configure
|
||||||
$(WINE_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL)
|
cd $(WINE_SRC) && tools/make_requests
|
||||||
$(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) gst_base32 faudio32 | jxrlib32 $(WINE_OBJ32)
|
touch $@
|
||||||
cd $(dir $@) && \
|
|
||||||
../$(WINE)/configure \
|
|
||||||
--disable-tests \
|
|
||||||
--prefix=$(abspath $(WINE_DST32)) \
|
|
||||||
LD_LIBRARY_PATH=$(abspath $(TOOLS_DIR32))/lib \
|
|
||||||
STRIP=$(STRIP_QUOTED) \
|
|
||||||
CFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g $(COMMON_FLAGS)" \
|
|
||||||
CROSSCFLAGS="-g $(COMMON_FLAGS)" \
|
|
||||||
LDFLAGS=-L$(abspath $(TOOLS_DIR32))/lib \
|
|
||||||
PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
|
|
||||||
JXRLIB_CFLAGS=-I$(abspath $(TOOLS_DIR32))/include/jxrlib \
|
|
||||||
CC=$(CC32_QUOTED) \
|
|
||||||
CXX=$(CXX32_QUOTED) \
|
|
||||||
CROSSCC=$(CROSSCC32_QUOTED) \
|
|
||||||
PKG_CONFIG="$(PKG_CONFIG32)" \
|
|
||||||
CROSSDEBUG=split-dwarf
|
|
||||||
|
|
||||||
## wine goals
|
$(OBJ)/.wine-post-build64:
|
||||||
WINE_TARGETS = wine wine_configure wine32 wine64 wine_configure32 wine_configure64
|
mkdir -p $(DST_DIR)/{lib64,bin,share}
|
||||||
|
cp -a $(TOOLS_DIR64)/lib64 $(DST_DIR)/
|
||||||
|
cp -a $(TOOLS_DIR64)/bin/wine64 $(DST_DIR)/bin/
|
||||||
|
cp -a $(TOOLS_DIR64)/bin/wine64-preloader $(DST_DIR)/bin/
|
||||||
|
cp -a $(TOOLS_DIR64)/bin/wineserver $(DST_DIR)/bin/
|
||||||
|
cp -a $(TOOLS_DIR64)/bin/msidb $(DST_DIR)/bin/
|
||||||
|
cp -a $(TOOLS_DIR64)/share/wine $(DST_DIR)/share/
|
||||||
|
touch $@
|
||||||
|
|
||||||
ALL_TARGETS += $(WINE_TARGETS)
|
$(OBJ)/.wine-post-build32:
|
||||||
GOAL_TARGETS += wine
|
|
||||||
|
|
||||||
.PHONY: $(WINE_TARGETS)
|
|
||||||
|
|
||||||
wine_configure: $(WINE_CONFIGURE_FILES32) $(WINE_CONFIGURE_FILES64)
|
|
||||||
|
|
||||||
wine_configure64: $(WINE_CONFIGURE_FILES64)
|
|
||||||
|
|
||||||
wine_configure32: $(WINE_CONFIGURE_FILES32)
|
|
||||||
|
|
||||||
wine: wine32 wine64
|
|
||||||
|
|
||||||
# WINE_OUT outputs needed by other rules, though we don't explicitly track all state here --
|
|
||||||
# make all or make wine are needed to ensure all deps are up to date, this just ensures 'make dist' or 'make vrclient'
|
|
||||||
# will drag in wine if you've never built wine.
|
|
||||||
.INTERMEDIATE: wine64-intermediate wine32-intermediate
|
|
||||||
|
|
||||||
$(WINE_OUT) wine64: wine64-intermediate
|
|
||||||
|
|
||||||
wine64-intermediate: SHELL = $(CONTAINER_SHELL)
|
|
||||||
wine64-intermediate: $(WINE_CONFIGURE_FILES64)
|
|
||||||
+$(MAKE) -C $(WINE_OBJ64) $(WINE_COMMON_MAKE_ARGS)
|
|
||||||
+$(MAKE) -C $(WINE_OBJ64) $(WINE_COMMON_MAKE_ARGS) install-lib
|
|
||||||
+$(MAKE) -C $(WINE_OBJ64) $(WINE64_MAKE_ARGS) install-lib install-dev
|
|
||||||
if [ "$(UNSTRIPPED_BUILD)" == "" ]; then rm -rf $(DST_DIR)/lib64/wine/.debug; fi
|
|
||||||
if [ "$(UNSTRIPPED_BUILD)" != "" ]; then make -C $(WINE_OBJ64) $(WINE64_MAKE_ARGS) install-cross-debug; cp -af $(TOOLS_DIR64)/lib64/wine/.debug $(DST_DIR)/lib64/wine/; fi
|
|
||||||
rm -f $(DST_DIR)/bin/{msiexec,notepad,regedit,regsvr32,wineboot,winecfg,wineconsole,winedbg,winefile,winemine,winepath}
|
|
||||||
rm -rf $(DST_DIR)/share/man/
|
|
||||||
|
|
||||||
## This installs 32-bit stuff manually, see
|
|
||||||
## https://wiki.winehq.org/Packaging#WoW64_Workarounds
|
|
||||||
wine32: wine32-intermediate
|
|
||||||
|
|
||||||
wine32-intermediate: SHELL = $(CONTAINER_SHELL)
|
|
||||||
wine32-intermediate: $(WINE_CONFIGURE_FILES32)
|
|
||||||
+$(MAKE) -C $(WINE_OBJ32) $(WINE_COMMON_MAKE_ARGS)
|
|
||||||
+$(MAKE) -C $(WINE_OBJ32) $(WINE_COMMON_MAKE_ARGS) install-lib
|
|
||||||
+$(MAKE) -C $(WINE_OBJ32) $(WINE32_MAKE_ARGS) install-lib install-dev
|
|
||||||
mkdir -p $(DST_DIR)/{lib,bin}
|
mkdir -p $(DST_DIR)/{lib,bin}
|
||||||
cp -af $(WINE_DST32)/lib $(DST_DIR)/
|
cp -a $(TOOLS_DIR32)/lib $(DST_DIR)/
|
||||||
cp -a $(WINE_DST32)/bin/wine $(DST_DIR)/bin/
|
cp -a $(TOOLS_DIR32)/bin/wine $(DST_DIR)/bin/
|
||||||
cp -a $(WINE_DST32)/bin/wine-preloader $(DST_DIR)/bin/
|
cp -a $(TOOLS_DIR32)/bin/wine-preloader $(DST_DIR)/bin/
|
||||||
if [ "$(UNSTRIPPED_BUILD)" == "" ]; then rm -rf $(DST_DIR)/lib/wine/.debug; fi
|
touch $@
|
||||||
if [ "$(UNSTRIPPED_BUILD)" != "" ]; then make -C $(WINE_OBJ32) $(WINE32_MAKE_ARGS) install-cross-debug; cp -af $(TOOLS_DIR32)/lib/wine/.debug $(DST_DIR)/lib/wine/; fi
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## vrclient
|
## vrclient
|
||||||
|
|
Loading…
Reference in a new issue