Import ('env')

env.Append (CPPFLAGS = env ['SIGNED_CHAR'])

SRC_LIB   = Split ("""
            add_phi.c alloc_bands.c alloc_cdata.c alloc_center.c alloc_ddata.c 
            alloc_farray.c alloc_fdata.c alloc_fdisc.c alloc_finfo.c 
            alloc_marray.c alloc_mdata.c alloc_minfo.c alloc_sdata.c 
            alloc_sinfo.c alloc_smdata.c alloc_sminfo.c
            alloc_spinfo.c alloc_spdata.c adj_spin_ele_dval.c adj_sweep.c 
            band_bins.c band_buf.c band_disc.c band_phi.c buf_fill.c 
            calc_bands.c calc_center.c center_bands.c check_bound.c 
            clear_phi.c clear_theta.c col_chrg.c col_dimen.c 
            col_mass.c col_phi.c col_scalar.c col_swp.c 
            col_theta.c con_lin_phi.c con_lin_theta.c  
            def_sen.c disc_mem.c discrete_phi.c 
            end_disc.c end_mode.c end_work.c 
            fill_bins.c fill_data.c fill_data_env.c fill_disc.c fill_minfo.c 
            fill_mode.c fill_phi.c fill_phi_band.c fill_phi_pnt.c fill_phi_pps.c 
            fill_sen.c fill_theta.c find_bin.c find_pixel.c
            full_disc.c full_mode.c full_pix.c 
            get_buf.c get_fdata_ptr.c get_mbuf.c get_swp_data.c 
            get_swp_disc.c get_swp_mode.c get_spin_data.c  
            init_col.c 
            least_phi.c least_theta.c 
            mk_both_fracs.c mk_fracs.c mode_buf.c mode_ind.c 
            next_time.c normalize.c num_dbins.c num_pbins.c 
            order_theta.c 
            phi_norm.c phi_stat.c pix_back.c pix_fwd.c point_buf.c 
            point_disc.c pos_norm.c pps_buf.c pps_disc.c pps_env_buf.c proc_disc.c 
            proc_fill.c proc_mode.c proc_sdisc.c proc_sdlev.c proc_smode.c 
            proc_sweep.c proc_spin.c 
            reset_buf.c reset_col.c reset_disc.c reset_mode.c reset_norm.c 
            reset_sbuf.c reset_smode.c ret_center_bands.c ret_phi.c
            set_bin.c set_buf_stat.c set_cinfo.c set_mbuf_stat.c set_scan.c 
            set_time_str.c set_vwidth.c set_spin_etime.c set_spin_stime.c
            start_disc.c start_mode.c spin_data.c spin_data_pix.c start_work.c 
            stuff_bin.c stuff_disc.c stuff_mode.c stuff_pband.c stuff_phi.c 
            stuff_units.c sum_cont.c sum_disc.c sweep_data.c 
            sweep_disc.c sweep_mode.c swp_times.c
            theta_bins.c theta_stat.c time_frac.c time_values.c trans_all.c 
            trans_band.c trans_buffer.c trans_disc.c trans_point.c 
            trans_pps.c trans_sen.c trans_3d_binned.c
            units_ind.c 
            work_between.c work_dbet.c work_dnot_inc.c 
            work_mbet.c work_mnot_inc.c work_not_inc.c
            """)
    
HEADERS = Split ("libtrec_idfs.h")

LIBRARIES = ['IDFSMath', 'IDFSFill', 'base_idfs', 'VIDF', env ['DBLIBS'], 'Cfg', 'ant', env ['LEXLIB'], env ['CPPLIB'], 'm']
SHLIBRARIES = ['IDFSMath', 'IDFSFill', 'base_idfs', 'VIDF', env ['DB_SH_LIBS'], 'Cfg', 'ant', env ['LEXLIB'], 'm']
env.SDDASBuildLibrary ('libtrec_idfs', SRC_LIB, HEADERS, SHLIBRARIES)

error_obj = env.Object ('get_error_str.c', CCFLAGS='-DIDFS_ERR', CPPPATH=env['CPPPATH'])  
env.Program ('main', env.Object ('main.c') + error_obj,
             LIBS = ['trec_idfs'] + LIBRARIES,
             LIBPATH = ['.'] + env ['SDDAS_LIB'])
