#!/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.check_cc(
            header_name='stdio.h readline/readline.h',
            lib='readline',
            uselib_store='READLINE',
            define_name='HAVE_READLINE',
            mandatory=False)

def build(bld):
    VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
    if not bld.is_defined('HAVE_READLINE'):
        return

    # commandline luasession wrapper script
    if bld.env['build_target'] != 'mingw':
        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',
                        'libtemporal',
                        '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 GIOMM GTHREAD OGG CURL DL XML'
    obj.uselib       += ' AUDIOUNITS OSX LO '
    obj.uselib       += ' READLINE '
    obj.uselib       += ' FFTW3F LO TAGLIB LILV RUBBERBAND AUBIO LRDF ARCHIVE VAMPSDK VAMPHOSTSDK'

    if bld.is_defined('HAVE_SUIL'):
        obj.uselib += ' SUIL'

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

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

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

    if bld.env['build_target'] == 'mingw':
        obj.install_path = bld.env['BINDIR']
        obj.target       = 'ardour' + str (bld.env['MAJOR']) + '-lua'
    else:
        obj.install_path = bld.env['DLLDIR']
