VPATH = src ifndef DEBUG_FLAG CCBASEFLAGS=-O2 -Wimplicit LDFLAGS=-s else CCBASEFLAGS=-g -Wall LDFLAGS= endif ifdef MINGW32 ifeq (Cygwin,$(shell uname -o)) CCBASEFLAGS += -mno-cygwin LDFLAGS += -mno-cygwin endif endif include ../config.mk include ../platform.mk CDEFINES=$(GTC_ARCH_DEFINES) -DINCL_PATH=\"$(prefix)/share/gtc/include\" CFLAGS=$(CCBASEFLAGS) $(CDEFINES) OBJFILES=\ analyze.o \ cmain.o \ decl.o \ expr.o \ func.o \ gen68k.o \ genffp.o \ genstmt.o \ getasm.o \ getsym.o \ init.o \ intexpr.o \ memmgt.o \ optimize.o \ out68k_as.o \ peep68k.o \ preproc.o \ reg68k.o \ searchkw.o \ stmt.o \ sunpack.o \ symbol.o \ ttbin2asm.o \ .PHONY: all clean install all: gtc clean: $(RM) $(OBJFILES) src/tags distclean: clean $(RM) gtc$(BIN_SUFFIX) scratchclean: distclean install: gtc mkdir -p $(prefix)/bin install gtc $(prefix)/bin/gtc splint: splint \ -nestcomment -paramuse -nullassign -initallelements -fullinitblock \ +charint +boolint -boolops +ptrnegate -shiftnegative \ -nullret -retvalint -retvalother \ -noeffect \ -globstate -mustfreeonly -mustfreefresh -onlytrans -statictrans -observertrans -dependenttrans -temptrans -branchstate \ $(CDEFINES) $(OBJFILES:%.o=%.c) # -nestcomment is for '//#define foo bar /* this is a comment */' # -paramuse is for unused func params # -nullassign is for 'int x CGLOB;' # -initallelements is for 'int x[5] CGLOBL;' # -fullinitblock is for 'TI_SHORT x CGLOBL;' # +charint is for 'char c = 2+1;' or 'if (c < 2+1)' # +boolint is for 'int z = (x==y);' # -boolops is for 'ptr && x' # +ptrnegate is for '!ptr' # -shiftnegative is for '1 << my_int' where 'my_int' has no known range # -noeffect is for '(void)0' # -nullret is for 'return NULL;' without '/*@null@*/' annotation # -retvalint is for 'myfunc(x);' without subsequent cast to void # -retvalother is for 'myfunc(x);' without subsequent cast to void gtc: $(OBJFILES) $(CC) -o gtc $(LDFLAGS) $(OBJFILES) %.o: %.c vcg.c error.c *.h gtpack/*.h Makefile config.mk $(CC) -c $(CFLAGS) $<