*** empty log message ***
[charm.git] / src / 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 all: charm++
25 #       @echo 'try one of:'
26 #       @echo '  make converse'
27 #       @echo '  make charm'
28 #       @echo '  make charm++'
29 #       @echo '  make test-converse'
30 #       @echo '  make test-charm'
31 #       @echo '  make test-charm++'
32
33 charm: converse charmxlat charmlibs libcharm
34
35 charm++: converse charmxlat charmlibs charmxlat++ charmfilter++ charmxi libcharm libck-cplus-y.a
36
37 translators: charmxlat charmfilter charmxlat++ charmfilter++ charmxi conv-cpm
38
39 test-converse: converse
40         (cd ../pgms ; make test-converse)
41
42 test-charm: charm
43         (cd ../pgms ; make test-charm)
44
45 test-charm++: charm++
46         (cd ../pgms ; make test-charm++)
47
48 CHARMC=../bin/charmc $(CHARMOPTS) $(OPTS)
49
50
51 ###############################################################################
52 #
53 # The basics (bin, lib, include, headers, charmc, conv-mach.csh)
54 #
55 ###############################################################################
56
57 ALLHEADERS=acc.h c++interface.h chare.h ckdefs.h common.h communication.h condsend.h const.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 performance.h dag.h generic_redn.h # pglib.h
58
59 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
60
61 basics: dirs+sources $(ALLHEADERS) $(ALLINTERFACES) charmc conv-mach.csh
62         rm -rf ../include
63         mkdir ../include
64         cp $(ALLHEADERS) ../include/
65         cp $(ALLINTERFACES) ../include/
66         rm -f ../bin/charmc ; cp charmc ../bin/
67         chmod 755 ../bin/charmc
68         cp conv-mach.csh ../include/
69         touch basics
70
71 dirs+sources:
72         @rm -f .vdir .gdir
73         @(cd .. ; basename `pwd` > tmp/.vdir)
74         @cat .vdir | sed -e 's@-.*@@' > .gdir
75         @echo
76         @echo 'Gathering source code in '`cat .vdir`'/tmp'
77         @echo
78         if [ ! -d ../bin ] ; then mkdir ../bin ; fi
79         if [ ! -d ../lib ] ; then mkdir ../lib ; fi
80         rm -f ../../bin ; ln -s `cat .vdir`/bin ../../bin
81         find . -type l -exec rm {} \;
82         find ../../src/Common -type f \! -name "*,v" -exec ln -s {} . \;
83         find ../../src/`cat .vdir` -type f \! -name "*,v" -exec ln -s {} . \;
84         if [ -d ../../src/Common.`cat .gdir` ] ; then find ../../src/Common.`cat .gdir` -type f \! -name "*,v" -exec ln -s {} . \; ; fi
85         @echo
86         @echo 'Gathering test-programs in '`cat .vdir`/pgms
87         @echo
88         rm -rf ../pgms
89         (cd ../.. ; find pgms -type d -print) | sed -e 's@^@mkdir ../@' | sh
90         rt=`(cd ../.. ; pwd)` ; (cd ../.. ; find pgms -type f -print) | awk '{ print "ln -s '$$rt'/"$$1" ../"$$1; }' > tmp.sh
91         sh tmp.sh
92         rm -f tmp.sh
93         @echo
94         @echo 'Gathering translator source in '`cat .vdir`'/src'
95         @echo
96         rm -rf ../src ; mkdir ../src
97         cp xl-*.c xl-*.h ../src
98         cp xp-*.c xp-*.h ../src
99         cp xi-*.C xi-*.h ../src
100         cp conv-cpm.* ../src
101         cp Makefile ../src/Makefile
102         @echo
103         @rm -f .vdir .gdir
104         touch dirs+sources
105
106
107 ###############################################################################
108 #
109 # Converse Libraries
110 #
111 ###############################################################################
112
113 CVHEADERS=converse.h conv-mach.h 
114
115 CVLIBS=libconv-core.a $(CVLIBS_QS)
116
117 LIBCONV_CORE=threads.o convcore.o conv-conds.o machine.o spantree.o queueing.o fifo.o msgmgr.o memory.o cpm.o
118
119 converse: basics $(CVLIBS) conv-host-if-needed conv-cpm
120
121 conv-host-if-needed:
122         if [ -f conv-host.c ] ; then make conv-host OPTS='$(OPTS)' ; fi
123
124 conv-host: conv-host.c
125         ../bin/charmc -cp ../bin -seq -DNOTIFY -o conv-host-notify conv-host.c
126         ../bin/charmc -cp ../bin -seq -DSILENT -o conv-host-silent conv-host.c
127         cp conv-host-notify conv-host
128         cp conv-host ../bin/conv-host
129
130 libconv-core.a: $(LIBCONV_CORE)
131         $(CHARMC) -cp ../lib/ -o $@ $(LIBCONV_CORE)
132
133 cpm.o: cpm.c $(CVHEADERS)
134         $(CHARMC) cpm.c
135
136 fifo.o: fifo.c $(CVHEADERS)
137         $(CHARMC) fifo.c
138
139 threads.o: threads.c $(CVHEADERS)
140         $(CHARMC) -use-reliable-cc -NO threads.c
141
142 spantree.o: spantree.c $(CVHEADERS)
143         $(CHARMC) spantree.c
144
145 machine.o: machine.c $(CVHEADERS)
146         $(CHARMC) machine.c
147
148 convcore.o: convcore.c $(CVHEADERS)
149         $(CHARMC) convcore.c
150
151 queueing.o: queueing.c $(CVHEADERS)
152         $(CHARMC) queueing.c
153
154 conv-conds.o: conv-conds.c $(CVHEADERS)
155         $(CHARMC) conv-conds.c
156
157 msgmgr.o: msgmgr.c $(CVHEADERS)
158         $(CHARMC) msgmgr.c
159
160 memory.o: memory.c $(CVHEADERS)
161         $(CHARMC) memory.c
162
163 ###############################################################################
164 #
165 # Charm Libraries
166 #
167 ###############################################################################
168
169 CKHEADERS=chare.h const.h msg_macros.h prio_macros.h env_macros.h globals.h\
170           sys_macros.h communication.h performance.h $(CVHEADERS)
171
172 CK_LIBS_CORE=libck-core-notrace.a libck-core-summary.a libck-core-projections.a
173
174 CK_LIBS_LDB=libck-ldb-rand.o libck-ldb-acwn.o libck-ldb-mngr.o # libck-ldb-priomngr.o libck-ldb-recv.o libck-ldb-tok.o libck-ldb-btok.o
175
176 CK_LIBS_CPLUS=libck-cplus-n.a
177
178 CK_LIBS_MAIN=libck-defmain.a
179
180 CK_LIBS=$(CK_LIBS_CORE) $(CK_LIBS_LDB) $(CK_LIBS_CPLUS) $(CK_LIBS_MAIN)
181
182 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 ldbcfns.o ck.o main.o
183
184 charmlibs: converse $(CK_LIBS)
185
186 LIBCK_CORE_NOTRACE=$(LIBCK_CORE) perf-none.o
187 libck-core-notrace.a: $(LIBCK_CORE_NOTRACE)
188         $(CHARMC) -cp ../lib/ -o $@ $(LIBCK_CORE_NOTRACE)
189
190 LIBCK_CORE_SUMMARY=$(LIBCK_CORE) perf-sum.o perfio.o
191 libck-core-summary.a: $(LIBCK_CORE_SUMMARY)
192         $(CHARMC) -cp ../lib/ -o $@ $(LIBCK_CORE_SUMMARY)
193
194 LIBCK_CORE_PROJ=$(LIBCK_CORE) perf-proj.o perfio.o
195 libck-core-projections.a: $(LIBCK_CORE_PROJ)
196         $(CHARMC) -cp ../lib/ -o $@ $(LIBCK_CORE_PROJ)
197
198 libck-ldb-acwn.o: ldb.acwn.p ldb.h $(CKHEADERS)
199         $(CHARMC) -cp ../lib/ -o $@ ldb.acwn.p
200
201 libck-ldb-rand.o: ldb.rand.p ldb.h $(CKHEADERS)
202         $(CHARMC) -cp ../lib/ -o $@ ldb.rand.p
203
204 libck-ldb-mngr.o: ldb.mngr.p ldb.h $(CKHEADERS)
205         $(CHARMC) -cp ../lib/ -o $@ ldb.mngr.p
206
207 libck-ldb-priomngr.o: ldb.priomngr.p ldb.h $(CKHEADERS)
208         $(CHARMC) -cp ../lib/ -o $@ ldb.priomngr.p
209
210 libck-ldb-tok.o: ldb.tok.p ldb.h $(CKHEADERS)
211         $(CHARMC) -cp ../lib/ -o $@ ldb.tok.p
212
213 libck-ldb-btok.o: ldb.btok.p ldb.h $(CKHEADERS)
214         $(CHARMC) -cp ../lib/ -o $@ ldb.tok.p -DBITVECTOR
215
216 libck-ldb-repl.o: ldb.repl.p ldb.h $(CKHEADERS)
217         $(CHARMC) -cp ../lib/ -o $@ ldb.repl.p
218
219 libck-ldb-recv.o: ldb.recv.p ldb.h $(CKHEADERS)
220         $(CHARMC) -cp ../lib/ -o $@ ldb.recv.p
221
222 libck-cplus-n.a: dummy.cplus.c $(CKHEADERS)
223         $(CHARMC) -cp ../lib/ -o $@ dummy.cplus.c
224
225 libck-defmain.a: default-main.c $(CKHEADERS)
226         $(CHARMC) -cp ../lib/ -o $@ default-main.c
227
228 ldbcfns.o: ldbcfns.c $(CKHEADERS)
229         $(CHARMC) -o ldbcfns.o ldbcfns.c
230
231 common.o: common.c $(CKHEADERS)
232         $(CHARMC) -o common.o common.c
233
234 globals.o: globals.c $(CKHEADERS)
235         $(CHARMC) -o globals.o globals.c
236
237 register.o: register.c $(CKHEADERS)
238         $(CHARMC) -o register.o register.c
239
240 init.o: init.c $(CKHEADERS)
241         $(CHARMC) -o init.o init.c
242
243 boc.o: boc.c $(CKHEADERS)
244         $(CHARMC) -o boc.o boc.c
245
246 condsend.o: condsend.c condsend.h $(CKHEADERS)
247         $(CHARMC) -o condsend.o condsend.c
248
249 qd.o: qd.c qd.h $(CKHEADERS)
250         $(CHARMC) -o qd.o qd.c
251
252 vid.o: vid.c vid.h $(CKHEADERS)
253         $(CHARMC) -o vid.o vid.c
254
255 stat.o: stat.c stat.h $(CKHEADERS)
256         $(CHARMC) -o stat.o stat.c
257
258 rdonly.o: rdonly.c $(CKHEADERS)
259         $(CHARMC) -o rdonly.o rdonly.c
260
261 acc.o: acc.c acc.h $(CKHEADERS)
262         $(CHARMC) -o acc.o acc.c
263
264 mono.o: mono.c mono.h $(CKHEADERS)
265         $(CHARMC) -o mono.o mono.c
266
267 tbl.o: tbl.c tbl.h $(CKHEADERS)
268         $(CHARMC) -o tbl.o tbl.c
269
270 wrtone.o: wrtone.c wrtone.h $(CKHEADERS)
271         $(CHARMC) -o wrtone.o wrtone.c
272
273 memstuff.o: memstuff.c $(CKHEADERS)
274         $(CHARMC) -o memstuff.o memstuff.c
275
276 main.o: main.c $(CKHEADERS)
277         $(CHARMC) -o main.o main.c
278
279 ck.o: ck.c $(CKHEADERS)
280         $(CHARMC) -o ck.o ck.c
281
282 perfio.o : perfio.c performance.h $(CKHEADERS)
283         $(CHARMC) -o perfio.o perfio.c
284
285 perf-none.o : perf-none.c performance.h $(CKHEADERS)
286         $(CHARMC) -o perf-none.o perf-none.c
287
288 perf-sum.o : perf-sum.c performance.h $(CKHEADERS)
289         $(CHARMC) -o perf-sum.o perf-sum.c
290
291 perf-recd.o : perf-recd.c performance.h $(CKHEADERS)
292         $(CHARMC) -o perf-recd.o perf-recd.c
293
294 perf-repl.o : perf-repl.c performance.h $(CKHEADERS)
295         $(CHARMC) -o perf-repl.o perf-repl.c
296
297 perf-proj.o : perf-proj.c performance.h $(CKHEADERS)
298         $(CHARMC) -o perf-proj.o perf-proj.c
299
300 ###############################################################################
301 #
302 # The new, lightweight C++ stub library.
303 #
304 ###############################################################################
305
306 libck-cplus-y.a: cplus.C c++interface.h $(CKHEADERS)
307         $(CHARMC) -cp ../lib/ -o $@ cplus.C
308
309 ###############################################################################
310 #
311 # libcharm
312 #
313 ###############################################################################
314
315 GENERIC_ACC_H=GENERIC-ACC.int GENERIC-ACC.p $(CKHEADERS)
316 GENERIC_HIST_H=GENERIC-HIST.int GENERIC-HIST.p $(CKHEADERS)
317 GENERIC_REDN_H=GENERIC-REDN.int GENERIC-REDN.p $(CKHEADERS)
318
319 LIBCHARM=cache.o dag.o barrier_redn.o pglib.o \
320          iacc_count.o facc_count.o dacc_count.o \
321          iacc_hist.o facc_hist.o dacc_hist.o \
322          iminredn.o imaxredn.o isumredn.o iprodredn.o icountredn.o \
323          fminredn.o fmaxredn.o fsumredn.o fprodredn.o \
324          dminredn.o dmaxredn.o dsumredn.o dprodredn.o
325
326 libcharm: charmxlat libcharm.a
327
328 libcharm.a: $(LIBCHARM)
329         $(CHARMC) -cp ../lib/ -o $@ $(LIBCHARM)
330
331 pglib.o: pglib.p pglib.h pg.int $(CKHEADERS)
332         $(CHARMC) pglib.p
333
334 cache.o: cache.p cache.int $(CKHEADERS)
335         $(CHARMC) cache.p
336
337 dag.o: dag.c dag.h $(CKHEADERS)
338         $(CHARMC) dag.c
339
340 barrier_redn.o: barrier_redn.p barrier_redn.int $(CKHEADERS)
341         $(CHARMC) barrier_redn.p
342
343 iacc_count.o: iacc_count.int $(GENERIC_ACC_H)
344         $(CHARMC) -o iacc_count.o GENERIC-ACC.p -DHEAD='"iacc_count.int"'
345
346 facc_count.o: facc_count.int $(GENERIC_ACC_H)
347         $(CHARMC) -o facc_count.o GENERIC-ACC.p -DHEAD='"facc_count.int"'
348
349 dacc_count.o: dacc_count.int $(GENERIC_ACC_H)
350         $(CHARMC) -o dacc_count.o GENERIC-ACC.p -DHEAD='"dacc_count.int"'
351
352 iacc_hist.o: iacc_hist.int $(GENERIC_HIST_H)
353         $(CHARMC) -o iacc_hist.o GENERIC-HIST.p -DHEAD='"iacc_hist.int"'
354
355 facc_hist.o: facc_hist.int $(GENERIC_HIST_H)
356         $(CHARMC) -o facc_hist.o GENERIC-HIST.p -DHEAD='"facc_hist.int"'
357
358 dacc_hist.o: dacc_hist.int $(GENERIC_HIST_H)
359         $(CHARMC) -o dacc_hist.o GENERIC-HIST.p -DHEAD='"dacc_hist.int"'
360
361 imaxredn.o: imaxredn.int $(GENERIC_REDN_H)
362         $(CHARMC) -o imaxredn.o GENERIC-REDN.p -DHEAD='"imaxredn.int"'
363
364 iminredn.o: iminredn.int $(GENERIC_REDN_H)
365         $(CHARMC) -o iminredn.o GENERIC-REDN.p -DHEAD='"iminredn.int"'
366
367 isumredn.o: isumredn.int $(GENERIC_REDN_H)
368         $(CHARMC) -o isumredn.o GENERIC-REDN.p -DHEAD='"isumredn.int"'
369
370 iprodredn.o: iprodredn.int $(GENERIC_REDN_H)
371         $(CHARMC) -o iprodredn.o GENERIC-REDN.p -DHEAD='"iprodredn.int"'
372
373 icountredn.o: icountredn.int $(GENERIC_REDN_H)
374         $(CHARMC) -o icountredn.o GENERIC-REDN.p -DHEAD='"icountredn.int"'
375
376 fmaxredn.o: fmaxredn.int $(GENERIC_REDN_H)
377         $(CHARMC) -o fmaxredn.o GENERIC-REDN.p -DHEAD='"fmaxredn.int"'
378
379 fminredn.o: fminredn.int $(GENERIC_REDN_H)
380         $(CHARMC) -o fminredn.o GENERIC-REDN.p -DHEAD='"fminredn.int"'
381
382 fsumredn.o: fsumredn.int $(GENERIC_REDN_H)
383         $(CHARMC) -o fsumredn.o GENERIC-REDN.p -DHEAD='"fsumredn.int"'
384
385 fprodredn.o: fprodredn.int $(GENERIC_REDN_H)
386         $(CHARMC) -o fprodredn.o GENERIC-REDN.p -DHEAD='"fprodredn.int"'
387
388 fcountredn.o: fcountredn.int $(GENERIC_REDN_H)
389         $(CHARMC) -o fcountredn.o GENERIC-REDN.p -DHEAD='"fcountredn.int"'
390
391 dmaxredn.o: dmaxredn.int $(GENERIC_REDN_H)
392         $(CHARMC) -o dmaxredn.o GENERIC-REDN.p -DHEAD='"dmaxredn.int"'
393
394 dminredn.o: dminredn.int $(GENERIC_REDN_H)
395         $(CHARMC) -o dminredn.o GENERIC-REDN.p -DHEAD='"dminredn.int"'
396
397 dsumredn.o: dsumredn.int $(GENERIC_REDN_H)
398         $(CHARMC) -o dsumredn.o GENERIC-REDN.p -DHEAD='"dsumredn.int"'
399
400 dprodredn.o: dprodredn.int $(GENERIC_REDN_H)
401         $(CHARMC) -o dprodredn.o GENERIC-REDN.p -DHEAD='"dprodredn.int"'
402
403 dcountredn.o: dcountredn.int $(GENERIC_REDN_H)
404         $(CHARMC) -o dcountredn.o GENERIC-REDN.p -DHEAD='"dcountredn.int"'
405
406 ###############################################################################
407 #
408 #
409 ###############################################################################
410
411 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
412
413 charmxlat charmfilter: $(CHARMXLAT) xl-sfspec.o
414         $(CHARMC) -seq -o charmxlat   -cp ../bin/ $(CHARMXLAT)
415         $(CHARMC) -seq -o charmfilter -cp ../bin/ xl-sfspec.o
416
417 xl-main.o: xl-main.c
418         $(CHARMC) -seq xl-main.c
419
420 xl-sym.o: xl-sym.c xl-sym.h
421         $(CHARMC) -seq xl-sym.c
422
423 xl-str.o: xl-str.c
424         $(CHARMC) -seq xl-str.c
425
426 xl-lex.o: xl-lex.c xl-lex.h xl-sym.h
427         $(CHARMC) -seq xl-lex.c
428
429 xl-rdtok.o: xl-rdtok.c xl-lex.h xl-sym.h
430         $(CHARMC) -seq xl-rdtok.c
431
432 xl-parse.o: xl-parse.c xl-lex.h xl-sym.h
433         $(CHARMC) -seq xl-parse.c
434
435 xl-outh.o: xl-outh.c xl-lex.h xl-sym.h
436         $(CHARMC) -seq xl-outh.c
437
438 xl-srch.o: xl-srch.c xl-lex.h xl-sym.h
439         $(CHARMC) -seq xl-srch.c
440
441 xl-dag.o: xl-dag.c
442         $(CHARMC) -seq xl-dag.c
443
444 xl-yacc.tab.o: xl-yacc.tab.c xl-lex.h xl-sym.h
445         $(CHARMC) -seq xl-yacc.tab.c
446
447 xl-lexsp.o: xl-lexsp.c  
448         $(CHARMC) -seq xl-lexsp.c
449
450 xl-sfspec.o: xl-sfspec.c
451         $(CHARMC) -seq xl-sfspec.c
452
453 ###############################################################################
454 #
455 # charmxlat++ and charmfilter++
456 #
457 ###############################################################################
458
459 XPHEADERS=xp-extn.h xp-t.tab.c
460
461 CHARMXLATXX=xp-process.o xp-table.o xp-t.tab.o xp-lexer.o
462
463 charmxlat++: $(CHARMXLATXX) xp-sfilter.o
464         $(CHARMC) -seq -o charmxlat++   -cp ../bin/ $(CHARMXLATXX)
465         $(CHARMC) -seq -o charmfilter++ -cp ../bin/ xp-sfilter.o
466
467 xp-process.o: xp-process.c $(XPHEADERS)
468         $(CHARMC) -seq xp-process.c
469
470 xp-table.o: xp-table.c $(XPHEADERS)
471         $(CHARMC) -seq xp-table.c
472
473 xp-t.tab.o: xp-t.tab.c $(XPHEADERS)
474         $(CHARMC) -seq -DYYDEBUG xp-t.tab.c
475
476 xp-lexer.o: xp-lexer.c $(XPHEADERS)
477         $(CHARMC) -seq xp-lexer.c
478
479 xp-sfilter.o: xp-sfilter.c $(XPHEADERS)
480         $(CHARMC) -seq xp-sfilter.c
481
482 ###############################################################################
483 #
484 # The CPM scanner
485 #
486 ###############################################################################
487
488 conv-cpm: conv-cpm.o
489         $(CHARMC) -seq -o conv-cpm -cp ../bin/ conv-cpm.o
490
491 conv-cpm.o: conv-cpm.c
492         $(CHARMC) -seq conv-cpm.c
493
494 ###############################################################################
495 #
496 # The interface translator
497 #
498 ###############################################################################
499
500 XIHEADERS=xi-symbol.h xi-parse.tab.c
501 CHARMXI=xi-main.o xi-symbol.o xi-generate.o xi-parse.tab.o xi-scan.o
502
503 charmxi: $(CHARMXI)
504         $(CHARMC) -seq -language c++ -cp ../bin/ -o charmxi $(CHARMXI)
505
506 xi-main.o: xi-main.C $(XIHEADERS)
507         $(CHARMC) -seq xi-main.C
508
509 xi-symbol.o: xi-symbol.C $(XIHEADERS)
510         $(CHARMC) -seq xi-symbol.C
511
512 xi-generate.o: xi-generate.C $(XIHEADERS)
513         $(CHARMC) -seq xi-generate.C
514
515 xi-parse.tab.o: xi-parse.tab.c $(XIHEADERS)
516         cp xi-parse.tab.c xi-parse.tab.C
517         $(CHARMC) -seq xi-parse.tab.C
518
519 xi-scan.o: xi-scan.C $(XIHEADERS)
520         $(CHARMC) -seq xi-scan.C
521
522 ###############################################################################
523 #
524 # Make clean
525 #
526 ###############################################################################
527
528 clean:
529         rm -f charmreplay charmxlat charmfilter charmxlat++ charmfilter++
530         rm -f conv-host conv-host-notify conv-host-silent charmxi conv-cpm
531         rm -f TAGS basics cmk_extras core
532         rm -f core #*#
533         rm -f core *.a
534         rm -f core *.o
535         rm -f core *~
536
537 veryclean: clean
538         rm -rf dirs+sources
539         rm -rf ../bin
540         rm -rf ../lib
541         rm -rf ../include