forked from mfem/PyMFEM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
116 lines (97 loc) · 2.56 KB
/
Makefile
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
## Makefile
##
## default variable setting
##
MAKE=$(shell which make)
PYTHON ?= $(shell which python)
PREFIX ?= /usr/local
# serial compiler
CXX_SER ?= $(CXX)
CC_SER ?= $(CC)
# parallel compiler(CC_PAR)/linker(CXX_PAR)
CXX_PAR ?= $(MPICXX)
CC_PAR ?= $(MPICC)
WHOLE_ARCHIVE = --whole_archive
NO_WHOLE_ARCHIVE = --no-whole-archive
SWIG=$(shell which swig)
SWIGFLAG = -Wall -c++ -python -fastproxy -olddefs -keyword
#
# MFEM path:
#
# MFEMBUILDDIR : directory of MFEM build. Need to find config/config.hpp
# MFEMINCDIR : include files
# MFEMLNKDIR : path to mfem.so
MFEM ?=/usr/local
MFEMLIB = mfem
MFEMBUILDDIR ?= $(HOME)/src/mfem/cmbuild_par
MFEMINCDIR = $(MFEM)/include/mfem
MFEMLNKDIR = $(MFEM)/lib
MFEMSER ?=/usr/local/mfem_ser
MFEMSERLIB = mfem
MFEMSERBUILDDIR ?= $(HOME)/src/mfem_ser/cmbuild_ser
MFEMSERINCDIR = $(MFEMSER)/include/mfem
MFEMSERLNKDIR = $(MFEMSER)/lib
# HYPRE
HYPREINC ?= /usr/local/include
HYPRELIB ?= /usr/local/lib
#metis
METIS5INC ?= /usr/local/include
METIS5LIB ?= /usr/local/lib
#MPI
#MPICHINC ?= /usr/local/include/mpich-mp
#MPICHLIB ?= /usr/local/lib/mpich-mp
MPI4PYINC = $(shell $(PYTHON) -c "import mpi4py;print(mpi4py.get_include())")
#numpy
#NUMPYINC = $(shell $(PYTHON) -c "import numpy;print(numpy.get_include())")
NOCOMPACTUNWIND =
include ./Makefile.local
MFEMINCFLAG = -I$(MFEMINCDIR)
MFEMSERINCFLAG = -I$(MFEMSERINCDIR)
HYPREINCFLAG = -I$(HYPREINC)
HYPRELNKFLAG = -L$(HYPRELIB) -lHYPRE
#MPIINCFLAG = -I$(MPIINC)
MPI4PYINCFLAG = -I$(MPI4PYINC)
ADD_STRUMPACK ?= $(ENABLE_STRUMPACK)
STRUMPACK_INCLUDE ?=
ADD_PUMI ?= $(ENABLE_PUMI)
# export everything so that it is avaialbe in setup.py
export
SUBDIRS = mfem/_par mfem/_ser
.PHONEY:clean par ser subdirs subdirs_cxx parcxx sercxx pyinstall
default: setup_local.py
#default: setup_local.py
all: par ser
cxx: parcxx sercxx
par:
$(PYTHON) write_setup_local.py
$(MAKE) -C mfem/_par
cp setup_local.py mfem/.
ser:
$(PYTHON) write_setup_local.py
$(MAKE) -C mfem/_ser
cp setup_local.py mfem/.
parcxx: setup_local.py
$(MAKE) -C mfem/_par cxx
sercxx: setup_local.py
$(MAKE) -C mfem/_ser cxx
setup_local.py: Makefile.local
$(PYTHON) write_setup_local.py
cp setup_local.py mfem/.
pyinstall:
#$(PYTHON) clean_import.py -x
$(PYTHON) setup.py build
$(PYTHON) setup.py install --prefix=$(PREFIX)
cleancxx:
for dirs in $(SUBDIRS); do\
if [ -d $$dirs ]; then \
$(MAKE) -C $$dirs cleancxx;\
fi; \
done
clean:
for dirs in $(SUBDIRS); do\
if [ -d $$dirs ]; then \
$(MAKE) -C $$dirs clean;\
fi; \
done
rm -f setup_local.py
rm -rf build