]> andersk Git - splint.git/blobdiff - src/Makefile.am
Fixes after removing -unrecogcomments flag for make splintme.
[splint.git] / src / Makefile.am
index 38f7f50f3086b9b9b272b800a75022f619e14cfa..635811c29dd55dd92623cbdd25d3e34414f798b0 100644 (file)
@@ -4,18 +4,20 @@ AUTOMAKE_OPTIONS = 1.5 foreign
 
 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
 
 BISON_SRC = cgrammar.y  llgrammar.y  mtgrammar.y  signature.y
 
 
-## We only build LCLint
-bin_PROGRAMS = lclint
+## We only build Splint
+bin_PROGRAMS = splint
 
 ## This is a fake program, so we can easily substitute in the extra LCL objects
 EXTRA_PROGRAMS = lcl
@@ -34,23 +36,24 @@ LISTSRC = clauseStack.c filelocStack.c \
 
 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 \
-       metaStateExpression.c metaStateSpecifier.c functionConstraint.c
+       metaStateExpression.c metaStateSpecifier.c functionConstraint.c \
+       pointers.c cscannerHelp.c       
 
-LCLINTSRC = exprNode.c exprChecks.c llmain.c
+SPLINTSRC = exprNode.c exprChecks.c llmain.c help.c rcfiles.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 \
+OVERFLOWCHSRC = constraintList.c constraintResolve.c \
+                constraintGeneration.c constraintTerm.c \
                 constraintExprData.c constraintExpr.c constraint.c \
-                constraintList.c constraintResolve.c \
-                constraintOutput.c loopHeuristics.c 
+                loopHeuristics.c 
 
 GENERALSRC = exprData.c cstring.c fileloc.c message.c inputStream.c \
              fileTable.c cstringTable.c valueTable.c stateValue.c \
@@ -77,8 +80,6 @@ LCLONLYSRC = usymtab_interface.c abstract.c ltoken.c lclscanline.c \
 LSLSRC = tokentable.c scan.c scanline.c lslparse.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 \
@@ -90,11 +91,10 @@ LCLLISTSRC = initDeclNodeList.c sortList.c declaratorInvNodeList.c \
              varDeclarationNodeList.c varNodeList.c quantifierNodeList.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/aliasChecks.h            Headers/message.h \
+          Headers/message.h \
           Headers/aliasStack.h             Headers/messageLog.h \
           Headers/aliasTable.h             Headers/metaStateConstraint.h \
           Headers/annotationInfo.h         Headers/metaStateConstraintList.h \
@@ -141,7 +141,7 @@ HEADERSRC = Headers/abstBodyNode.h           Headers/ltokenList.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/dmalloc.h                Headers/osd.h \
           Headers/ekind.h                  Headers/pp.h \
           Headers/enumNameList.h           Headers/privateNode.h \
           Headers/enumNameSList.h          Headers/programNode.h \
@@ -153,7 +153,7 @@ HEADERSRC = Headers/abstBodyNode.h           Headers/ltokenList.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/fcnNode.h                Headers/rcfiles.h \
           Headers/fcnNodeList.h            Headers/reader.h \
           Headers/fileId.h                 Headers/refTable-branch.h \
           Headers/fileIdList.h             Headers/renamingNode.h \
@@ -174,13 +174,13 @@ HEADERSRC = Headers/abstBodyNode.h           Headers/ltokenList.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 \
@@ -211,11 +211,11 @@ HEADERSRC = Headers/abstBodyNode.h           Headers/ltokenList.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/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_gen2.h        \
           Headers/llgrammar_gen.h          Headers/usymtab.h \
           Headers/llgrammar.h              Headers/usymtab_interface.h \
           Headers/llmain.h                 Headers/valueMatrix.h \
@@ -228,12 +228,20 @@ HEADERSRC = Headers/abstBodyNode.h           Headers/ltokenList.h \
           Headers/lsymbol.h                Headers/version.h \
           Headers/lsymbolList.h            Headers/warnClause.h \
           Headers/lsymbolSet.h             Headers/ynm.h \
-          Headers/ltoken.h   Headers/lclintMacros.nf  
+          Headers/ltoken.h   Headers/splintMacros.nf  \
+          Headers/typeId.h \
+          Headers/pointers.h   Headers/mstring.h   Headers/help.h
+
 
 IFILES =  ctbase.i  cttable.i  exprDataQuite.i
 
 ## Non-built files we need to distribute
-EXTRA_DIST = DATE $(BISON_SRC) bison.head bison.reset $(HEADERSRC) flags.def cscanner.l flex.head flex.reset $(IFILES)
+EXTRA_DIST =  $(BISON_SRC) bison.head bison.reset $(HEADERSRC)  \
+            flags.def cscanner.l flex.head flex.reset $(IFILES) \
+            .splintrc LICENSE \
+            Headers/cscannerHelp.h \
+ 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
@@ -242,23 +250,25 @@ DER_BISON_FILES = signature.c.der  cgrammar.c.der  mtgrammar.c.der \
 DER_FILES = $(DER_BISON_FILES)
 
 
-COMMONSRC = $(OVERFLOWCHSRC) $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \
+COMMONSRC =  $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \
             $(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC)
 
-ALLSRC = $(GRAMSRC) $(COMMONSRC) $(LCLINTSRC) $(DER_FILES) $(HEADERSRC)
+ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(OVERFLOWCHSRC) $(DER_FILES) $(HEADERSRC)
 
-#ALLSRC = $(COMMONSRC) $(LCLINTSRC) $(DER_FILES) $(HEADERSRC)
+#files to run Splint on
+LINTSRC = $(COMMONSRC) $(SPLINTSRC) 
+# cscanner.c cgrammar.c
 
-LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \
-         $(LCLGRAMSRC)
+#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)
 
 # Keep it fake
 .PHONY: lcl$(EXEEXT)
@@ -275,31 +285,45 @@ BUILT_SOURCES = Headers/signature_gen.h Headers/cgrammar_tokens.h \
 
 ## Grammars
 
+signature.c.der:
+       @if test x$(BISON) = xno; then \
+         echo "Cannot make signature.c.der because bison is not here" \
+       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 || true; \
+         $(CAT) bison.head signature.tab.h bison.reset >Headers/signature_gen.h; \
+         $(RM) signature.tab.c signature.tab.h; \
+       fi
+
 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
 
 ## 11/29/001 drl added copy so that the file cgrammar.c.der is created
 
-Headers/cgrammar_tokens.h cgrammar.c: cgrammar.c.der cgrammar.y
-       if test x$(BISON) = xno; then \
+Headers/cgrammar_tokens.h cgrammar.c: cgrammar.c.der cgrammar.y bison.head bison.reset
+       @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 '* (see cgrammar.y for explanation)'; \
+         echo '* Making cgrammar.c'; \
+          echo '*      Note: Expect 157 shift/reduce conflicts and 123 reduce/reduce conflicts. (see cgrammar.y for explanation)'; \
          $(BISON) $(YFLAGS) cgrammar.y; \
-         $(CAT) bison.head cgrammar.tab.c bison.reset >cgrammar.c; \
+         $(CAT) bison.head cgrammar.tab.c bison.reset | $(SED) 's/YYSTYPE/cgrammar_YYSTYPE/g' | $(SED) 's/lsllex/cgrammar_lsllex/g' > cgrammar.c; \
          $(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; \
+         $(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak || true; \
+         $(CAT) bison.head cgrammar.tab.h bison.reset | $(SED) 's/YYSTYPE/cgrammar_YYSTYPE/g' | $(SED) 's/lsllex/cgrammar_lsllex/g' > Headers/cgrammar_tokens.h; \
          $(RM) cgrammar.tab.c cgrammar.tab.h; \
        fi
 
@@ -307,13 +331,15 @@ Headers/cgrammar_tokens.h cgrammar.c: cgrammar.c.der cgrammar.y
 ## also removed the dependency for this file on mtgrammary.c  
 
 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 '*       Note: 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
@@ -321,30 +347,33 @@ Headers/mtgrammar_tokens.h mtgrammar.c: mtgrammar.y
 ## 11/29/001 drl added copy so that the file llgrammar.c.der is created
 
 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 '* Expect 2 shift/reduce conflicts'; \
+         echo '* Making llgrammar.c'; \
+         echo '*       Note: 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
 
 cscanner.c: cscanner.l
        $(LEX) $(LFLAGS) cscanner.l 
-       $(CAT) flex.head @LEX_OUTPUT_ROOT@.c flex.reset > cscanner.c
+       $(CAT) flex.head @LEX_OUTPUT_ROOT@.c flex.reset | $(SED) 's/YYSTYPE/cgrammar_YYSTYPE/g'  | $(SED) 's/lsllex/cgrammar_lsllex/g' > cscanner.c
 
 Headers/flag_codes.gen: flags.def
        grep "FLG_" flags.def > Headers/flag_codes.gen
+       $(MAKE)
+       cd ../lib; $(MAKE)
 
 ## Checking rules
 
-CHECKS = $(subst .c,.check,$(lclint_SOURCES))
+CHECKS = $(subst .c,.check,$(splint_SOURCES))
 
 ## Other rules
 
@@ -354,28 +383,58 @@ nocheck:
 
 .PHONY: test
 test:
-       cd ../test; ${MAKE} --no-print-directory
+       ${MAKE} ; cd ../test; ${MAKE} --no-print-directory
+
+.PHONY: libs
+libs:
+       ${MAKE} ; cd ../lib; ${MAKE} --no-print-directory
 
 ### Automake generates wrong tags
 .PHONY: etags
 etags:
        maketags
 
-lintnew: 
-       ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(ALLSRC) $(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  $(OVERFLOWCHSRC) $(LINTSRC) $(LCLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -fcnuse -incondefs -exportlocal -constuse -mts file -mts filerw -mts tainted
+
+splintmesupcounts: 
+       ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude  $(OVERFLOWCHSRC) $(LINTSRC) $(LCLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments  -fcnuse -incondefs -exportlocal -supcounts -constuse -mts file -mts filerw 
 
 lintbuffercheck: 
-       ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(ALLSRC) $(LCLSRC) -dump lclint \
-                    +forcehints -misplacedsharequal +showsourceloc -unrecogcomments \
-                    -supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw +arraybounds +arrayboundsread
+       ./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 +bounds -DLINTBUFFERCHECK
+
+valsplint:
+       valgrind -v --leak-resolution=high --num-callers=20 --show-reachable=no --leak-check=yes ./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
+
+# drl changed to use # for comment
+#/* $(LINTSRC) $(LCLSRC)*/
+
+splinttest: 
+       ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude test.c +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -fcnuse -incondefs -exportlocal -constuse -mts file -mts filerw +keep +supcounts +partial -null
+
+binDir = bin
+
+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)
 
+up: 
+       -rm cgrammar.c llgrammar.c mtgrammar.c signature.c cscanner.c
+       $(MAKE) clean
 
-.PHONY: purify
-purify: $(lclint_OBJECTS)
-       purify $(LINK) -o lclint$(EXEEXT) $^ $(lclint_LDADD)
+CLEANFILES = splint$(EXEEXT)  ../$(top_builddir)/$(binDir)/splint$(EXEEXT)
 
-all: lclint$(EXEEXT)
-CLEANFILES = lclint$(EXEEXT)
+.c.o:
+       @echo "Compiling "$<"..."; \
+       source='$<' object='$@' libtool=no \
+       depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
+       $(CCDEPMODE) $(depcomp) \
+       $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
This page took 0.052695 seconds and 4 git commands to generate.