1# -*- mode: makefile -*- 2# 3 4ifeq ($(RM),true) 5.SECONDARY: $(%.o) $(%f.o) $(%f90.o) 6endif 7 8LINK.c = $(CLINKER) $(PCC_FLAGS) $(PFLAGS) $(CCPPFLAGS) $(LDFLAGS) 9LINK.F = $(FLINKER) $(FC_FLAGS) $(FFLAGS) $(FCPPFLAGS) $(LDFLAGS) 10LINK.cc = $(CXXLINKER) $(CXX_FLAGS) $(CXXFLAGS) $(CXXCPPFLAGS) $(LDFLAGS) 11ifneq ($(KOKKOS_BIN),) 12# Kokkos requires nvcc to be in PATH and the C++ compiler to be given in an environmental variable 13LINK.kokkos.cxx = PATH=$(PATH):`dirname $(CUDAC)` NVCC_WRAPPER_DEFAULT_COMPILER=$(CXX_LINKER) $(KOKKOS_BIN)/nvcc_wrapper --expt-extended-lambda $(CXX_LINKER_FLAGS) $(CXX_FLAGS) $(CXXFLAGS) $(CXXCPPFLAGS) $(LDFLAGS) 14else 15LINK.kokkos.cxx = $(CXXLINKER) $(CXX_FLAGS) $(CXXFLAGS) $(CXXCPPFLAGS) $(LDFLAGS) 16endif 17 18LDLIBS += $(PETSC_LIB) 19 20% : %.F90 21 $(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@ 22% : %.kokkos.cxx 23 $(LINK.kokkos.cxx) $^ $(LOADLIBES) $(LDLIBS) -o $@ 24% : %.cxx 25 $(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ 26 27ifneq (,$(findstring -TP,$(PCC_FLAGS))) 28% : %.c 29 ${PETSC_COMPILE_SINGLE} `pwd`/$< 30 ${CLINKER} -o $@ $@.o $(PETSC_LIB) 31endif 32 33include ${PETSC_DIR}/lib/petsc/conf/test.common 34