-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
executable file
·77 lines (66 loc) · 1.77 KB
/
Copy pathMakefile
File metadata and controls
executable file
·77 lines (66 loc) · 1.77 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
PREFIX=/Users/amedhi/Projects/Codes/SimpleVMC
# Libraries
EIGEN_INCLUDE=-I/usr/local/include
EIGEN_USE_MKL=EIGEN_USE_MKL_ALL
MKL_INCLUDE=-I/opt/intel/mkl/include/intel64/lp64
MKL_LDFLAGS=-L/opt/intel/mkl/lib
MKL_LIBS=-lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
INCLUDE = $(EIGEN_INCLUDE)
# Compiler
CXX=g++ -std=c++11
CPPFLAGS= #-D$(EIGEN_USE_MKL)
OPTFLAGS=-Wall -O3
CXXFLAGS=$(CPPFLAGS) $(OPTFLAGS) $(INCLUDE)
LDFLAGS=$(MKL_LDFLAGS)
LIBS=$(MKL_LIBS)
BUILD_DIR=$(PREFIX)/build
#-------------------------------------------------------------
# Source files
SRC = main.cpp
SRC+= lattice.cpp
SRC+= random.cpp
SRC+= basis.cpp
SRC+= wavefunction.cpp
SRC+= sysconfig.cpp
SRC+= mcdata/mcdata.cpp
SRC+= mcdata/mc_observable.cpp
SRC+= vmc.cpp
SRCS=$(addprefix src/,$(SRC))
#-------------------------------------------------------------
# Headers
HDR = constants.h
HDR+= lattice.h
HDR+= random.h
HDR+= basis.h
HDR+= matrix.h
HDR+= wavefunction.h
HDR+= sysconfig.h
HDR+= mcdata/mcdata.h
HDR+= mcdata/mc_observable.h
HDR+= vmc.h
HDRS=$(addprefix src/,$(HDR))
#-------------------------------------------------------------
# Target
TAGT=a.out
# All .o files go to BULD_DIR
OBJS=$(patsubst %.cpp,$(BUILD_DIR)/%.o,$(SRCS))
# GCC/Clang will create these .d files containing dependencies.
DEPS=$(patsubst %.o,%.d,$(OBJS))
.PHONY: all
all: $(TAGT) #$(INCL_HDRS)
$(TAGT): $(OBJS)
$(CXX) -o $(TAGT) $(OBJS) $(LDFLAGS) $(LIBS)
%.o: %.cpp
$(CXX) -c $(CXXFLAGS) -o $@ $<
# Include all .d files
-include $(DEPS)
$(BUILD_DIR)/%.o: %.cpp
@mkdir -p $(@D)
@echo "$(CXX) -c $(CXXFLAGS) -o $(@F) $(<F)"
@$(CXX) -MMD -c $(CXXFLAGS) -o $@ $<
.PHONY: clean
clean:
@echo "Removing temporary files in the build directory"
@rm -f $(OBJS) $(DEPS)
@echo "Removing $(TAGT)"
@rm -f $(TAGT)