-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
68 lines (59 loc) · 1.46 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
#!/usr/bin/make -f
CC = clang
MKDIR = mkdir -p
CFLAGS = \
-std=c99 \
-m64 \
-O4 \
-g \
-g3 \
-I$(INCLUDESDIR) \
-Wall \
-Wextra \
-Wformat \
-Wno-unused-parameter \
-Werror=format-security
LDFLAGS = -lm
LIBDIR = ./lib
SRCDIR = ./src
BINDIR = ./bin
INCLUDESDIR = ./include
APPSERNAME = jacobi-serial
APPPARNAME = jacobi-parallel
APPUTILS = jacobiutils
.PHONY: all
all: clean $(APPUTILS) makebindir $(APPSERNAME) $(APPPARNAME) doc
$(APPUTILS): \
$(LIBDIR)/matrixutils.c \
$(INCLUDESDIR)/matrixutils.h \
$(LIBDIR)/jacobi.c \
$(INCLUDESDIR)/jacobi.h \
$(LIBDIR)/mpiutils.c \
$(INCLUDESDIR)/mpiutils.h
-rm -f $(LIBDIR)/lib$(APPUTILS).a
$(CC) $(CFLAGS) -c $(LIBDIR)/*.c
mv *.o $(LIBDIR)/
ar -cvq $(LIBDIR)/lib$(APPUTILS).a $(LIBDIR)/*.o
rm $(LIBDIR)/*.o
.PHONY: makebindir
makebindir: $(BINDIR)/
$(BINDIR)/:
$(MKDIR) $@
.PHONY: $(APPSERNAME)
$(APPSERNAME): $(LIBDIR)/lib$(APPUTILS).a $(SRCDIR)/$(APPSERNAME).c
$(CC) $(CFLAGS) $(SRCDIR)/$(APPSERNAME).c $(LDFLAGS) -L$(LIBDIR) \
-l$(APPUTILS) -o $(BINDIR)/$(APPSERNAME)
.PHONY: $(APPPARNAME)
$(APPPARNAME): $(LIBDIR)/lib$(APPUTILS).a $(SRCDIR)/$(APPPARNAME).c
mpicc $(CFLAGS) -no-pie $(SRCDIR)/$(APPPARNAME).c $(LDFLAGS) -L$(LIBDIR) \
-l$(APPUTILS) -o $(BINDIR)/$(APPPARNAME)
.PHONY: doc
doc: Doxyfile
-doxygen Doxyfile
-moxygen -g -a -o ./doc/jacobi-mpi-%s.md ./doc/xml/
#-rm -r doc/xml/
clean:
-rm $(BINDIR)/$(APPSERNAME)
-rm $(BINDIR)/$(APPPARNAME)
-rm -r ./doc/xml/
-rm -r ./doc/*.md