-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
71 lines (50 loc) · 2.01 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
69
70
71
#CC := gcc
CC := mpicc
DBGFLAGS := -g -Wall -Werror -Wextra -Wshadow -Wunreachable-code \
-Wuninitialized -Wduplicated-cond -Wduplicated-branches -Wpedantic -m64 \
-I /usr/include -O3
RLSFLAGS := -O3 -DNDEBUG -I /usr/include
CFLAGS := -fopenmp -lmpi
DEPFLAGS = -MT $@ -MMD -MP -MF $*.Td
POSTCOMPILE = mv -f $*.Td $*.d && touch $@
ISDBGFLAG := $(filter test, $(MAKECMDGOALS))
REALFLAGS = $(if $(ISDBGFLAG), $(DBGFLAGS), $(RLSFLAGS))
OMPDIR := OMP
MPIDIR := MPI
OMMPPIDIR := parallel_OMP_MPI
OMPOBJ = $(OMPDIR)/exact_cover.o
MPIOBJ = $(MPIDIR)/exact_cover.o
OMMPPIOBJ = $(OMPMPIDIR)/exact_cover.o
OBJS = $(OMPOBJ) $(MPIOBJ) $(OMMPPIOBJ)
OMPMESOBJ = $(OMPDIR)/exact_cover_measure.o
MPIMESOBJ = $(MPIDIR)/exact_cover_measure.o
OMMPPIMESOBJ = $(OMPMPIDIR)/exact_cover_measure.o
OBJS = $(OMPMESOBJ) $(MPIMESOBJ) $(OMMPPIMESOBJ)
#COMPILE = $(CC) $(REALFLAGS) $(DEPFLAGS) $(TARGET_ARCH) $(CFLAGS)
COMPILE = $(CC) $(REALFLAGS) $(DEPFLAGS) $(TARGET_ARCH) $(CFLAGS)
OMPTRGT := $(OMPDIR)/exact_cover.exe
MPITRGT := $(MPIDIR)/exact_cover.exe
OMMPPITRGT := $(OMMPPIDIR)/exact_cover.exe
OMPMESTRGT := $(OMPDIR)/exact_cover_measure.exe
MPIMESTRGT := $(MPIDIR)/exact_cover_measure.exe
OMMPPIMESTRGT := $(OMMPPIDIR)/exact_cover_measure.exe
all: $(OMPTRGT) $(MPITRGT) $(OMMPPITRGT)
measures: $(OMPMESTRGT) $(MPIMESTRGT) $(OMMPPIMESTRGT)
%.exe: %.c %.d
$(COMPILE) -o $@ $<
$(POSTCOMPILE)
OMP/exact_cover_measure.exe: OMP/exact_cover_measure.c
$(COMPILE) -o $@ $<
$(POSTCOMPILE)
MPI/exact_cover_measure.exe: MPI/exact_cover_measure.c
$(COMPILE) -o $@ $<
$(POSTCOMPILE)
$(OMMPPIDIR)/exact_cover_measure.exe: $(OMMPPIDIR)/exact_cover_measure.c
$(COMPILE) -o $@ $<
$(POSTCOMPILE)
DEPFILES := $(OMPOBJ:%.o=%.d) $(MPIOBJ:%.o=%.d) $(OMMPPIOBJ:%.o=%.d) $(OMPMESOBJ:%o=%.d) $(MPIMESOBJ:%o=%.d) $(OMMPPIMESOBJ:%o=%.d)
$(DEPFILES):
include $(wildcard $(DEPFILES))
.PHONY: clean test all
clean:
rm -f $(OBJS) $(OMPTRGT) $(MPITRGT) $(OMMPPITRGT) $(OMPMESTRGT) $(MPIMESTRGT) $(OMMPPIMESTRGT)