# default directories and paths
DESTDIR :=
-OPTIONAL:=
PREFIX := /usr/local
BINDIR := $(PREFIX)/bin
DATADIR := $(PREFIX)/share
LDFLAGS +=
LIBS += -lm
+#common objects
+COMMON = ansi.o util.o hash.o stat.o fs.o opts.o conout.o
+
+#optional flags
+OPTIONAL_CFLAGS :=
+OPTIONAL_LDFLAGS :=
+
#objects
-OBJ_C = main.o lexer.o parser.o fs.o stat.o util.o code.o ast.o ir.o conout.o ftepp.o opts.o utf8.o correct.o
-OBJ_P = util.o fs.o conout.o opts.o pak.o stat.o
-OBJ_T = test.o util.o opts.o conout.o fs.o stat.o
-OBJ_X = exec-standalone.o util.o opts.o conout.o fs.o stat.o
+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
+OBJ_P = $(COMMON) pak.o
+OBJ_T = $(COMMON) test.o
+OBJ_X = $(COMMON) exec.o
#gource flags
GOURCEFLAGS = \
#splint flags
SPLINTFLAGS = \
+ -preproc \
-redef \
-noeffect \
-nullderef \
-abstract \
-statictrans \
-castfcnptr
-
+
#always the right rule
default: all
rm -f $(DESTDIR)$(MANDIR)/man1/doc/gmqcc.1
rm -f $(DESTDIR)$(MANDIR)/man1/doc/qcvm.1
rm -f $(DESTDIR)$(MANDIR)/man1/doc/gmqpak.1
+
+#style rule
+STYLE_MATCH = \( -name '*.[ch]' -or -name '*.def' -or -name '*.qc' \)
+
+style:
+ find . -type f $(STYLE_MATCH) -exec sed -i 's/ *$$//' '{}' ';'
+ find . -type f $(STYLE_MATCH) -exec sed -i -e '$$a\' '{}' ';'
+ find . -type f $(STYLE_MATCH) -exec sed -i 's/\t/ /g' '{}' ';'
+
+splint:
+ @splint $(SPLINTFLAGS) *.c *.h
+
+gource:
+ @gource $(GOURCEFLAGS)
+
+gource-record:
+ @gource $(GOURCEFLAGS) -o - | ffmpeg $(FFMPEGFLAGS) gource.mp4