Source

pysdl-cffi / utils / mksdl.py

Full commit
Leonard Ritter ef03574 









Leonard Ritter b999074 
Leonard Ritter 5b7bd1c 

Leonard Ritter ef03574 
Leonard Ritter 5b7bd1c 
Leonard Ritter ef03574 






Leonard Ritter 5b7bd1c 




Leonard Ritter eaba51a 


















Leonard Ritter 5b7bd1c 



Leonard Ritter ef03574 





Leonard Ritter d17e66f 

Leonard Ritter ef03574 
Leonard Ritter d17e66f 
Leonard Ritter ef03574 





















Leonard Ritter b999074 
Leonard Ritter eaba51a 

Leonard Ritter b999074 
Leonard Ritter ef03574 




Leonard Ritter 5b7bd1c 
# SDL downloader & builder

import os
import sys

import shutil

SOURCE = "http://hg.libsdl.org/SDL"
REVISION = "c294faf5fce5"
THISDIR = os.path.abspath(os.path.dirname(__file__))
basedir = os.path.abspath(os.path.join(THISDIR, '..'))
bindir = os.path.abspath(os.path.join(basedir, 'sdl-bin'))
targetdir = os.path.abspath(os.path.join(basedir, 'sdl-src'))

def clone_repo():
    if not os.path.isdir(targetdir):
        cmd = 'hg clone -r {0} {1} {2}'.format(
            REVISION, SOURCE, targetdir)
        print(cmd)
        if os.system(cmd):
            print("failed :(")
            return
    return True

def run_win32_build():
    if not clone_repo():
        return
    builddir = os.path.join(targetdir, 'VisualC', 'SDL', 'Release')
    if not os.path.isdir(builddir):
        print("You must build the visual studio solution file in release mode first.")
        return
    if os.path.isdir(bindir):
        print("Removing stale {0}...".format(bindir))
        shutil.rmtree(bindir)
    os.makedirs(bindir)
    shutil.copytree(
        os.path.join(targetdir, 'include'), 
        os.path.join(bindir, 'include'))
    libdir = os.path.join(bindir, 'lib')
    os.makedirs(libdir)
    shutil.copy2(
        os.path.join(builddir, 'SDL2.lib'),
        libdir)
    shutil.copy2(
        os.path.join(builddir, 'SDL2.dll'),
        os.path.join(basedir, 'sdl'))

def run_linux_build():
    if not clone_repo():
        return
    
    os.chdir(targetdir)
    builddir = os.path.join(targetdir, 'build')
    if not os.path.isdir(builddir):
        os.makedirs(builddir)
    
    os.environ['CFLAGS'] = '-fPIC'
    os.environ['CXXFLAGS'] = '-fPIC'
    os.chdir(builddir)
    cmd = '../configure --with-pic --prefix {0}'.format(bindir)
    print(cmd)
    if os.system(cmd):
        print("failed :(")
        return
    
    cmd = 'make -j 4'
    print(cmd)
    if os.system(cmd):
        print("failed :(")
        return
    
    if os.path.isdir(bindir):
        print("Removing stale {0}...".format(bindir))
        shutil.rmtree(bindir)
    os.makedirs(bindir)
    
    cmd = 'make install'
    print(cmd)
    if os.system(cmd):
        print("failed :(")
        return
    
    # copy over
    #shutil.copy2(os.path.join(bindir, 'lib', 'libSDL2-2.0.so.0.0.0'),
    #    os.path.join(basedir, 'sdl', 'libSDL2.so'))
    
    print("SDL is ready.")

if __name__ == '__main__':
    if sys.platform == 'linux2':
        run_linux_build()
    elif sys.platform == 'win32':
        run_win32_build()