CC = @CC@
CP = @CP@
CPP = @CPP@
-CXX = @CXX@
DEPDIR = @DEPDIR@
DIFF = @DIFF@
EXEEXT = @EXEEXT@
SUFFIXES = .h .c .o .l .check
-# Check files before compiling; requires lclint!
+# Check files before compiling; requires splint!
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
-EXTRA_DIST = DATE
+BISON_SRC = cgrammar.y llgrammar.y mtgrammar.y signature.y
-bin_PROGRAMS = lclint
+bin_PROGRAMS = splint
EXTRA_PROGRAMS = lcl
metaStateExpression.c metaStateSpecifier.c functionConstraint.c
-LCLINTSRC = exprNode.c exprChecks.c llmain.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 = context.c 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 \
replaceNodeList.c importNodeList.c
+HEADERSRC = Headers/abstBodyNode.h Headers/ltokenList.h \
+ Headers/abstract.h Headers/macrocache.h \
+ Headers/abstractNode.h Headers/mapping.h \
+ Headers/message.h \
+ Headers/aliasStack.h Headers/messageLog.h \
+ Headers/aliasTable.h Headers/metaStateConstraint.h \
+ Headers/annotationInfo.h Headers/metaStateConstraintList.h \
+ Headers/annotationTable.h Headers/metaStateExpression.h \
+ Headers/arrayQualNode.h Headers/metaStateInfo.h \
+ Headers/basic.h Headers/metaStateSpecifier.h \
+ Headers/bool.h Headers/metaStateTable.h \
+ Headers/boolStack.h Headers/misc.h \
+ Headers/cgrammar.h Headers/modifiesClause.h \
+ Headers/cgrammar_tokens.h Headers/modifyNode.h \
+ Headers/checking.h Headers/mtAnnotationDecl.h \
+ Headers/clabstract.h Headers/mtAnnotationList.h \
+ Headers/claimNode.h Headers/mtAnnotationsNode.h \
+ Headers/clause.h Headers/mtContextNode.h \
+ Headers/clauseStack.h Headers/mtDeclarationNode.h \
+ Headers/code.h Headers/mtDeclarationPiece.h \
+ Headers/constants.h Headers/mtDeclarationPieces.h \
+ Headers/constDeclarationNode.h Headers/mtDefaultsDecl.h \
+ Headers/constraintExprData.h Headers/mtDefaultsDeclList.h \
+ Headers/constraintExpr.h Headers/mtDefaultsNode.h \
+ Headers/constraint.h Headers/mtgrammar.h \
+ Headers/constraintList2.h Headers/mtgrammar.tab.h \
+ Headers/constraintList.h Headers/mtgrammar_tokens.h \
+ Headers/constraintOutput.h Headers/mtincludes.h \
+ Headers/constraintResolve.h Headers/mtLoseReference.h \
+ Headers/constraintTerm.h Headers/mtLoseReferenceList.h \
+ Headers/context.h Headers/mtMergeClause.h \
+ Headers/cpperror.h Headers/mtMergeClauseList.h \
+ Headers/cppexp.h Headers/mtMergeItem.h \
+ Headers/cpp.h Headers/mtMergeNode.h \
+ Headers/cpphash.h Headers/mtreader.h \
+ Headers/cpplib.h Headers/mtscanner.h \
+ Headers/cprim.h Headers/mttok.h \
+ Headers/cscanner.h Headers/mtTransferAction.h \
+ Headers/cstring.h Headers/mtTransferClause.h \
+ Headers/cstringList.h Headers/mtTransferClauseList.h \
+ Headers/cstringSList.h Headers/mtValuesNode.h \
+ Headers/cstringTable.h Headers/multiVal.h \
+ Headers/ctokens.h Headers/nameChecks.h \
+ Headers/ctypeList.h Headers/nameNode.h \
+ Headers/CTypesNode.h Headers/opFormNode.h \
+ Headers/cvar.h Headers/osd.h \
+ Headers/declaratorInvNode.h Headers/pairNode.h \
+ Headers/declaratorInvNodeList.h Headers/pairNodeList.h \
+ Headers/declaratorNode.h Headers/paramNode.h \
+ Headers/declaratorNodeList.h Headers/paramNodeList.h \
+ Headers/dmalloc.h Headers/portab.h \
+ Headers/ekind.h Headers/pp.h \
+ Headers/enumNameList.h Headers/privateNode.h \
+ Headers/enumNameSList.h Headers/programNode.h \
+ Headers/enumSpecNode.h Headers/programNodeList.h \
+ Headers/exportNode.h Headers/qtype.h \
+ Headers/exposedNode.h Headers/qual.h \
+ Headers/exprChecks.h Headers/qualList.h \
+ Headers/exprData.h Headers/quantifiedTermNode.h \
+ 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/fcnNodeList.h Headers/reader.h \
+ Headers/fileId.h Headers/refTable-branch.h \
+ Headers/fileIdList.h Headers/renamingNode.h \
+ Headers/fileLib.h Headers/replaceNode.h \
+ Headers/fileloc.h Headers/replaceNodeList.h \
+ Headers/filelocList.h Headers/scan.h \
+ Headers/filelocStack.h Headers/scanline.h \
+ Headers/fileTable.h Headers/sgrammar_tokens.h \
+ Headers/flag_codes.h Headers/sHerald.h \
+ Headers/flagMarker.h Headers/shift.h \
+ Headers/flagMarkerList.h Headers/signature2.h \
+ Headers/flags.h Headers/signature_gen.h \
+ Headers/flagSpec.h Headers/signature.h \
+ Headers/forwardTypes.h Headers/signNode.h \
+ Headers/functionClause.h Headers/sigNode.h \
+ Headers/functionClauseList.h Headers/sigNodeSet.h \
+ Headers/functionConstraint.h Headers/sort.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/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/idDecl.h Headers/sRefTable.h \
+ Headers/idDeclList.h Headers/stateClause.h \
+ Headers/importNode.h Headers/stateClauseList.h \
+ Headers/importNodeList.h Headers/stateCombinationTable.h \
+ Headers/imports.h Headers/stateInfo.h \
+ Headers/initDeclNode.h Headers/stateValue.h \
+ Headers/initDeclNodeList.h Headers/stDeclNode.h \
+ Headers/inputStream.h Headers/stDeclNodeList.h \
+ Headers/interfaceNode.h Headers/stmtNode.h \
+ Headers/interfaceNodeList.h Headers/storeRefNode.h \
+ Headers/intSet.h Headers/storeRefNodeList.h \
+ Headers/intTable.h Headers/strOrUnionNode.h \
+ Headers/iterNode.h Headers/structNames.h \
+ Headers/lcl_constants.h Headers/symtable.h \
+ Headers/lclctypes.h Headers/syntable.h \
+ Headers/lclForwardTypes.h Headers/system_constants.h \
+ Headers/lclinit.h Headers/taggedUnionNode.h \
+ Headers/lcllib.h Headers/termNode.h \
+ Headers/lclMisc.h Headers/termNodeList.h \
+ Headers/lclPredicateNode.h Headers/tmpname.h \
+ Headers/lclscan.h Headers/tokentable.h \
+ Headers/lclscanline.h Headers/traitRefNode.h \
+ Headers/lclsyntable.h Headers/traitRefNodeList.h \
+ Headers/lcltokentable.h Headers/transferChecks.h \
+ Headers/lclTypeSpecNode.h Headers/typeExpr.h \
+ Headers/lctype.h Headers/typeIdSet.h \
+ Headers/letDeclNode.h Headers/typeNameNode.h \
+ Headers/letDeclNodeList.h Headers/typeNameNodeList.h \
+ Headers/lh.h Headers/typeNamePack.h \
+ Headers/limwr.h Headers/typeNode.h \
+ Headers/llbasic.h Headers/uentry.h \
+ Headers/llerror.h Headers/uentryList.h \
+ Headers/llglobals.h Headers/usymId.h \
+ Headers/llgrammar2.h Headers/usymIdSet.h \
+ Headers/llgrammar_gen2.h Headers/usymtab-branch.h \
+ Headers/llgrammar_gen.h Headers/usymtab.h \
+ Headers/llgrammar.h Headers/usymtab_interface.h \
+ Headers/llmain.h Headers/valueMatrix.h \
+ Headers/lltok.h Headers/valueTable.h \
+ Headers/lslinit.h Headers/varDeclarationNode.h \
+ Headers/lslOp.h Headers/varDeclarationNodeList.h \
+ Headers/lslOpList.h Headers/varKinds.h \
+ Headers/lslOpSet.h Headers/varNode.h \
+ Headers/lslparse.h Headers/varNodeList.h \
+ Headers/lsymbol.h Headers/version.h \
+ Headers/lsymbolList.h Headers/warnClause.h \
+ Headers/lsymbolSet.h Headers/ynm.h \
+ Headers/ltoken.h Headers/splintMacros.nf
+
+
+IFILES = ctbase.i cttable.i exprDataQuite.i
+
+EXTRA_DIST = DATE $(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
+
+
+#Files that are used on systems that do not have bison or yacc
+DER_BISON_FILES = signature.c.der cgrammar.c.der mtgrammar.c.der \
+ llgrammar.c.der
+
+DER_FILES = $(DER_BISON_FILES)
+
COMMONSRC = $(OVERFLOWCHSRC) $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \
$(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC)
-ALLSRC = $(GRAMSRC) $(COMMONSRC) $(LCLINTSRC)
+ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
-LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \
- $(LCLGRAMSRC)
+#files to run Splint on
+LINTSRC = $(COMMONSRC) $(SPLINTSRC)
+#ALLSRC = $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
+LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC)
lcl_SOURCES = $(LCLSRC)
-lclint_SOURCES = $(ALLSRC)
-lclint_LDADD = $(LCLOBJ) @LEXLIB@
+splint_SOURCES = $(ALLSRC)
+splint_LDADD = $(LCLOBJ) @LEXLIB@
# Ensure the LCL objects get built if needed
-lclint_DEPENDENCIES = $(LCLOBJ)
+splint_DEPENDENCIES = $(LCLOBJ)
BUILT_SOURCES = Headers/signature_gen.h Headers/cgrammar_tokens.h \
Headers/llgrammar_gen.h Headers/llgrammar_gen2.h \
Headers/mtgrammar_tokens.h signature.c cgrammar.c \
- llgrammar.c mtgrammar.c Headers/flag_codes.gen
+ llgrammar.c mtgrammar.c Headers/flag_codes.gen \
+ $(DER_FILES)
-CHECKS = $(subst .c,.check,$(lclint_SOURCES))
-CLEANFILES = lclint$(EXEEXT)
+CHECKS = $(subst .c,.check,$(splint_SOURCES))
+CLEANFILES = splint$(EXEEXT)
subdir = src
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
EXTRA_PROGRAMS = lcl$(EXEEXT)
-bin_PROGRAMS = lclint$(EXEEXT)
+bin_PROGRAMS = splint$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
am_lcl_OBJECTS = lsymbolSet.$(OBJEXT) sigNodeSet.$(OBJEXT) \
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_lclint_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) \
- 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) \
+am_splint_OBJECTS = cgrammar.$(OBJEXT) cscanner.$(OBJEXT) \
+ mtscanner.$(OBJEXT) mtgrammar.$(OBJEXT) llgrammar.$(OBJEXT) \
+ signature.$(OBJEXT) constraintGeneration.$(OBJEXT) \
+ constraintTerm.$(OBJEXT) constraintExprData.$(OBJEXT) \
+ constraintExpr.$(OBJEXT) constraint.$(OBJEXT) \
+ constraintList.$(OBJEXT) constraintResolve.$(OBJEXT) \
+ constraintOutput.$(OBJEXT) loopHeuristics.$(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) \
stateValue.$(OBJEXT) llerror.$(OBJEXT) messageLog.$(OBJEXT) \
flagMarker.$(OBJEXT) aliasTable.$(OBJEXT) ynm.$(OBJEXT) \
sRefTable.$(OBJEXT) genericTable.$(OBJEXT) ekind.$(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) \
- cstringList.$(OBJEXT) cstringSList.$(OBJEXT) \
- sRefSetList.$(OBJEXT) ctypeList.$(OBJEXT) \
- enumNameList.$(OBJEXT) enumNameSList.$(OBJEXT) \
- exprNodeList.$(OBJEXT) exprNodeSList.$(OBJEXT) \
- uentryList.$(OBJEXT) fileIdList.$(OBJEXT) filelocList.$(OBJEXT) \
- qualList.$(OBJEXT) sRefList.$(OBJEXT) flagMarkerList.$(OBJEXT) \
+ reader.$(OBJEXT) mtreader.$(OBJEXT) clauseStack.$(OBJEXT) \
+ filelocStack.$(OBJEXT) cstringList.$(OBJEXT) \
+ cstringSList.$(OBJEXT) sRefSetList.$(OBJEXT) \
+ ctypeList.$(OBJEXT) enumNameList.$(OBJEXT) \
+ enumNameSList.$(OBJEXT) exprNodeList.$(OBJEXT) \
+ exprNodeSList.$(OBJEXT) uentryList.$(OBJEXT) \
+ fileIdList.$(OBJEXT) filelocList.$(OBJEXT) qualList.$(OBJEXT) \
+ sRefList.$(OBJEXT) flagMarkerList.$(OBJEXT) \
idDeclList.$(OBJEXT) flagSpec.$(OBJEXT) globSet.$(OBJEXT) \
intSet.$(OBJEXT) typeIdSet.$(OBJEXT) guardSet.$(OBJEXT) \
usymIdSet.$(OBJEXT) sRefSet.$(OBJEXT) stateInfo.$(OBJEXT) \
mtDefaultsDecl.$(OBJEXT) mtMergeItem.$(OBJEXT) \
mtMergeClause.$(OBJEXT) mtMergeClauseList.$(OBJEXT) \
exprNode.$(OBJEXT) exprChecks.$(OBJEXT) llmain.$(OBJEXT)
-lclint_OBJECTS = $(am_lclint_OBJECTS)
-lclint_LDFLAGS =
+splint_OBJECTS = $(am_splint_OBJECTS)
+splint_LDFLAGS =
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
-DIST_SOURCES = $(lcl_SOURCES) $(lclint_SOURCES)
+DIST_SOURCES = $(lcl_SOURCES) $(splint_SOURCES)
DIST_COMMON = Makefile.am Makefile.in
-SOURCES = $(lcl_SOURCES) $(lclint_SOURCES)
+SOURCES = $(lcl_SOURCES) $(splint_SOURCES)
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-lclint$(EXEEXT): $(lclint_OBJECTS) $(lclint_DEPENDENCIES)
- @rm -f lclint$(EXEEXT)
- $(LINK) $(lclint_LDFLAGS) $(lclint_OBJECTS) $(lclint_LDADD) $(LIBS)
+splint$(EXEEXT): $(splint_OBJECTS) $(splint_DEPENDENCIES)
+ @rm -f splint$(EXEEXT)
+ $(LINK) $(splint_LDFLAGS) $(splint_OBJECTS) $(splint_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
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@
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
+ $(mkinstalldirs) $(distdir)/Headers
@for file in $(DISTFILES); do \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
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; \
- -$(MV) Headers/signature_gen.h Headers/signature_gen.bak; \
+ $(CP) signature.c signature.c.der; \
+ $(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 '* Making cgrammar.c'; \
echo '* Expect 141 shift/reduce conflicts and 111 reduce/reduce conflicts.'; \
echo '* (see cgrammar.y for explanation)'; \
$(BISON) $(YFLAGS) cgrammar.y; \
$(CAT) bison.head cgrammar.tab.c bison.reset >cgrammar.c; \
- -$(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak; \
+ $(CP) cgrammar.c cgrammar.c.der; \
+ $(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 mygrammar.c'; \
$(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; \
- -$(MV) Headers/llgrammar_gen2.h Headers/llgrammar_gen2.bak; \
+ $(CP) llgrammar.c llgrammar.c.der; \
+ $(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:
etags:
maketags
-lintnew:
- ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(ALLSRC) $(LCLSRC) -dump lclint \
+lintnew: splintme
+
+splintme:
+ ./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
lintbuffercheck:
- ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(ALLSRC) $(LCLSRC) -dump lclint \
+ ./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
+ -supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw +arraybounds +arrayboundsread +implictconstraint
-.PHONY: purify
-purify: $(lclint_OBJECTS)
- purify $(LINK) -o lclint$(EXEEXT) $^ $(lclint_LDADD)
+all: splint$(EXEEXT)
-all: lclint$(EXEEXT)
+.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: