File: Makefile

package info (click to toggle)
libocas 0.97%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,764 kB
  • sloc: ansic: 7,956; makefile: 105; sh: 7
file content (112 lines) | stat: -rw-r--r-- 6,912 bytes parent folder | download | duplicates (4)
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
MEXDETECTED := $(shell mex -h >/dev/null 2>&1 && echo yes)
MEX := mex
MEXFLAGS := $(shell if uname -m | grep -q x86_64 ; then echo -largeArrayDims ; fi)
MEXSUFFIX := $(shell if uname -m | grep -q x86_64 ; then echo mexa64 ; else echo mexglx ; fi)
CC := gcc

CFLAGS +=
LDFLAGS +=
LIBS += -lm

# Libraries must not be compiled/linked with -pie, -fpie or -FPIE
LIB_CFLAGS = $(filter-out -fPIE,$(CFLAGS)) -fPIC
LIB_LDFLAGS = $(filter-out -fPIE, $(filter-out -pie,$(LDFLAGS)))
LIB_LIBS = $(LIBS)

PROG_CFLAGS = $(CFLAGS)
PROG_LDFLAGS = $(LDFLAGS) -L.
PROG_LIBS = $(LIBS) -lpthread -locas

# The real LVER/LSUBVER should be passed on by debian/rules
LVER ?= 0
LSUBVER ?= 0
LIBFILE = libocas.so.$(LVER).$(LSUBVER)

bindir ?= /usr/bin/
libdir ?= /usr/lib/
bindest = $(DESTDIR)$(bindir)
libdest = $(DESTDIR)$(libdir)

ifeq (yes,$(MEXDETECTED))
all: svmocas_nnw.$(MEXSUFFIX) svmocas.$(MEXSUFFIX) svmocas_light.$(MEXSUFFIX) linclassif_light.$(MEXSUFFIX) libocas.so svmocas msvmocas linclassif msvmocas.$(MEXSUFFIX) msvmocas_light.$(MEXSUFFIX) compute_auc.$(MEXSUFFIX) svmocas_lbp.$(MEXSUFFIX) svmocas_bool.$(MEXSUFFIX) lbppyr_features.$(MEXSUFFIX) load_svmlight_file.$(MEXSUFFIX)

compute_auc.$(MEXSUFFIX): compute_auc_mex.c libocas.h ocas_helper.h ocas_helper.c version.h
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output compute_auc.$(MEXSUFFIX) compute_auc_mex.c ocas_helper.c lib_svmlight_format.c

svmocas.$(MEXSUFFIX): libocas.c libocas.h libqp_splx.c libqp.h svmocas_mex.c lib_svmlight_format.c lib_svmlight_format.h ocas_helper.c ocas_helper.h features_int8.h features_int8.c features_double.h features_double.c features_single.h features_single.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output svmocas.$(MEXSUFFIX) svmocas_mex.c ocas_helper.c lib_svmlight_format.c features_int8.c features_double.c features_single.c libocas.c libqp_splx.c

svmocas_nnw.$(MEXSUFFIX): libocas.c libocas.h libqp_splx.c libqp.h svmocas_nnw_mex.c lib_svmlight_format.c lib_svmlight_format.h ocas_helper.c ocas_helper.h features_int8.h features_int8.c features_double.h features_double.c features_single.h features_single.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output svmocas_nnw.$(MEXSUFFIX) svmocas_nnw_mex.c lib_svmlight_format.c ocas_helper.c features_int8.c features_double.c features_single.c libocas.c libqp_splx.c

svmocas_light.$(MEXSUFFIX): libocas.c libocas.h libqp_splx.c libqp.h svmocas_light_mex.c lib_svmlight_format.c lib_svmlight_format.h ocas_helper.c ocas_helper.h features_double.h features_double.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output svmocas_light.$(MEXSUFFIX) svmocas_light_mex.c lib_svmlight_format.c ocas_helper.c features_double.c libocas.c libqp_splx.c
		
linclassif_light.$(MEXSUFFIX): linclassif_light_mex.c lib_svmlight_format.c lib_svmlight_format.h ocas_helper.c ocas_helper.h
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output linclassif_light.$(MEXSUFFIX) linclassif_light_mex.c lib_svmlight_format.c ocas_helper.c

msvmocas.$(MEXSUFFIX): libocas.c libocas.h libqp_splx.c libqp.h msvmocas_mex.c lib_svmlight_format.c lib_svmlight_format.h ocas_helper.c ocas_helper.h features_double.h features_double.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output msvmocas.$(MEXSUFFIX) msvmocas_mex.c lib_svmlight_format.c ocas_helper.c features_double.c libocas.c libqp_splx.c

msvmocas_light.$(MEXSUFFIX): libocas.c libocas.h libqp_splx.c libqp.h msvmocas_light_mex.c lib_svmlight_format.c lib_svmlight_format.h ocas_helper.c ocas_helper.h features_double.h features_double.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output msvmocas_light.$(MEXSUFFIX) msvmocas_light_mex.c lib_svmlight_format.c ocas_helper.c features_double.c libocas.c libqp_splx.c
		
lbppyr.$(MEXSUFFIX): lbppyr_mex.c
		$(MEX) $(MEXFLAGS) -O -output lbppyr.$(MEXSUFFIX) lbppyr_mex.c 	

svmocas_lbp.$(MEXSUFFIX): libocas.c libocas.h libqp_splx.c libqp.h svmocas_lbp_mex.c ocas_lbp_helper.c ocas_lbp_helper.h liblbp.h liblbp.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output svmocas_lbp.$(MEXSUFFIX) svmocas_lbp_mex.c ocas_lbp_helper.c  libocas.c libqp_splx.c liblbp.c

svmocas_bool.$(MEXSUFFIX): libocas.c libocas.h libqp_splx.c libqp.h svmocas_bool_mex.c features_bool.c features_bool.h liblbp.h liblbp.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output svmocas_bool.$(MEXSUFFIX) svmocas_bool_mex.c features_bool.c ocas_helper.c lib_svmlight_format.c libocas.c libqp_splx.c 

lbppyr_features.$(MEXSUFFIX): lbppyr_features_mex.c liblbp.c liblbp.h
		$(MEX) -g $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output lbppyr_features.$(MEXSUFFIX) lbppyr_features_mex.c liblbp.c

lbpfilter.$(MEXSUFFIX): lbpfilter_mex.c
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output lbpfilter.$(MEXSUFFIX) lbpfilter_mex.c

load_svmlight_file.$(MEXSUFFIX): load_svmlight_file.c lib_svmlight_format.c lib_svmlight_format.h
		$(MEX) $(MEXFLAGS) -DLIBOCAS_MATLAB -O -output load_svmlight_file.$(MEXSUFFIX) load_svmlight_file.c lib_svmlight_format.c

else 
all: $(LIBFILE) svmocas msvmocas linclassif libocas.a
endif

svmocas:	svmocas.c lib_svmlight_format.c sparse_mat.c ocas_helper.c ocas_helper.h libocas.h sparse_mat.h features_double.h features_double.c version.h $(LIBFILE)
		$(CC) $(CPPFLAGS) $(PROG_CFLAGS) $(PROG_LDFLAGS) -o $@ svmocas.c lib_svmlight_format.c sparse_mat.c ocas_helper.c features_double.c $(PROG_LIBS)

msvmocas:	msvmocas.c lib_svmlight_format.c sparse_mat.c ocas_helper.c ocas_helper.h libocas.h sparse_mat.h features_double.h features_double.c version.h $(LIBFILE)
		$(CC) $(CPPFLAGS) $(PROG_CFLAGS) $(PROG_LDFLAGS) -o $@ msvmocas.c lib_svmlight_format.c sparse_mat.c ocas_helper.c features_double.c $(PROG_LIBS)

linclassif:	linclassif.c lib_svmlight_format.c libocas.h version.h
		$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ linclassif.c lib_svmlight_format.c $(LIBS)


$(LIBFILE):	libocas.c libocas.h libqp_splx.c libqp.h
		$(CC) $(CPPFLAGS) $(LIB_CFLAGS) $(LIB_LDFLAGS) -shared \
			-Wl,-soname,libocas.so.$(LVER) \
			-o $@ libocas.c libqp_splx.c $(LIB_LIBS)
		ln -s $@ libocas.so.$(LVER)
		ln -s libocas.so.$(LVER) libocas.so

libocas.a:
	$(CXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -c -o libocas-static.o libocas.c
	$(CXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -c -o libqp_splx-static.o libqp_splx.c
	ar cru libocas.a libocas-static.o libqp_splx-static.o

install: all
	install -d $(bindest) $(libdest)
	install svmocas msvmocas linclassif -m 755 $(bindest)
	install libocas.a -m 644 $(libdest)
	install $(LIBFILE) -m 644 $(libdest)
	cd $(libdest) && ln -s $(LIBFILE) libocas.so.$(LVER)
	cd $(libdest) && ln -s libocas.so.$(LVER) libocas.so

clean:
	rm -f *~ *.o
	rm -f svmocas.$(MEXSUFFIX) svmocas_nnw.$(MEXSUFFIX) svmocas_bool.$(MEXSUFFIX) svmocas_light.$(MEXSUFFIX)
	rm -f linclassif_light.$(MEXSUFFIX)
	rm -f svmocas msvmocas linclassif libocas.so* libocas.a
	rm -f msvmocas.$(MEXSUFFIX) msvmocas_light.$(MEXSUFFIX)
	rm -f lbppyr_features.$(MEXSUFFIX) svmocas_lbp.$(MEXSUFFIX) compute_auc.$(MEXSUFFIX) load_svmlight_file.$(MEXSUFFIX)