]> andersk Git - splint.git/blame - src/Makefile.os2
Fixed bug causing Splint is suggest using the +ignoresigns flag even if it was alread...
[splint.git] / src / Makefile.os2
CommitLineData
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
7SHELL = /usr/bin/ksh\r
8\r
9include ../os2/make.vars\r
10binDir = ../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
19YFLAGS = -v -t -d --debug --no-lines\r
20LFLAGS = -L\r
21\r
22BISON_SRC = cgrammar.y llgrammar.y mtgrammar.y signature.y\r
23\r
24\r
25## We only build Splint\r
26bin_PROGRAMS = splint$(EXEEXT)\r
27\r
28## This is a fake program, so we can easily substitute in the extra LCL objects\r
29EXTRA_PROGRAMS = lcl\r
30\r
31AM_CPPFLAGS = -IHeaders\r
32\r
33## The main sources\r
34\r
35SETSRC = globSet.c intSet.c typeIdSet.c guardSet.c usymIdSet.c sRefSet.c\r
36\r
37LISTSRC = 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
43CPPSRC = cppmain.c cpplib.c cppexp.c cpphash.c cpperror.c\r
44\r
45CSRC = 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 52SPLINTSRC = exprNode.c exprChecks.c llmain.c help.c rcfiles.c\r
87fa79e5 53CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c\r
54\r
55GLOBSRC = context.c globals.c flags.c general.c osd.c reader.c mtreader.c\r
56\r
57GRAMSRC = cgrammar.c cscanner.c mtscanner.c mtgrammar.c llgrammar.c signature.c\r
58\r
59OVERFLOWCHSRC = 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
64GENERALSRC = 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
70METASTATESRC = 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
82LCLONLYSRC = 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
86LSLSRC = 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
89LCLSETSRC = lsymbolSet.c sigNodeSet.c lslOpSet.c sortSet.c\r
90\r
91LCLLISTSRC = 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
100IFILES = 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
104DER_BISON_FILES = signature.c.der cgrammar.c.der mtgrammar.c.der \\r
105 llgrammar.c.der \r
106DER_FILES = $(DER_BISON_FILES)\r
107\r
108\r
109COMMONSRC = $(OVERFLOWCHSRC) $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \\r
110 $(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC)\r
111\r
112ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) \r
113\r
114#files to run Splint on\r
149b00db 115LINTSRC = $(COMMONSRC) $(SPLINTSRC) cscanner.c cgrammar.c\r
87fa79e5 116\r
117LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \r
118lcl_SOURCES = $(LCLSRC)\r
119CONFIG_HEADER = $(top_builddir)/config.h\r
120\r
121splint_SOURCES = $(ALLSRC)\r
122\r
123lcl_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
146splint_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
206DEFS = -DHAVE_CONFIG_H\r
207DEFAULT_INCLUDES = -I. -I..\r
208LDADD = $(lcl_OBJECTS) \r
209\r
210## Sources that need to be built\r
211BUILT_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
217all: $(BUILT_SOURCES) splint$(EXEEXT) $(binDir)/splint$(EXEEXT)\r
218\r
219Headers/signature_gen.h signature.c: signature.c.der signature.y\r
220ifndef BISON\r
221 $(CP) signature.c.der signature.c\r
222else \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
230endif\r
231\r
232## 11/29/001 drl added copy so that the file cgrammar.c.der is created\r
233\r
234Headers/cgrammar_tokens.h cgrammar.c: cgrammar.c.der cgrammar.y\r
235ifndef BISON\r
236 $(CP) cgrammar.c.der cgrammar.c\r
237else \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
251endif\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
256Headers/mtgrammar_tokens.h mtgrammar.c: mtgrammar.y\r
257ifndef BISON\r
258 $(CP) mtgrammar.c.der mtgrammar.c\r
259else \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
268endif\r
269\r
270Headers/llgrammar_gen.h Headers/llgrammar_gen2.h llgrammar.c: llgrammar.c.der llgrammar.y\r
271ifndef BISON\r
272 $(CP) llgrammar.c.der llgrammar.c\r
273else \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
284endif\r
285\r
286cscanner.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
292Headers/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
299up: clean\r
300 rm -f cgrammar.c llgrammar.c mtgrammar.c signature.c cscanner.c\r
301\r
302\r
303clean: \r
304 -rm -f $(splint_OBJECTS) core *.core *~ \r
305\r
306\r
307CLEANFILES = splint$(EXEEXT) $(binDir)/splint$(EXEEXT)\r
308\r
309%$O: %.c\r
310 $(CC) $(CFLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(CPPFLAGS) -c $<\r
311\r
312splint$(EXEEXT) : $(splint_OBJECTS) $(lcl_OBJECTS)\r
313 $(CC) $(OFLAG)$@ $^ $(LDFLAGS)\r
314\r
315list:\r
316 @echo "$(splint_OBJECTS)"\r
This page took 0.114572 seconds and 5 git commands to generate.