Subversion Repositories gelsvn

Rev

Rev 487 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

#!/usr/bin/env python
# ============================================================================
# Script for downloading the various GEL dependencies on Windows
#
# Downloads the following libraries:
#
#    clapack
#    glut
#    glew
#    (glconsole)
#                                 Anders Wang Kristensen / awk@imm.dtu.dk 2009
# ============================================================================

def download(url, fn=None):
    import urllib
    web = urllib.urlopen(url)
    if not fn:
        fn = url.split('/')[-1]
    print fn
    local = open(fn, 'wb')
    local.write(web.read())
    web.close()
    local.close()
    return fn

def banner(str):
    print '\n'
    print '---------------------------------------------------'
    print '=> Downloading %s..' % str
    print '---------------------------------------------------'

if __name__ == '__main__':

    import os, sys, shutil, zipfile

    sf = 'http://downloads.sourceforge.net/project/'

    if not os.path.exists('lib/win32'):
        os.makedirs('lib/win32')

    #lapack stuff
    banner('clapack')
    shutil.rmtree('lib/win32/lapack', ignore_errors=True)
    os.makedirs('lib/win32/lapack')
    urls = ['http://www.netlib.org/clapack/LIB_WINDOWS/Win32/libf2c.lib',
            'http://www.netlib.org/clapack/LIB_WINDOWS/Win32/BLAS.lib',
            'http://www.netlib.org/clapack/LIB_WINDOWS/Win32/clapack.lib']
    for u in urls:
        fn = download(u)
        shutil.move(fn, 'lib/win32/lapack')

    #glut
    banner('glut')
    if not os.path.exists('lib/win32/gl'):
       os.makedirs('lib/win32/gl')
    download('http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip')
    zf = zipfile.ZipFile(open('glut-3.7.6-bin.zip', 'rb'))
    folder = 'lib/win32/gl/'
    file(folder+'glut.h','wb').write(zf.read('glut-3.7.6-bin/glut.h'))
    file(folder+'glut32.lib','wb').write(zf.read('glut-3.7.6-bin/glut32.lib'))
    file('bin/glut32.dll','wb').write(zf.read('glut-3.7.6-bin/glut32.dll'))
    zf.close()
    os.remove('glut-3.7.6-bin.zip')

    #glew
    banner('glew')
    folder1 = 'lib/win32/glew/include/gl/'
    folder2 = 'lib/win32/glew/lib/'
    for d in [folder1, folder2]:
        if not os.path.exists(d):
            os.makedirs(d)
    if not os.path.exists('lib/win32/glew/lib'):
        os.makedirs('lib/win32/glew/lib')
    download(sf + 'glew/glew/1.5.1/glew-1.5.1-win32.zip?use_mirror=mesh',
             'glew-1.5.1-win32.zip')
    zf = zipfile.ZipFile(open('glew-1.5.1-win32.zip', 'rb'))
    file(folder1+'glew.h','wb').write(zf.read('glew/include/GL/glew.h'))
    file(folder1+'wglew.h','wb').write(zf.read('glew/include/GL/wglew.h'))
    file(folder2+'glew32.lib','wb').write(zf.read('glew/lib/glew32.lib'))
    file(folder2+'glew32s.lib','wb').write(zf.read('glew/lib/glew32s.lib'))
    file('bin/glew32.dll','wb').write(zf.read('glew/bin/glew32.dll'))
    zf.close()
    os.remove('glew-1.5.1-win32.zip')

    #glconsole
    banner('glconsole')
    download('http://mmandel.com/demos/GLConsole_mmandel_version_05.zip')
    zf = zipfile.ZipFile(open('GLConsole_mmandel_version_05.zip', 'rb'))
    zf.close()
    os.remove('GLConsole_mmandel_version_05.zip')

    print ' '
    print '---------------------------------------------------'
    print '=> Done!'
    print '---------------------------------------------------'