| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495 |
- dnl########################################################################
- dnl ##
- dnl Language Technologies Institute ##
- dnl Carnegie Mellon University ##
- dnl Copyright (c) 1999-2008 ##
- dnl All Rights Reserved. ##
- dnl ##
- dnl Permission is hereby granted, free of charge, to use and distribute ##
- dnl this software and its documentation without restriction, including ##
- dnl without limitation the rights to use, copy, modify, merge, publish, ##
- dnl distribute, sublicense, and/or sell copies of this work, and to ##
- dnl permit persons to whom this work is furnished to do so, subject to ##
- dnl the following conditions: ##
- dnl 1. The code must retain the above copyright notice, this list of ##
- dnl conditions and the following disclaimer. ##
- dnl 2. Any modifications must be clearly marked as such. ##
- dnl 3. Original authors' names are not deleted. ##
- dnl 4. The authors' names are not used to endorse or promote products ##
- dnl derived from this software without specific prior written ##
- dnl permission. ##
- dnl ##
- dnl CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK ##
- dnl DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ##
- dnl ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ##
- dnl SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE ##
- dnl FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ##
- dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ##
- dnl AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ##
- dnl ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ##
- dnl THIS SOFTWARE. ##
- dnl ##
- dnl########################################################################
- AC_INIT(include/flite.h)
- AC_CANONICAL_SYSTEM
- AC_PROG_CC
- AC_PROG_RANLIB
- AC_PROG_INSTALL
- AC_CHECK_TOOL(AR, ar)
- AC_C_BIGENDIAN
- if test "x$GCC" = "xyes"; then
- CFLAGS="$CFLAGS -Wall"
- fi
- AC_ARG_ENABLE( shared,
- [ --disable-shared without shared library support],
- [case "${enableval}" in
- yes) shared=true ;;
- no) shared=false ;;
- *) AC_MSG_ERROR(bad value ${enableval} for shared options) ;;
- esac],
- [shared=false])
- case "$target_cpu" in
- i386|i486|i586|i686)
- TARGET_CPU=i386
- ;;
- *)
- TARGET_CPU=$target_cpu
- ;;
- esac
- TARGET_OS=$target_os
- M68KCC=
- M68KCLAGS=
- WINDRES=
- CHROMEBIN_PREFIX=
- if test "$target_os" = "chrome" ; then
- case "$TARGET_CPU" in
- i386*)
- CFLAGS="$CFLAGS -m32"
- CHROMEBIN_PREFIX=" $CHROME_NDK/toolchain/linux_x86_newlib/bin/i686-nacl"
- ;;
- x86_64*)
- CFLAGS="$CFLAGS -m64"
- CHROMEBIN_PREFIX=" $CHROME_NDK/toolchain/linux_x86_newlib/bin/x86_64-nacl"
- esac
- fi
- case "$target_os" in
- palmos*)
- shared=false
- CFLAGS="$CFLAGS -DCST_NO_SOCKETS"
- # PalmOS Apps are always in M68K
- M68KCC=/usr/m68k-palmos/bin/gcc
- # Generic build is ARM or M68K (probably ARM though)
- CC="/usr/$TARGET_CPU-palmos/bin/gcc"
- if test "$target_cpu" = "arm"
- then
- CC="$CC -fPIC -march=armv4t"
- fi
- RANLIB=/usr/$TARGET_CPU-palmos/bin/ranlib
- AR=/usr/$TARGET_CPU-palmos/bin/ar
- LEXDEFS="-DCST_NO_STATIC_LEX -DCST_NO_STATIC_LTS_MODEL"
- VOXDEFS="-DCST_NO_STATIC_VOX"
- ;;
- dnl wince*)
- dnl # For the GNUWINCE environment
- dnl # http://win-ce.voxware.com:28575/Development%20Tools/
- dnl shared=false
- dnl CFLAGS="$CFLAGS -DCST_NO_SOCKETS -march=armv4 -mapcs-32 -malignment-traps -DNEWLIB -DSARM -DWIN32 -DGNUWINCE"
- dnl CC="/usr/local/wince/bin/arm-wince-pe-gcc"
- dnl RANLIB=/usr/local/wince/bin/arm-wince-pe-ranlib
- dnl AR=/usr/local/wince/bin/arm-wince-pe-ar
- dnl ;;
- wince*)
- # For the CEGCC environment (mingw32ce)
- # http://cegcc.sourceforge.net/
- shared=false
- # cegcc
- # CFLAGS="$CFLAGS -DCST_NO_SOCKETS -DUNDER_CE -DNEWLIB -DSARM -DWIN32 -DGNUWINCE"
- # CC="/opt/cegcc/bin/arm-cegcc-gcc"
- # RANLIB="/opt/cegcc/bin/arm-cegcc-ranlib"
- # AR="/opt/cegcc/bin/arm-cegcc-ar"
- # mingw32ce
- CFLAGS="$CFLAGS -DCST_NO_SOCKETS -DUNDER_CE -DSARM -DWIN32"
- if test -f "/opt/mingw32ce/bin/arm-mingw32ce-gcc"
- then
- MINGW32CEPREF="/opt/mingw32ce/bin/arm-mingw32ce-"
- else
- MINGW32CEPREF="/opt/mingw32ce/bin/arm-wince-mingw32ce-"
- fi
- CC="${MINGW32CEPREF}gcc"
- RANLIB="${MINGW32CEPREF}ranlib"
- AR="${MINGW32CEPREF}ar"
- SIZE="${MINGW32CEPREF}size"
- STRIP="${MINGW32CEPREF}strip"
- WINDRES="${MINGW32CEPREF}windres"
- DLLTOOL="${MINGW32CEPREF}dlltool"
- DLLWRAP="${MINGW32CEPREF}dllwrap"
- NM="${MINGW32CEPREF}nm"
- ;;
- mingw*)
- # For the Windows under mingw32 environment
- # http://www.mingw.org
- shared=false
- CFLAGS="$CFLAGS -DCST_NO_SOCKETS -DUNDER_WINDOWS -DWIN32 -shared"
- MINGWPREF="i386-mingw32-"
- CC="${MINGWPREF}gcc"
- RANLIB="${MINGWPREF}ranlib"
- AR="${MINGWPREF}ar"
- WINDRES="${MINGWPREF}windres"
- DLLTOOL="${MINGWPREF}dlltool"
- DLLWRAP="${MINGWPREF}dllwrap"
- NM="${MINGWPREF}nm"
- ;;
- android*)
- # For Android with Android NDK
- # http://developer.android.com/sdk/ndk/index.html
- shared=false
- # We target our compilation to android-14 (4.0) platform
- ANDROID_NDK_PLATFORM_PATH="$ANDROID_NDK/platforms/android-14"
- ANDROID_GCC_VERSION=4.6
- if test "$target_cpu" = "armeabi"
- then
- ANDROID_TOOLCHAIN="arm-linux-androideabi-$ANDROID_GCC_VERSION"
- ANDROID_NDK_SYSROOT="$ANDROID_NDK_PLATFORM_PATH/arch-arm"
- ANDROIDBIN="$ANDROID_NDK/toolchains/arm-linux-androideabi-$ANDROID_GCC_VERSION/prebuilt/linux-x86/bin/arm-linux-androideabi"
- CFLAGS="$CFLAGS -fpic -mthumb -O3 -DANDROID --sysroot=$ANDROID_NDK_SYSROOT"
- fi
- if test "$target_cpu" = "armeabiv7a"
- then
- ANDROID_TOOLCHAIN="arm-linux-androideabi-$ANDROID_GCC_VERSION"
- ANDROID_NDK_SYSROOT="$ANDROID_NDK_PLATFORM_PATH/arch-arm"
- ANDROIDBIN="$ANDROID_NDK/toolchains/arm-linux-androideabi-$ANDROID_GCC_VERSION/prebuilt/linux-x86/bin/arm-linux-androideabi"
- CFLAGS="$CFLAGS -fpic -march=armv7-a -mfloat-abi=softfp -O3 -DANDROID --sysroot=$ANDROID_NDK_SYSROOT"
- LDFLAGS="$LDFLAGS -Wl,--fix-cortex-a8"
- fi
- if test "$target_cpu" = "x86"
- then
- ANDROID_TOOLCHAIN="x86-$ANDROID_GCC_VERSION"
- ANDROID_NDK_SYSROOT="$ANDROID_NDK_PLATFORM_PATH/arch-x86"
- ANDROIDBIN="$ANDROID_NDK/toolchains/x86-$ANDROID_GCC_VERSION/prebuilt/linux-x86/bin/i686-linux-android"
- CFLAGS="$CFLAGS -fpic -O3 -DANDROID --sysroot=$ANDROID_NDK_SYSROOT"
- fi
- if test "$target_cpu" = "mips"
- then
- ANDROID_TOOLCHAIN="mipsel-linux-android-$ANDROID_GCC_VERSION"
- ANDROID_NDK_SYSROOT="$ANDROID_NDK_PLATFORM_PATH/arch-mips"
- ANDROIDBIN="$ANDROID_NDK/toolchains/mipsel-linux-android-$ANDROID_GCC_VERSION/prebuilt/linux-x86/bin/mipsel-linux-android"
- CFLAGS="$CFLAGS -fpic -O3 -DANDROID --sysroot=$ANDROID_NDK_SYSROOT"
- fi
- # Common to all android variants
- CC="${ANDROIDBIN}-gcc"
- RANLIB="${ANDROIDBIN}-ranlib"
- AR="${ANDROIDBIN}-ar"
- NM="${ANDROIDBIN}-nm"
- ;;
- chrome*)
- shared=false
- CFLAGS="$CFLAGS -DCST_NO_SOCKETS"
- CC="${CHROMEBIN_PREFIX}-gcc"
- RANLIB="${CHROMEBIN_PREFIX}-ranlib"
- AR="${CHROMEBIN_PREFIX}-ar"
- NM="${CHROMEBIN_PREFIX}-nm"
- ;;
- uclinux*)
- LDFLAGS="$LDFLAGS -Wl,-elf2flt"
- ;;
- darwin*)
- CFLAGS="$CFLAGS -no-cpp-precomp"
- ;;
- esac
- AC_SUBST(TARGET_OS)
- AC_SUBST(TARGET_CPU)
- AC_SUBST(M68KCC)
- AC_SUBST(WINDRES)
- AC_SUBST(SIZE)
- AC_SUBST(STRIP)
- AC_SUBST(DLLTOOL)
- AC_SUBST(DLLWRAP)
- AC_SUBST(NM)
- AC_SUBST(LEXDEFS)
- AC_SUBST(VOXDEFS)
- case "$host_cpu" in
- i386|i486|i586|i686)
- HOST_CPU=i386
- ;;
- *)
- HOST_CPU=$host_cpu
- ;;
- esac
- HOST_OS=$host_os
- AC_SUBST(HOST_OS)
- AC_SUBST(HOST_CPU)
- SHFLAGS=
- OTHERLIBS=
- dnl For OpenPandora and other (softfloat) ARMs with neon
- if grep -q Pandora /proc/cpuinfo
- then
- CFLAGS="$CFLAGS -DPANDORA -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
- fi
- withpic=false
- AC_ARG_WITH( pic, [ --with-pic with pic ],
- withpic=$with_pic )
- if test "x$with_pic" = "xyes"; then
- case "$target_os" in
- linux*)
- CFLAGS="$CFLAGS -fPIC"
- ;;
- solaris*)
- CFLAGS="$CFLAGS -fPIC"
- ;;
- *)
- CFLAGS="$CFLAGS -fPIC"
- ;;
- esac
- fi
- if test "$shared" = true; then
- case "$target_os" in
- linux*|k*bsd*-gnu|gnu*)
- SHFLAGS="-fPIC"
- ;;
- solaris*)
- SHFLAGS="-fPIC"
- OTHERLIBS="-lsocket -ldl"
- ;;
- *)
- ;;
- esac
- fi
- case "$target_os" in
- wince*)
- # cegcc
- #OTHERLIBS="-lc -lgcc -lwinsock -lcoredll"
- # mingw32ce
- OTHERLIBS=
- ;;
- *)
- ;;
- esac
- AC_SUBST(OTHERLIBS)
- AC_SUBST(SHFLAGS)
- AC_ARG_ENABLE( sockets,
- [ --disable-sockets without socket support],
- [case "${enableval}" in
- yes) sockets=true ;;
- no) sockets=false ;;
- *) AC_MSG_ERROR(bad value ${enableval} for sockets options) ;;
- esac],
- [sockets=true])
- if test "$sockets" = false; then
- AC_DEFINE(CST_NO_SOCKETS)
- fi
- dnl
- dnl Does this compiler support initialization of unions
- dnl
- AC_TRY_COMPILE([#include <stdio.h>],
- [ struct a { union { float b; int c; } d; };
- const struct a e = { .d={ .b=3.14 } }; ],
- [unioninit=yes],
- [unioninit=no])
- if test "$unioninit" = no; then
- AC_DEFINE(NO_UNION_INITIALIZATION)
- fi
- dnl
- dnl Does this platform support mmap(2)
- dnl Note we don't use AC_FUNC_MMAP because we really only care whether
- dnl read-only mappings work.
- dnl
- AC_CHECK_FUNC(mmap,MMAPTYPE=posix)
- dnl Force no mmap for chrome
- if test "$target_os" = "chrome"
- then
- MMAPTYPE=none
- fi
- dnl AC_CHECK_FUNC doesn't seem to work for Win32 API calls...
- if test "x$MMAPTYPE" = x; then
- case "$target_os" in
- cygwin*|mingw*)
- MMAPTYPE=win32
- ;;
- android*)
- MMAPTYPE=posix
- ;;
- *)
- MMAPTYPE=none
- ;;
- esac
- fi
- dnl
- dnl allow the user to override the one detected above
- dnl
- AC_ARG_WITH( mmap,
- [ --with-mmap with specific mmap support (none posix win32) ],
- MMAPTYPE=$with_mmap )
- AC_SUBST(MMAPTYPE)
- dnl stdio type, palmos/wince are different
- if test "$target_os" = "palmos"
- then
- STDIOTYPE=palmos
- else
- if test "$target_os" = "wince"
- then
- STDIOTYPE=wince
- else
- STDIOTYPE=stdio
- fi
- fi
- AC_SUBST(STDIOTYPE)
- dnl
- dnl determine audio type or use none if none supported on this platform
- dnl
- AUDIODRIVER=none
- AC_CHECK_HEADER(sys/soundcard.h,
- [AUDIODRIVER="oss"
- AUDIODEFS=-DCST_AUDIO_LINUX])
- AC_CHECK_HEADER(machine/soundcard.h,
- [AUDIODRIVER="oss"
- AUDIODEFS=-DCST_AUDIO_FREEBSD])
- AC_CHECK_HEADER(sys/audioio.h,
- [AUDIODRIVER="sun"
- AUDIODEFS=-DCST_AUDIO_SUNOS])
- # Seems the alsa code I have breaks on earlier versions
- # I'm not sure what the threshold version is, but made this depend on
- # the one I know -- you can still specific --with-audio=alsa
- AC_TRY_COMPILE([#include <alsa/version.h>],
- [int j=
- #if SND_LIB_SUBMINOR >= 11
- 3;
- #endif],
- [AUDIODRIVER="alsa"
- AUDIODEFS=-DCST_AUDIO_ALSA
- AUDIOLIBS=-lasound])
- AC_CHECK_HEADER(mmsystem.h,
- [AUDIODRIVER="wince"
- AUDIODEFS=-DCST_AUDIO_WINCE
- AUDIOLIBS=-lwinmm])
- dnl I don't care what you ask for, for wince you get wince
- case "$target_os" in
- wince*)
- AUDIODRIVER="wince"
- AUDIODEFS=-DCST_AUDIO_WINCE
- AUDIOLIBS=
- ;;
- mingw*)
- AUDIODRIVER="none"
- AUDIODEFS=-DCST_AUDIO_NONE
- AUDIOLIBS=
- ;;
- android*)
- AUDIODRIVER="none"
- AUDIODEFS=-DCST_AUDIO_NONE
- AUDIOLIBS=
- ;;
- chrome*)
- AUDIODRIVER="none"
- AUDIODEFS=-DCST_AUDIO_NONE
- AUDIOLIBS=
- ;;
- *)
- ;;
- esac
- dnl
- dnl allow the user to override the one detected above
- dnl
- AC_ARG_WITH( audio,
- [ --with-audio with specific audio support (none linux freebsd etc) ],
- AUDIODRIVER=$with_audio
- AUDIODEFS="" )
- if test "x$AUDIODEFS" = x; then
- case "$AUDIODRIVER" in
- linux|oss)
- AUDIODRIVER=oss
- AUDIODEFS=-DCST_AUDIO_LINUX
- ;;
- alsa)
- AUDIODRIVER="alsa"
- AUDIODEFS=-DCST_AUDIO_ALSA
- AUDIOLIBS=-lasound
- ;;
- pa|pulseaudio)
- AUDIODRIVER="pulseaudio"
- AUDIODEFS=-DCST_AUDIO_PULSEAUDIO
- AUDIOLIBS='-lpulse-simple -lpulse'
- ;;
- *bsd)
- AUDIODRIVER=oss
- AUDIODEFS=-DCST_AUDIO_FREEBSD
- ;;
- qnx)
- AUDIODRIVER=alsa
- AUDIODEFS=-DCST_AUDIO_QNX
- ;;
- none)
- AUDIODEFS=-DCST_AUDIO_NONE
- ;;
- esac
- fi
- AC_SUBST(AUDIODRIVER)
- AC_SUBST(AUDIODEFS)
- AC_SUBST(AUDIOLIBS)
- dnl
- dnl language/lexicon/voice parameters
- dnl
- AC_ARG_WITH( lang, [ --with-lang with language ],
- FL_LANG=$with_lang )
- if test "x$with_lang" = "x"; then
- FL_LANG="usenglish"
- fi
- AC_SUBST(FL_LANG)
- AC_ARG_WITH( vox, [ --with-vox with vox ],
- FL_VOX=$with_vox )
- if test "x$with_vox" = "x"; then
- FL_VOX="cmu_us_kal"
- fi
- AC_SUBST(FL_VOX)
- AC_ARG_WITH( lex, [ --with-lex with lexicon ],
- FL_LEX=$with_lex )
- if test "x$with_lex" = "x"; then
- FL_LEX="cmulex"
- fi
- AC_SUBST(FL_LEX)
- AC_SUBST(EXEEXT)
- FL_LANGVOX="default"
- AC_ARG_WITH( langvox,
- [ --with-langvox with subsets of lang, lex and voices ],
- FL_LANGVOX=$with_langvox )
- AC_SUBST(FL_LANGVOX)
- AC_OUTPUT(config/config config/system.mak)
|