]>
Commit | Line | Data |
---|---|---|
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 |