+CFLAGS += -Wall -Wextra -I. -pedantic-errors -std=gnu99
+#turn on tons of warnings if clang is present
+# but also turn off the STUPID ONES
+ifeq ($(CC), clang)
+ CFLAGS += \
+ -Weverything \
+ -Wno-padded \
+ -Wno-format-nonliteral \
+ -Wno-disabled-macro-expansion \
+ -Wno-conversion \
+ -Wno-missing-prototypes
+endif
+ifeq ($(track), no)
+ CFLAGS += -DNOTRACK
+endif
+
+OBJ_D = util.o code.o ast.o ir.o con.o ftepp.o opts.o
+OBJ_T = test.o util.o con.o
+OBJ_C = main.o lexer.o parser.o
+OBJ_X = exec-standalone.o util.o con.o
+
+ifneq ("$(CYGWIN)", "")
+ #nullify the common variables that
+ #most *nix systems have (for windows)
+ PREFIX :=
+ BINDIR :=
+ DATADIR :=
+ MANDIR :=
+ QCVM = qcvm.exe
+ GMQCC = gmqcc.exe
+ TESTSUITE = testsuite.exe
+else
+ifneq ("$(MINGW32)", "")
+ #nullify the common variables that
+ #most *nix systems have (for windows)
+ PREFIX :=
+ BINDIR :=
+ DATADIR :=
+ MANDIR :=
+ QCVM = qcvm.exe
+ GMQCC = gmqcc.exe
+ TESTSUITE = testsuite.exe
+else
+ QCVM = qcvm
+ GMQCC = gmqcc
+ TESTSUITE = testsuite
+endif
+endif
+
+#standard rules
+default: all