EXECUTABLE    := nbody

USETEXTURE := 0

CCFILES	:=  NBody.cpp clutils.cpp displayutils.cpp main.cpp \

C_DEPS	:=  clutils.h NBody.h displayutils.h \


OPENCL_INSTALL_PATH := $(AMDAPPSDKROOT)

OPENCV_LIB := /usr/lib64

# Basic directory setup for SDK
# (override directories only if they are not already defined)
SRCDIR     ?=
ROOTDIR    ?= .
ROOTBINDIR ?= bin
BINDIR     ?= $(ROOTBINDIR)
ROOTOBJDIR ?= obj

# Compilers
CXX        := g++ -O3
CC         := gcc -O3

LINK       := g++ -O3

# Includes
INCLUDES  += -I. -I$(OPENCL_INSTALL_PATH)/include 

# Libs
LIB       := -lglut -L$(OPENCL_INSTALL_PATH)/lib/x86_64 -lOpenCL 

# Warning flags
CXXWARN_FLAGS := \
	-W -Wall -Wno-write-strings

CWARN_FLAGS := $(CXXWARN_FLAGS) \
	-W -Wall -Wno-write-strings

# Compiler-specific flags
CXXFLAGS  :=  -DMPICH_IGNORE_CXX_SEEK $(CXXWARN_FLAGS) $(MYFLAGS)
CFLAGS    :=  -DMPICH_IGNORE_CXX_SEEK $(CWARN_FLAGS) $(MYFLAGS)
# Common flags
COMMONFLAGS = $(INCLUDES) $(LIB) -DUNIX

TARGET    := $(BINDIR)/$(EXECUTABLE)
LINKLINE    = $(LINK) -o $(TARGET) $(OBJS) $(LIB)


################################################################################
# Check for input flags and set compiler flags appropriately
################################################################################
CXXFLAGS  += $(COMMONFLAGS)
CFLAGS    += $(COMMONFLAGS)

################################################################################
# Set up object files
################################################################################
OBJDIR := $(ROOTOBJDIR)
OBJS    :=  $(patsubst %.cpp,$(OBJDIR)/%.cpp_o,$(notdir $(CCFILES)))
OBJS	+=  $(patsubst %.c,$(OBJDIR)/%.c_o,$(notdir $(CFILES)))


################################################################################
# Rules
################################################################################
$(OBJDIR)/%.c_o : $(SRCDIR)%.c
	$(VERBOSE)$(CC) $(CFLAGS) -o $@ -c $<

$(OBJDIR)/%.cpp_o : $(SRCDIR)%.cpp
	$(VERBOSE)$(CXX) $(CXXFLAGS) -o $@ -c $<

$(TARGET): makedirectories $(OBJS) Makefile
	$(VERBOSE)$(LINKLINE)

makedirectories:
	@mkdir -p $(OBJDIR)
	@mkdir -p $(BINDIR)

tidy :
	@find | egrep "#" | xargs rm -f
	@find | egrep "\~" | xargs rm -f

clean : tidy
	$(VERBOSE)rm -rf obj
	$(VERBOSE)rm -rf bin
