1INCDIR = $(HOME) 2INCADD = -I$(INCDIR) 3 4# notes for configure: 5# -fno-exceptions does not work with MPICH2 6# -fno-rtti does not work with tr1:tuples 7 8OPT = -O2 -DMPICH_IGNORE_CXX_SEEK -DGRAPH_GENERATOR_SEQ -Wreturn-type #-DNDEBUG (disables important assertions) 9DEB = -g -O0 -fno-inline -DMPICH_IGNORE_CXX_SEEK -DGRAPH_GENERATOR_SEQ -Wreturn-type -DDEBUG 10PROF = -pg -O2 -fno-inline -DMPICH_IGNORE_CXX_SEEK -DGRAPH_GENERATOR_SEQ -Wreturn-type 11COMPILER = mpicxx -std=c++11 -std=c++14 -DTHREADED -fopenmp -fpermissive #-DRAND_PERMUTE #ABAB:please define this per class as opposed to globally for each compilation 12FLAGS = $(OPT) -Wall -Wno-maybe-uninitialized #-DTIMING #-DCOMBBLAS_DEBUG 13COMBBLAS = .. 14 15 16# 17# build Graph500 generator 18# 19$(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a: 20 $(MAKE) -C $(COMBBLAS)/graph500-1.2/generator 21 22CommGrid.o: ../CommGrid.cpp ../CommGrid.h 23 $(COMPILER) $(INCADD) $(FLAGS) -c -o CommGrid.o ../CommGrid.cpp 24mmio.o: ../mmio.c 25 mpicc $(INCADD) $(FLAGS) -c -o mmio.o ../mmio.c 26 27MPIType.o: ../MPIType.cpp ../MPIType.h 28 $(COMPILER) $(INCADD) $(FLAGS) -c -o MPIType.o ../MPIType.cpp 29 30MemoryPool.o: ../MemoryPool.cpp ../SpDefs.h 31 $(COMPILER) $(INCADD) $(FLAGS) -c -o MemoryPool.o ../MemoryPool.cpp 32 33hash.o: ../hash.cpp ../hash.hpp 34 $(COMPILER) $(FLAGS) $(INCADD) -c -o hash.o ../hash.cpp 35 36BetwCent.o: BetwCent.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp 37 $(COMPILER) $(INCADD) $(FLAGS) -c -o BetwCent.o BetwCent.cpp 38 39MCL.o: MCL.cpp CC.h WriteMCLClusters.h ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp 40 $(COMPILER) $(INCADD) $(FLAGS) -c -o MCL.o MCL.cpp 41 42CC.o: CC.cpp CC.h ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp 43 $(COMPILER) $(INCADD) $(FLAGS) -c -o CC.o CC.cpp 44 45TopDownBFS.o: TopDownBFS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../DenseParVec.h ../DenseParVec.cpp ../SpImpl.h 46 $(COMPILER) $(INCADD) $(FLAGS) -c -o TopDownBFS.o TopDownBFS.cpp 47 48DirOptBFS.o: DirOptBFS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../DenseParVec.h ../DenseParVec.cpp ../SpImpl.h 49 $(COMPILER) $(INCADD) $(FLAGS) -c -o DirOptBFS.o DirOptBFS.cpp 50 51FilteredBFS.o: FilteredBFS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../DenseParVec.h ../DenseParVec.cpp ../SpImpl.h ../SpParHelper.cpp ../Friends.h TwitterEdge.h ../MPIType.h 52 $(COMPILER) $(INCADD) $(FLAGS) -c -o FilteredBFS.o FilteredBFS.cpp 53 54FilteredMIS.o: FilteredMIS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../DenseParVec.h ../DenseParVec.cpp ../SpImpl.h ../SpParHelper.cpp ../Friends.h TwitterEdge.h ../MPIType.h ../FullyDistVec.cpp 55 $(COMPILER) $(INCADD) $(FLAGS) -c -o FilteredMIS.o FilteredMIS.cpp 56 57mcl: MemoryPool.o CommGrid.o MPIType.o MCL.o mmio.o hash.o 58 $(COMPILER) $(INCADD) $(FLAGS) -o mcl MCL.o MemoryPool.o mmio.o CommGrid.o MPIType.o hash.o 59 60cc: MemoryPool.o CommGrid.o MPIType.o CC.o mmio.o hash.o 61 $(COMPILER) $(INCADD) $(FLAGS) -o cc CC.o MemoryPool.o mmio.o CommGrid.o MPIType.o hash.o 62 63tdbfs: MemoryPool.o CommGrid.o MPIType.o TopDownBFS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a 64 $(COMPILER) $(INCADD) $(FLAGS) -o tdbfs TopDownBFS.o MemoryPool.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq 65 66dobfs: MemoryPool.o CommGrid.o MPIType.o DirOptBFS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a 67 $(COMPILER) $(INCADD) $(FLAGS) -o dobfs DirOptBFS.o MemoryPool.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq 68 69betwcent: MemoryPool.o CommGrid.o MPIType.o BetwCent.o 70 $(COMPILER) $(INCADD) $(FLAGS) -o betwcent BetwCent.o MemoryPool.o CommGrid.o MPIType.o 71 72fbfs: MemoryPool.o CommGrid.o MPIType.o FilteredBFS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a 73 $(COMPILER) $(INCADD) $(FLAGS) -o fbfs FilteredBFS.o MemoryPool.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq 74 75fmis: MemoryPool.o CommGrid.o MPIType.o FilteredMIS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a 76 $(COMPILER) $(INCADD) $(FLAGS) -o fmis FilteredMIS.o MemoryPool.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq 77 78BPMaximalMatching.o: BPMaximalMatching.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../DenseParVec.h ../DenseParVec.cpp ../SpImpl.h 79 $(COMPILER) $(FLAGS) -c -o BPMaximalMatching.o BPMaximalMatching.cpp 80 81 82BPMaximalMatching: MemoryPool.o CommGrid.o MPIType.o BPMaximalMatching.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a 83 $(COMPILER) $(FLAGS) -o BPMaximalMatching BPMaximalMatching.o MemoryPool.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq 84 85 86BPMaximumMatching.o: BPMaximumMatching.cpp BPMaximalMatching.h ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../DenseParVec.h ../DenseParVec.cpp ../SpImpl.h 87 $(COMPILER) $(INCADD) $(FLAGS) -c -o BPMaximumMatching.o BPMaximumMatching.cpp 88 89 90bpmm: MemoryPool.o CommGrid.o MPIType.o BPMaximumMatching.o mmio.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a 91 $(COMPILER) $(INCADD) $(FLAGS) -o bpmm BPMaximumMatching.o MemoryPool.o CommGrid.o mmio.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq 92 93 94clean: 95 rm -f betwcent 96 rm -f driver 97 rm -f mcl 98 rm -f fbfs 99 rm -f cc 100 rm -f dobfs 101 rm -f tdbfs 102 rm -f *.o 103 rm -f BPMaximumMatching 104 rm -f ../graph500-1.2/generator/*.o 105 rm -f ../graph500-1.2/generator/libgraph_generator_seq.a 106 107cleanout: 108 rm out.* 109 rm err.* 110