From 8b81f7c69e32109996f374ccda6d9d1beb7c010a Mon Sep 17 00:00:00 2001 From: John Schoenick Date: Wed, 22 Aug 2018 12:36:30 -0700 Subject: [PATCH] makefile_base.mak: Include cmake, build for openal Removes need for special cmake setup to get builds working, as Steam Runtime currently doesn't provide cmake 3 --- .gitmodules | 3 ++ build/makefile_base.mak | 65 +++++++++++++++++++++++++++++++++++++---- cmake | 1 + 3 files changed, 64 insertions(+), 5 deletions(-) create mode 160000 cmake diff --git a/.gitmodules b/.gitmodules index 12beaf82..476c6d54 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ [submodule "openvr"] path = openvr url = https://github.com/ValveSoftware/openvr +[submodule "cmake"] + path = cmake + url = https://github.com/Kitware/CMake diff --git a/build/makefile_base.mak b/build/makefile_base.mak index fa4551a4..a045b17f 100644 --- a/build/makefile_base.mak +++ b/build/makefile_base.mak @@ -121,6 +121,12 @@ DXVK := $(SRCDIR)/dxvk DXVK_OBJ32 := ./obj-dxvk32 DXVK_OBJ64 := ./obj-dxvk64 +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 + ## Object directories OBJ_DIRS := $(TOOLS_DIR32) $(TOOLS_DIR64) \ $(FREETYPE_OBJ32) $(FREETYPE_OBJ64) \ @@ -129,7 +135,8 @@ OBJ_DIRS := $(TOOLS_DIR32) $(TOOLS_DIR64) \ $(LSTEAMCLIENT_OBJ32) $(LSTEAMCLIENT_OBJ64) \ $(WINE_OBJ32) $(WINE_OBJ64) \ $(VRCLIENT_OBJ32) $(VRCLIENT_OBJ64) \ - $(DXVK_OBJ32) $(DXVK_OBJ64) + $(DXVK_OBJ32) $(DXVK_OBJ64) \ + $(CMAKE_OBJ32) $(CMAKE_OBJ64) $(OBJ_DIRS): mkdir -p $@ @@ -276,17 +283,17 @@ OPENAL_CONFIGURE_FILES64 := $(OPENAL_OBJ64)/Makefile # 64bit-configure $(OPENAL_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) -$(OPENAL_CONFIGURE_FILES64): $(OPENAL)/CMakeLists.txt $(MAKEFILE_DEP) | $(OPENAL_OBJ64) +$(OPENAL_CONFIGURE_FILES64): $(OPENAL)/CMakeLists.txt $(MAKEFILE_DEP) $(CMAKE_BIN64) | $(OPENAL_OBJ64) cd $(dir $@) && \ - cmake $(abspath $(OPENAL)) -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR64))" \ + ../$(CMAKE_BIN64) $(abspath $(OPENAL)) -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR64))" \ -DALSOFT_EXAMPLES=Off -DALSOFT_UTILS=Off -DALSOFT_TESTS=Off \ -DCMAKE_INSTALL_LIBDIR="lib" # 32-bit configure $(OPENAL_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) -$(OPENAL_CONFIGURE_FILES32): $(OPENAL)/CMakeLists.txt $(MAKEFILE_DEP) | $(OPENAL_OBJ32) +$(OPENAL_CONFIGURE_FILES32): $(OPENAL)/CMakeLists.txt $(MAKEFILE_DEP) $(CMAKE_BIN32) | $(OPENAL_OBJ32) cd $(dir $@) && \ - cmake $(abspath $(OPENAL)) \ + ../$(CMAKE_BIN32) $(abspath $(OPENAL)) \ -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR32))" \ -DALSOFT_EXAMPLES=Off -DALSOFT_UTILS=Off -DALSOFT_TESTS=Off \ -DCMAKE_INSTALL_LIBDIR="lib" \ @@ -697,6 +704,54 @@ vrclient32: $(VRCLIENT_CONFIGURE_FILES32) 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 openal, not part of steam runtime +## + +# FIXME 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 + +.PHONY: cmake cmake_configure cmake32 cmake64 cmake_configure32 cmake_configure64 + +cmake_configure: $(CMAKE_CONFIGURE_FILES32) $(CMAKE_CONFIGURE_FILES64) + +cmake_configure32: $(CMAKE_CONFIGURE_FILES32) + +cmake_configure64: $(CMAKE_CONFIGURE_FILES64) + +cmake: cmake32 cmake64 + +$(CMAKE_BIN64) cmake64: SHELL = $(CONTAINER_SHELL64) +$(CMAKE_BIN64) cmake64: $(CMAKE_CONFIGURE_FILES64) + cd $(CMAKE_OBJ64) && \ + $(MAKE) && $(MAKE) install && \ + touch ../$(CMAKE_BIN64) + +$(CMAKE_BIN32) cmake32: SHELL = $(CONTAINER_SHELL32) +$(CMAKE_BIN32) cmake32: $(CMAKE_CONFIGURE_FILES32) + cd $(CMAKE_OBJ32) && \ + $(MAKE) && $(MAKE) install && \ + touch ../$(CMAKE_BIN32) + ## ## dxvk ## diff --git a/cmake b/cmake new file mode 160000 index 00000000..c4ab0980 --- /dev/null +++ b/cmake @@ -0,0 +1 @@ +Subproject commit c4ab098097f4fe1bc85ee29c6de390dff435f63f