aboutsummaryrefslogtreecommitdiff
path: root/src/make.configuration.defn
blob: 5130245dd30d5728d88bdb514a5d87f0c3ccf78b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Main make.code.defn file for thorn CactusElliptic/EllPETSc
# $Header$


# on all systems: PETSc may have been build with X11 support, which
# needs to included here.

# on linux system: the lapack libs (in rpms) are compiled with f2c/g77
# and need the -lg2c or -lf2c to be linked
# keep them at the end of lapack


### check if this was configured with MPI, bail out if not
have_mpi := $(shell grep -s '\#define CCTK_MPI' $(CONFIG)/cctk_Extradefs.h)

ifeq ($(strip $(have_mpi)), )
$(NAME): MissingMPI
.pseudo: MissingMPI
MissingMPI:
	@echo "PETSc: requires MPI"
	@echo "PETSc: Please configure with MPI or remove EllPETSc from ThornList !"
	exit 2
endif

### check if PETSC_DIR/PETSC_ARCH are set, bail out if not
ifeq ($(strip $(PETSC_DIR)), )
$(NAME): MissingPETSC_DIR
.pseudo: MissingPETSC_DIR
MissingPETSC_DIR:
	@echo "PETSc: need environment variable PETSC_DIR for compiling EllPETSc"
	@echo "PETSc: set PETSC_DIR or remove EllPETSc from ThornList"
	exit 2
endif

ifeq ($(strip $(PETSC_ARCH)), )
$(NAME): MissingPETSC_ARCH
.pseudo: MissingPETSC_ARCH
MissingPETSC_ARCH:
	@echo "PETSc: need environment variable PETSC_ARCH for compiling EllPETSc"
	@echo "PETSc: set PETSC_ARCH or remove EllPETSc from ThornList"
	exit 2
endif

PETSC_LIB_DIR = $(PETSC_DIR)/lib/libO/$(PETSC_ARCH)
PETSC_LIBS = petscts petscsnes petscsles petscdm petscmat petscvec petsc 

PLATFORM_LIBS =

### PETSC on the Origin
ifeq ($(PETSC_ARCH),IRIX64)
     PLATFORM_LIBS = fpe blas complib.sgimath
endif

### PETSC on linux
ifeq ($(PETSC_ARCH),linux)
     PLATFORM_LIBS = flapack fblas g2c mpich
endif

### PETSC on linux_intel
ifeq ($(PETSC_ARCH),linux_intel)
     PLATFORM_LIBS = mkl_lapack mkl_def guide
endif

### Otherwise
ifndef PLATFORM_LIBS
UnknownArch:
	@echo "No Cactus/PETSc support for PETSC_ARCH=$(PETSC_ARCH)"
	exit 2
endif

# Add PETSc libdirs and libs to the Cactus makefile variables
LIBDIRS += $(PETSC_LIB_DIR) $(X_LIB_DIR)
LIBS += $(PETSC_LIBS) $(PLATFORM_LIBS) X11 $(MPI_LIBS)