Made charm++ to compile and run with Solaris 2.6.
[charm.git] / src / scripts / Makefile
1 #############################################################################
2 #
3 # This one Makefile serves all of converse and charm.  It includes
4 # rules for building:
5 #
6 #     * The CONVERSE libraries
7 #     * The CHARM libraries
8 #     * The CHARM++ libraries
9 #     * The CHARM translator
10 #     * The CHARM++ translator
11
12 # This Makefile is common to all machines.  This works because the charmc
13 # is smart enough to "conceal" the differences between machines.  charmc
14 # gets its smarts by reading the conv-mach.csh configuration file.
15 #
16 # If you wish to compile with debugging, optimization, or some other charm
17 # option, you can do so by setting OPTS.  For example, if you need a lot
18 # of debugging information, you could type:
19 #
20 #     make charm OPTS="-g -save -verbose"
21 #
22 ###############################################################################
23
24 SHELL=/bin/sh
25
26 all: charm++ smsg pvm
27
28 charm: converse charmxlat charmlibs libcharm
29
30 charm++: converse charmxlat charmlibs charmxlat++ charmfilter++ charmxi libcharm libck-cplus-y.a libck-defmain-cpp.a
31
32 smsg: converse libsimplemsg.a
33
34 pvm: converse libpvmc.a
35
36 translators: charmxlat charmfilter charmxlat++ charmfilter++ charmxi conv-cpm
37
38 test-all: all
39         (cd ../pgms ; make test-all)
40
41 test-converse: converse
42         (cd ../pgms ; make test-converse)
43
44 test-charm: charm
45         (cd ../pgms ; make test-charm)
46
47 test-charm++: charm++
48         (cd ../pgms ; make test-charm++)
49
50 CHARMC=../bin/charmc $(CHARMOPTS) $(OPTS)
51
52 SEQCHARMC=../bin/charmc $(CHARMOPTS)
53
54
55 ###############################################################################
56 #
57 # The basics (bin, lib, include, headers, charmc, conv-mach.csh)
58 #
59 ###############################################################################
60
61 ALLHEADERS=acc.h c++interface.h chare.h ckdefs.h common.h communication.h condsend.h const.h cpthreads.h dagger.h dtable.h env_macros.h globals.h mono.h msg_macros.h prio_macros.h qd.h stat.h sys_macros.h table.h tbl.h trans_decls.h trans_defs.h trans_externs.h user_macros.h vid.h wrtone.h converse.h conv-mach.h internal.h quiescence.h simplemsg.h trace.h dag.h generic_redn.h pvmc.h pvm3.h # pglib.h
62
63 ALLINTERFACES=GENERIC-ACC.int GENERIC-HIST.int GENERIC-REDN.int barrier_redn.int cache.int dacc_count.int dacc_hist.int dcountredn.int dmaxredn.int dminredn.int dprodredn.int dsumredn.int facc_count.int facc_hist.int fcountredn.int fmaxredn.int fminredn.int fprodredn.int fsumredn.int iacc_count.int iacc_hist.int icountredn.int imaxredn.int iminredn.int iprodredn.int isumredn.int pg.int
64
65 basics: dirs+sources $(ALLHEADERS) $(ALLINTERFACES) charmc conv-mach.csh
66         rm -rf ../include
67         mkdir ../include
68         cp $(ALLHEADERS) ../include/
69         cp $(ALLINTERFACES) ../include/
70         rm -f ../bin/charmc ; cp charmc ../bin/
71         chmod 755 ../bin/charmc
72         cp conv-mach.csh ../include/
73         touch basics
74
75 dirs+sources:
76         @rm -f .vdir .gdir
77         @(cd .. ; basename `pwd`)                       > .vdir
78         @(cd .. ; basename `pwd` | sed -e 's@-.*@@')    > .gdir
79         @echo
80         @echo 'Gathering source code.'
81         @echo
82         find . -type l -exec rm {} \;
83         rm -rf ../bin ; mkdir ../bin
84         rm -rf ../lib ; mkdir ../lib
85         rm -rf ../src ; mkdir ../src
86         rm -rf ../pgms
87         ../../src/Common/scripts/gatherflat ../../src/Common/scripts .
88         ./gatherflat ../../src/Common/conv-core        .
89         ./gatherflat ../../src/Common/ck-core          .
90         ./gatherflat ../../src/Common/ck-ldb           .
91         ./gatherflat ../../src/Common/ck-perf          .
92         ./gatherflat ../../src/Common/langs/simplemsg  .
93         ./gatherflat ../../src/Common/langs/pvmc       .
94         ./gatherflat ../../src/Common/lib-acc          .
95         ./gatherflat ../../src/Common/lib-misc         .
96         ./gatherflat ../../src/Common/lib-redn         .
97         ./gatherflat ../../src/Common/xlat             .
98         ./gatherflat ../../src/Common/xlat++           .
99         ./gatherflat ../../src/Common/xlat-i           .
100         ./gatherflat ../../src/Common/xlatcpm          .
101         ./gathertree ../../src/QuickThreads QuickThreads
102         ./gatherflat ../../src/Common.`cat .gdir`      .
103         ./gatherflat ../../src/`cat .vdir`             .
104         ./gathertree ../../src/Common/langs   ../src/langs
105         ./gathertree ../../src/Common/xlat    ../src/xlat
106         ./gathertree ../../src/Common/xlat++  ../src/xlat++
107         ./gathertree ../../src/Common/xlat-i  ../src/xlat-i
108         ./gathertree ../../src/Common/xlatcpm ../src/xlatcpm
109         ./gathertree ../../pgms ../pgms
110         ln -s ../../src/Common/scripts/Makefile ../src
111         @echo
112         @echo
113         @rm -f .vdir .gdir
114         touch dirs+sources
115
116
117 ###############################################################################
118 #
119 # Converse Libraries
120 #
121 ###############################################################################
122
123 CVHEADERS=converse.h conv-mach.h conv-mach.csh
124
125 TRACELIBS=libck-trace-none.a libck-trace-summary.a libck-trace-projections.a
126
127 CVLIBS=libconv-core.a libconv-cplus-n.a libconv-cplus-y.a libldb-rand.o $(TRACELIBS)
128
129 LIBCONV_CORE=threads.o convcore.o conv-conds.o spantree.o queueing.o fifo.o msgmgr.o memory.o cpm.o cpthreads.o futures.o ldbcfns.o
130
131 converse: basics QuickThreads/libqt.a $(CVLIBS) conv-host-if-needed conv-cpm
132
133 conv-host-if-needed:
134         if [ -f conv-host.c ] ; then make conv-host OPTS='$(OPTS)' ; fi
135
136 QuickThreads/libqt.a:
137         csh -fc 'source conv-mach.csh;cd QuickThreads;./configure $$CMK_QT'
138         cd QuickThreads ; make qt
139         cp QuickThreads/libqt.a ../lib
140
141 conv-host: conv-host.c
142         ../bin/charmc $(OPTS) -c -seq -DSILENT conv-host.c
143         ../bin/charmc $(OPTS) -cp ../bin -seq -o conv-host-silent conv-host.o
144         ../bin/charmc $(OPTS) -c -seq -DNOTIFY conv-host.c
145         ../bin/charmc $(OPTS) -cp ../bin -seq -o conv-host-notify conv-host.o
146         cp conv-host-notify conv-host
147         cp conv-host ../bin/conv-host
148
149 libconv-core.a: $(LIBCONV_CORE)
150         $(CHARMC) -cp ../lib/ -o $@ $(LIBCONV_CORE)
151
152 libconv-cplus-y.a: machine.c $(CVHEADERS)       
153         $(CHARMC) -cp ../lib/ -o $@ -DFOR_CPLUS=1 machine.c
154
155 libconv-cplus-n.a: machine.c $(CVHEADERS)
156         $(CHARMC) -cp ../lib/ -o $@ -DFOR_CPLUS=0 machine.c
157
158 cpm.o: cpm.c $(CVHEADERS)
159         $(CHARMC) cpm.c
160
161 fifo.o: fifo.c $(CVHEADERS)
162         $(CHARMC) fifo.c
163
164 threads.o: threads.c $(CVHEADERS)
165         $(CHARMC) -IQuickThreads threads.c
166
167 spantree.o: spantree.c $(CVHEADERS)
168         $(CHARMC) spantree.c
169
170 convcore.o: convcore.c $(CVHEADERS)
171         $(CHARMC) convcore.c
172
173 queueing.o: queueing.c $(CVHEADERS)
174         $(CHARMC) queueing.c
175
176 conv-conds.o: conv-conds.c $(CVHEADERS)
177         $(CHARMC) conv-conds.c
178
179 futures.o: futures.c $(CVHEADERS)
180         $(CHARMC) futures.c
181
182 msgmgr.o: msgmgr.c $(CVHEADERS)
183         $(CHARMC) msgmgr.c
184
185 cpthreads.o: cpthreads.c $(CVHEADERS)
186         $(CHARMC) cpthreads.c
187
188 memory.o: memory.c $(CVHEADERS)
189         $(CHARMC) memory.c
190
191 ldbcfns.o: ldbcfns.c $(CVHEADERS)
192         $(CHARMC) ldbcfns.c
193
194 libldb-rand.o: ldb.rand.c $(CVHEADERS)
195         $(CHARMC) -cp ../lib/ -o $@ ldb.rand.c
196
197
198 ###############################################################################
199 #
200 # Charm Libraries
201 #
202 ###############################################################################
203
204 CKHEADERS=chare.h const.h msg_macros.h prio_macros.h env_macros.h globals.h\
205           sys_macros.h communication.h trace.h $(CVHEADERS)
206
207 CK_LIBS_CORE=libck-core.a
208
209 CK_LIBS_LDB=libldb-acwn.o libldb-mngr.o
210
211 CK_LIBS_CPLUS=libck-cplus-n.a libck-defmain-std.a
212
213 CK_LIBS=$(CK_LIBS_CORE) $(CK_LIBS_LDB) $(CK_LIBS_CPLUS)
214
215 LIBCK_CORE=common.o globals.o init.o register.o boc.o condsend.o qd.o vid.o rdonly.o stat.o wrtone.o acc.o mono.o tbl.o memstuff.o ck.o main.o
216
217 charmlibs: converse $(CK_LIBS)
218
219 libck-core.a: $(LIBCK_CORE)
220         $(CHARMC) -cp ../lib/ -o $@ $(LIBCK_CORE)
221
222 LIBTRACE_NONE=trace-none.o
223 libtrace-none.a: $(LIBTRACE_NONE)
224         $(CHARMC) -cp ../lib/ -o $@ $(LIBTRACE_NONE)
225
226 LIBTRACE_SUMMARY=trace-summary.o traceio.o
227 libtrace-summary.a: $(LIBTRACE_SUMMARY)
228         $(CHARMC) -cp ../lib/ -o $@ $(LIBTRACE_SUMMARY)
229
230 LIBTRACE_PROJ=trace-projections.o traceio.o
231 libtrace-projections.a: $(LIBTRACE_PROJ)
232         $(CHARMC) -cp ../lib/ -o $@ $(LIBTRACE_PROJ)
233
234 libldb-acwn.o: ldb.acwn.p ldb.h $(CKHEADERS)
235         $(CHARMC) -cp ../lib/ -o $@ ldb.acwn.p
236
237 libldb-mngr.o: ldb.mngr.p ldb.h $(CKHEADERS)
238         $(CHARMC) -cp ../lib/ -o $@ ldb.mngr.p
239
240 libck-cplus-n.a: dummy.cplus.c $(CKHEADERS)
241         $(CHARMC) -cp ../lib/ -o $@ dummy.cplus.c
242
243 libck-defmain-std.a: defmain-std.c $(CKHEADERS)
244         $(CHARMC) -cp ../lib/ -o $@ defmain-std.c
245
246 common.o: common.c $(CKHEADERS)
247         $(CHARMC) -o common.o common.c
248
249 globals.o: globals.c $(CKHEADERS)
250         $(CHARMC) -o globals.o globals.c
251
252 register.o: register.c $(CKHEADERS)
253         $(CHARMC) -o register.o register.c
254
255 init.o: init.c $(CKHEADERS)
256         $(CHARMC) -o init.o init.c
257
258 boc.o: boc.c $(CKHEADERS)
259         $(CHARMC) -o boc.o boc.c
260
261 condsend.o: condsend.c condsend.h $(CKHEADERS)
262         $(CHARMC) -o condsend.o condsend.c
263
264 qd.o: qd.c qd.h $(CKHEADERS)
265         $(CHARMC) -o qd.o qd.c
266
267 vid.o: vid.c vid.h $(CKHEADERS)
268         $(CHARMC) -o vid.o vid.c
269
270 stat.o: stat.c stat.h $(CKHEADERS)
271         $(CHARMC) -o stat.o stat.c
272
273 rdonly.o: rdonly.c $(CKHEADERS)
274         $(CHARMC) -o rdonly.o rdonly.c
275
276 acc.o: acc.c acc.h $(CKHEADERS)
277         $(CHARMC) -o acc.o acc.c
278
279 mono.o: mono.c mono.h $(CKHEADERS)
280         $(CHARMC) -o mono.o mono.c
281
282 tbl.o: tbl.c tbl.h $(CKHEADERS)
283         $(CHARMC) -o tbl.o tbl.c
284
285 wrtone.o: wrtone.c wrtone.h $(CKHEADERS)
286         $(CHARMC) -o wrtone.o wrtone.c
287
288 memstuff.o: memstuff.c $(CKHEADERS)
289         $(CHARMC) -o memstuff.o memstuff.c
290
291 main.o: main.c $(CKHEADERS)
292         $(CHARMC) -o main.o main.c
293
294 ck.o: ck.c $(CKHEADERS)
295         $(CHARMC) -o ck.o ck.c
296
297 traceio.o : traceio.c trace.h $(CKHEADERS)
298         $(CHARMC) -o traceio.o traceio.c
299
300 trace-none.o : trace-none.c trace.h $(CKHEADERS)
301         $(CHARMC) -o trace-none.o trace-none.c
302
303 trace-summary.o : trace-summary.c trace.h $(CKHEADERS)
304         $(CHARMC) -o trace-summary.o trace-summary.c
305
306 trace-record.o : trace-record.c trace.h $(CKHEADERS)
307         $(CHARMC) -o trace-record.o trace-record.c
308
309 trace-replay.o : trace-replay.c trace.h $(CKHEADERS)
310         $(CHARMC) -o trace-replay.o trace-replay.c
311
312 trace-projections.o : trace-projections.c trace.h $(CKHEADERS)
313         $(CHARMC) -o trace-projections.o trace-projections.c
314
315 ###############################################################################
316 #
317 # C++ code for the charm++ runtime library.
318 #
319 ###############################################################################
320
321 ckfutures.o: ckfutures.C ckfutures.ci c++interface.h $(CKHEADERS)
322         $(CHARMC) ckfutures.ci
323         $(CHARMC) -c ckfutures.C
324
325 cplus.o: cplus.C c++interface.h $(CKHEADERS)
326         $(CHARMC) -o cplus.o cplus.C
327
328 libck-cplus-y.a: cplus.o ckfutures.o 
329         $(CHARMC) -cp ../lib/ -o $@ cplus.C ckfutures.o
330
331 libck-defmain-cpp.a: defmain-cpp.C $(CKHEADERS)
332         $(CHARMC) -cp ../lib/ -o $@ defmain-cpp.C
333
334 ###############################################################################
335 #
336 # libcharm
337 #
338 ###############################################################################
339
340 GENERIC_ACC_H=GENERIC-ACC.int GENERIC-ACC.p $(CKHEADERS)
341 GENERIC_HIST_H=GENERIC-HIST.int GENERIC-HIST.p $(CKHEADERS)
342 GENERIC_REDN_H=GENERIC-REDN.int GENERIC-REDN.p $(CKHEADERS)
343
344 LIBCHARM=cache.o dag.o barrier_redn.o pglib.o \
345          iacc_count.o facc_count.o dacc_count.o \
346          iacc_hist.o facc_hist.o dacc_hist.o \
347          iminredn.o imaxredn.o isumredn.o iprodredn.o icountredn.o \
348          fminredn.o fmaxredn.o fsumredn.o fprodredn.o \
349          dminredn.o dmaxredn.o dsumredn.o dprodredn.o
350
351
352 libcharm: charmxlat libcharm.a
353
354 libcharm.a: $(LIBCHARM)
355         $(CHARMC) -cp ../lib/ -o $@ $(LIBCHARM)
356
357 pglib.o: pglib.p pglib.h pg.int $(CKHEADERS)
358         $(CHARMC) pglib.p
359
360 cache.o: cache.p cache.int $(CKHEADERS)
361         $(CHARMC) cache.p
362
363 dag.o: dag.c dag.h $(CKHEADERS)
364         $(CHARMC) dag.c
365
366 barrier_redn.o: barrier_redn.p barrier_redn.int $(CKHEADERS)
367         $(CHARMC) barrier_redn.p
368
369 iacc_count.o: iacc_count.int $(GENERIC_ACC_H)
370         $(CHARMC) -o iacc_count.o GENERIC-ACC.p -DHEAD='"iacc_count.int"'
371
372 facc_count.o: facc_count.int $(GENERIC_ACC_H)
373         $(CHARMC) -o facc_count.o GENERIC-ACC.p -DHEAD='"facc_count.int"'
374
375 dacc_count.o: dacc_count.int $(GENERIC_ACC_H)
376         $(CHARMC) -o dacc_count.o GENERIC-ACC.p -DHEAD='"dacc_count.int"'
377
378 iacc_hist.o: iacc_hist.int $(GENERIC_HIST_H)
379         $(CHARMC) -o iacc_hist.o GENERIC-HIST.p -DHEAD='"iacc_hist.int"'
380
381 facc_hist.o: facc_hist.int $(GENERIC_HIST_H)
382         $(CHARMC) -o facc_hist.o GENERIC-HIST.p -DHEAD='"facc_hist.int"'
383
384 dacc_hist.o: dacc_hist.int $(GENERIC_HIST_H)
385         $(CHARMC) -o dacc_hist.o GENERIC-HIST.p -DHEAD='"dacc_hist.int"'
386
387 imaxredn.o: imaxredn.int $(GENERIC_REDN_H)
388         $(CHARMC) -o imaxredn.o GENERIC-REDN.p -DHEAD='"imaxredn.int"'
389
390 iminredn.o: iminredn.int $(GENERIC_REDN_H)
391         $(CHARMC) -o iminredn.o GENERIC-REDN.p -DHEAD='"iminredn.int"'
392
393 isumredn.o: isumredn.int $(GENERIC_REDN_H)
394         $(CHARMC) -o isumredn.o GENERIC-REDN.p -DHEAD='"isumredn.int"'
395
396 iprodredn.o: iprodredn.int $(GENERIC_REDN_H)
397         $(CHARMC) -o iprodredn.o GENERIC-REDN.p -DHEAD='"iprodredn.int"'
398
399 icountredn.o: icountredn.int $(GENERIC_REDN_H)
400         $(CHARMC) -o icountredn.o GENERIC-REDN.p -DHEAD='"icountredn.int"'
401
402 fmaxredn.o: fmaxredn.int $(GENERIC_REDN_H)
403         $(CHARMC) -o fmaxredn.o GENERIC-REDN.p -DHEAD='"fmaxredn.int"'
404
405 fminredn.o: fminredn.int $(GENERIC_REDN_H)
406         $(CHARMC) -o fminredn.o GENERIC-REDN.p -DHEAD='"fminredn.int"'
407
408 fsumredn.o: fsumredn.int $(GENERIC_REDN_H)
409         $(CHARMC) -o fsumredn.o GENERIC-REDN.p -DHEAD='"fsumredn.int"'
410
411 fprodredn.o: fprodredn.int $(GENERIC_REDN_H)
412         $(CHARMC) -o fprodredn.o GENERIC-REDN.p -DHEAD='"fprodredn.int"'
413
414 fcountredn.o: fcountredn.int $(GENERIC_REDN_H)
415         $(CHARMC) -o fcountredn.o GENERIC-REDN.p -DHEAD='"fcountredn.int"'
416
417 dmaxredn.o: dmaxredn.int $(GENERIC_REDN_H)
418         $(CHARMC) -o dmaxredn.o GENERIC-REDN.p -DHEAD='"dmaxredn.int"'
419
420 dminredn.o: dminredn.int $(GENERIC_REDN_H)
421         $(CHARMC) -o dminredn.o GENERIC-REDN.p -DHEAD='"dminredn.int"'
422
423 dsumredn.o: dsumredn.int $(GENERIC_REDN_H)
424         $(CHARMC) -o dsumredn.o GENERIC-REDN.p -DHEAD='"dsumredn.int"'
425
426 dprodredn.o: dprodredn.int $(GENERIC_REDN_H)
427         $(CHARMC) -o dprodredn.o GENERIC-REDN.p -DHEAD='"dprodredn.int"'
428
429 dcountredn.o: dcountredn.int $(GENERIC_REDN_H)
430         $(CHARMC) -o dcountredn.o GENERIC-REDN.p -DHEAD='"dcountredn.int"'
431
432 ###############################################################################
433 #
434 #
435 ###############################################################################
436
437 CHARMXLAT=xl-main.o xl-yacc.tab.o xl-sym.o xl-str.o xl-lex.o xl-lexsp.o xl-rdtok.o xl-parse.o xl-outh.o xl-srch.o xl-dag.o
438
439 charmxlat charmfilter: $(CHARMXLAT) xl-sfspec.o
440         $(SEQCHARMC) -seq -o charmxlat   -cp ../bin/ $(CHARMXLAT)
441         $(SEQCHARMC) -seq -o charmfilter -cp ../bin/ xl-sfspec.o
442
443 xl-main.o: xl-main.c
444         $(SEQCHARMC) -seq xl-main.c
445
446 xl-sym.o: xl-sym.c xl-sym.h
447         $(SEQCHARMC) -seq xl-sym.c
448
449 xl-str.o: xl-str.c
450         $(SEQCHARMC) -seq xl-str.c
451
452 xl-lex.o: xl-lex.c xl-lex.h xl-sym.h
453         $(SEQCHARMC) -seq xl-lex.c
454
455 xl-rdtok.o: xl-rdtok.c xl-lex.h xl-sym.h
456         $(SEQCHARMC) -seq xl-rdtok.c
457
458 xl-parse.o: xl-parse.c xl-lex.h xl-sym.h
459         $(SEQCHARMC) -seq xl-parse.c
460
461 xl-outh.o: xl-outh.c xl-lex.h xl-sym.h
462         $(SEQCHARMC) -seq xl-outh.c
463
464 xl-srch.o: xl-srch.c xl-lex.h xl-sym.h
465         $(SEQCHARMC) -seq xl-srch.c
466
467 xl-dag.o: xl-dag.c
468         $(SEQCHARMC) -seq xl-dag.c
469
470 xl-yacc.tab.o: xl-yacc.tab.c xl-lex.h xl-sym.h
471         $(SEQCHARMC) -seq xl-yacc.tab.c
472
473 xl-lexsp.o: xl-lexsp.c  
474         $(SEQCHARMC) -seq xl-lexsp.c
475
476 xl-sfspec.o: xl-sfspec.c
477         $(SEQCHARMC) -seq xl-sfspec.c
478
479 ###############################################################################
480 #
481 # charmxlat++ and charmfilter++
482 #
483 ###############################################################################
484
485 XPHEADERS=xp-extn.h xp-t.tab.c
486
487 CHARMXLATXX=xp-process.o xp-table.o xp-t.tab.o xp-lexer.o
488
489 charmxlat++: $(CHARMXLATXX) xp-sfilter.o
490         $(SEQCHARMC) -seq -o charmxlat++   -cp ../bin/ $(CHARMXLATXX)
491         $(SEQCHARMC) -seq -o charmfilter++ -cp ../bin/ xp-sfilter.o
492
493 xp-process.o: xp-process.c $(XPHEADERS)
494         $(SEQCHARMC) -seq xp-process.c
495
496 xp-table.o: xp-table.c $(XPHEADERS)
497         $(SEQCHARMC) -seq xp-table.c
498
499 xp-t.tab.o: xp-t.tab.c $(XPHEADERS)
500         $(SEQCHARMC) -seq -DYYDEBUG xp-t.tab.c
501
502 xp-lexer.o: xp-lexer.c $(XPHEADERS)
503         $(SEQCHARMC) -seq xp-lexer.c
504
505 xp-sfilter.o: xp-sfilter.c $(XPHEADERS)
506         $(SEQCHARMC) -seq xp-sfilter.c
507
508 ###############################################################################
509 #
510 # The CPM scanner
511 #
512 ###############################################################################
513
514 conv-cpm: conv-cpm.o
515         $(SEQCHARMC) -seq -o conv-cpm -cp ../bin/ conv-cpm.o
516
517 conv-cpm.o: conv-cpm.c
518         $(SEQCHARMC) -seq conv-cpm.c
519
520 ###############################################################################
521 #
522 # The interface translator
523 #
524 ###############################################################################
525
526 XIHEADERS=xi-symbol.h xi-parse.tab.C
527 CHARMXI=xi-main.o xi-symbol.o xi-generate.o xi-parse.tab.o xi-scan.o
528
529 charmxi: $(CHARMXI)
530         $(SEQCHARMC) -seq -language c++ -cp ../bin/ -o charmxi $(CHARMXI)
531
532 xi-main.o: xi-main.C $(XIHEADERS)
533         $(SEQCHARMC) -seq xi-main.C
534
535 xi-symbol.o: xi-symbol.C $(XIHEADERS)
536         $(SEQCHARMC) -seq xi-symbol.C
537
538 xi-generate.o: xi-generate.C $(XIHEADERS)
539         $(SEQCHARMC) -seq xi-generate.C
540
541 xi-parse.tab.o: xi-parse.tab.C $(XIHEADERS)
542         $(SEQCHARMC) -seq xi-parse.tab.C
543
544 xi-scan.o: xi-scan.C $(XIHEADERS)
545         $(SEQCHARMC) -seq xi-scan.C
546
547 ###############################################################################
548 #
549 # Simple Messaging
550 #
551 ###############################################################################
552
553 libsimplemsg.a: converse simplemsg.c simplemsg.h
554         $(CHARMC) -cp ../lib/ -o $@ simplemsg.c
555
556 ###############################################################################
557 #
558 # PVM
559 #
560 ###############################################################################
561
562 PVMC=pvmc_buf.o pvmc_comm.o pvmc_conv.o pvmc_main.o pvmc_pack.o pvmc_groups.o
563
564 libpvmc.a: converse $(PVMC)
565         $(CHARMC) -cp ../lib -o libpvmc.a $(PVMC)
566
567 pvmc_buf.o: pvmc_buf.c pvmc.h pvm3.h
568         $(CHARMC) -o $@ pvmc_buf.c
569
570 pvmc_conv.o: pvmc_conv.c pvmc.h pvm3.h
571         $(CHARMC) -o $@ pvmc_conv.c
572
573 pvmc_pack.o: pvmc_pack.c pvmc.h pvm3.h
574         $(CHARMC) -o $@ pvmc_pack.c
575
576 pvmc_comm.o: pvmc_comm.c pvmc.h pvm3.h
577         $(CHARMC) -o $@ pvmc_comm.c
578
579 pvmc_groups.o: pvmc_groups.c pvmc.h pvm3.h
580         $(CHARMC) -o $@ pvmc_groups.c
581
582 pvmc_main.o: pvmc_main.c pvmc.h pvm3.h
583         $(CHARMC) -o $@ pvmc_main.c
584
585
586 ###############################################################################
587 #
588 # Make clean
589 #
590 ###############################################################################
591
592 clean:
593         rm -f charmreplay charmxlat charmfilter charmxlat++ charmfilter++
594         rm -f conv-host conv-host-notify conv-host-silent charmxi conv-cpm
595         rm -f TAGS basics cmk_extras core
596         rm -f core *.a
597         rm -f core *.o
598         rm -f core #*#
599         rm -f core *~
600
601 veryclean:
602         rm -rf ../bin
603         rm -rf ../lib
604         rm -rf ../src
605         rm -rf ../pgms
606         rm -rf ../include
607         mv Makefile .Makefile
608         rm -rf [a-z]* [A-Z]*
609         mv .Makefile Makefile
610         rm -rf .[a-z]* .[A-Z]*