mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-24 20:51:35 +00:00
Host_Error and Host_EndGame use setjmp/longjmp to implement an exception of sorts, but this messes with tracy's state even with cleanup attributes. However, it turns out that those cleanup attributes are exactly how gcc implements C++ destructors, and so the standard Unwind api (part of libgcc) respects them (so long as -fexceptions is enabled for C). Thus... replace longjmp with an implementation that uses Unwind to unwind the stack and call the cleanup functions as needed. This is actually important for more than just tracy as the cleanup attributed vars can be thread locks.
225 lines
6.3 KiB
Makefile
225 lines
6.3 KiB
Makefile
## Process this file with automake to produce Makefile.in
|
|
|
|
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
EXTRA_DIST = \
|
|
ChangeLog configure.ac bootstrap \
|
|
$(top_srcdir)/.version \
|
|
config.d/git-version-gen \
|
|
tools/cross/droid/cross-configure.sh \
|
|
tools/cross/droid/cross-make.sh \
|
|
tools/cross/mingw/cross-configure.sh \
|
|
tools/cross/mingw/cross-make.sh \
|
|
tools/cross/mingw64/cross-configure.sh \
|
|
tools/cross/mingw64/cross-make.sh \
|
|
tools/cross/mipsel-linux/cross-configure.sh \
|
|
tools/cross/mipsel-linux/cross-make.sh \
|
|
tools/cross/ps3-elf/cross-configure.sh \
|
|
tools/cross/ps3-elf/cross-make.sh \
|
|
tools/gas2masm/Makefile tools/gas2masm/gas2masm.c \
|
|
tools/gas2masm/gas2masm.dsp tools/gas2masm/gas2masm.dsw \
|
|
tools/gas2masm/gas2masm.mak tools/gas2masm/gas2masm.mdp
|
|
|
|
NOCONV_DIST= \
|
|
$(distdir)/include/win32/resources/icon1Vista.ico \
|
|
$(distdir)/include/win32/resources/icon1XP.ico
|
|
|
|
BUILT_SOURCES = $(top_srcdir)/.version
|
|
AM_CFLAGS= $(TRACY_CFLAGS) -fexceptions -include qftracy.h
|
|
AM_CXXFLAGS= $(TRACY_CFLAGS) -include qftracy.h
|
|
AM_CPPFLAGS= -I$(top_srcdir)/include $(UNWIND_CFLAGS) $(PTHREAD_CFLAGS) $(FNM_FLAGS) $(NCURSES_CFLAGS) $(FREETYPE_CFLAGS) $(HARFBUZZ_CFLAGS) $(VULKAN_CPPFLAGS) $(LIBCURL_CFLAGS)
|
|
|
|
common_ldflags= -export-dynamic @STATIC@ @PTHREAD_LDFLAGS@
|
|
|
|
SUFFICES =
|
|
TESTS =
|
|
XFAIL_TESTS =
|
|
bin_PROGRAMS =
|
|
bin_SCRIPTS =
|
|
check_PROGRAMS =
|
|
lib_LTLIBRARIES =
|
|
man_MANS =
|
|
noinst_LTLIBRARIES =
|
|
noinst_LIBRARIES =
|
|
noinst_PROGRAMS =
|
|
noinst_HEADERS =
|
|
noinst_PYTHON =
|
|
plugin_LTLIBRARIES =
|
|
|
|
RANLIB=touch
|
|
ARFLAGS=cr
|
|
|
|
EXTRA_HEADERS =
|
|
EXTRA_LTLIBRARIES =
|
|
EXTRA_PROGRAMS =
|
|
EXTRA_LIBRARIES =
|
|
|
|
CLEANFILES =
|
|
DISTCLEANFILES =
|
|
|
|
YFLAGS = -v -d -Wno-yacc -Werror
|
|
PTHREAD_LDFLAGS=@PTHREAD_LDFLAGS@
|
|
PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
|
|
|
|
if HAVE_TRACY
|
|
tracy_src=tracy/public/TracyClient.cpp
|
|
else
|
|
tracy_src=
|
|
endif
|
|
|
|
lib_ldflags=-version-info $(QUAKE_LIBRARY_VERSION_INFO) \
|
|
-rpath $(libdir) -no-undefined
|
|
plugin_ldflags= @plugin_ldflags@ -avoid-version -module -rpath $(plugindir)
|
|
plugin_libadd= @plugin_libadd@
|
|
|
|
SDL_LIBS= @SDL_LIBS@
|
|
XMMS_LIBS= @XMMS_LIBS@
|
|
|
|
PAK=$(top_builddir)/pak$(EXEEXT)
|
|
QFCC_DEP=qfcc$(EXEEXT)
|
|
QFCC=$(top_builddir)/$(QFCC_DEP)
|
|
QWAQ=$(top_builddir)/ruamoko/qwaq/qwaq-cmd$(EXEEXT)
|
|
|
|
GZ=@progs_gz@
|
|
|
|
V_QFCC = $(V_QFCC_@AM_V@)
|
|
V_QFCC_ = $(V_QFCC_@AM_DEFAULT_V@)
|
|
V_QFCC_0 = @echo " QFCC " $@;
|
|
V_QFCC_1 =
|
|
|
|
V_QFCCLD = $(V_QFCCLD_@AM_V@)
|
|
V_QFCCLD_ = $(V_QFCCLD_@AM_DEFAULT_V@)
|
|
V_QFCCLD_0 = @echo " QFCCLD " $@;
|
|
V_QFCCLD_1 =
|
|
|
|
QCSYSTEM=--no-default-paths -I$(top_srcdir) -I$(top_srcdir)/ruamoko/include -I$(top_srcdir)/include
|
|
QCFLAGS=-qq -O -g -Werror -Wall -Wno-integer-divide
|
|
QCPPFLAGS=$(QCSYSTEM)
|
|
QCLINKFLAGS=--no-default-paths -Lruamoko/lib
|
|
QCOMPILE=$(QFCC) $(QCFLAGS) $(QCPPFLAGS)
|
|
QLINK=$(QFCC) $(QCFLAGS) $(QCLINKFLAGS)
|
|
MKDIR_P = @MKDIR_P@
|
|
|
|
am__mv = mv -f
|
|
|
|
SUFFIXES=.o .r .pas
|
|
.r.o:
|
|
$(V_QFCC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
|
$(QCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tqo -c -o $@ $< &&\
|
|
sed -i -e '1s@:@: $(QFCC_DEP)@' $$depbase.Tqo &&\
|
|
$(am__mv) $$depbase.Tqo $$depbase.Qo
|
|
.pas.o:
|
|
$(V_QFCC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
|
$(QCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tqo -c -o $@ $< &&\
|
|
sed -i -e '1s@:@: $(QFCC_DEP)@' $$depbase.Tqo &&\
|
|
$(am__mv) $$depbase.Tqo $$depbase.Qo
|
|
|
|
qcautodep = $(join $(addsuffix $(DEPDIR)/,$(dir $(basename $(1)))),$(addsuffix .Qo,$(notdir $(basename $(basename $(1))))))
|
|
r_depfiles_remade=
|
|
pas_depfiles_remade=
|
|
|
|
V_PY = $(V_PY_@AM_V@)
|
|
V_PY_ = $(V_PY_@AM_DEFAULT_V@)
|
|
V_PY_0 = @echo " PY " $@;
|
|
V_PY_1 =
|
|
|
|
V_GLSLANG = $(V_GLSLANG_@AM_V@)
|
|
V_GLSLANG_ = $(V_GLSLANG_@AM_DEFAULT_V@)
|
|
V_GLSLANG_0 = @echo " GLSLANG " $@;
|
|
V_GLSLANG_1 =
|
|
|
|
V_XXD = $(V_XXD_@AM_V@)
|
|
V_XXD_ = $(V_XXD_@AM_DEFAULT_V@)
|
|
V_XXD_0 = @echo " XXD " $@;
|
|
V_XXD_1 =
|
|
|
|
V_SED = $(V_SED_@AM_V@)
|
|
V_SED_ = $(V_SED_@AM_DEFAULT_V@)
|
|
V_SED_0 = @echo " SED " $@;
|
|
V_SED_1 =
|
|
|
|
SUFFICES += .plist .plc
|
|
.plist.plc:
|
|
$(V_SED)sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/\\n"/' $< > $@.t &&\
|
|
$(am__mv) $@.t $@
|
|
|
|
%.spv: %
|
|
@$(mkdir_p) $(builddir)/`dirname $@`
|
|
$(V_GLSLANG)(((($(GLSLANGVALIDATOR) -V $< -o $@; echo $$? >&3) | sed -e '1d' 1>&2) 3>&1) | (read xs; exit $$xs))
|
|
|
|
%.spvc: %
|
|
@$(mkdir_p) $(builddir)/`dirname $@`
|
|
$(V_GLSLANG)(((($(GLSLANGVALIDATOR) --vn `basename $< | tr . _` -V $< -o $@; echo $$? >&3) | sed -e '1d' 1>&2) 3>&1) | (read xs; exit $$xs))
|
|
|
|
sharepath = @sharepath@
|
|
shaderdir = @shaderdir@
|
|
shader_DATA =
|
|
|
|
include doc/Makemodule.am
|
|
include RPM/Makemodule.am
|
|
include debian/Makemodule.am
|
|
include desktop/Makemodule.am
|
|
include pkg-config/Makemodule.am
|
|
include include/Makemodule.am
|
|
include libs/Makemodule.am
|
|
include hw/Makemodule.am
|
|
include nq/Makemodule.am
|
|
include qtv/Makemodule.am
|
|
include qw/Makemodule.am
|
|
include tools/Makemodule.am
|
|
include ruamoko/Makemodule.am
|
|
|
|
DISTCLEANFILES += $(r_depfiles_remade) $(pas_depfiles_remade)
|
|
CLEANFILES += $(shader_DATA)
|
|
|
|
$(r_depfiles_remade):
|
|
$(MKDIR_P) $(@D)
|
|
echo '$@' | sed -e 's@\$(DEPDIR)/@@' -e 's@\(.*\)\.Qo$$@\1.o: $(top_srcdir)/\1.r $(QFCC)@' >$@-t && $(am__mv) $@-t $@
|
|
|
|
$(pas_depfiles_remade):
|
|
$(MKDIR_P) $(@D)
|
|
echo '$@' | sed -e 's@\$(DEPDIR)/@@' -e 's@\(.*\)\.Qo$$@\1.o: $(top_srcdir)/\1.pas $(QFCC)@' >$@-t && $(am__mv) $@-t $@
|
|
|
|
am--depfiles: $(am__depfiles_remade) $(r_depfiles_remade) $(pas_depfiles_remade)
|
|
echo findme $(ruamoko_gui_libgui_a_dep)
|
|
|
|
changelog: ChangeLog
|
|
ChangeLog: FORCE
|
|
@if test -d "$(top_srcdir)/.git"; then \
|
|
echo "creating ChangeLog" && \
|
|
( cd "$(top_srcdir)" && \
|
|
echo 'This file is generated by Makefile; do not edit.'; \
|
|
echo; \
|
|
./missing --run git log --abbrev-commit --stat --no-merges \
|
|
) > $(top_builddir)/ChangeLog; \
|
|
else \
|
|
echo 'A git clone is required to generate ChangeLog' >&2; \
|
|
fi
|
|
|
|
dist-zip: distdir
|
|
-chmod -R a+r $(distdir)
|
|
ZIP="-r9q" zip $(distdir).zip $(NOCONV_DIST)
|
|
-rm -f $(NOCONV_DIST)
|
|
ZIP="-r9ql" zip $(distdir).zip $(distdir)
|
|
-rm -rf $(distdir)
|
|
|
|
dist-bz2: distdir
|
|
-chmod -R a+r $(distdir)
|
|
$(AMTAR) -cho $(distdir) | bzip2 -9 > $(distdir).tar.bz2
|
|
-rm -rf $(distdir)
|
|
|
|
dist-all-local: distdir
|
|
-chmod -R a+r $(distdir)
|
|
GZIP=$(GZIP_ENV) $(AMTAR) chozf $(distdir).tar.gz $(distdir)
|
|
$(AMTAR) -cho $(distdir) | bzip2 -9 > $(distdir).tar.bz2
|
|
ZIP="-r9q" zip $(distdir).zip $(NOCONV_DIST)
|
|
-rm -f $(NOCONV_DIST)
|
|
ZIP="-r9ql" zip $(distdir).zip $(distdir)
|
|
-rm -rf $(distdir)
|
|
|
|
$(top_srcdir)/.version:
|
|
echo $(VERSION) > $@-t && mv $@-t $@
|
|
dist-hook:
|
|
echo $(VERSION) > $(distdir)/.tarball-version
|
|
|
|
FORCE:
|