diff --git a/.gitmodules b/.gitmodules index dde31587..805c0067 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,9 +10,6 @@ [submodule "openvr"] path = openvr url = https://github.com/ValveSoftware/openvr -[submodule "cmake"] - path = cmake - url = https://github.com/Kitware/CMake [submodule "fonts/liberation-fonts"] path = fonts/liberation-fonts url = https://github.com/liberationfonts/liberation-fonts diff --git a/Makefile b/Makefile index 11e04a61..f09b7c5a 100644 --- a/Makefile +++ b/Makefile @@ -36,8 +36,8 @@ ifneq ($(unstripped),) endif CONFIGURE_CMD := ../proton/configure.sh \ - --steam-runtime64=docker:steam-proton-dev --steam-runtime32=docker:steam-proton-dev32 \ - --steam-runtime="$$HOME"/steam-runtime/runtime/ \ + --steam-runtime64=docker:steam-proton-dev --steam-runtime32=docker:steam-proton-dev \ + --steam-runtime="$$HOME"/proton/steamrt/ \ --build-name="$(_build_name)" # make doesn't handle spaces well... replace them with underscores in paths diff --git a/README.md b/README.md index e1919f4d..bd234e76 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,7 @@ course use whatever paths you like. mkdir build/ cd build - ../proton/configure.sh --steam-runtime64=docker:steam-proton-dev --steam-runtime32=docker:steam-proton-dev32 --steam-runtime=$HOME/steam-runtime/runtime/ + ../proton/configure.sh --steam-runtime64=docker:steam-proton-dev --steam-runtime32=docker:steam-proton-dev --steam-runtime=$HOME/steam-runtime/runtime/ If you are building without the Steam runtime, then instead use: diff --git a/Vagrantfile b/Vagrantfile index ba7569f6..8c767452 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -93,6 +93,14 @@ Vagrant.configure(2) do |config| #allow vagrant user to run docker adduser vagrant docker + #add steamrt docker + docker build -t "steam-proton-dev" -f "/home/vagrant/proton/steamrt/com.valvesoftware.SteamRuntime.Sdk-amd64,i386-soldier-sysroot.Dockerfile" /home/vagrant/proton/steamrt/ + + #allow user to run stuff in steamrt + sysctl kernel.unprivileged_userns_clone=1 + mkdir -p /etc/sysctl.d/ + echo kernel.unprivileged_userns_clone=1 > /etc/sysctl.d/docker_user.conf + # the script below will set up the steam-runtime docker containers sudo -u vagrant /home/vagrant/proton/vagrant-user-setup.sh diff --git a/build/makefile_base.mak b/build/makefile_base.mak index c0c31952..ca79e463 100644 --- a/build/makefile_base.mak +++ b/build/makefile_base.mak @@ -50,6 +50,10 @@ endif export CC export CXX +CC32 := gcc -m32 -mstackrealign +CXX32 := g++ -m32 -mstackrealign +PKG_CONFIG32 := i686-linux-gnu-pkg-config + cc-option = $(shell if test -z "`echo 'void*p=1;' | \ $(1) $(2) -S -o /dev/null -xc - 2>&1 | grep -- $(2) -`"; \ then echo "$(2)"; else echo "$(3)"; fi ;) @@ -78,9 +82,11 @@ else ifneq ($(STEAMRT32_MODE),) endif ifneq ($(STEAMRT_PATH),) - STEAM_RUNTIME_RUNSH := $(STEAMRT_PATH)/run.sh + STEAM_RUNTIME_RUNSH := $(STEAMRT_PATH)/run-in-soldier -- + STEAM_RUNTIME_LIB_PATH := $(shell $(STEAM_RUNTIME_RUNSH) env | grep LD_LIBRARY_PATH | cut -d= -f2-) else STEAM_RUNTIME_RUNSH := + STEAM_RUNTIME_LIB_PATH := endif SELECT_DOCKER_IMAGE := @@ -262,21 +268,6 @@ VKD3D := $(SRCDIR)/vkd3d-proton VKD3D_OBJ32 := ./obj-vkd3d32 VKD3D_OBJ64 := ./obj-vkd3d64 -CMAKE := $(SRCDIR)/cmake -CMAKE_OBJ32 := ./obj-cmake32 -CMAKE_OBJ64 := ./obj-cmake64 -CMAKE_BIN32 := $(CMAKE_OBJ32)/built/bin/cmake -CMAKE_BIN64 := $(CMAKE_OBJ64)/built/bin/cmake - -BISON_VER = 3.3.2 -BISON_TARBALL := bison-$(BISON_VER).tar.xz -BISON := $(SRCDIR)/contrib/bison-$(BISON_VER) -BISON_OBJ32 := ./obj-bison32 -BISON_OBJ64 := ./obj-bison64 -BISON_BIN32 := $(BISON_OBJ32)/built/bin/bison -BISON_BIN64 := $(BISON_OBJ64)/built/bin/bison - - FONTS := $(SRCDIR)/fonts FONTS_OBJ := ./obj-fonts @@ -294,10 +285,8 @@ OBJ_DIRS := $(TOOLS_DIR32) $(TOOLS_DIR64) \ $(WINE_OBJ32) $(WINE_OBJ64) \ $(VRCLIENT_OBJ32) $(VRCLIENT_OBJ64) \ $(DXVK_OBJ32) $(DXVK_OBJ64) \ - $(BISON_OBJ32) $(BISON_OBJ64) \ $(WINEWIDL_OBJ32) $(WINEWIDL_OBJ64) \ - $(VKD3D_OBJ32) $(VKD3D_OBJ64) \ - $(CMAKE_OBJ32) $(CMAKE_OBJ64) + $(VKD3D_OBJ32) $(VKD3D_OBJ64) $(OBJ_DIRS): mkdir -p $@ @@ -309,20 +298,14 @@ $(OBJ_DIRS): .PHONY: downloads -BISON_TARBALL_URL := https://ftpmirror.gnu.org/bison/$(BISON_TARBALL) 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) MONO_TARBALL_URL := https://github.com/madewokherd/wine-mono/releases/download/wine-mono-$(WINEMONO_VER)/$(WINEMONO_TARBALL) -SHARED_BISON_TARBALL := $(SRCDIR)/../bison/$(BISON_TARBALL) SHARED_GECKO64_TARBALL := $(SRCDIR)/../gecko/$(GECKO64_TARBALL) SHARED_GECKO32_TARBALL := $(SRCDIR)/../gecko/$(GECKO32_TARBALL) SHARED_MONO_TARBALL := $(SRCDIR)/../mono/$(WINEMONO_TARBALL) -$(SHARED_BISON_TARBALL): - mkdir -p $(dir $@) - wget -O "$@" "$(BISON_TARBALL_URL)" - $(SHARED_GECKO64_TARBALL): mkdir -p $(dir $@) wget -O "$@" "$(GECKO64_TARBALL_URL)" @@ -335,7 +318,7 @@ $(SHARED_MONO_TARBALL): mkdir -p $(dir $@) wget -O "$@" "$(MONO_TARBALL_URL)" -downloads: $(SHARED_BISON_TARBALL) $(SHARED_GECKO64_TARBALL) $(SHARED_GECKO32_TARBALL) $(SHARED_MONO_TARBALL) +downloads: $(SHARED_GECKO64_TARBALL) $(SHARED_GECKO32_TARBALL) $(SHARED_MONO_TARBALL) ## ## dist/install -- steps to finalize the install @@ -460,14 +443,20 @@ GOAL_TARGETS += dist dist: $(DIST_TARGETS) wine gst_good vrclient lsteamclient steam dxvk vkd3d-proton | $(DST_DIR) echo `date '+%s'` `GIT_DIR=$(abspath $(SRCDIR)/.git) git describe --tags` > $(DIST_VERSION) cp $(DIST_VERSION) $(DST_BASE)/ - rm -rf $(abspath $(DIST_PREFIX)) && \ - WINEPREFIX=$(abspath $(DIST_PREFIX)) $(STEAM_RUNTIME_RUNSH) $(WINE_OUT_BIN) wineboot && \ - WINEPREFIX=$(abspath $(DIST_PREFIX)) $(STEAM_RUNTIME_RUNSH) $(WINE_OUT_SERVER) -w && \ - ln -s $(FONTLINKPATH)/LiberationSans-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/arial.ttf && \ - ln -s $(FONTLINKPATH)/LiberationSans-Bold.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/arialbd.ttf && \ - ln -s $(FONTLINKPATH)/LiberationSerif-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/times.ttf && \ - ln -s $(FONTLINKPATH)/LiberationMono-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/cour.ttf && \ - ln -s $(FONTLINKPATH)/SourceHanSansSCRegular.otf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/msyh.ttf + rm -rf $(abspath $(DIST_PREFIX)) + $(STEAM_RUNTIME_RUNSH) env \ + WINEPREFIX=$(abspath $(DIST_PREFIX)) \ + LD_LIBRARY_PATH=$(abspath $(DST_DIR)/lib64):$(abspath $(DST_DIR)/lib):$(STEAM_RUNTIME_LIB_PATH) \ + $(WINE_OUT_BIN) wineboot + $(STEAM_RUNTIME_RUNSH) env \ + WINEPREFIX=$(abspath $(DIST_PREFIX)) \ + LD_LIBRARY_PATH=$(abspath $(DST_DIR)/lib64):$(abspath $(DST_DIR)/lib):$(STEAM_RUNTIME_LIB_PATH) \ + $(WINE_OUT_SERVER) -w + ln -s $(FONTLINKPATH)/LiberationSans-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/arial.ttf + ln -s $(FONTLINKPATH)/LiberationSans-Bold.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/arialbd.ttf + ln -s $(FONTLINKPATH)/LiberationSerif-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/times.ttf + ln -s $(FONTLINKPATH)/LiberationMono-Regular.ttf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/cour.ttf + ln -s $(FONTLINKPATH)/SourceHanSansSCRegular.otf $(abspath $(DIST_PREFIX))/drive_c/windows/Fonts/msyh.ttf #The use of "arial" here is for compatibility with programs that require that exact string. These links do not point to Arial. #The use of "times" here is for compatibility with programs that require that exact string. This link does not point to Times New Roman. #The use of "cour" here is for compatibility with programs that require that exact string. This link does not point to Courier New. @@ -529,6 +518,9 @@ $(GLIB_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(GLIB_OBJ32) rm -f "$(abspath $(GLIB_OBJ32))"/meson-private/coredata.dat; \ fi cd "$(abspath $(GLIB))" && \ + CC="$(CC32)" \ + CXX="$(CXX32)" \ + PKG_CONFIG="$(PKG_CONFIG32)" \ meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GLIB_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GLIB_OBJ32))" ## glib goals @@ -610,6 +602,9 @@ $(GST_ORC_CONFIGURE_FILES32): $(MAKEFILE_DEP) glib32 | $(GST_ORC_OBJ32) fi cd "$(abspath $(GST_ORC))" && \ PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + CC="$(CC32)" \ + CXX="$(CXX32)" \ + PKG_CONFIG="$(PKG_CONFIG32)" \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GST_ORC_MESON_ARGS) $(MESON_STRIP_ARG) "$(abspath $(GST_ORC_OBJ32))" @@ -675,6 +670,9 @@ $(GSTREAMER_CONFIGURE_FILES32): $(MAKEFILE_DEP) gst_orc32 | $(GSTREAMER_OBJ32) fi cd "$(abspath $(GSTREAMER))" && \ PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + CC="$(CC32)" \ + CXX="$(CXX32)" \ + PKG_CONFIG="$(PKG_CONFIG32)" \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GSTREAMER_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GSTREAMER_OBJ32))" @@ -764,6 +762,9 @@ $(GST_BASE_CONFIGURE_FILES32): $(MAKEFILE_DEP) gstreamer32 | $(GST_BASE_OBJ32) fi cd "$(abspath $(GST_BASE))" && \ PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + CC="$(CC32)" \ + CXX="$(CXX32)" \ + PKG_CONFIG="$(PKG_CONFIG32)" \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GST_BASE_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GST_BASE_OBJ32))" @@ -878,6 +879,9 @@ $(GST_GOOD_CONFIGURE_FILES32): $(MAKEFILE_DEP) gst_base32 | $(GST_GOOD_OBJ32) fi cd "$(abspath $(GST_GOOD))" && \ PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + CC="$(CC32)" \ + CXX="$(CXX32)" \ + PKG_CONFIG="$(PKG_CONFIG32)" \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GST_GOOD_MESON_ARGS) $(MESON_STRIP_ARG) --buildtype=release "$(abspath $(GST_GOOD_OBJ32))" @@ -1048,17 +1052,20 @@ FAUDIO_CONFIGURE_FILES32 := $(FAUDIO_OBJ32)/Makefile FAUDIO_CONFIGURE_FILES64 := $(FAUDIO_OBJ64)/Makefile $(FAUDIO_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) -$(FAUDIO_CONFIGURE_FILES32): $(FAUDIO)/CMakeLists.txt $(MAKEFILE_DEP) $(CMAKE_BIN32) | $(FAUDIO_OBJ32) +$(FAUDIO_CONFIGURE_FILES32): $(FAUDIO)/CMakeLists.txt $(MAKEFILE_DEP) | $(FAUDIO_OBJ32) cd $(dir $@) && \ - ../$(CMAKE_BIN32) $(abspath $(FAUDIO)) \ + PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ + CC="$(CC32)" \ + CXX="$(CXX32)" \ + PKG_CONFIG="$(PKG_CONFIG32)" \ + cmake $(abspath $(FAUDIO)) \ -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR32))" \ - $(FAUDIO_CMAKE_FLAGS) \ - -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" + $(FAUDIO_CMAKE_FLAGS) $(FAUDIO_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) -$(FAUDIO_CONFIGURE_FILES64): $(FAUDIO)/CMakeLists.txt $(MAKEFILE_DEP) $(CMAKE_BIN64) | $(FAUDIO_OBJ64) +$(FAUDIO_CONFIGURE_FILES64): $(FAUDIO)/CMakeLists.txt $(MAKEFILE_DEP) | $(FAUDIO_OBJ64) cd $(dir $@) && \ - ../$(CMAKE_BIN64) $(abspath $(FAUDIO)) \ + cmake $(abspath $(FAUDIO)) \ -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR64))" \ $(FAUDIO_CMAKE_FLAGS) @@ -1251,7 +1258,7 @@ WINE32_MAKE_ARGS := \ # 64bit-configure $(WINE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) -$(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | faudio64 gst_base64 $(WINE_OBJ64) bison64 +$(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | faudio64 gst_base64 $(WINE_OBJ64) cd $(dir $@) && \ ../$(WINE)/configure \ --without-curses \ @@ -1259,28 +1266,28 @@ $(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | faudio64 gst_base64 $(WINE_OBJ64) b --disable-tests \ --prefix=$(abspath $(DST_DIR)) \ STRIP=$(STRIP_QUOTED) \ - BISON=$(abspath $(BISON_BIN64)) \ CFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g $(COMMON_FLAGS)" \ CXXFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g $(COMMON_FLAGS) -std=c++17" \ LDFLAGS=-L$(abspath $(TOOLS_DIR64))/lib \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \ + LD_LIBRARY_PATH=$(abspath $(TOOLS_DIR64))/lib \ CC=$(CC_QUOTED) \ CXX=$(CXX_QUOTED) # 32-bit configure $(WINE_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) -$(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | faudio32 gst_base32 $(WINE_OBJ32) bison32 +$(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | faudio32 gst_base32 $(WINE_OBJ32) cd $(dir $@) && \ ../$(WINE)/configure \ --without-curses \ --disable-tests \ --prefix=$(abspath $(WINE_DST32)) \ STRIP=$(STRIP_QUOTED) \ - BISON=$(abspath $(BISON_BIN32)) \ CFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g $(COMMON_FLAGS)" \ CXXFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g $(COMMON_FLAGS) -std=c++17" \ LDFLAGS=-L$(abspath $(TOOLS_DIR32))/lib \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ + LD_LIBRARY_PATH=$(abspath $(TOOLS_DIR32))/lib \ CC=$(CC_QUOTED) \ CXX=$(CXX_QUOTED) @@ -1427,141 +1434,10 @@ vrclient32: $(VRCLIENT_CONFIGURE_FILES32) | $(WINE_BUILDTOOLS32) $(filter $(MAKE cp -a ../$(VRCLIENT_OBJ32)/vrclient.dll.so ../$(DST_DIR)/lib/wine/ && \ cp -a ../$(VRCLIENT_OBJ32)/vrclient.dll.fake ../$(DST_DIR)/lib/wine/fakedlls/vrclient.dll -## -## cmake -- necessary for FAudio, not part of steam runtime -## - -# TODO Don't bother with this in native mode - -## Create & configure object directory for cmake - -CMAKE_CONFIGURE_FILES32 := $(CMAKE_OBJ32)/Makefile -CMAKE_CONFIGURE_FILES64 := $(CMAKE_OBJ64)/Makefile - -# 64-bit configure -$(CMAKE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) -$(CMAKE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(CMAKE_OBJ64) - cd "$(CMAKE_OBJ64)" && \ - ../$(CMAKE)/configure --parallel=$(SUBMAKE_JOBS) --prefix=$(abspath $(CMAKE_OBJ64))/built - -# 32-bit configure -$(CMAKE_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) -$(CMAKE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(CMAKE_OBJ32) - cd "$(CMAKE_OBJ32)" && \ - ../$(CMAKE)/configure --parallel=$(SUBMAKE_JOBS) --prefix=$(abspath $(CMAKE_OBJ32))/built - - -## cmake goals -CMAKE_TARGETS = cmake cmake_configure cmake32 cmake64 cmake_configure32 cmake_configure64 - -ALL_TARGETS += $(CMAKE_TARGETS) - -.PHONY: $(CMAKE_TARGETS) - -cmake_configure: $(CMAKE_CONFIGURE_FILES32) $(CMAKE_CONFIGURE_FILES64) - -cmake_configure32: $(CMAKE_CONFIGURE_FILES32) - -cmake_configure64: $(CMAKE_CONFIGURE_FILES64) - -cmake: cmake32 cmake64 - -# These have multiple targets that come from one invocation. The way to do that is to have both targets on a single -# intermediate. -.INTERMEDIATE: cmake64-intermediate cmake32-intermediate - -$(CMAKE_BIN64) cmake64: cmake64-intermediate - -cmake64-intermediate: SHELL = $(CONTAINER_SHELL64) -cmake64-intermediate: $(CMAKE_CONFIGURE_FILES64) $(filter $(MAKECMDGOALS),cmake64) - +$(MAKE) -C $(CMAKE_OBJ64) - +$(MAKE) -C $(CMAKE_OBJ64) install - touch $(CMAKE_BIN64) - -$(CMAKE_BIN32) cmake32: cmake32-intermediate - -cmake32-intermediate: SHELL = $(CONTAINER_SHELL32) -cmake32-intermediate: $(CMAKE_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),cmake32) - +$(MAKE) -C $(CMAKE_OBJ32) - +$(MAKE) -C $(CMAKE_OBJ32) install - touch $(CMAKE_BIN32) - -## -## bison -- necessary for wine, steam runtime version too old -## - -# TODO Don't bother with this in native mode - -$(BISON): - if [ -e "$(SRCDIR)/../bison/$(BISON_TARBALL)" ]; then \ - mkdir -p $(dir $@); \ - tar -xf "$(SRCDIR)/../bison/$(BISON_TARBALL)" -C "$(dir $@)"; \ - else \ - mkdir -p $(SRCDIR)/contrib/; \ - if [ ! -e "$(SRCDIR)/contrib/$(BISON_TARBALL)" ]; then \ - echo ">>>> Downloading bison. To avoid this in future, put it here: $(SRCDIR)/../bison/$(BISON_TARBALL)"; \ - wget -O "$(SRCDIR)/contrib/$(BISON_TARBALL)" "$(BISON_TARBALL_URL)"; \ - fi; \ - tar -xf "$(SRCDIR)/contrib/$(BISON_TARBALL)" -C "$(dir $@)"; \ - fi - -BISON_CONFIGURE_FILES32 := $(BISON_OBJ32)/Makefile -BISON_CONFIGURE_FILES64 := $(BISON_OBJ64)/Makefile - -# 64-bit configure -$(BISON_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) -$(BISON_CONFIGURE_FILES64): $(MAKEFILE_DEP) $(BISON) | $(BISON_OBJ64) - cd "$(BISON_OBJ64)" && \ - ../$(BISON)/configure --prefix=$(abspath $(BISON_OBJ64))/built LIBS='-lrt' - -# 32-bit configure -$(BISON_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) -$(BISON_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(BISON) | $(BISON_OBJ32) - cd "$(BISON_OBJ32)" && \ - ../$(BISON)/configure --prefix=$(abspath $(BISON_OBJ32))/built LIBS='-lrt' - - -## bison goals -BISON_TARGETS = bison bison_configure bison32 bison64 bison_configure32 bison_configure64 - -ALL_TARGETS += $(BISON_TARGETS) - -.PHONY: $(BISON_TARGETS) - -bison_configure: $(BISON_CONFIGURE_FILES32) $(BISON_CONFIGURE_FILES64) - -bison_configure32: $(BISON_CONFIGURE_FILES32) - -bison_configure64: $(BISON_CONFIGURE_FILES64) - -bison: bison32 bison64 - -# These have multiple targets that come from one invocation. The way to do that is to have both targets on a single -# intermediate. -.INTERMEDIATE: bison64-intermediate bison32-intermediate - -$(BISON_BIN64) bison64: bison64-intermediate - -bison64-intermediate: SHELL = $(CONTAINER_SHELL64) -bison64-intermediate: $(BISON_CONFIGURE_FILES64) $(filter $(MAKECMDGOALS),bison64) - +$(MAKE) -C $(BISON_OBJ64) - +$(MAKE) -C $(BISON_OBJ64) install - touch $(BISON_BIN64) - -$(BISON_BIN32) bison32: bison32-intermediate - -bison32-intermediate: SHELL = $(CONTAINER_SHELL32) -bison32-intermediate: $(BISON_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),bison32) - +$(MAKE) -C $(BISON_OBJ32) - +$(MAKE) -C $(BISON_OBJ32) install - touch $(BISON_BIN32) - ## ## dxvk ## -# TODO Builds outside container, could simplify a lot if it did not. - ## Create & configure object directory for dxvk ifneq ($(NO_DXVK),1) # May be disabled by configure @@ -1636,13 +1512,12 @@ WINEWIDL_CONFIGURE_FILES64 := $(WINEWIDL_OBJ64)/Makefile WINEWIDL_CONFIGURE_FILES32 := $(WINEWIDL_OBJ32)/Makefile $(WINEWIDL_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) -$(WINEWIDL_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(WINEWIDL_OBJ32) bison32 +$(WINEWIDL_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(WINEWIDL_OBJ32) cd $(dir $@) && \ ../$(WINE)/configure \ --without-curses \ --disable-tests \ STRIP=$(STRIP_QUOTED) \ - BISON=$(abspath $(BISON_BIN32)) \ CFLAGS=-I$(abspath $(TOOLS_DIR64))"/include -g $(COMMON_FLAGS)" \ LDFLAGS=-L$(abspath $(TOOLS_DIR32))/lib \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ @@ -1655,14 +1530,13 @@ $(WINEWIDL32): $(WINEWIDL_CONFIGURE_FILES32) make tools/widl $(WINEWIDL_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) -$(WINEWIDL_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(WINEWIDL_OBJ64) bison64 +$(WINEWIDL_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(WINEWIDL_OBJ64) cd $(dir $@) && \ ../$(WINE)/configure \ --without-curses \ --enable-win64 \ --disable-tests \ STRIP=$(STRIP_QUOTED) \ - BISON=$(abspath $(BISON_BIN64)) \ CFLAGS=-I$(abspath $(TOOLS_DIR64))"/include -g $(COMMON_FLAGS)" \ LDFLAGS=-L$(abspath $(TOOLS_DIR64))/lib \ PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \ diff --git a/cmake b/cmake deleted file mode 160000 index c4ab0980..00000000 --- a/cmake +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c4ab098097f4fe1bc85ee29c6de390dff435f63f diff --git a/steamrt-bootstrap.sh b/steamrt-bootstrap.sh deleted file mode 100755 index 15298547..00000000 --- a/steamrt-bootstrap.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# Expect to be setting up a container or chroot -if [[ $(stat -c %d:%i /) != $(stat -c %d:%i /proc/1/root/.) ]]; then - echo "Running in chroot environment. Continuing..." -elif [[ -f /.dockerenv ]]; then - echo "Running in docker environment. Continuing..." -else - echo "Script must be running in a chroot environment. Exiting..." - exit 1 -fi - -set -xe - -apt-get install -y gcc-5 g++-5 g++-5-multilib flex libosmesa6-dev libpcap-dev \ - libhal-dev libsane-dev libv4l-dev libgphoto2-2-dev libcapi20-dev \ - libgsm1-dev libmpg123-dev libvulkan-dev libxslt1-dev nasm yasm ccache -update-alternatives --install "$(command -v gcc)" gcc "$(command -v gcc-5)" 50 -update-alternatives --set gcc "$(command -v gcc-5)" -update-alternatives --install "$(command -v g++)" g++ "$(command -v g++-5)" 50 -update-alternatives --set g++ "$(command -v g++-5)" -update-alternatives --install "$(command -v cpp)" cpp-bin "$(command -v cpp-5)" 50 -update-alternatives --set cpp-bin "$(command -v cpp-5)" diff --git a/vagrant-user-setup.sh b/vagrant-user-setup.sh index e7c5495f..c0bd53a8 100755 --- a/vagrant-user-setup.sh +++ b/vagrant-user-setup.sh @@ -1,13 +1,5 @@ #!/bin/sh -#set up steam runtimes. remove these lines if building without the runtime -if [ ! -e "$HOME/steam-runtime" ]; then - git clone https://github.com/ValveSoftware/steam-runtime.git - ./steam-runtime/setup_docker.sh amd64 --extra-bootstrap=/home/vagrant/proton/steamrt-bootstrap.sh steam-proton-dev - ./steam-runtime/setup_docker.sh i386 --extra-bootstrap=/home/vagrant/proton/steamrt-bootstrap.sh steam-proton-dev32 - (cd steam-runtime && ./build-runtime.py --verbose --output=./runtime/) -fi - #build and install recent mingw-w64 if [ ! -e "$HOME/.local/bin/x86_64-w64-mingw32-gcc" ]; then mkdir -p $HOME/mingw-w64-build/