]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/Makefile
Transifex autosync
[xonotic/xonotic-data.pk3dir.git] / qcsrc / Makefile
index bfea08b5f92df070fbcc59269b5ec65ed7bb3162..ee9e7e64ab9c6e6016fd362b3e2faca5a801b369 100644 (file)
@@ -1,5 +1,5 @@
 CPP := cc -xc -E
-QCC ?= gmqcc
+QCC ?= ../../../../gmqcc/gmqcc
 
 PROGS_OUT ?= ..
 WORKDIR ?= ../.tmp
@@ -15,13 +15,13 @@ BUILD_MOD ?=
 
 ifndef ZIP
        ifneq ($(shell which zip 2>/dev/null),)
-               ZIP := zip -9
+               ZIP := zip -9mD
        endif
        ifneq ($(shell which 7z 2>/dev/null),)
-               ZIP := 7z a -tzip -mx=9
+               ZIP := 7z a -tzip -mx=9 -sdel
        endif
        ifneq ($(shell which 7za 2>/dev/null),)
-               ZIP := 7za a -tzip -mx=9
+               ZIP := 7za a -tzip -mx=9 -sdel
        endif
     ifndef ZIP
         $(warning "No zip / 7z / 7za in ($(PATH))")
@@ -29,6 +29,10 @@ ifndef ZIP
     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)