import thirdparty
import os
import SCons

def buildZZip(context, sourceDir):
    os.chdir(sourceDir)
    make = context.sconf.env['MAKE']
    os.spawnl(os.P_WAIT, 'configure', 'configure', '--prefix=' + context.sconf.env['THIRDPARTY_STAGEDIR'])
    os.spawnl(os.P_WAIT, make, make, 'all')
    os.spawnl(os.P_WAIT, make, make, '-k', 'install')

    pcfile = os.path.join(context.sconf.env['THIRDPARTY_STAGEDIR'], 'lib', 'pkgconfig', 'zziplib.pc')
    if os.path.exists(pcfile):
	inp = file(pcfile, 'r')
	out = file(pcfile+'.tmp', 'w')
	for line in inp:
	    if not line.startswith('datadir='):
		out.write(line)
	inp.close()
	out.close()
	os.rename(pcfile+'.tmp', pcfile)
    

def checkZZip(context):
    return thirdparty.configureDependency(context,
                                          lambda c: thirdparty.TryCompileAndLink(context,
                                                                                 'ZZip',
                                                                                 'ZZIP_',
                                                                                 '.c',
                                                                                 headers=['zzip/lib.h'],
										 pkgConfigName='zziplib'),
                                          debianPackage='libzzip-dev',
					  downloadSource=('http://interreality.org/~tetron/',
                                                          'zziplib-0.13.49.tar.bz2',
                                                          'zziplib-0.13.49',
							  654842,
							  '5f7b88ebb2bcd7e8044328482d079661'),
                                          buildFunc=buildZZip)

import scripts
scripts.AddCustomTest('CheckZZip', checkZZip)
