X-Git-Url: https://git.distorted.org.uk/~mdw/cfd/blobdiff_plain/2b0b2b455bdba783ccaca4b53bf167d4d102b299..ab5cf08d58804d59e0b8f785881d770acfedbf4e:/mdwsetup.py diff --git a/mdwsetup.py b/mdwsetup.py index 6acbdb6..06990a8 100644 --- a/mdwsetup.py +++ b/mdwsetup.py @@ -76,12 +76,10 @@ def progoutput(command): kid = SUB.Popen(command, stdout = SUB.PIPE) out = kid.stdout.readline() junk = kid.stdout.read() - if junk != '': - raise ValueError, \ - "Child process `%s' produced unspected output %r" % (command, junk) + if junk != '': raise ValueError \ + ("Child process `%s' produced unspected output %r" % (command, junk)) rc = kid.wait() - if rc != 0: - raise SubprocessFailure, (command, rc) + if rc != 0: raise SubprocessFailure(command, rc) return out.rstrip('\n') ###-------------------------------------------------------------------------- @@ -99,22 +97,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) + raise ValueError \ + ("Unexpected `%s' item `%s' from package `%s'" % (what, word, pkg)) + + 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. @@ -181,7 +181,7 @@ class Generate (BaseGenFile): temp = me.target + '.new' with open(temp, 'w') as ft: rc = SUB.call([SYS.executable, me.sources[0]], stdout = ft) - if rc != 0: raise SubprocessFailure, (me.sources[0], rc) + if rc != 0: raise SubprocessFailure(me.sources[0], rc << 8) OS.rename(temp, me.target) ## Backward compatibility.