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_USE_CUDA_COMPILER),) 12 # Kokkos requires nvcc to be in PATH and the C++ compiler to be given in an environmental variable 13 LINK.kokkos.cxx = PATH=$(PATH):`dirname $(CUDAC)` NVCC_WRAPPER_DEFAULT_COMPILER=$(CXX_LINKER) $(KOKKOS_BIN)/nvcc_wrapper --expt-extended-lambda $(CUDAC_FLAGS) $(CXX_LINKER_FLAGS) $(CXXFLAGS) $(CXXCPPFLAGS) $(LDFLAGS) 14else ifneq ($(KOKKOS_USE_HIP_COMPILER),) 15 LINK.kokkos.cxx = MPICH_CXX="$(HIPC)" OMPI_CXX="$(HIPC)" $(CXXLINKER) $(HIPC_FLAGS) $(CXXFLAGS) $(CXXCPPFLAGS) $(LDFLAGS) 16else 17 LINK.kokkos.cxx = $(CXXLINKER) $(CXX_FLAGS) $(CXXFLAGS) $(CXXCPPFLAGS) $(LDFLAGS) 18endif 19 20LDLIBS += $(PETSC_LIB) 21 22% : %.F90 23 $(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@ 24% : %.kokkos.cxx 25 $(LINK.kokkos.cxx) $^ $(LOADLIBES) $(LDLIBS) -o $@ 26% : %.cxx 27 $(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ 28 29ifneq (,$(findstring -TP,$(PCC_FLAGS))) 30% : %.c 31 ${PETSC_COMPILE_SINGLE} `pwd`/$< 32 ${CLINKER} -o $@ $@.o $(PETSC_LIB) 33endif 34 35include ${PETSC_DIR}/lib/petsc/conf/test.common 36