-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
61 lines (45 loc) · 1.5 KB
/
makefile
File metadata and controls
61 lines (45 loc) · 1.5 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
CXX = g++
CXXFLAGS = -std=c++17 -O3 -march=native
LIBS = -lm
LANIAKEA_DIR = Build/Laniakea
SOLITON_DIR = Build/SolitonSim
BIN_DIR = Bin
LANIAKEA_SRC_DIR = $(LANIAKEA_DIR)/Source
LANIAKEA_INC_DIR = $(LANIAKEA_DIR)/Include
SOLITON_SRC_DIR = $(SOLITON_DIR)/Source
SOLITON_INC_DIR = $(SOLITON_DIR)/Include
LANIAKEA_EXE = $(BIN_DIR)/Laniakea
SOLITON_EXE = $(BIN_DIR)/SolitonSim
LANIAKEA_SRCS = \
$(LANIAKEA_SRC_DIR)/uldm.cpp \
$(LANIAKEA_SRC_DIR)/vec3.cpp \
$(LANIAKEA_SRC_DIR)/solver.cpp \
$(LANIAKEA_SRC_DIR)/parser.cpp \
$(LANIAKEA_SRC_DIR)/ffmpeg.cpp
LANIAKEA_CXXFLAGS = $(CXXFLAGS) -fopenmp -DFFMPEG -I$(LANIAKEA_INC_DIR)
LANIAKEA_LDFLAGS = -L/usr/local/lib
LANIAKEA_LIBS = -lfftw3 -lfftw3_omp -fopenmp $(LIBS)
SOLITON_SRCS = \
$(SOLITON_SRC_DIR)/soliton.cpp \
$(SOLITON_SRC_DIR)/vec4.cpp \
$(SOLITON_SRC_DIR)/integrator.cpp
SOLITON_CXXFLAGS = $(CXXFLAGS) -DTOL=1e-12 -I$(SOLITON_INC_DIR)
SOLITON_LIBS = $(LIBS)
.PHONY: all clean Laniakea SolitonSim run-utils
all: Laniakea SolitonSim run-utils
Laniakea: $(LANIAKEA_EXE)
$(LANIAKEA_EXE): $(LANIAKEA_SRCS)
mkdir -p $(BIN_DIR)
$(CXX) $(LANIAKEA_CXXFLAGS) $^ -o $@ \
$(LANIAKEA_LDFLAGS) $(LANIAKEA_LIBS)
SolitonSim: $(SOLITON_EXE)
$(SOLITON_EXE): $(SOLITON_SRCS)
mkdir -p $(BIN_DIR)
$(CXX) $(SOLITON_CXXFLAGS) $^ -o $@ \
$(SOLITON_LIBS)
run-utils:
printf '#!/bin/sh\nexec ./Bin/Laniakea "$$@"\n' > run-lnk
printf '#!/bin/sh\nexec ./Bin/SolitonSim "$$@"\n' > run-sltn
chmod +x run-lnk run-sltn
clean:
rm -rf $(BIN_DIR) run-lnk run-sltn