summaryrefslogtreecommitdiff
path: root/rdiff-backup
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup')
-rwxr-xr-xrdiff-backup/dist/setup.py41
1 files changed, 37 insertions, 4 deletions
diff --git a/rdiff-backup/dist/setup.py b/rdiff-backup/dist/setup.py
index cb571cd..f291c39 100755
--- a/rdiff-backup/dist/setup.py
+++ b/rdiff-backup/dist/setup.py
@@ -9,6 +9,38 @@ if sys.version_info[:2] < (2,2):
print "Sorry, rdiff-backup requires version 2.2 or later of python"
sys.exit(1)
+# Defaults
+lflags_arg = []
+libname = ['rsync']
+incdir_list = libdir_list = None
+
+if os.name == 'posix':
+ LIBRSYNC_DIR = os.environ.get('LIBRSYNC_DIR', '')
+ LFLAGS = os.environ.get('LFLAGS', [])
+ LIBS = os.environ.get('LIBS', [])
+
+ # Handle --librsync-dir=[PATH] and --lflags=[FLAGS]
+ args = sys.argv[:]
+ for arg in args:
+ if arg.startswith('--librsync-dir='):
+ LIBRSYNC_DIR = arg.split('=')[1]
+ sys.argv.remove(arg)
+ elif arg.startswith('--lflags='):
+ LFLAGS = arg.split('=')[1].split()
+ sys.argv.remove(arg)
+ elif arg.startswith('--libs='):
+ LIBS = arg.split('=')[1].split()
+ sys.argv.remove(arg)
+
+ if LFLAGS or LIBS:
+ lflags_arg = LFLAGS + LIBS
+
+ if LIBRSYNC_DIR:
+ incdir_list = [os.path.join(LIBRSYNC_DIR, 'include')]
+ libdir_list = [os.path.join(LIBRSYNC_DIR, 'lib')]
+ if '-lrsync' in LIBS:
+ libname = []
+
setup(name="rdiff-backup",
version=version_string,
description="Local/remote mirroring+incremental backup",
@@ -19,11 +51,12 @@ setup(name="rdiff-backup",
ext_modules = [Extension("rdiff_backup.C", ["cmodule.c"]),
Extension("rdiff_backup._librsync",
["_librsyncmodule.c"],
- libraries=["rsync"])],
+ include_dirs=incdir_list,
+ library_dirs=libdir_list,
+ libraries=libname,
+ extra_link_args=lflags_arg)],
scripts = ['rdiff-backup'],
data_files = [('share/man/man1', ['rdiff-backup.1']),
- ('share/doc/rdiff-backup-%s' % version_string,
+ ('share/doc/rdiff-backup-%s' % (version_string,),
['CHANGELOG', 'COPYING', 'README', 'FAQ.html'])])
-
-