55 lines
1.2 KiB
Makefile
55 lines
1.2 KiB
Makefile
# Headers for Geryon
|
|
UCL_H = $(wildcard ./geryon/ucl*.h)
|
|
OCL_H = $(wildcard ./geryon/ocl*.h) $(UCL_H) lal_preprocessor.h
|
|
PRE1_H = lal_preprocessor.h lal_aux_fun1.h
|
|
ALL_H = $(OCL_H) $(wildcard ./lal_*.h)
|
|
|
|
# Source files
|
|
SRCS := $(wildcard ./lal_*.cpp)
|
|
OBJS := $(subst ./,$(OBJ_DIR)/,$(SRCS:%.cpp=%.o))
|
|
CUS := $(wildcard lal_*.cu)
|
|
KERS := $(subst ./,$(OBJ_DIR)/,$(CUS:lal_%.cu=%_cl.h))
|
|
KERS := $(addprefix $(OBJ_DIR)/, $(KERS))
|
|
|
|
# targets
|
|
|
|
GPU_LIB = $(LIB_DIR)/libgpu.a
|
|
|
|
EXECS = $(BIN_DIR)/ocl_get_devices
|
|
|
|
all: $(OBJ_DIR) $(KERS) $(GPU_LIB) $(EXECS)
|
|
|
|
$(OBJ_DIR):
|
|
mkdir -p $@
|
|
|
|
# Compiler and linker
|
|
|
|
OCL = $(OCL_CPP) $(OCL_PREC) $(OCL_TUNE) -DUSE_OPENCL
|
|
|
|
# device code compilation
|
|
|
|
$(OBJ_DIR)/%_cl.h: lal_%.cu $(PRE1_H)
|
|
$(BSH) ./geryon/file_to_cstr.sh $* $(PRE1_H) $< $@;
|
|
|
|
# host code compilation
|
|
|
|
$(OBJ_DIR)/lal_%.o: lal_%.cpp $(KERS)
|
|
$(OCL) -o $@ -c $< -I$(OBJ_DIR)
|
|
|
|
$(BIN_DIR)/ocl_get_devices: ./geryon/ucl_get_devices.cpp $(OCL_H)
|
|
$(OCL) -o $@ ./geryon/ucl_get_devices.cpp -DUCL_OPENCL $(OCL_LINK)
|
|
|
|
$(GPU_LIB): $(OBJS)
|
|
$(AR) -crusv $(GPU_LIB) $(OBJS)
|
|
@cp $(EXTRAMAKE) Makefile.lammps
|
|
|
|
clean:
|
|
-rm -f $(EXECS) $(GPU_LIB) $(OBJS) $(KERS) *.linkinfo
|
|
|
|
veryclean: clean
|
|
-rm -rf *~ *.linkinfo
|
|
|
|
cleanlib:
|
|
-rm -f $(EXECS) $(GPU_LIB) $(OBJS) $(KERS) *.linkinfo
|
|
|