5ae8c34768dcc99ba296da1bd6aafb92373d66e7
3 from distutils
.core
import setup
, Extension
14 if p
.read() != '': raise 'extra junk from %s' % cmd
16 return out
.rstrip('\n')
18 def libconfig(lib
, ver
):
19 config
= lib
+ '-config'
20 if system('%s --check %s' %
(config
, ver
)):
21 raise '%s version %s not found' %
(lib
, ver
)
22 version
= progoutput('%s --version' % config
)
23 for i
in progoutput('%s --cflags' % config
).split():
24 if i
[:2] == '-I': incdirs
.append(i
[2:])
25 else: raise 'strange cflags item %s' % i
26 for i
in progoutput('%s --libs' % config
).split():
27 if i
[:2] == '-L': libdirs
.append(i
[2:])
28 elif i
[:2] == '-l': libs
.append(i
[2:])
29 else: raise 'strange libs item %s' % i
40 libconfig('mLib', '2.0.3')
41 libconfig('checkpath', '1.1.0')
43 class SubprocessFailure (Exception):
44 def __init__(me
, file, rc
):
50 return '%s failed (rc = %d)' %
(me
.file, WEXITSTATUS(me
.rc
))
51 elif WIFSIGNALED(me
.rc
):
52 return '%s died (signal %d)' %
(me
.file, WTERMSIG(me
.rc
))
54 return '%s died inexplicably' %
(me
.file)
56 chk
= Extension('checkpath',
58 include_dirs
= uniquify(incdirs
),
59 library_dirs
= uniquify(libdirs
),
60 libraries
= uniquify(libs
))
61 setup(name
= 'CheckPath',
63 description
= 'Checking paths for security',
64 author
= 'Straylight/Edgeware',
65 author_email
= 'mdw@nsict.org',
66 license
= 'GNU General Public License',