2008-06-17 20:27:32 +04:00
import os
import sys
sys . path . append ( " ./share/scons " )
from lex_bison import *
# This is the absolute path where the project is located
cwd = os . getcwd ( )
# Environment that will be applied to each scons child
main_env = Environment ( )
main_env [ ' ENV ' ] [ ' PATH ' ] = os . environ [ ' PATH ' ]
# Add builders for flex and bison
add_lex ( main_env )
add_bison ( main_env )
# Include dirs
main_env . Append ( CPPPATH = [
2008-07-10 15:24:48 +04:00
cwd + ' /include ' ,
2008-06-17 20:27:32 +04:00
] )
# Library dirs
main_env . Append ( LIBPATH = [
2008-07-10 15:24:48 +04:00
cwd + ' /src/common ' ,
cwd + ' /src/host ' ,
cwd + ' /src/mad ' ,
cwd + ' /src/nebula ' ,
cwd + ' /src/pool ' ,
cwd + ' /src/template ' ,
cwd + ' /src/vm ' ,
cwd + ' /src/vmm ' ,
cwd + ' /src/lcm ' ,
cwd + ' /src/tm ' ,
cwd + ' /src/dm ' ,
cwd + ' /src/im ' ,
cwd + ' /src/rm ' ,
2008-06-17 20:27:32 +04:00
] )
# Compile flags
main_env . Append ( CPPFLAGS = [
2008-07-10 15:24:48 +04:00
" -g " ,
" -Wall "
2008-06-17 20:27:32 +04:00
] )
# Linking flags
main_env . Append ( LDFLAGS = [ " -g " ] )
#######################
# EXTRA CONFIGURATION #
#######################
# SQLITE
sqlite_dir = ARGUMENTS . get ( ' sqlite ' , ' none ' )
if sqlite_dir != ' none ' :
main_env . Append ( LIBPATH = [ sqlite_dir + " /lib " ] )
main_env . Append ( CPPPATH = [ sqlite_dir + " /include " ] )
# xmlrpc
xmlrpc_dir = ARGUMENTS . get ( ' xmlrpc ' , ' none ' )
if xmlrpc_dir != ' none ' :
main_env . Append ( LIBPATH = [ xmlrpc_dir + " /lib " ] )
main_env . Append ( CPPPATH = [ xmlrpc_dir + " /include " ] )
# build lex/bison
build_parsers = ARGUMENTS . get ( ' parsers ' , ' no ' )
if build_parsers == ' yes ' :
2008-07-10 15:24:48 +04:00
main_env . Append ( parsers = ' yes ' )
2008-06-17 20:27:32 +04:00
else :
2008-07-10 15:24:48 +04:00
main_env . Append ( parsers = ' no ' )
main_env . ParseConfig ( ' share/scons/get_xmlrpc_config server ' )
2008-06-17 20:27:32 +04:00
# SCONS scripts to build
build_scripts = [
' src/common/SConstruct ' ,
' src/template/SConstruct ' ,
' src/host/SConstruct ' ,
' src/mad/SConstruct ' ,
' src/nebula/SConstruct ' ,
' src/pool/SConstruct ' ,
' src/vm/SConstruct ' ,
' src/vmm/SConstruct ' ,
' src/lcm/SConstruct ' ,
' src/rm/SConstruct ' ,
' src/tm/SConstruct ' ,
' src/im/SConstruct ' ,
' src/dm/SConstruct ' ,
' src/scheduler/SConstruct ' ,
]
for script in build_scripts :
env = main_env . Clone ( )
SConscript ( script , exports = ' env ' )