summaryrefslogtreecommitdiff
path: root/lang/python21
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2002-04-09 04:14:39 +0000
committerjlam <jlam@pkgsrc.org>2002-04-09 04:14:39 +0000
commit5ec676a042efc2d29390f0f5b06037b21e57f456 (patch)
tree6faa2b77a7bfa2ab416560ed8ef935ef9fe14c0e /lang/python21
parent57ea52bf0a64ceaa0878d9566fa7792e30dd529a (diff)
downloadpkgsrc-5ec676a042efc2d29390f0f5b06037b21e57f456.tar.gz
Teach the extension building process about buildlink, and allow passing
LDFLAGS to the linker command when linking a python extension. This lets us pass the right flags to correctly find libraries required for certain extensions, e.g. zlib.so. Also explicitly comment out a few extensions that aren't being built and should never be.
Diffstat (limited to 'lang/python21')
-rw-r--r--lang/python21/Makefile13
-rw-r--r--lang/python21/distinfo5
-rw-r--r--lang/python21/patches/patch-ac62
-rw-r--r--lang/python21/patches/patch-ad23
4 files changed, 93 insertions, 10 deletions
diff --git a/lang/python21/Makefile b/lang/python21/Makefile
index f4d29a935e2..d8aa82af214 100644
--- a/lang/python21/Makefile
+++ b/lang/python21/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.4 2002/01/22 13:05:03 drochner Exp $
+# $NetBSD: Makefile,v 1.5 2002/04/09 04:14:39 jlam Exp $
#
DISTNAME= Python-2.1.2
@@ -11,7 +11,8 @@ MAINTAINER= packages@netbsd.org
HOMEPAGE= http://www.python.org/
COMMENT= Interpreted, interactive, object-oriented programming language
-GNU_CONFIGURE= YES
+USE_BUILDLINK_ONLY= YES
+GNU_CONFIGURE= YES
CONFIGURE_ARGS+= --without-threads
INSTALL_TARGET= altinstall
@@ -19,4 +20,12 @@ INSTALL_TARGET= altinstall
post-extract:
${MV} ${WRKSRC}/Tools/scripts/pydoc ${WRKSRC}/Tools/scripts/pydoc2.1
+.include "../../devel/zlib/buildlink.mk"
.include "../../mk/bsd.pkg.mk"
+
+# This comes after bsd.pkg.mk so that the LDFLAGS here overrides the one
+# set earlier in the environment (last definition wins).
+#
+.if ${OBJECT_FMT} == "a.out"
+MAKE_ENV+= LDFLAGS="${LDFLAGS:S/-Wl,//}"
+.endif
diff --git a/lang/python21/distinfo b/lang/python21/distinfo
index 4f4d1fec5a4..3f83843b5ab 100644
--- a/lang/python21/distinfo
+++ b/lang/python21/distinfo
@@ -1,7 +1,8 @@
-$NetBSD: distinfo,v 1.4 2002/01/28 09:09:15 drochner Exp $
+$NetBSD: distinfo,v 1.5 2002/04/09 04:14:40 jlam Exp $
SHA1 (Python-2.1.2.tgz) = f7279eaa43a6692948586279c5e85992093a70cc
Size (Python-2.1.2.tgz) = 6189889 bytes
SHA1 (patch-aa) = 8273acc49a9eedad6e09685098178f3b7fb8f1c6
SHA1 (patch-ab) = f87a4d5c76182ab27ba79b42f00e8a2ff63bcf2b
-SHA1 (patch-ac) = 48c85ff3b1d9cca132d86090aafa74e8e40e448b
+SHA1 (patch-ac) = 53a478a9b0ff30e75a141c1c3621edf052df9206
+SHA1 (patch-ad) = 769bcd7803723c8d538a74173792ffcc491fa414
diff --git a/lang/python21/patches/patch-ac b/lang/python21/patches/patch-ac
index c7189e4a2fe..e8a643c114c 100644
--- a/lang/python21/patches/patch-ac
+++ b/lang/python21/patches/patch-ac
@@ -1,8 +1,30 @@
-$NetBSD: patch-ac,v 1.2 2002/01/28 09:09:16 drochner Exp $
+$NetBSD: patch-ac,v 1.3 2002/04/09 04:14:41 jlam Exp $
---- setup.py.orig Thu Dec 27 22:51:02 2001
-+++ setup.py Sun Jan 27 15:53:18 2002
-@@ -265,13 +265,13 @@
+--- setup.py.orig Thu Dec 27 16:51:02 2001
++++ setup.py
+@@ -145,11 +145,16 @@
+ return platform
+
+ def detect_modules(self):
+- # Ensure that /usr/local is always used
+- if '/usr/local/lib' not in self.compiler.library_dirs:
+- self.compiler.library_dirs.insert(0, '/usr/local/lib')
+- if '/usr/local/include' not in self.compiler.include_dirs:
+- self.compiler.include_dirs.insert(0, '/usr/local/include' )
++ # Add the buildlink directories for pkgsrc
++ if os.environ.has_key('BUILDLINK_DIR'):
++ dir = os.environ['BUILDLINK_DIR']
++ libdir = dir + '/lib'
++ incdir = dir + '/include'
++ if libdir not in self.compiler.library_dirs:
++ self.compiler.library_dirs.insert(0, libdir)
++ if incdir not in self.compiler.include_dirs:
++ self.compiler.include_dirs.insert(0, incdir)
++
+
+ # lib_dirs and inc_dirs are used to search for files;
+ # if a file is found in one of those directories, it can
+@@ -265,13 +270,13 @@
# These represent audio samples or images as strings:
# Disabled on 64-bit platforms
@@ -20,7 +42,35 @@ $NetBSD: patch-ac,v 1.2 2002/01/28 09:09:16 drochner Exp $
# readline
if self.compiler.find_library_file(lib_dirs, 'readline'):
-@@ -417,8 +417,8 @@
+@@ -296,14 +301,10 @@
+ # socket(2)
+ # Detect SSL support for the socket module
+ ssl_incs = find_file('openssl/ssl.h', inc_dirs,
+- ['/usr/local/ssl/include',
+- '/usr/contrib/ssl/include/'
+- ]
++ []
+ )
+ ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
+- ['/usr/local/ssl/lib',
+- '/usr/contrib/ssl/lib/'
+- ] )
++ [] )
+
+ if (ssl_incs is not None and
+ ssl_libs is not None):
+@@ -408,8 +409,8 @@
+
+ if (self.compiler.find_library_file(lib_dirs, 'ncurses')):
+ curses_libs = ['ncurses']
+- exts.append( Extension('_curses', ['_cursesmodule.c'],
+- libraries = curses_libs) )
++# exts.append( Extension('_curses', ['_cursesmodule.c'],
++# libraries = curses_libs) )
+ elif (self.compiler.find_library_file(lib_dirs, 'curses')) and platform[:6] != 'darwin':
+ # OSX has an old Berkeley curses, not good enough for the _curses module.
+ if (self.compiler.find_library_file(lib_dirs, 'terminfo')):
+@@ -417,8 +418,8 @@
else:
curses_libs = ['curses', 'termcap']
@@ -31,7 +81,7 @@ $NetBSD: patch-ac,v 1.2 2002/01/28 09:09:16 drochner Exp $
# If the curses module is enabled, check for the panel module
if (os.path.exists('Modules/_curses_panel.c') and
-@@ -609,7 +609,7 @@
+@@ -609,7 +610,7 @@
ext_modules=[Extension('struct', ['structmodule.c'])],
# Scripts to install
diff --git a/lang/python21/patches/patch-ad b/lang/python21/patches/patch-ad
new file mode 100644
index 00000000000..e598a67f544
--- /dev/null
+++ b/lang/python21/patches/patch-ad
@@ -0,0 +1,23 @@
+$NetBSD: patch-ad,v 1.1 2002/04/09 04:14:41 jlam Exp $
+
+--- Lib/distutils/command/build_ext.py.orig Sat Mar 17 15:15:41 2001
++++ Lib/distutils/command/build_ext.py
+@@ -461,8 +461,18 @@
+ # that go into the mix.
+ if ext.extra_objects:
+ objects.extend(ext.extra_objects)
++
++ # Two possible sources for extra linker arguments:
++ # - 'extra_link_args' in Extension object
++ # - LDFLAGS environment variable
++ # The environment variable should take precedence, and
++ # any sensible compiler will give precedence to later
++ # command line args. Hence we combine them in order:
+ extra_args = ext.extra_link_args or []
+
++
++ if os.environ.has_key('LDFLAGS'):
++ extra_args.extend(string.split(os.environ['LDFLAGS']))
+
+ self.compiler.link_shared_object(
+ objects, ext_filename,