#!/usr/bin/env python
from waflib.extras import autowaf as autowaf
from waflib import Options, TaskGen
import waflib.Logs as Logs, waflib.Utils as Utils
import os
import shutil
import sys
import re
import time
from waflib.Task import Task

top = '.'
out = 'build'

def options(opt):
    autowaf.set_options(opt)

def configure(conf):
    conf.load('misc')
    conf.load('compiler_cxx')
    conf.check_cc(function_name='readline',
            header_name='stdio.h readline/readline.h',
            lib='readline',
            uselib_store='READLINE',
            mandatory=False)
    autowaf.configure(conf)

def build(bld):
    VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
    if not bld.is_defined('HAVE_READLINE'):
            return;
    # no wine
    if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
        return

    if bld.env['build_target'] != 'mingw':
    # TEST/DEVEL TOOL #######################
        obj = bld (features = 'cxx c cxxprogram')
        obj.source       = 'devel.cc'
        obj.target       = 'devel'
        obj.uselib       = ['SIGCPP', 'READLINE']
        obj.use          = ['liblua']
        obj.install_path = None
    #########################################

    # commandline luasession wrapper
    obj              = bld(features = 'subst')
    obj.source       = 'ardour-lua.sh.in'
    obj.target       = 'ardour' + str (bld.env['MAJOR']) + '-lua'
    obj.chmod        = Utils.O755
    obj.install_path = bld.env['BINDIR']
    obj.LIBDIR       = os.path.normpath(bld.env['DLLDIR'])
    obj.DATADIR      = os.path.normpath(bld.env['DATADIR'])
    obj.CONFDIR      = os.path.normpath(bld.env['CONFDIR'])

    # commandline luasession
    obj = bld (features = 'cxx c cxxprogram')
    obj.source       = 'luasession.cc'
    obj.target       = 'luasession'
    obj.includes     = ['../libs']
    obj.use          = ['liblua'
                        'libpbd',
                        'libardour',
                        'libardour_cp',
                        'libtimecode',
                        'libmidipp',
                     ]
    obj.defines = [
        'VERSIONSTRING="' + str(bld.env['VERSION']) + '"',
        'DATA_DIR="'   + os.path.normpath(bld.env['DATADIR']) + '"',
        'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
        'LOCALEDIR="'  + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
        'PACKAGE="'    + "ARDOURUTILS" + '"',
        ]

    obj.uselib       = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD OGG CURL DL XML'
    obj.uselib       += ' FFTW3F'
    obj.uselib       += ' AUDIOUNITS OSX LO '
    obj.uselib       += ' TAGLIB '
    obj.uselib       += ' READLINE '

    if sys.platform == 'darwin':
        obj.uselib += ' AUDIOUNITS OSX'
        obj.use    += ' libappleutility'

    #if bld.env['build_target'] == 'mingw':
    #    if bld.env['DEBUG'] == False:
    #        obj.linkflags = ['-mwindows']

    if bld.is_defined('NEED_INTL'):
        obj.linkflags = ' -lintl'

    obj.install_path = bld.env['DLLDIR']
