forked from hxmhuang/OpenArray_Dev
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile.linux-intel
More file actions
124 lines (92 loc) · 2.87 KB
/
makefile.linux-intel
File metadata and controls
124 lines (92 loc) · 2.87 KB
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
116
117
118
119
120
121
122
name = main
#if you put the exteranl libaray in one directory
EXT_INCLUDE = $(addprefix -I, $(shell find ${EXT_PATH}/include -maxdepth 1 -type d))
EXT_LIB = -L${EXT_PATH}/lib/
JIT_LIB = ${EXT_PATH}/lib/
#if you put the external library seperately in different directories.
#use the following configureaton
# EXT_INC = -I${PNETCDF_INC} -I${ARMA_INC} -I${BOOST_INC} -I${GTEST_INC} -I${JIT_INC}
# EXT_LIB = -L${PNETCDF_LIB} -L${ARMA_LIB} -L${BOOST_LIB} -I${GTEST_LIB} -L${JIT_LIB}
EXT_LIB_LINK = -lpnetcdf -lboost_program_options -lboost_filesystem \
-lboost_system -ldl -llapack -lblas -lgtest -ljit \
-Wl,-rpath=${JIT_LIB}
debug:
@echo ${EXT_INCLUDE}
FC = mpiifort
CC = mpiicc
CXX = mpiicpc
FCFLAGS =
CXXFLAGS = -fPIC --std=c++0x -Werror=return-type
CFLAGS = -Werror=return-type
LIBS = -lstdc++ ${EXT_LIB} ${EXT_LIB_LINK}
OBJS = Range.o Box.o Partition.o Array.o \
Internal.o Function.o Kernel.o Operator.o \
Node.o IO.o
OBJS_UTILS = $(addprefix ./utils/, calcTime.o gettimeofday.o \
utils.o)
OBJS_C_INTERFACE = $(addprefix ./c-interface/, c_oa_type.o c_oa_utils.o)
OBJ_FORTRAN = ${OBJS} ${OBJS_UTILS} ${OBJS_C_INTERFACE} \
$(addprefix ./fortran/, oa_type.o oa_utils.o fortran_main.o)
OBJ_MAIN = ${OBJS} ${OBJS_UTILS} ${OBJS_C_INTERFACE} main.o
OBJ_TEST = ${OBJS} ${OBJS_UTILS} \
$(addprefix ./unittest/, test_array.o gtest_main.o)
OBJ_TEST_PERF = ${OBJS} ${OBJS_UTILS} \
$(addprefix ./unittest/, test_perf.o)
.DEFAULT_GOAL := all
MAKEFILE = makefile.linux-intel
%.o: %.cpp
${CXX} ${EXT_INCLUDE} -c $(CXXFLAGS) $< -o $@
%.o: %.c
${CXX} ${EXT_INCLUDE} -c $(CFLAGS) $< -o $@
%.o: %.F90
${FC} -c $< -o $@
all:
@rm -rf main
@echo "Cleaning..."
@mkdir -p build 2>/dev/null
@./pre.sh
@cd build && make clean -j -f ${MAKEFILE}
@echo "Cleaning done."
@cd build && make main -j8 -f ${MAKEFILE} 2>/dev/null
cp build/main ./
quick:
@rm -rf ${name}
@echo "Cleaning..."
@mkdir -p build 2>/dev/null
@./test.sh
@cd build
@echo "Cleaning done."
@cd build && make ${name} -j8 -f ${MAKEFILE}
@cp build/${name} ./
@mpirun -n 4 ./${name} 4 4 4
main: ${OBJ_MAIN}
-${CXX} -rdynamic -o main ${OBJ_MAIN} ${LIBS}
testall:
@rm -rf main
@echo "Cleaning..."
@mkdir -p build 2>/dev/null
@./pre.sh
@cd build && make clean
@echo "Cleaning done."
@cd build && make testall_main -j8 -f ${MAKEFILE}
@cp build/testall_main ./
@mpirun -np 2 ./testall_main
testall_main : ${OBJ_TEST}
-${CXX} -o testall_main ${OBJ_TEST} ${LIBS}
testfortran:
@rm -rf fortran_main
@echo "Cleaning..."
@mkdir -p build 2>/dev/null
@./pre.sh
@cd build && make clean
@echo "Cleaning done."
@cd build && make fortran_main -j8 -f ${MAKEFILE}
@cp build/fortran_main ./
@mpirun -n 4 ./fortran_main
fortran_main : ${OBJ_FORTRAN}
-${CXX} -o fortran_main ${OBJ_FORTRAN} ${EXT_LIB_LINK}
small:
@make all -j8 -f ${MAKEFILE}
@mpirun -n 4 ./main 4 3 2
clean:
@rm -rf *.o 2>/dev/null