1#INCADD = -I/global/homes/a/abuluc \
2# 	-I/opt/cray/pmi/1.0-1.0000.7901.22.1.ss/include \
3# 	-I/opt/cray/mpt/5.1.0/xt/seastar/mpich2-gnu/include \
4# 	-I/opt/cray/mpt/5.1.0/xt/seastar/sma/include \
5# 	-I/opt/xt-libsci/10.4.8/gnu/include \
6# 	-I/usr/include/alps \
7#	-I/opt/gcc/4.5.1/snos/include/g++ -I/opt/gcc/4.5.1/snos/include/g++/x86_64-suse-linux -I/opt/gcc/4.5.1/snos/include/g++/backward \
8# 	-I/usr/local/include \
9# 	-I/opt/gcc/4.5.1/snos/include \
10# 	-I/opt/gcc/4.5.1/snos/lib/gcc/x86_64-suse-linux/4.5.1/include \
11# 	-I/opt/gcc/4.5.1/snos/lib/gcc/x86_64-suse-linux/4.5.1/include-fixed \
12# 	-I/usr/include
13
14# LIBADD = -L/opt/gcc/4.5.1/snos/lib/gcc/x86_64-suse-linux/4.5.1/../../../
15
16BOOST = $(BOOST_DIR)
17INCADD = -I$(BOOST)/include
18# notes for configure:
19
20# -fno-exceptions does not work with MPICH2
21# -fno-rtti does not work with tr1:tuples
22
23
24GCCOPT = -O2 -DMPICH_IGNORE_CXX_SEEK -DGRAPH_GENERATOR_SEQ #-DNDEBUG (disables important assertions)
25GCCDEB = -g -fno-inline -DMPICH_IGNORE_CXX_SEEK -DGRAPH_GENERATOR_SEQ #-DDEBUG
26OPTPGI = -fast -Mipa=fast,inline -Msmartalloc --zc_eh -DMPICH_IGNORE_CXX_SEEK -DGRAPH_GENERATOR_SEQ
27COMPILER = CC
28GCCFLAGS = $(GCCOPT) -DTIMING
29PGIFLAGS = $(INCADD) $(OPTPGI) -DCOMBBLAS_BOOST
30CRAYFLAGS = $(INCADD) -DCOMBBLAS_BOOST -DCRAYCOMP -h msglevel_4
31FLAGS = $(GCCFLAGS) -std=c++11 -std=gnu++14 -DTHREADED -fopenmp #-DCOMBBLAS_DEBUG #-DKSELECTLIMIT=40
32COMBBLAS = ..
33
34#
35# build Graph500 generator
36#
37$(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a:
38	$(MAKE) -C $(COMBBLAS)/graph500-1.2/generator
39
40mmio.o: ../mmio.c
41	cc $(INCADD) $(FLAGS) -c -o mmio.o ../mmio.c
42
43CommGrid.o:	../CommGrid.cpp ../CommGrid.h
44	$(COMPILER) $(FLAGS) -c -o CommGrid.o ../CommGrid.cpp
45
46MPIType.o:	../MPIType.cpp ../MPIType.h
47	$(COMPILER) $(FLAGS) -c -o MPIType.o ../MPIType.cpp
48
49MemoryPool.o:	../MemoryPool.cpp ../SpDefs.h
50	$(COMPILER) $(FLAGS) -c -o MemoryPool.o ../MemoryPool.cpp
51
52hash.o:	../hash.cpp ../hash.hpp
53	$(COMPILER) $(FLAGS) $(INCADD) -c -o hash.o ../hash.cpp
54
55BetwCent.o: BetwCent.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp
56	$(COMPILER) $(FLAGS) -c -o BetwCent.o BetwCent.cpp
57
58MCL.o:  MCL.cpp CC.h WriteMCLClusters.h ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp
59	$(COMPILER) $(FLAGS) -c -o MCL.o MCL.cpp
60
61CC.o:  CC.cpp CC.h ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp
62	$(COMPILER) $(INCADD) $(FLAGS) -c -o CC.o CC.cpp
63
64APowers.o:  APowers.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp
65	$(COMPILER) $(FLAGS) -c -o APowers.o APowers.cpp
66
67TopDownBFS.o:  TopDownBFS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../SpImpl.h
68	$(COMPILER) $(INCADD) $(FLAGS) -c -o TopDownBFS.o TopDownBFS.cpp
69
70DirOptBFS.o:  DirOptBFS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../SpImpl.h
71	$(COMPILER) $(INCADD) $(FLAGS) -c -o DirOptBFS.o DirOptBFS.cpp
72
73FilteredBFS.o:  FilteredBFS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../SpImpl.h ../SpParHelper.cpp ../Friends.h TwitterEdge.h ../MPIType.h
74	$(COMPILER) $(INCADD) $(FLAGS) -c -o FilteredBFS.o FilteredBFS.cpp
75
76FilteredMIS.o:  FilteredMIS.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../SpImpl.h ../SpParHelper.cpp ../Friends.h TwitterEdge.h ../MPIType.h ../FullyDistVec.cpp
77
78	$(COMPILER) $(INCADD) $(FLAGS) -c -o FilteredMIS.o FilteredMIS.cpp
79
80nqp.o:  nqp.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp
81	$(COMPILER) $(FLAGS) -c -o nqp.o nqp.cpp
82
83mcl:	CommGrid.o MPIType.o MCL.o mmio.o hash.o
84	$(COMPILER) $(FLAGS) -o mcl MCL.o mmio.o CommGrid.o MPIType.o hash.o
85
86cc:	MemoryPool.o CommGrid.o MPIType.o CC.o mmio.o hash.o
87	$(COMPILER) $(FLAGS) -o cc CC.o mmio.o CommGrid.o MPIType.o hash.o
88
89nqp:	CommGrid.o MPIType.o nqp.o
90	$(COMPILER) $(FLAGS) -o nqp nqp.o CommGrid.o MPIType.o
91
92apowers:	CommGrid.o MPIType.o APowers.o
93	$(COMPILER) $(FLAGS) -o apowers APowers.o CommGrid.o MPIType.o
94
95tdbfs:	CommGrid.o MPIType.o TopDownBFS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a
96	$(COMPILER) $(INCADD) $(FLAGS) -o tdbfs TopDownBFS.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq
97
98dobfs:	CommGrid.o MPIType.o DirOptBFS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a
99	$(COMPILER) $(INCADD) $(FLAGS) -o dobfs DirOptBFS.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq
100
101betwcent: CommGrid.o MPIType.o BetwCent.o
102	$(COMPILER) $(INCADD) $(FLAGS) -o betwcent BetwCent.o CommGrid.o MPIType.o
103
104fbfs:	CommGrid.o MPIType.o FilteredBFS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a
105	$(COMPILER) $(INCADD) $(FLAGS) -o fbfs FilteredBFS.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq
106
107fmis:	CommGrid.o MPIType.o FilteredMIS.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a
108	$(COMPILER) $(INCADD) $(FLAGS) -o fmis FilteredMIS.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq
109
110
111BPMaximalMatching.o:  BPMaximalMatching.cpp ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../SpImpl.h
112	$(COMPILER) $(FLAGS) -c -o BPMaximalMatching.o BPMaximalMatching.cpp
113
114
115BPMaximalMatching: CommGrid.o MPIType.o BPMaximalMatching.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a
116	$(COMPILER) $(FLAGS) -o BPMaximalMatching BPMaximalMatching.o CommGrid.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq
117
118
119BPMaximumMatching.o:  BPMaximumMatching.cpp BPMaximalMatching.h ../SpDCCols.cpp ../dcsc.cpp ../SpHelper.h ../SpParMat.h ../ParFriends.h ../SpParMat.cpp ../SpDefs.h ../SpTuples.cpp ../SpImpl.h
120	$(COMPILER) $(INCADD) $(FLAGS) -c -o BPMaximumMatching.o BPMaximumMatching.cpp
121
122
123bpmm:	CommGrid.o MPIType.o BPMaximumMatching.o mmio.o $(COMBBLAS)/graph500-1.2/generator/libgraph_generator_seq.a
124	$(COMPILER) $(INCADD) $(FLAGS) -o bpmm BPMaximumMatching.o CommGrid.o mmio.o MPIType.o -L$(COMBBLAS)/graph500-1.2/generator -lgraph_generator_seq
125
126clean:
127	rm -f betwcent
128	rm -f driver
129	rm -f mcl
130	rm -f fbfs
131	rm -f fmis
132	rm -f apowers
133	rm -f dobfs
134	rm -f tdbfs
135	rm -f BPMaximumMatching
136	rm -f *.o
137	rm -f ../graph500-1.2/generator/*.o
138	rm -f ../graph500-1.2/generator/libgraph_generator_seq.a
139
140cleanout:
141	rm out.*
142	rm err.*
143