summarylogtreecommitdiffstats
path: root/jbigkit-2.1-shared_lib.patch
blob: 00db81f3d7df8cc8b6c02381d8903a170dd8498e (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
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
diff -Naur jbigkit-2.1.old/libjbig/Makefile jbigkit-2.1/libjbig/Makefile
--- jbigkit-2.1.old/libjbig/Makefile	2014-03-27 19:47:15.000000000 +0100
+++ jbigkit-2.1/libjbig/Makefile	2014-08-04 10:45:31.865773710 +0200
@@ -4,25 +4,27 @@
 CC = gcc
 
 # Options for the compiler: A high optimization level is suggested
-CFLAGS = -g -O -W -Wall -ansi -pedantic # --coverage
+CFLAGS = $(EXTRA_CFLAGS) -W -Wall -ansi -pedantic # --coverage
+PICFLAGS := -fPIC -DPIC
 
-all: libjbig.a libjbig85.a tstcodec tstcodec85
+all: libjbig.so.$(VERSION) tstcodec tstcodec85
 
-tstcodec: tstcodec.o jbig.o jbig_ar.o
-	$(CC) $(CFLAGS) -o tstcodec tstcodec.o jbig.o jbig_ar.o
+tstcodec: tstcodec.o libjbig.so
+	$(CC) $(CFLAGS) -o tstcodec $< -L. -ljbig
 
-tstcodec85: tstcodec85.o jbig85.o jbig_ar.o
-	$(CC) $(CFLAGS) -o tstcodec85 tstcodec85.o jbig85.o jbig_ar.o
+tstcodec85: tstcodec85.o libjbig85.so
+	$(CC) $(CFLAGS) -o tstcodec85 $< -L. -ljbig85
 
-libjbig.a: jbig.o jbig_ar.o
-	rm -f libjbig.a
-	ar rc libjbig.a jbig.o jbig_ar.o
-	-ranlib libjbig.a
+%.so: %.so.$(VERSION)
+	ln -sf $< $@
 
-libjbig85.a: jbig85.o jbig_ar.o
-	rm -f libjbig85.a
-	ar rc libjbig85.a jbig85.o jbig_ar.o
-	-ranlib libjbig85.a
+libjbig.so.$(VERSION): jbig.o jbig_ar.o
+	$(CC) $(CFLAGS) -shared -Wl,-soname,$@ -o $@ $^
+
+libjbig85.so.$(VERSION): jbig85.o jbig_ar.o
+	$(CC) $(CFLAGS) -shared -Wl,-soname,$@ -o $@ $^
+
+jbig.o jbig85.o jbig_ar.o: CFLAGS += $(PICFLAGS)
 
 jbig.o: jbig.c jbig.h jbig_ar.h
 jbig85.o: jbig85.c jbig85.h jbig_ar.h
@@ -43,11 +45,11 @@
 	clang --analyze *.c
 
 test: tstcodec tstcodec85
-	./tstcodec
-	./tstcodec85
+	LD_LIBRARY_PATH=`pwd` ./tstcodec
+	LD_LIBRARY_PATH=`pwd` ./tstcodec85
 
 t82test.pbm: tstcodec
-	./tstcodec $@
+	LD_LIBRARY_PATH=`pwd` ./tstcodec $@
 
 clean:
 	rm -f *.o *.gcda *.gcno *.gcov *.plist *~ core gmon.out dbg_d\=??.pbm
diff -Naur jbigkit-2.1.old/Makefile jbigkit-2.1/Makefile
--- jbigkit-2.1.old/Makefile	2014-03-27 19:47:15.000000000 +0100
+++ jbigkit-2.1/Makefile	2014-08-04 10:52:09.242027746 +0200
@@ -4,25 +4,26 @@
 CC = gcc
 
 # Options for the compiler: A high optimization level is suggested
-CFLAGS = -O2 -W -Wno-unused-result
+CFLAGS = $(EXTRA_CFLAGS) -W -Wno-unused-result
 # CFLAGS = -O -g -W -Wall -Wno-unused-result -ansi -pedantic # -DDEBUG
 
 export CC CFLAGS
 
 VERSION=2.1
+export VERSION
 
 all: lib pbm
 	@echo "Enter 'make test' in order to start some automatic tests."
 
 lib:
-	cd libjbig && $(MAKE) -e
+	make -C libjbig
 
 pbm: lib
-	cd pbmtools && $(MAKE) -e
+	make -C pbmtools
 
 test: lib pbm
-	cd libjbig  && $(MAKE) test
-	cd pbmtools && $(MAKE) test
+	LD_LIBRARY_PATH=`pwd`/libjbig make -C libjbig test
+	LD_LIBRARY_PATH=`pwd`/libjbig make -C pbmtools test
 
 analyze:
 	cd libjbig  && $(MAKE) analyze
@@ -30,8 +31,8 @@
 
 clean:
 	rm -f *~ core
-	cd libjbig  && $(MAKE) clean
-	cd pbmtools && $(MAKE) clean
+	make -C libjbig clean
+	make -C pbmtools clean
 
 distribution:
 	rm -rf jbigkit-$(VERSION)
diff -Naur jbigkit-2.1.old/pbmtools/Makefile jbigkit-2.1/pbmtools/Makefile
--- jbigkit-2.1.old/pbmtools/Makefile	2014-03-27 19:47:15.000000000 +0100
+++ jbigkit-2.1/pbmtools/Makefile	2014-08-04 10:49:47.694581174 +0200
@@ -4,26 +4,26 @@
 CC = gcc
 
 # Options for the compiler
-CFLAGS = -g -O -W -Wall -Wno-unused-result -ansi -pedantic # --coverage
+CFLAGS = $(EXTRA_CFLAGS) -W -Wall -Wno-unused-result -ansi -pedantic # --coverage
 CPPFLAGS = -I../libjbig 
 
 .SUFFIXES: .1 .5 .txt $(SUFFIXES)
 .PHONY: txt test test82 test85 clean
 
-all: pbmtojbg jbgtopbm pbmtojbg85 jbgtopbm85 txt
+all: pbmtojbg jbgtopbm pbmtojbg85 jbgtopbm85 # txt
 
 txt: pbmtojbg.txt jbgtopbm.txt pbm.txt pgm.txt
 
-pbmtojbg: pbmtojbg.o ../libjbig/libjbig.a
+pbmtojbg: pbmtojbg.o ../libjbig/libjbig.so
 	$(CC) $(CFLAGS) -o pbmtojbg pbmtojbg.o -L../libjbig -ljbig
 
-jbgtopbm: jbgtopbm.o ../libjbig/libjbig.a
+jbgtopbm: jbgtopbm.o ../libjbig/libjbig.so
 	$(CC) $(CFLAGS) -o jbgtopbm jbgtopbm.o -L../libjbig -ljbig
 
-pbmtojbg85: pbmtojbg85.o ../libjbig/libjbig85.a
+pbmtojbg85: pbmtojbg85.o ../libjbig/libjbig85.so
 	$(CC) $(CFLAGS) -o pbmtojbg85 pbmtojbg85.o -L../libjbig -ljbig85
 
-jbgtopbm85: jbgtopbm85.o ../libjbig/libjbig85.a
+jbgtopbm85: jbgtopbm85.o ../libjbig/libjbig85.so
 	$(CC) $(CFLAGS) -o jbgtopbm85 jbgtopbm85.o -L../libjbig -ljbig85
 
 jbgtopbm.o: jbgtopbm.c ../libjbig/jbig.h
@@ -31,13 +31,13 @@
 jbgtopbm85.o: jbgtopbm85.c ../libjbig/jbig85.h
 pbmtojbg85.o: pbmtojbg85.c ../libjbig/jbig85.h
 
-../libjbig/libjbig.a: ../libjbig/jbig.c ../libjbig/jbig.h \
+../libjbig/libjbig.so: ../libjbig/jbig.c ../libjbig/jbig.h \
 	../libjbig/jbig_ar.c ../libjbig/jbig_ar.h
-	make -C ../libjbig libjbig.a
+	make -C ../libjbig libjbig.so
 
-../libjbig/libjbig85.a: ../libjbig/jbig85.c ../libjbig/jbig85.h \
+../libjbig/libjbig85.so: ../libjbig/jbig85.c ../libjbig/jbig85.h \
 	../libjbig/jbig_ar.c ../libjbig/jbig_ar.h
-	make -C ../libjbig libjbig85.a
+	make -C ../libjbig libjbig85.so
 
 analyze:
 	clang $(CPPFLAGS) --analyze *.c