NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
host_alias = @host_alias@
host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
AMTAR = @AMTAR@
AWK = @AWK@
BISON = @BISON@
CHECK = 1
# Some preferences
-YFLAGS = -v -t -d --debug
+### We use the no-lines option to prevent confusion with splint flag settings.
+### Should fix splint to avoid this...
+YFLAGS = -v -t -d --debug --no-lines
+LFLAGS = -L
BISON_SRC = cgrammar.y llgrammar.y mtgrammar.y signature.y
CPPSRC = cppmain.c cpplib.c cppexp.c cpphash.c cpperror.c
-CSRC = uentry.c cprim.c macrocache.c qual.c qtype.c stateClause.c \
+CSRC = context.c uentry.c cprim.c macrocache.c qual.c qtype.c stateClause.c \
stateClauseList.c ctype.c cvar.c clabstract.c idDecl.c clause.c \
globalsClause.c modifiesClause.c warnClause.c functionClause.c \
functionClauseList.c metaStateConstraint.c metaStateConstraintList.c \
SPLINTSRC = exprNode.c exprChecks.c llmain.c
CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c
-GLOBSRC = context.c globals.c flags.c general.c osd.c reader.c
+GLOBSRC = globals.c flags.c general.c osd.c reader.c mtreader.c
-GRAMSRC = cgrammar.c cscanner.c mtscanner.c mtreader.c mtgrammar.c
+GRAMSRC = cgrammar.c cscanner.c mtscanner.c mtgrammar.c llgrammar.c signature.c
OVERFLOWCHSRC = constraintGeneration.c constraintTerm.c \
constraintExprData.c constraintExpr.c constraint.c \
lh.c checking.c lclctypes.c imports.c lslinit.c syntable.c
-LCLGRAMSRC = llgrammar.c signature.c
-
LCLSETSRC = lsymbolSet.c sigNodeSet.c lslOpSet.c sortSet.c
LCLLISTSRC = initDeclNodeList.c sortList.c declaratorInvNodeList.c \
Headers/exprNode.h Headers/quantifierNode.h \
Headers/exprNodeList.h Headers/quantifierNodeList.h \
Headers/exprNodeSList.h Headers/randomNumbers.h \
- Headers/fcnNode.h Headers/rangeTable.h \
+ Headers/fcnNode.h \
Headers/fcnNodeList.h Headers/reader.h \
Headers/fileId.h Headers/refTable-branch.h \
Headers/fileIdList.h Headers/renamingNode.h \
Headers/general.h Headers/sortList.h \
Headers/genericTable.h Headers/sortSet.h \
Headers/globalList.h Headers/sortSetList.h \
- Headers/globalsClause.h Headers/source.h \
- Headers/globals.h Headers/specialClauses.h \
+ Headers/globalsClause.h \
+ Headers/globals.h \
Headers/globSet.h Headers/sRef.h \
Headers/gram.h Headers/sRefList.h \
Headers/guardSet.h Headers/sRefSet.h \
Headers/handle.h Headers/sRefSetList.h \
- Headers/hashTable.h Headers/sRefSetStack.h \
+ Headers/sRefSetStack.h \
Headers/idDecl.h Headers/sRefTable.h \
Headers/idDeclList.h Headers/stateClause.h \
Headers/importNode.h Headers/stateClauseList.h \
IFILES = ctbase.i cttable.i exprDataQuite.i
-EXTRA_DIST = DATE $(BISON_SRC) bison.head bison.reset $(HEADERSRC) \
+EXTRA_DIST = $(BISON_SRC) bison.head bison.reset $(HEADERSRC) \
flags.def cscanner.l flex.head flex.reset $(IFILES) \
- Headers/256_random_numbers.nf Headers/splintMacros.nf Headers/reservedNames.nf
+ Headers/256_random_numbers.nf Headers/splintMacros.nf Headers/reservedNames.nf Makefile.binary.am Makefile.binary.in
#Files that are used on systems that do not have bison or yacc
DER_FILES = $(DER_BISON_FILES)
-COMMONSRC = $(OVERFLOWCHSRC) $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \
+COMMONSRC = $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \
$(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC)
-ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
+ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(OVERFLOWCHSRC) $(DER_FILES) $(HEADERSRC)
#files to run Splint on
-LINTSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC)
+LINTSRC = $(COMMONSRC) $(SPLINTSRC)
#ALLSRC = $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
-LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \
- $(LCLGRAMSRC)
-
-
+LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC)
lcl_SOURCES = $(LCLSRC)
splint_SOURCES = $(ALLSRC)
CHECKS = $(subst .c,.check,$(splint_SOURCES))
-CLEANFILES = splint$(EXEEXT)
+
+binDir = bin
+
+CLEANFILES = splint$(EXEEXT) ../$(top_builddir)/$(binDir)/splint$(EXEEXT)
subdir = src
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
lclscanline.$(OBJEXT) lclsyntable.$(OBJEXT) \
lcltokentable.$(OBJEXT) sort.$(OBJEXT) symtable.$(OBJEXT) \
lclinit.$(OBJEXT) shift.$(OBJEXT) lclscan.$(OBJEXT) \
- lsymbol.$(OBJEXT) mapping.$(OBJEXT) llgrammar.$(OBJEXT) \
- signature.$(OBJEXT)
+ lsymbol.$(OBJEXT) mapping.$(OBJEXT)
lcl_OBJECTS = $(am_lcl_OBJECTS)
lcl_LDADD = $(LDADD)
lcl_DEPENDENCIES =
lcl_LDFLAGS =
am_splint_OBJECTS = cgrammar.$(OBJEXT) cscanner.$(OBJEXT) \
- mtscanner.$(OBJEXT) mtreader.$(OBJEXT) mtgrammar.$(OBJEXT) \
- constraintGeneration.$(OBJEXT) constraintTerm.$(OBJEXT) \
- constraintExprData.$(OBJEXT) constraintExpr.$(OBJEXT) \
- constraint.$(OBJEXT) constraintList.$(OBJEXT) \
- constraintResolve.$(OBJEXT) constraintOutput.$(OBJEXT) \
- loopHeuristics.$(OBJEXT) cppmain.$(OBJEXT) cpplib.$(OBJEXT) \
+ mtscanner.$(OBJEXT) mtgrammar.$(OBJEXT) llgrammar.$(OBJEXT) \
+ signature.$(OBJEXT) cppmain.$(OBJEXT) cpplib.$(OBJEXT) \
cppexp.$(OBJEXT) cpphash.$(OBJEXT) cpperror.$(OBJEXT) \
- uentry.$(OBJEXT) cprim.$(OBJEXT) macrocache.$(OBJEXT) \
- qual.$(OBJEXT) qtype.$(OBJEXT) stateClause.$(OBJEXT) \
- stateClauseList.$(OBJEXT) ctype.$(OBJEXT) cvar.$(OBJEXT) \
- clabstract.$(OBJEXT) idDecl.$(OBJEXT) clause.$(OBJEXT) \
- globalsClause.$(OBJEXT) modifiesClause.$(OBJEXT) \
- warnClause.$(OBJEXT) functionClause.$(OBJEXT) \
- functionClauseList.$(OBJEXT) metaStateConstraint.$(OBJEXT) \
- metaStateConstraintList.$(OBJEXT) metaStateExpression.$(OBJEXT) \
- metaStateSpecifier.$(OBJEXT) functionConstraint.$(OBJEXT) \
- structNames.$(OBJEXT) transferChecks.$(OBJEXT) \
- varKinds.$(OBJEXT) nameChecks.$(OBJEXT) exprData.$(OBJEXT) \
- cstring.$(OBJEXT) fileloc.$(OBJEXT) message.$(OBJEXT) \
- inputStream.$(OBJEXT) fileTable.$(OBJEXT) \
- cstringTable.$(OBJEXT) valueTable.$(OBJEXT) \
+ context.$(OBJEXT) uentry.$(OBJEXT) cprim.$(OBJEXT) \
+ macrocache.$(OBJEXT) qual.$(OBJEXT) qtype.$(OBJEXT) \
+ stateClause.$(OBJEXT) stateClauseList.$(OBJEXT) ctype.$(OBJEXT) \
+ cvar.$(OBJEXT) clabstract.$(OBJEXT) idDecl.$(OBJEXT) \
+ clause.$(OBJEXT) globalsClause.$(OBJEXT) \
+ modifiesClause.$(OBJEXT) warnClause.$(OBJEXT) \
+ functionClause.$(OBJEXT) functionClauseList.$(OBJEXT) \
+ metaStateConstraint.$(OBJEXT) metaStateConstraintList.$(OBJEXT) \
+ metaStateExpression.$(OBJEXT) metaStateSpecifier.$(OBJEXT) \
+ functionConstraint.$(OBJEXT) structNames.$(OBJEXT) \
+ transferChecks.$(OBJEXT) varKinds.$(OBJEXT) \
+ nameChecks.$(OBJEXT) exprData.$(OBJEXT) cstring.$(OBJEXT) \
+ fileloc.$(OBJEXT) message.$(OBJEXT) inputStream.$(OBJEXT) \
+ fileTable.$(OBJEXT) cstringTable.$(OBJEXT) valueTable.$(OBJEXT) \
stateValue.$(OBJEXT) llerror.$(OBJEXT) messageLog.$(OBJEXT) \
flagMarker.$(OBJEXT) aliasTable.$(OBJEXT) ynm.$(OBJEXT) \
sRefTable.$(OBJEXT) genericTable.$(OBJEXT) ekind.$(OBJEXT) \
usymtab.$(OBJEXT) multiVal.$(OBJEXT) lltok.$(OBJEXT) \
sRef.$(OBJEXT) lcllib.$(OBJEXT) randomNumbers.$(OBJEXT) \
- fileLib.$(OBJEXT) context.$(OBJEXT) globals.$(OBJEXT) \
- flags.$(OBJEXT) general.$(OBJEXT) osd.$(OBJEXT) \
- reader.$(OBJEXT) clauseStack.$(OBJEXT) filelocStack.$(OBJEXT) \
+ fileLib.$(OBJEXT) globals.$(OBJEXT) flags.$(OBJEXT) \
+ general.$(OBJEXT) osd.$(OBJEXT) reader.$(OBJEXT) \
+ mtreader.$(OBJEXT) clauseStack.$(OBJEXT) filelocStack.$(OBJEXT) \
cstringList.$(OBJEXT) cstringSList.$(OBJEXT) \
sRefSetList.$(OBJEXT) ctypeList.$(OBJEXT) \
enumNameList.$(OBJEXT) enumNameSList.$(OBJEXT) \
mtLoseReference.$(OBJEXT) mtDefaultsDeclList.$(OBJEXT) \
mtDefaultsDecl.$(OBJEXT) mtMergeItem.$(OBJEXT) \
mtMergeClause.$(OBJEXT) mtMergeClauseList.$(OBJEXT) \
- exprNode.$(OBJEXT) exprChecks.$(OBJEXT) llmain.$(OBJEXT)
+ exprNode.$(OBJEXT) exprChecks.$(OBJEXT) llmain.$(OBJEXT) \
+ constraintGeneration.$(OBJEXT) constraintTerm.$(OBJEXT) \
+ constraintExprData.$(OBJEXT) constraintExpr.$(OBJEXT) \
+ constraint.$(OBJEXT) constraintList.$(OBJEXT) \
+ constraintResolve.$(OBJEXT) constraintOutput.$(OBJEXT) \
+ loopHeuristics.$(OBJEXT)
splint_OBJECTS = $(am_splint_OBJECTS)
splint_LDFLAGS =
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(lcl_SOURCES) $(splint_SOURCES)
-DIST_COMMON = Makefile.am Makefile.in
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
SOURCES = $(lcl_SOURCES) $(splint_SOURCES)
all: $(BUILT_SOURCES)
distclean-depend:
-rm -rf $(DEPDIR)
-
-.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
echo "Use configure's --with-lcl option to enable lcl"
Headers/signature_gen.h signature.c: signature.c.der signature.y
- if test x$(BISON) = xno; then \
+ @if test x$(BISON) = xno; then \
$(CP) signature.c.der signature.c; \
else \
+ echo '* Making signature.c'; \
$(BISON) $(YFLAGS) -p lsl signature.y; \
$(CAT) bison.head signature.tab.c bison.reset >signature.c; \
$(CP) signature.c signature.c.der; \
- -$(MV) Headers/signature_gen.h Headers/signature_gen.bak; \
+ $(MV) Headers/signature_gen.h Headers/signature_gen.bak; \
$(CAT) bison.head signature.tab.h bison.reset >Headers/signature_gen.h; \
$(RM) signature.tab.c signature.tab.h; \
fi
Headers/cgrammar_tokens.h cgrammar.c: cgrammar.c.der cgrammar.y
- if test x$(BISON) = xno; then \
+ @if test x$(BISON) = xno; then \
$(CP) cgrammar.c.der cgrammar.c; \
else \
- echo '* Expect 141 shift/reduce conflicts and 111 reduce/reduce conflicts.'; \
+ echo '* Making cgrammar.c'; \
+ echo '* Expect 154 shift/reduce conflicts and 115 reduce/reduce conflicts.'; \
echo '* (see cgrammar.y for explanation)'; \
$(BISON) $(YFLAGS) cgrammar.y; \
$(CAT) bison.head cgrammar.tab.c bison.reset >cgrammar.c; \
$(CP) cgrammar.c cgrammar.c.der; \
- -$(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak; \
+ $(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak; \
$(CAT) bison.head cgrammar.tab.h bison.reset >Headers/cgrammar_tokens.h; \
$(RM) cgrammar.tab.c cgrammar.tab.h; \
fi
Headers/mtgrammar_tokens.h mtgrammar.c: mtgrammar.y
- if test x$(BISON) = xno; then \
+ @if test x$(BISON) = xno; then \
$(CP) mtgrammar.c.der mtgrammar.c; \
else \
+ echo '* Making mtgrammar.c'; \
+ echo '* Expect 11 shift/reduce conflicts.'; \
$(BISON) $(YFLAGS) -p mt mtgrammar.y; \
$(CAT) bison.head mtgrammar.tab.c bison.reset >mtgrammar.c; \
$(CP) mtgrammar.c mtgrammar.c.der; \
- -$(MV) Headers/mtgrammar_tokens.h Headers/mtgrammar_tokens.bak; \
+ $(MV) Headers/mtgrammar_tokens.h Headers/mtgrammar_tokens.bak; \
$(CAT) bison.head mtgrammar.tab.h bison.reset >Headers/mtgrammar_tokens.h; \
$(RM) mtgrammar.tab.c mtgrammar.tab.h; \
fi
Headers/llgrammar_gen.h Headers/llgrammar_gen2.h llgrammar.c: llgrammar.c.der llgrammar.y
- if test x$(BISON) = xno; then \
+ @if test x$(BISON) = xno; then \
$(CP) llgrammar.c.der llgrammar.c; \
else \
+ echo '* Making llgrammar.c'; \
echo '* Expect 2 shift/reduce conflicts'; \
$(BISON) $(YFLAGS) -p yl llgrammar.y; \
$(CAT) bison.head llgrammar.tab.c bison.reset >llgrammar.c; \
$(CP) llgrammar.c llgrammar.c.der; \
- -$(MV) Headers/llgrammar_gen2.h Headers/llgrammar_gen2.bak; \
+ $(MV) Headers/llgrammar_gen2.h Headers/llgrammar_gen2.bak; \
$(CAT) bison.head llgrammar.tab.h bison.reset >Headers/llgrammar_gen2.h; \
- 0$(MV) Headers/llgrammar_gen.h Headers/llgrammar_gen.bak; \
+ $(MV) Headers/llgrammar_gen.h Headers/llgrammar_gen.bak; \
$(CAT) bison.head llgrammar.tab.h bison.reset >Headers/llgrammar_gen.h; \
$(RM) llgrammar.tab.c llgrammar.tab.h; \
fi
Headers/flag_codes.gen: flags.def
grep "FLG_" flags.def > Headers/flag_codes.gen
+ $(MAKE)
+ cd ../lib; $(MAKE)
.PHONY: nocheck
nocheck:
.PHONY: test
test:
- cd ../test; ${MAKE} --no-print-directory
+ ${MAKE} ; cd ../test; ${MAKE} --no-print-directory
### Automake generates wrong tags
.PHONY: etags
etags:
maketags
-lintnew:
- ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
- +forcehints -misplacedsharequal +showsourceloc -unrecogcomments \
- -supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw
+lintnew: splintme
+
+splintme:
+ ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(OVERFLOWCHSRC) $(LCLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -supcounts -fcnuse -incondefs -exportlocal -constuse -mts file -mts filerw
+
+splintsome:
+ ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude lcllib.c -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -supcounts -fcnuse -incondefs -exportlocal -constuse -mts file -mts filerw +partial
+
+/* $(LINTSRC) $(LCLSRC)*/
+
+splinttest:
+ ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude cpplib.c +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -fcnuse -incondefs -exportlocal -constuse -mts file -mts filerw +keep +supcounts +partial -null
lintbuffercheck:
./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+forcehints -misplacedsharequal +showsourceloc -unrecogcomments \
- -supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw +arraybounds +arrayboundsread +implictconstraint
+ -supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw +bounds +boundsread +implictconstraint -dLINTBUFFERCHECK
+
+all: splint$(EXEEXT) ../$(top_builddir)/$(binDir)/splint$(EXEEXT)
+
+../$(top_builddir)/$(binDir)/splint$(EXEEXT): splint$(EXEEXT)
+ -$(RM) -f $(top_builddir)/$(binDir)/splint$(EXEEXT)
+ ln -s $(top_builddir)/src/splint$(EXEEXT) $(top_builddir)/$(binDir)/splint$(EXEEXT)
-all: splint$(EXEEXT)
+up:
+ -rm cgrammar.c llgrammar.c mtgrammar.c signature.c cscanner.c
+ $(MAKE) clean
+
+.c.o:
+ @echo "Compiling "$<"..."; \
+ source='$<' object='$@' libtool=no \
+ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
+ $(CCDEPMODE) $(depcomp) \
+ $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: