1 diff -Nur Python-2.2c1.orig/Makefile.pre.in Python-2.2c1/Makefile.pre.in
2 --- Python-2.2c1.orig/Makefile.pre.in Thu Dec 6 22:47:20 2001
3 +++ Python-2.2c1/Makefile.pre.in Mon Dec 17 14:24:28 2001
6 # === Variables set by configure
8 +SOVERSION= @SOVERSION@
13 # Extra C flags added for building the interpreter object files.
14 CFLAGSFORSHARED=@CFLAGSFORSHARED@
15 # C flags used for building the interpreter object files
16 -PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED)
17 +PY_CFLAGS= $(CFLAGS) $(CPPFLAGS)
20 # Machine-dependent subdirectories
23 BLDSHARED= @BLDSHARED@
24 DESTSHARED= $(BINLIBDEST)/lib-dynload
25 +RUNSHARED= LD_PRELOAD=./$(LDLIBRARY)
27 # Executable suffix (.exe on Windows and Mac OS X)
33 -all: $(BUILDPYTHON) oldsharedmods sharedmods
34 +all: $(BUILDPYTHON) $(LIBRARY) oldsharedmods sharedmods
36 # Build the interpreter
37 $(BUILDPYTHON): Modules/$(MAINOBJ) $(LDLIBRARY)
39 $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
41 platform: $(BUILDPYTHON)
42 - ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
43 + $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
46 # Build the shared modules
47 sharedmods: $(BUILDPYTHON)
49 - *-s*) CC='$(CC)' LDSHARED='$(LDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
50 - *) CC='$(CC)' LDSHARED='$(LDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
51 + *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(LDSHARED)' ./$(PYTHON) -E $(srcdir)/setup.py -q build;; \
52 + *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(LDSHARED)' ./$(PYTHON) -E $(srcdir)/setup.py build;; \
55 # buildno should really depend on something like LIBRARY_SRC
57 $(AR) cr $@ $(MODOBJS)
60 +# WARNING: The following is only tested for Debian GNU/Linux.
61 +# This rule is silly and needs to be cleaned up ASAP!
62 +# Gregor Hoffleit <flight@debian.org>
64 +# This rule is here for Linux shared libs
65 +# The PIC code will be built additionally to the static lib!
66 +libpython$(VERSION).so.$(SOVERSION): $(LIBRARY_OBJS:%.o=%.pic_o)
67 + case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \
69 + $(CC) -shared -Wl,-soname,$@ -o $@ $(LIBRARY_OBJS:%.o=%.pic_o) \
74 # This rule is only here for DG/UX and BeOS!!!
75 libpython$(VERSION).so: $(LIBRARY)
76 case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \
78 Modules/getbuildinfo.o: $(srcdir)/Modules/getbuildinfo.c buildno
79 $(CC) -c $(PY_CFLAGS) -DBUILD=`cat buildno` -o $@ $(srcdir)/Modules/getbuildinfo.c
81 +Modules/getbuildinfo.pic_o: $(srcdir)/Modules/getbuildinfo.c buildno
82 + $(CC) -c $(PY_CFLAGS) $(CCSHARED) -DBUILD=`cat buildno` -o $@ $(srcdir)/Modules/getbuildinfo.c
84 Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
85 $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
86 -DPREFIX='"$(prefix)"' \
88 -DVPATH='"$(VPATH)"' \
89 -o $@ $(srcdir)/Modules/getpath.c
91 +Modules/getpath.pic_o: $(srcdir)/Modules/getpath.c Makefile
92 + $(CC) -c $(PY_CFLAGS) $(CCSHARED) -DPYTHONPATH='"$(PYTHONPATH)"' \
93 + -DPREFIX='"$(prefix)"' \
94 + -DEXEC_PREFIX='"$(exec_prefix)"' \
95 + -DVERSION='"$(VERSION)"' \
96 + -DVPATH='"$(VPATH)"' \
97 + -o $@ $(srcdir)/Modules/getpath.c
99 Modules/ccpython.o: $(srcdir)/Modules/ccpython.cc
100 $(CXX) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/ccpython.cc
102 +Modules/ccpython.pic_o: $(srcdir)/Modules/ccpython.cc
103 + $(CXX) -c $(PY_CFLAGS) $(CCSHARED) -o $@ $(srcdir)/Modules/ccpython.cc
106 $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
107 -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
109 Python/getplatform.o: $(srcdir)/Python/getplatform.c
110 $(CC) -c $(CFLAGS) $(CPPFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
112 +Python/getplatform.pic_o: $(srcdir)/Python/getplatform.c
113 + $(CC) -c $(CFLAGS) $(CPPFLAGS) $(CCSHARED) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
115 Python/importdl.o: $(srcdir)/Python/importdl.c
116 $(CC) -c $(CFLAGS) $(CPPFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
118 +Python/importdl.pic_o: $(srcdir)/Python/importdl.c
119 + $(CC) -c $(CFLAGS) $(CPPFLAGS) $(CCSHARED) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
121 Objects/object.o: $(srcdir)/Objects/object.c $(srcdir)/Objects/obmalloc.c
123 Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \
125 # Test the interpreter (twice, once without .pyc files, once with)
127 TESTPROG= $(srcdir)/Lib/test/regrtest.py
128 -TESTPYTHON= ./$(BUILDPYTHON) -E -tt
129 +TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) -E -tt
131 -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
132 -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
136 $(INSTALL_PROGRAM) $(BUILDPYTHON) $(BINDIR)/python$(VERSION)$(EXE)
137 + if test -f libpython$(VERSION).so.$(SOVERSION); then \
139 + $(INSTALL_DATA) libpython$(VERSION).so.$(SOVERSION) $(LIBDIR); \
140 + (cd $(LIBDIR) && $(LN) -sf libpython$(VERSION).so.$(SOVERSION) libpython$(VERSION).so); \
143 if test -f libpython$(VERSION).so; then \
144 $(INSTALL_DATA) libpython$(VERSION).so $(LIBDIR); \
146 @@ -640,11 +682,11 @@
149 $(INSTALL_DATA) $(srcdir)/LICENSE $(LIBDEST)/LICENSE.txt
150 - PYTHONPATH=$(LIBDEST) \
151 - ./$(BUILDPYTHON) -tt $(LIBDEST)/compileall.py -x badsyntax \
153 - PYTHONPATH=$(LIBDEST) \
154 - ./$(BUILDPYTHON) -O $(LIBDEST)/compileall.py -x badsyntax $(LIBDEST)
155 +## PYTHONPATH=$(LIBDEST) \
156 +## ./$(BUILDPYTHON) -tt $(LIBDEST)/compileall.py -x badsyntax \
158 +## PYTHONPATH=$(LIBDEST) \
159 +## ./$(BUILDPYTHON) -O $(LIBDEST)/compileall.py -x badsyntax $(LIBDEST)
161 # Create the PLATDIR source directory, if one wasn't distributed..
162 $(srcdir)/Lib/$(PLATDIR):
163 @@ -686,12 +728,12 @@
167 - @if test -d $(LDLIBRARY); then :; else \
168 + @if test -d $(LIBRARY); then :; else \
169 if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
170 - $(INSTALL_DATA) $(LDLIBRARY) $(LIBPL)/$(LDLIBRARY) ; \
171 - $(RANLIB) $(LIBPL)/$(LDLIBRARY) ; \
172 + $(INSTALL_DATA) $(LIBRARY) $(LIBPL)/$(LIBRARY) ; \
173 + $(RANLIB) $(LIBPL)/$(LIBRARY) ; \
175 - echo Skip install of $(LDLIBRARY) - use make frameworkinstall; \
176 + echo Skip install of $(LIBRARY) - use make frameworkinstall; \
179 $(INSTALL_DATA) Modules/config.c $(LIBPL)/config.c
181 # Install the dynamically loadable modules
182 # This goes into $(exec_prefix)
184 - ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
185 + $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
186 + --prefix=$(prefix) \
187 --install-scripts=$(BINDIR) \
188 --install-platlib=$(DESTSHARED)
192 $(CC) -c $(PY_CFLAGS) -o $@ $<
197 + $(CC) -c $(PY_CFLAGS) $(CCSHARED) -o $@ $<
199 # Rerun configure with the same options as it was run last time,
200 # provided the config.status script exists
202 diff -Nur Python-2.2c1.orig/configure.in Python-2.2c1/configure.in
203 --- Python-2.2c1.orig/configure.in Fri Dec 7 16:38:26 2001
204 +++ Python-2.2c1/configure.in Mon Dec 17 14:12:45 2001
213 # Arguments passed to configure.
214 AC_SUBST(CONFIG_ARGS)
215 CONFIG_ARGS="$ac_configure_args"
217 # python might then depend on the C++ runtime
218 # This is altered for AIX in order to build the export list before
220 +# For Linux, we now build a shared library, too.
222 AC_MSG_CHECKING(LINKCC)
225 LINKCC="LD_RUN_PATH=$libdir $(LINKCC)";;
227 LINKCC="$(LINKCC) -L/usr/lib/ia64l64";;
229 + LDLIBRARY='libpython$(VERSION).so.$(SOVERSION)'
233 AC_MSG_RESULT($LINKCC)
235 # No framework. Ignore undefined symbols, assuming they come from Python
236 LDSHARED="$LDSHARED -flat_namespace -undefined suppress"
238 - Linux*) LDSHARED="gcc -shared";;
239 + Linux*|GNU*) LDSHARED="gcc -shared";;
240 dgux*) LDSHARED="ld -G";;
241 BSD/OS*/4*) LDSHARED="gcc -shared";;
242 OpenBSD*|NetBSD*|FreeBSD*)
244 then CCSHARED="-fPIC";
247 - Linux*) CCSHARED="-fPIC";;
248 + Linux*|GNU*) CCSHARED="-fPIC";;
249 BSD/OS*/4*) CCSHARED="-fpic";;
250 FreeBSD*|NetBSD*|OpenBSD*) CCSHARED="-fPIC";;
254 LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
255 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
256 - Linux*) LINKFORSHARED="-Xlinker -export-dynamic";;
257 + Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
258 # -u libsys_s pulls in all symbols in libsys
260 # -u __dummy makes the linker aware of the objc runtime
261 @@ -1033,8 +1041,14 @@
262 AC_MSG_RESULT($unistd_defines_pthreads)
264 AC_DEFINE(_REENTRANT)
265 + AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
266 + AC_DEFINE(C_THREADS)
267 + AC_DEFINE(HURD_C_THREADS)
268 + LIBS="$LIBS -lthreads"
269 + LIBOBJS="$LIBOBJS thread.o"],[
270 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
272 + AC_DEFINE(MACH_C_THREADS)
273 LIBOBJS="$LIBOBJS thread.o"],[
274 AC_MSG_CHECKING(for --with-pth)
276 @@ -1088,7 +1102,7 @@
278 LIBOBJS="$LIBOBJS thread.o"],[
279 USE_THREAD_MODULE="#"])
281 + ])])])])])])])])])])
283 if test "$posix_threads" = "yes"; then
284 if test "$unistd_defines_pthreads" = "no"; then