]>
Commit | Line | Data |
---|---|---|
87fa79e5 | 1 | #\r |
2 | # splint Makefile for GNU Make on OS/2 systems\r | |
3 | #\r | |
4 | # Derived from original Unix makefile by Herbert\r | |
5 | #\r | |
6 | \r | |
7 | SHELL = /usr/bin/ksh\r | |
8 | \r | |
9 | include ../os2/make.vars\r | |
10 | binDir = ../bin\r | |
11 | \r | |
12 | \r | |
13 | .SUFFIXES = \r | |
14 | .SUFFIXES = .c .h $O $(EXEEXT) .l .check\r | |
15 | \r | |
16 | # Some preferences\r | |
17 | ### We use the no-lines option to prevent confusion with splint flag settings.\r | |
18 | ### Should fix splint to avoid this...\r | |
19 | YFLAGS = -v -t -d --debug --no-lines\r | |
20 | LFLAGS = -L\r | |
21 | \r | |
22 | BISON_SRC = cgrammar.y llgrammar.y mtgrammar.y signature.y\r | |
23 | \r | |
24 | \r | |
25 | ## We only build Splint\r | |
26 | bin_PROGRAMS = splint$(EXEEXT)\r | |
27 | \r | |
28 | ## This is a fake program, so we can easily substitute in the extra LCL objects\r | |
29 | EXTRA_PROGRAMS = lcl\r | |
30 | \r | |
31 | AM_CPPFLAGS = -IHeaders\r | |
32 | \r | |
33 | ## The main sources\r | |
34 | \r | |
35 | SETSRC = globSet.c intSet.c typeIdSet.c guardSet.c usymIdSet.c sRefSet.c\r | |
36 | \r | |
37 | LISTSRC = clauseStack.c filelocStack.c \\r | |
38 | cstringList.c cstringSList.c sRefSetList.c ctypeList.c \\r | |
39 | enumNameList.c enumNameSList.c exprNodeList.c exprNodeSList.c \\r | |
40 | uentryList.c fileIdList.c filelocList.c qualList.c sRefList.c \\r | |
41 | flagMarkerList.c idDeclList.c flagSpec.c\r | |
42 | \r | |
43 | CPPSRC = cppmain.c cpplib.c cppexp.c cpphash.c cpperror.c\r | |
44 | \r | |
45 | CSRC = uentry.c cprim.c macrocache.c qual.c qtype.c stateClause.c \\r | |
46 | stateClauseList.c ctype.c cvar.c clabstract.c idDecl.c clause.c \\r | |
47 | globalsClause.c modifiesClause.c warnClause.c functionClause.c \\r | |
48 | functionClauseList.c metaStateConstraint.c metaStateConstraintList.c \\r | |
149b00db | 49 | metaStateExpression.c metaStateSpecifier.c functionConstraint.c \\r |
50 | pointers.c\r | |
87fa79e5 | 51 | \r |
149b00db | 52 | SPLINTSRC = exprNode.c exprChecks.c llmain.c help.c rcfiles.c\r |
87fa79e5 | 53 | CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c\r |
54 | \r | |
55 | GLOBSRC = context.c globals.c flags.c general.c osd.c reader.c mtreader.c\r | |
56 | \r | |
57 | GRAMSRC = cgrammar.c cscanner.c mtscanner.c mtgrammar.c llgrammar.c signature.c\r | |
58 | \r | |
59 | OVERFLOWCHSRC = constraintGeneration.c constraintTerm.c \\r | |
60 | constraintExprData.c constraintExpr.c constraint.c \\r | |
61 | constraintList.c constraintResolve.c \\r | |
62 | constraintOutput.c loopHeuristics.c \r | |
63 | \r | |
64 | GENERALSRC = exprData.c cstring.c fileloc.c message.c inputStream.c \\r | |
65 | fileTable.c cstringTable.c valueTable.c stateValue.c \\r | |
66 | llerror.c messageLog.c flagMarker.c aliasTable.c ynm.c \\r | |
67 | sRefTable.c genericTable.c ekind.c usymtab.c multiVal.c \\r | |
68 | lltok.c sRef.c lcllib.c randomNumbers.c fileLib.c\r | |
69 | \r | |
70 | METASTATESRC = stateInfo.c stateCombinationTable.c metaStateTable.c \\r | |
71 | metaStateInfo.c annotationTable.c annotationInfo.c mttok.c \\r | |
72 | mtDeclarationNode.c mtDeclarationPieces.c mtDeclarationPiece.c \\r | |
73 | mtContextNode.c mtValuesNode.c mtDefaultsNode.c \\r | |
74 | mtAnnotationsNode.c mtMergeNode.c mtAnnotationList.c \\r | |
75 | mtAnnotationDecl.c mtTransferClauseList.c mtTransferClause.c \\r | |
76 | mtTransferAction.c mtLoseReferenceList.c mtLoseReference.c \\r | |
77 | mtDefaultsDeclList.c mtDefaultsDecl.c mtMergeItem.c \\r | |
78 | mtMergeClause.c mtMergeClauseList.c\r | |
79 | \r | |
80 | ## These are only used if LCL is enabled\r | |
81 | \r | |
82 | LCLONLYSRC = usymtab_interface.c abstract.c ltoken.c lclscanline.c \\r | |
83 | lclsyntable.c lcltokentable.c sort.c symtable.c lclinit.c \\r | |
84 | shift.c lclscan.c lsymbol.c mapping.c\r | |
85 | \r | |
86 | LSLSRC = tokentable.c scan.c scanline.c lslparse.c \\r | |
87 | lh.c checking.c lclctypes.c imports.c lslinit.c syntable.c \r | |
88 | \r | |
89 | LCLSETSRC = lsymbolSet.c sigNodeSet.c lslOpSet.c sortSet.c\r | |
90 | \r | |
91 | LCLLISTSRC = initDeclNodeList.c sortList.c declaratorInvNodeList.c \\r | |
92 | interfaceNodeList.c sortSetList.c declaratorNodeList.c \\r | |
93 | letDeclNodeList.c stDeclNodeList.c storeRefNodeList.c \\r | |
94 | lslOpList.c lsymbolList.c termNodeList.c ltokenList.c \\r | |
95 | traitRefNodeList.c pairNodeList.c typeNameNodeList.c \\r | |
96 | fcnNodeList.c paramNodeList.c programNodeList.c \\r | |
97 | varDeclarationNodeList.c varNodeList.c quantifierNodeList.c \\r | |
98 | replaceNodeList.c importNodeList.c\r | |
99 | \r | |
100 | IFILES = ctbase.i cttable.i exprDataQuite.i\r | |
101 | \r | |
102 | \r | |
103 | #Files that are used on systems that do not have bison or yacc\r | |
104 | DER_BISON_FILES = signature.c.der cgrammar.c.der mtgrammar.c.der \\r | |
105 | llgrammar.c.der \r | |
106 | DER_FILES = $(DER_BISON_FILES)\r | |
107 | \r | |
108 | \r | |
109 | COMMONSRC = $(OVERFLOWCHSRC) $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \\r | |
110 | $(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC)\r | |
111 | \r | |
112 | ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) \r | |
113 | \r | |
114 | #files to run Splint on\r | |
149b00db | 115 | LINTSRC = $(COMMONSRC) $(SPLINTSRC) cscanner.c cgrammar.c\r |
87fa79e5 | 116 | \r |
117 | LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \r | |
118 | lcl_SOURCES = $(LCLSRC)\r | |
119 | CONFIG_HEADER = $(top_builddir)/config.h\r | |
120 | \r | |
121 | splint_SOURCES = $(ALLSRC)\r | |
122 | \r | |
123 | lcl_OBJECTS = lsymbolSet$O sigNodeSet$O \\r | |
124 | lslOpSet$O sortSet$O initDeclNodeList$O \\r | |
125 | sortList$O declaratorInvNodeList$O \\r | |
126 | interfaceNodeList$O sortSetList$O \\r | |
127 | declaratorNodeList$O letDeclNodeList$O \\r | |
128 | stDeclNodeList$O storeRefNodeList$O \\r | |
129 | lslOpList$O lsymbolList$O \\r | |
130 | termNodeList$O ltokenList$O \\r | |
131 | traitRefNodeList$O pairNodeList$O \\r | |
132 | typeNameNodeList$O fcnNodeList$O \\r | |
133 | paramNodeList$O programNodeList$O \\r | |
134 | varDeclarationNodeList$O varNodeList$O \\r | |
135 | quantifierNodeList$O replaceNodeList$O \\r | |
136 | importNodeList$O tokentable$O scan$O \\r | |
137 | scanline$O lslparse$O lh$O \\r | |
138 | checking$O lclctypes$O imports$O \\r | |
139 | lslinit$O syntable$O \\r | |
140 | usymtab_interface$O abstract$O ltoken$O \\r | |
141 | lclscanline$O lclsyntable$O \\r | |
142 | lcltokentable$O sort$O symtable$O \\r | |
143 | lclinit$O shift$O lclscan$O \\r | |
144 | lsymbol$O mapping$O\r | |
145 | \r | |
146 | splint_OBJECTS = cgrammar$O cscanner$O \\r | |
147 | mtscanner$O mtgrammar$O llgrammar$O \\r | |
149b00db | 148 | signature$O cppmain$O cpplib$O \\r |
149 | cppexp$O cpphash$O cpperror$O \\r | |
150 | context$O uentry$O cprim$O \\r | |
151 | macrocache$O qual$O qtype$O \\r | |
152 | stateClause$O stateClauseList$O ctype$O \\r | |
153 | cvar$O clabstract$O idDecl$O \\r | |
154 | clause$O globalsClause$O \\r | |
87fa79e5 | 155 | modifiesClause$O warnClause$O \\r |
156 | functionClause$O functionClauseList$O \\r | |
157 | metaStateConstraint$O metaStateConstraintList$O \\r | |
158 | metaStateExpression$O metaStateSpecifier$O \\r | |
149b00db | 159 | functionConstraint$O pointers$O \\r |
160 | structNames$O transferChecks$O \\r | |
161 | varKinds$O nameChecks$O exprData$O \\r | |
162 | cstring$O fileloc$O message$O \\r | |
163 | inputStream$O fileTable$O \\r | |
164 | cstringTable$O valueTable$O \\r | |
87fa79e5 | 165 | stateValue$O llerror$O messageLog$O \\r |
166 | flagMarker$O aliasTable$O ynm$O \\r | |
167 | sRefTable$O genericTable$O ekind$O \\r | |
168 | usymtab$O multiVal$O lltok$O \\r | |
169 | sRef$O lcllib$O randomNumbers$O \\r | |
149b00db | 170 | fileLib$O globals$O \\r |
87fa79e5 | 171 | flags$O general$O osd$O \\r |
172 | reader$O mtreader$O clauseStack$O \\r | |
173 | filelocStack$O cstringList$O \\r | |
174 | cstringSList$O sRefSetList$O \\r | |
175 | ctypeList$O enumNameList$O \\r | |
176 | enumNameSList$O exprNodeList$O \\r | |
177 | exprNodeSList$O uentryList$O \\r | |
178 | fileIdList$O filelocList$O qualList$O \\r | |
179 | sRefList$O flagMarkerList$O \\r | |
180 | idDeclList$O flagSpec$O globSet$O \\r | |
181 | intSet$O typeIdSet$O guardSet$O \\r | |
182 | usymIdSet$O sRefSet$O stateInfo$O \\r | |
183 | stateCombinationTable$O metaStateTable$O \\r | |
184 | metaStateInfo$O annotationTable$O \\r | |
185 | annotationInfo$O mttok$O \\r | |
186 | mtDeclarationNode$O mtDeclarationPieces$O \\r | |
187 | mtDeclarationPiece$O mtContextNode$O \\r | |
188 | mtValuesNode$O mtDefaultsNode$O \\r | |
189 | mtAnnotationsNode$O mtMergeNode$O \\r | |
190 | mtAnnotationList$O mtAnnotationDecl$O \\r | |
191 | mtTransferClauseList$O mtTransferClause$O \\r | |
192 | mtTransferAction$O mtLoseReferenceList$O \\r | |
193 | mtLoseReference$O mtDefaultsDeclList$O \\r | |
194 | mtDefaultsDecl$O mtMergeItem$O \\r | |
195 | mtMergeClause$O mtMergeClauseList$O \\r | |
149b00db | 196 | exprNode$O exprChecks$O llmain$O \\r |
197 | help$O rcfiles$O constraintGeneration$O \\r | |
198 | constraintTerm$O constraintExprData$O \\r | |
199 | constraintExpr$O constraint$O \\r | |
200 | constraintList$O constraintResolve$O \\r | |
201 | constraintOutput$O loopHeuristics$O snprintf$O\r | |
87fa79e5 | 202 | \r |
203 | # Keep it fake\r | |
204 | .PHONY: lcl$(EXEEXT)\r | |
205 | \r | |
206 | DEFS = -DHAVE_CONFIG_H\r | |
207 | DEFAULT_INCLUDES = -I. -I..\r | |
208 | LDADD = $(lcl_OBJECTS) \r | |
209 | \r | |
210 | ## Sources that need to be built\r | |
211 | BUILT_SOURCES = Headers/signature_gen.h Headers/cgrammar_tokens.h \\r | |
212 | Headers/llgrammar_gen.h Headers/llgrammar_gen2.h \\r | |
213 | Headers/mtgrammar_tokens.h signature.c cgrammar.c \\r | |
214 | llgrammar.c mtgrammar.c Headers/flag_codes.gen \\r | |
215 | $(DER_FILES)\r | |
216 | \r | |
217 | all: $(BUILT_SOURCES) splint$(EXEEXT) $(binDir)/splint$(EXEEXT)\r | |
218 | \r | |
219 | Headers/signature_gen.h signature.c: signature.c.der signature.y\r | |
220 | ifndef BISON\r | |
221 | $(CP) signature.c.der signature.c\r | |
222 | else \r | |
223 | echo "Making signature.c"\r | |
224 | $(BISON) $(YFLAGS) -p lsl signature.y\r | |
225 | $(CAT) bison.head signature.tab.c bison.reset >signature.c\r | |
226 | $(CP) signature.c signature.c.der\r | |
227 | -$(MV) Headers/signature_gen.h Headers/signature_gen.bak\r | |
228 | $(CAT) bison.head signature.tab.h bison.reset >Headers/signature_gen.h\r | |
229 | $(RM) signature.tab.c signature.tab.h\r | |
230 | endif\r | |
231 | \r | |
232 | ## 11/29/001 drl added copy so that the file cgrammar.c.der is created\r | |
233 | \r | |
234 | Headers/cgrammar_tokens.h cgrammar.c: cgrammar.c.der cgrammar.y\r | |
235 | ifndef BISON\r | |
236 | $(CP) cgrammar.c.der cgrammar.c\r | |
237 | else \r | |
238 | @echo "Making cgrammar.c"\r | |
239 | @echo "Expect 141 shift/reduce conflicts and 111 reduce/reduce conflicts."\r | |
240 | @echo "(see cgrammar.y for explanation)"\r | |
241 | $(BISON) $(YFLAGS) cgrammar.y\r | |
149b00db | 242 | $(CAT) bison.head cgrammar.tab.c bison.reset | $(SED) \\r |
243 | -e 's/YYSTYPE/cgrammar_YYSTYPE/g' -e 's/lsllex/cgrammar_lsllex/' \\r | |
244 | >cgrammar.c\r | |
87fa79e5 | 245 | $(CP) cgrammar.c cgrammar.c.der\r |
246 | -$(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak\r | |
149b00db | 247 | $(CAT) bison.head cgrammar.tab.h bison.reset | $(SED) \\r |
248 | -e 's/YYSTYPE/cgrammar_YYSTYPE/g' -e 's/lsllex/cgrammar_lsllex/g' \\r | |
249 | >Headers/cgrammar_tokens.h\r | |
87fa79e5 | 250 | $(RM) cgrammar.tab.c cgrammar.tab.h\r |
251 | endif\r | |
252 | \r | |
253 | ## 10/16/001 drl added copy so that the file mtgrammar.c.der is created\r | |
254 | ## also removed the dependency for this file on mtgrammary.c \r | |
255 | \r | |
256 | Headers/mtgrammar_tokens.h mtgrammar.c: mtgrammar.y\r | |
257 | ifndef BISON\r | |
258 | $(CP) mtgrammar.c.der mtgrammar.c\r | |
259 | else \r | |
260 | @echo "Making mtgrammar.c"\r | |
261 | @echo "Expect 11 shift/reduce conflicts."\r | |
262 | $(BISON) $(YFLAGS) -p mt mtgrammar.y\r | |
263 | $(CAT) bison.head mtgrammar.tab.c bison.reset >mtgrammar.c\r | |
264 | $(CP) mtgrammar.c mtgrammar.c.der\r | |
265 | -$(MV) Headers/mtgrammar_tokens.h Headers/mtgrammar_tokens.bak\r | |
266 | $(CAT) bison.head mtgrammar.tab.h bison.reset >Headers/mtgrammar_tokens.h\r | |
267 | $(RM) mtgrammar.tab.c mtgrammar.tab.h\r | |
268 | endif\r | |
269 | \r | |
270 | Headers/llgrammar_gen.h Headers/llgrammar_gen2.h llgrammar.c: llgrammar.c.der llgrammar.y\r | |
271 | ifndef BISON\r | |
272 | $(CP) llgrammar.c.der llgrammar.c\r | |
273 | else \r | |
274 | @echo "Making llgrammar.c"\r | |
275 | @echo "Expect 2 shift/reduce conflicts"\r | |
276 | $(BISON) $(YFLAGS) -p yl llgrammar.y\r | |
277 | $(CAT) bison.head llgrammar.tab.c bison.reset >llgrammar.c\r | |
278 | $(CP) llgrammar.c llgrammar.c.der\r | |
279 | -$(MV) Headers/llgrammar_gen2.h Headers/llgrammar_gen2.bak\r | |
280 | -$(MV) Headers/llgrammar_gen.h Headers/llgrammar_gen.bak\r | |
281 | $(CAT) bison.head llgrammar.tab.h bison.reset >Headers/llgrammar_gen2.h\r | |
282 | $(CAT) bison.head llgrammar.tab.h bison.reset >Headers/llgrammar_gen.h\r | |
283 | $(RM) llgrammar.tab.c llgrammar.tab.h\r | |
284 | endif\r | |
285 | \r | |
286 | cscanner.c: cscanner.l\r | |
287 | $(FLEX) $(LFLAGS) cscanner.l \r | |
149b00db | 288 | $(CAT) flex.head lexyy.c flex.reset | $(SED) \\r |
289 | -e 's/YYSTYPE/cgrammar_YYSTYPE/g' -e 's/lsllex/cgrammar_lsllex/g' \\r | |
290 | >cscanner.c\r | |
87fa79e5 | 291 | \r |
292 | Headers/flag_codes.gen: flags.def\r | |
293 | grep "FLG_" flags.def > Headers/flag_codes.gen\r | |
87fa79e5 | 294 | \r |
295 | $(binDir)/splint$(EXEEXT): splint$(EXEEXT)\r | |
296 | -$(RM) -f $(binDir)/splint$(EXEEXT)\r | |
297 | $(CP) splint$(EXEEXT) $(binDir)/splint$(EXEEXT)\r | |
298 | \r | |
299 | up: clean\r | |
300 | rm -f cgrammar.c llgrammar.c mtgrammar.c signature.c cscanner.c\r | |
301 | \r | |
302 | \r | |
303 | clean: \r | |
304 | -rm -f $(splint_OBJECTS) core *.core *~ \r | |
305 | \r | |
306 | \r | |
307 | CLEANFILES = splint$(EXEEXT) $(binDir)/splint$(EXEEXT)\r | |
308 | \r | |
309 | %$O: %.c\r | |
310 | $(CC) $(CFLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(CPPFLAGS) -c $<\r | |
311 | \r | |
312 | splint$(EXEEXT) : $(splint_OBJECTS) $(lcl_OBJECTS)\r | |
313 | $(CC) $(OFLAG)$@ $^ $(LDFLAGS)\r | |
314 | \r | |
315 | list:\r | |
316 | @echo "$(splint_OBJECTS)"\r |