Read random forest model and features output by MetaBalancer to invoke LB strategy.
[charm.git] / src / scripts / Makefile
blob9719387f0010fbe6be07d9e4033e874c047917ac
1 #############################################################################"
3 # This one Makefile serves all of converse and charm. It includes
4 # rules for building:
6 # * The CONVERSE libraries
7 # * Charm++ runtime
8 # * ITC++ Translator
9 # * Languages
10 # * Documentation
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.sh configuration file.
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:
20 # make charm++ OPTS="-g -save -verbose"
22 ###############################################################################
24 SHELL=/bin/sh
25 L=../lib
26 INC=../include
28 include charmpath.mk
30 CC=$(CHARMC)
31 CXX=$(CHARMC)
32 CFLAGS=-I.
33 CXXFLAGS=-I.
35 all: charm++ bigsim LIBS AMPI f90charm TSM SM PVM doc everylb
37 all-test: bigsim LIBS
38 $(MAKE) -C ../tests all
39 $(MAKE) -C ../examples all
41 charm++: charm-target
42 @echo "$(OPTS)" > OPTS
43 touch charm++
45 bgampi: bigsim AMPI
47 TSM: converse $(L)/libtsm.a
49 SM: converse $(L)/libsm.a
51 PVM: converse $(L)/libpvmc.a
53 AMR: charm++ LIBS
54 $(MAKE) -C libs/ck-libs/amr all
56 FEM: ParFUM
58 ParFUM: charm++ AMPI
59 $(MAKE) -C libs/ck-libs/ ParFUM
61 MBLOCK: AMPI MBLOCKC MBLOCKF
63 MBLOCKC: charm++ LIBS
65 MBLOCKF: MBLOCKC
67 AMPI: charm++ $(BIGSIM)
68 $(MAKE) -C libs/ck-libs/ ampi
70 AMPIC AMPIF: AMPI
72 ARMCI: charm++ LIBS
75 f90charm: charm++ $(L)/libf90charm.a
77 libcharm: charm++
78 cd $(L) ; $(CHARMC) -standalone -whole-archive -c++stl -shared -o libcharm.so $(LIBCHARM_LIBS)
80 charmpy: libcharm
82 LIBCHARM_LIBS= libck.a libconv-core.a libconv-util.a libmemory-default.a libconv-machine.a \
83 libthreads-default.a libconv-partition.a libtmgr.a libhwloc_embedded.a \
84 libldb-rand.a libconv-ldb.a libmoduleGreedyRefineLB.a
86 DEFAULT_LIBS= completion NDMeshStreamer dummy pythonCCS io ckloop
88 default_libs: $(DEFAULT_LIBS)
90 $(DEFAULT_LIBS) cache pose fftlib liveViz metis:
91 $(MAKE) -C libs/ck-libs/$@
93 openmp_llvm:
94 $(MAKE) -C libs/conv-libs/$@
96 ChaNGa: charm++ cache liveViz everylb ckloop
98 cache: charm-core
99 liveViz: charm-core
100 io: charm-core
101 pose: charm-core
102 fftlib: charm-core
103 dummy: charmxi
104 pythonCCS: charmxi
105 completion: charmxi
106 NDMeshStreamer: charm-core completion
108 $(L)/libmpi-mainmodule.a: mpi-mainmodule.o
109 $(CHARMC) -o $@ $<
111 tmgr: $(L)/libtmgr.a
112 $(L)/libtmgr.a:
113 $(MAKE) -C topomanager -f Makefile_charm
115 $(L)/libckmain.a: main.o
116 $(CHARMC) -o $@ $^
118 $(L)/libckmainf.a: mainf.o
119 -$(CHARMC) -o $@ $^ || touch $@
121 translators: charmxi conv-cpm
123 msa: charm++
124 $(MAKE) -C libs/ck-libs/multiphaseSharedArrays
126 jade: charm++ msa
127 # make the lib, include
128 $(MAKE) -C langs/jade
131 # This should be done offline, since the user does not need to compile
132 # parser files, etc. All they need is the libjade + include files,
133 # antlr.jar, jade.jar, and a few scripts which the jade target takes
134 # care of.
135 #jadeall: jade
136 # make parser.g -> .java files
137 # $(MAKE) -C langs/jade p
138 # make the jade.jar file
139 # $(MAKE) -C ../java/charm/jade
141 #include TAU defs
142 TAU_MAKEFILE=Make.tau
143 include $(TAU_MAKEFILE) #stub-makefile
145 #builds TAU's trace library
146 Tau:
147 echo "buliding charm trace library with support for TAU."
148 $(MAKE) $(L)/libtrace-Tau.a $(L)/libtrace-all.a TAU_TRACE_OBJ=libtrace-Tau.o
150 LIBS: CONVLIBS CHARMLIBS everylb
151 $(MAKE) -C libs otherlibs
152 echo "Built LIBS Successfully"
154 bgtest: bigsim LIBS
155 $(MAKE) -C ../tests bgtest
156 $(MAKE) -C ../examples bgtest
158 syncfttest causalfttest mpisyncfttest mlogfttest: charm++ LIBS
159 $(MAKE) -C ../tests $@
161 test: bigsim LIBS
162 $(MAKE) -C ../tests test
163 $(MAKE) -C ../examples test
165 test-tests: bigsim LIBS
166 $(MAKE) -C ../tests test
168 test-examples: bigsim LIBS
169 $(MAKE) -C ../examples test
171 test-converse: converse
172 $(MAKE) -C ../tests test-converse
174 test-charm: charm++
175 $(MAKE) -C ../tests test-charm
177 test-AMPI: AMPI
178 $(MAKE) -C ../tests test-AMPI
180 ps-doc: basics
181 $(MAKE) -C ../doc ps
183 pdf-doc: basics
184 $(MAKE) -C ../doc pdf
186 html-doc: basics
187 $(MAKE) -C ../doc html
189 doc: basics
190 $(MAKE) -C ../doc doc
192 CHARMC=../bin/charmc $(CHARMOPTS) $(OPTS)
194 SEQCHARMC=../bin/charmc -seq $(CHARMOPTS)
196 NATIVECHARMC=../bin/charmc -host $(CHARMOPTS)
198 CHARMXI=../bin/charmc -intrinsic $(OPTS)
200 CIDEPENDFILE = Make.cidepends
201 DEPENDFILE = Make.depends
203 include $(CIDEPENDFILE)
204 include $(DEPENDFILE)
206 CIFILES = $(wildcard *.ci)
208 %.ci.stamp: %.ci ../bin/charmxi
209 $(CHARMXI) $< && touch $@
211 # Automatically generated by script Makefile_lb.sh
212 include Make.lb
214 # Build changes for external libraries
215 include Make.extlib
217 # GPU manager support
218 include Make.gpu
220 ###############################################################################
222 # The basics (bin, lib, include, headers, charmc, conv-mach.sh)
224 ###############################################################################
226 CVHEADERS=cpthreads.h converse.h conv-trace.h conv-random.h conv-qd.h \
227 msgq.h queueing.h conv-taskQ.h taskqueue.h conv-cpath.h conv-cpm.h persistent.h\
228 trace.h trace-common.h trace-bluegene.h trace-projections.h \
229 trace-simple.h trace-controlPoints.h charm-api.h \
230 conv-ccs.h ccs-client.c ccs-client.h \
231 ccs-server.h ccs-auth.c ccs-auth.h \
232 memory-isomalloc.h debug-conv.h debug-conv++.h conv-autoconfig.h \
233 conv-common.h conv-config.sh conv-config.h conv-mach.h conv-mach.sh \
234 blue.h blue-conv.h bgconverse.h cmipool.h mempool.h cmiqueue.h \
235 cmidirect.h cmidirectmanytomany.h cmitls.h lrtslock.h conv-rdma.h lrts-common.h \
236 conv-header.h
238 # The .c files are there to be #included by clients whole
239 # This is a bit unusual, but makes client linking simpler.
240 UTILHEADERS=pup.h pupf.h pup_c.h pup_stl.h pup_mpi.h pup_toNetwork.h pup_toNetwork4.h pup_paged.h pup_cmialloc.h\
241 ckimage.h ckdll.h ckhashtable.h ckbitvector.h cklists.h ckliststring.h \
242 cksequence.h ckstatistics.h ckvector3d.h conv-lists.h ckcomplex.h \
243 sockRoutines.h sockRoutines.c cmimemcpy.h simd.h SSE-Double.h SSE-Float.h \
244 crc32.h ckBIconfig.h rand48_replacement.h ckregex.h spanningTree.h cmirdmautils.h
246 CKHEADERS=ck.h ckstream.h objid.h envelope.h init.h qd.h charm.h charm++.h \
247 ckfutures.h ckIgetControl.h cktiming.h debug-charm.h\
248 ckcallback.h CkCallback.decl.h ckcallback-ccs.h \
249 cksection.h ckmessage.h cklocrec.h ckmigratable.h \
250 ckarrayindex.h ckarrayoptions.h ckarray.h cklocation.h ckmulticast.h ckreduction.h \
251 ckcheckpoint.h ckmemcheckpoint.h ckevacuation.h ckrdmawrapper.h ckrdma.h\
252 ckmessagelogging.h ckcausalmlog.h ckobjid.h\
253 ckobjQ.h readonly.h charm++_type_traits.h \
254 $(UTILHEADERS) \
255 waitqd.h LBDatabase.h MetaBalancer.h RandomForestModel.h lbdb.h lbdb++.h LBProfit.h $(LBHEADERS) \
256 LBDBManager.h LBComm.h LBOM.h LBObj.h LBMachineUtil.h LBAgent.h \
257 RefinerTemp.h Refiner.h RefinerApprox.h RefinerComm.h ckgraphTemp.h ckgraph.h ckheap.h \
258 elements.h CommLBHeap.h topology.h manager.h \
259 BaseLB.h CentralLB.h CentralLBMsg.h \
260 NborBaseLB.h DistBaseLB.h HybridBaseLB.h HybridLBMsg.h \
261 NeighborLBMsg.h \
262 BlueGene.h middle.h middle-conv.h middle-blue.h \
263 CkMarshall.decl.h CkArray.decl.h CkLocation.decl.h CkMulticast.decl.h \
264 CkReduction.decl.h \
265 waitqd.decl.h \
266 CkFutures.decl.h CkCheckpoint.decl.h CkCheckpointStatus.decl.h CkMemCheckpoint.decl.h \
267 LBDatabase.decl.h MetaBalancer.decl.h CentralLB.decl.h NullLB.decl.h \
268 BaseLB.decl.h \
269 NborBaseLB.decl.h DistBaseLB.decl.h \
270 HybridBaseLB.decl.h EveryLB.decl.h CommonLBs.decl.h \
271 TraceSummary.decl.h TraceAutoPerf.decl.h TraceProjections.decl.h \
272 TraceSimple.decl.h TraceControlPoints.decl.h TraceTau.decl.h \
273 TraceUtilization.decl.h BlueGene.decl.h \
274 ckdirect.h \
275 ControlPoints.decl.h PathHistory.decl.h \
276 pathHistory.h envelope-path.h \
277 XArraySectionReducer.h \
278 controlPoints.h controlPointsf.h arrayRedistributor.h cp_effects.h register.h stats.h \
279 cksequence_internal.h cksequence_factory.h random_sequence.h strided_sequence.h \
280 mpi-interoperate.h mpi_main.decl.h \
281 trace-perf.h picsdefs.h picsautoperf.h picstreenode.h \
282 picsdecisiontree.h \
283 picsautoperfAPI.h picsautoperfAPIC.h \
284 $(CVHEADERS)
286 BLUE_HEADERS = blue_types.h bigsim_timing.h blue_defs.h bigsim_logs.h blue.h blue_impl.h bigsim_network.h bigsim_record.h bigsim_ooc.h bigsim_debug.h shared-alloc.h
288 ALLHEADERS=$(CKHEADERS) \
289 simplemsg.h sm.h pvmc.h pvm3.h sdag.h vector2d.h \
290 graph.h bitvecset.h ckset.h LBSimulation.h \
291 $(BLUE_HEADERS)
293 basics: headers
294 touch basics
296 # Headers is used only for the dependencies
297 headers: dirs+sources
298 $(MAKE) -C topomanager -f Makefile_charm headers
299 $(MAKE) charmxi
300 $(MAKE) headerlinks
302 configure: Makefile.am configure.ac
303 autoreconf
305 conv-autoconfig.h.in: configure.ac
306 autoheader
308 conv-autoconfig.h: configure conv-autoconfig.h.in config_opts.sh
309 @. ./config_opts.sh; echo ./configure $(QUIET) $$CONFIG_OPTS; \
310 ./configure $(QUIET) $$CONFIG_OPTS && touch conv-autoconfig.h
312 .PHONY: clean veryclean VERSION.new config
314 VERSION: VERSION.new
315 SRCBASE=$(SRCBASE) ./commitid.sh
317 commitid.c: VERSION
318 echo "extern const char * const CmiCommitID;" > $@
319 echo "const char * const CmiCommitID = \"`cat VERSION`\";" >> $@
320 commitid.o: CC=$(CHARMC)
322 headerlinks: dirs+sources Makefile $(ALLHEADERS)
323 @[ "x$QUIET" = "x--quiet" ] || echo "Soft-linking headers..."
324 -for hdr in $(filter-out dirs+sources Makefile,$(sort $^)) ; do test ! -f "../include/`basename $$hdr`" && ./system_ln "../tmp/$$hdr" ../include ; done
325 touch headerlinks
327 dirs+sources:
328 # rm -f .gdir
329 # (cd .. ; basename "`pwd`" | sed -e 's@-.*@@') > .gdir
331 find . -type l -exec rm {} \;
332 rm -rf QuickThreads
333 rm -rf hwloc
334 rm -rf libs
335 rm -rf ../bin ; mkdir ../bin
336 if case `cat .vdir` in *win64*) true;; *-win-*) true;; *) false;; esac; then \
337 cp -f $(SRCBASE)/arch/win/unix2nt* ../bin; \
338 cp -f $(SRCBASE)/arch/win/createlink.exe ../bin; \
340 rm -rf ../lib ; mkdir ../lib
341 rm -rf ../lib_so ; mkdir ../lib_so; touch ../lib_so/.charmso
342 rm -rf ../examples
343 rm -rf ../tests
344 rm -rf ../doc ; ln -s ../doc ../doc
345 $(SRCBASE)/scripts/gatherflat $(SRCBASE)/scripts .
346 ./gatherflat $(SRCBASE)/conv-core .
347 ./gatherflat $(SRCBASE)/conv-ldb .
348 ./gatherflat $(SRCBASE)/conv-ccs .
349 ./gatherflat $(SRCBASE)/conv-perf .
350 ./gatherflat $(SRCBASE)/ck-core .
351 ./gatherflat $(SRCBASE)/ck-perf .
352 ./gatherflat $(SRCBASE)/ck-pics .
353 ./gatherflat $(SRCBASE)/ck-tune .
354 ./gatherflat $(SRCBASE)/ck-ldb .
355 ./gatherflat $(SRCBASE)/ck-cp .
356 ./gatherflat $(SRCBASE)/langs/simplemsg .
357 ./gatherflat $(SRCBASE)/langs/pvmc .
358 ./gatherflat $(SRCBASE)/langs/bluegene .
359 ./gatherflat $(SRCBASE)/langs/f90charm .
360 ./gatherflat $(SRCBASE)/xlatcpm .
361 ./gathertree $(SRCBASE)/QuickThreads QuickThreads
362 ./gathertree $(SRCBASE)/../contrib/hwloc hwloc
363 ./gathertree $(SRCBASE)/libs libs
364 ./gathertree $(SRCBASE)/arch/util .
365 ./gathertree $(SRCBASE)/util .
366 ./gathertree $(SRCBASE)/langs langs
367 ./gathertree $(SRCBASE)/langs/jade langs/jade
368 ./gathertree $(SRCBASE)/arch/common .
369 ./gathertree $(SRCBASE)/arch/`cat .gdir` .
370 test -f $(SRCBASE)/arch/`cat .gdir`/gdir_link && cat $(SRCBASE)/arch/`cat .gdir`/gdir_link > .gdir.new && ./gathertree $(SRCBASE)/arch/`cat .gdir.new` . || true
371 ./gatherflat $(SRCBASE)/arch/`cat .vdir` .
372 ./gathertree $(SRCBASE)/../examples ../examples
373 ./gathertree $(SRCBASE)/../tests ../tests
374 rm -f ../bin/dep.pl ; cp dep.pl ../bin/
375 chmod +x charmc
376 -./system_ln ../tmp/charmc ../bin/
377 -./system_ln $(SRCBASE)/scripts/testrun ../bin/
378 -./system_ln ../tmp/tree.txt ../bin/
379 -./system_ln ../tmp/fuzzytree.txt ../bin/
380 # -ln -s ../../java/bin charmjavabin
381 # -ln -s ../../java/bin ../bin/charmjavabin
382 # -ln -s charmjavabin/* ../bin/
383 # -ln -s ../java ..
384 # rm -f .gdir
385 rm -rf ../include ; mkdir ../include
386 -./system_ln ../tmp/conv-*.*h ../include
387 -./system_ln ../tmp/cc-*.*h ../include
388 -./system_ln ../tmp/conv-mach-opt.sh ../include
389 if [ -x ./special.sh ] ; then SRCBASE=$(SRCBASE) ./special.sh ; fi
390 if [ ! -f conv-common.h ] ; then ( touch conv-common.h ) ; fi
391 touch dirs+sources
393 ###############################################################################
395 # Converse Libraries
397 ###############################################################################
398 CLBLIBS=$(L)/libldb-rand.a $(L)/libldb-spray.a $(L)/libldb-workstealing.a $(L)/libldb-neighbor.a $(L)/libldb-none.a $(L)/libldb-test.a $(L)/libldb-bluegene.a
400 TRACELIBS = $(L)/libtrace-converse.a $(L)/libtracef_f.a
402 BUILD_TRACING=$(shell CHARMINC=.; if test -f ./conv-config.sh; then . ./conv-config.sh; echo $$CMK_TRACE_ENABLED; fi )
404 ifneq "$(BUILD_TRACING)" "0"
405 TRACELIBS += $(L)/libtrace-projections.a $(L)/libtrace-controlPoints.a $(L)/libtrace-summary.a \
406 $(L)/libtrace-utilization.a $(L)/libtrace-simple.a \
407 $(L)/libtrace-counter.a $(L)/libtrace-bluegene.a \
408 $(L)/libtrace-projector.a $(L)/libtrace-all.a \
409 $(L)/libtrace-memory.a $(L)/libtrace-perfReport.a
410 endif
412 MEMLIBS=$(L)/libmemory-default.a $(L)/libmemory-os.a $(L)/libmemory-gnu.a \
413 $(L)/libmemory-verbose.a $(L)/libmemory-paranoid.a \
414 $(L)/libmemory-leak.a $(L)/libmemory-isomalloc.a \
415 $(L)/libmemory-os-verbose.a $(L)/libmemory-os-isomalloc.a \
416 $(L)/libmemory-os-leak.a $(L)/libmemory-os-paranoid.a \
417 $(L)/libmemory-os-lock.a $(L)/libmemory-os-wrapper.a
419 BUILD_CHARMDEBUG=$(shell CHARMINC=.; if test -f ./conv-config.sh; then . ./conv-config.sh; echo $$CMK_CHARMDEBUG; fi )
421 ifneq "$(BUILD_CHARMDEBUG)" "0"
422 MEMLIBS += $(L)/libmemory-charmdebug.a $(L)/libmemory-charmdebug-mmap.a \
423 $(L)/libmemory-charmdebug-slot.a \
424 $(L)/libmemory-charmdebug-mmap-slot.a \
425 $(L)/libmemory-os-charmdebug.a $(L)/libmemory-hooks-charmdebug.a
426 endif
428 THREADLIBS=$(L)/libthreads-default.a $(L)/libthreads-default-tls.a \
429 $(L)/libthreads-qt.a $(L)/libthreads-qt-tls.a \
430 $(L)/libthreads-context.a $(L)/libthreads-context-tls.a \
431 $(L)/libthreads-uFcontext.a $(L)/libthreads-uFcontext-tls.a \
432 $(L)/libthreads-uJcontext.a $(L)/libthreads-uJcontext-tls.a \
433 $(L)/libthreads-pthreads.a $(L)/libthreads-fibers.a \
434 $(L)/libthreads-stackcopy.a $(L)/libthreads-memoryalias.a \
435 $(L)/libthreads-qt-memoryalias.a \
436 $(L)/libthreads-context-memoryalias.a \
437 $(L)/libthreads-uJcontext-memoryalias.a
439 CVLIBS=$(L)/libconv-core.a \
440 $(L)/conv-static.o \
441 $(L)/libconv-machine.a \
442 $(L)/libconv-util.a $(L)/libconv-utilf.a \
443 $(CLBLIBS) $(TRACELIBS) $(MEMLIBS) $(THREADLIBS) \
444 $(L)/libccs-client.a $(L)/libconv-partition.a $(L)/libhwloc_embedded.a \
445 $(L)/libconv-ldb.a
447 LIBCONV_CORE=convcore.o conv-conds.o conv-taskQ.o queueing.o msgmgr.o \
448 cpm.o cpthreads.o futures.o cldb.o random.o \
449 debug-conv.o debug-conv++.o conv-ccs.o ccs-builtins.o middle-ccs.o \
450 traceCore.o traceCoreCommon.o \
451 converseProjections.o machineProjections.o \
452 quiescence.o isomalloc.o mem-arena.o conv-counter.o memory-darwin-clang.o \
453 global-nop.o cmipool.o cpuaffinity.o cputopology.o \
454 cmitls.o memoryaffinity.o commitid.o conv-interoperate.o conv-rdma.o \
456 LIBCONV_LDB = topology.o generate.o edgelist.o
458 LIBCONV_UTIL=pup_util.o pup_toNetwork.o pup_toNetwork4.o \
459 pup_xlater.o pup_c.o pup_paged.o pup_cmialloc.o \
460 ckimage.o ckdll.o ckhashtable.o sockRoutines.o \
461 conv-lists.o persist-comm.o mempool.o graph.o \
462 crc32.o lz4.o partitioning_strategies.o hilbert.o \
463 spanningTree.o cmirdmautils.o
465 LIBCONV_UTILF=pup_f.o
467 include Makefile.machine
469 converse: charmrun-target swapglobal-target conv-cpm tmgr hwloc-target
471 cpuaffinity.o $(L)/libhwloc_embedded.a $(INC)/hwloc.h $(INC)/hwloc/autogen/config.h $(INC)/hwloc/rename.h $(INC)/hwloc/bitmap.h $(INC)/hwloc/helper.h $(INC)/hwloc/inlines.h $(INC)/hwloc/diff.h $(INC)/hwloc/deprecated.h: hwloc-target
473 hwloc-target: conv-autoconfig.h
474 ( $(MAKE) -C hwloc )
475 ( test -e hwloc/src/.libs/libhwloc_embedded.lib && cp -f hwloc/src/.libs/libhwloc_embedded.lib hwloc/src/.libs/libhwloc_embedded.a ) || true
476 ( cp -f hwloc/src/.libs/libhwloc_embedded.a $(L) )
477 ( cp -f hwloc/include/hwloc.h $(INC) )
478 ( cp -LRf hwloc/include/hwloc $(INC) )
479 (CHARMINC=.; . ./conv-config.sh; \
480 test -d ../lib_so && \
481 cp -f hwloc/src/.libs/libhwloc_embedded.*$$CMK_SHARED_SUF* ../lib_so/ ) || true
482 touch $@
484 charmrun-target: hwloc-target charmrun sockRoutines.c sockRoutines.h ccs-server.c ccs-server.h sockRoutines-seq.o $(L)/libck.a $(L)/libhwloc_embedded.a $(CVLIBS) conv-static.o
485 if [ -f charmrun ] ; then ( cp -f charmrun ../bin ) ; fi
487 QUICK_THREADS: $(CVHEADERS)
488 -( $(MAKE) -C QuickThreads clean )
489 ( cd QuickThreads;./configure )
490 ( $(MAKE) -C QuickThreads qt OPTS='$(OPTS) -Wno-error' ) || ( echo "Did you try to build netlrts-linux on a 64-bit system? Try netlrts-linux-x86_64" && false )
491 cp -f QuickThreads/libckqt.a ../lib/
492 -(CHARMINC=.; . ./conv-config.sh; \
493 test -d ../lib_so && \
494 cp -f QuickThreads/libckqt.$$CMK_SHARED_SUF ../lib_so/ ) || true
495 touch QUICK_THREADS
497 CONVLIBS: converse
498 $(MAKE) -C libs convlibs
500 $(L)/libconv-core.a: $(LIBCONV_CORE)
501 $(CHARMC) $(TAU_LIBS) -o $@ $(LIBCONV_CORE)
503 $(L)/libconv-partition.a: custom_partitioner.o set_partition_params.o
504 $(CHARMC) -o $@ $^
506 $(L)/conv-static.o: conv-static.o
507 cp -f $< $@
509 $(L)/libconv-machine.a: machine.o
510 $(CHARMC) -o $@ $<
512 machine.o: machine.C $(CVHEADERS)
513 @-test -f $(INC)/mpi.h && mv -f $(INC)/mpi.h $(INC)/mpi.BAK || true
514 $(CHARMC) -I. -o $@ $<
515 @-test -f $(INC)/mpi.BAK && mv -f $(INC)/mpi.BAK $(INC)/mpi.h || true
517 $(L)/libconv-util.a: $(LIBCONV_UTIL)
518 $(CHARMC) -o $@ $(LIBCONV_UTIL)
520 $(L)/libconv-utilf.a: $(LIBCONV_UTILF)
521 -$(CHARMC) -o $@ $(LIBCONV_UTILF) || touch $@
523 $(L)/libconv-ldb.a: $(LIBCONV_LDB)
524 $(CHARMC) -o $@ $^
526 $(L)/libccs-client.a: ccs-client.o
527 $(CHARMC) -o $@ ccs-client.o
529 ccs-client.o: ccs-client.c $(CVHEADERS)
530 $(CHARMC) -DCMK_NOT_USE_CONVERSE=1 ccs-client.c
532 sockRoutines-seq.o: sockRoutines.c $(CVHEADERS) $(UTILHEADERS)
533 $(SEQCHARMC) -DCMK_NOT_USE_CONVERSE=1 -o sockRoutines-seq.o sockRoutines.c
535 pup_f.f90: pup_f.f90.sh
536 rm -f pup_f.f90 && ./pup_f.f90.sh
538 pup_f.o: pup_f.f90 $(CVHEADERS)
539 -$(CHARMC) -c pup_f.f90 && $(CHARMC) -cpmod ../include pupmod.M || touch pup_f.o
541 ## Converse load balancers (seed balancers, -balance)
542 $(L)/libldb-none.a: cldb.none.c $(CVHEADERS)
543 $(CHARMC) -o $@ cldb.none.c
545 $(L)/libldb-rand.a: cldb.rand.c cldb.h $(CVHEADERS)
546 $(CHARMC) -o $@ cldb.rand.c
548 $(L)/libldb-neighbor.a: cldb.neighbor.c cldb.neighbor.h graph.h $(CVHEADERS)
549 $(CHARMC) -o $@ cldb.neighbor.c
551 $(L)/libldb-workstealing.a: cldb.workstealing.c cldb.workstealing.h graph.h $(CVHEADERS)
552 $(CHARMC) -o $@ cldb.workstealing.c
554 $(L)/libldb-spray.a: cldb.spray.c $(CVHEADERS)
555 $(CHARMC) -o $@ cldb.spray.c
558 #$(L)/libldb-prioritycentralized.a: cldb.prioritycentralized.c cldb.prioritycentralized.h $(CVHEADERS)
559 # $(CHARMC) -o $@ cldb.prioritycentralized.c
561 #//$(L)/libldb-prioritycentralizedopt.a: cldb.prioritycentralizedopt.c cldb.prioritycentralizedopt.h $(CVHEADERS)
562 #// $(CHARMC) -o $@ cldb.prioritycentralizedopt.c
564 $(L)/libldb-test.a: cldb.test.c $(CVHEADERS)
565 $(CHARMC) -o $@ cldb.test.c
567 $(L)/libldb-bluegene.a: cldb.bluegene.c $(CVHEADERS)
568 $(CHARMC) -o $@ cldb.bluegene.c
570 ## Memory allocation libraries (-memory)
571 MEM_DEPS=memory-gnu.c memory-gnu-internal.c converse.h conv-mach.h $(CVHEADERS)
573 libmemory-%.C: memory.C
574 cp $< $@
576 # $1 is the name of the module, $2 is any additional dependency beyond memory.C and $(MEM_DEPS), $3 is extra arguments to charmc
577 define libmem
578 $(L)/libmemory-$1.a: libmemory-$1.C $(MEM_DEPS) $2
579 $(CHARMC) -I. -o $$@ $3 $$<
580 endef
582 $(eval $(call libmem,default, ,-DCMK_MEMORY_BUILD_DEFAULT))
583 $(eval $(call libmem,os, ,-DCMK_MEMORY_BUILD_OS))
584 $(eval $(call libmem,os-verbose, memory-verbose.c, -DCMK_MEMORY_BUILD_OS_WRAPPED -DCMK_MEMORY_BUILD_VERBOSE -touch-on-failure))
585 $(eval $(call libmem,os-paranoid, memory-paranoid.c, -DCMK_MEMORY_BUILD_OS_WRAPPED -DCMK_MEMORY_BUILD_PARANOID -touch-on-failure))
586 $(eval $(call libmem,os-leak, memory-leak.c, -DCMK_MEMORY_BUILD_OS_WRAPPED -DCMK_MEMORY_BUILD_LEAK -touch-on-failure))
587 $(eval $(call libmem,os-isomalloc, memory-isomalloc.c, -DCMK_MEMORY_BUILD_OS_WRAPPED -DCMK_MEMORY_BUILD_ISOMALLOC -touch-on-failure))
588 $(eval $(call libmem,os-lock, memory-lock.c, -DCMK_MEMORY_BUILD_OS_WRAPPED -DCMK_MEMORY_BUILD_LOCK -touch-on-failure))
589 $(eval $(call libmem,os-charmdebug, memory-charmdebug.c, -DCMK_MEMORY_BUILD_OS_WRAPPED -DCMK_MEMORY_BUILD_CHARMDEBUG -touch-on-failure))
590 $(L)/libmemory-os-wrapper.a: memory-os-wrapper.C $(MEM_DEPS)
591 -$(CHARMC) -o $@ memory-os-wrapper.C || touch $@
593 $(eval $(call libmem,hooks-charmdebug,,-DCMK_MEMORY_BUILD_GNU_HOOKS -DCMK_MEMORY_BUILD_CHARMDEBUG -touch-on-failure))
595 # If the system doesn't have sbrk, these compilations may fail.
596 # This is OK, but then we can't use "-memory gnu" or friends.
597 $(eval $(call libmem,gnu, ,-DCMK_MEMORY_BUILD_GNU -touch-on-failure))
598 $(eval $(call libmem,verbose, memory-verbose.c ,-DCMK_MEMORY_BUILD_VERBOSE -touch-on-failure))
599 $(eval $(call libmem,paranoid, memory-paranoid.c ,-DCMK_MEMORY_BUILD_PARANOID -touch-on-failure))
600 $(eval $(call libmem,leak, memory-leak.c ,-DCMK_MEMORY_BUILD_LEAK -touch-on-failure))
601 $(eval $(call libmem,cache, memory-cache.c ,-DCMK_MEMORY_BUILD_CACHE -touch-on-failure))
602 $(eval $(call libmem,isomalloc, memory-isomalloc.c ,-DCMK_MEMORY_BUILD_ISOMALLOC -touch-on-failure))
603 $(eval $(call libmem,charmdebug, memory-charmdebug.c,-DCMK_MEMORY_BUILD_CHARMDEBUG -optimize -touch-on-failure))
604 $(eval $(call libmem,charmdebug-slot, memory-charmdebug.c,-DCMK_MEMORY_BUILD_CHARMDEBUG -DCMK_SEPARATE_SLOT -optimize -touch-on-failure))
605 $(eval $(call libmem,charmdebug-mmap, memory-charmdebug.c,-DCMK_MEMORY_BUILD_CHARMDEBUG -DCPD_USE_MMAP -optimize -touch-on-failure))
606 $(eval $(call libmem,charmdebug-mmap-slot,memory-charmdebug.c,-DCMK_MEMORY_BUILD_CHARMDEBUG -DCPD_USE_MMAP -DCMK_SEPARATE_SLOT -optimize -touch-on-failure))
608 ## Thread libraries (-thread)
610 LIBTHREADSDEPS = $(CVHEADERS) QUICK_THREADS
612 libthreads-%.c: threads.c
613 cp $< $@
615 # $1 is the name of the module, $2 is any additional dependency beyond threads.c and $(LIBTHREADSDEPS), $3 is extra arguments to charmc, $4 is an option to include 'boost-context'
616 define libthreads
617 $(L)/libthreads-$1.a: libthreads-$1.c $(LIBTHREADSDEPS) $2
618 if [ `ls boost-context/*.o 2>/dev/null | wc -l` -gt 0 -a $4 -eq 1 ]; then \
619 $(CHARMC) -IQuickThreads -I. -o $$@ $3 boost-context/*.o $$<; \
620 else \
621 $(CHARMC) -IQuickThreads -I. -o $$@ $3 $$<; \
623 endef
625 uFcontext_asm:
626 $(MAKE) -C boost-context
628 $(eval $(call libthreads,default, uFcontext_asm,-DCMK_THREADS_BUILD_DEFAULT=1, 1 ))
629 $(eval $(call libthreads,default-tls, uFcontext_asm,-DCMK_THREADS_BUILD_DEFAULT -DCMK_THREADS_BUILD_TLS=1 -touch-on-failure, 1 ))
630 $(eval $(call libthreads,qt, ,-DCMK_THREADS_BUILD_QT=1, 0))
631 $(eval $(call libthreads,qt-tls, ,-DCMK_THREADS_BUILD_QT=1 -DCMK_THREADS_BUILD_TLS=1 -touch-on-failure, 0))
632 $(eval $(call libthreads,context, ,-DCMK_THREADS_BUILD_CONTEXT=1 -touch-on-failure, 0))
633 $(eval $(call libthreads,context-tls, ,-DCMK_THREADS_BUILD_CONTEXT=1 -DCMK_THREADS_BUILD_TLS=1 -touch-on-failure, 0))
634 $(eval $(call libthreads,uJcontext, uJcontext.c,-DCMK_THREADS_BUILD_JCONTEXT=1 -U_FORTIFY_SOURCE -touch-on-failure,0))
635 $(eval $(call libthreads,uJcontext-tls, uJcontext.c,-DCMK_THREADS_BUILD_JCONTEXT=1 -DCMK_THREADS_BUILD_TLS=1 -U_FORTIFY_SOURCE -touch-on-failure,0))
636 $(eval $(call libthreads,uFcontext, uFcontext_asm,-DCMK_THREADS_BUILD_FCONTEXT=1 -U_FORTIFY_SOURCE -touch-on-failure, 1))
637 $(eval $(call libthreads,uFcontext-tls, uFcontext_asm,-DCMK_THREADS_BUILD_FCONTEXT=1 -DCMK_THREADS_BUILD_TLS=1 -U_FORTIFY_SOURCE -touch-on-failure, 1))
638 $(eval $(call libthreads,pthreads, ,-DCMK_THREADS_BUILD_PTHREADS=1 -touch-on-failure,0))
639 $(eval $(call libthreads,fibers, ,-DCMK_THREADS_BUILD_FIBERS=1 -touch-on-failure,0))
640 $(eval $(call libthreads,stackcopy, ,-DCMK_THREADS_BUILD_STACKCOPY=1 -touch-on-failure,0))
641 $(eval $(call libthreads,memoryalias, ,-DCMK_THREADS_BUILD_DEFAULT=1 -DCMK_THREADS_ALIAS_STACK=1 -touch-on-failure,0))
642 $(eval $(call libthreads,qt-memoryalias, ,-DCMK_THREADS_BUILD_QT=1 -DCMK_THREADS_ALIAS_STACK=1 -touch-on-failure,0))
643 $(eval $(call libthreads,context-memoryalias, ,-DCMK_THREADS_BUILD_CONTEXT=1 -DCMK_THREADS_ALIAS_STACK=1 -touch-on-failure,0))
644 $(eval $(call libthreads,uJcontext-memoryalias,uJcontext.c,-DCMK_THREADS_BUILD_JCONTEXT=1 -DCMK_THREADS_ALIAS_STACK=1 -U_FORTIFY_SOURCE -touch-on-failure,0))
646 ## Global swapping (-swapglobal)
647 swapglobal-target: $(L)/libglobal-swap.a
649 $(L)/libglobal-swap.a: global-elfgot.C $(CVHEADERS)
650 -$(CHARMC) -c global-elfgot.C -o $@ || touch $@
652 ###############################################################################
654 # Charm Libraries
656 ###############################################################################
658 CK_LIBS_CORE=$(L)/libck.a
660 LIBCK_CORE=trace-common.o tracec.o tracef.o init.o register.o qd.o ck.o \
661 msgalloc.o ckfutures.o ckIgetControl.o debug-message.o debug-charm.o ckcallback.o \
662 cklocation.o ckmulticast.o ckarrayoptions.o ckarray.o ckreduction.o ckrdma.o\
663 waitqd.o LBDatabase.o MetaBalancer.o weakTest.o treeTest.o forestTest.o readmodel.o lbdb.o lbdbf.o ckobjQ.o \
664 LBAgent.o LBProfit.o ckcheckpoint.o ckmemcheckpoint.o ckevacuation.o ckmessagelogging.o ckcausalmlog.o ckobjid.o\
665 LBDBManager.o LBComm.o LBObj.o LBMachineUtil.o CentralPredictor.o \
666 BaseLB.o CentralLB.o HybridBaseLB.o NborBaseLB.o DistBaseLB.o \
667 ckgraphTemp.o ckgraph.o LButil.o RefinerTemp.o Refiner.o RefinerApprox.o \
668 manager.o RefinerComm.o bitvecset.o ckset.o ckheap.o CommLBHeap.o \
669 NullLB.o LBSimulation.o modifyScheduler.o \
670 charmProjections.o cktiming.o ckbitvector.o \
671 pathHistory.o controlPoints.o arrayRedistributor.o cp_effects.o \
672 trace-controlPoints.o mpi-interoperate.o ckregex.o sdag.o \
674 charm-core: converse $(L)/libck.a $(L)/libckf.a $(L)/libckmain.a $(L)/libckmainf.a
675 charm-target: loadbalancers default_libs $(L)/libmpi-mainmodule.a tmgr
677 CHARMLIBS: charm++ CONVLIBS $(BIGSIM)
678 $(MAKE) -C libs charmlibs
680 $(L)/libck.a: $(LIBCK_CORE)
681 $(CHARMC) -o $@ $(LIBCK_CORE)
683 ## Charm fortran AMPI
685 CK_FOR_LIBS_CORE=$(L)/libckf.a
687 LIBCKF_CORE=charmf.o charmmod.o
689 $(L)/libckf.a: $(LIBCKF_CORE)
690 -$(CHARMC) -o $@ $(LIBCKF_CORE) || touch $@
692 charmf.o: charmf.C $(CKHEADERS) charmf.h
693 $(CHARMC) -c -I. charmf.C
695 charmmod.o: charmmod.f90
696 -$(CHARMC) -c charmmod.f90 || touch $@
697 -$(CHARMC) -cpmod ../include charm.M
699 mainf.o: mainf.f90
700 -$(CHARMC) -o $@ -c $< || touch $@
702 ## Tracing libraries (profiling, -tracemode)
703 LIBTRACE_PROJ=trace-projections.o
704 $(L)/libtrace-projections.a: $(LIBTRACE_PROJ)
705 $(CHARMC) -o $@ $(LIBTRACE_PROJ)
707 LIBTRACE_CP=trace-controlPoints.o
708 $(L)/libtrace-controlPoints.a: $(LIBTRACE_CP)
709 $(CHARMC) -o $@ $(LIBTRACE_CP)
711 LIBTRACE_AP=trace-perf.o picsautoperf.o picsautoperfAPI.o picstreenode.o picsdecisiontree.o
712 $(L)/libtrace-perfReport.a: $(LIBTRACE_AP)
713 $(CHARMC) -o $@ $(LIBTRACE_AP)
715 LIBTRACE_SUMM=trace-summary.o
716 $(L)/libtrace-summary.a: $(LIBTRACE_SUMM)
717 $(CHARMC) -o $@ $(LIBTRACE_SUMM)
719 LIBTRACE_UTIL=trace-utilization.o
720 $(L)/libtrace-utilization.a: $(LIBTRACE_UTIL)
721 $(CHARMC) -o $@ $(LIBTRACE_UTIL)
723 LIBTRACE_SIMPLE=trace-simple.o
724 $(L)/libtrace-simple.a: $(LIBTRACE_SIMPLE)
725 $(CHARMC) -o $@ $(LIBTRACE_SIMPLE)
727 libtrace-Tau.o: trace-Tau.C charm++.h charm.h converse.h conv-config.h \
728 conv-autoconfig.h conv-common.h conv-mach.h conv-mach-opt.h \
729 conv-mach-ifort.h pup_c.h conv-cpm.h conv-cpath.h conv-qd.h \
730 conv-random.h conv-lists.h conv-trace.h persistent.h debug-conv.h pup.h \
731 middle.h middle-conv.h cklists.h ckbitvector.h ckstream.h init.h \
732 ckhashtable.h debug-charm.h CkMarshall.decl.h cksection.h ckcallback.h \
733 conv-ccs.h sockRoutines.h ccs-server.h ckobjQ.h ckreduction.h \
734 CkReduction.decl.h \
735 ckmemcheckpoint.h CkMemCheckpoint.decl.h readonly.h ckarray.h cklocrec.h ckmigratable.h \
736 cklocation.h ckmulticast.h LBDatabase.h MetaBalancer.h RandomForestModel.h lbdb.h LBDBManager.h LBObj.h LBOM.h LBComm.h \
737 LBMachineUtil.h lbdb++.h LBDatabase.decl.h MetaBalancer.decl.h NullLB.decl.h BaseLB.decl.h \
738 CkLocation.decl.h CkMulticast.decl.h CkArray.decl.h objid.h envelope.h envelope-path.h XArraySectionReducer.h CkFutures.decl.h \
739 waitqd.h waitqd.decl.h \
740 sdag.h ckcheckpoint.h CkCheckpoint.decl.h ckevacuation.h \
741 trace.h trace-bluegene.h trace-simple.h \
742 register.h trace-common.h trace-simpleBOC.h TraceSimple.decl.h \
743 TraceSimple.def.h ckregex.h
744 $(CHARMC) -c -I. $(TAU_INCLUDE) $(TAU_DEFS) trace-Tau.C -o libtrace-Tau.o
746 tau_selective.o: $(TAUROOT)/utils/tau_selective.cpp
747 $(CHARMC) -I$(TAUROOT)/utils -DTAU_DYNINST $(TAUROOT)/utils/tau_selective.cpp
749 $(L)/libtrace-Tau.a: $(TAU_TRACE_OBJ) tau_selective.o
750 $(CHARMC) $(TAU_LIBS) -o $@ $(TAU_TRACE_OBJ) tau_selective.o $(TAU_TRACE_OBJ)
752 LIBTRACE_COUNT=trace-counter.o
753 $(L)/libtrace-counter.a: $(LIBTRACE_COUNT)
754 $(CHARMC) -o $@ $(LIBTRACE_COUNT)
756 LIBTRACE_BG=trace-bluegene.o
757 $(L)/libtrace-bluegene.a:$(LIBTRACE_BG)
758 $(CHARMC) -o $@ $(LIBTRACE_BG)
760 LIBTRACE_MEMORY=trace-memory.o
761 $(L)/libtrace-memory.a: $(LIBTRACE_MEMORY)
762 $(CHARMC) -o $@ $(LIBTRACE_MEMORY)
764 LIBTRACE_ALL=trace-all.o trace-projections.o trace-controlPoints.o picstreenode.o picsdecisiontree.o picsautoperfAPI.o picsautoperf.o trace-perf.o trace-summary.o trace-simple.o \
765 $(TAU_TRACE_OBJ) trace-projector.o traceCore.o traceCoreCommon.o charmProjections.o converseProjections.o machineProjections.o trace-memory.o trace-utilization.o
767 $(L)/libtrace-all.a: $(LIBTRACE_ALL)
768 $(CHARMC) -o $@ $(LIBTRACE_ALL)
770 LIBTRACE_PROJECTOR=trace-projector.o traceCore.o traceCoreCommon.o charmProjections.o converseProjections.o machineProjections.o
771 $(L)/libtrace-projector.a: $(LIBTRACE_PROJECTOR)
772 $(CHARMC) -o $@ $(LIBTRACE_PROJECTOR)
774 LIBTRACE_CONVERSE=trace-converse.o
775 $(L)/libtrace-converse.a: $(LIBTRACE_CONVERSE)
776 $(CHARMC) -o $@ $(LIBTRACE_CONVERSE)
778 LIBTRACE_FOR=tracef_f.o
779 $(L)/libtracef_f.a: $(LIBTRACE_FOR)
780 -$(CHARMC) -o $@ $(LIBTRACE_FOR) || touch $@
782 tracef_f.o: tracef_f.f90
783 -$(CHARMC) -o $@ -c tracef_f.f90 && $(CHARMC) -cpmod ../include tracemod.M || touch $@
785 # used for make depends
786 TRACE_OBJS = trace-projections.o trace-controlPoints.o picstreenode.o picsdecisiontree.o trace-perf.o picsautoperfAPI.o picsautoperf.o trace-summary.o trace-simple.o \
787 trace-counter.o trace-utilization.o \
788 trace-bluegene.o trace-projector.o trace-converse.o trace-all.o \
789 trace-memory.o
791 ###############################################################################
793 # Dynamic Load Balancers
795 ###############################################################################
797 loadbalancers: $(COMMON_LDBS) $(L)/libmoduleCommonLBs.a
799 everylb: $(ALL_LDBS) $(L)/libmoduleEveryLB.a
800 MetisLB.o GridMetisLB.o: metis
802 %LB: $(L)/libmodule%LB.a
803 @true
804 $(L)/libmodule%LB.a: %LB.o
805 $(CHARMC) -o $@ $^
806 ( [ -r libmodule$*LB.dep ] && cp -f libmodule$*LB.dep $(L)/ ) || true
807 $(L)/libmoduleCommonLBs.a:
808 $(CHARMC) -o $@ $^
809 ( [ -r libmoduleCommonLBs.dep ] && cp -f libmoduleCommonLBs.dep $(L)/ ) || true
811 ###############################################################################
813 # BlueGene Emulator
815 ###############################################################################
817 bigsim: bigsim-target
819 bigemulator: bigsim
821 bigsim-target: charm++ $(L)/libconv-bigsim.a $(L)/libconv-bigsim-logs.a $(L)/libconv-bluegene-stub.a $(L)/libblue-standalone.a
823 $(L)/libbluegene.a: BlueGene.o
824 $(CHARMC) -o $@ $^
826 # (Converse) Blue Gene emulator
827 BLUE_OBJS = blue.o bigsim_node.o bigsim_proc.o bigsim_init.o bigsim_timing.o bigsim_record.o bigsim_ooc.o shared_alloc.o
828 BIGSIM_IO_OBJS = bigsim_read.o bigsim_logs.o bigsim_api.o
830 LIBBLUE_OBJS = $(BLUE_OBJS) $(BIGSIM_IO_OBJS) blue_stub.o blue_standalone.o
832 $(L)/libconv-bigsim.a: $(BLUE_OBJS)
833 $(CHARMC) -o $@ $^
835 $(L)/libconv-bigsim-logs.a: $(BIGSIM_IO_OBJS)
836 $(CHARMC) -o $@ $^
838 $(L)/libconv-bluegene-stub.a: blue_stub.o
839 $(CHARMC) -o $@ $^
841 $(L)/libblue-standalone.a: blue_standalone.o
842 $(CHARMC) -o $@ $^
844 ###############################################################################
846 # The CPM scanner
848 ###############################################################################
850 conv-cpm: conv-cpm.o
851 $(NATIVECHARMC) -language c -o conv-cpm -cp ../bin/ conv-cpm.o
853 conv-cpm.o: conv-cpm.c $(CVHEADERS)
854 $(NATIVECHARMC) conv-cpm.c
856 ###############################################################################
858 # The interface translator
860 ###############################################################################
862 XIHEADERS=conv-autoconfig.h xi-AstNode.h xi-Construct.h xi-grammar.tab.h xi-Message.h xi-Parameter.h xi-SdagConstruct.h xi-BlockConstruct.h xi-Template.h xi-util.h xi-Chare.h xi-Entry.h xi-Member.h xi-Module.h xi-SdagCollection.h xi-symbol.h xi-Type.h xi-Value.h xi-main.h
863 CHARMXIOBJ=xi-main.o xi-grammar.tab.o xi-scan.o xi-Template.o xi-AstNode.o xi-Entry.o xi-Member.o xi-Parameter.o xi-SdagConstruct.o xi-BlockConstruct.o xi-Type.o xi-Chare.o xi-Message.o xi-Construct.o xi-Module.o xi-SdagCollection.o xi-Value.o xi-util.o
864 SDAGOBJ=sdag-globals.o CSdagConstruct.o CEntry.o CParsedFile.o CStateVar.o Serial.o Case.o CaseList.o Else.o Forall.o For.o If.o IntExpr.o OList.o Overlap.o SdagEntry.o SList.o Template.o When.o While.o
865 SDAGHEADERS= CToken.h EToken.h CParsedFile.h sdag-globals.h CEntry.h Serial.h Case.h CaseList.h Else.h Forall.h For.h If.h IntExpr.h OList.h Overlap.h SdagEntry.h SList.h Template.h When.h While.h Constructs.h
867 $(CHARMXIOBJ) $(SDAGOBJ): $(XIHEADERS) $(SDAGHEADERS)
868 $(CHARMXIOBJ) $(SDAGOBJ): CXX=$(NATIVECHARMC)
869 $(CHARMXIOBJ) $(SDAGOBJ): CXXFLAGS=-I$(SRCBASE)/xlat-i/ -I$(SRCBASE)/xlat-i/sdag/ -I.
870 xi-scan.o: CXXFLAGS+=-DYY_NEVER_INTERACTIVE
871 VPATH=$(SRCBASE)/xlat-i:$(SRCBASE)/xlat-i/sdag:$(SRCBASE)/xlat-i/sdag/constructs
873 charmxi: ../bin/charmxi
875 ../bin/charmxi: $(CHARMXIOBJ) $(SDAGOBJ)
876 $(NATIVECHARMC) -language c++ -cp ../bin/ -o charmxi $^
878 xi-clean:
879 rm $(CHARMXIOBJ) $(SDAGOBJ)
881 ###############################################################################
883 # Simple Messaging
885 ###############################################################################
887 $(L)/libtsm.a: converse simplemsg.c simplemsg.h
888 $(CHARMC) -o $@ simplemsg.c
890 $(L)/libsm.a: converse sm.c sm.h
891 $(CHARMC) -o $@ sm.c
893 ###############################################################################
895 # PVM
897 ###############################################################################
899 PVMC=pvmc_buf.o pvmc_comm.o pvmc_conv.o pvmc_main.o pvmc_pack.o pvmc_groups.o
901 $(L)/libpvmc.a: $(PVMC)
902 $(CHARMC) -o $@ $(PVMC)
904 pvmc_buf.o: pvmc_buf.c pvmc.h pvm3.h converse.h
905 $(CHARMC) -o $@ pvmc_buf.c
907 pvmc_conv.o: pvmc_conv.c pvmc.h pvm3.h converse.h
908 $(CHARMC) -o $@ pvmc_conv.c
910 pvmc_pack.o: pvmc_pack.c pvmc.h pvm3.h converse.h
911 $(CHARMC) -o $@ pvmc_pack.c
913 pvmc_comm.o: pvmc_comm.c pvmc.h pvm3.h converse.h
914 $(CHARMC) -o $@ pvmc_comm.c
916 pvmc_groups.o: pvmc_groups.c pvmc.h pvm3.h converse.h
917 $(CHARMC) -o $@ pvmc_groups.c
919 pvmc_main.o: pvmc_main.c pvmc.h pvm3.h converse.h
920 $(CHARMC) -o $@ pvmc_main.c
922 $(L)/libf90charm.a: charmxi f90main.ci f90main.h f90main.C
923 $(CHARMC) f90main.ci
924 $(CHARMC) -c -DAMPI_FORTRAN=1 f90main.C
925 -$(CHARMC) -o $@ f90main.o
927 ##############################################################################
928 # adding this entry for files which do not belong to any of other locations
930 OTHER_OBJS= mpi-mainmodule.o main.o custom_partitioner.o BlueGene.o set_partition_params.o
932 ##############################################################################
934 ###############################################################################
936 # Make clean
938 ###############################################################################
940 install:
941 @test ! -d $(DESTDIR)/include && mkdir -p $(DESTDIR)/include || true
942 @test ! -d $(DESTDIR)/lib && mkdir -p $(DESTDIR)/lib || true
943 @test ! -d $(DESTDIR)/lib_so && mkdir -p $(DESTDIR)/lib_so || true
944 @test ! -d $(DESTDIR)/bin && mkdir -p $(DESTDIR)/bin || true
945 # cp -f ../include/* $(DESTDIR)/include
946 for f in ../include/*; do if test -f $$f; then cp -f $$f $(DESTDIR)/include; fi; done
947 cp -f ../lib/* $(DESTDIR)/lib
948 cp -f ../lib_so/* $(DESTDIR)/lib_so || true
949 # cp -f ../bin/* $(DESTDIR)/bin
950 for f in ../bin/*; do if test -f $$f; then cp -f $$f $(DESTDIR)/bin; fi; done
953 clean:
954 rm -f conv-autoconfig.h config.cache
955 rm -f QuickThreads/libckqt.a
956 rm -f charmxi conv-cpm
957 rm -f TAGS basics cmk_extras core
958 rm -f core *.a
959 rm -f core *.o
960 rm -f core #*#
961 rm -f core *~
962 rm -f *.stamp
963 if [ -d charmrun-src ] ; then ( $(MAKE) -C charmrun-src clean ) ; fi
964 -( $(MAKE) -C doc clean )
965 ( $(MAKE) -C libs clean )
966 ( $(MAKE) -C ../examples clean )
967 ( $(MAKE) -C ../tests clean )
969 veryclean:
970 rm -rf ../bin
971 rm -rf ../lib
972 rm -rf ../src
973 rm -rf ../examples
974 rm -rf ../tests
975 rm -rf ../include
976 rm -rf ../doc
977 mv Makefile .Makefile
978 mv Make.depends .Make.depends
979 rm -rf [a-z]* [A-Z]*
980 mv .Make.depends Make.depends
981 rm -rf .[a-z]* .[A-Z]*
984 config: configure conv-autoconfig.h.in
986 cidepends: charmxi
987 echo "Creating " $(CIDEPENDFILE) " ...";
988 if [ -f $(CIDEPENDFILE) ]; then \
989 /bin/cp -f $(CIDEPENDFILE) $(CIDEPENDFILE).old; \
990 fi; \
991 echo '#generated by make cidepends' > $(CIDEPENDFILE); \
992 for cifile in $(sort $(wildcard *.ci)); do \
993 echo "checking generated modules for $$cifile" ; \
994 $(CHARMXI) -M $$cifile | sed '/\.stamp:/a \\t $$(CHARMC) -intrinsic $$< && touch $$@' >> $(CIDEPENDFILE) ; \
995 done
997 depends: cidepends commitid.c
998 $(MAKE) basics
999 echo "Creating " $(DEPENDFILE) " ...";
1000 if [ -f $(DEPENDFILE) ]; then \
1001 /bin/cp -f $(DEPENDFILE) $(DEPENDFILE).old; \
1002 fi; \
1003 echo '#generated by make depends' > $(DEPENDFILE); \
1004 processFiles=''; \
1005 for i in $(sort $(LIBCONV_CORE) $(LIBCONV_LDB) $(LIBCONV_UTIL) $(TRACE_OBJS) $(LIBCK_CORE) $(ALL_LB_OBJS) $(LIBBLUE_OBJS) $(OTHER_OBJS)) ; do \
1006 processed='false'; \
1007 for f in $$processFiles; do \
1008 if test $$i = $$f ; then \
1009 processed=true; break; \
1010 fi; \
1011 done; \
1012 test $$processed = 'true' && continue; \
1013 processFiles="$$processFiles $$i"; \
1014 SRCFILE=`basename $$i .o`.C ; \
1015 [ ! -f $$SRCFILE ] && SRCFILE=`basename $$i .o`.c ; \
1016 echo "checking dependencies for $$SRCFILE" ; \
1017 if g++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
1018 echo '' >> $(DEPENDFILE) ; \
1019 done; \
1021 dependsCaseSensitive: cidepends
1022 $(MAKE) basics
1023 @echo "Creating " $(DEPENDFILE) " ...";
1024 if [ -f $(DEPENDFILE) ]; then \
1025 /bin/cp -f $(DEPENDFILE) $(DEPENDFILE).old; \
1026 fi; \
1027 echo '#generated by make depends' > $(DEPENDFILE); \
1028 processFiles=''; \
1029 for i in $(sort $(LIBCONV_CORE) $(LIBCONV_UTIL) $(TRACE_OBJS) $(LIBCK_CORE) $(ALL_LB_OBJS) $(LIBBLUE_OBJS) $(OTHER_OBJS)); do \
1030 processed='false'; \
1031 for f in $$processFiles; do \
1032 if test $$i = $$f ; then \
1033 processed=true; break; \
1034 fi; \
1035 done; \
1036 test $$processed = 'true' && continue; \
1037 processFiles="$$processFiles $$i"; \
1038 SRCFILE=`basename $$i .o`.C ; \
1039 SRCDIR=`dirname $$i` ; \
1040 found=`/usr/bin/find $$SRCDIR -depth 1 -name $$SRCFILE`; \
1041 [ ! $$found ] && SRCFILE=`basename $$i .o`.c ; \
1042 echo "checking dependencies for $$SRCFILE" ; \
1043 if g++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
1044 echo '' >> $(DEPENDFILE) ; \
1045 done; \
1047 # The build script should have spit out the build options into this makefile
1048 -include buildopts.mk
1049 # If OPTS was not defined, use the build time options
1050 export OPTS ?= $(OPTSATBUILDTIME)
1051 ifeq ($(strip $(OPTS)),)
1052 $(warning Variable OPTS is defined to an empty string. Are you sure this is what you want?)
1053 endif
1056 -include machine.d
1057 machine.o: machine.d
1058 machine.d: machine.C conv-autoconfig.h $(CKHEADERS)
1059 @set -e; \
1060 rm -f $@; \
1061 $(CHARMC) $(OPTS) -M -I. -I$(INC) $< >$@.$$$$; \
1062 sed -e 's,\($*\)\.o[ :]*,\1.o $@ : ,g' -e "s,[Cc]:/,`command -v cygpath >/dev/null 2>&1 && cygpath -u 'C:/' || echo '/c'`/," < $@.$$$$ > $@; \
1063 rm -f $@.$$$$