Commit | Line | Data |
---|---|---|
9e8e5516 C |
1 | ############################################################################### |
2 | # Instructions to Make, for compilation of ISODE PEPY processes | |
3 | ############################################################################### | |
4 | ||
5 | ############################################################################### | |
6 | # | |
7 | # $Header: /f/osi/pepy/RCS/Makefile,v 7.8 91/02/22 09:34:41 mrose Interim $ | |
8 | # | |
9 | # | |
10 | # $Log: Makefile,v $ | |
11 | # Revision 7.8 91/02/22 09:34:41 mrose | |
12 | # Interim 6.8 | |
13 | # | |
14 | # Revision 7.7 90/12/23 18:42:22 mrose | |
15 | # update | |
16 | # | |
17 | # Revision 7.6 90/11/04 19:15:59 mrose | |
18 | # update | |
19 | # | |
20 | # Revision 7.5 90/08/08 14:15:10 mrose | |
21 | # update | |
22 | # | |
23 | # Revision 7.4 90/07/27 08:47:22 mrose | |
24 | # update | |
25 | # | |
26 | # Revision 7.3 90/07/09 14:43:06 mrose | |
27 | # sync | |
28 | # | |
29 | # Revision 7.2 90/07/01 21:04:51 mrose | |
30 | # pepsy | |
31 | # | |
32 | # Revision 7.1 90/01/11 18:37:02 mrose | |
33 | # real-sync | |
34 | # | |
35 | # Revision 7.0 89/11/23 22:11:30 mrose | |
36 | # Release 6.0 | |
37 | # | |
38 | ############################################################################### | |
39 | ||
40 | ############################################################################### | |
41 | # | |
42 | # NOTICE | |
43 | # | |
44 | # Acquisition, use, and distribution of this module and related | |
45 | # materials are subject to the restrictions of a license agreement. | |
46 | # Consult the Preface in the User's Manual for the full terms of | |
47 | # this agreement. | |
48 | # | |
49 | ############################################################################### | |
50 | ||
51 | ||
52 | PEPYPATH= -DPEPYPATH=\".:$(PEPYDIRM)\" | |
53 | ||
54 | .SUFFIXES: .py .c .o | |
55 | ||
56 | .py.c:; ./xpepy -a PY_advise -m $(PYFLAGS) $< | |
57 | ||
58 | ||
59 | # to prevent a lot of unnecessary re-loading | |
60 | PEPYLIBES= $(TOPDIR)psap/sprintoid.o $(TOPDIR)psap/pl_tables.o \ | |
61 | $(TOPDIR)psap/oid_cmp.o $(TOPDIR)psap/oid_cpy.o \ | |
62 | $(TOPDIR)psap/oid_free.o \ | |
63 | $(TOPDIR)compat/asprintf.o $(TOPDIR)compat/serror.o \ | |
64 | $(TOPDIR)compat/sprintb.o | |
65 | LIBES = $(TOPDIR)libpepsy.a $(TOPDIR)libpsap.a $(TOPDIR)libcompat.a | |
66 | LLIBS = $(TOPDIR)llib-lpsap $(TOPDIR)llib-lcompat | |
67 | HFILES = $(HDIR)psap.h \ | |
68 | $(HDIR)manifest.h $(HDIR)general.h $(HDIR)config.h | |
69 | ||
70 | ||
71 | ################################################################## | |
72 | # Here it is... | |
73 | ################################################################## | |
74 | ||
75 | all: pepy posy libpepy pepytest pp | |
76 | inst-all: inst-pepy inst-posy inst-headers manuals # inst-libpepy | |
77 | install: inst-all clean | |
78 | tests: pepytest pp mpp salary hello_world bigpepytest true | |
79 | -@for f in test/test*.pe; \ | |
80 | do (echo pepytest $$f; pepytest < $$f); done | |
81 | -@for f in test/test*.pe test/mhs/msg*.pe; \ | |
82 | do (echo pp $$f; pp < $$f); done | |
83 | -@for f in test/mhs/msg*.pe; \ | |
84 | do (echo mpp $$f; mpp < $$f); done | |
85 | -salary fritz 10 | |
86 | -hello_world | |
87 | -bigpepytest | |
88 | lint: l-pepy l-posy l-libpepy l-pepytest l-pp l-mpp l-salary \ | |
89 | l-hello_world l-bigpepytest | |
90 | ||
91 | ||
92 | ################################################################## | |
93 | # pepy | |
94 | ################################################################## | |
95 | ||
96 | inst-pepy: $(BINDIR)pepy | |
97 | ||
98 | $(BINDIR)pepy: xpepy | |
99 | -cp $@ zxpepy | |
100 | -rm -f $@ | |
101 | cp xpepy $@ | |
102 | -@ls -gls $@ | |
103 | -@echo "" | |
104 | ||
105 | pepy: xpepy | |
106 | ||
107 | xpepy: pepyvrsn.o $(PEPYLIBES) | |
108 | $(LDCC) $(LDFLAGS) -o $@ pepy.o pepy_do.o pepy_undo.o \ | |
109 | yacc.o pepy_misc.o pepyvrsn.o $(PEPYLIBES) \ | |
110 | $(LSOCKET) -lm | |
111 | ||
112 | pepy.o: pepy.c pepy.h $(HFILES) | |
113 | $(CC) $(CFLAGS) -c pepy.c | |
114 | ||
115 | pepyvrsn.c: pepy.o yacc.o pepy_do.o pepy_undo.o pepy_misc.o | |
116 | @$(UTILDIR)version.sh pepy > $@ | |
117 | ||
118 | pepy_do.o: pepy_do.c pepy.h | |
119 | $(CC) $(CFLAGS) -c pepy_do.c | |
120 | ||
121 | pepy_undo.o: pepy_undo.c pepy.h | |
122 | $(CC) $(CFLAGS) -c pepy_undo.c | |
123 | ||
124 | pepy_misc.o: pepy_misc.c pepy.h | |
125 | $(CC) $(CFLAGS) -c pepy_misc.c | |
126 | ||
127 | yacc.o: yacc.c lex.c pepy.h $(HFILES) | |
128 | $(CC) $(CFLAGS) -c $*.c | |
129 | ||
130 | yacc.c: yacc.y | |
131 | -@echo "expect 20 shift/reduce and 9 reduce/reduce conflicts" | |
132 | yacc $(YACCFLAGS) yacc.y | |
133 | mv y.tab.c $@ | |
134 | ||
135 | yacc.y: yacc.y.gnrc | |
136 | $(UTILDIR)extract.sh PEPY < $? > $@ | |
137 | ||
138 | lex.c: lex.l | |
139 | $(LEX) $(LEXFLAGS) lex.l | |
140 | mv lex.yy.c $@ | |
141 | ||
142 | lex.l: lex.l.gnrc | |
143 | $(UTILDIR)extract.sh PEPY < $? > $@ | |
144 | ||
145 | pepy.h: $(TOPDIR)pepsy/pepsy.h.gnrc | |
146 | $(UTILDIR)extract.sh PEPY < $? > $@ | |
147 | ||
148 | l-pepy: pepy.h yacc.c lex.c pepyvrsn.c true | |
149 | $(LINT) $(LFLAGS) pepy.c yacc.c pepy_do.c pepy_undo.c \ | |
150 | pepy_misc.c pepyvrsn.c $(LLIBS) \ | |
151 | | grep -v "warning: possible pointer alignment problem" | |
152 | ||
153 | ||
154 | ################################################################## | |
155 | # posy | |
156 | ################################################################## | |
157 | ||
158 | inst-posy: $(BINDIR)posy | |
159 | ||
160 | $(BINDIR)posy: xposy | |
161 | -cp $@ zxposy | |
162 | -rm -f $@ | |
163 | cp xposy $@ | |
164 | -@ls -gls $@ | |
165 | -@echo "" | |
166 | ||
167 | posy: xposy | |
168 | ||
169 | xposy: posy.o pepy_misc.o yacc.o pepyvrsn.o $(PEPYLIBES) | |
170 | $(LDCC) $(LDFLAGS) -o $@ posy.o pepy_misc.o yacc.o \ | |
171 | pepyvrsn.o $(PEPYLIBES) $(LSOCKET) -lm | |
172 | ||
173 | posy.o: posy.c pepy.h $(HFILES) | |
174 | $(CC) $(CFLAGS) -c $*.c | |
175 | ||
176 | l-posy: yacc.c lex.c true | |
177 | $(LINT) $(LFLAGS) posy.c yacc.c pepy_misc.c \ | |
178 | pepyvrsn.c $(LLIBS) \ | |
179 | | grep -v "warning: possible pointer alignment problem" | |
180 | ||
181 | ||
182 | ################################################################ | |
183 | # libpepy | |
184 | ################################################################ | |
185 | ||
186 | CFILES = py_pp.c testdebug.c | |
187 | OFILES = py_pp.o testdebug.o | |
188 | HEADERS = UNIV.ph UNIV-types.h | |
189 | ||
190 | inst-libpepy: $(LIBDIR)libpepy.a inst-headers | |
191 | ||
192 | $(LIBDIR)libpepy.a: libpepy.a | |
193 | -rm -f $@ | |
194 | cp libpepy.a $@ | |
195 | @$(UTILDIR)make-lib.sh $(SYSTEM) $@ -ranlib | |
196 | -@ls -gls $@ | |
197 | -@echo "" | |
198 | ||
199 | inst-headers:; -mkdir $(PEPYDIRM) | |
200 | @for h in $(HEADERS); do $(MAKE) TARGET=$$h inst-target; done | |
201 | ||
202 | inst-target: $(PEPYDIR)$(TARGET) | |
203 | ||
204 | $(PEPYDIR)$(TARGET): $(TARGET) | |
205 | -cp $@ z$(TARGET) | |
206 | cp $(TARGET) $@ | |
207 | -@ls -gls $@ | |
208 | -@echo "" | |
209 | ||
210 | libpepy: libpepy.a | |
211 | ||
212 | libpepy.a: UNIV-O $(OFILES) | |
213 | -rm -f $@ | |
214 | @$(UTILDIR)make-lib.sh $(SYSTEM) $(ARFLAGS) $@ $(OFILES) \ | |
215 | $(UNIV-O) | |
216 | -@rm -f $(TOPDIR)libpepy.a | |
217 | -@$(LN) libpepy.a $(TOPDIR)libpepy.a | |
218 | -@ls -l $@ | |
219 | -@echo "PEPY library built normally" | |
220 | ||
221 | UNIV-O = UPEPY-[0-9]*.o VPEPY-[0-9]*.o | |
222 | UNIV-C = UPEPY-[0-9]*.c VPEPY-[0-9]*.c | |
223 | ||
224 | UNIV-O: UPEPY-C VPEPY-C | |
225 | @$(MAKE) `/bin/ls $(UPEPY-C) $(VPEPY-C) | sed 's/\.c$$/.o/'` | |
226 | -@touch $@ | |
227 | ||
228 | UNIV-C: UPEPY-C VPEPY-C | |
229 | ||
230 | UPEPY-O = UPEPY-[0-9]*.o | |
231 | UPEPY-C = UPEPY-[0-9]*.c | |
232 | ||
233 | UPEPY-C: $(TOPDIR)pepsy/UNIV.py xpepy | |
234 | -@rm -f $(UPEPY-C) $(UPEPY-O) | |
235 | ./xpepy -a PY_advise -m -A -b UPEPY $(TOPDIR)pepsy/UNIV.py | |
236 | -@touch $@ | |
237 | ||
238 | VPEPY-O = VPEPY-[0-9]*.o | |
239 | VPEPY-C = VPEPY-[0-9]*.c | |
240 | ||
241 | VPEPY-C: UNIV-types.py xpepy | |
242 | -@rm -f $(VPEPY-C) $(VPEPY-O) | |
243 | ./xpepy -a PY_advise -m -b VPEPY UNIV-types.py | |
244 | -@touch $@ | |
245 | ||
246 | UNIV-types.h UNIV-types.py: $(TOPDIR)pepsy/UNIV.py xposy | |
247 | ./xposy -f -h -m -o UNIV-types.py $(TOPDIR)pepsy/UNIV.py | |
248 | ||
249 | l-libpepy: $(CFILES) UNIV-C true | |
250 | $(LINT) $(LFLAGS) $(CFILES) $(UNIV-C) $(LLIBS) \ | |
251 | | grep -v "warning: possible pointer alignment problem" | |
252 | ||
253 | testdebug.c: testdebug.py xpepy | |
254 | ||
255 | ||
256 | py_pp.o: py_pp.c $(HDIR)psap.h $(HDIR)general.h $(HDIR)manifest.h | |
257 | ||
258 | ################################################################## | |
259 | # pepytest | |
260 | ################################################################## | |
261 | ||
262 | pepytest: pepytest.o libpepy.a $(LIBES) | |
263 | $(LDCC) $(LDFLAGS) -o $@ pepytest.o libpepy.a $(LIBES) \ | |
264 | $(LSOCKET) | |
265 | ||
266 | pepytest.o: pepytest.c $(HFILES) | |
267 | ||
268 | pepytest.c: pepytest.py xpepy | |
269 | ||
270 | l-pepytest: pepytest.c $(CFILES) UNIV-C true | |
271 | $(LINT) $(LFLAGS) pepytest.c $(CFILES) $(UNIV-C) $(LLIBS) \ | |
272 | | grep -v "warning: possible pointer alignment problem" | |
273 | ||
274 | ||
275 | ################################################################## | |
276 | # pp | |
277 | ################################################################## | |
278 | ||
279 | pp: pp.o libpepy.a $(LIBES) | |
280 | $(LDCC) $(LDFLAGS) -o $@ pp.o libpepy.a $(LIBES) $(LSOCKET) | |
281 | ||
282 | pp.o: pp.c $(HFILES) | |
283 | ||
284 | pp.c: pp.py xpepy | |
285 | ||
286 | l-pp: pp.c $(CFILES) UNIV-C true | |
287 | $(LINT) $(LFLAGS) pp.c $(CFILES) $(UNIV-C) $(LLIBS) \ | |
288 | | grep -v "warning: possible pointer alignment problem" | |
289 | ||
290 | ||
291 | ################################################################## | |
292 | # tests | |
293 | ################################################################## | |
294 | ||
295 | mpp: mpp.o P1.o P2.o P3.o SFD.o T73.o EAN.o libpepy.a $(LIBES) | |
296 | $(LDCC) $(LDFLAGS) -o $@ mpp.o P1.o P2.o P3.o SFD.o T73.o \ | |
297 | EAN.o libpepy.a $(LIBES) $(LSOCKET) | |
298 | ||
299 | mpp.o: mpp.c $(HFILES) | |
300 | mpp.c: mpp.py xpepy | |
301 | ||
302 | EAN.o: EAN.c $(HFILES) | |
303 | EAN.c: EAN.py xpepy | |
304 | ||
305 | P1.o: P1.c $(HFILES) | |
306 | P1.c: P1.py xpepy | |
307 | ||
308 | P2.o: P2.c $(HFILES) | |
309 | P2.c: P2.py xpepy | |
310 | ||
311 | P3.o: P3.c $(HFILES) | |
312 | P3.c: P3.py xpepy | |
313 | ||
314 | SFD.o: SFD.c $(HFILES) | |
315 | SFD.c: SFD.py xpepy | |
316 | ||
317 | T73.o: T73.c $(HFILES) | |
318 | T73.c: T73.py xpepy | |
319 | ||
320 | l-mpp: mpp.c P1.c P2.c P3.c SFD.c T73.c EAN.c $(CFILES) UNIV-C true | |
321 | $(LINT) $(LFLAGS) mpp.c P1.c P2.c P3.c SFD.c T73.c EAN.c \ | |
322 | $(CFILES) $(UNIV-C) $(LLIBS) \ | |
323 | | grep -v "warning: possible pointer alignment problem" | |
324 | ||
325 | ||
326 | salary: salary.o | |
327 | $(LDCC) $(LDFLAGS) -o $@ salary.o libpepy.a $(LIBES) \ | |
328 | $(LSOCKET) | |
329 | ||
330 | salary.c: salary.py xpepy | |
331 | ||
332 | l-salary: salary.c $(CFILES) UNIV-C true | |
333 | $(LINT) $(LFLAGS) salary.c $(CFILES) $(UNIV-C) $(LLIBS) \ | |
334 | | grep -v "warning: possible pointer alignment problem" | |
335 | ||
336 | ||
337 | hello_world: hello_world.o | |
338 | $(LDCC) $(LDFLAGS) -o $@ hello_world.o libpepy.a \ | |
339 | $(LIBES) $(LSOCKET) | |
340 | ||
341 | hello_world.c: hello_world.py xpepy | |
342 | ||
343 | l-hello_world: hello_world.c $(CFILES) UNIV-C true | |
344 | $(LINT) $(LFLAGS) hello_world.c $(CFILES) $(UNIV-C) $(LLIBS) \ | |
345 | | grep -v "warning: possible pointer alignment problem" | |
346 | ||
347 | ||
348 | bigpepytest: bigpepytest.o | |
349 | $(LDCC) $(LDFLAGS) -o $@ bigpepytest.o libpepy.a $(LIBES) \ | |
350 | $(LSOCKET) | |
351 | ||
352 | bigpepytest.c: bigpepytest.py xpepy | |
353 | ||
354 | l-bigpepytest: bigpepytest.c $(CFILES) UNIV-C true | |
355 | $(LINT) $(LFLAGS) bigpepytest.c $(CFILES) $(UNIV-C) $(LLIBS) \ | |
356 | | grep -v "warning: possible pointer alignment problem" | |
357 | ||
358 | ||
359 | ################################################################ | |
360 | # manual pages | |
361 | ################################################################ | |
362 | ||
363 | MANUALS = pepy.1 posy.1 # libpepy.3 | |
364 | ||
365 | manuals:; @$(UTILDIR)inst-man.sh $(MANOPTS) $(MANUALS) | |
366 | -@echo "" | |
367 | ||
368 | ||
369 | ################################################################ | |
370 | # clean | |
371 | ################################################################ | |
372 | ||
373 | clean:; rm -f *.o *.a x* z* _* core pepy.h *yacc.y *yacc.c lex.l \ | |
374 | lex.c *.ph testdebug.c UNIV-* UPEPY-* VPEPY-* \ | |
375 | pepytest.c pepytest pp.c pp mpp mpp.c P1.c P2.c \ | |
376 | P3.c SFD.c T73.c EAN.c pepyvrsn.c salary.c salary \ | |
377 | hello_world.c hello_world bigpepytest.c bigpepytest | |
378 | ||
379 | grind:; iprint Makefile | |
380 | tgrind -lc pepy.h pepy.c posy.c pepyvrsn.c | |
381 | tgrind -ly yacc.y lex.l | |
382 | tgrind -lpepy -d grindefs pepytest.py \ | |
383 | mpp.py P1.py P2.py P3.py SFD.py T73.py EAN.py \ | |
384 | salary.py hello_world.py bigpepytest.py | |
385 | tgrind -lc $(CFILES) | |
386 | @echo $(MANUALS) | \ | |
387 | tr " " "\012" | \ | |
388 | sed -e "s%.*%itroff -man &%" | \ | |
389 | sh -ve | |
390 | ||
391 | true:; |