# Die folgenden 2 Zeilen sind unter Linux schon vordefiniert,
# andere Systeme brauchen diese Definitionen eventuell?
CC=gcc
CXX=g++
#h = ~/xtekplot1/h  # falls nicht schon im .profile oder .bashrc definiert
#WARN = -Wall #so fuer neue Programme
# nach Wall koennen noch Ausnahmen geschaltet werden:
#WARN = -Wall -Wno-unused-result -Wno-parentheses -Wno-unused-variable -Wno-write-strings
WARN = -Wall -Wno-unused-result -Wno-parentheses 
#DEBUG= -ggdb  # fuer den Gnu-Debugger
OPT  = -O3  #-O3 fuer moeglichst schnell?, -Os fuer moeglist kurz
CFLAGS  = -I$h -pthread -std=c++11 $(WARN) $(OPT) $(DEBUG) 
CXXFLAGS= $(CFLAGS)

# angepasst fuer OpenGL:
#LDFLAGS = -L/usr/X11R6/lib $(DEBUG)
LDFLAGS = $(DEBUG)
#MYLIBS = $h/xtekplot1.o
MYLIBS  = myfonts.o menu.o
#LDLIBS = -lm -lX11 -lcudart -lOpenCL
LDLIBS  = -lm -lcudart -lOpenCL -lGL -lGLU -lglut

KERNEL = kernel.cc
KERNEL_OPT = kernel-opt3.cc
#KERNEL_OPT = kernel.cc

#all: edelgas check
all: edelgas

edelgas: edelgas.cc myopencl.cc edelgas.h myopencl.h kernel.h $(KERNEL) myfonts.o menu.o menu.h
	$(CXX) $(CFLAGS) $(LDFLAGS) edelgas.cc myopencl.cc $(MYLIBS) $(LDLIBS) -o edelgas

check: $(KERNEL_OPT)
	gcc -c -I/usr/local/cuda/include/ -DCHECK $(KERNEL_OPT) $(CFLAGS) -o tmp.o

install:
	cp edelgas $(HOME)/bin

clean:
	rm -f *.o *~
clean_all:
	rm -f *.o *~ *.ptx
	rm -f edelgas
