MINGW = $(findstring MINGW32, $(UNAME))
CC ?= clang
-CFLAGS += -Wall -Wextra -I. -pedantic-errors
+CFLAGS += -Wall -Wextra -I. -fno-strict-aliasing -fsigned-char
+CFLAGS += -DGMQCC_GITINFO="`git describe`"
#turn on tons of warnings if clang is present
# but also turn off the STUPID ONES
ifeq ($(CC), clang)
-Wno-missing-prototypes \
-Wno-float-equal \
-Wno-cast-align
+else
+ #Tiny C Compiler doesn't know what -pedantic-errors is
+ # and instead of ignoring .. just errors.
+ ifneq ($(CC), tcc)
+ CFLAGS +=-pedantic-errors
+ else
+ CFLAGS += -Wno-pointer-sign -fno-common
+ endif
endif
+
ifeq ($(track), no)
CFLAGS += -DNOTRACK
endif
-OBJ_D = util.o code.o ast.o ir.o conout.o ftepp.o opts.o file.o
+OBJ_D = util.o code.o ast.o ir.o conout.o ftepp.o opts.o file.o utf8.o
OBJ_T = test.o util.o conout.o file.o
OBJ_C = main.o lexer.o parser.o file.o
OBJ_X = exec-standalone.o util.o conout.o file.o
GMQCC = gmqcc.exe
TESTSUITE = testsuite.exe
else
+ #arm support for linux .. we need to allow unaligned accesses
+ #to memory otherwise we just segfault everywhere
+ ifneq (, $(findstring arm, $(shell uname -m)))
+ CFLAGS += -munaligned-access
+ endif
+
QCVM = qcvm
GMQCC = gmqcc
TESTSUITE = testsuite
$(OBJ_D) $(OBJ_C) $(OBJ_X): gmqcc.h opts.def
main.o: lexer.h
parser.o: ast.h lexer.h
+ftepp.o: lexer.h
+lexer.o: lexer.h
ast.o: ast.h ir.h
ir.o: ir.h