diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/Lib/distutils/sysconfig.py dist-src/Lib/distutils/sysconfig.py --- src/Lib/distutils/sysconfig.py Tue Jan 16 11:33:28 2001 +++ dist-src/Lib/distutils/sysconfig.py Tue Jan 16 17:08:51 2001 @@ -19,6 +19,19 @@ PREFIX = os.path.normpath(sys.prefix) EXEC_PREFIX = os.path.normpath(sys.exec_prefix) +# Boolean; if it's true, we're still building Python, so +# we use different (hard-wired) directories. + +python_build = 0 + +def set_python_build(): + """Set the python_build flag to true; this means that we're + building Python itself. Only called from the setup.py script + shipped with Python. + """ + + global python_build + python_build = 1 def get_python_inc(plat_specific=0, prefix=None): """Return the directory containing installed Python header files. @@ -34,6 +47,8 @@ if prefix is None: prefix = (plat_specific and EXEC_PREFIX or PREFIX) if os.name == "posix": + if python_build: + return "Include/" return os.path.join(prefix, "include", "python" + sys.version[:3]) elif os.name == "nt": return os.path.join(prefix, "Include") # include or Include? @@ -119,12 +134,15 @@ def get_config_h_filename(): """Return full pathname of installed config.h file.""" - inc_dir = get_python_inc(plat_specific=1) + if python_build: inc_dir = '.' + else: inc_dir = get_python_inc(plat_specific=1) return os.path.join(inc_dir, "config.h") def get_makefile_filename(): """Return full pathname of installed Makefile from the Python build.""" + if python_build: + return './Modules/Makefile' lib_dir = get_python_lib(plat_specific=1, standard_lib=1) return os.path.join(lib_dir, "config", "Makefile") diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/Makefile.in dist-src/Makefile.in --- src/Makefile.in Mon Jan 15 11:04:27 2001 +++ dist-src/Makefile.in Tue Jan 16 17:35:00 2001 @@ -157,9 +157,11 @@ # Build the shared modules sharedmods: python$(EXE) - cd Modules; $(MAKE) OPT="$(OPT)" VERSION="$(VERSION)" \ - prefix="$(prefix)" exec_prefix="$(exec_prefix)" \ - sharedmods + ./python$(EXE) $(srcdir)/setup.py build +# Old rules for building shared modules using makesetup +# cd Modules; $(MAKE) OPT="$(OPT)" VERSION="$(VERSION)" \ +# prefix="$(prefix)" exec_prefix="$(exec_prefix)" \ +# sharedmods # Build the library $(LIBRARY): $(SUBDIRS) @@ -422,17 +424,19 @@ # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: - cd Modules; $(MAKE) \ - OPT="$(OPT)" \ - VERSION="$(VERSION)" \ - SO="$(SO)" \ - LDSHARED="$(LDSHARED)" \ - CCSHARED="$(CCSHARED)" \ - LINKFORSHARED="$(LINKFORSHARED)" \ - DESTSHARED="$(DESTSHARED)" \ - prefix="$(prefix)" \ - exec_prefix="$(exec_prefix)" \ - sharedinstall + ./python$(EXE) $(srcdir)/setup.py install +# Old rules for installing shared modules built using makesetup +# cd Modules; $(MAKE) \ +# OPT="$(OPT)" \ +# VERSION="$(VERSION)" \ +# SO="$(SO)" \ +# LDSHARED="$(LDSHARED)" \ +# CCSHARED="$(CCSHARED)" \ +# LINKFORSHARED="$(LINKFORSHARED)" \ +# DESTSHARED="$(DESTSHARED)" \ +# prefix="$(prefix)" \ +# exec_prefix="$(exec_prefix)" \ +# sharedinstall # Build the sub-Makefiles Makefiles: config.status Modules/Makefile.pre @@ -515,7 +519,8 @@ localclobber: localclean -rm -f tags TAGS python$(EXE) $(LIBRARY) $(LDLIBRARY) *.o - -rm -f config.log config.cache config.h + -rm -f config.log config.cache config.h + -rm -rf build clobber: localclobber -for i in $(SUBDIRS); do \ diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/Modules/Setup.config.in dist-src/Modules/Setup.config.in --- src/Modules/Setup.config.in Mon Jan 15 17:10:28 2001 +++ dist-src/Modules/Setup.config.in Tue Jan 16 16:00:39 2001 @@ -9,19 +9,5 @@ # Threading @USE_THREAD_MODULE@thread threadmodule.c -# You may want the following to be built as statically loaded modules; -# comment out the *shared* line in that case: +# The rest of the modules in this file will be built by the setup.py script -*shared* - -# Readline -@USE_READLINE_MODULE@readline readline.c -lreadline -ltermcap - -# The ncurses library, under Linux -@USE_NCURSES_MODULE@_curses _cursesmodule.c -lncurses -ltermcap - -# bsddb module enabled by --with-libdb or presence of db.h -@USE_BSDDB_MODULE@bsddb bsddbmodule.c @HAVE_LIBDB@ - -# dbm(3) may require -lndbm or similar -@USE_DBM_MODULE@dbm dbmmodule.c @HAVE_LIBNDBM@ diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/Modules/Setup.dist dist-src/Modules/Setup.dist --- src/Modules/Setup.dist Mon Jan 15 17:10:28 2001 +++ dist-src/Modules/Setup.dist Tue Jan 16 17:40:34 2001 @@ -87,366 +87,9 @@ # various reasons; therefore they are listed here instead of in the # normal order. -# Some modules that are normally always on: +# Build the minimal set of modules required to run the distutils -regex regexmodule.c regexpr.c # Regular expressions, GNU Emacs style -pcre pcremodule.c pypcre.c # Regular expressions, Perl style (for re.py) posix posixmodule.c # posix (UNIX) system calls -signal signalmodule.c # signal(2) _sre _sre.c # Fredrik Lundh's new regular expressions - -# The SGI specific GL module: - -GLHACK=-Dclear=__GLclear -#gl glmodule.c cgensupport.c -I$(srcdir) $(GLHACK) -lgl -lX11 - -# Pure module. Cannot be linked dynamically. -# -DWITH_QUANTIFY, -DWITH_PURIFY, or -DWITH_ALL_PURE -#WHICH_PURE_PRODUCTS=-DWITH_ALL_PURE -#PURE_INCLS=-I/usr/local/include -#PURE_STUBLIBS=-L/usr/local/lib -lpurify_stubs -lquantify_stubs -#pure puremodule.c $(WHICH_PURE_PRODUCTS) $(PURE_INCLS) $(PURE_STUBLIBS) - -# Uncommenting the following line tells makesetup that all following -# modules are to be built as shared libraries (see above for more -# detail; also note that *static* reverses this effect): - -#*shared* - -# GNU readline. Unlike previous Python incarnations, GNU readline is -# now incorporated in an optional module, configured in the Setup file -# instead of by a configure script switch. You may have to insert a -# -L option pointing to the directory where libreadline.* lives, -# and you may have to change -ltermcap to -ltermlib or perhaps remove -# it, depending on your system -- see the GNU readline instructions. -# It's okay for this to be a shared library, too. -# -# First, look at Setup.config; configure may have set this for you. - -#readline readline.c -lreadline -ltermcap - - -# Modules that should always be present (non UNIX dependent): - -array arraymodule.c # array objects -cmath cmathmodule.c # -lm # complex math library functions -math mathmodule.c # -lm # math library functions, e.g. sin() strop stropmodule.c # fast string operations implemented in C -struct structmodule.c # binary structure packing/unpacking -time timemodule.c # -lm # time operations and variables -operator operator.c # operator.add() and similar goodies -_codecs _codecsmodule.c # access to the builtin codecs and codec registry - -unicodedata unicodedata.c unicodedatabase.c - # static Unicode character database -ucnhash ucnhash.c # Unicode Character Name expansion hash table - -_locale _localemodule.c # access to ISO C locale support - - -# Modules with some UNIX dependencies -- on by default: -# (If you have a really backward UNIX, select and socket may not be -# supported...) - -fcntl fcntlmodule.c # fcntl(2) and ioctl(2) -pwd pwdmodule.c # pwd(3) -grp grpmodule.c # grp(3) -errno errnomodule.c # posix (UNIX) errno values -select selectmodule.c # select(2); not on ancient System V - -# Memory-mapped files (also works on Win32). -mmap mmapmodule.c - -# Dynamic readlines -xreadlines xreadlinesmodule.c - -# for socket(2), without SSL support. -_socket socketmodule.c - -# Socket module compiled with SSL support; you must comment out the other -# socket line above, and possibly edit the SSL variable: -#SSL=/usr/local/ssl -#_socket socketmodule.c \ -# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -# -L$(SSL)/lib -lssl -lcrypto - -# The crypt module is now disabled by default because it breaks builds -# on many systems (where -lcrypt is needed), e.g. Linux (I believe). -#crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems - - -# Some more UNIX dependent modules -- off by default, since these -# are not supported by all UNIX systems: - -#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere -#termios termios.c # Steen Lumholt's termios module -#resource resource.c # Jeremy Hylton's rlimit interface - - -# Multimedia modules -- off by default. -# These don't work for 64-bit platforms!!! -# These represent audio samples or images as strings: - -#audioop audioop.c # Operations on audio samples -#imageop imageop.c # Operations on images -#rgbimg rgbimgmodule.c # Read SGI RGB image files (but coded portably) - - -# The md5 module implements the RSA Data Security, Inc. MD5 -# Message-Digest Algorithm, described in RFC 1321. The necessary files -# md5c.c and md5.h are included here. - -md5 md5module.c md5c.c - - -# The sha module implements the SHA checksum algorithm. -# (NIST's Secure Hash Algorithm.) -sha shamodule.c - - -# The mpz module interfaces to the GNU Multiple Precision library. -# You need to ftp the GNU MP library. -# The GMP variable must point to the GMP source directory. -# This was originally written and tested against GMP 1.2 and 1.3.2. -# It has been modified by Rob Hooft to work with 2.0.2 as well, but I -# haven't tested it recently. - -# A compatible MP library unencombered by the GPL also exists. It was -# posted to comp.sources.misc in volume 40 and is widely available from -# FTP archive sites. One URL for it is: -# ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume40/fgmp/part01.Z - -#GMP=/ufs/guido/src/gmp -#mpz mpzmodule.c -I$(GMP) $(GMP)/libgmp.a - - -# SGI IRIX specific modules -- off by default. - -# These module work on any SGI machine: - -# *** gl must be enabled higher up in this file *** -#fm fmmodule.c $(GLHACK) -lfm -lgl # Font Manager -#sgi sgimodule.c # sgi.nap() and a few more - -# This module requires the header file -# /usr/people/4Dgifts/iristools/include/izoom.h: -#imgfile imgfile.c -limage -lgutil -lgl -lm # Image Processing Utilities - - -# These modules require the Multimedia Development Option (I think): - -#al almodule.c -laudio # Audio Library -#cd cdmodule.c -lcdaudio -lds -lmediad # CD Audio Library -#cl clmodule.c -lcl -lawareaudio # Compression Library -#sv svmodule.c yuvconvert.c -lsvideo -lXext -lX11 # Starter Video - - -# The FORMS library, by Mark Overmars, implements user interface -# components such as dialogs and buttons using SGI's GL and FM -# libraries. You must ftp the FORMS library separately from -# ftp://ftp.cs.ruu.nl/pub/SGI/FORMS. It was tested with FORMS 2.2a. -# NOTE: if you want to be able to use FORMS and curses simultaneously -# (or both link them statically into the same binary), you must -# compile all of FORMS with the cc option "-Dclear=__GLclear". - -# The FORMS variable must point to the FORMS subdirectory of the forms -# toplevel directory: - -#FORMS=/ufs/guido/src/forms/FORMS -#fl flmodule.c -I$(FORMS) $(GLHACK) $(FORMS)/libforms.a -lfm -lgl - - -# SunOS specific modules -- off by default: - -#sunaudiodev sunaudiodev.c - - -# Linux specific modules -- off by default: - -#linuxaudiodev linuxaudiodev.c - - -# George Neville-Neil's timing module: - -#timing timingmodule.c - - -# The _tkinter module. -# -# The TKPATH variable is always enabled, to save you the effort. -TKPATH=:lib-tk - -# The command for _tkinter is long and site specific. Please -# uncomment and/or edit those parts as indicated. If you don't have a -# specific extension (e.g. Tix or BLT), leave the corresponding line -# commented out. (Leave the trailing backslashes in! If you -# experience strange errors, you may want to join all uncommented -# lines and remove the backslashes -- the backslash interpretation is -# done by the shell's "read" command and it may not be implemented on -# every system. - -# *** Always uncomment this (leave the leading underscore in!): -# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \ -# *** Uncomment and edit to reflect where your Tcl/Tk headers are: -# -I/usr/local/include \ -# *** Uncomment and edit to reflect where your X11 header files are: -# -I/usr/X11R6/include \ -# *** Or uncomment this for Solaris: -# -I/usr/openwin/include \ -# *** Uncomment and edit for Tix extension only: -# -DWITH_TIX -ltix4.1.8.0 \ -# *** Uncomment and edit for BLT extension only: -# -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \ -# *** Uncomment and edit for PIL (TkImaging) extension only: -# (See http://www.pythonware.com/products/pil/ for more info) -# -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ -# *** Uncomment and edit for TOGL extension only: -# -DWITH_TOGL togl.c \ -# *** Uncomment and edit to reflect where your Tcl/Tk libraries are: -# -L/usr/local/lib \ -# *** Uncomment and edit to reflect your Tcl/Tk versions: -# -ltk8.0 -ltcl8.0 \ -# *** Uncomment and edit to reflect where your X11 libraries are: -# -L/usr/X11R6/lib \ -# *** Or uncomment this for Solaris: -# -L/usr/openwin/lib \ -# *** Uncomment these for TOGL extension only: -# -lGL -lGLU -lXext -lXmu \ -# *** Uncomment for AIX: -# -lld \ -# *** Always uncomment this; X11 libraries to link with: -# -lX11 - -# Lance Ellinghaus's modules: - -rotor rotormodule.c # enigma-inspired encryption -#syslog syslogmodule.c # syslog daemon interface - - -# Curses support, requring the System V version of curses, often -# provided by the ncurses library. e.g. on Linux, link with -lncurses -# instead of -lcurses; on SunOS 4.1.3, insert -I/usr/5include -# -L/usr/5lib before -lcurses). -# -# First, look at Setup.config; configure may have set this for you. - -#_curses _cursesmodule.c -lcurses -ltermcap -# Wrapper for the panel library that's part of ncurses and SYSV curses. -#_curses_panel _curses_panel.c -lpanel -lncurses - - -# Tommy Burnette's 'new' module (creates new empty objects of certain kinds): - -new newmodule.c - - -# Generic (SunOS / SVR4) dynamic loading module. -# This is not needed for dynamic loading of Python modules -- -# it is a highly experimental and dangerous device for calling -# *arbitrary* C functions in *arbitrary* shared libraries: - -#dl dlmodule.c - - -# Modules that provide persistent dictionary-like semantics. You will -# probably want to arrange for at least one of them to be available on -# your machine, though none are defined by default because of library -# dependencies. The Python module anydbm.py provides an -# implementation independent wrapper for these; dumbdbm.py provides -# similar functionality (but slower of course) implemented in Python. - -# The standard Unix dbm module has been moved to Setup.config so that -# it will be compiled as a shared library by default. Compiling it as -# a built-in module causes conflicts with the pybsddb3 module since it -# creates a static dependency on an out-of-date version of db.so. - -#dbm dbmmodule.c # dbm(3) may require -lndbm or similar - -# Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: - -#gdbm gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm - - -# Berkeley DB interface. -# -# This requires the Berkeley DB code, see -# ftp://ftp.cs.berkeley.edu/pub/4bsd/db.1.85.tar.gz -# -# Edit the variables DB and DBPORT to point to the db top directory -# and the subdirectory of PORT where you built it. -# -# (See http://electricrain.com/greg/python/bsddb3/ for an interface to -# BSD DB 3.x.) - -# Note: If a db.h file is found by configure, bsddb will be enabled -# automatically via Setup.config.in. It only needs to be enabled here -# if it is not automatically enabled there; check the generated -# Setup.config before enabling it here. - -#DB=/depot/sundry/src/berkeley-db/db.1.85 -#DBPORT=$(DB)/PORT/irix.5.3 -#bsddb bsddbmodule.c -I$(DBPORT)/include -I$(DBPORT) $(DBPORT)/libdb.a - - - -# David Wayne Williams' soundex module (obsolete -- this will disappear!) -#soundex soundex.c - -# Helper module for various ascii-encoders -binascii binascii.c - -# Fred Drake's interface to the Python parser -parser parsermodule.c - -# Digital Creations' cStringIO and cPickle -cStringIO cStringIO.c -cPickle cPickle.c - - -# Lee Busby's SIGFPE modules. -# The library to link fpectl with is platform specific. -# Choose *one* of the options below for fpectl: - -# For SGI IRIX (tested on 5.3): -#fpectl fpectlmodule.c -lfpe - -# For Solaris with SunPro compiler (tested on Solaris 2.5 with SunPro C 4.2): -# (Without the compiler you don't have -lsunmath.) -#fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm - -# For other systems: see instructions in fpectlmodule.c. -#fpectl fpectlmodule.c ... - -# Test module for fpectl. No extra libraries needed. -#fpetest fpetestmodule.c - -# Andrew Kuchling's zlib module. -# This require zlib 1.1.3 (or later). -# See http://www.cdrom.com/pub/infozip/zlib/ -#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz - -# Interface to the Expat XML parser -# -# Expat is written by James Clark and must be downloaded separately -# (see below). The pyexpat module was written by Paul Prescod after a -# prototype by Jack Jansen. -# -# The Expat dist includes Windows .lib and .dll files. Home page is at -# http://www.jclark.com/xml/expat.html, the current production release is -# always ftp://ftp.jclark.com/pub/xml/expat.zip. -# -# EXPAT_DIR, below, should point to the expat/ directory created by -# unpacking the Expat source distribution. -# -# Note: the expat build process doesn't yet build a libexpat.a; you can -# do this manually while we try convince the author to add it. To do so, -# cd to EXPAT_DIR, run "make" if you have not done so, then run: -# -# ar cr libexpat.a xmltok/*.o xmlparse/*.o -# -#EXPAT_DIR=/usr/local/src/expat -#pyexpat pyexpat.c -I$(EXPAT_DIR)/xmlparse -L$(EXPAT_DIR) -lexpat - -# Example -- included for reference only: -# xx xxmodule.c diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/Modules/Setup.in dist-src/Modules/Setup.in --- src/Modules/Setup.in Mon Jan 15 11:04:27 2001 +++ dist-src/Modules/Setup.in Tue Jan 16 15:59:35 2001 @@ -87,351 +87,9 @@ # various reasons; therefore they are listed here instead of in the # normal order. -# Some modules that are normally always on: +# Build the minimal set of modules required to run the distutils -regex regexmodule.c regexpr.c # Regular expressions, GNU Emacs style -pcre pcremodule.c pypcre.c # Regular expressions, Perl style (for re.py) posix posixmodule.c # posix (UNIX) system calls -signal signalmodule.c # signal(2) _sre _sre.c # Fredrik Lundh's new regular expressions - -# The SGI specific GL module: - -GLHACK=-Dclear=__GLclear -#gl glmodule.c cgensupport.c -I$(srcdir) $(GLHACK) -lgl -lX11 - -# Pure module. Cannot be linked dynamically. -# -DWITH_QUANTIFY, -DWITH_PURIFY, or -DWITH_ALL_PURE -#WHICH_PURE_PRODUCTS=-DWITH_ALL_PURE -#PURE_INCLS=-I/usr/local/include -#PURE_STUBLIBS=-L/usr/local/lib -lpurify_stubs -lquantify_stubs -#pure puremodule.c $(WHICH_PURE_PRODUCTS) $(PURE_INCLS) $(PURE_STUBLIBS) - -# Uncommenting the following line tells makesetup that all following -# modules are to be built as shared libraries (see above for more -# detail; also note that *static* reverses this effect): - -#*shared* - -# GNU readline. Unlike previous Python incarnations, GNU readline is -# now incorporated in an optional module, configured in the Setup file -# instead of by a configure script switch. You may have to insert a -# -L option pointing to the directory where libreadline.* lives, -# and you may have to change -ltermcap to -ltermlib or perhaps remove -# it, depending on your system -- see the GNU readline instructions. -# It's okay for this to be a shared library, too. - -#readline readline.c -lreadline -ltermcap - - -# Modules that should always be present (non UNIX dependent): - -array arraymodule.c # array objects -cmath cmathmodule.c # -lm # complex math library functions -math mathmodule.c # -lm # math library functions, e.g. sin() strop stropmodule.c # fast string operations implemented in C -struct structmodule.c # binary structure packing/unpacking -time timemodule.c # -lm # time operations and variables -operator operator.c # operator.add() and similar goodies -_codecs _codecsmodule.c # access to the builtin codecs and codec registry - -unicodedata unicodedata.c unicodedatabase.c - # static Unicode character database -ucnhash ucnhash.c # Unicode Character Name expansion hash table - -_locale _localemodule.c # access to ISO C locale support - - -# Modules with some UNIX dependencies -- on by default: -# (If you have a really backward UNIX, select and socket may not be -# supported...) - -fcntl fcntlmodule.c # fcntl(2) and ioctl(2) -pwd pwdmodule.c # pwd(3) -grp grpmodule.c # grp(3) -errno errnomodule.c # posix (UNIX) errno values -select selectmodule.c # select(2); not on ancient System V -_socket socketmodule.c # socket(2) - -# Memory-mapped files (also works on Win32). -mmap mmapmodule.c - -# Socket module compiled with SSL support; you must edit the SSL variable: -#SSL=/usr/local/ssl -#_socket socketmodule.c \ -# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -# -L$(SSL)/lib -lssl -lcrypto - -# The crypt module is now disabled by default because it breaks builds -# on many systems (where -lcrypt is needed), e.g. Linux (I believe). -#crypt cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems - - -# Some more UNIX dependent modules -- off by default, since these -# are not supported by all UNIX systems: - -#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere -#termios termios.c # Steen Lumholt's termios module -#resource resource.c # Jeremy Hylton's rlimit interface - - -# Multimedia modules -- off by default. -# These don't work for 64-bit platforms!!! -# These represent audio samples or images as strings: - -#audioop audioop.c # Operations on audio samples -#imageop imageop.c # Operations on images -#rgbimg rgbimgmodule.c # Read SGI RGB image files (but coded portably) - - -# The md5 module implements the RSA Data Security, Inc. MD5 -# Message-Digest Algorithm, described in RFC 1321. The necessary files -# md5c.c and md5.h are included here. - -md5 md5module.c md5c.c - - -# The sha module implements the SHA checksum algorithm. -# (NIST's Secure Hash Algorithm.) -sha shamodule.c - - -# The mpz module interfaces to the GNU Multiple Precision library. -# You need to ftp the GNU MP library. -# The GMP variable must point to the GMP source directory. -# This was originally written and tested against GMP 1.2 and 1.3.2. -# It has been modified by Rob Hooft to work with 2.0.2 as well, but I -# haven't tested it recently. - -# A compatible MP library unencombered by the GPL also exists. It was -# posted to comp.sources.misc in volume 40 and is widely available from -# FTP archive sites. One URL for it is: -# ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume40/fgmp/part01.Z - -#GMP=/ufs/guido/src/gmp -#mpz mpzmodule.c -I$(GMP) $(GMP)/libgmp.a - - -# SGI IRIX specific modules -- off by default. - -# These module work on any SGI machine: - -# *** gl must be enabled higher up in this file *** -#fm fmmodule.c $(GLHACK) -lfm -lgl # Font Manager -#sgi sgimodule.c # sgi.nap() and a few more - -# This module requires the header file -# /usr/people/4Dgifts/iristools/include/izoom.h: -#imgfile imgfile.c -limage -lgutil -lgl -lm # Image Processing Utilities - - -# These modules require the Multimedia Development Option (I think): - -#al almodule.c -laudio # Audio Library -#cd cdmodule.c -lcdaudio -lds -lmediad # CD Audio Library -#cl clmodule.c -lcl -lawareaudio # Compression Library -#sv svmodule.c yuvconvert.c -lsvideo -lXext -lX11 # Starter Video - - -# The FORMS library, by Mark Overmars, implements user interface -# components such as dialogs and buttons using SGI's GL and FM -# libraries. You must ftp the FORMS library separately from -# ftp://ftp.cs.ruu.nl/pub/SGI/FORMS. It was tested with FORMS 2.2a. -# NOTE: if you want to be able to use FORMS and curses simultaneously -# (or both link them statically into the same binary), you must -# compile all of FORMS with the cc option "-Dclear=__GLclear". - -# The FORMS variable must point to the FORMS subdirectory of the forms -# toplevel directory: - -#FORMS=/ufs/guido/src/forms/FORMS -#fl flmodule.c -I$(FORMS) $(GLHACK) $(FORMS)/libforms.a -lfm -lgl - - -# SunOS specific modules -- off by default: - -#sunaudiodev sunaudiodev.c - - -# Linux specific modules -- off by default: - -#linuxaudiodev linuxaudiodev.c - - -# George Neville-Neil's timing module: - -#timing timingmodule.c - - -# The _tkinter module. -# -# The TKPATH variable is always enabled, to save you the effort. -TKPATH=:lib-tk - -# The command for _tkinter is long and site specific. Please -# uncomment and/or edit those parts as indicated. If you don't have a -# specific extension (e.g. Tix or BLT), leave the corresponding line -# commented out. (Leave the trailing backslashes in! If you -# experience strange errors, you may want to join all uncommented -# lines and remove the backslashes -- the backslash interpretation is -# done by the shell's "read" command and it may not be implemented on -# every system. - -# *** Always uncomment this (leave the leading underscore in!): -# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \ -# *** Uncomment and edit to reflect where your Tcl/Tk headers are: -# -I/usr/local/include \ -# *** Uncomment and edit to reflect where your X11 header files are: -# -I/usr/X11R6/include \ -# *** Or uncomment this for Solaris: -# -I/usr/openwin/include \ -# *** Uncomment and edit for Tix extension only: -# -DWITH_TIX -ltix4.1.8.0 \ -# *** Uncomment and edit for BLT extension only: -# -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \ -# *** Uncomment and edit for PIL (TkImaging) extension only: -# -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ -# *** Uncomment and edit for TOGL extension only: -# -DWITH_TOGL togl.c \ -# *** Uncomment and edit to reflect where your Tcl/Tk libraries are: -# -L/usr/local/lib \ -# *** Uncomment and edit to reflect your Tcl/Tk versions: -# -ltk8.0 -ltcl8.0 \ -# *** Uncomment and edit to reflect where your X11 libraries are: -# -L/usr/X11R6/lib \ -# *** Or uncomment this for Solaris: -# -L/usr/openwin/lib \ -# *** Uncomment these for TOGL extension only: -# -lGL -lGLU -lXext -lXmu \ -# *** Uncomment for AIX: -# -lld \ -# *** Always uncomment this; X11 libraries to link with: -# -lX11 - -# Lance Ellinghaus's modules: - -rotor rotormodule.c # enigma-inspired encryption -#syslog syslogmodule.c # syslog daemon interface - - -# Curses support, requring the System V version of curses, often -# provided by the ncurses library. e.g. on Linux, link with -lncurses -# instead of -lcurses; on SunOS 4.1.3, insert -I/usr/5include -# -L/usr/5lib before -lcurses). - -#_curses _cursesmodule.c -lcurses -ltermcap - - - -# Tommy Burnette's 'new' module (creates new empty objects of certain kinds): - -new newmodule.c - - -# Generic (SunOS / SVR4) dynamic loading module. -# This is not needed for dynamic loading of Python modules -- -# it is a highly experimental and dangerous device for calling -# *arbitrary* C functions in *arbitrary* shared libraries: - -#dl dlmodule.c - - -# Modules that provide persistent dictionary-like semantics. You will -# probably want to arrange for at least one of them to be available on -# your machine, though none are defined by default because of library -# dependencies. The Python module anydbm.py provides an -# implementation independent wrapper for these; dumbdbm.py provides -# similar functionality (but slower of course) implemented in Python. - -# The standard Unix dbm module: - -#dbm dbmmodule.c # dbm(3) may require -lndbm or similar - -# Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: - -#gdbm gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm - - -# Berkeley DB interface. -# -# This requires the Berkeley DB code, see -# ftp://ftp.cs.berkeley.edu/pub/4bsd/db.1.85.tar.gz -# -# Edit the variables DB and DBPORT to point to the db top directory -# and the subdirectory of PORT where you built it. -# -# (See http://electricrain.com/greg/python/bsddb3/ for an interface to -# BSD DB 3.x.) - -# Note: If a db.h file is found by configure, bsddb will be enabled -# automatically via Setup.config.in. It only needs to be enabled here -# if it is not automatically enabled there; check the generated -# Setup.config before enabling it here. - -#DB=/depot/sundry/src/berkeley-db/db.1.85 -#DBPORT=$(DB)/PORT/irix.5.3 -#bsddb bsddbmodule.c -I$(DBPORT)/include -I$(DBPORT) $(DBPORT)/libdb.a - - - -# David Wayne Williams' soundex module (obsolete -- this will disappear!) -#soundex soundex.c - -# Helper module for various ascii-encoders -binascii binascii.c - -# Fred Drake's interface to the Python parser -parser parsermodule.c - -# Digital Creations' cStringIO and cPickle -cStringIO cStringIO.c -cPickle cPickle.c - - -# Lee Busby's SIGFPE modules. -# The library to link fpectl with is platform specific. -# Choose *one* of the options below for fpectl: - -# For SGI IRIX (tested on 5.3): -#fpectl fpectlmodule.c -lfpe - -# For Solaris with SunPro compiler (tested on Solaris 2.5 with SunPro C 4.2): -# (Without the compiler you don't have -lsunmath.) -#fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm - -# For other systems: see instructions in fpectlmodule.c. -#fpectl fpectlmodule.c ... - -# Test module for fpectl. No extra libraries needed. -#fpetest fpetestmodule.c - -# Andrew Kuchling's zlib module. -# This require zlib 1.1.3 (or later). -# See http://www.cdrom.com/pub/infozip/zlib/ -#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz - -# Interface to the Expat XML parser -# -# Expat is written by James Clark and must be downloaded separately -# (see below). The pyexpat module was written by Paul Prescod after a -# prototype by Jack Jansen. -# -# The Expat dist includes Windows .lib and .dll files. Home page is at -# http://www.jclark.com/xml/expat.html, the current production release is -# always ftp://ftp.jclark.com/pub/xml/expat.zip. -# -# EXPAT_DIR, below, should point to the expat/ directory created by -# unpacking the Expat source distribution. -# -# Note: the expat build process doesn't yet build a libexpat.a; you can -# do this manually while we try convince the author to add it. To do so, -# cd to EXPAT_DIR, run "make" if you have not done so, then run: -# -# ar cr libexpat.a xmltok/*.o xmlparse/*.o -# -#EXPAT_DIR=/usr/local/src/expat -#pyexpat pyexpat.c -DXML_NS -I$(EXPAT_DIR)/xmlparse -L$(EXPAT_DIR) -lexpat - -# Example -- included for reference only: -# xx xxmodule.c diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/linux/Modules/Setup.config dist-src/linux/Modules/Setup.config --- src/linux/Modules/Setup.config Wed Dec 31 19:00:00 1969 +++ dist-src/linux/Modules/Setup.config Tue Jan 16 17:38:38 2001 @@ -0,0 +1,13 @@ +# This file is transmogrified into Setup.config by config.status. + +# The purpose of this file is to conditionally enable certain modules +# based on configure-time options. + +# Garbage collection enabled with --with-cycle-gc +gc gcmodule.c + +# Threading +thread threadmodule.c + +# The rest of the modules in this file will be built by the setup.py script + Binary files src/linux/Parser/pgen and dist-src/linux/Parser/pgen differ Binary files src/linux/libpython2.0.a and dist-src/linux/libpython2.0.a differ Binary files src/linux/python and dist-src/linux/python differ diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/setup.cfg dist-src/setup.cfg --- src/setup.cfg Wed Dec 31 19:00:00 1969 +++ dist-src/setup.cfg Tue Jan 16 17:18:10 2001 @@ -0,0 +1,3 @@ + +[install] +install_platlib = /usr/local/lib/python2.0/lib-dynload \ No newline at end of file diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/setup.py dist-src/setup.py --- src/setup.py Wed Dec 31 19:00:00 1969 +++ dist-src/setup.py Tue Jan 16 17:24:26 2001 @@ -0,0 +1,475 @@ +# To be fixed: +# Implement --disable-modules setting +# Don't install to site-packages, but to lib-dynload + +import sys, os, string, getopt +from distutils import sysconfig +from distutils.core import Extension, setup +from distutils.command.build_ext import build_ext + +# This global variable is used to hold the list of modules to be disabled. +disabled_module_list = [] + +def find_file(path, filename): + for p in path: + fullpath = p + os.sep + filename + if os.path.exists(fullpath): + return fullpath + return None + +def module_enabled(extlist, modname): + """Returns whether the module 'modname' is present in the list + of extensions 'extlist'.""" + extlist = [ext for ext in extlist if ext.name == modname] + return len(extlist) + +class PyBuildExt(build_ext): + + def build_extensions(self): + from distutils.ccompiler import new_compiler + from distutils.sysconfig import customize_compiler + + # Detect which modules should be compiled + self.detect_modules() + + # Remove modules that are present on the disabled list + self.extensions = [ext for ext in self.extensions + if ext.name not in disabled_module_list] + + # Fix up the autodetected modules, prefixing all the source files + # with Modules/ and adding Python's include directory to the path. + (srcdir,) = sysconfig.get_config_vars('srcdir') + + # + moddir = os.path.join(os.getcwd(), 'Modules', srcdir) + moddir = os.path.normpath(moddir) + srcdir, tail = os.path.split(moddir) + srcdir = os.path.normpath(srcdir) + moddir = os.path.normpath(moddir) + + for ext in self.extensions: + ext.sources = [ os.path.join(moddir, filename) + for filename in ext.sources ] + ext.include_dirs.append( '.' ) # to get config.h + ext.include_dirs.append( os.path.join(srcdir, './Include') ) + + # If the signal module is being compiled, remove the sigcheck.o and + # intrcheck.o object files from the archive. + if module_enabled(self.extensions, 'signal'): + print 'removing sigcheck.o intrcheck.o' + ar, library = sysconfig.get_config_vars('AR', 'LIBRARY') + cmd = '%s d Modules/%s sigcheck.o intrcheck.o' % (ar, library) +# os.system(cmd) + + build_ext.build_extensions(self) + + def detect_modules(self): + # XXX this always gets an empty list -- hardwiring to + # a fixed list + lib_dirs = self.compiler.library_dirs[:] + lib_dirs += ['/lib', '/usr/lib', '/usr/local/lib'] +# std_lib_dirs = ['/lib', '/usr/lib'] + exts = [] + + # XXX Omitted modules: gl, pure, dl, SGI-specific modules + + # + # The following modules are all pretty straightforward, and compile + # on pretty much any POSIXish platform. + # + + # Some modules that are normally always on: + exts.append( Extension('regex', ['regexmodule.c', 'regexpr.c']) ) + exts.append( Extension('pcre', ['pcremodule.c', 'pypcre.c']) ) + exts.append( Extension('signal', ['signalmodule.c']) ) + + # XXX uncomment this with 2.0CVS + #exts.append( Extension('xreadlines', ['xreadlines.c']) ) + + # array objects + exts.append( Extension('array', ['arraymodule.c']) ) + # complex math library functions + exts.append( Extension('cmath', ['cmathmodule.c'], libraries=['m']) ) + # math library functions, e.g. sin() + exts.append( Extension('math', ['mathmodule.c'], libraries=['m']) ) + # fast string operations implemented in C + exts.append( Extension('strop', ['stropmodule.c']) ) + # time operations and variables + exts.append( Extension('time', ['timemodule.c'], libraries=['m']) ) + # operator.add() and similar goodies + exts.append( Extension('operator', ['operator.c']) ) + # access to the builtin codecs and codec registry + exts.append( Extension('_codecs', ['_codecsmodule.c']) ) + # static Unicode character database + exts.append( Extension('unicodedata', ['unicodedata.c', 'unicodedatabase.c']) ) + # Unicode Character Name expansion hash table + exts.append( Extension('ucnhash', ['ucnhash.c']) ) + # access to ISO C locale support + exts.append( Extension('_locale', ['_localemodule.c']) ) + + # Modules with some UNIX dependencies -- on by default: + # (If you have a really backward UNIX, select and socket may not be + # supported...) + + # fcntl(2) and ioctl(2) + exts.append( Extension('fcntl', ['fcntlmodule.c']) ) + # pwd(3) + exts.append( Extension('pwd', ['pwdmodule.c']) ) + # grp(3) + exts.append( Extension('grp', ['grpmodule.c']) ) + # posix (UNIX) errno values + exts.append( Extension('errno', ['errnomodule.c']) ) + # select(2); not on ancient System V + exts.append( Extension('select', ['selectmodule.c']) ) + + # The md5 module implements the RSA Data Security, Inc. MD5 + # Message-Digest Algorithm, described in RFC 1321. The necessary files + # md5c.c and md5.h are included here. + exts.append( Extension('md5', ['md5module.c', 'md5c.c']) ) + + # The sha module implements the SHA checksum algorithm. + # (NIST's Secure Hash Algorithm.) + exts.append( Extension('sha', ['shamodule.c']) ) + + # Tommy Burnette's 'new' module (creates new empty objects of certain kinds): + exts.append( Extension('new', ['newmodule.c']) ) + + # Helper module for various ascii-encoders + exts.append( Extension('binascii', ['binascii.c']) ) + + # Fred Drake's interface to the Python parser + exts.append( Extension('parser', ['parsermodule.c']) ) + + # Digital Creations' cStringIO and cPickle + exts.append( Extension('cStringIO', ['cStringIO.c']) ) + exts.append( Extension('cPickle', ['cPickle.c']) ) + + # Memory-mapped files (also works on Win32). + exts.append( Extension('mmap', ['mmapmodule.c']) ) + + # Lance Ellinghaus's modules: + # enigma-inspired encryption + exts.append( Extension('rotor', ['rotormodule.c']) ) + # syslog daemon interface + exts.append( Extension('syslog', ['syslogmodule.c']) ) + + # George Neville-Neil's timing module: + exts.append( Extension('timing', ['timingmodule.c']) ) + + # + # Here ends the simple stuff. From here on, modules need certain libraries, + # are platform-specific, or present other surprises. + # + + # Multimedia modules + # These don't work for 64-bit platforms!!! + # These represent audio samples or images as strings: + + # Disabled on 64-bit platforms + if sys.maxint != 9223372036854775807L: + # Operations on audio samples + exts.append( Extension('audioop', ['audioop.c']) ) + # Operations on images + exts.append( Extension('imageop', ['imageop.c']) ) + # Read SGI RGB image files (but coded portably) + exts.append( Extension('rgbimg', ['rgbimgmodule.c']) ) + + # readline + if (self.compiler.find_library_file(self.compiler.library_dirs, 'readline')): + exts.append( Extension('readline', ['readline.c'], + libraries=['readline', 'termcap']) ) + + # The crypt module is now disabled by default because it breaks builds + # on many systems (where -lcrypt is needed), e.g. Linux (I believe). + + if self.compiler.find_library_file(lib_dirs, 'crypt'): + libs = ['crypt'] + else: + libs = [] + exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) + + # socket(2) + # Detect SSL support for the socket module + if (self.compiler.find_library_file(lib_dirs, 'ssl') and + self.compiler.find_library_file(lib_dirs, 'crypto') ): + exts.append( Extension('_socket', ['socketmodule.c'], + libraries = ['ssl', 'crypto'], + define_macros = [('USE_SSL',1)] ) ) + else: + exts.append( Extension('_socket', ['socketmodule.c']) ) + + # Modules that provide persistent dictionary-like semantics. You will + # probably want to arrange for at least one of them to be available on + # your machine, though none are defined by default because of library + # dependencies. The Python module anydbm.py provides an + # implementation independent wrapper for these; dumbdbm.py provides + # similar functionality (but slower of course) implemented in Python. + + # The standard Unix dbm module: + if (self.compiler.find_library_file(lib_dirs, 'ndbm')): + exts.append( Extension('dbm', ['dbmmodule.c'], + libraries = ['ndbm'] ) ) + else: + exts.append( Extension('dbm', ['dbmmodule.c']) ) + + # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: + if (self.compiler.find_library_file(lib_dirs, 'gdbm')): + exts.append( Extension('gdbm', ['gdbmmodule.c'], + libraries = ['gdbm'] ) ) + + # Berkeley DB interface. + # + # This requires the Berkeley DB code, see + # ftp://ftp.cs.berkeley.edu/pub/4bsd/db.1.85.tar.gz + # + # Edit the variables DB and DBPORT to point to the db top directory + # and the subdirectory of PORT where you built it. + # + # (See http://electricrain.com/greg/python/bsddb3/ for an interface to + # BSD DB 3.x.) + + # Note: If a db.h file is found by configure, bsddb will be enabled + # automatically via Setup.config.in. It only needs to be enabled here + # if it is not automatically enabled there; check the generated + # Setup.config before enabling it here. + + if (self.compiler.find_library_file(lib_dirs, 'db') and + find_file(['/usr/include', '/usr/local/include'] + self.include_dirs, + 'db_185.h') ): + exts.append( Extension('bsddb', ['bsddbmodule.c'], + libraries = ['db'] ) ) + + # The mpz module interfaces to the GNU Multiple Precision library. + # You need to ftp the GNU MP library. + # This was originally written and tested against GMP 1.2 and 1.3.2. + # It has been modified by Rob Hooft to work with 2.0.2 as well, but I + # haven't tested it recently. For a more complete module, + # refer to pympz.sourceforge.net. + + # A compatible MP library unencombered by the GPL also exists. It was + # posted to comp.sources.misc in volume 40 and is widely available from + # FTP archive sites. One URL for it is: + # ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume40/fgmp/part01.Z + + # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: + if (self.compiler.find_library_file(lib_dirs, 'gmp')): + exts.append( Extension('mpz', ['mpzmodule.c'], + libraries = ['gmp'] ) ) + + + # Unix-only modules + if sys.platform not in ['mac', 'win32']: + # Steen Lumholt's termios module + exts.append( Extension('termios', ['termios.c']) ) + # Jeremy Hylton's rlimit interface + exts.append( Extension('resource', ['resource.c']) ) + + if (self.compiler.find_library_file(lib_dirs, 'nsl')): + exts.append( Extension('nis', ['nismodule.c'], + libraries = ['nsl']) ) + + # Curses support, requring the System V version of curses, often + # provided by the ncurses library. + if sys.platform == 'sunos4': + include_dirs += ['/usr/5include'] + lib_dirs += ['/usr/5lib'] + + if (self.compiler.find_library_file(lib_dirs, 'ncurses')): + curses_libs = ['ncurses'] + exts.append( Extension('_curses', ['_cursesmodule.c'], + libraries = curses_libs) ) + elif (self.compiler.find_library_file(lib_dirs, 'curses')): + if (self.compiler.find_library_file(lib_dirs, 'terminfo')): + curses_libs = ['curses', 'terminfo'] + else: + curses_libs = ['curses', 'termcap'] + + exts.append( Extension('_curses', ['_cursesmodule.c'], + libraries = curses_libs) ) + + # If the curses module is enabled, check for the panel module + if (os.path.exists('Modules/_curses_panel.c') and + module_enabled(exts, '_curses') and + self.compiler.find_library_file(lib_dirs, 'panel')): + exts.append( Extension('_curses_panel', ['_curses_panel.c'], + libraries = ['panel'] + curses_libs) ) + + + + # Lee Busby's SIGFPE modules. + # The library to link fpectl with is platform specific. + # Choose *one* of the options below for fpectl: + + if sys.platform == 'irix5': + # For SGI IRIX (tested on 5.3): + exts.append( Extension('fpectl', ['fpectlmodule.c'], + libraries=['fpe']) ) + elif 0: # XXX + # For Solaris with SunPro compiler (tested on Solaris 2.5 with SunPro C 4.2): + # (Without the compiler you don't have -lsunmath.) + #fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm + pass + else: + # For other systems: see instructions in fpectlmodule.c. + #fpectl fpectlmodule.c ... + exts.append( Extension('fpectl', ['fpectlmodule.c']) ) + + + # Andrew Kuchling's zlib module. + # This require zlib 1.1.3 (or later). + # See http://www.cdrom.com/pub/infozip/zlib/ + if (self.compiler.find_library_file(lib_dirs, 'z')): + exts.append( Extension('zlib', ['zlibmodule.c'], + libraries = ['z']) ) + + # Interface to the Expat XML parser + # + # Expat is written by James Clark and must be downloaded separately + # (see below). The pyexpat module was written by Paul Prescod after a + # prototype by Jack Jansen. + # + # The Expat dist includes Windows .lib and .dll files. Home page is at + # http://www.jclark.com/xml/expat.html, the current production release is + # always ftp://ftp.jclark.com/pub/xml/expat.zip. + # + # EXPAT_DIR, below, should point to the expat/ directory created by + # unpacking the Expat source distribution. + # + # Note: the expat build process doesn't yet build a libexpat.a; you can + # do this manually while we try convince the author to add it. To do so, + # cd to EXPAT_DIR, run "make" if you have not done so, then run: + # + # ar cr libexpat.a xmltok/*.o xmlparse/*.o + # + if (self.compiler.find_library_file(lib_dirs, 'expat')): + exts.append( Extension('pyexpat', ['pyexpat.c'], + libraries = ['expat']) ) + + # Platform-specific libraries + plat = sys.platform + if plat == 'linux2': + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + + if plat == 'sunos5': + # SunOS specific modules + exts.append( Extension('sunaudiodev', ['sunaudiodev.c']) ) + + # The _tkinter module. + # + # The command for _tkinter is long and site specific. Please + # uncomment and/or edit those parts as indicated. If you don't have a + # specific extension (e.g. Tix or BLT), leave the corresponding line + # commented out. (Leave the trailing backslashes in! If you + # experience strange errors, you may want to join all uncommented + # lines and remove the backslashes -- the backslash interpretation is + # done by the shell's "read" command and it may not be implemented on + # every system. + + # XXX need to add the old 7.x/4.x unsynced version numbers here + for tcl_version, tk_version in [('8.4', '8.4'), + ('8.3', '8.3'), + ('8.2', '8.2'), + ('8.1', '8.1'), + ('8.0', '8.0')]: + tklib = self.compiler.find_library_file(lib_dirs, + 'tk' + tk_version ) + tcllib = self.compiler.find_library_file(lib_dirs, + 'tcl' + tcl_version ) + if tklib and tcllib: + # Exit the loop when we've found the Tcl/Tk libraries + break + + if (tcllib and tklib): + include_dirs = [] ; libs = [] ; defs = [] ; added_lib_dirs = [] + + # Determine the prefix where Tcl/Tk is installed by + # chopping off the 'lib' suffix. + prefix = os.path.dirname(tcllib) + L = string.split(prefix, os.sep) + if L[-1] == 'lib': del L[-1] + prefix = string.join(L, os.sep) + + if prefix + os.sep + 'lib' not in lib_dirs: + added_lib_dirs.append( prefix + os.sep + 'lib') + + # Check for the include files on Debian, where + # they're put in /usr/include/{tcl,tk}X.Y + # XXX currently untested + debian_tcl_include = ( prefix + os.sep + 'include/tcl' + + tcl_version ) + debian_tk_include = ( prefix + os.sep + 'include/tk' + + tk_version ) + if os.path.exists(debian_tcl_include): + include_dirs = [debian_tcl_include, debian_tk_include] + else: + # Fallback for non-Debian systems + include_dirs = [prefix + os.sep + 'include'] + + # Check for various platform-specific directories + if sys.platform == 'sunos5': + include_dirs.append('/usr/openwin/include') + added_lib_dirs.append('/usr/openwin/lib') + elif os.path.exists('/usr/X11R6/include'): + include_dirs.append('/usr/X11R6/include') + added_lib_dirs.append('/usr/X11R6/lib') + elif os.path.exists('/usr/X11R5/include'): + include_dirs.append('/usr/X11R5/include') + added_lib_dirs.append('/usr/X11R5/lib') + else: + # Assume default form + include_dirs.append('/usr/X11/include') + added_lib_dirs.append('/usr/X11/lib') + + if self.compiler.find_library_file(lib_dirs + added_lib_dirs, 'tix4.1.8.0'): + defs.append( ('WITH_TIX', 1) ) + libs.append('tix4.1.8.0') + + if self.compiler.find_library_file(lib_dirs + added_lib_dirs, 'BLT8.0'): + defs.append( ('WITH_BLT', 1) ) + libs.append('BLT8.0') + + if sys.platform in ['aix3', 'aix4']: + libs.append('ld') + + # X11 libraries to link with: + libs.append('X11') + + tklib, ext = os.path.splitext(tklib) + tcllib, ext = os.path.splitext(tcllib) + tklib = os.path.basename(tklib) + tcllib = os.path.basename(tcllib) + libs.append( tklib[3:] ) # Chop off 'lib' prefix + libs.append( tcllib[3:] ) + + exts.append( Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], + define_macros=[('WITH_APPINIT', 1)] + defs, + include_dirs = include_dirs, + libraries = libs, + library_dirs = added_lib_dirs, + ) + ) + # XXX handle these + # *** Uncomment and edit for PIL (TkImaging) extension only: + # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ + # *** Uncomment and edit for TOGL extension only: + # -DWITH_TOGL togl.c \ + # *** Uncomment these for TOGL extension only: + # -lGL -lGLU -lXext -lXmu \ + + self.extensions = exts + +def main(): + setup(name = 'Python standard library', + version = '2.0', + cmdclass = {'build_ext':PyBuildExt}, + # The struct module is defined here, because build_ext won't be + # called unless there's at least one extension module defined. + ext_modules=[Extension('struct', ['structmodule.c'])] + ) + +# --install-platlib +if __name__ == '__main__': + sysconfig.set_python_build() + main() + diff --new-file -x CVS -x *~ -x *.pyc -x .* -x my-Setup -x Makefile -x graminit.c -x graminit.h -x *.o -x *.so -x config.* -x Makefile.pre -x Setup -x buildno -ur src/test.sh dist-src/test.sh --- src/test.sh Wed Dec 31 19:00:00 1969 +++ dist-src/test.sh Tue Jan 16 16:01:47 2001 @@ -0,0 +1,16 @@ +#! /usr/local/bin/bash + +rm config.cache ; ./configure +make clean ; make ; cp python python-t-g + +rm config.cache ; ./configure --without-thread +make clean ; make ; cp python python-nt-g + +rm config.cache ; ./configure --without-cycle-gc +make clean ; make ; cp python python-t-ng + +rm config.cache ; ./configure --without-cycle-gc --without-thread +make clean ; make ; cp python python-nt-ng + + +