#!/usr/bin/python import os, sys import config PREFIX = "/usr" POSTFIX = "" DESTDIR = "" for argv in sys.argv: split = argv.split("=") if split[0] == "DESTDIR": DESTDIR = split[1] + "/" FLAGS = ["-O2"] if config.DEBUG == True: FLAGS = ["-Wall", "-Werror", "-g", "-DDEBUG"] POSTFIX = "-debug" env = Environment(CCFLAGS = FLAGS) if ARGUMENTS.get('VERBOSE') != "1": env.Append(CXXCOMSTR = "C++ $TARGET") env.Append(LINKCOMSTR = "Linking $TARGET") env.Append(CPPPATH = "include") config.env = env def directory(dirs): objs = [] for dir in dirs: files = SConscript("%s/Sconscript" % dir) if files: objs.append(files) return objs def symlink(target, source, env): os.symlink(str(source[0]), str(target[0])) SConscript(['include/Sconscript']) ocarina = env.Program('bin/ocarina-player', directory(["libsaria", "ocarina"])) oc_link = env.Command("ocarina.bin", "bin/ocarina-player", symlink) oc_scripts = directory(["scripts"]) Default([ocarina, oc_link, oc_scripts]) # Install Ocarina scripts = os.listdir("scripts/") baselib = PREFIX + "/lib/ocarina" + POSTFIX lib = DESTDIR + baselib bin = DESTDIR + PREFIX + "/bin/" images = lib + "/images" env.Install(lib, ocarina) env.Alias("install", [lib, images, bin]) env.Command(images, "./images/", [Copy(images, "./images")]) # Clean up the build directory Clean(ocarina, ["include/version.h"]) # Create a tarball def git_archive(target, source, env): version = "%s.%s" % (MAJOR, MINOR) if BUG != 0: version += ".%s" % BUG if EXTRA != "": version += "-%s" % EXTRA if DEBUG == True: version += "-debug" ocarina="ocarina-%s" % version os.popen("git archive --prefix=%s/ -o %s.tar.gz HEAD" % (ocarina, ocarina)) print "md5sum:", os.popen("md5sum %s.tar.gz" % ocarina).read() env.Command("archive", None, [git_archive])