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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
#!/usr/bin/env python
import string
import os
import sys
def msg_checking(msg):
print "Checking", msg, "...",
def execute(cmd, display = 0):
if display:
print cmd
return os.system(cmd)
def run_test(input, flags = ''):
try:
f = open('_temp.c', 'w')
f.write(input)
f.close()
compile_cmd = '%s -o _temp _temp.c %s' % (os.environ.get('CC', 'cc'),
flags)
if not execute(compile_cmd):
execute('./_temp')
finally:
execute('rm -f _temp.c _temp')
ogg_test_program = '''
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ogg/ogg.h>
int main ()
{
system("touch conf.oggtest");
return 0;
}
'''
def find_ogg(ogg_prefix = '/usr/local', enable_oggtest = 1):
"""A rough translation of ogg.m4"""
ogg_cflags = []
ogg_libs = []
ogg_include_dir = ogg_prefix + '/include'
ogg_lib_dir = ogg_prefix + '/lib'
ogg_libs = 'ogg'
msg_checking('for Ogg')
if enable_oggtest:
execute('rm -f conf.oggtest', 0)
try:
run_test(ogg_test_program, flags="-I" + ogg_include_dir)
if not os.path.isfile('conf.oggtest'):
raise RuntimeError, "Did not produce output"
execute('rm conf.oggtest', 0)
except:
print "test program failed"
return None
print "success"
return {'ogg_libs' : ogg_libs,
'ogg_lib_dir' : ogg_lib_dir,
'ogg_include_dir' : ogg_include_dir}
def write_data(data):
f = open('Setup', 'w')
for item in data.items():
f.write('%s = %s\n' % item)
f.close()
print "Wrote Setup file"
def print_help():
print '''%s
--prefix Give the prefix in which ogg was installed.''' % sys.argv[0]
sys.exit(0)
def parse_args():
data = {}
argv = sys.argv
for pos in range(len(argv)):
if argv[pos] == '--help':
print_help()
if argv[pos] == '--prefix':
pos = pos + 1
if len(argv) == pos:
print "Prefix needs an argument"
sys.exit(1)
data['prefix'] = argv[pos]
return data
def main():
args = parse_args()
prefix = args.get('prefix', '/usr/local')
data = find_ogg(ogg_prefix = prefix)
if not data:
print "Config failure"
sys.exit(1)
write_data(data)
if __name__ == '__main__':
main()
|