-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
41 lines (27 loc) · 920 Bytes
/
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
.PHONY: run all
RESULT_NAME = $(shell hostname)
CXX=icpc
FC=ifort
LD=ifort
CXXFLAGS?=-O3 -std=c++11 -pthread -lbenchmark
FCFLAGS?= -O3 -mkl=sequential
LDFLAGS?= -O3 -pthread -lbenchmark -nofor_main -lstdc++ -mkl=sequential
SRC_DIR := ./src/level1
OBJ_DIR := ./obj
CPP_SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
CPP_OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.cpp.o,$(CPP_SRC_FILES))
FC_SRC_FILES := $(wildcard $(SRC_DIR)/*.f90)
FC_OBJ_FILES := $(patsubst $(SRC_DIR)/%.f90,$(OBJ_DIR)/%.f90.o,$(FC_SRC_FILES))
all: main
main: $(CPP_OBJ_FILES) $(FC_OBJ_FILES) $(OBJ_DIR)/main.o
$(LD) -o $@ $^ $(LDFLAGS)
$(OBJ_DIR)/main.o: ./src/main.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
$(OBJ_DIR)/%.cpp.o: $(SRC_DIR)/%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
$(OBJ_DIR)/%.f90.o: $(SRC_DIR)/%.f90
$(FC) $(FCFLAGS) -c -o $@ $<
run: main
./main
results: main
./main --benchmark_format=csv > results/$(RESULT_NAME).csv