annotate carfac/SConstruct @ 662:7e18c84ca2b7

Small cleanup of eigen usage in SAI implementation.
author ronw@google.com
date Tue, 16 Jul 2013 19:56:11 +0000
parents 7a0031c321da
children
rev   line source
ronw@624 1 # CARFAC Open Source C++ Library
ronw@624 2 #
ronw@624 3 # This C++ file is part of an implementation of Lyon's cochlear model:
ronw@624 4 # "Cascade of Asymmetric Resonators with Fast-Acting Compression"
ronw@624 5 # to supplement Lyon's upcoming book "Human and Machine Hearing"
ronw@624 6 #
ronw@624 7 # Licensed under the Apache License, Version 2.0 (the "License");
ronw@624 8 # you may not use this file except in compliance with the License.
ronw@624 9 # You may obtain a copy of the License at
ronw@624 10 #
ronw@624 11 # http://www.apache.org/licenses/LICENSE-2.0
ronw@624 12 #
ronw@624 13 # Unless required by applicable law or agreed to in writing, software
ronw@624 14 # distributed under the License is distributed on an "AS IS" BASIS,
ronw@624 15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ronw@624 16 # See the License for the specific language governing permissions and
ronw@624 17 # limitations under the License.
ronw@624 18
ronw@624 19 ## @author Ron Weiss <ronw@google.com>
ronw@624 20 # @date created 2013/05/21
ronw@624 21 # @version \$Id$
ronw@624 22
ronw@624 23 """@package SConstruct
ronw@624 24 SConstruct file for the CARFAC Open Source C++ Library.
ronw@624 25
ronw@631 26 To install dependencies on Ubuntu, run:
ronw@624 27
ronw@631 28 sudo apt-get install libeigen3-dev scons \
ronw@661 29 cmake libgtest-dev # For testing.
ronw@631 30 export EIGEN_PATH=/usr/include/eigen3
ronw@631 31 export GTEST_SOURCE=/usr/src/gtest
ronw@631 32
ronw@631 33 To build all libraries, run:
ronw@624 34 scons
ronw@631 35
ronw@631 36 To run unit tests, run:
ronw@631 37 scons test
ronw@631 38
ronw@631 39 To clean up binaries, run:
ronw@631 40 scons --clean
ronw@624 41 """
ronw@624 42
ronw@639 43 import commands
ronw@624 44 import os
ronw@624 45
ronw@624 46 env = Environment(CPPPATH=[os.environ['EIGEN_PATH']])
ronw@639 47 GCC_VERSION = commands.getoutput(env['CXX'] + ' -dumpversion')
ronw@639 48 if GCC_VERSION.startswith('4.6'):
ronw@639 49 env.MergeFlags(['-std=c++0x'])
ronw@639 50 else:
alexbrandmeyer@640 51 env.MergeFlags(['-std=c++11'])
ronw@639 52
ronw@642 53 carfac_sources = [
ronw@644 54 'agc.h',
ronw@644 55 'car.h',
ronw@644 56 'carfac.cc',
ronw@644 57 'carfac_output.cc',
ronw@644 58 'carfac_util.cc',
ronw@644 59 'common.h',
ronw@644 60 'ear.cc',
alexbrandmeyer@643 61 'ihc.h',
alexbrandmeyer@643 62 'sai.cc'
ronw@642 63 ]
ronw@661 64 carfac = env.Library(target = 'carfac', source = carfac_sources)
ronw@661 65 Default(carfac)
ronw@625 66
ronw@625 67 env.Command('tmp/libgtest.a', [],
ronw@625 68 [
ronw@625 69 Delete('tmp'),
ronw@625 70 Copy('tmp', os.environ['GTEST_SOURCE']),
ronw@625 71 'cd tmp && cmake . && make',
ronw@625 72 ])
ronw@625 73
ronw@659 74 test_targets = [
ronw@659 75 'carfac_test',
ronw@659 76 'sai_test',
ronw@642 77 ]
ronw@659 78 test_programs = [env.Program(target = test_target,
ronw@659 79 source = ['%s.cc' % test_target],
ronw@659 80 LIBS = ['carfac', 'gtest', 'gtest_main', 'pthread'],
ronw@659 81 LIBPATH = ['.', 'tmp'])
ronw@659 82 for test_target in test_targets]
ronw@659 83 run_all_tests = env.Command('test',
ronw@659 84 test_programs,
ronw@659 85 ['./%s' % x for x in test_targets])