X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2FMakefile;h=ee9e7e64ab9c6e6016fd362b3e2faca5a801b369;hb=060a811f3d8b7aaf8c15b5e450c9975e41a29922;hp=bd17dad6aaf5e93c0c729891009cfedfa85ca258;hpb=fdbfb6f9364d8aeae67e108400a6bd1dd37dc0b7;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/Makefile b/qcsrc/Makefile index bd17dad6a..ee9e7e64a 100644 --- a/qcsrc/Makefile +++ b/qcsrc/Makefile @@ -1,5 +1,5 @@ CPP := cc -xc -E -QCC ?= gmqcc +QCC ?= ../../../../gmqcc/gmqcc PROGS_OUT ?= .. WORKDIR ?= ../.tmp @@ -14,21 +14,25 @@ ENABLE_DEBUGTRACE ?= 0 BUILD_MOD ?= ifndef ZIP - ifneq ($(shell which zip),) - ZIP := zip -9 + ifneq ($(shell which zip 2>/dev/null),) + ZIP := zip -9mD endif - ifneq ($(shell which 7z),) - ZIP := 7z a -tzip -mx=9 + ifneq ($(shell which 7z 2>/dev/null),) + ZIP := 7z a -tzip -mx=9 -sdel endif - ifneq ($(shell which 7za),) - ZIP := 7za a -tzip -mx=9 + ifneq ($(shell which 7za 2>/dev/null),) + ZIP := 7za a -tzip -mx=9 -sdel endif ifndef ZIP - $(warning "No zip in ($(PATH))") + $(warning "No zip / 7z / 7za in ($(PATH))") ZIP := : zip_not_found endif endif +# Set to empty string to temporarily enable warnings when debugging +QCCFLAGS_WERROR ?= \ + -Werror + # We eventually need to get rid of these QCCFLAGS_WTFS ?= \ -Wno-field-redeclared @@ -48,7 +52,8 @@ QCCFLAGS ?= \ -std=gmqcc \ -Ooverlap-locals \ -O3 \ - -Werror -Wall \ + $(QCCFLAGS_WERROR) \ + -Wall \ $(QCCFLAGS_WTFS) \ -flno -futf8 -fno-bail-on-werror \ -frelaxed-switch -freturn-assignments \ @@ -67,32 +72,50 @@ clean: | $(WORKDIR) $(RM) $(PROGS_OUT)/csprogs.dat $(RM) $(PROGS_OUT)/menu.dat $(RM) $(PROGS_OUT)/progs.dat + $(RM) $(PROGS_OUT)/csprogs.lno + $(RM) $(PROGS_OUT)/menu.lno + $(RM) $(PROGS_OUT)/progs.lno $(RM) $(WORKDIR)/*.d $(RM) $(WORKDIR)/*.qc $(RM) $(WORKDIR)/*.txt + $(RM) $(WORKDIR)/qccversion.* + $(RM) $(WORKDIR)/csprogs-* + $(RM) $(WORKDIR)/autoexec/csprogs-*.cfg + $(RM) $(WORKDIR)/*.dat + $(RM) csprogs-*.pk3 .PHONY: qc qc: $(PROGS_OUT)/csprogs.dat $(PROGS_OUT)/menu.dat $(PROGS_OUT)/progs.dat +.PHONY: sv +sv: $(PROGS_OUT)/csprogs.dat $(PROGS_OUT)/progs.dat + .PHONY: pk3 pk3: csprogs-$(VER).pk3 +COMPTESTS = test-server test-client test-menu +.PHONY: test $(COMPTESTS) +test: $(COMPTESTS) +$(COMPTESTS): + tools/compilationunits.sh $@ + %-$(VER).pk3: $(PROGS_OUT)/%.dat $(eval PROG=$*) $(eval PK3=$(PROG)-$(VER).pk3) - $(eval TXT=$(PROG)-$(VER).txt) + $(eval CFG=autoexec/$(PROG)-$(VER).cfg) $(eval DAT=$(PROG)-$(VER).dat) $(eval LNO=$(PROG)-$(VER).lno) - @ echo "http://xonotic.org" > $(TXT) - @ ln -f $(PROGS_OUT)/$(PROG).dat $(DAT) - @ ln -f $(PROGS_OUT)/$(PROG).lno $(LNO) - @ $(RM) *.pk3 - $(ZIP) $(PK3) $(TXT) $(DAT) $(LNO) - @ $(RM) $(TXT) $(DAT) $(LNO) + @ mkdir -p $(WORKDIR)/autoexec + @ echo "// http://xonotic.org" > $(WORKDIR)/$(CFG) + @ echo "set csqc_progname $(DAT)" >> $(WORKDIR)/$(CFG) + @ cp -f $(PROGS_OUT)/$(PROG).dat $(WORKDIR)/$(DAT) + @ cp -f $(PROGS_OUT)/$(PROG).lno $(WORKDIR)/$(LNO) + @ $(RM) $(PROG)-*.pk3 + cd $(WORKDIR) && $(ZIP) $(CURDIR)/$(PK3) $(CFG) $(DAT) $(LNO) QCCVERSION := $(shell cd lib && $(QCC) --version) QCCVERSIONFILE := $(WORKDIR)/qccversion.$(shell echo ${QCCVERSION} | git hash-object --stdin)