Rev 1271: Make sure all the right flags are specified when compiling extensions. in http://people.samba.org/bzr/jelmer/bzr-svn/0.4
Jelmer Vernooij
jelmer at samba.org
Sun Jun 22 14:57:46 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-svn/0.4
------------------------------------------------------------
revno: 1271
revision-id: jelmer at samba.org-20080622135744-1zc9y5nenchu7849
parent: jelmer at samba.org-20080622134301-ipt7j95at288i3t3
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Sun 2008-06-22 15:57:44 +0200
message:
Make sure all the right flags are specified when compiling extensions.
modified:
setup.py setup.py-20060502115218-86950492da22353f
=== modified file 'setup.py'
--- a/setup.py 2008-06-22 08:45:53 +0000
+++ b/setup.py 2008-06-22 13:57:44 +0000
@@ -6,21 +6,36 @@
from distutils.extension import Extension
import os
-def apr_include_dir():
+def apr_build_data():
"""Determine the APR header file location."""
- f = os.popen("apr-config --includedir")
- dir = f.read().rstrip("\n")
- if not os.path.isdir(dir):
+ def apr_config(arg):
+ f = os.popen("apr-config %s" % arg)
+ dir = f.read().rstrip("\n")
+ return dir
+ includedir = apr_config("--includedir")
+ if not os.path.isdir(includedir):
raise Exception("APR development headers not found")
- return dir
+ ldflags = apr_config("--ldflags")
+ return (includedir, ldflags)
-def svn_include_dir():
+def svn_build_data():
"""Determine the Subversion header file location."""
- dirs = ["/usr/local/include/subversion-1", "/usr/include/subversion-1"]
- for dir in dirs:
- if os.path.isdir(dir):
- return dir
- raise Exception("Subversion development headers not found")
+ basedirs = ["/usr/local", "/usr"]
+ for basedir in basedirs:
+ includedir = os.path.join(basedir, "include/subversion-1")
+ if os.path.isdir(includedir):
+ return (includedir, os.path.join(basedir, "lib"))
+ raise Exception("Subversion development files not found")
+
+(apr_includedir, apr_ldflags) = apr_build_data()
+(svn_includedir, svn_libdir) = svn_build_data()
+
+def SvnExtension(*args, **kwargs):
+ kwargs["include_dirs"] = [apr_includedir, svn_includedir]
+ kwargs["library_dirs"] = [svn_libdir]
+ kwargs["extra_link_flags"] = [apr_ldflags]
+ return Extension(*args, **kwargs)
+
setup(name='bzr-svn',
description='Support for Subversion branches in Bazaar',
@@ -42,14 +57,10 @@
'bzrlib.plugins.svn.mapping3',
'bzrlib.plugins.svn.tests'],
ext_modules=[
- Extension("core", ["core.c", "util.c"], libraries=["svn_subr-1"],
- include_dirs=[apr_include_dir(), svn_include_dir()]),
- Extension("client", ["client.c", "editor.c", "util.c", "ra.c", "wc.c"], libraries=["svn_client-1"],
- include_dirs=[apr_include_dir(), svn_include_dir()]),
- Extension("ra", ["ra.c", "util.c", "editor.c"], libraries=["svn_ra-1"],
- include_dirs=[apr_include_dir(), svn_include_dir()]),
- Extension("repos", ["repos.c", "util.c"], libraries=["svn_repos-1"],
- include_dirs=[apr_include_dir(), svn_include_dir()]),
- Extension("wc", ["wc.c", "util.c", "editor.c"], libraries=["svn_wc-1"],
- include_dirs=[apr_include_dir(), svn_include_dir()])],
+ SvnExtension("core", ["core.c", "util.c"], libraries=["svn_subr-1"]),
+ SvnExtension("client", ["client.c", "editor.c", "util.c", "ra.c", "wc.c"], libraries=["svn_client-1"]),
+ SvnExtension("ra", ["ra.c", "util.c", "editor.c"], libraries=["svn_ra-1"]),
+ SvnExtension("repos", ["repos.c", "util.c"], libraries=["svn_repos-1"]),
+ SvnExtension("wc", ["wc.c", "util.c", "editor.c"], libraries=["svn_wc-1"]),
+ ]
)
More information about the bazaar-commits
mailing list