summarylogtreecommitdiffstats
path: root/0006-build-shared-library.patch
blob: 0207f9e295c11a1d59c259d9f1f3fe202af2f8fc (plain)
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
From 5da4701495e294b7d7344ea4a2f7bfd1daf9b771 Mon Sep 17 00:00:00 2001
From: "Martin T. H. Sandsmark" <martin.sandsmark@kde.org>
Date: Sun, 11 Oct 2020 13:40:30 +0200
Subject: [PATCH 6/6] build shared library

---
 Makefile     |  6 +++---
 src/Makefile | 27 +++++++++++++--------------
 2 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/Makefile b/Makefile
index 339bde6..608d318 100644
--- a/Makefile
+++ b/Makefile
@@ -7,12 +7,12 @@ INC_DIR	= ./include
 LIB_DIR	= ./lib
 BIN	= siftfeat match dspfeat match_num
 
-all: $(BIN) libopensift.a docs
+all: $(BIN) libopensift.so docs
 
 docs:
 	doxygen Doxyfile
 
-libopensift.a:
+libopensift.so:
 	make -C $(SRC_DIR) $@
 
 $(BIN):
@@ -29,4 +29,4 @@ distclean: clean
 docsclean:
 	rm -rf $(DOC_DIR)/html/
 
-.PHONY: docs clean docsclean libopensift.a
+.PHONY: docs clean docsclean libopensift.so
diff --git a/src/Makefile b/src/Makefile
index f466043..3290c01 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,30 +1,29 @@
 CC	= g++
-CFLAGS	+= -fpermissive -Wno-deprecated-declarations -Wno-write-strings
+CFLAGS	+= -fpermissive -Wno-deprecated-declarations -Wno-write-strings -fPIC
 BIN_DIR = ../bin
 INC_DIR	= ../include
 LIB_DIR	= ../lib
 INCL	= -I$(INC_DIR) `pkg-config --cflags opencv4 gtk+-2.0`
-LIBS	= -L$(LIB_DIR) -lopensift -lm -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_core  `pkg-config --libs gtk+-2.0`
+LIBS	= -L$(LIB_DIR) -lm -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
 OBJ	= imgfeatures.o utils.o sift.o kdtree.o minpq.o xform.o
 BIN     = siftfeat match dspfeat match_num
 
-all: $(BIN) libopensift.a
+all: $(BIN) libopensift.so
 
-libopensift.a: $(OBJ)
-	ar rc $(LIB_DIR)/$@ $(OBJ)
-	ranlib  $(LIB_DIR)/$@
+libopensift.so: $(OBJ)
+	g++ -shared $(CFLAGS) $(LDFLAGS) -o $(LIB_DIR)/$@ $^ $(LIBS)
 
-siftfeat: libopensift.a siftfeat.c
-	$(CC) $(CFLAGS) $(INCL) siftfeat.c -o $(BIN_DIR)/$@ $(LIBS)
+siftfeat: libopensift.so siftfeat.c
+	$(CC) $(CFLAGS) $(INCL) siftfeat.c -o $(BIN_DIR)/$@ -lopensift $(LIBS)
 
-match: libopensift.a match.c
-	$(CC) $(CFLAGS) $(INCL) match.c -o $(BIN_DIR)/$@ $(LIBS)
+match: libopensift.so match.c
+	$(CC) $(CFLAGS) $(INCL) match.c -o $(BIN_DIR)/$@ -lopensift $(LIBS)
 
-match_num: libopensift.a match.c
-	$(CC) $(CFLAGS) $(INCL) match_num.c -o $(BIN_DIR)/$@ $(LIBS)
+match_num: libopensift.so match.c
+	$(CC) $(CFLAGS) $(INCL) match_num.c -o $(BIN_DIR)/$@ -lopensift $(LIBS)
 
-dspfeat: libopensift.a dspfeat.c
-	$(CC) $(CFLAGS) $(INCL) dspfeat.c -o $(BIN_DIR)/$@ $(LIBS)
+dspfeat: libopensift.so dspfeat.c
+	$(CC) $(CFLAGS) $(INCL) dspfeat.c -o $(BIN_DIR)/$@ -lopensift $(LIBS)
 
 imgfeatures.o: imgfeatures.c $(INC_DIR)/imgfeatures.h
 	$(CC) $(CFLAGS) $(INCL) -c imgfeatures.c -o $@
-- 
2.28.0