xref: /petsc/lib/petsc/conf/test (revision d0295fc027abbea29f13fa82c19cf92da8e9ba99)
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