-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmakefile
More file actions
112 lines (86 loc) · 3.04 KB
/
Copy pathmakefile
File metadata and controls
112 lines (86 loc) · 3.04 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
PWD=$(shell pwd)
TARGET ?= model
BUILD_DIR ?= builddir/test
SRC_BD ?= apps/udf_model
KOKKOS_FOLDER:=kokkos-5.1.1
CXX ?= c++
SRC := $(SRC_BD)/$(TARGET).cpp
OUT := $(BUILD_DIR)/lib$(TARGET).so
DEBUG_FLAGS := -g -O2 -DENABLE_KOKKOS_PROFILING -DDEBUG -DKOKKOS_ENABLE_DEBUG
RELEASE_FLAGS := -O3 -DNDEBUG
ADDITIONAL_FLAGS ?= ""
BIOMC_FLAGS := \
-DDECLARE_EXPORT_UDF \
-DUSE_UDF \
-DUSE_HIGHFIVE \
-DUSE_CEAREAL \
-DEIGEN_NO_CUDA=1 \
-DENABLE_KOKKOS_PROFILING \
$(ADDITIONAL_FLAGS)
ERROR_FLAGS := -Wall -Wextra -Wpedantic -Winvalid-pch -Wshadow \
-Wcast-align \
# -Werror
FLAGS := \
$(DEBUG_FLAGS) \
$(BIOMC_FLAGS)\
-fvisibility=hidden\
-fdiagnostics-color=always \
-D_GLIBCXX_ASSERTIONS=1 \
-D_FILE_OFFSET_BITS=64 \
$(ERROR_FLAGS)\
-std=c++20 \
-march=native -mtune=native \
-fPIC \
-pthread \
-fopenmp\
-isystem$(PWD)/subprojects/$(KOKKOS_FOLDER)/tpls/mdspan/include \
-isystem$(PWD)/subprojects/$(KOKKOS_FOLDER)/tpls/desul/include \
-fno-rtti
INCLUDES := \
-I$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/__CMake_build \
-I$(PWD)/subprojects/$(KOKKOS_FOLDER) \
-I$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/__CMake_build/core/src \
-I$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/__CMake_build/containers/src \
-I$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/__CMake_build/algorithms/src \
-I$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/__CMake_build/simd/src \
-I$(PWD)/subprojects/$(KOKKOS_FOLDER)/core/src \
-I$(PWD)/subprojects/$(KOKKOS_FOLDER)/containers/src \
-I$(PWD)/subprojects/$(KOKKOS_FOLDER)/algorithms/src \
-I$(PWD)/subprojects/$(KOKKOS_FOLDER)/simd/src \
-I$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)\
-I$(PWD)/subprojects/$(KOKKOS_FOLDER)/tpls/desul/include \
-I$(PWD)/subprojects/$(KOKKOS_FOLDER)/tpls/mdspan/include \
-I$(PWD)/subprojects/kokkos_sampling/public \
-I$(PWD)/subprojects/dynlib/public \
-I$(PWD)/apps/udf_model \
-I$(BUILD_DIR)/apps/udf_model \
-I$(PWD)/apps/libs/models/public \
-I$(PWD)/apps/libs/models/ext \
-I$(PWD)/apps/libs/mc/public \
-I$(PWD)/apps/libs/common/public \
-I$(PWD)/apps/autogenerated \
-I$(BUILD_DIR)/apps/autogenerated \
LDFLAGS := \
-rdynamic -Wl,--as-needed -Wl,--no-undefined -shared -fPIC \
-Wl,-soname,lib$(TARGET).so \
-Wl,--start-group \
$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/libkokkoscore.a \
$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/libkokkossimd.a \
$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/libkokkoscontainers.a \
$(BUILD_DIR)/subprojects/$(KOKKOS_FOLDER)/libkokkosalgorithms.a \
$(BUILD_DIR)/apps/libs/mc/libbiocma_mcst_mc.a \
$(BUILD_DIR)/apps/libs/common/libbiocma_mcst_common.a \
/usr/lib/x86_64-linux-gnu/libhwloc.so \
-ldl \
-Wl,--end-group \
-flto \
-fPIC \
-fopenmp -pthread
.PHONY: all
OBJ = $(BUILD_DIR)/libudf_model_$(TARGET).o
LIB = $(BUILD_DIR)/libudf_model_$(TARGET).so
all: $(LIB)
$(OBJ): $(SRC)
$(CXX) $(INCLUDES) $(FLAGS) -o $@ -c $<
$(LIB): $(OBJ)
$(CXX) -o $@ $^ $(LDFLAGS)