YFLAGS = -v -t -d\r
LFLAGS =\r
\r
+###\r
+### file-related commands (I use emx GNUish utilities)\r
+###\r
+CP = cp\r
+MV = mv\r
+CAT = cat\r
+RM = rm\r
+INSTALL = cp\r
+INSTALLFLAGS = \r
+ECHO = echo\r
+SED = sed\r
+\r
###\r
### Set automatically: splint version and date etc.\r
###\r
\r
-LCL_VERSION := $(shell grep "^VERSION" ../configure | sed "s/VERSION *= *//")\r
+LCL_VERSION := $(shell grep "^VERSION" ../configure | $(SED) "s/VERSION *= *//")\r
LCL_DATE := $(shell date +"%d %b %Y")\r
BUILD_DATE := $(shell date +"%c")\r
ME := $(shell whoami)\r
SPLINT_VERSION = $(LCL_PARSE_VERSION) -- $(LCL_DATE)\r
\r
\r
-###\r
-### Then, run:\r
-###\r
-### make\r
-###\r
-###\r
-\r
-### file-related commands (I use emx GNUish utilities)\r
-CP = cp\r
-MV = mv\r
-CAT = cat\r
-RM = rm\r
-INSTALL = cp\r
-INSTALLFLAGS = \r
-ECHO = echo\r
-\r
###\r
### compiler --- gcc is recommended, but splint has been compiled\r
### without changes using cc on several platforms.\r
echo "INSTALL = $(INSTALL)" >>make.vars\r
echo "INSTALLFLAGS = $(INSTALLFLAGS)" >>make.vars\r
echo "ECHO = $(ECHO)" >>make.vars\r
+ echo "SED = $(SED)" >>make.vars\r
\r
../config.h: os2config.h.in\r
- sed -e 's|@DEFAULT_LARCHPATH@|$(DEFAULT_LARCHPATH)|' \\r
+ $(SED) -e 's|@DEFAULT_LARCHPATH@|$(DEFAULT_LARCHPATH)|' \\r
-e 's|@DEFAULT_LCLIMPORTDIR@|$(DEFAULT_LCLIMPORTDIR)|' \\r
-e 's|@GCC_INCLUDE_DIR@|$(GCC_INCLUDE_DIR)|' \\r
-e 's|@GCC_INCLUDE_DIR2@|$(GCC_INCLUDE_DIR2)|' \\r
os2config.h.in >../config.h\r
\r
setenv.cmd: setenv.cmd.in\r
- sed -e 's|@LCL_VERSION@|$(LCL_VERSION)|' \\r
+ $(SED) -e 's|@LCL_VERSION@|$(LCL_VERSION)|' \\r
-e 's|@BASEDIR@|$(BASEDIR)|' \\r
setenv.cmd.in | tr '/' '\\\\' >setenv.cmd\r
\r
stateClauseList.c ctype.c cvar.c clabstract.c idDecl.c clause.c \\r
globalsClause.c modifiesClause.c warnClause.c functionClause.c \\r
functionClauseList.c metaStateConstraint.c metaStateConstraintList.c \\r
- metaStateExpression.c metaStateSpecifier.c functionConstraint.c\r
+ metaStateExpression.c metaStateSpecifier.c functionConstraint.c \\r
+ pointers.c\r
\r
-SPLINTSRC = exprNode.c exprChecks.c llmain.c\r
+SPLINTSRC = exprNode.c exprChecks.c llmain.c help.c rcfiles.c\r
CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c\r
\r
GLOBSRC = context.c globals.c flags.c general.c osd.c reader.c mtreader.c\r
ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) \r
\r
#files to run Splint on\r
-LINTSRC = $(COMMONSRC) $(SPLINTSRC)\r
+LINTSRC = $(COMMONSRC) $(SPLINTSRC) cscanner.c cgrammar.c\r
\r
LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \r
lcl_SOURCES = $(LCLSRC)\r
\r
splint_OBJECTS = cgrammar$O cscanner$O \\r
mtscanner$O mtgrammar$O llgrammar$O \\r
- signature$O constraintGeneration$O \\r
- constraintTerm$O constraintExprData$O \\r
- constraintExpr$O constraint$O \\r
- constraintList$O constraintResolve$O \\r
- constraintOutput$O loopHeuristics$O \\r
- cppmain$O cpplib$O cppexp$O \\r
- cpphash$O cpperror$O uentry$O \\r
- cprim$O macrocache$O qual$O \\r
- qtype$O stateClause$O stateClauseList$O \\r
- ctype$O cvar$O clabstract$O \\r
- idDecl$O clause$O globalsClause$O \\r
+ signature$O cppmain$O cpplib$O \\r
+ cppexp$O cpphash$O cpperror$O \\r
+ context$O uentry$O cprim$O \\r
+ macrocache$O qual$O qtype$O \\r
+ stateClause$O stateClauseList$O ctype$O \\r
+ cvar$O clabstract$O idDecl$O \\r
+ clause$O globalsClause$O \\r
modifiesClause$O warnClause$O \\r
functionClause$O functionClauseList$O \\r
metaStateConstraint$O metaStateConstraintList$O \\r
metaStateExpression$O metaStateSpecifier$O \\r
- functionConstraint$O structNames$O \\r
- transferChecks$O varKinds$O \\r
- nameChecks$O exprData$O cstring$O \\r
- fileloc$O message$O inputStream$O \\r
- fileTable$O cstringTable$O valueTable$O \\r
+ functionConstraint$O pointers$O \\r
+ structNames$O transferChecks$O \\r
+ varKinds$O nameChecks$O exprData$O \\r
+ cstring$O fileloc$O message$O \\r
+ inputStream$O fileTable$O \\r
+ cstringTable$O valueTable$O \\r
stateValue$O llerror$O messageLog$O \\r
flagMarker$O aliasTable$O ynm$O \\r
sRefTable$O genericTable$O ekind$O \\r
usymtab$O multiVal$O lltok$O \\r
sRef$O lcllib$O randomNumbers$O \\r
- fileLib$O context$O globals$O \\r
+ fileLib$O globals$O \\r
flags$O general$O osd$O \\r
reader$O mtreader$O clauseStack$O \\r
filelocStack$O cstringList$O \\r
mtLoseReference$O mtDefaultsDeclList$O \\r
mtDefaultsDecl$O mtMergeItem$O \\r
mtMergeClause$O mtMergeClauseList$O \\r
- exprNode$O exprChecks$O llmain$O\r
+ exprNode$O exprChecks$O llmain$O \\r
+ help$O rcfiles$O constraintGeneration$O \\r
+ constraintTerm$O constraintExprData$O \\r
+ constraintExpr$O constraint$O \\r
+ constraintList$O constraintResolve$O \\r
+ constraintOutput$O loopHeuristics$O snprintf$O\r
\r
# Keep it fake\r
.PHONY: lcl$(EXEEXT)\r
@echo "Expect 141 shift/reduce conflicts and 111 reduce/reduce conflicts."\r
@echo "(see cgrammar.y for explanation)"\r
$(BISON) $(YFLAGS) cgrammar.y\r
- $(CAT) bison.head cgrammar.tab.c bison.reset >cgrammar.c\r
+ $(CAT) bison.head cgrammar.tab.c bison.reset | $(SED) \\r
+ -e 's/YYSTYPE/cgrammar_YYSTYPE/g' -e 's/lsllex/cgrammar_lsllex/' \\r
+ >cgrammar.c\r
$(CP) cgrammar.c cgrammar.c.der\r
-$(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak\r
- $(CAT) bison.head cgrammar.tab.h bison.reset >Headers/cgrammar_tokens.h\r
+ $(CAT) bison.head cgrammar.tab.h bison.reset | $(SED) \\r
+ -e 's/YYSTYPE/cgrammar_YYSTYPE/g' -e 's/lsllex/cgrammar_lsllex/g' \\r
+ >Headers/cgrammar_tokens.h\r
$(RM) cgrammar.tab.c cgrammar.tab.h\r
endif\r
\r
\r
cscanner.c: cscanner.l\r
$(FLEX) $(LFLAGS) cscanner.l \r
- $(CAT) flex.head lexyy.c flex.reset > cscanner.c\r
+ $(CAT) flex.head lexyy.c flex.reset | $(SED) \\r
+ -e 's/YYSTYPE/cgrammar_YYSTYPE/g' -e 's/lsllex/cgrammar_lsllex/g' \\r
+ >cscanner.c\r
\r
Headers/flag_codes.gen: flags.def\r
grep "FLG_" flags.def > Headers/flag_codes.gen\r
- $(MAKE)\r
- cd ../lib; $(MAKE)\r
\r
$(binDir)/splint$(EXEEXT): splint$(EXEEXT)\r
-$(RM) -f $(binDir)/splint$(EXEEXT)\r
UNITTESTS = \\r
help \\r
abstptr abstract alias alttypes ansireserved argorder \\r
- args arraydims arrayinit arraylit blocks break cases cast charlit clauses commentchar compdestroy \\r
+ args arraydims arrayinit arraylit blocks break cases cast chararraylit charlit clauses commentchar compdestroy \\r
compoundliterals compoundstmt constannot controldepth csyntax czechnames czechoslovaknames deadparam \\r
decl divzero enum exports external fields flags forbody format freearray \\r
funcpointer functionmacro glob globals impabstract info init inparam internal iter keep libs \\r
macros macrosef merge mergenull modifies modtest moduncon \\r
mongoincludes mystrncat noeffect null observer oldstyle outglob outparam \\r
parentype postnotnull preds prefixes printflike rc refcounts release repexpose \\r
- returned sharing shifts slovaknames \\r
+ returned sharing shifts sizesigns slovaknames \\r
specclauses \\r
special stack staticarray strings \\r
stringliteral \\r
help:\r
-@$(SPLINT)\r
#@LARCH_PATH=/dev/null; $(SPLINT) -nof empty.lcl\r
- @$(SPLINTP) -help\r
+ @$(SPLINT) -help\r
@$(SPLINTP) -asdf\r
@$(SPLINTP) +boolint +boolint \r
- @$(SPLINTP) -help flags alpha\r
+ @$(SPLINT) -help flags alpha\r
\r
.PHONY: abstptr\r
abstptr:\r
$(SPLINTR) cast -accessmodule -expect 20\r
$(SPLINTRN) cast2.c +checks -exportlocal -exportheader -expect 3\r
\r
+.PHONY: chararraylit\r
+chararraylit:\r
+ -$(SPLINTR) chararraylit.c -expect 2\r
+\r
### Two addition errors detected with 2.5 with -numliteral.\r
\r
.PHONY: charlit\r
$(SPLINTR) enum -expect 16\r
$(SPLINTR) enum -misscase -expect 14\r
\r
+.PHONY: enumtag\r
+enumtag:\r
+ -$(SPLINTR) enumtag.c -expect 2\r
+\r
.PHONY: exports\r
exports:\r
$(SPLINTR) exports.c +exporttype +exportvar +exportfcn +topuse +typeuse -expect 6\r
$(SPLINTR) shifts.c -shiftimplementation -expect 3\r
$(SPLINTR) shifts.c -shiftnegative -expect 1\r
\r
+### evans - added 2002-08-17: check warnings with arbitrary integral types\r
+sizesigns:\r
+ -$(SPLINTR) +strict sizesigns.c\r
+ -$(SPLINTR) +strict +ignoresigns sizesigns.c\r
+ -$(SPLINTR) +strict +matcharbitraryintegral sizesigns.c\r
+ -$(SPLINTR) +strict +matcharbitraryintegral +ignoresignz sizesigns.c\r
+\r
.PHONY: slovaknames\r
slovaknames:\r
$(SPLINTR) +hints slovaknames.c -expect 1\r
specclauses:\r
$(SPLINTR) specclauses.c -expect 6\r
$(SPLINTR) specclauses2.c -expect 8\r
- $(SPLINTR) specclauses3.c -expect 6\r
+ $(SPLINTR) specclauses3.c -expect 5\r
$(SPLINTR) specclauses4.c -expect 3\r
$(SPLINTR) specclauses5.c -expect 3\r
\r
\r
.PHONY: utypes\r
utypes:\r
- ${SPLINTRN} utypes.c -expect 6\r
+ ${SPLINTRN} utypes.c -expect 2\r
\r
###\r
\r