CC=icc
CFLAGS= 
LDFLAGS=

all: nbody_n2_seq nbody_nlogn_seq # nbody_n2_openmp nbody_n2_tbb nbody_nlogn_tbb


nbody_n2_seq: main.C NbodyTypes.h HRTimer.hh NbodySimulator.h NbodySimulator.C SerialPairwiseSimulator.h SerialPairwiseSimulator.C
	$(CC) $(CFLAGS) -DPAIRWISE $(LDFLAGS) -o nbody_n2_seq NbodySimulator.C SerialPairwiseSimulator.C main.C

nbody_n2_omp: main_pairwise.C NbodyTypes.h HRTimer.hh NbodySimulator.h NbodySimulator.C OMPPairwiseSimulator.h OMPPairwiseSimulator.C
	$(CC) $(CFLAGS) -DPAIRWISE -DOPEN_MP $(LDFLAGS) -o nbody_n2_omp NbodySimulator.C OMPPairwiseSimulator.C main.C

nbody_n2_tbb: main_pairwise.C NbodyTypes.h HRTimer.hh NbodySimulator.h NbodySimulator.C TBBPairwiseSimulator.h TBBPairwiseSimulator.C
	$(CC) $(CFLAGS) -DPAIRWISE -DTBB $(LDFLAGS) -ltbb -o nbody_n2_tbb NbodySimulator.C TBBPairwiseSimulator.C main.C

nbody_nlogn_seq: main.C NbodyTypes.h HRTimer.hh NbodySimulator.h NbodySimulator.C SerialQTreeSimulator.h SerialQTreeSimulator.C QTree.C QTree.h
	$(CC) $(CFLAGS) -DQTREE $(LDFLAGS) -o nbody_nlogn_seq QTree.C NbodySimulator.C SerialQTreeSimulator.C main.C

nbody_nlogn_tbb: main_qtree.C NbodyTypes.h HRTimer.hh NbodySimulator.h NbodySimulator.C TBBQTreeSimulator.h TBBQTreeSimulator.C QTree.C QTree.h
	$(CC) $(CFLAGS) -DQTREE -DTBB $(LDFLAGS) -o nbody_nlogn_tbb QTree.C NbodySimulator.C TBBQTreeSimulator.C main.C

clean:
	rm -f nbody*
