#! /usr/bin/env python
from distutils.core import setup, Extension
import sys, glob, os, os.path, time
try:
set
except:
from sets import Set as set
if not sys.platform.startswith('freebsd'):
print >> sys.stdout, "==> This package is for FreeBSD only."
raise SystemExit
DEPENDS = glob.glob('src/*.c') + glob.glob('src/*.h')
DEPENDS.remove('src/freebsdmodule.c')
DEFFILES = ('src/.const.def', 'src/.methods.def', 'src/.sources.def',
'src/.types.def', 'src/.libraries.def')
sys.path.append('tools') # for source generators :)
def isoutdated(fname):
if not os.access(fname, os.R_OK):
return True
srcmtime = max(map(os.path.getmtime, DEPENDS))
genmtime = os.path.getmtime(fname)
return (genmtime < srcmtime)
def update_deffiles():
if filter(None, map(isoutdated, DEFFILES)):
print "==> Generating definition files.."
import gendefs
gendefs.main()
# update *.def files if sources are newer over them.
update_deffiles()
# get effective libraries in this system
libs = os.popen('unifdef -D__FreeBSD_version=`sysctl -n kern.osreldate` ' +
'src/.libraries.def', 'r').read().split()
libs = list(set(filter(None, libs)))
setup(name = "py-freebsd",
version = "0.9.3",
description = "Python Interface to FreeBSD Platform Library",
author = "Hye-Shik Chang",
author_email = "perky@FreeBSD.org",
license = "BSD",
platforms = ['freebsd4', 'freebsd5', 'freebsd6'],
py_modules = ['freebsd_compat02'],
ext_modules = [
Extension(
"freebsd",
["src/freebsdmodule.c"],
libraries=libs,
library_dirs=['/lib', '/usr/lib'],
depends=DEPENDS,
)
],
)
syntax highlighted by Code2HTML, v. 0.9.1