Rev 1240: Merge build improvements. in file:///data/jelmer/bzr-svn/svn-1.5/
Jelmer Vernooij
jelmer at samba.org
Sun Jun 22 15:01:08 BST 2008
At file:///data/jelmer/bzr-svn/svn-1.5/
------------------------------------------------------------
revno: 1240
revision-id: jelmer at samba.org-20080622140106-1143ouptxiwik0p2
parent: jelmer at samba.org-20080622134730-epzeouzkor99n5b5
parent: jelmer at samba.org-20080622140033-us0bh43lcatmqh8o
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: svn-1.5
timestamp: Sun 2008-06-22 16:01:06 +0200
message:
Merge build improvements.
modified:
setup.py setup.py-20060502115218-86950492da22353f
------------------------------------------------------------
revno: 1196.1.75
revision-id: jelmer at samba.org-20080622140033-us0bh43lcatmqh8o
parent: jelmer at samba.org-20080622134301-ipt7j95at288i3t3
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Sun 2008-06-22 16:00:33 +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 14:00:33 +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_args"] = [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