import os
import os.path
import sys
sys.path += ["../../../scons-config"]
import global_config
from   global_config import LIBUTIL
from   global_config import LIBECL
from   global_config import LIBPLOT
from   global_config import LIBCONFIG
from   global_config import LIBJOB_QUEUE
from   global_config import LIBENKF
from   global_config import LIBRMS
from   global_config import LIBSCHED
from   global_config import LIBANALYSIS
from   global_config import LIBGEOMETRY

from   global_config import add_program

lib_path     = "../lib"
include_path = "../include"
bin_path     = "../bin"  

conf = global_config.get_conf(os.getcwd() , 3)
env  = Environment()

lib_list = ["lapack" , "blas" , "plplotd" , "m" , "z" , "pthread" , "dl"]

if conf.INCLUDE_LSF:
   lib_list.append( ["bat" , "lsf" , "nsl"] )

if conf.g2c:
   lib_list.append( "g2c" )
   
fileH = open("site_config_file.h" , "w")
fileH.write( "#define SITE_CONFIG_FILE \"%s\"\n" % conf.SITE_CONFIG_FILE)
fileH.close()

conf.update_env( env , [ LIBENKF , LIBRMS , LIBANALYSIS , LIBJOB_QUEUE , LIBSCHED , LIBECL , LIBGEOMETRY , LIBPLOT , LIBCONFIG , LIBUTIL ] , lib_list , link = True)
env.Append( CPPPATH = conf.PLPLOT_INCLUDE_PATH )
env.Append( LIBPATH = conf.PLPLOT_LIB_PATH )
if conf.INCLUDE_LSF:
   env.Append( LIBPATH = conf.LSF_LIB_PATH ) 
   

tui_objects = env.Object( ["enkf_tui_main.c" , "enkf_tui_fs.c" ,
                           "enkf_tui_ranking.c" , "enkf_tui_misc.c" ,
                           "enkf_tui_table.c" , "enkf_tui_plot.c" ,
                           "enkf_tui_plot_rft.c",
                           "enkf_tui_plot_util.c" , "enkf_tui_run.c",
                           "enkf_tui_util.c" , "enkf_tui_init.c" ,
                           "enkf_tui_export.c" , "enkf_tui_analysis.c" ,
                           "enkf_tui_QC.c" , "enkf_tui_help.c"]) 

define_fmt = "\'%s=\"%s\"\'" 
main_object = env.Object("main.c" , CPPDEFINES = "DEVEL_VERSION")


local_config  = env.Program( "local_config"              , ["local_config.c"])
upgrade_fs104 = env.Program( "upgrade_fs104"             , ["upgrade_fs104.c"])
ert           = env.Program( "ert"                       , [main_object, tui_objects])
ert_svn       = env.Program( "ert_%s" % conf.SVN_VERSION , [main_object, tui_objects])

env.Install( bin_path , [ert  , local_config , upgrade_fs104])

Default( bin_path )
