-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
107 lines (89 loc) · 2.69 KB
/
Makefile
File metadata and controls
107 lines (89 loc) · 2.69 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
##########################################
# CODE DIRECTORIES AND FILES
##########################################
mkfile_path := $(abspath $(firstword $(MAKEFILE_LIST)))
mkfile_dir := $(dir $(mkfile_path))
BIN_DIR := ./bin
SRC_DIR := ./src
LIB_DIR := ./lib
BUILD_DIR = ./obj
LIBS := mod_constants.f90 \
mod_misc.f90 \
mod_misc_maths.f90 \
mod_misc_linalg.f90 \
mod_tools_infile.f90 \
mod_rw_geom.f90 \
mod_edit_geom.f90 \
mod_sym.f90
OBJS := $(addprefix $(LIB_DIR)/,$(LIBS))
#$(info VAR is $(OBJS))
SRCS := io.F90 \
aspect.f90 \
mod_help.f90 \
mod_intf_identifier.f90 \
mod_plane_matching.f90 \
mod_lat_compare.f90 \
mod_swapping.f90 \
mod_shifting.f90 \
default_infile.f90 \
inputs.f90 \
interfaces.f90 \
main.f90
SRCS := $(OBJS) $(SRCS)
OBJS := $(addprefix $(SRC_DIR)/,$(SRCS))
##########################################
# COMPILER CHOICE SECTION
##########################################
FFLAGS = -O2
#PPFLAGS = -cpp
FC=gfortran
ifeq ($(FC),ifort)
MPIFLAG = -qopenmp
MODULEFLAG = -module
DEVFLAGS = -check all -warn #all
DEBUGFLAGS = -check all -fpe0 -warn -tracekback -debug extended
else
MPIFLAG = -fopenmp
MODULEFLAG = -J
DEVFLAGS = -g -fbacktrace -fcheck=all
DEBUGFLAGS = -fbounds-check -Wall -Wno-maybe-uninitialized
endif
##########################################
# LAPACK SECTION
##########################################
MKLROOT?="/usr/local/intel/parallel_studio_xe_2017/compilers_and_libraries_2017/linux/mkl/lib/intel64_lin"
LLAPACK = $(MKLROOT)/libmkl_lapack95_lp64.a \
-Wl,--start-group \
$(MKLROOT)/libmkl_intel_lp64.a \
$(MKLROOT)/libmkl_sequential.a \
$(MKLROOT)/libmkl_core.a \
-Wl,--end-group \
-lpthread
#$(MKLROOT)/libmkl_scalapack_lp64.a \
#$(MKLROOT)/libmkl_solver_lp64_sequential.a \
##########################################
# COMPILATION SECTION
##########################################
INSTALL_DIR?=$(HOME)/bin
ARTEMIS = artemis
programs = $(BIN_DIR)/$(ARTEMIS)
.PHONY: all debug install uninstall dev mpi clean
all: $(programs)
$(BIN_DIR):
mkdir -p $@
$(BUILD_DIR):
mkdir -p $@
$(BIN_DIR)/$(ARTEMIS): $(OBJS) | $(BIN_DIR) $(BUILD_DIR)
$(FC) $(MODULEFLAG) $(BUILD_DIR) $(OBJS) -o $@
install: $(OBJS) | $(INSTALL_DIR) $(BUILD_DIR)
$(FC) $(MODULEFLAG) $(BUILD_DIR) $(OBJS) -o $(INSTALL_DIR)/$(ARTEMIS)
debug: $(OBJS) | $(BIN_DIR) $(BUILD_DIR)
$(FC) $(DEBUGFLAGS) $(MODULEFLAG) $(BUILD_DIR) $(OBJS) -o $(programs)
dev: $(OBJS) | $(BIN_DIR) $(BUILD_DIR)
$(FC) $(DEVFLAGS) $(MODULEFLAG) $(BUILD_DIR) $(OBJS) -o $(programs)
mpi: $(OBJS) | $(BIN_DIR) $(BUILD_DIR)
$(FC) $(MPIFLAG) $(MODULEFLAG) $(BUILD_DIR) $(OBJS) -o $(programs)
clean: $(BUILD_DIR) $(BIN_DIR)
rm -r $(BUILD_DIR)/ $(BIN_DIR)/
uninstall: $(INSTALL_DIR)/$(ARTEMIS)
rm $(INSTALL_DIR)/$(ARTEMIS)