]> git.xonotic.org Git - xonotic/gmqcc.git/blob - include.mk
Cleanup for builds
[xonotic/gmqcc.git] / include.mk
1 # default directories and paths
2 DESTDIR :=
3 OPTIONAL:=
4 PREFIX  := /usr/local
5 BINDIR  := $(PREFIX)/bin
6 DATADIR := $(PREFIX)/share
7 MANDIR  := $(DATADIR)/man
8
9 # compiler
10 CC      ?= clang
11
12 # linker flags and optional additional libraries if required
13 LDFLAGS +=
14 LIBS    += -lm
15
16 #common objects
17 COMMON   = ansi.o util.o stat.o fs.o opts.o conout.o
18
19 #objects
20 OBJ_C = $(COMMON) main.o lexer.o parser.o code.o ast.o ir.o ftepp.o utf8.o correct.o fold.o intrin.o
21 OBJ_P = $(COMMON) pak.o
22 OBJ_T = $(COMMON) test.o
23 OBJ_X = $(COMMON) exec.o
24
25 #gource flags
26 GOURCEFLAGS =                 \
27     --date-format "%d %B, %Y" \
28     --seconds-per-day 0.01    \
29     --auto-skip-seconds 1     \
30     --title "GMQCC"           \
31     --key                     \
32     --camera-mode overview    \
33     --highlight-all-users     \
34     --file-idle-time 0        \
35     --hide progress,mouse     \
36     --stop-at-end             \
37     --max-files 99999999999   \
38     --max-file-lag 0.000001   \
39     --bloom-multiplier 1.3    \
40     --logo doc/html/gmqcc.png \
41     -1280x720
42
43 #ffmpeg flags for gource
44 FFMPEGFLAGS=                  \
45     -y                        \
46     -r 60                     \
47     -f image2pipe             \
48     -vcodec ppm               \
49     -i -                      \
50     -vcodec libx264           \
51     -preset ultrafast         \
52     -crf 1                    \
53     -threads 0                \
54     -bf 0
55
56 #splint flags
57 SPLINTFLAGS =                 \
58     -redef                    \
59     -noeffect                 \
60     -nullderef                \
61     -usedef                   \
62     -type                     \
63     -mustfreeonly             \
64     -nullstate                \
65     -varuse                   \
66     -mustfreefresh            \
67     -compdestroy              \
68     -compmempass              \
69     -nullpass                 \
70     -onlytrans                \
71     -predboolint              \
72     -boolops                  \
73     -incondefs                \
74     -macroredef               \
75     -retvalint                \
76     -nullret                  \
77     -predboolothers           \
78     -globstate                \
79     -dependenttrans           \
80     -branchstate              \
81     -compdef                  \
82     -temptrans                \
83     -usereleased              \
84     -warnposix                \
85     +charindex                \
86     -kepttrans                \
87     -unqualifiedtrans         \
88     +matchanyintegral         \
89     +voidabstract             \
90     -nullassign               \
91     -unrecog                  \
92     -casebreak                \
93     -retvalbool               \
94     -retvalother              \
95     -mayaliasunique           \
96     -realcompare              \
97     -observertrans            \
98     -abstract                 \
99     -statictrans              \
100     -castfcnptr
101
102 #always the right rule
103 default: all
104
105 #uninstall rule
106 uninstall:
107         rm -f $(DESTDIR)$(BINDIR)/gmqcc
108         rm -f $(DESTDIR)$(BINDIR)/qcvm
109         rm -f $(DESTDIR)$(BINDIR)/gmqpak
110         rm -f $(DESTDIR)$(MANDIR)/man1/doc/gmqcc.1
111         rm -f $(DESTDIR)$(MANDIR)/man1/doc/qcvm.1
112         rm -f $(DESTDIR)$(MANDIR)/man1/doc/gmqpak.1
113
114 #style rule
115 STYLE_MATCH = \( -name '*.[ch]' -or -name '*.def' -or -name '*.qc' \)
116
117 style:
118         find . -type f $(STYLE_MATCH) -exec sed -i 's/ *$$//' '{}' ';'
119         find . -type f $(STYLE_MATCH) -exec sed -i -e '$$a\' '{}' ';'
120         find . -type f $(STYLE_MATCH) -exec sed -i 's/\t/    /g' '{}' ';'
121
122 splint:
123         @splint $(SPLINTFLAGS) *.c *.h
124
125 gource:
126         @gource $(GOURCEFLAGS)
127
128 gource-record:
129         @gource $(GOURCEFLAGS) -o - | ffmpeg $(FFMPEGFLAGS) gource.mp4