################################################################################
#
#
################################################################################
#
# Build script for project
#
################################################################################



# Add source files here
EXECUTABLE	:= nbody 
# Cuda source files (compiled with cudacc) don't put kernel in as is included in other file
CUFILES		:=  bodysystemcuda.cu   
#                   nbody_kernel.cu 
# this causes a problem as if you edit the kernel then it does not recompile it
# C/C++ source files (compiled with gcc / c++)
CU_DEPS 	:= nbody_kernel.cu \
                   energy_kernel.cu  \
	           drift_kernel.cu 
CCFILES		:= nbody.cpp   \
                   hd5partstuff.cpp	 \
                   sread.cpp  
C_DEPS		:= nbody.h

################################################################################
# Rules and targets

# Redefine where things go
SRCDIR          = ./
ROOTDIR         = /usr/local/NVIDIA_CUDA_SDK/common/
ROOTBINDIR      = ../exe/
BINDIR          = ../exe/
MYHOMEDIR       = /home/aquillen/

# Set to do a verbose build by default
verbose         = 1

include $(MYHOMEDIR)/common.mk



IFLAGS += -I. -I/home/aquillen/hdf5-1.6.6/hdf5/include -I/home/aquillen/H5Part-1.4.0/build/include
LFLAGS += -lm -lH5Part -lhdf5 -lz -L/home/aquillen/hdf5-1.6.6/hdf5/lib -L/home/aquillen/H5Part-1.4.0/build/lib

mkdisk	: mkdisk.o kepcart.o hd5partstuff.o sread.o kepcart.h nbody.h
	g++  mkdisk.o hd5partstuff.o kepcart.o sread.o $(IFLAGS) $(LFLAGS) -o mkdisk.out

test		: kepcart.h kepcart.o  test.o
	g++  test.o kepcart.o $(IFLAGS) $(LFLAGS) -o test.out   

test.o		: test.cpp kepcart.h

mkdisk.o        : mkdisk.cpp kepcart.h nbody.h

sread.o         : sread.cpp nbody.h

kepcart.o       : kepcart.cpp kepcart.h

h5to3d.o        : h5to3d.cpp nbody.h

h5toorb.o        : h5toorb.cpp nbody.h kepcart.h kepcart.cpp

h5to3d	: h5to3d.o hd5partstuff.o nbody.h
	g++ h5to3d.o hd5partstuff.o $(IFLAGS) $(LFLAGS) -o h5to3d.out

h5toorb	: h5toorb.o hd5partstuff.o nbody.h kepcart.o
	g++ h5toorb.o hd5partstuff.o kepcart.o $(IFLAGS) $(LFLAGS) -o h5toorb.out

mkhist:		mkhist.o hd5partstuff.o nbody.h 
	g++ mkhist.o hd5partstuff.o  $(IFLAGS) $(LFLAGS) -o mkhist.out

mkhist.o:	mkhist.cpp nbody.h 

cleanemu:  
	rm  ./obj/emurelease/*

cleangpu:  
	rm  ./obj/release/*

