forked from async-mpi-benchmarks/interpol
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
44 lines (31 loc) · 1.21 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
# Macros
CC=mpicc
CFLAGS=-Wall -Wextra -g3 -I include -L interpol-rs/target/release -fPIC -shared
OFLAGS=-march=native -mtune=native -Os
INCLUDE=include
RS_SRC=interpol-rs/src
RS_LIB=interpol-rs/target/release
SRC=src
PWD=$(shell pwd)
.PHONY: build install uninstall test doc reset clean
build: libinterpol.so libinterpol-f.so
@export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(PWD)/interpol-rs/target/release/:$(PWD)
install: build
@cp libinterpol.so libinterpol-f.so interpol-rs/target/release/libinterpol_rs.so /usr/lib/
uninstall:
@rm /usr/lib/libinterpol.so /usr/lib/libinterpol-f.so /usr/lib/libinterpol_rs.so
libinterpol.so: $(RS_LIB)/libinterpol_rs.so $(SRC)/interpol-c.c
$(CC) $(CFLAGS) $(OFLAGS) $(SRC)/interpol-c.c -o $@ -linterpol_rs
libinterpol-f.so: $(RS_LIB)/libinterpol_rs.so $(SRC)/interpol-f.c
$(CC) $(CFLAGS) $(OFLAGS) $(SRC)/interpol-f.c -o $@ -linterpol_rs
$(RS_LIB)/libinterpol_rs.so: $(RS_SRC)/*.rs
@cd interpol-rs/ && cargo build --release
test: $(RS_SRC)/*.rs
@cd interpol-rs/ && cargo test
doc: $(RS_SRC)/*.rs
@cd interpol-rs/ && cargo doc --document-private-items --open
reset:
@rm -Rf libinterpol.so libinterpol-f.so
clean:
@cd interpol-rs/ && cargo clean
@rm -Rf libinterpol.so libinterpol-f.so