mirror of https://github.com/jlizier/jidt
Makefile revamped. See comments:
- Added CUSTOMFLAGS to define flags from Make CLI. - Separated and re-arranged C object targets. - Added targets for test binaries.
This commit is contained in:
parent
e6818493ca
commit
169c35e990
|
|
@ -18,25 +18,52 @@ ifdef DEBUG
|
|||
NVCCFLAGS += -g -G
|
||||
endif
|
||||
|
||||
ifdef CUSTOMFLAGS
|
||||
CCFLAGS += ${CUSTOMFLAGS}
|
||||
NVCCFLAGS += ${CUSTOMFLAGS}
|
||||
endif
|
||||
|
||||
|
||||
# Common includes and paths for CUDA. This assumes the CUDA toolkit is in PATH
|
||||
INCLUDES := -I. -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux
|
||||
LDFLAGS += -L. -lcuda -lcudart
|
||||
|
||||
# Target rules
|
||||
# Main target rule
|
||||
all: libKraskov.so
|
||||
|
||||
## Compile device code
|
||||
#---------------------
|
||||
gpuKnnLibrary.o: gpuKnnLibrary.cu helperfunctions.cu gpuKnnBF_kernel.cu
|
||||
${NVCC} ${NVCCFLAGS} ${INCLUDES} -Xcompiler -fPIC -c gpuKnnLibrary.cu
|
||||
|
||||
libgpuKnnLibrary.a: gpuKnnLibrary.o
|
||||
${AR} -r libgpuKnnLibrary.a gpuKnnLibrary.o
|
||||
|
||||
libKraskov.so: libgpuKnnLibrary.a kraskovCuda.c
|
||||
${NVCC} ${NVCCFLAGS} ${INCLUDES} -Xcompiler -fPIC -shared -o libKraskov.so digamma.c gpuMILibrary.c kraskovCuda.c ${LDFLAGS} -lgpuKnnLibrary
|
||||
|
||||
test: libKraskov.so
|
||||
${GCC} -std=c++11 -o unittest unittests.cpp -L. -lKraskov
|
||||
## Compile host code
|
||||
#-------------------
|
||||
c_objects = digamma.o gpuMILibrary.o kraskovCuda.o
|
||||
|
||||
%.o: %.c
|
||||
${GCC} ${INCLUDES} ${CCFLAGS} -x c -std=c99 -fPIC -c $< -o $@
|
||||
|
||||
|
||||
## Final shared library linking
|
||||
#------------------------------
|
||||
libKraskov.so: libgpuKnnLibrary.a $(c_objects)
|
||||
${NVCC} ${NVCCFLAGS} ${INCLUDES} -Xcompiler -fPIC -shared -o libKraskov.so $(c_objects) ${LDFLAGS} -lgpuKnnLibrary
|
||||
|
||||
|
||||
## Test binary targets
|
||||
#------------------------------
|
||||
test: unittest perftest
|
||||
|
||||
unittest: libKraskov.so unittest.cpp
|
||||
${GCC} ${CCFLAGS} -std=c++11 unittests.cpp -L. -lKraskov -o $@
|
||||
|
||||
perftest: libKraskov.so perftest.cpp
|
||||
${GCC} ${CCFLAGS} -DTIMER -std=c++11 perftest.cpp -L. -lKraskov -o $@
|
||||
|
||||
clean:
|
||||
rm -f *.o *.so *.a unittest
|
||||
rm -f *.o *.so *.a unittest perftest
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue