#Makefile


#process(create opencl objects) elapsed time: 1.105586 (sec)
#process(CPU Function) elapsed time: 2.337340 (sec)
#process(Kernel Function) elapsed time: 1.668738 (sec)
#process(result) elapsed time: 0.008394 (sec)
#process(liberate) elapsed time: 2.541287 (sec)
#processend press enter



#macro
CCG		= gcc
CCP		= g++ 

CFLAGSG		= -Wall -ansi -DNDEBUG -O3 -std=c99 -fopenmp
CFLAGSP		= -Wall -ansi -DNDEBUG -O3 -fopenmp

#CC		= $(CCG) $(CFLAGSG)
CC		= $(CCP) $(CFLAGSP)

#g++で書くときは-Iと~/の間にホワイトスペースを入れてはいけない
#gccで書くときは-Iと~/の間にホワイトスペースを入れなければならない
INCLUDES	= -I/usr/local/cuda/include -I/usr/local/include/ -I.
LIBS		= -L. -L~/NVIDIA_GPU_Computing_SDK/OpenCL/common/lib -loclUtil -lOpenCL
OBJS		= clClass.o clCommandQueueClass.o clContextClass.o clDeviceClass.o clDeviceInfoClass.o clErrorClass.o clKernelClass.o clPlatformClass.o clPlatformInfoClass.o clProgramClass.o errorClass.o speedTestClass.o clMemoryClass.o calc.o main.o
TARGET		= cltest


$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
#ファイル削除
	rm -f $(OBJS) Wave.h.gch lib_ino.h.gch glui.h.gch Color.hpp.gch


#サフィックスルール(.c -> .o)
.c.o:
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

.PHONY: all
all:	$(TARGET)


.PHONY: test
test:	$(TARGET)
	./$(TARGET) -test

.PHONY: clean
clean:
	rm -f $(OBJS)


main.cpp:clClass.h
main.cpp:clErrorClass.h
main.cpp:speedTestClass.h
main.cpp:calc.h

speedTestClass.cpp:         speedTestClass.h
clMemoryClass.cpp:		clMemoryClass.h
errorClass.cpp:             errorClass.h
clProgramClass.cpp:         clProgramClass.h
clPlatformInfoClass.cpp:    clPlatformInfoClass.h
clPlatformClass.cpp:        clPlatformClass.h
clKernelClass.cpp:          clKernelClass.h
clErrorClass.cpp:           clErrorClass.h
clDeviceInfoClass.cpp:      clDeviceInfoClass.h
clDeviceClass.cpp:          clDeviceClass.h
clContextClass.cpp:         clContextClass.h
clCommandQueueClass.cpp:    clCommandQueueClass.h
clClass.cpp:                clClass.h
calc.cpp:			calc.h



