-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathMakefile
139 lines (94 loc) · 4.25 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
LIB=./lib
INCLUDE=./include
SRC=./src
OBJ=./obj
UTIL=util
CC=gcc
FLAGS= -O3 -Wall
INCFLAGS = -I$(INCLUDE) -I$(INCLUDE)/$(UTIL)
all: libOPF opf_split opf_accuracy opf_accuracy4label opf_train opf_classify opf_learn opf_distance opf_info opf_fold opf_merge opf_cluster opf_pruning statistics txt2opf opf2txt opf_check opf_normalize opfknn_train opfknn_classify opf2svm svm2opf kmeans
libOPF: libOPF-build
echo "libOPF.a built..."
libOPF-build: \
util \
$(OBJ)/OPF.o \
ar csr $(LIB)/libOPF.a \
$(OBJ)/common.o \
$(OBJ)/set.o \
$(OBJ)/gqueue.o \
$(OBJ)/realheap.o \
$(OBJ)/sgctree.o \
$(OBJ)/subgraph.o \
$(OBJ)/OPF.o \
$(OBJ)/OPF.o: $(SRC)/OPF.c
$(CC) $(FLAGS) -c $(SRC)/OPF.c $(INCFLAGS) \
-o $(OBJ)/OPF.o
opf_split: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_split.c -L./lib -o bin/opf_split -lOPF -lm
opf_accuracy: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_accuracy.c -L./lib -o bin/opf_accuracy -lOPF -lm
opf_accuracy4label: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_accuracy4label.c -L./lib -o bin/opf_accuracy4label -lOPF -lm
opf_train: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_train.c -L./lib -o bin/opf_train -lOPF -lm
opf_classify: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_classify.c -L./lib -o bin/opf_classify -lOPF -lm
opf_learn: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_learn.c -L./lib -o bin/opf_learn -lOPF -lm
opf_distance: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_distance.c -L./lib -o bin/opf_distance -lOPF -lm
opf_info: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_info.c -L./lib -o bin/opf_info -lOPF -lm
opf_fold: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_fold.c -L./lib -o bin/opf_fold -lOPF -lm
opf_merge: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_merge.c -L./lib -o bin/opf_merge -lOPF -lm
opf_cluster: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_cluster.c -L./lib -o bin/opf_cluster -lOPF -lm
statistics:
$(CC) $(FLAGS) tools/src/statistics.c -o tools/statistics -lm
txt2opf: libOPF
$(CC) $(FLAGS) $(INCFLAGS) tools/src/txt2opf.c -L./lib -o tools/txt2opf -lOPF -lm
opf_check: libOPF
$(CC) $(FLAGS) $(INCFLAGS) tools/src/opf_check.c -L./lib -o tools/opf_check -lOPF -lm
opf2txt: libOPF
$(CC) $(FLAGS) $(INCFLAGS) tools/src/opf2txt.c -L./lib -o tools/opf2txt -lOPF -lm
opf2svm: libOPF
$(CC) $(FLAGS) $(INCFLAGS) tools/src/opf2svm.c -L./lib -o tools/opf2svm -lOPF -lm
svm2opf: libOPF
$(CC) $(FLAGS) $(INCFLAGS) tools/src/svm2opf.c -L./lib -o tools/svm2opf -lOPF -lm
kmeans: libOPF
$(CC) $(FLAGS) $(INCFLAGS) tools/src/kmeans.c -L./lib -o tools/kmeans -lOPF -lm
opf_normalize: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_normalize.c -L./lib -o bin/opf_normalize -lOPF -lm
opfknn_train: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opfknn_train.c -L./lib -o bin/opfknn_train -lOPF -lm
opfknn_classify: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opfknn_classify.c -L./lib -o bin/opfknn_classify -lOPF -lm
opf_pruning: libOPF
$(CC) $(FLAGS) $(INCFLAGS) src/opf_pruning.c -L./lib -o bin/opf_pruning -lOPF -lm
util: $(SRC)/$(UTIL)/common.c $(SRC)/$(UTIL)/set.c $(SRC)/$(UTIL)/gqueue.c $(SRC)/$(UTIL)/realheap.c $(SRC)/$(UTIL)/sgctree.c $(SRC)/$(UTIL)/subgraph.c
$(CC) $(FLAGS) $(INCFLAGS) -c $(SRC)/$(UTIL)/common.c -o $(OBJ)/common.o
$(CC) $(FLAGS) $(INCFLAGS) -c $(SRC)/$(UTIL)/set.c -o $(OBJ)/set.o
$(CC) $(FLAGS) $(INCFLAGS) -c $(SRC)/$(UTIL)/gqueue.c -o $(OBJ)/gqueue.o
$(CC) $(FLAGS) $(INCFLAGS) -c $(SRC)/$(UTIL)/realheap.c -o $(OBJ)/realheap.o
$(CC) $(FLAGS) $(INCFLAGS) -c $(SRC)/$(UTIL)/sgctree.c -o $(OBJ)/sgctree.o
$(CC) $(FLAGS) $(INCFLAGS) -c $(SRC)/$(UTIL)/subgraph.c -o $(OBJ)/subgraph.o
## Compiling LibOPF with LibIFT
opf-ift: libOPF-ift
libOPF-ift: libOPF-ift-build
echo "libOPF.a built with IFT..."
libOPF-ift-build: \
OPF-ift.o \
ar csr $(LIB)/libOPF.a \
$(OBJ)/OPF.o \
OPF-ift.o: $(SRC)/OPF.c
$(CC) $(FLAGS) -c $(SRC)/OPF.c -I$(INCLUDE) -I$(IFT_DIR)/include \
-o $(OBJ)/OPF.o
## Cleaning-up
clean:
rm -f $(LIB)/lib*.a; rm -f $(OBJ)/*.o bin/* tools/opf_check tools/statistics tools/txt2opf tools/opf2txt tools/opf_check tools/opf2svm tools/svm2opf tools/kmeans
clean_results:
rm -f *.out *.opf *.acc *.time *.opf training.dat evaluating.dat testing.dat
clean_results_in_examples:
rm -f examples/*.out examples/*.opf examples/*.acc examples/*.time examples/*.opf examples/training.dat examples/evaluating.dat examples/testing.dat