]>
Commit | Line | Data |
---|---|---|
8fe44445 | 1 | ## Note: starting comments with ## means they don't end up in Makefile |
2 | ||
3 | AUTOMAKE_OPTIONS = 1.5 foreign | |
4 | ||
5 | SUFFIXES = .h .c .o .l .check | |
6 | ||
11db3170 | 7 | # Check files before compiling; requires splint! |
8fe44445 | 8 | CHECK = 1 |
9 | ||
10 | # Some preferences | |
3e3ec469 | 11 | ### We use the no-lines option to prevent confusion with splint flag settings. |
12 | ### Should fix splint to avoid this... | |
13 | YFLAGS = -v -t -d --debug --no-lines | |
14 | LFLAGS = -L | |
bbed3d50 | 15 | |
16 | BISON_SRC = cgrammar.y llgrammar.y mtgrammar.y signature.y | |
17 | ||
8fe44445 | 18 | |
11db3170 | 19 | ## We only build Splint |
20 | bin_PROGRAMS = splint | |
8fe44445 | 21 | |
22 | ## This is a fake program, so we can easily substitute in the extra LCL objects | |
23 | EXTRA_PROGRAMS = lcl | |
24 | ||
25 | AM_CPPFLAGS = -IHeaders | |
26 | ||
27 | ## The main sources | |
28 | ||
29 | SETSRC = globSet.c intSet.c typeIdSet.c guardSet.c usymIdSet.c sRefSet.c | |
30 | ||
31 | LISTSRC = clauseStack.c filelocStack.c \ | |
32 | cstringList.c cstringSList.c sRefSetList.c ctypeList.c \ | |
33 | enumNameList.c enumNameSList.c exprNodeList.c exprNodeSList.c \ | |
34 | uentryList.c fileIdList.c filelocList.c qualList.c sRefList.c \ | |
35 | flagMarkerList.c idDeclList.c flagSpec.c | |
36 | ||
37 | CPPSRC = cppmain.c cpplib.c cppexp.c cpphash.c cpperror.c | |
38 | ||
abd7f895 | 39 | CSRC = context.c uentry.c cprim.c macrocache.c qual.c qtype.c stateClause.c \ |
8fe44445 | 40 | stateClauseList.c ctype.c cvar.c clabstract.c idDecl.c clause.c \ |
41 | globalsClause.c modifiesClause.c warnClause.c functionClause.c \ | |
42 | functionClauseList.c metaStateConstraint.c metaStateConstraintList.c \ | |
f9264521 | 43 | metaStateExpression.c metaStateSpecifier.c functionConstraint.c \ |
44 | pointers.c | |
8fe44445 | 45 | |
140c27a8 | 46 | SPLINTSRC = exprNode.c exprChecks.c llmain.c help.c rcfiles.c |
8fe44445 | 47 | CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c |
48 | ||
abd7f895 | 49 | GLOBSRC = globals.c flags.c general.c osd.c reader.c mtreader.c |
8fe44445 | 50 | |
a956d444 | 51 | GRAMSRC = cgrammar.c cscanner.c mtscanner.c mtgrammar.c llgrammar.c signature.c |
8fe44445 | 52 | |
53 | OVERFLOWCHSRC = constraintGeneration.c constraintTerm.c \ | |
54 | constraintExprData.c constraintExpr.c constraint.c \ | |
55 | constraintList.c constraintResolve.c \ | |
56 | constraintOutput.c loopHeuristics.c | |
57 | ||
58 | GENERALSRC = exprData.c cstring.c fileloc.c message.c inputStream.c \ | |
59 | fileTable.c cstringTable.c valueTable.c stateValue.c \ | |
60 | llerror.c messageLog.c flagMarker.c aliasTable.c ynm.c \ | |
61 | sRefTable.c genericTable.c ekind.c usymtab.c multiVal.c \ | |
62 | lltok.c sRef.c lcllib.c randomNumbers.c fileLib.c | |
63 | ||
64 | METASTATESRC = stateInfo.c stateCombinationTable.c metaStateTable.c \ | |
65 | metaStateInfo.c annotationTable.c annotationInfo.c mttok.c \ | |
66 | mtDeclarationNode.c mtDeclarationPieces.c mtDeclarationPiece.c \ | |
67 | mtContextNode.c mtValuesNode.c mtDefaultsNode.c \ | |
68 | mtAnnotationsNode.c mtMergeNode.c mtAnnotationList.c \ | |
69 | mtAnnotationDecl.c mtTransferClauseList.c mtTransferClause.c \ | |
70 | mtTransferAction.c mtLoseReferenceList.c mtLoseReference.c \ | |
71 | mtDefaultsDeclList.c mtDefaultsDecl.c mtMergeItem.c \ | |
72 | mtMergeClause.c mtMergeClauseList.c | |
73 | ||
74 | ## These are only used if LCL is enabled | |
75 | ||
76 | LCLONLYSRC = usymtab_interface.c abstract.c ltoken.c lclscanline.c \ | |
77 | lclsyntable.c lcltokentable.c sort.c symtable.c lclinit.c \ | |
78 | shift.c lclscan.c lsymbol.c mapping.c | |
79 | ||
80 | LSLSRC = tokentable.c scan.c scanline.c lslparse.c \ | |
81 | lh.c checking.c lclctypes.c imports.c lslinit.c syntable.c | |
82 | ||
8fe44445 | 83 | LCLSETSRC = lsymbolSet.c sigNodeSet.c lslOpSet.c sortSet.c |
84 | ||
85 | LCLLISTSRC = initDeclNodeList.c sortList.c declaratorInvNodeList.c \ | |
86 | interfaceNodeList.c sortSetList.c declaratorNodeList.c \ | |
87 | letDeclNodeList.c stDeclNodeList.c storeRefNodeList.c \ | |
88 | lslOpList.c lsymbolList.c termNodeList.c ltokenList.c \ | |
89 | traitRefNodeList.c pairNodeList.c typeNameNodeList.c \ | |
90 | fcnNodeList.c paramNodeList.c programNodeList.c \ | |
91 | varDeclarationNodeList.c varNodeList.c quantifierNodeList.c \ | |
92 | replaceNodeList.c importNodeList.c | |
93 | ||
bbed3d50 | 94 | HEADERSRC = Headers/abstBodyNode.h Headers/ltokenList.h \ |
95 | Headers/abstract.h Headers/macrocache.h \ | |
96 | Headers/abstractNode.h Headers/mapping.h \ | |
3be9a165 | 97 | Headers/message.h \ |
bbed3d50 | 98 | Headers/aliasStack.h Headers/messageLog.h \ |
99 | Headers/aliasTable.h Headers/metaStateConstraint.h \ | |
100 | Headers/annotationInfo.h Headers/metaStateConstraintList.h \ | |
101 | Headers/annotationTable.h Headers/metaStateExpression.h \ | |
102 | Headers/arrayQualNode.h Headers/metaStateInfo.h \ | |
103 | Headers/basic.h Headers/metaStateSpecifier.h \ | |
104 | Headers/bool.h Headers/metaStateTable.h \ | |
105 | Headers/boolStack.h Headers/misc.h \ | |
106 | Headers/cgrammar.h Headers/modifiesClause.h \ | |
107 | Headers/cgrammar_tokens.h Headers/modifyNode.h \ | |
108 | Headers/checking.h Headers/mtAnnotationDecl.h \ | |
109 | Headers/clabstract.h Headers/mtAnnotationList.h \ | |
110 | Headers/claimNode.h Headers/mtAnnotationsNode.h \ | |
111 | Headers/clause.h Headers/mtContextNode.h \ | |
112 | Headers/clauseStack.h Headers/mtDeclarationNode.h \ | |
113 | Headers/code.h Headers/mtDeclarationPiece.h \ | |
114 | Headers/constants.h Headers/mtDeclarationPieces.h \ | |
115 | Headers/constDeclarationNode.h Headers/mtDefaultsDecl.h \ | |
116 | Headers/constraintExprData.h Headers/mtDefaultsDeclList.h \ | |
117 | Headers/constraintExpr.h Headers/mtDefaultsNode.h \ | |
118 | Headers/constraint.h Headers/mtgrammar.h \ | |
119 | Headers/constraintList2.h Headers/mtgrammar.tab.h \ | |
120 | Headers/constraintList.h Headers/mtgrammar_tokens.h \ | |
121 | Headers/constraintOutput.h Headers/mtincludes.h \ | |
122 | Headers/constraintResolve.h Headers/mtLoseReference.h \ | |
123 | Headers/constraintTerm.h Headers/mtLoseReferenceList.h \ | |
124 | Headers/context.h Headers/mtMergeClause.h \ | |
125 | Headers/cpperror.h Headers/mtMergeClauseList.h \ | |
126 | Headers/cppexp.h Headers/mtMergeItem.h \ | |
127 | Headers/cpp.h Headers/mtMergeNode.h \ | |
128 | Headers/cpphash.h Headers/mtreader.h \ | |
129 | Headers/cpplib.h Headers/mtscanner.h \ | |
130 | Headers/cprim.h Headers/mttok.h \ | |
131 | Headers/cscanner.h Headers/mtTransferAction.h \ | |
132 | Headers/cstring.h Headers/mtTransferClause.h \ | |
133 | Headers/cstringList.h Headers/mtTransferClauseList.h \ | |
134 | Headers/cstringSList.h Headers/mtValuesNode.h \ | |
135 | Headers/cstringTable.h Headers/multiVal.h \ | |
136 | Headers/ctokens.h Headers/nameChecks.h \ | |
137 | Headers/ctypeList.h Headers/nameNode.h \ | |
138 | Headers/CTypesNode.h Headers/opFormNode.h \ | |
139 | Headers/cvar.h Headers/osd.h \ | |
140 | Headers/declaratorInvNode.h Headers/pairNode.h \ | |
141 | Headers/declaratorInvNodeList.h Headers/pairNodeList.h \ | |
142 | Headers/declaratorNode.h Headers/paramNode.h \ | |
143 | Headers/declaratorNodeList.h Headers/paramNodeList.h \ | |
144 | Headers/dmalloc.h Headers/portab.h \ | |
145 | Headers/ekind.h Headers/pp.h \ | |
146 | Headers/enumNameList.h Headers/privateNode.h \ | |
147 | Headers/enumNameSList.h Headers/programNode.h \ | |
148 | Headers/enumSpecNode.h Headers/programNodeList.h \ | |
149 | Headers/exportNode.h Headers/qtype.h \ | |
150 | Headers/exposedNode.h Headers/qual.h \ | |
151 | Headers/exprChecks.h Headers/qualList.h \ | |
152 | Headers/exprData.h Headers/quantifiedTermNode.h \ | |
153 | Headers/exprNode.h Headers/quantifierNode.h \ | |
154 | Headers/exprNodeList.h Headers/quantifierNodeList.h \ | |
155 | Headers/exprNodeSList.h Headers/randomNumbers.h \ | |
140c27a8 | 156 | Headers/fcnNode.h Headers/rcfiles.h \ |
bbed3d50 | 157 | Headers/fcnNodeList.h Headers/reader.h \ |
158 | Headers/fileId.h Headers/refTable-branch.h \ | |
159 | Headers/fileIdList.h Headers/renamingNode.h \ | |
160 | Headers/fileLib.h Headers/replaceNode.h \ | |
161 | Headers/fileloc.h Headers/replaceNodeList.h \ | |
162 | Headers/filelocList.h Headers/scan.h \ | |
163 | Headers/filelocStack.h Headers/scanline.h \ | |
164 | Headers/fileTable.h Headers/sgrammar_tokens.h \ | |
165 | Headers/flag_codes.h Headers/sHerald.h \ | |
166 | Headers/flagMarker.h Headers/shift.h \ | |
167 | Headers/flagMarkerList.h Headers/signature2.h \ | |
168 | Headers/flags.h Headers/signature_gen.h \ | |
169 | Headers/flagSpec.h Headers/signature.h \ | |
170 | Headers/forwardTypes.h Headers/signNode.h \ | |
171 | Headers/functionClause.h Headers/sigNode.h \ | |
172 | Headers/functionClauseList.h Headers/sigNodeSet.h \ | |
173 | Headers/functionConstraint.h Headers/sort.h \ | |
174 | Headers/general.h Headers/sortList.h \ | |
175 | Headers/genericTable.h Headers/sortSet.h \ | |
176 | Headers/globalList.h Headers/sortSetList.h \ | |
2bdabb7a | 177 | Headers/globalsClause.h \ |
178 | Headers/globals.h \ | |
bbed3d50 | 179 | Headers/globSet.h Headers/sRef.h \ |
180 | Headers/gram.h Headers/sRefList.h \ | |
181 | Headers/guardSet.h Headers/sRefSet.h \ | |
182 | Headers/handle.h Headers/sRefSetList.h \ | |
4dd72714 | 183 | Headers/sRefSetStack.h \ |
bbed3d50 | 184 | Headers/idDecl.h Headers/sRefTable.h \ |
185 | Headers/idDeclList.h Headers/stateClause.h \ | |
186 | Headers/importNode.h Headers/stateClauseList.h \ | |
187 | Headers/importNodeList.h Headers/stateCombinationTable.h \ | |
188 | Headers/imports.h Headers/stateInfo.h \ | |
189 | Headers/initDeclNode.h Headers/stateValue.h \ | |
190 | Headers/initDeclNodeList.h Headers/stDeclNode.h \ | |
191 | Headers/inputStream.h Headers/stDeclNodeList.h \ | |
192 | Headers/interfaceNode.h Headers/stmtNode.h \ | |
193 | Headers/interfaceNodeList.h Headers/storeRefNode.h \ | |
194 | Headers/intSet.h Headers/storeRefNodeList.h \ | |
195 | Headers/intTable.h Headers/strOrUnionNode.h \ | |
196 | Headers/iterNode.h Headers/structNames.h \ | |
197 | Headers/lcl_constants.h Headers/symtable.h \ | |
198 | Headers/lclctypes.h Headers/syntable.h \ | |
199 | Headers/lclForwardTypes.h Headers/system_constants.h \ | |
200 | Headers/lclinit.h Headers/taggedUnionNode.h \ | |
201 | Headers/lcllib.h Headers/termNode.h \ | |
202 | Headers/lclMisc.h Headers/termNodeList.h \ | |
203 | Headers/lclPredicateNode.h Headers/tmpname.h \ | |
204 | Headers/lclscan.h Headers/tokentable.h \ | |
205 | Headers/lclscanline.h Headers/traitRefNode.h \ | |
206 | Headers/lclsyntable.h Headers/traitRefNodeList.h \ | |
207 | Headers/lcltokentable.h Headers/transferChecks.h \ | |
208 | Headers/lclTypeSpecNode.h Headers/typeExpr.h \ | |
209 | Headers/lctype.h Headers/typeIdSet.h \ | |
210 | Headers/letDeclNode.h Headers/typeNameNode.h \ | |
211 | Headers/letDeclNodeList.h Headers/typeNameNodeList.h \ | |
212 | Headers/lh.h Headers/typeNamePack.h \ | |
213 | Headers/limwr.h Headers/typeNode.h \ | |
214 | Headers/llbasic.h Headers/uentry.h \ | |
215 | Headers/llerror.h Headers/uentryList.h \ | |
216 | Headers/llglobals.h Headers/usymId.h \ | |
217 | Headers/llgrammar2.h Headers/usymIdSet.h \ | |
218 | Headers/llgrammar_gen2.h Headers/usymtab-branch.h \ | |
219 | Headers/llgrammar_gen.h Headers/usymtab.h \ | |
220 | Headers/llgrammar.h Headers/usymtab_interface.h \ | |
221 | Headers/llmain.h Headers/valueMatrix.h \ | |
222 | Headers/lltok.h Headers/valueTable.h \ | |
223 | Headers/lslinit.h Headers/varDeclarationNode.h \ | |
224 | Headers/lslOp.h Headers/varDeclarationNodeList.h \ | |
225 | Headers/lslOpList.h Headers/varKinds.h \ | |
226 | Headers/lslOpSet.h Headers/varNode.h \ | |
227 | Headers/lslparse.h Headers/varNodeList.h \ | |
228 | Headers/lsymbol.h Headers/version.h \ | |
229 | Headers/lsymbolList.h Headers/warnClause.h \ | |
230 | Headers/lsymbolSet.h Headers/ynm.h \ | |
11db3170 | 231 | Headers/ltoken.h Headers/splintMacros.nf |
bbed3d50 | 232 | |
2bdabb7a | 233 | |
bbed3d50 | 234 | IFILES = ctbase.i cttable.i exprDataQuite.i |
235 | ||
236 | ## Non-built files we need to distribute | |
2bdabb7a | 237 | EXTRA_DIST = $(BISON_SRC) bison.head bison.reset $(HEADERSRC) \ |
73b29173 | 238 | flags.def cscanner.l flex.head flex.reset $(IFILES) \ |
363a5c93 | 239 | Headers/256_random_numbers.nf Headers/splintMacros.nf Headers/reservedNames.nf Makefile.binary.am Makefile.binary.in |
bbed3d50 | 240 | |
241 | ||
242 | #Files that are used on systems that do not have bison or yacc | |
243 | DER_BISON_FILES = signature.c.der cgrammar.c.der mtgrammar.c.der \ | |
244 | llgrammar.c.der | |
245 | DER_FILES = $(DER_BISON_FILES) | |
246 | ||
247 | ||
abd7f895 | 248 | COMMONSRC = $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \ |
8fe44445 | 249 | $(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC) |
250 | ||
393e573f | 251 | ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(OVERFLOWCHSRC) $(DER_FILES) $(HEADERSRC) |
bbed3d50 | 252 | |
11db3170 | 253 | #files to run Splint on |
6fcd0b1e | 254 | LINTSRC = $(COMMONSRC) $(SPLINTSRC) cscanner.c cgrammar.c |
3be9a165 | 255 | |
11db3170 | 256 | #ALLSRC = $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC) |
8fe44445 | 257 | |
a956d444 | 258 | LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) |
8fe44445 | 259 | lcl_SOURCES = $(LCLSRC) |
260 | ||
11db3170 | 261 | splint_SOURCES = $(ALLSRC) |
262 | splint_LDADD = $(LCLOBJ) @LEXLIB@ | |
8fe44445 | 263 | |
264 | # Ensure the LCL objects get built if needed | |
11db3170 | 265 | splint_DEPENDENCIES = $(LCLOBJ) |
8fe44445 | 266 | |
267 | # Keep it fake | |
268 | .PHONY: lcl$(EXEEXT) | |
269 | lcl$(EXEEXT): | |
270 | @echo "This is a fake target"; \ | |
271 | echo "Use configure's --with-lcl option to enable lcl" | |
272 | ||
273 | ## Sources that need to be built | |
274 | BUILT_SOURCES = Headers/signature_gen.h Headers/cgrammar_tokens.h \ | |
275 | Headers/llgrammar_gen.h Headers/llgrammar_gen2.h \ | |
276 | Headers/mtgrammar_tokens.h signature.c cgrammar.c \ | |
bbed3d50 | 277 | llgrammar.c mtgrammar.c Headers/flag_codes.gen \ |
278 | $(DER_FILES) | |
8fe44445 | 279 | |
280 | ## Grammars | |
281 | ||
282 | Headers/signature_gen.h signature.c: signature.c.der signature.y | |
bb7c2085 | 283 | @if test x$(BISON) = xno; then \ |
8fe44445 | 284 | $(CP) signature.c.der signature.c; \ |
285 | else \ | |
bb7c2085 | 286 | echo '* Making signature.c'; \ |
8fe44445 | 287 | $(BISON) $(YFLAGS) -p lsl signature.y; \ |
288 | $(CAT) bison.head signature.tab.c bison.reset >signature.c; \ | |
bbed3d50 | 289 | $(CP) signature.c signature.c.der; \ |
3e3ec469 | 290 | $(MV) Headers/signature_gen.h Headers/signature_gen.bak; \ |
8fe44445 | 291 | $(CAT) bison.head signature.tab.h bison.reset >Headers/signature_gen.h; \ |
292 | $(RM) signature.tab.c signature.tab.h; \ | |
293 | fi | |
294 | ||
bbed3d50 | 295 | ## 11/29/001 drl added copy so that the file cgrammar.c.der is created |
296 | ||
8fe44445 | 297 | Headers/cgrammar_tokens.h cgrammar.c: cgrammar.c.der cgrammar.y |
bb7c2085 | 298 | @if test x$(BISON) = xno; then \ |
8fe44445 | 299 | $(CP) cgrammar.c.der cgrammar.c; \ |
300 | else \ | |
bb7c2085 | 301 | echo '* Making cgrammar.c'; \ |
393e573f | 302 | echo '* Expect 154 shift/reduce conflicts and 115 reduce/reduce conflicts.'; \ |
8fe44445 | 303 | echo '* (see cgrammar.y for explanation)'; \ |
304 | $(BISON) $(YFLAGS) cgrammar.y; \ | |
6fcd0b1e | 305 | $(CAT) bison.head cgrammar.tab.c bison.reset | $(SED) 's/YYSTYPE/cgrammar_YYSTYPE/g' | $(SED) 's/lsllex/cgrammar_lsllex/g' > cgrammar.c; \ |
bbed3d50 | 306 | $(CP) cgrammar.c cgrammar.c.der; \ |
3e3ec469 | 307 | $(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak; \ |
6fcd0b1e | 308 | $(CAT) bison.head cgrammar.tab.h bison.reset | $(SED) 's/YYSTYPE/cgrammar_YYSTYPE/g' | $(SED) 's/lsllex/cgrammar_lsllex/g' > Headers/cgrammar_tokens.h; \ |
8fe44445 | 309 | $(RM) cgrammar.tab.c cgrammar.tab.h; \ |
310 | fi | |
311 | ||
914641fc | 312 | ## 10/16/001 drl added copy so that the file mtgrammar.c.der is created |
313 | ## also removed the dependency for this file on mtgrammary.c | |
314 | ||
315 | Headers/mtgrammar_tokens.h mtgrammar.c: mtgrammar.y | |
bb7c2085 | 316 | @if test x$(BISON) = xno; then \ |
8fe44445 | 317 | $(CP) mtgrammar.c.der mtgrammar.c; \ |
318 | else \ | |
1b8ae690 | 319 | echo '* Making mtgrammar.c'; \ |
320 | echo '* Expect 11 shift/reduce conflicts.'; \ | |
8fe44445 | 321 | $(BISON) $(YFLAGS) -p mt mtgrammar.y; \ |
322 | $(CAT) bison.head mtgrammar.tab.c bison.reset >mtgrammar.c; \ | |
e12110be | 323 | $(CP) mtgrammar.c mtgrammar.c.der; \ |
3e3ec469 | 324 | $(MV) Headers/mtgrammar_tokens.h Headers/mtgrammar_tokens.bak; \ |
8fe44445 | 325 | $(CAT) bison.head mtgrammar.tab.h bison.reset >Headers/mtgrammar_tokens.h; \ |
326 | $(RM) mtgrammar.tab.c mtgrammar.tab.h; \ | |
327 | fi | |
328 | ||
bbed3d50 | 329 | ## 11/29/001 drl added copy so that the file llgrammar.c.der is created |
330 | ||
8fe44445 | 331 | Headers/llgrammar_gen.h Headers/llgrammar_gen2.h llgrammar.c: llgrammar.c.der llgrammar.y |
bb7c2085 | 332 | @if test x$(BISON) = xno; then \ |
8fe44445 | 333 | $(CP) llgrammar.c.der llgrammar.c; \ |
334 | else \ | |
bb7c2085 | 335 | echo '* Making llgrammar.c'; \ |
8fe44445 | 336 | echo '* Expect 2 shift/reduce conflicts'; \ |
337 | $(BISON) $(YFLAGS) -p yl llgrammar.y; \ | |
338 | $(CAT) bison.head llgrammar.tab.c bison.reset >llgrammar.c; \ | |
bbed3d50 | 339 | $(CP) llgrammar.c llgrammar.c.der; \ |
3e3ec469 | 340 | $(MV) Headers/llgrammar_gen2.h Headers/llgrammar_gen2.bak; \ |
8fe44445 | 341 | $(CAT) bison.head llgrammar.tab.h bison.reset >Headers/llgrammar_gen2.h; \ |
3e3ec469 | 342 | $(MV) Headers/llgrammar_gen.h Headers/llgrammar_gen.bak; \ |
8fe44445 | 343 | $(CAT) bison.head llgrammar.tab.h bison.reset >Headers/llgrammar_gen.h; \ |
344 | $(RM) llgrammar.tab.c llgrammar.tab.h; \ | |
345 | fi | |
346 | ||
347 | cscanner.c: cscanner.l | |
348 | $(LEX) $(LFLAGS) cscanner.l | |
6fcd0b1e | 349 | $(CAT) flex.head @LEX_OUTPUT_ROOT@.c flex.reset | $(SED) 's/YYSTYPE/cgrammar_YYSTYPE/g' | $(SED) 's/lsllex/cgrammar_lsllex/g' > cscanner.c |
8fe44445 | 350 | |
351 | Headers/flag_codes.gen: flags.def | |
352 | grep "FLG_" flags.def > Headers/flag_codes.gen | |
bb7c2085 | 353 | $(MAKE) |
354 | cd ../lib; $(MAKE) | |
8fe44445 | 355 | |
356 | ## Checking rules | |
357 | ||
11db3170 | 358 | CHECKS = $(subst .c,.check,$(splint_SOURCES)) |
8fe44445 | 359 | |
360 | ## Other rules | |
361 | ||
362 | .PHONY: nocheck | |
363 | nocheck: | |
364 | $(MAKE) CHECK=0 | |
365 | ||
a469ccf0 | 366 | .PHONY: test |
367 | test: | |
45569d72 | 368 | ${MAKE} ; cd ../test; ${MAKE} --no-print-directory |
a469ccf0 | 369 | |
370 | ### Automake generates wrong tags | |
371 | .PHONY: etags | |
372 | etags: | |
373 | maketags | |
374 | ||
3e3ec469 | 375 | lintnew: splintme |
376 | ||
377 | splintme: | |
140c27a8 | 378 | ./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 |
393e573f | 379 | |
6fcd0b1e | 380 | valsplint: |
381 | 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 | |
382 | ||
383 | ||
393e573f | 384 | splintsome: |
385 | ./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 | |
386 | ||
99614ff2 | 387 | # drl changed to use # for comment |
388 | #/* $(LINTSRC) $(LCLSRC)*/ | |
abd7f895 | 389 | |
390 | splinttest: | |
6483a926 | 391 | ./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 |
abd7f895 | 392 | |
8fe44445 | 393 | |
e5f31c00 | 394 | lintbuffercheck: |
11db3170 | 395 | ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \ |
e5f31c00 | 396 | +forcehints -misplacedsharequal +showsourceloc -unrecogcomments \ |
fc97bef4 | 397 | -supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw +bounds +boundsread +implictconstraint -dLINTBUFFERCHECK |
8fe44445 | 398 | |
fc97bef4 | 399 | binDir = bin |
8fe44445 | 400 | |
fc97bef4 | 401 | all: splint$(EXEEXT) ../$(top_builddir)/$(binDir)/splint$(EXEEXT) |
402 | ||
403 | ../$(top_builddir)/$(binDir)/splint$(EXEEXT): splint$(EXEEXT) | |
404 | -$(RM) -f $(top_builddir)/$(binDir)/splint$(EXEEXT) | |
405 | ln -s $(top_builddir)/src/splint$(EXEEXT) $(top_builddir)/$(binDir)/splint$(EXEEXT) | |
1b8ae690 | 406 | |
407 | up: | |
408 | -rm cgrammar.c llgrammar.c mtgrammar.c signature.c cscanner.c | |
409 | $(MAKE) clean | |
410 | ||
fc97bef4 | 411 | CLEANFILES = splint$(EXEEXT) ../$(top_builddir)/$(binDir)/splint$(EXEEXT) |
bb7c2085 | 412 | |
413 | .c.o: | |
414 | @echo "Compiling "$<"..."; \ | |
415 | source='$<' object='$@' libtool=no \ | |
416 | depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \ | |
417 | $(CCDEPMODE) $(depcomp) \ | |
418 | $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$< |