-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
75 lines (50 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
69
70
71
72
73
74
75
LIBIDIR := ./lib/inc
LIBSDIR := ./lib/src
SRCIDIR := ./inc
SRCSDIR := ./src
PCGDIR := ./lib/src/libpcg_src
CFLAGS := -I$(LIBIDIR) -I$(SRCIDIR)
CC := gcc
ifeq ($(DEBUG),yes)
OPTIMIZE_FLAG := -ggdb3 -DDEBUG
else ifeq ($(NOOP),yes)
OPTIMIZE_FLAG :=
else
OPTIMIZE_FLAG := -O2 -DNDEBUG
endif
ifeq ($(UNIFORM),yes)
TYPE_FLAG :=
EXE := mult-ops-uniform-KRR
else
TYPE_FLAG := -DVARSIZE
EXE := mult-ops-variable-KRR
endif
LIBSRC := $(wildcard $(LIBSDIR)/*.c)
LIBOBJ := $(LIBSRC:$(LIBSDIR)/%.c=$(LIBSDIR)/%.o)
SRC := $(SRCSDIR)/KRR_mult_ops.c
OBJ := $(SRCSDIR)/KRR_mult_ops.o
PCGLIB := $(LIBSDIR)/libpcg_random.a
# all: CACHE
# CACHE: $(MAIN)
# $(CC) $(CFLAGS) $(MAIN) $(DOTO) -g -lm -o back_KRR_uniform
# VAR:
# $(CC) $(CFLAGS) -DVARSIZE $(MAIN) $(DOTO) -O2 -lm -o back_KRR_variable
# K_EXP: $(MAIN)
# $(CC) $(CFLAGS) -DK_EXP=$(K) $(MAIN) $(DOTO) -O2 -lm -o back_KRR_uniform_K$(K)
# VAR_K_EXP: $(MAIN)
# $(CC) $(CFLAGS) -DVARSIZE -DK_EXP=$(K) $(MAIN) $(DOTO) -O2 -lm -o back_KRR_variable_K$(K)
all: $(PCGDIR) $(EXE)
$(EXE): $(LIBOBJ) $(OBJ) $(SRCSDIR)/KRR_main.c
$(CC) $(TYPE_FLAG) $(CFLAGS) $(OPTIMIZE_FLAG) $^ $(PCGLIB) -lm -o $@
$(OBJ): $(SRC)
$(CC) $(TYPE_FLAG) $(CFLAGS) $(OPTIMIZE_FLAG) -c $< -o $@
$(LIBSDIR)/%.o: $(LIBSDIR)/%.c
$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -c $< -o $@
$(PCGDIR):
$(MAKE) -C $@
#KRR.o
#spatial.o pqueue.o murmur3.o utils.o
clean:
rm -f $(LIBSDIR)/*.o $(LIBSDIR)/*.a $(SRCSDIR)/*.o
$(MAKE) -C $(PCGDIR) clean
.PHONY: all $(PCGDIR)