]> git.pld-linux.org Git - packages/python.git/blob - python-shared-lib.patch
- creates shared python lib (from debian)
[packages/python.git] / python-shared-lib.patch
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.055332 seconds and 4 git commands to generate.