Import( 'context' )

def getOption(name, default = 0):
    try:
        return context.getLibraryEnv()[name]
    except KeyError:
        return default

def a5font(env, appendDir, buildDir, libDir):
    examples = []

    source = Split("""
        font.c
        fontbmp.c
        readfont.c
        text.c
    """);

    # lib = env.SharedLibrary( libDir + '/a5_font', appendDir(buildDir + '/addons/font',source))
    # Build library however Allegro was configured, either static or shared
    lib = context.makeLibrary( env )( libDir + '/a5_font', appendDir(buildDir + '/addons/font',source))

    examples.append(lib)

    exampleEnv = env.Copy()
    exampleEnv.Append( LIBS = lib )

    def addExample(name, files):
        example = exampleEnv.Program(name, appendDir(buildDir + '/addons/font/', files))
        Alias(name, example)
        examples.append(example)

    addExample("addons/font/ex", ["ex.c"])

    Alias('addons/font', examples + lib)

    def install():
        installDir = getOption('install','/usr/local')
        targets = []
        def add(t):
            targets.append(t)
        add(env.Install(installDir + '/lib/', lib))
	add(env.Install(installDir + '/include/allegro5/', 'addons/font/a5_font.h'))
        return targets

    Alias('install', install())
    Alias('install-addons/font', install())
    return examples

context.addExtra(a5font,depends = True)
