#
# default base directory for YAP installation
# (EROOT for architecture-dependent files)
#
prefix = @prefix@
exec_prefix = @exec_prefix@
ROOTDIR = $(prefix)
EROOTDIR = @exec_prefix@
abs_top_builddir = @abs_top_builddir@
#
# where the binary should be
#
BINDIR = $(EROOTDIR)/bin
#
# where YAP should look for libraries
#
LIBDIR=@libdir@
SHAREDIR=$(ROOTDIR)/share/Yap
YAPLIBDIR=@libdir@/Yap
#
#
CC=@CC@
NVCC=@NVCC@
CFLAGS= @SHLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) -I$(srcdir) -I../.. -I$(srcdir)/../../include  @CUDA_CPPFLAGS@
NVCCFLAGS=@CUDA_CPPFLAGS@ -I$(srcdir) -I../.. -I$(srcdir)/../../include
CUDA_LDFLAGS=@CUDA_LDFLAGS@
#
#
# You shouldn't need to change what follows.
#
INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
SHELL=/bin/sh
RANLIB=@RANLIB@
srcdir=@srcdir@
SO=@SO@
#4.1VPATH=@srcdir@:@srcdir@/OPTYap
CWD=$(PWD)
#

CUDA_PROLOG= \
	$(srcdir)/cuda.yap

OBJS=cuda.o memory.o lista.o
SOBJS=cuda.@SO@

#in some systems we just create a single object, in others we need to
# create a libray

all: $(SOBJS) 

cuda.o: $(srcdir)/cuda.c $(srcdir)/pred.h
	$(NVCC) -c $(NVCCFLAGS) $(srcdir)/cuda.c -o cuda.o

lista.o: $(srcdir)/lista.cu $(srcdir)/pred.h $(srcdir)/selectproyect.cu $(srcdir)/treeb.cu  $(srcdir)/union2.cu  $(srcdir)/bpreds.cu
	$(NVCC) -c $(NVCCFLAGS) $(srcdir)/lista.cu -o lista.o

memory.o: $(srcdir)/memory.cu $(srcdir)/pred.h
	$(NVCC) -c $(NVCCFLAGS) $(srcdir)/memory.cu -o memory.o

@DO_SECOND_LD@cuda.@SO@: $(OBJS)
@DO_SECOND_LD@	@CUDA_SHLIB_LD@ $(CUDA_LDFLAGS) -o cuda.@SO@ $(OBJS)

install: all install-examples
	mkdir -p $(DESTDIR)$(SHAREDIR)
	for h in $(CUDA_PROLOG); do $(INSTALL_DATA) $$h $(DESTDIR)$(SHAREDIR); done
	$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(YAPLIBDIR)

install-examples:

clean:
	rm -f *.o *~ $(OBJS) *.BAK

distclean: clean
	rm -f $(SOBJS) Makefile