]> andersk Git - splint.git/blob - src/Makefile.os2
8fe9af88f5efafa99435eca4eb44b43db73d416f
[splint.git] / src / Makefile.os2
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
49        metaStateExpression.c metaStateSpecifier.c functionConstraint.c \\r
50        pointers.c\r
51 \r
52 SPLINTSRC = exprNode.c exprChecks.c llmain.c help.c rcfiles.c\r
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
115 LINTSRC = $(COMMONSRC) $(SPLINTSRC) cscanner.c cgrammar.c\r
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
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
155         modifiesClause$O warnClause$O \\r
156         functionClause$O functionClauseList$O \\r
157         metaStateConstraint$O metaStateConstraintList$O \\r
158         metaStateExpression$O metaStateSpecifier$O \\r
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
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
170         fileLib$O globals$O \\r
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
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
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
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
245         $(CP) cgrammar.c cgrammar.c.der\r
246         -$(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak\r
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
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
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
291 \r
292 Headers/flag_codes.gen: flags.def\r
293         grep "FLG_" flags.def > Headers/flag_codes.gen\r
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
This page took 0.055122 seconds and 3 git commands to generate.