Changeset a93dab3


Ignore:
Timestamp:
Dec 8, 2013, 5:14:12 AM (7 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master, pitchshift, sampler, timestretch, yinfft+
Children:
0a509c6
Parents:
6b14351
Message:

wscript: indent and minor cosmetics

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wscript

    r6b14351 ra93dab3  
    11#! /usr/bin/python
    22#
    3 # waf build script, see http://code.google.com/p/waf/
     3# waf build system, see http://code.google.com/p/waf/
     4#
    45# usage:
    5 #     $ waf distclean configure build
    6 # get it:
    7 #     $ svn co http://waf.googlecode.com/svn/trunk /path/to/waf
    8 #     $ alias waf=/path/to/waf/waf-light
     6#     $ ./waf distclean configure build
    97#
    108# TODO
     
    3331def add_option_enable_disable(ctx, name, default = None,
    3432        help_str = None, help_disable_str = None):
    35   if help_str == None:
    36       help_str = 'enable ' + name + ' support'
    37   if help_disable_str == None:
    38       help_disable_str = 'do not ' + help_str
    39   ctx.add_option('--enable-' + name, action = 'store_true'
    40           default = default,
    41           dest = 'enable_' + name.replace('-','_'),
    42           help = help_str)
    43   ctx.add_option('--disable-' + name, action = 'store_false',
    44           #default = default,
    45           dest = 'enable_' + name.replace('-','_'),
    46           help = help_disable_str )
     33    if help_str == None:
     34        help_str = 'enable ' + name + ' support'
     35    if help_disable_str == None:
     36        help_disable_str = 'do not ' + help_str
     37    ctx.add_option('--enable-' + name, action = 'store_true',
     38            default = default,
     39            dest = 'enable_' + name.replace('-','_'),
     40            help = help_str)
     41    ctx.add_option('--disable-' + name, action = 'store_false',
     42            #default = default,
     43            dest = 'enable_' + name.replace('-','_'),
     44            help = help_disable_str )
    4745
    4846def options(ctx):
    49   add_option_enable_disable(ctx, 'fftw3f', default = False,
    50           help_str = 'compile with fftw3f instead of ooura (recommended)',
    51           help_disable_str = 'do not compile with fftw3f')
    52   add_option_enable_disable(ctx, 'fftw3', default = False,
    53           help_str = 'compile with fftw3 instead of ooura',
    54           help_disable_str = 'do not compile with fftw3')
    55   add_option_enable_disable(ctx, 'complex', default = False,
    56           help_str ='compile with C99 complex',
    57           help_disable_str = 'do not use C99 complex (default)' )
    58   add_option_enable_disable(ctx, 'jack', default = None,
    59           help_str = 'compile with jack (auto)',
    60           help_disable_str = 'disable jack support')
    61   add_option_enable_disable(ctx, 'sndfile', default = None,
    62           help_str = 'compile with sndfile (auto)',
    63           help_disable_str = 'disable sndfile')
    64   add_option_enable_disable(ctx, 'avcodec', default = None,
    65           help_str = 'compile with libavcodec (auto)',
    66           help_disable_str = 'disable libavcodec')
    67   add_option_enable_disable(ctx, 'samplerate', default = None,
    68           help_str = 'compile with samplerate (auto)',
    69           help_disable_str = 'disable samplerate')
    70   add_option_enable_disable(ctx, 'memcpy', default = True,
    71           help_str = 'use memcpy hacks (default)',
    72           help_disable_str = 'do not use memcpy hacks')
    73   add_option_enable_disable(ctx, 'double', default = False,
    74           help_str = 'compile aubio in double precision mode',
    75           help_disable_str = 'compile aubio in single precision mode (default)')
    76 
    77   ctx.add_option('--with-target-platform', type='string',
    78       help='set target platform for cross-compilation', dest='target_platform')
    79   ctx.load('compiler_c')
    80   ctx.load('waf_unit_test')
    81   ctx.load('gnu_dirs')
     47    add_option_enable_disable(ctx, 'fftw3f', default = False,
     48            help_str = 'compile with fftw3f instead of ooura (recommended)',
     49            help_disable_str = 'do not compile with fftw3f')
     50    add_option_enable_disable(ctx, 'fftw3', default = False,
     51            help_str = 'compile with fftw3 instead of ooura',
     52            help_disable_str = 'do not compile with fftw3')
     53    add_option_enable_disable(ctx, 'complex', default = False,
     54            help_str ='compile with C99 complex',
     55            help_disable_str = 'do not use C99 complex (default)' )
     56    add_option_enable_disable(ctx, 'jack', default = None,
     57            help_str = 'compile with jack (auto)',
     58            help_disable_str = 'disable jack support')
     59    add_option_enable_disable(ctx, 'sndfile', default = None,
     60            help_str = 'compile with sndfile (auto)',
     61            help_disable_str = 'disable sndfile')
     62    add_option_enable_disable(ctx, 'avcodec', default = None,
     63            help_str = 'compile with libavcodec (auto)',
     64            help_disable_str = 'disable libavcodec')
     65    add_option_enable_disable(ctx, 'samplerate', default = None,
     66            help_str = 'compile with samplerate (auto)',
     67            help_disable_str = 'disable samplerate')
     68    add_option_enable_disable(ctx, 'memcpy', default = True,
     69            help_str = 'use memcpy hacks (default)',
     70            help_disable_str = 'do not use memcpy hacks')
     71    add_option_enable_disable(ctx, 'double', default = False,
     72            help_str = 'compile in double precision mode',
     73            help_disable_str = 'compile in single precision mode (default)')
     74
     75    ctx.add_option('--with-target-platform', type='string',
     76            help='set target platform for cross-compilation', dest='target_platform')
     77
     78    ctx.load('compiler_c')
     79    ctx.load('waf_unit_test')
     80    ctx.load('gnu_dirs')
    8281
    8382def configure(ctx):
    84   from waflib import Options
    85   ctx.load('compiler_c')
    86   ctx.load('waf_unit_test')
    87   ctx.load('gnu_dirs')
    88   ctx.env.CFLAGS += ['-g', '-Wall', '-Wextra', '-fPIC']
    89 
    90   target_platform = Options.platform
    91   if ctx.options.target_platform:
    92     target_platform = ctx.options.target_platform
    93   ctx.env['DEST_OS'] = target_platform
    94 
    95   if target_platform == 'win32':
    96     ctx.env['shlib_PATTERN'] = 'lib%s.dll'
    97 
    98   if target_platform == 'darwin':
    99     ctx.env.CFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
    100     ctx.env.LINKFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
    101     ctx.env.FRAMEWORK = ['CoreFoundation', 'AudioToolbox', 'Accelerate']
    102     ctx.define('HAVE_ACCELERATE', 1)
    103 
    104   if target_platform in [ 'ios', 'iosimulator' ]:
    105     ctx.define('HAVE_ACCELERATE', 1)
    106     ctx.define('TARGET_OS_IPHONE', 1)
    107     ctx.env.FRAMEWORK = ['CoreFoundation', 'AudioToolbox', 'Accelerate']
    108     SDKVER="7.0"
    109     MINSDKVER="6.1"
    110     ctx.env.CFLAGS += ['-std=c99']
    111     if target_platform == 'ios':
    112         DEVROOT = "/Applications/Xcode.app/Contents"
    113         DEVROOT += "/Developer/Platforms/iPhoneOS.platform/Developer"
    114         SDKROOT = "%(DEVROOT)s/SDKs/iPhoneOS%(SDKVER)s.sdk" % locals()
    115         ctx.env.CFLAGS += [ '-arch', 'arm64' ]
    116         ctx.env.CFLAGS += [ '-arch', 'armv7' ]
    117         ctx.env.CFLAGS += [ '-arch', 'armv7s' ]
    118         ctx.env.LINKFLAGS += [ '-arch', 'arm64' ]
    119         ctx.env.LINKFLAGS += ['-arch', 'armv7']
    120         ctx.env.LINKFLAGS += ['-arch', 'armv7s']
    121         ctx.env.CFLAGS += [ '-miphoneos-version-min=' + MINSDKVER ]
    122         ctx.env.LINKFLAGS += [ '-miphoneos-version-min=' + MINSDKVER ]
    123     else:
    124         DEVROOT = "/Applications/Xcode.app/Contents"
    125         DEVROOT += "/Developer/Platforms/iPhoneSimulator.platform/Developer"
    126         SDKROOT = "%(DEVROOT)s/SDKs/iPhoneSimulator%(SDKVER)s.sdk" % locals()
    127         ctx.env.CFLAGS += [ '-arch', 'i386' ]
    128         ctx.env.CFLAGS += [ '-arch', 'x86_64' ]
    129         ctx.env.LINKFLAGS += ['-arch', 'i386']
    130         ctx.env.LINKFLAGS += ['-arch', 'x86_64']
    131         ctx.env.CFLAGS += [ '-mios-simulator-version-min=' + MINSDKVER ]
    132         ctx.env.LINKFLAGS += [ '-mios-simulator-version-min=' + MINSDKVER ]
    133     ctx.env.CFLAGS += [ '-isysroot' , SDKROOT]
    134     ctx.env.LINKFLAGS += [ '-isysroot' , SDKROOT]
    135 
    136   # check for required headers
    137   ctx.check(header_name='stdlib.h')
    138   ctx.check(header_name='stdio.h')
    139   ctx.check(header_name='math.h')
    140   ctx.check(header_name='string.h')
    141   ctx.check(header_name='limits.h')
    142 
    143   # check support for C99 __VA_ARGS__ macros
    144   check_c99_varargs = '''
     83    from waflib import Options
     84    ctx.load('compiler_c')
     85    ctx.load('waf_unit_test')
     86    ctx.load('gnu_dirs')
     87    ctx.env.CFLAGS += ['-g', '-Wall', '-Wextra', '-fPIC']
     88
     89    target_platform = Options.platform
     90    if ctx.options.target_platform:
     91        target_platform = ctx.options.target_platform
     92    ctx.env['DEST_OS'] = target_platform
     93
     94    if target_platform == 'win32':
     95        ctx.env['shlib_PATTERN'] = 'lib%s.dll'
     96
     97    if target_platform == 'darwin':
     98        ctx.env.CFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
     99        ctx.env.LINKFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
     100        ctx.env.FRAMEWORK = ['CoreFoundation', 'AudioToolbox', 'Accelerate']
     101        ctx.define('HAVE_ACCELERATE', 1)
     102
     103    if target_platform in [ 'ios', 'iosimulator' ]:
     104        ctx.define('HAVE_ACCELERATE', 1)
     105        ctx.define('TARGET_OS_IPHONE', 1)
     106        ctx.env.FRAMEWORK = ['CoreFoundation', 'AudioToolbox', 'Accelerate']
     107        SDKVER="7.0"
     108        MINSDKVER="6.1"
     109        ctx.env.CFLAGS += ['-std=c99']
     110        if target_platform == 'ios':
     111            DEVROOT = "/Applications/Xcode.app/Contents"
     112            DEVROOT += "/Developer/Platforms/iPhoneOS.platform/Developer"
     113            SDKROOT = "%(DEVROOT)s/SDKs/iPhoneOS%(SDKVER)s.sdk" % locals()
     114            ctx.env.CFLAGS += [ '-arch', 'arm64' ]
     115            ctx.env.CFLAGS += [ '-arch', 'armv7' ]
     116            ctx.env.CFLAGS += [ '-arch', 'armv7s' ]
     117            ctx.env.LINKFLAGS += [ '-arch', 'arm64' ]
     118            ctx.env.LINKFLAGS += ['-arch', 'armv7']
     119            ctx.env.LINKFLAGS += ['-arch', 'armv7s']
     120            ctx.env.CFLAGS += [ '-miphoneos-version-min=' + MINSDKVER ]
     121            ctx.env.LINKFLAGS += [ '-miphoneos-version-min=' + MINSDKVER ]
     122        else:
     123            DEVROOT = "/Applications/Xcode.app/Contents"
     124            DEVROOT += "/Developer/Platforms/iPhoneSimulator.platform/Developer"
     125            SDKROOT = "%(DEVROOT)s/SDKs/iPhoneSimulator%(SDKVER)s.sdk" % locals()
     126            ctx.env.CFLAGS += [ '-arch', 'i386' ]
     127            ctx.env.CFLAGS += [ '-arch', 'x86_64' ]
     128            ctx.env.LINKFLAGS += ['-arch', 'i386']
     129            ctx.env.LINKFLAGS += ['-arch', 'x86_64']
     130            ctx.env.CFLAGS += [ '-mios-simulator-version-min=' + MINSDKVER ]
     131            ctx.env.LINKFLAGS += [ '-mios-simulator-version-min=' + MINSDKVER ]
     132        ctx.env.CFLAGS += [ '-isysroot' , SDKROOT]
     133        ctx.env.LINKFLAGS += [ '-isysroot' , SDKROOT]
     134
     135    # check for required headers
     136    ctx.check(header_name='stdlib.h')
     137    ctx.check(header_name='stdio.h')
     138    ctx.check(header_name='math.h')
     139    ctx.check(header_name='string.h')
     140    ctx.check(header_name='limits.h')
     141
     142    # check support for C99 __VA_ARGS__ macros
     143    check_c99_varargs = '''
    145144#include <stdio.h>
    146145#define AUBIO_ERR(...) fprintf(stderr, __VA_ARGS__)
    147146'''
    148   if ctx.check_cc(fragment = check_c99_varargs,
    149       type='cstlib',
    150       msg = 'Checking for C99 __VA_ARGS__ macro'):
    151     ctx.define('HAVE_C99_VARARGS_MACROS', 1)
    152 
    153   # optionally use complex.h
    154   if (ctx.options.enable_complex == True):
    155     ctx.check(header_name='complex.h')
    156 
    157   # check dependencies
    158   if (ctx.options.enable_sndfile != False):
    159       ctx.check_cfg(package = 'sndfile', atleast_version = '1.0.4',
    160         args = '--cflags --libs', mandatory = False)
    161   if (ctx.options.enable_samplerate != False):
    162       ctx.check_cfg(package = 'samplerate', atleast_version = '0.0.15',
    163         args = '--cflags --libs', mandatory = False)
    164 
    165   # double precision mode
    166   if (ctx.options.enable_double == True):
    167     ctx.define('HAVE_AUBIO_DOUBLE', 1)
    168   else:
    169     ctx.define('HAVE_AUBIO_DOUBLE', 0)
    170 
    171   # optional dependancies using pkg-config
    172   if (ctx.options.enable_fftw3 != False or ctx.options.enable_fftw3f != False):
    173     # one of fftwf or fftw3f
    174     if (ctx.options.enable_fftw3f != False):
    175       ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0',
    176           args = '--cflags --libs', mandatory = False)
    177       if (ctx.options.enable_double == True):
    178         ctx.msg('Warning', 'fftw3f enabled, but compiling in double precision!')
     147
     148    if ctx.check_cc(fragment = check_c99_varargs,
     149            type='cstlib',
     150            msg = 'Checking for C99 __VA_ARGS__ macro'):
     151        ctx.define('HAVE_C99_VARARGS_MACROS', 1)
     152
     153    # double precision mode
     154    if (ctx.options.enable_double == True):
     155        ctx.define('HAVE_AUBIO_DOUBLE', 1)
    179156    else:
    180       # fftw3f not enabled, take most sensible one according to enable_double
    181       if (ctx.options.enable_double == True):
    182         ctx.check_cfg(package = 'fftw3', atleast_version = '3.0.0',
    183             args = '--cflags --libs', mandatory = False)
    184       else:
    185         ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0',
    186             args = '--cflags --libs', mandatory = False)
    187     ctx.define('HAVE_FFTW3', 1)
    188 
    189   # fftw disabled, use ooura
    190   if 'HAVE_FFTW3F' in ctx.env.define_key:
    191     ctx.msg('Checking for FFT implementation', 'fftw3f')
    192   elif 'HAVE_FFTW3' in ctx.env.define_key:
    193     ctx.msg('Checking for FFT implementation', 'fftw3')
    194   elif 'HAVE_ACCELERATE' in ctx.env.define_key:
    195     ctx.msg('Checking for FFT implementation', 'vDSP')
    196   else:
    197     ctx.msg('Checking for FFT implementation', 'ooura')
    198 
    199   # use memcpy hacks
    200   if (ctx.options.enable_memcpy == True):
    201     ctx.define('HAVE_MEMCPY_HACKS', 1)
    202   else:
    203     ctx.define('HAVE_MEMCPY_HACKS', 0)
    204 
    205   if (ctx.options.enable_jack != False):
    206     ctx.check_cfg(package = 'jack', atleast_version = '0.15.0',
    207     args = '--cflags --libs', mandatory = False)
    208 
    209   if (ctx.options.enable_avcodec != False):
    210     ctx.check_cfg(package = 'libavcodec', atleast_version = '54.35.0',
    211     args = '--cflags --libs', uselib_store = 'AVCODEC', mandatory = False)
    212     ctx.check_cfg(package = 'libavformat', atleast_version = '52.3.0',
    213     args = '--cflags --libs', uselib_store = 'AVFORMAT', mandatory = False)
    214     ctx.check_cfg(package = 'libavutil', atleast_version = '52.3.0',
    215     args = '--cflags --libs', uselib_store = 'AVUTIL', mandatory = False)
    216     ctx.check_cfg(package = 'libavresample', atleast_version = '1.0.1',
    217     args = '--cflags --libs', uselib_store = 'AVRESAMPLE', mandatory = False)
    218 
    219   # write configuration header
    220   ctx.write_config_header('src/config.h')
    221 
    222   # add some defines used in examples
    223   ctx.define('AUBIO_PREFIX', ctx.env['PREFIX'])
    224   ctx.define('PACKAGE', APPNAME)
    225 
    226   # check if txt2man is installed, optional
    227   try:
    228     ctx.find_program('txt2man', var='TXT2MAN')
    229   except ctx.errors.ConfigurationError:
    230     ctx.to_log('txt2man was not found (ignoring)')
     157        ctx.define('HAVE_AUBIO_DOUBLE', 0)
     158
     159    # optionally use complex.h
     160    if (ctx.options.enable_complex == True):
     161        ctx.check(header_name='complex.h')
     162
     163    # check for fftw3
     164    if (ctx.options.enable_fftw3 != False or ctx.options.enable_fftw3f != False):
     165        # one of fftwf or fftw3f
     166        if (ctx.options.enable_fftw3f != False):
     167            ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0',
     168                    args = '--cflags --libs', mandatory = False)
     169            if (ctx.options.enable_double == True):
     170                ctx.msg('Warning', 'fftw3f enabled, but compiling in double precision!')
     171        else:
     172            # fftw3f not enabled, take most sensible one according to enable_double
     173            if (ctx.options.enable_double == True):
     174                ctx.check_cfg(package = 'fftw3', atleast_version = '3.0.0',
     175                        args = '--cflags --libs', mandatory = False)
     176            else:
     177                ctx.check_cfg(package = 'fftw3f', atleast_version = '3.0.0',
     178                        args = '--cflags --libs', mandatory = False)
     179        ctx.define('HAVE_FFTW3', 1)
     180
     181    # fftw not enabled, use vDSP or ooura
     182    if 'HAVE_FFTW3F' in ctx.env.define_key:
     183        ctx.msg('Checking for FFT implementation', 'fftw3f')
     184    elif 'HAVE_FFTW3' in ctx.env.define_key:
     185        ctx.msg('Checking for FFT implementation', 'fftw3')
     186    elif 'HAVE_ACCELERATE' in ctx.env.define_key:
     187        ctx.msg('Checking for FFT implementation', 'vDSP')
     188    else:
     189        ctx.msg('Checking for FFT implementation', 'ooura')
     190
     191    # check for libsndfile
     192    if (ctx.options.enable_sndfile != False):
     193        ctx.check_cfg(package = 'sndfile', atleast_version = '1.0.4',
     194                args = '--cflags --libs', mandatory = False)
     195
     196    # check for libsamplerate
     197    if (ctx.options.enable_samplerate != False):
     198        ctx.check_cfg(package = 'samplerate', atleast_version = '0.0.15',
     199                args = '--cflags --libs', mandatory = False)
     200
     201    # check for jack
     202    if (ctx.options.enable_jack != False):
     203        ctx.check_cfg(package = 'jack', atleast_version = '0.15.0',
     204                args = '--cflags --libs', mandatory = False)
     205
     206    # check for libav
     207    if (ctx.options.enable_avcodec != False):
     208        ctx.check_cfg(package = 'libavcodec', atleast_version = '54.35.0',
     209                args = '--cflags --libs', uselib_store = 'AVCODEC', mandatory = False)
     210        ctx.check_cfg(package = 'libavformat', atleast_version = '52.3.0',
     211                args = '--cflags --libs', uselib_store = 'AVFORMAT', mandatory = False)
     212        ctx.check_cfg(package = 'libavutil', atleast_version = '52.3.0',
     213                args = '--cflags --libs', uselib_store = 'AVUTIL', mandatory = False)
     214        ctx.check_cfg(package = 'libavresample', atleast_version = '1.0.1',
     215                args = '--cflags --libs', uselib_store = 'AVRESAMPLE', mandatory = False)
     216
     217    # use memcpy hacks
     218    if (ctx.options.enable_memcpy == True):
     219        ctx.define('HAVE_MEMCPY_HACKS', 1)
     220    else:
     221        ctx.define('HAVE_MEMCPY_HACKS', 0)
     222
     223    # write configuration header
     224    ctx.write_config_header('src/config.h')
     225
     226    # add some defines used in examples
     227    ctx.define('AUBIO_PREFIX', ctx.env['PREFIX'])
     228    ctx.define('PACKAGE', APPNAME)
     229
     230    # check if txt2man is installed, optional
     231    try:
     232      ctx.find_program('txt2man', var='TXT2MAN')
     233    except ctx.errors.ConfigurationError:
     234      ctx.to_log('txt2man was not found (ignoring)')
    231235
    232236def build(bld):
     
    256260                name      = 'txt2man',
    257261                rule      = rule_str,
    258                 #rule      = '${TXT2MAN} -p -P aubio -s 1 -r aubio-0.4.0 ${SRC} > ${TGT}',
    259262                ext_in    = '.txt',
    260263                ext_out   = '.1',
     
    282285    ctx.excl += ' **/python/gen **/python/build **/python/dist'
    283286    ctx.excl += ' **/**.zip **/**.tar.bz2'
    284     ctx.excl += ' **/doc/full/*'
     287    ctx.excl += ' **/doc/full/* **/doc/web/*'
    285288    ctx.excl += ' **/python/*.db'
    286289    ctx.excl += ' **/python.old/*'
Note: See TracChangeset for help on using the changeset viewer.