File: dynamic_lib.patch

package info (click to toggle)
picosat 965-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 576 kB
  • sloc: ansic: 15,831; makefile: 171; sh: 158
file content (35 lines) | stat: -rw-r--r-- 1,000 bytes parent folder | download | duplicates (2)
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
Description: Create dynamic library
Author: Michael Tautschnig 
Last-Update: 2012-12-02 11:32:09 +0000

--- a/makefile.in
+++ b/makefile.in
@@ -8,6 +8,7 @@ clean:
 	rm -f *.exe *.s *.o *.a *.so *.plist
 	rm -f makefile config.h
 	rm -f gmon.out *~ 
+	rm -f *.so.1.0.0 picomus
 
 analyze:
 	clang --analyze $(CFLAGS) *.c *.h
@@ -52,8 +53,17 @@ libpicosat.a: picosat.o version.o
 	ar rc $@ picosat.o version.o
 	ranlib $@
 
-SONAME=-Xlinker -soname -Xlinker libpicosat.so
-libpicosat.so: picosat.o version.o
-	$(CC) $(CFLAGS) -shared -o $@ picosat.o version.o $(SONAME)
+%.pic.o: %.o
+	mv $< $*.nopic.o
+	$(MAKE) CFLAGS="$(CFLAGS) -fPIC" $<
+	mv $< $@
+	mv $*.nopic.o $<
+
+SONAME=-Xlinker -soname -Xlinker libpicosat.so.1
+libpicosat.so: picosat.pic.o version.pic.o
+	$(CC) $(CFLAGS) -shared -o libpicosat.so.1.0.0 $^ -lc $(SONAME)
+
+libpicosat-trace.so: picosat.pic.o version.pic.o
+	$(CC) $(CFLAGS) -shared -o libpicosat-trace.so.1.0.0 $^ -lc -Wl,-soname,libpicosat-trace.so.1
 
 .PHONY: all clean