-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
93 lines (71 loc) · 2.61 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
CXX = g++
RM = rm -rf
CXXFLAGS = -Wall -O3 -std=c++17
LDFLAGS = -fopenmp -lopenblas
BUILDDIR = build
LIBSOURCEDIR = negele
EXECSOURCEDIR = exec
HEADERDIR = ./
# TESTSOURCEDIR = tests
# TESTEXECDIR = tests/build
# TESTCATCHDIR = tests/catch_build
# TEST3BODYSOURCEDIR = tests3body
# TEST3BODYEXECDIR = tests3body/build
# DATADIR = tests/data
# DATA3BODYDIR = tests3body/data
LIBSOURCES = $(shell find $(LIBSOURCEDIR) -name '*.cpp')
LIBOBJECTS = $(addprefix $(BUILDDIR)/,$(LIBSOURCES:%.cpp=%.o))
EXECSOURCES = $(shell find $(EXECSOURCEDIR) -name '*.cpp')
EXECBINARIES = $(addprefix $(BUILDDIR)/,$(EXECSOURCES:%.cpp=%.out))
# TESTSOURCES = $(shell find $(TESTSOURCEDIR) -name '*.cpp')
# TESTBINARIES = $(addprefix $(TESTEXECDIR)/,$(TESTSOURCES:%.cpp=%.out))
# TEST3BODYSOURCES = $(shell find $(TEST3BODYSOURCEDIR) -name '*.cpp')
# TEST3BODYBINARIES = $(addprefix $(TEST3BODYEXECDIR)/,$(TEST3BODYSOURCES:%.cpp=%.out))
# DATASOURCES = $(shell find $(DATADIR) -name '*.gz')
# DATAUNPACKED = $(DATASOURCES:%.gz=%)
# DATA3BODYSOURCES = $(shell find $(DATA3BODYDIR) -name '*.gz')
# DATA3BODYUNPACKED = $(DATA3BODYSOURCES:%.gz=%)
# EXTLIBCATCH = $(TESTCATCHDIR)/main.o
# EXTLIBWIGNER = lib/wigxjpf/libwigxjpf.a
# LIBS = $(EXTLIBCATCH) $(EXTLIBWIGNER)
all: bin
bin: $(EXECBINARIES)
# test: test_bin
# for test in $(TESTBINARIES); do echo $$test; $$test; done
# test3body: test3body_bin
# for test in $(TEST3BODYBINARIES); do echo $$test; $$test; done
# test_bin: $(TESTBINARIES) $(DATAUNPACKED)
# test3body_bin: $(TEST3BODYBINARIES) $(DATA3BODYUNPACKED)
.SECONDARY:
$(BUILDDIR)/%.out: %.cpp $(LIBOBJECTS)
@mkdir -p $(@D)
$(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -I$(HEADERDIR) -o $@
$(BUILDDIR)/%.o: %.cpp
@mkdir -p $(@D)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -I$(HEADERDIR) -c $< -o $@
# $(TESTEXECDIR)/%.out: %.cpp $(TESTCATCHDIR)/main.o $(LIBOBJECTS)
# @mkdir -p $(@D)
# $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -I$(HEADERDIR) -o $@
# $(TEST3BODYEXECDIR)/%.out: %.cpp $(TESTCATCHDIR)/main.o $(LIBOBJECTS)
# @mkdir -p $(@D)
# $(CXX) $^ $(CXXFLAGS) $(LDFLAGS) -I$(HEADERDIR) -o $@
# $(TESTCATCHDIR)/main.o: $(TESTSOURCEDIR)/main.cc
# @mkdir -p $(@D)
# $(CXX) $(CXXFLAGS) $(LDFLAGS) -I$(HEADERDIR) -c $< -o $@
# $(DATADIR)/%: $(DATADIR)/%.gz
# gunzip -c $< > $@
# $(DATA3BODYDIR)/%: $(DATA3BODYDIR)/%.gz
# gunzip -c $< > $@
clean:
# $(RM) $(DATAUNPACKED)
# $(RM) $(DATA3BODYUNPACKED)
$(RM) $(LIBOBJECTS)
# $(RM) $(TESTBINARIES)
# $(RM) $(TEST3BODYBINARIES)
$(RM) $(EXECBINARIES)
# clean_lib:
# $(RM) $(LIBS)
# lib/wigxjpf/libwigxjpf.a:
# make -C lib/wigxjpf/ clean
# make -C lib/wigxjpf/
# cp lib/wigxjpf/lib/libwigxjpf.a lib/wigxjpf/