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_SYSTEMAC_PROG_CCAC_PROG_RANLIBAC_PROG_INSTALLAC_CHECK_TOOL(AR, ar)AC_C_BIGENDIAN(ENDIANDEFS=-DWORDS_BIGENDIAN=1,,) if test "x$GCC" = "xyes"; then CFLAGS="$CFLAGS -Wall"fiAC_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"esacfi 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 environmentdnl # http://win-ce.voxware.com:28575/Development%20Tools/dnl shared=falsednl 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-ranlibdnl AR=/usr/local/wince/bin/arm-wince-pe-ardnl ;; 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" PREFLEN=`expr match "$CC" ".*-gcc"` if expr $PREFLEN != 0 > /dev/null; then # When $CC includes "-gcc", use the preceding # charactors + '-' as MINGPREF. # for example: # CC=x86_64-w64-mingw32-gcc.exe # --> MINGWPREF=x86_64-w64-mingw32- PREFLEN=`expr $PREFLEN - 3` MINGPREF=`expr substr $CC 1 $PREFLEN` fi 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" ;; wasi*) CFLAGS="$CFLAGS -DDIE_ON_ERROR -DCST_NO_SOCKETS -DWASM32_WASI" ;;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)AC_SUBST(ENDIANDEFS) 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 neonif grep -q Pandora /proc/cpuinfothen CFLAGS="$CFLAGS -DPANDORA -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp"fi withpic=falseAC_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" ;; esacfi if test "$shared" = true; then case "$target_os" in linux*|k*bsd*-gnu|gnu*) SHFLAGS="-fPIC" ;; solaris*) SHFLAGS="-fPIC" OTHERLIBS="-lsocket -ldl" ;; *) ;; esacficase "$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 dnldnl Does this compiler support initialization of unionsdnlAC_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 dnldnl Does this platform support mmap(2)dnl Note we don't use AC_FUNC_MMAP because we really only care whetherdnl read-only mappings work.dnlAC_CHECK_FUNC(mmap,MMAPTYPE=posix) dnl Force no mmap for chromeif test "$target_os" = "chrome"then MMAPTYPE=nonefi 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 ;; esacfi dnldnl allow the user to override the one detected abovednlAC_ARG_WITH( mmap, [ --with-mmap with specific mmap support (none posix win32) ], MMAPTYPE=$with_mmap ) AC_SUBST(MMAPTYPE) dnl stdio type, palmos/wince are differentif test "$target_os" = "palmos"then STDIOTYPE=palmoselse if test "$target_os" = "wince" then STDIOTYPE=wince else STDIOTYPE=stdio fifiAC_SUBST(STDIOTYPE) dnldnl determine audio type or use none if none supported on this platformdnlAUDIODRIVER=noneAC_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])# We're going to make alsa the default now, if supported AC_CHECK_HEADER(alsa/asoundlib.h, [AUDIODRIVER="alsa" AUDIODEFS=-DCST_AUDIO_ALSA AUDIOLIBS=`pkg-config --libs alsa` if test "$shared" = false; then AUDIOLIBS=`pkg-config --libs --static alsa` fi])AC_CHECK_HEADER(mmsystem.h, [AUDIODRIVER="wince" AUDIODEFS=-DCST_AUDIO_WINCE AUDIOLIBS=-lwinmm], [], [#include <windows.h>]) dnl I don't care what you ask for, for wince you get wincecase "$target_os" in wince*) AUDIODRIVER="wince" AUDIODEFS=-DCST_AUDIO_WINCE AUDIOLIBS= ;; android*) AUDIODRIVER="none" AUDIODEFS=-DCST_AUDIO_NONE AUDIOLIBS= ;; chrome*) AUDIODRIVER="none" AUDIODEFS=-DCST_AUDIO_NONE AUDIOLIBS= ;; *) ;;esac dnldnl allow the user to override the one detected abovednlAC_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 ;; esacfiAC_SUBST(AUDIODRIVER)AC_SUBST(AUDIODEFS)AC_SUBST(AUDIOLIBS) dnldnl language/lexicon/voice parameters dnlAC_ARG_WITH( lang, [ --with-lang with language ], FL_LANG=$with_lang )if test "x$with_lang" = "x"; then FL_LANG="usenglish"fiAC_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"fiAC_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"fiAC_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)
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(ENDIANDEFS=-DWORDS_BIGENDIAN=1,,)
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"
PREFLEN=`expr match "$CC" ".*-gcc"`
if expr $PREFLEN != 0 > /dev/null; then
# When $CC includes "-gcc", use the preceding
# charactors + '-' as MINGPREF.
# for example:
# CC=x86_64-w64-mingw32-gcc.exe
# --> MINGWPREF=x86_64-w64-mingw32-
PREFLEN=`expr $PREFLEN - 3`
MINGPREF=`expr substr $CC 1 $PREFLEN`
fi
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"
;;
wasi*)
CFLAGS="$CFLAGS -DDIE_ON_ERROR -DCST_NO_SOCKETS -DWASM32_WASI"
;;
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)
AC_SUBST(ENDIANDEFS)
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])
# We're going to make alsa the default now, if supported
AC_CHECK_HEADER(alsa/asoundlib.h,
[AUDIODRIVER="alsa"
AUDIODEFS=-DCST_AUDIO_ALSA
AUDIOLIBS=`pkg-config --libs alsa`
if test "$shared" = false; then
AUDIOLIBS=`pkg-config --libs --static alsa`
fi])
AC_CHECK_HEADER(mmsystem.h,
[AUDIODRIVER="wince"
AUDIODEFS=-DCST_AUDIO_WINCE
AUDIOLIBS=-lwinmm],
[],
[#include <windows.h>])
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=
;;
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)