]> git.pld-linux.org Git - packages/python.git/blame - python-shared-lib.patch
- creates shared python lib (from debian)
[packages/python.git] / python-shared-lib.patch
CommitLineData
c9450cf3 1--- python-1.999b1.orig/Makefile.in
2+++ python-1.999b1/Makefile.in
3@@ -58,12 +58,14 @@
4
5 # Substitutions by configure
6 VERSION= @VERSION@
7+SOVERSION= @SOVERSION@
8 srcdir= @srcdir@
9 VPATH= @srcdir@
10 CC= @CC@
11 AR= @AR@
12 RANLIB= @RANLIB@
13 DEFS= @DEFS@
14+SOLIBS= @LIBS@
15
16 # Machine-dependent subdirectories
17 MACHDEP= @MACHDEP@
18@@ -179,6 +181,22 @@
19 for i in $(SUBDIRS); do \
20 (cd $$i; $(MAKE) VERSION="$(VERSION)" add2lib); done
21
22+#
23+# WARNING: The following is only tested for Debian GNU/Linux.
24+# This rule is silly and needs to be cleaned up ASAP!
25+# Gregor Hoffleit <flight@debian.org>
26+#
27+# This rule is here for Linux shared libs
28+# The PIC code will be built additionally to the static lib!
29+libpython$(VERSION).so.$(SOVERSION): $(SUBDIRS)
30+ test -d shobjs || mkdir shobjs
31+ rm -f shobjs/*
32+ for i in $(SUBDIRS); do \
33+ (cd $$i; rm -f add2shlib; \
34+ $(MAKE) VERSION="$(VERSION)" add2shlib); done
35+ $(CC) -shared -Wl,-soname,$(LDLIBRARY) \
36+ $(SOLIBS) shobjs/* -o $(LDLIBRARY)
37+
38 # This rule is only here for DG/UX!!!
39 libpython$(VERSION).so: $(LIBRARY)
40 case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \
41@@ -247,6 +265,12 @@
42 fi; \
43 done
44 $(INSTALL_PROGRAM) python$(EXE) $(BINDIR)/python$(VERSION)$(EXE)
45+ if test -f libpython$(VERSION).so.$(SOVERSION); then \
46+ mkdir $(LIBDIR); \
47+ $(INSTALL_DATA) libpython$(VERSION).so.$(SOVERSION) $(LIBDIR); \
48+ (cd $(LIBDIR) && $(LN) -sf libpython$(VERSION).so.$(SOVERSION) libpython$(VERSION).so); \
49+ else true; \
50+ fi
51 if test -f libpython$(VERSION).so; then \
52 $(INSTALL_DATA) libpython$(VERSION).so $(LIBDIR); \
53 else true; \
54@@ -492,10 +518,12 @@
55 fi); \
56 else true; fi; \
57 done
58+ -rm -f shobjs/*.pic_o
59
60 localclobber: localclean
61 -rm -f tags TAGS python$(EXE) $(LIBRARY) $(LDLIBRARY) *.o
62 -rm -f config.log config.cache config.h
63+ -rm -rf shobjs/*.pic_o
64
65 clobber: localclobber
66 -for i in $(SUBDIRS); do \
67--- python-1.999b1.orig/configure.in
68+++ python-1.999b1/configure.in
69@@ -7,6 +7,8 @@
70 # Set VERSION so we only need to edit in one place (i.e., here)
71 AC_SUBST(VERSION)
72 VERSION=2.0
73+AC_SUBST(SOVERSION)
74+SOVERSION=0.0
75
76 # NEXTSTEP stuff
77 if test -f /usr/lib/NextStep/software_version -o -f /System/Library/CoreServices/software_version ; then
78@@ -220,6 +222,7 @@
79 # LINKCC is the command that links the python executable -- default is $(CC).
80 # This is altered for AIX and BeOS in order to build the export list before
81 # linking.
82+# For Linux, we now build a shared library, too.
83 AC_SUBST(LINKCC)
84 AC_MSG_CHECKING(LINKCC)
85 if test -z "$LINKCC" -a ! -z "$CXX"
86@@ -236,6 +239,9 @@
87 LDLIBRARY='libpython$(VERSION).so';;
88 dgux*)
89 LINKCC="LD_RUN_PATH=$libdir \$(PURIFY) \$(CC)";;
90+ Linux*)
91+ LDLIBRARY='libpython$(VERSION).so.$(SOVERSION)'
92+ LINKCC="\$(CC)";;
93 *) LINKCC="\$(PURIFY) \$(CC)";;
94 esac
95 fi
96@@ -526,7 +532,7 @@
97 if test "$with_next_framework" ; then
98 LDSHARED="$LDSHARED \$(LDLIBRARY)"
99 fi ;;
100- Linux*) LDSHARED="gcc -shared";;
101+ Linux*) LDSHARED="gcc -shared -lc";;
102 dgux*) LDSHARED="ld -G";;
103 BSD/OS*/4*) LDSHARED="gcc -shared";;
104 FreeBSD*/[[34]]*) LDSHARED="gcc -shared";;
105@@ -553,7 +559,7 @@
106 then CCSHARED="-fpic";
107 else CCSHARED="+z";
108 fi;;
109- Linux*) CCSHARED="-fpic";;
110+ Linux*) CCSHARED="-fPIC";;
111 BSD/OS*/4*) CCSHARED="-fpic";;
112 FreeBSD*|OpenBSD*) CCSHARED="-fpic";;
113 NetBSD*) CCSHARED="-fPIC";;
114--- python-1.999b1.orig/Modules/Makefile.pre.in
115+++ python-1.999b1/Modules/Makefile.pre.in
116@@ -14,6 +14,7 @@
117 # === Variables set by configure ===
118
119 VERSION= @VERSION@
120+SOVERSION= @SOVERSION@
121 srcdir= @srcdir@
122 VPATH= @srcdir@
123
124@@ -95,6 +96,8 @@
125 FIXOBJS= config.o getpath.o main.o getbuildinfo.o
126 OBJS= $(MODOBJS) $(FIXOBJS)
127
128+SHOBJS= $(OBJS:%.o=%.pic_o)
129+
130 #MAINOBJ= python.o
131 MAINOBJ= @MAINOBJ@
132
133@@ -118,6 +121,15 @@
134 $(AR) cr $(LIBRARY) $(OBJS)
135 touch add2lib
136
137+add2shlib: $(SHOBJS)
138+ -if test -f hassignal; \
139+ then echo removing sigcheck.pic_o intrcheck.pic_o; \
140+ rm ../shobjs/sigcheck.pic_o ../shobjs/intrcheck.pic_o \
141+ 2>/dev/null; \
142+ else echo leaving sigcheck.pic_o intrcheck.pic_o in; fi
143+ cp -f $(SHOBJS) ../shobjs/.
144+ touch add2shlib
145+
146 # Use ``EXE=.exe'' for Unix emulations on DOS/Windows
147 EXE=
148
149@@ -130,6 +142,7 @@
150 clean:
151 -rm -f *.o python$(EXE) core *~ [@,#]* *.old *.orig *.rej
152 -rm -f add2lib hassignal
153+ -rm -f add2shlib *.pic_o
154
155 clobber: clean
156 -rm -f *.a tags TAGS config.c Makefile.pre
157@@ -143,6 +156,15 @@
158 -DVPATH='"$(VPATH)"' \
159 $(srcdir)/getpath.c
160
161+getpath.pic_o: getpath.c Makefile
162+ $(CC) -c $(CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
163+ -DPREFIX='"$(prefix)"' \
164+ -DEXEC_PREFIX='"$(exec_prefix)"' \
165+ -DVERSION='"$(VERSION)"' \
166+ -DVPATH='"$(VPATH)"' \
167+ -fPIC -o getpath.pic_o \
168+ $(srcdir)/getpath.c
169+
170 # When the configuration changes, we remove the library, so that it
171 # gets remade from scratch; this ensures to remove modules that are no
172 # longer pertinent (but that were in a previous configuration).
173@@ -173,6 +195,11 @@
174 depend:
175 $(MKDEP) $(CFLAGS) `echo $(OBJS) | tr ' ' '\012' | \
176 sed 's|\(.*\)\.o|$(srcdir)/\1.c|'`
177+
178+.SUFFIXES: .pic_o
179+
180+%.pic_o: %.c
181+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -fPIC -o $@ $<
182
183 .PRECIOUS: ../python$(EXE)
184
185--- python-1.999b1.orig/Objects/Makefile.in
186+++ python-1.999b1/Objects/Makefile.in
187@@ -48,6 +48,8 @@
188 tupleobject.c typeobject.c \
189 unicodeobject.c unicodectype.c
190
191+SHOBJS= $(OBJS:%.o=%.pic_o)
192+
193 LIBRARY= ../libpython$(VERSION).a
194
195 # === Rules ===
196@@ -59,8 +61,13 @@
197 $(AR) cr $(LIBRARY) $(OBJS)
198 touch add2lib
199
200+add2shlib: $(SHOBJS)
201+ cp -f $(SHOBJS) ../shobjs/.
202+ touch add2shlib
203+
204 clean:
205- -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib
206+ -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib \
207+ *.pic_o add2shlib
208
209 clobber: clean
210 -rm -f *.a tags TAGS
211@@ -72,6 +79,12 @@
212 depend:
213 $(MKDEP) $(CFLAGS) `echo $(OBJS) | tr ' ' '\012' | \
214 sed 's|\(.*\)\.o|$(srcdir)/\1.c|'`
215+
216+# Rules for building libpython as shared library
217+.SUFFIXES: .pic_o
218+
219+%.pic_o: %.c
220+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -fPIC -o $@ $<
221
222 .PRECIOUS: Makefile
223
224--- python-1.999b1.orig/Parser/Makefile.in
225+++ python-1.999b1/Parser/Makefile.in
226@@ -37,6 +37,7 @@
227 AROBJS= $(POBJS) myreadline.o
228 OBJS= $(AROBJS) intrcheck.o
229
230+SHOBJS= $(OBJS:%.o=%.pic_o)
231
232 PGENMAIN= pgenmain.o
233
234@@ -62,11 +63,16 @@
235 else echo leaving intrcheck.o out; fi
236 touch add2lib
237
238+add2shlib: $(SHOBJS)
239+ cp -f $(SHOBJS) ../shobjs/.
240+ touch add2shlib
241+
242 $(PGEN): $(PGENOBJS)
243 $(CC) $(OPT) $(PGENOBJS) $(LIBS) -o $(PGEN)
244
245 clean:
246- -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib
247+ -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib \
248+ *.pic_o add2shlib
249
250 clobber: clean
251 -rm -f $(PGEN) *.a tags TAGS
252@@ -78,6 +84,11 @@
253 depend:
254 $(MKDEP) $(CFLAGS) `echo $(DOBJS) | tr ' ' '\012' | \
255 sed 's|\(.*\)\.o|$(srcdir)/\1.c|'`
256+
257+.SUFFIXES: .pic_o
258+
259+%.pic_o: %.c
260+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -fPIC -o $@ $<
261
262 .PRECIOUS: Makefile
263
264--- python-1.999b1.orig/Python/Makefile.in
265+++ python-1.999b1/Python/Makefile.in
266@@ -51,6 +51,8 @@
267 $(LIBOBJS)
268 OBJS= $(AROBJS) sigcheck.o
269
270+SHOBJS= $(OBJS:%.o=%.pic_o)
271+
272 LIBRARY= ../libpython$(VERSION).a
273
274
275@@ -66,8 +68,13 @@
276 else echo leaving sigcheck.o out; fi
277 touch add2lib
278
279+add2shlib: $(SHOBJS)
280+ cp -f $(SHOBJS) ../shobjs/.
281+ touch add2shlib
282+
283 clean:
284- -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib
285+ -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib \
286+ *.pic_o add2shlib
287
288 clobber: clean
289 -rm -f *.a tags TAGS
290@@ -80,12 +87,25 @@
291 $(CC) -c $(CFLAGS) -DPLATFORM='"$(MACHDEP)"' \
292 $(srcdir)/getplatform.c
293
294+getplatform.pic_o: getplatform.c Makefile
295+ $(CC) -c $(CFLAGS) -DPLATFORM='"$(MACHDEP)"' \
296+ $(CPPFLAGS) -fPIC -o $@ \
297+ $(srcdir)/getplatform.c
298+
299 importdl.o: importdl.c
300 $(CC) -c $(CFLAGS) -I$(DLINCLDIR) $(srcdir)/importdl.c
301
302+importdl.pic_o: importdl.c
303+ $(CC) -c $(CFLAGS) -I$(DLINCLDIR) -fPIC -o $@ $(srcdir)/importdl.c
304+
305 depend:
306 $(MKDEP) $(CFLAGS) `echo $(OBJS) | tr ' ' '\012' | \
307 sed 's|\(.*\)\.o|$(srcdir)/\1.c|'`
308+
309+.SUFFIXES: .pic_o
310+
311+%.pic_o: %.c
312+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -fPIC -o $@ $<
313
314 .PRECIOUS: Makefile
315
This page took 0.091232 seconds and 4 git commands to generate.