import os
import sys



(sysname, nodename, release, version, machine)=os.uname()

env=Environment()


# default build options
env.Replace(CFLAGS="-fPIC -w ")
env.Replace(CXXFLAGS="-fPIC -w ")
env.Replace(LINKFLAGS="-fPIC -w ")

# parse arguments
env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
env.Replace(PEDI_HOME=os.environ['PEDI_HOME'])
env.Replace(SMPSA_HOME=os.environ['SMPSA_HOME'])
env.Replace(do_64bit_build=ARGUMENTS.get("do_64bit_build",None))
env.Replace(debug=ARGUMENTS.get("debug",0))
env.Replace(build_appfw=ARGUMENTS.get("build_appfw", 0))
env.Replace(build_tools=ARGUMENTS.get("build_tools", 1))
env.Replace(build_stars=ARGUMENTS.get("build_stars", 1))
env.Replace(build_cgc=ARGUMENTS.get("build_cgc", 0))


if int(env['debug']) == 1:
        print "Setting debug mode"
        env.Append(CFLAGS=" -g ")
        env.Append(CXXFLAGS=" -g ")
        env.Append(LINKFLAGS=" -g ")
else:
        print "Setting release mode"
        env.Append(CFLAGS=" -O3 ")
        env.Append(CXXFLAGS=" -O3 ")
        env.Append(LINKFLAGS=" -O3 ")

if 'build_cgc' in env and int(env['build_cgc']) == 1:
        print "Setting debug mode"
        env.Append(CFLAGS=" -DCGC ")
        env.Append(CXXFLAGS=" -DCGC ")
        env.Append(LINKFLAGS=" -DCGC ")
	print 'Turn off appfw as we are building CGC'
	env['build_appfw'] = 0
elif env['build_appfw'] is None: # by default, turn on build of appfw, unless cgc is on
	env['build_appfw'] = 1


# set 32/64 bit build properly
print  "env[64bit]="+str(env['do_64bit_build'])
if env['do_64bit_build'] is None:
	print 'Defaulting to default compilation size.'
elif int(env['do_64bit_build']) == 1:
	print 'Using 64-bit compilation size.'
        env.Append(CFLAGS=" -m64 ")
        env.Append(CXXFLAGS=" -m64 ")
        env.Append(LINKFLAGS=" -m64 ")
        env.Append(SHLINKFLAGS=" -m64 ")
else:
	print 'Using 32-bit compilation size.'
        env.Append(CFLAGS=" -m32 ")
        env.Append(CXXFLAGS=" -m32 ")
        env.Append(LINKFLAGS=" -m32 ")
        env.Append(SHLINKFLAGS=" -m32 ")



# add extra flag for solaris.
if sysname == "SunOS":
        env.Append(LINKFLAGS=" -L/opt/csw/lib -DSOLARIS  ")
        env.Append(CFLAGS=" -I/opt/csw/include -DSOLARIS ")
        env.Append(CXXFLAGS=" -I/opt/csw/include -DSOLARIS  ")


Export('env')
SConscript("SConscript", variant_dir='build')