ocarina/Sconstruct

69 lines
1.8 KiB
Python

#!/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])