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= 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" ;; 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= 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 ], [ 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 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 ;; *) MMAPTYPE=none ;; esac fi 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 ], [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= ;; *) ;; 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 ) 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 ;; *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)