From cf3e952576646998a90d84e84125e4d209db3ccb Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Sun, 11 Apr 2010 09:20:46 +0000 Subject: Simplify autotools stuff; add 0sugar support --- diff --git a/.gitignore b/.gitignore index 27f857a..a1685ab 100644 --- a/.gitignore +++ b/.gitignore @@ -19,5 +19,6 @@ missing .deps .libs *.lo - +m4 gst-plugin-*.tar.* +.0sugar diff --git a/AUTHORS b/AUTHORS index ed0406b..abb401b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1,3 @@ -Aleksey S. Lim +Contributors +~~~~~~~~~~~~ +Aleksey Lim diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 898abc8..0000000 --- a/ChangeLog +++ /dev/null @@ -1,3 +0,0 @@ -2009-05-02 Aleksey S. Lim - - * Initial implementation diff --git a/Makefile.am b/Makefile.am index 7203ad8..1918a79 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1 @@ SUBDIRS = m4 src - -EXTRA_DIST = autogen.sh gst-autogen.sh diff --git a/README b/README index 3ddea32..4e993ea 100644 --- a/README +++ b/README @@ -1,4 +1,14 @@ -WHAT IT IS ----------- - +About +~~~~~ gstespeak is a src plugin to use espeak by way of sound source. + + +Home Page +~~~~~~~~~ +http://wiki.sugarlabs.org/go/Activity_Team/gst-plugins-espeak + + +Get it +~~~~~~ +http://git.sugarlabs.org/projects/gst-plugins-espeak +http://download.sugarlabs.org/sources/honey/gst-plugins-espeak/ diff --git a/autogen.sh b/autogen.sh index d0f488c..e85bfec 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,92 +1,9 @@ #!/bin/sh -# you can either set the environment variables AUTOCONF and AUTOMAKE -# to the right versions, or leave them unset and get the RedHat 7.3 defaults -NOCONFIGURE=1 -DIE=0 -package=gst-plugin -srcfile=src/main.c +aclocal -I m4/ $ACLOCAL_FLAGS --install || exit 1 +libtoolize --copy --force || exit 1 +autoheader || exit 1 +autoconf || exit 1 +automake -a -c || exit 1 -# autogen.sh helper functions (copied from GStreamer's common/ CVS module) -if test ! -f ./gst-autogen.sh; -then - echo There is something wrong with your source tree. - echo You are either missing ./gst-autogen.sh or not - echo running autogen.sh from the top-level source - echo directory. - exit 1 -fi -. ./gst-autogen.sh - -CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-debug' - -autogen_options $@ - -echo -n "+ check for build tools" -if test ! -z "$NOCHECK"; then echo " skipped"; else echo; fi -version_check "autoconf" "$AUTOCONF autoconf autoconf259 autoconf257 autoconf-2.54 autoconf-2.53 autoconf-2.52" \ - "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 52 || DIE=1 -version_check "automake" "$AUTOMAKE automake automake-1.9 automake19 automake-1.7 automake-1.6 automake-1.5" \ - "ftp://ftp.gnu.org/pub/gnu/automake/" 1 7 || DIE=1 -###version_check "autopoint" "autopoint" \ -### "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 11 5 || DIE=1 -version_check "libtoolize" "$LIBTOOLIZE libtoolize glibtoolize" \ - "ftp://ftp.gnu.org/pub/gnu/libtool/" 1 5 0 || DIE=1 -version_check "pkg-config" "" \ - "http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1 - -die_check $DIE - -autoconf_2_52d_check || DIE=1 -aclocal_check || DIE=1 -autoheader_check || DIE=1 - -die_check $DIE - -# if no arguments specified then this will be printed -if test -z "$*"; then - echo "+ checking for autogen.sh options" - echo " This autogen script will automatically run ./configure as:" - echo " ./configure $CONFIGURE_DEF_OPT" - echo " To pass any additional options, please specify them on the $0" - echo " command line." -fi - -tool_run "$aclocal" "-I m4/ $ACLOCAL_FLAGS --install" -tool_run "$libtoolize" "--copy --force" -tool_run "$autoheader" -tool_run "$autoconf" -tool_run "$automake" "-a -c" - -# if enable exists, add an -enable option for each of the lines in that file -if test -f enable; then - for a in `cat enable`; do - CONFIGURE_FILE_OPT="--enable-$a" - done -fi - -# if disable exists, add an -disable option for each of the lines in that file -if test -f disable; then - for a in `cat disable`; do - CONFIGURE_FILE_OPT="$CONFIGURE_FILE_OPT --disable-$a" - done -fi - -test -n "$NOCONFIGURE" && { - echo "+ skipping configure stage for package $package, as requested." - echo "+ autogen.sh done." - exit 0 -} - -echo "+ running configure ... " -test ! -z "$CONFIGURE_DEF_OPT" && echo " ./configure default flags: $CONFIGURE_DEF_OPT" -test ! -z "$CONFIGURE_EXT_OPT" && echo " ./configure external flags: $CONFIGURE_EXT_OPT" -test ! -z "$CONFIGURE_FILE_OPT" && echo " ./configure enable/disable flags: $CONFIGURE_FILE_OPT" -echo - -./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT $CONFIGURE_FILE_OPT || { - echo " configure failed" - exit 1 -} - -echo "Now type 'make' to compile $package." +[ "$NOCONFIGURE" ] || ./configure CFLAGS="$CFLAGS -Wall" --enable-maintainer-mode diff --git a/configure.ac b/configure.ac index a16dc52..14059ac 100644 --- a/configure.ac +++ b/configure.ac @@ -1,121 +1,30 @@ -AC_INIT([gst-plugins-espeak], [0.3]) - -dnl versions of gstreamer and plugins-base -GST_MAJORMINOR=0.10 -GST_REQUIRED=0.10.0 -GSTPB_REQUIRED=0.10.0 - -dnl fill in your package name and version here -dnl the fourth (nano) number should be 0 for a release, 1 for CVS, -dnl and 2... for a prerelease - -dnl when going to/from release please set the nano correctly ! -dnl releases only do Wall, cvs and prerelease does Werror too -AS_VERSION(gst-plugin, GST_PLUGIN_VERSION, 0, 10, 0, 1, - GST_PLUGIN_CVS="no", GST_PLUGIN_CVS="yes") - -dnl AM_MAINTAINER_MODE provides the option to enable maintainer mode -#AM_MAINTAINER_MODE - -AM_INIT_AUTOMAKE($PACKAGE, $VERSION) - -dnl make aclocal work in maintainer mode -AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") - +AC_INIT([gst-plugins-espeak], [0.3.3]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_SRCDIR([configure.ac]) +AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip]) AM_CONFIG_HEADER(config.h) -dnl check for tools +AM_MAINTAINER_MODE +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + AC_PROG_CC AC_PROG_LIBTOOL +GST_MAJORMINOR=0.10 -dnl decide on error flags -AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no") - -if test "x$GST_WALL" = "xyes"; then - GST_ERROR="$GST_ERROR -Wall" - - if test "x$GST_PLUGIN_CVS" = "xyes"; then - AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR") - fi -fi - -dnl Check for pkgconfig first -AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, yes, no) - -dnl Give error and exit if we don't have pkgconfig -if test "x$HAVE_PKGCONFIG" = "xno"; then - AC_MSG_ERROR(you need to have pkgconfig installed !) -fi - -dnl Now we're ready to ask for gstreamer libs and cflags -dnl And we can also ask for the right version of gstreamer - - -PKG_CHECK_MODULES(GST, \ - gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED, - HAVE_GST=yes,HAVE_GST=no) - -dnl Give error and exit if we don't have gstreamer -if test "x$HAVE_GST" = "xno"; then - AC_MSG_ERROR(you need gstreamer development packages installed !) -fi - -dnl append GST_ERROR cflags to GST_CFLAGS -GST_CFLAGS="$GST_CFLAGS $GST_ERROR" - -dnl make GST_CFLAGS and GST_LIBS available -AC_SUBST(GST_CFLAGS) -AC_SUBST(GST_LIBS) - -dnl make GST_MAJORMINOR available in Makefile.am -AC_SUBST(GST_MAJORMINOR) - -dnl If we need them, we can also use the base class libraries -PKG_CHECK_MODULES(GST_BASE, gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED, - HAVE_GST_BASE=yes, HAVE_GST_BASE=no) - -dnl Give a warning if we don't have gstreamer libs -dnl you can turn this into an error if you need them -if test "x$HAVE_GST_BASE" = "xno"; then - AC_MSG_NOTICE(no GStreamer base class libraries found (gstreamer-base-$GST_MAJORMINOR)) -fi - -dnl make _CFLAGS and _LIBS available -AC_SUBST(GST_BASE_CFLAGS) -AC_SUBST(GST_BASE_LIBS) - -dnl If we need them, we can also use the gstreamer-plugins-base libraries -PKG_CHECK_MODULES(GSTPB_BASE, - gstreamer-plugins-base-$GST_MAJORMINOR >= $GSTPB_REQUIRED, - HAVE_GSTPB_BASE=yes, HAVE_GSTPB_BASE=no) - -dnl Give a warning if we don't have gstreamer libs -dnl you can turn this into an error if you need them -if test "x$HAVE_GSTPB_BASE" = "xno"; then - AC_MSG_NOTICE(no GStreamer Plugins Base libraries found (gstreamer-plugins-base-$GST_MAJORMINOR)) -fi - -dnl make _CFLAGS and _LIBS available -AC_SUBST(GSTPB_BASE_CFLAGS) -AC_SUBST(GSTPB_BASE_LIBS) - -dnl If we need them, we can also use the gstreamer-controller libraries -PKG_CHECK_MODULES(GSTCTRL, - gstreamer-controller-$GST_MAJORMINOR >= $GSTPB_REQUIRED, - HAVE_GSTCTRL=yes, HAVE_GSTCTRL=no) +PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= 0.10.16) +PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-$GST_MAJORMINOR) -dnl Give a warning if we don't have gstreamer-controller -dnl you can turn this into an error if you need them -if test "x$HAVE_GSTCTRL" = "xno"; then - AC_MSG_NOTICE(no GStreamer Controller libraries found (gstreamer-controller-$GST_MAJORMINOR)) +dnl Check for 0sugar support +if test "${ESPEAK_PREFIX}"; then + ESPEAK_CFLAGS="-I${ESPEAK_PREFIX}/include" + ESPEAK_LIBS="-L${ESPEAK_PREFIX}/lib -lespeak" + AC_SUBST(ESPEAK_CFLAGS) + AC_SUBST(ESPEAK_LIBS) +else + AC_CHECK_LIB(espeak, espeak_Initialize,, AC_MSG_ERROR()) fi -dnl make _CFLAGS and _LIBS available -AC_SUBST(GSTCTRL_CFLAGS) -AC_SUBST(GSTCTRL_LIBS) - -dnl set the plugindir where plugins should be installed if test "x${prefix}" = "x$HOME"; then plugindir="$HOME/.gstreamer-$GST_MAJORMINOR/plugins" else @@ -132,14 +41,4 @@ dnl set proper LDFLAGS for plugins GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS" AC_SUBST(GST_PLUGIN_LDFLAGS) -dnl check espeak dependencies -AC_CHECK_LIB(espeak, espeak_Initialize,, AC_MSG_ERROR()) -PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-0.10, HAVE_AUDIO=yes, HAVE_AUDIO=no) - -if test "x$HAVE_AUDIO" = "xno"; then - AC_CHECK_LIB(gstbase-0.10, gst_base_src_get_type,, AC_MSG_ERROR()) - AC_CHECK_LIB(gstaudio-0.10, gst_base_audio_src_get_type,, AC_MSG_ERROR()) -fi - AC_OUTPUT(Makefile m4/Makefile src/Makefile) - diff --git a/gst-autogen.sh b/gst-autogen.sh deleted file mode 100644 index 7b31212..0000000 --- a/gst-autogen.sh +++ /dev/null @@ -1,308 +0,0 @@ -# a silly hack that generates autoregen.sh but it's handy -# Remove the old autoregen.sh first to create a new file, -# as the current one may be being read by the shell executing -# this script. -if [ -f "autoregen.sh" ]; then - rm autoregen.sh -fi -echo "#!/bin/sh" > autoregen.sh -echo "./autogen.sh $@ \$@" >> autoregen.sh -chmod +x autoregen.sh - -# helper functions for autogen.sh - -debug () -# print out a debug message if DEBUG is a defined variable -{ - if test ! -z "$DEBUG" - then - echo "DEBUG: $1" - fi -} - -version_check () -# check the version of a package -# first argument : package name (executable) -# second argument : optional path where to look for it instead -# third argument : source download url -# rest of arguments : major, minor, micro version -# all consecutive ones : suggestions for binaries to use -# (if not specified in second argument) -{ - PACKAGE=$1 - PKG_PATH=$2 - URL=$3 - MAJOR=$4 - MINOR=$5 - MICRO=$6 - - # for backwards compatibility, we let PKG_PATH=PACKAGE when PKG_PATH null - if test -z "$PKG_PATH"; then PKG_PATH=$PACKAGE; fi - debug "major $MAJOR minor $MINOR micro $MICRO" - VERSION=$MAJOR - if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi - if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi - - debug "major $MAJOR minor $MINOR micro $MICRO" - - for SUGGESTION in $PKG_PATH; do - COMMAND="$SUGGESTION" - - # don't check if asked not to - test -z "$NOCHECK" && { - echo -n " checking for $COMMAND >= $VERSION ... " - } || { - # we set a var with the same name as the package, but stripped of - # unwanted chars - VAR=`echo $PACKAGE | sed 's/-//g'` - debug "setting $VAR" - eval $VAR="$COMMAND" - return 0 - } - - debug "checking version with $COMMAND" - ($COMMAND --version) < /dev/null > /dev/null 2>&1 || - { - echo "not found." - continue - } - # strip everything that's not a digit, then use cut to get the first field - pkg_version=`$COMMAND --version|head -n 1|sed 's/^.*)[^0-9]*//'|cut -d' ' -f1` - debug "pkg_version $pkg_version" - # remove any non-digit characters from the version numbers to permit numeric - # comparison - pkg_major=`echo $pkg_version | cut -d. -f1 | sed s/[a-zA-Z\-].*//g` - pkg_minor=`echo $pkg_version | cut -d. -f2 | sed s/[a-zA-Z\-].*//g` - pkg_micro=`echo $pkg_version | cut -d. -f3 | sed s/[a-zA-Z\-].*//g` - test -z "$pkg_major" && pkg_major=0 - test -z "$pkg_minor" && pkg_minor=0 - test -z "$pkg_micro" && pkg_micro=0 - debug "found major $pkg_major minor $pkg_minor micro $pkg_micro" - - #start checking the version - debug "version check" - - # reset check - WRONG= - - if [ ! "$pkg_major" -gt "$MAJOR" ]; then - debug "major: $pkg_major <= $MAJOR" - if [ "$pkg_major" -lt "$MAJOR" ]; then - debug "major: $pkg_major < $MAJOR" - WRONG=1 - elif [ ! "$pkg_minor" -gt "$MINOR" ]; then - debug "minor: $pkg_minor <= $MINOR" - if [ "$pkg_minor" -lt "$MINOR" ]; then - debug "minor: $pkg_minor < $MINOR" - WRONG=1 - elif [ "$pkg_micro" -lt "$MICRO" ]; then - debug "micro: $pkg_micro < $MICRO" - WRONG=1 - fi - fi - fi - - if test ! -z "$WRONG"; then - echo "found $pkg_version, not ok !" - continue - else - echo "found $pkg_version, ok." - # we set a var with the same name as the package, but stripped of - # unwanted chars - VAR=`echo $PACKAGE | sed 's/-//g'` - debug "setting $VAR" - eval $VAR="$COMMAND" - return 0 - fi - done - - echo "not found !" - echo "You must have $PACKAGE installed to compile $package." - echo "Download the appropriate package for your distribution," - echo "or get the source tarball at $URL" - return 1; -} - -aclocal_check () -{ - # normally aclocal is part of automake - # so we expect it to be in the same place as automake - # so if a different automake is supplied, we need to adapt as well - # so how's about replacing automake with aclocal in the set var, - # and saving that in $aclocal ? - # note, this will fail if the actual automake isn't called automake* - # or if part of the path before it contains it - if [ -z "$automake" ]; then - echo "Error: no automake variable set !" - return 1 - else - aclocal=`echo $automake | sed s/automake/aclocal/` - debug "aclocal: $aclocal" - if [ "$aclocal" != "aclocal" ]; - then - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal" - fi - if [ ! -x `which $aclocal` ]; then - echo "Error: cannot execute $aclocal !" - return 1 - fi - fi -} - -autoheader_check () -{ - # same here - autoheader is part of autoconf - # use the same voodoo - if [ -z "$autoconf" ]; then - echo "Error: no autoconf variable set !" - return 1 - else - autoheader=`echo $autoconf | sed s/autoconf/autoheader/` - debug "autoheader: $autoheader" - if [ "$autoheader" != "autoheader" ]; - then - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader" - fi - if [ ! -x `which $autoheader` ]; then - echo "Error: cannot execute $autoheader !" - return 1 - fi - fi - -} -autoconf_2_52d_check () -{ - # autoconf 2.52d has a weird issue involving a yes:no error - # so don't allow it's use - test -z "$NOCHECK" && { - ac_version=`$autoconf --version|head -n 1|sed 's/^[a-zA-Z\.\ ()]*//;s/ .*$//'` - if test "$ac_version" = "2.52d"; then - echo "autoconf 2.52d has an issue with our current build." - echo "We don't know who's to blame however. So until we do, get a" - echo "regular version. RPM's of a working version are on the gstreamer site." - exit 1 - fi - } - return 0 -} - -die_check () -{ - # call with $DIE - # if set to 1, we need to print something helpful then die - DIE=$1 - if test "x$DIE" = "x1"; - then - echo - echo "- Please get the right tools before proceeding." - echo "- Alternatively, if you're sure we're wrong, run with --nocheck." - exit 1 - fi -} - -autogen_options () -{ - if test "x$1" = "x"; then - return 0 - fi - - while test "x$1" != "x" ; do - optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - case "$1" in - --noconfigure) - NOCONFIGURE=defined - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --noconfigure" - echo "+ configure run disabled" - shift - ;; - --nocheck) - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --nocheck" - NOCHECK=defined - echo "+ autotools version check disabled" - shift - ;; - --debug) - DEBUG=defined - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --debug" - echo "+ debug output enabled" - shift - ;; - --prefix=*) - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$optarg" - echo "+ passing --prefix=$optarg to configure" - shift - ;; - --prefix) - shift - echo "DEBUG: $1" - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$1" - echo "+ passing --prefix=$1 to configure" - shift - ;; - - -h|--help) - echo "autogen.sh (autogen options) -- (configure options)" - echo "autogen.sh help options: " - echo " --noconfigure don't run the configure script" - echo " --nocheck don't do version checks" - echo " --debug debug the autogen process" - echo " --prefix will be passed on to configure" - echo - echo " --with-autoconf PATH use autoconf in PATH" - echo " --with-automake PATH use automake in PATH" - echo - echo "to pass options to configure, put them as arguments after -- " - exit 1 - ;; - --with-automake=*) - AUTOMAKE=$optarg - echo "+ using alternate automake in $optarg" - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-automake=$AUTOMAKE" - shift - ;; - --with-autoconf=*) - AUTOCONF=$optarg - echo "+ using alternate autoconf in $optarg" - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF" - shift - ;; - --disable*|--enable*|--with*) - echo "+ passing option $1 to configure" - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $1" - shift - ;; - --) shift ; break ;; - *) echo "- ignoring unknown autogen.sh argument $1"; shift ;; - esac - done - - for arg do CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $arg"; done - if test ! -z "$CONFIGURE_EXT_OPT" - then - echo "+ options passed to configure: $CONFIGURE_EXT_OPT" - fi -} - -toplevel_check () -{ - srcfile=$1 - test -f $srcfile || { - echo "You must run this script in the top-level $package directory" - exit 1 - } -} - - -tool_run () -{ - tool=$1 - options=$2 - run_if_fail=$3 - echo "+ running $tool $options..." - $tool $options || { - echo - echo $tool failed - eval $run_if_fail - exit 1 - } -} diff --git a/src/Makefile.am b/src/Makefile.am index c1d1f49..049a21c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2,8 +2,8 @@ plugin_LTLIBRARIES = libgstespeak.la libgstespeak_la_SOURCES = espeak.c gstespeak.c -libgstespeak_la_CFLAGS = $(GST_CFLAGS) $(GST_AUDIO_CFLAGS) -libgstespeak_la_LIBADD = $(GST_LIBS) $(GST_AUDIO_LIBS) +libgstespeak_la_CFLAGS = $(GST_CFLAGS) $(GST_AUDIO_CFLAGS) $(ESPEAK_CFLAGS) +libgstespeak_la_LIBADD = $(GST_LIBS) $(GST_AUDIO_LIBS) $(ESPEAK_LIBS) libgstespeak_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstespeak_la_LIBTOOLFLAGS = --tag=disable-static -- cgit v0.9.1