makefile_base.mak: Make depending on the makefile itself optional

Many of the configure steps below depend on the makefile itself, such
that they are dirtied by changing the recipes that create them.  This
can be annoying when working on the makefile, allow disabling this via

    make NO_MAKEFILE_DEPENDENCY=1
This commit is contained in:
John Schoenick 2018-08-20 17:03:16 -07:00
parent 5c1306671d
commit e95225687f

View File

@ -40,7 +40,15 @@ WITHOUT_X :=
INSTALL_PROGRAM_FLAGS := INSTALL_PROGRAM_FLAGS :=
SRCDIR := .. SRCDIR := ..
MAKEFILE := ./Makefile
# Many of the configure steps below depend on the makefile itself, such that they are dirtied by changing the recipes
# that create them. This can be annoying when working on the makefile, building with NO_MAKEFILE_DEPENDENCY=1 disables
# this.
MAKEFILE_DEP := ./Makefile
ifeq ($(NO_MAKEFILE_DEPENDENCY),1)
MAKEFILE_DEP :=
endif
TOOLS_DIR32 := ./obj-tools32 TOOLS_DIR32 := ./obj-tools32
TOOLS_DIR64 := ./obj-tools64 TOOLS_DIR64 := ./obj-tools64
DST_DIR := ./dist DST_DIR := ./dist
@ -144,14 +152,14 @@ FREETYPE_CONFIGURE_FILES64 := $(FREETYPE_OBJ64)/unix-cc.mk $(FREETYPE_OBJ64)/Mak
# 64-bit configure # 64-bit configure
# FIXME --prefix="$TOOLS_DIR64" # FIXME --prefix="$TOOLS_DIR64"
$(FREETYPE_CONFIGURE_FILES64): $(FREETYPE_AUTOGEN_FILES) $(MAKEFILE) | $(FREETYPE_OBJ64) $(FREETYPE_CONFIGURE_FILES64): $(FREETYPE_AUTOGEN_FILES) $(MAKEFILE_DEP) | $(FREETYPE_OBJ64)
cd $(dir $@) && \ cd $(dir $@) && \
$(abspath $(FREETYPE)/configure) CC="$(CC)" CXX="$(CXX)" --without-png --host x86_64-apple-darwin \ $(abspath $(FREETYPE)/configure) CC="$(CC)" CXX="$(CXX)" --without-png --host x86_64-apple-darwin \
PKG_CONFIG=false && \ PKG_CONFIG=false && \
echo 'LIBRARY := libprotonfreetype' >> unix-cc.mk echo 'LIBRARY := libprotonfreetype' >> unix-cc.mk
# 32bit-configure # 32bit-configure
$(FREETYPE_CONFIGURE_FILES32): $(FREETYPE_AUTOGEN_FILES) $(MAKEFILE) | $(FREETYPE_OBJ32) $(FREETYPE_CONFIGURE_FILES32): $(FREETYPE_AUTOGEN_FILES) $(MAKEFILE_DEP) | $(FREETYPE_OBJ32)
cd $(dir $@) && \ cd $(dir $@) && \
$(abspath $(FREETYPE)/configure) CC="$(CC)" CXX="$(CXX)" --without-png --host i686-apple-darwin \ $(abspath $(FREETYPE)/configure) CC="$(CC)" CXX="$(CXX)" --without-png --host i686-apple-darwin \
CFLAGS='-m32 -g -O2' LDFLAGS=-m32 PKG_CONFIG=false && \ CFLAGS='-m32 -g -O2' LDFLAGS=-m32 PKG_CONFIG=false && \
@ -184,14 +192,14 @@ OPENAL_CONFIGURE_FILES64 := $(OPENAL_OBJ64)/Makefile
# 64bit-configure # 64bit-configure
$(OPENAL_CONFIGURE_FILES64): $(OPENAL)/CMakeLists.txt $(MAKEFILE) | $(OPENAL_OBJ64) $(OPENAL_CONFIGURE_FILES64): $(OPENAL)/CMakeLists.txt $(MAKEFILE_DEP) | $(OPENAL_OBJ64)
cd $(dir $@) && \ cd $(dir $@) && \
cmake $(abspath $(OPENAL)) -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR64))" \ cmake $(abspath $(OPENAL)) -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR64))" \
-DALSOFT_EXAMPLES=Off -DALSOFT_UTILS=Off -DALSOFT_TESTS=Off \ -DALSOFT_EXAMPLES=Off -DALSOFT_UTILS=Off -DALSOFT_TESTS=Off \
-DCMAKE_INSTALL_LIBDIR="lib" -DCMAKE_INSTALL_LIBDIR="lib"
# 32-bit configure # 32-bit configure
$(OPENAL_CONFIGURE_FILES32): $(OPENAL)/CMakeLists.txt $(MAKEFILE) | $(OPENAL_OBJ32) $(OPENAL_CONFIGURE_FILES32): $(OPENAL)/CMakeLists.txt $(MAKEFILE_DEP) | $(OPENAL_OBJ32)
cd $(dir $@) && \ cd $(dir $@) && \
cmake $(abspath $(OPENAL)) \ cmake $(abspath $(OPENAL)) \
-DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR32))" \ -DCMAKE_INSTALL_PREFIX="$(abspath $(TOOLS_DIR32))" \
@ -239,7 +247,7 @@ FFMPEG_CONFIGURE_FILES32 := $(FFMPEG_OBJ32)/Makefile
FFMPEG_CONFIGURE_FILES64 := $(FFMPEG_OBJ64)/Makefile FFMPEG_CONFIGURE_FILES64 := $(FFMPEG_OBJ64)/Makefile
# 64bit-configure # 64bit-configure
$(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE) | $(FFMPEG_OBJ64) $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ64)
cd $(dir $@) && \ cd $(dir $@) && \
$(abspath $(FFMPEG))/configure \ $(abspath $(FFMPEG))/configure \
--cc="$(CC)" --cxx="$(CXX)" \ --cc="$(CC)" --cxx="$(CXX)" \
@ -273,7 +281,7 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE) | $(FFMPEG_OBJ64)
[ ! -f $(dir $@)/Makefile ] || touch $(dir $@)/Makefile [ ! -f $(dir $@)/Makefile ] || touch $(dir $@)/Makefile
# 32-bit configure # 32-bit configure
$(FFMPEG_CONFIGURE_FILES32): $(FFMPEG)/configure $(MAKEFILE) | $(FFMPEG_OBJ32) $(FFMPEG_CONFIGURE_FILES32): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ32)
cd $(dir $@) && \ cd $(dir $@) && \
$(abspath $(FFMPEG))/configure \ $(abspath $(FFMPEG))/configure \
--cc="$(CC)" --cxx="$(CXX)" \ --cc="$(CC)" --cxx="$(CXX)" \
@ -341,7 +349,7 @@ LSTEAMCLIENT_CONFIGURE_FILES32 := $(LSTEAMCLIENT_OBJ32)/Makefile
LSTEAMCLIENT_CONFIGURE_FILES64 := $(LSTEAMCLIENT_OBJ64)/Makefile LSTEAMCLIENT_CONFIGURE_FILES64 := $(LSTEAMCLIENT_OBJ64)/Makefile
# 64bit-configure # 64bit-configure
$(LSTEAMCLIENT_CONFIGURE_FILES64): $(LSTEAMCLIENT) $(WINEMAKER) $(MAKEFILE) | $(LSTEAMCLIENT_OBJ64) $(LSTEAMCLIENT_CONFIGURE_FILES64): $(LSTEAMCLIENT) $(WINEMAKER) $(MAKEFILE_DEP) | $(LSTEAMCLIENT_OBJ64)
cd $(dir $@) && \ cd $(dir $@) && \
$(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt \ $(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt \
-DSTEAM_API_EXPORTS \ -DSTEAM_API_EXPORTS \
@ -358,7 +366,7 @@ $(LSTEAMCLIENT_CONFIGURE_FILES64): $(LSTEAMCLIENT) $(WINEMAKER) $(MAKEFILE) | $(
echo >> $(dir $@)/Makefile 'lsteamclient_dll_LDFLAGS := $$(patsubst %.spec,$$(SRCDIR)/%.spec,$$(lsteamclient_dll_LDFLAGS))' echo >> $(dir $@)/Makefile 'lsteamclient_dll_LDFLAGS := $$(patsubst %.spec,$$(SRCDIR)/%.spec,$$(lsteamclient_dll_LDFLAGS))'
# 32-bit configure # 32-bit configure
$(LSTEAMCLIENT_CONFIGURE_FILES32): $(LSTEAMCLIENT) $(WINEMAKER) $(MAKEFILE) | $(LSTEAMCLIENT_OBJ32) $(LSTEAMCLIENT_CONFIGURE_FILES32): $(LSTEAMCLIENT) $(WINEMAKER) $(MAKEFILE_DEP) | $(LSTEAMCLIENT_OBJ32)
cd $(dir $@) && \ cd $(dir $@) && \
$(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt --wine32 \ $(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt --wine32 \
-DSTEAM_API_EXPORTS \ -DSTEAM_API_EXPORTS \
@ -411,7 +419,7 @@ WINE_CONFIGURE_FILES32 := $(WINE_OBJ32)/Makefile
WINE_CONFIGURE_FILES64 := $(WINE_OBJ64)/Makefile WINE_CONFIGURE_FILES64 := $(WINE_OBJ64)/Makefile
# 64bit-configure # 64bit-configure
$(WINE_CONFIGURE_FILES64): $(MAKEFILE) | $(WINE_OBJ64) $(WINE_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(WINE_OBJ64)
cd $(dir $@) && \ cd $(dir $@) && \
STRIP="$(STRIP)" \ STRIP="$(STRIP)" \
CFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g -O2" \ CFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g -O2" \
@ -433,7 +441,7 @@ $(WINE_CONFIGURE_FILES64): $(MAKEFILE) | $(WINE_OBJ64)
--enable-win64 --disable-tests --prefix="$(abspath $(DST_DIR))" --enable-win64 --disable-tests --prefix="$(abspath $(DST_DIR))"
# 32-bit configure # 32-bit configure
$(WINE_CONFIGURE_FILES32): $(MAKEFILE) | $(WINE_OBJ32) $(WINE_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(WINE_OBJ32)
cd $(dir $@) && \ cd $(dir $@) && \
STRIP="$(STRIP)" \ STRIP="$(STRIP)" \
CFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g -O2" \ CFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g -O2" \
@ -508,7 +516,7 @@ VRCLIENT_CONFIGURE_FILES64 := $(VRCLIENT_OBJ64)/Makefile
# The source directory for vrclient32 is a synthetic symlink clone of the oddly named vrclient_x64 with the spec files # The source directory for vrclient32 is a synthetic symlink clone of the oddly named vrclient_x64 with the spec files
# renamed. # renamed.
$(VRCLIENT32): $(VRCLIENT) $(MAKEFILE) $(VRCLIENT32): $(VRCLIENT) $(MAKEFILE_DEP)
rm -rf ./$(VRCLIENT32) rm -rf ./$(VRCLIENT32)
mkdir -p $(VRCLIENT32)/vrclient mkdir -p $(VRCLIENT32)/vrclient
cd $(VRCLIENT32)/vrclient && \ cd $(VRCLIENT32)/vrclient && \
@ -516,7 +524,7 @@ $(VRCLIENT32): $(VRCLIENT) $(MAKEFILE)
mv $(VRCLIENT32)/vrclient/vrclient_x64.spec $(VRCLIENT32)/vrclient/vrclient.spec mv $(VRCLIENT32)/vrclient/vrclient_x64.spec $(VRCLIENT32)/vrclient/vrclient.spec
# 64bit-configure # 64bit-configure
$(VRCLIENT_CONFIGURE_FILES64): $(MAKEFILE) $(VRCLIENT) $(VRCLIENT)/vrclient_x64 | $(VRCLIENT_OBJ64) $(VRCLIENT_CONFIGURE_FILES64): $(MAKEFILE_DEP) $(VRCLIENT) $(VRCLIENT)/vrclient_x64 | $(VRCLIENT_OBJ64)
cd $(VRCLIENT) && \ cd $(VRCLIENT) && \
$(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt \ $(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt \
--nosource-fix --nolower-include --nodlls --nomsvcrt \ --nosource-fix --nolower-include --nodlls --nomsvcrt \
@ -534,7 +542,7 @@ $(VRCLIENT_CONFIGURE_FILES64): $(MAKEFILE) $(VRCLIENT) $(VRCLIENT)/vrclient_x64
echo >> $(dir $@)/Makefile 'vrclient_x64_dll_LDFLAGS := $$(patsubst %.spec,$$(SRCDIR)/%.spec,$$(vrclient_x64_dll_LDFLAGS))' echo >> $(dir $@)/Makefile 'vrclient_x64_dll_LDFLAGS := $$(patsubst %.spec,$$(SRCDIR)/%.spec,$$(vrclient_x64_dll_LDFLAGS))'
# 32-bit configure # 32-bit configure
$(VRCLIENT_CONFIGURE_FILES32): $(MAKEFILE) $(VRCLIENT32) | $(VRCLIENT_OBJ32) $(VRCLIENT_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(VRCLIENT32) | $(VRCLIENT_OBJ32)
$(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt \ $(WINEMAKER) --nosource-fix --nolower-include --nodlls --nomsvcrt \
--wine32 \ --wine32 \
-I"$(abspath $(TOOLS_DIR32))"/include/ \ -I"$(abspath $(TOOLS_DIR32))"/include/ \
@ -596,7 +604,7 @@ DXVK_CONFIGURE_FILES32 := $(DXVK_OBJ32)/build.ninja
DXVK_CONFIGURE_FILES64 := $(DXVK_OBJ64)/build.ninja DXVK_CONFIGURE_FILES64 := $(DXVK_OBJ64)/build.ninja
# 64bit-configure # 64bit-configure
$(DXVK_CONFIGURE_FILES64): $(MAKEFILE) | $(DXVK_OBJ64) $(DXVK_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(DXVK_OBJ64)
cd "$(DXVK)" && \ cd "$(DXVK)" && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \
meson --prefix="$(abspath $(DXVK_OBJ64))" --cross-file build-win64.txt "$(abspath $(DXVK_OBJ64))" meson --prefix="$(abspath $(DXVK_OBJ64))" --cross-file build-win64.txt "$(abspath $(DXVK_OBJ64))"
@ -605,7 +613,7 @@ $(DXVK_CONFIGURE_FILES64): $(MAKEFILE) | $(DXVK_OBJ64)
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" meson configure -Dbuildtype=release PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" meson configure -Dbuildtype=release
# 32-bit configure # 32-bit configure
$(DXVK_CONFIGURE_FILES32): $(MAKEFILE) | $(DXVK_OBJ32) $(DXVK_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(DXVK_OBJ32)
cd "$(DXVK)" && \ cd "$(DXVK)" && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \
meson --prefix="$(abspath $(DXVK_OBJ32))" --cross-file build-win32.txt "$(abspath $(DXVK_OBJ32))" meson --prefix="$(abspath $(DXVK_OBJ32))" --cross-file build-win32.txt "$(abspath $(DXVK_OBJ32))"
@ -646,7 +654,6 @@ dxvk32: $(DXVK_CONFIGURE_FILES32)
cp "$(DXVK_OBJ32)"/bin/d3d11.dll "$(DST_DIR)"/lib/wine/dxvk/ cp "$(DXVK_OBJ32)"/bin/d3d11.dll "$(DST_DIR)"/lib/wine/dxvk/
( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version ( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version
# TODO FIXME OS X # TODO FIXME OS X
# FIXME TODO build_libpng # FIXME TODO build_libpng
# FIXME TODO build_libjpeg # FIXME TODO build_libjpeg