summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/compilec.py
blob: 7dc92904d90c43f3478210b08e09306aa516eaf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env python

import sys, os
from distutils.core import setup, Extension

assert len(sys.argv) == 1
sys.argv.append("build")

setup(name="CModule",
	  version="0.9.0",
	  description="rdiff-backup's C component",
	  ext_modules=[Extension("C", ["cmodule.c"]),
				   Extension("_librsync", ["_librsyncmodule.c"],
							 libraries=["rsync"])])

def get_libraries():
	"""Return filename of C.so and _librsync.so files"""
	build_files = os.listdir("build")
	lib_dirs = filter(lambda x: x.startswith("lib"), build_files)
	assert len(lib_dirs) == 1, "No library directory or too many"
	libdir = lib_dirs[0]
	clib = os.path.join("build", libdir, "C.so")
	rsynclib = os.path.join("build", libdir, "_librsync.so")
	try:
		os.lstat(clib)
		os.lstat(rsynclib)
	except os.error:
		print "Library file missing"
		sys.exit(1)
	return clib, rsynclib
	
for filename in get_libraries():
	assert not os.system("mv '%s' ." % (filename,))
assert not os.system("rm -rf build")