Makefile_AMDiS.mk 4.39 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
PARMETIS_DIR = $(AMDIS_DIR)/lib/ParMetis-3.1

# ============================================================================
# ===== includes pathes ======================================================
# ============================================================================

AMDIS_INCLUDE = -I$(AMDIS_DIR)/src -I$(AMDIS_DIR)/compositeFEM/src -I$(AMDIS_DIR)/lib/mtl4
MPCCI_INCLUDE = -I$(MPCCI_DIR)/include
PARMETIS_INCLUDE = -I$(PARMETIS_DIR)
PARALLEL_INCLUDE = -I$(AMDIS_DIR)/src/parallel
11
REINIT_INCLUDE = -I$(AMDIS_DIR)/Reinit/src
12

13
INCLUDES = -I. $(AMDIS_INCLUDE) $(MPCCI_INCLUDE) $(REINIT_INCLUDE) $(PARALLEL_INCLUDE)
14
15
16
17
18

# ============================================================================
# ===== libraries ============================================================
# ============================================================================

19
AMDIS_LIB =  -L$(AMDIS_DIR)/lib -lamdis -lcompositeFEM
20
PNG_LIB = 
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

UMFPACK_LIB = -L$(AMDIS_DIR)/lib/AMD/Lib -L$(AMDIS_DIR)/lib/UMFPACK/Lib
ifeq ($(strip $(USE_SERVER)), mars)
	UMFPACK_LIB += -lmkl -lumfpack -lamd
else
	ifeq ($(strip $(USE_SERVER)), themisto)
		UMFPACK_LIB += $(MKL_LIB) -lmkl -lguide -lpthread -lumfpack -lamd
	else	
		ifeq ($(strip $(USE_SERVER)), deimos)
			MPI_DIR = /licsoft/libraries/openmpi/1.2.6/64bit
			UMFPACK_LIB += -lumfpack -lamd -L/licsoft/libraries/goto -lgoto -lpthread
		else
			UMFPACK_LIB += -lblas -lumfpack -lamd
		endif
	endif
endif

MPCCI_LIB = -L$(MPCCI_DIR)/lib/linux-x86-glibc22 -lmpcci
PARMETIS_LIB = -L$(PARMETIS_DIR) -lparmetis -lmetis

LIBS = $(AMDIS_LIB) $(PNG_LIB)
42
LIBS += -lboost_iostreams -lboost_filesystem -lboost_system -lboost_date_time
43
44
45

ifeq ($(strip $(USE_UMFPACK)), 1)
	LIBS += $(UMFPACK_LIB)
Thomas Witkowski's avatar
Thomas Witkowski committed
46
	CPPFLAGS += -DHAVE_UMFPACK -DMTL_HAS_UMFPACK
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
endif

ifeq ($(strip $(USE_MKL)), 1)
	ifeq ($(strip $(USE_SERVER)), themisto)
		LIBS += $(MKL_LIB) 
	else
		LIBS += -L$(MKL_LIB) 
	endif

	LIBS += -lmkl -lmkl_solver -lguide -lpthread
endif

ifeq ($(strip $(USE_MPCCI)), 1)
	LIBS += $(MPCCI_LIB) 
endif

63
64
65
ifeq ($(strip $(USE_REINIT)), 1)
	LIBS += -L$(AMDIS_DIR)/Reinit/lib -lreinit
endif
66
67
68
69
70
71

# ============================================================================
# ===== parallel or sequential ? =============================================
# ============================================================================

ifeq ($(strip $(USE_PARALLEL_AMDIS)), 1)
Thomas Witkowski's avatar
Thomas Witkowski committed
72
73
74
75
	include ${PETSC_DIR}/conf/variables
	CFLAGS = ${PETSC_CC_INCLUDES}
	FFLAGS = ${PETSC_FC_INCLUDES}

76
77
78
79
80
81
82
83
84
85
	ifeq ($(strip $(USE_SERVER)), mars)
		ifeq ($(strip $(USE_COMPILER)), gcc)
			COMPILE = g++
		else
			COMPILE = icpc
		endif
	else
		COMPILE = $(MPI_DIR)/bin/mpiCC
	endif

86
	CPPFLAGS += -DHAVE_PARALLEL_DOMAIN_AMDIS
Thomas Witkowski's avatar
Thomas Witkowski committed
87
88
	INCLUDES += $(PETSC_INCLUDE)
	LIBS += $(PARMETIS_LIB) -lmpi $(PETSC_LIB)
89
90
91
92
93
94
95
96
else
	ifeq ($(strip $(USE_COMPILER)), gcc)
		COMPILE = g++
	else
		COMPILE = icpc
	endif
endif

97
98
99
100
ifeq ($(strip $(USE_MARMOT)), 1)
	COMPILE = marmotcxx
endif

101
102
103
104
105
# ============================================================================
# ===== compile flags ========================================================
# ============================================================================

ifeq ($(strip $(DEBUG)), 0)
106
       CPPFLAGS += -O3
107
else
Thomas Witkowski's avatar
Thomas Witkowski committed
108
       CPPFLAGS += -g -O0 -DDEBUG=1
109
110
111
112
113
114
115
116
117
118
endif

ifeq ($(strip $(USE_OPENMP)), 1)
	ifeq ($(strip $(USE_COMPILER)), gcc)
		CPPFLAGS += -fopenmp
	else
		CPPFLAGS += -openmp
	endif
endif

119
120
121
122
123
124
# ============================================================================
# ===== object directory =====================================================
# ============================================================================
ifeq ($(OBJDIR),)
        OBJDIR=.
endif
125
126
127
128
129
# ============================================================================
# ===== libtool linking ======================================================
# ============================================================================

LIBTOOL = $(AMDIS_DIR)/libtool
Thomas Witkowski's avatar
Thomas Witkowski committed
130
131
132
133
134
135

ifeq ($(strip $(USE_PARALLEL_AMDIS)), 1)
	LINK = $(LIBTOOL) --tag=mpiCC --mode=link $(COMPILE)
else
	LINK = $(LIBTOOL) --mode=link $(COMPILE)
endif
136
137
138
139
140
141
142
143
144

# ============================================================================
# ===== rules ================================================================
# ============================================================================

all : 
	make $(PROGRAMS)

clean: 
Backofen, Rainer's avatar
Backofen, Rainer committed
145
	-rm -rf $(OBJDIR)/*.o
146
147
148
	-rm -rf $(PROGRAMS)

.cc.o: $*.cc
149
	$(COMPILE) $(DEFS) $(INCLUDES) $(CPPFLAGS) -c -o $(OBJDIR)/$*.o $^ 
150
151
152