X-Git-Url: https://git.distorted.org.uk/~mdw/runlisp/blobdiff_plain/207202a314beb383030b3feb979afec12a27d5ce..514f1de64a582d3a183b853990484a2ac72f86a8:/mdwsetup.py diff --git a/mdwsetup.py b/mdwsetup.py index a1f56b6..0210714 100644 --- a/mdwsetup.py +++ b/mdwsetup.py @@ -74,8 +74,11 @@ def progoutput(command): status zero. """ kid = SUB.Popen(command, stdout = SUB.PIPE) - out = kid.stdout.readline() - junk = kid.stdout.read() + try: + out = kid.stdout.readline() + junk = kid.stdout.read(1) + finally: + kid.stdout.close() if junk != '': raise ValueError \ ("Child process `%s' produced unspected output %r" % (command, junk)) rc = kid.wait() @@ -97,22 +100,24 @@ def pkg_config(pkg, version): library-directory names are in LIBDIRS; and the library names themselves are in LIBS. """ - spec = '%s >= %s' % (pkg, version) + def weird(what, word): raise ValueError \ ("Unexpected `%s' item `%s' from package `%s'" % (what, word, pkg)) - for word in progoutput(['pkg-config', '--cflags', spec]).split(): - if word.startswith('-I'): - INCLUDEDIRS.append(word[2:]) - else: - weird('--cflags', word) - for word in progoutput(['pkg-config', '--libs', spec]).split(): - if word.startswith('-L'): - LIBDIRS.append(word[2:]) - elif word.startswith('-l'): - LIBS.append(word[2:]) - else: - weird('--libs', word) + + spec = '%s >= %s' % (pkg, version) + + try: cflags = OS.environ["%s_CFLAGS" % pkg] + except KeyError: cflags = progoutput(['pkg-config', '--cflags', spec]) + for word in cflags.split(): + if word.startswith('-I'): INCLUDEDIRS.append(word[2:]) + else: weird('CFLAGS', word) + try: libs = OS.environ["%s_LIBS" % pkg] + except KeyError: libs = progoutput(['pkg-config', '--libs', spec]) + for word in libs.split(): + if word.startswith('-L'): LIBDIRS.append(word[2:]) + elif word.startswith('-l'): LIBS.append(word[2:]) + else: weird('LIBS', word) ###-------------------------------------------------------------------------- ### Substituting variables in files.