diff --git a/m4/ac_config_libconfig_in.m4 b/m4/ac_config_libconfig_in.m4 new file mode 100644 index 00000000..0c3d15e5 --- /dev/null +++ b/m4/ac_config_libconfig_in.m4 @@ -0,0 +1,251 @@ +dnl Available from the GNU Autoconf Macro Archive at: +dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_config_libconfig_in.html +dnl +# AC_CONFIG_LIBCONFIG_IN(LIBRARY, DESTINATION, MODULES) +# ----------------------------------------------------- +# Generate a custom LIBRARY-config script. Create the script in the +# DESTINATION directory, including support for MODULES. +AC_DEFUN([AC_CONFIG_LIBCONFIG_IN], +[# create a custom library-config file ($1-config) +m4_if(AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG, [true], + [AC_PATH_PROG(PKG_CONFIG, pkg-config)]) +pushdef([LIBCONFIG_DIR], [m4_if([$2], , , [$2/])]) +LIBCONFIG_FILE="LIBCONFIG_DIR[]$1-config.in" +AC_SUBST(target)dnl +AC_SUBST(host)dnl +AC_SUBST(build)dnl +dnl create directory if it does not preexist +m4_if([$2], , , [AS_MKDIR_P([$2])]) +AC_MSG_NOTICE([creating $LIBCONFIG_FILE]) +echo '#! /bin/sh' >$LIBCONFIG_FILE +echo "# $1-config library configuration script" >>$LIBCONFIG_FILE +echo '# generated by ac_config_libconfig_in.m4' >>$LIBCONFIG_FILE +echo ' ' >>$LIBCONFIG_FILE +echo 'template_version="1.0.0"' >>$LIBCONFIG_FILE +echo ' ' >>$LIBCONFIG_FILE +echo 'package="@PACKAGE@"' >>$LIBCONFIG_FILE +echo ' ' >>$LIBCONFIG_FILE +echo '# usage instructions if no options given' >>$LIBCONFIG_FILE +echo 'if test "'"\$""#"'" -eq 0; then' >>$LIBCONFIG_FILE +echo ' cat <>$LIBCONFIG_FILE +m4_if($3, , + [echo 'Usage: $1-config [[OPTIONS]]' >>$LIBCONFIG_FILE], + [echo 'Usage: $1-config [[OPTIONS]] [[LIBRARIES]]' >>$LIBCONFIG_FILE]) +echo 'Options:' >>$LIBCONFIG_FILE +echo ' [[--prefix[=DIR]]]' >>$LIBCONFIG_FILE +echo ' [[--exec-prefix[=DIR]]]' >>$LIBCONFIG_FILE +echo ' [[--package]]' >>$LIBCONFIG_FILE +echo ' [[--version]]' >>$LIBCONFIG_FILE +echo ' [[--cflags]]' >>$LIBCONFIG_FILE +echo ' [[--libs]]' >>$LIBCONFIG_FILE +echo ' [[--help]]' >>$LIBCONFIG_FILE +m4_if($3, , , + [echo 'Libraries:' >>$LIBCONFIG_FILE + for module in $1 $3 ; do + echo " $module" >>$LIBCONFIG_FILE ; + done]) +echo 'EOF' >>$LIBCONFIG_FILE +echo 'fi' >>$LIBCONFIG_FILE +echo ' ' >>$LIBCONFIG_FILE +echo '# parse options' >>$LIBCONFIG_FILE +echo 'o=""' >>$LIBCONFIG_FILE +echo 'h=""' >>$LIBCONFIG_FILE +echo 'for i ; do' >>$LIBCONFIG_FILE +echo ' case $i in' >>$LIBCONFIG_FILE +options="prefix exec-prefix eprefix package version cflags libs bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir infodir mandir target host build pkgdatadir pkglibdir pkgincludedir template-version help" +echo ' --prefix=*) prefix=`echo $i | sed -e "s/--prefix=//"` ;;' >>$LIBCONFIG_FILE +echo ' --exec-prefix=*) exec_prefix=`echo $i | sed -e "s/--exec-prefix=//"` ;;' >>$LIBCONFIG_FILE +echo ' --eprefix=*) exec_prefix=`echo $i | sed -e "s/--eprefix=//"` ;;' >>$LIBCONFIG_FILE +for option in $options ; do + case $option in + exec-prefix) echo " --$option) echo_exec_prefix=\"yes\" ;;" >>$LIBCONFIG_FILE ;; + template-version) echo " --$option) echo_template_version=\"yes\" ;;" >>$LIBCONFIG_FILE ;; + *) echo " --$option) echo_$option=\"yes\" ;;" >>$LIBCONFIG_FILE ;; + esac +done +m4_if($3, , , + [for module in $1 $3 ; do + echo " $module) echo_module_$module=\"yes\" ;" >>$LIBCONFIG_FILE ; + echo ' echo_module="yes" ;;' >>$LIBCONFIG_FILE ; + done]) +echo ' //*|/*//*|./*//*) echo_extra="yes" ;;' >>$LIBCONFIG_FILE +echo ' *) eval "echo Unknown option: $i" ; exit 1 ;;' >>$LIBCONFIG_FILE +echo ' esac' >>$LIBCONFIG_FILE +echo 'done' >>$LIBCONFIG_FILE +echo ' ' >>$LIBCONFIG_FILE +# in the order of occurence a standard automake Makefile +echo '# defaults from configure; set only if not set previously' >>$LIBCONFIG_FILE +vars="prefix exec_prefix bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir infodir mandir includedir target host build" +for var in $vars ; do + echo "if test -z \"\$$var\" ; then" >>$LIBCONFIG_FILE + echo " $var=\"@$var@\"" >>$LIBCONFIG_FILE + echo 'fi' >>$LIBCONFIG_FILE +done +echo ' ' >>$LIBCONFIG_FILE +echo '# generate output' >>$LIBCONFIG_FILE +echo 'if test x$echo_module != xyes ; then' >>$LIBCONFIG_FILE +echo ' echo_module_$1="yes"' >>$LIBCONFIG_FILE +echo 'fi' >>$LIBCONFIG_FILE +AC_CONFIG_LIBCONFIG_IN_MODULES(m4_if([$3], , [$1], [m4_translit([$1 $3], [ ], [,])]))dnl +for option in $options extra; do + case $option in + exec-prefix) echo "if test x\$echo_exec_prefix = xyes ; then" >>$LIBCONFIG_FILE ;; + template-version) echo "if test x\$echo_template_version = xyes ; then" >>$LIBCONFIG_FILE ;; + *) echo "if test x\$echo_$option = xyes ; then" >>$LIBCONFIG_FILE ;; + esac + case $option in + exec-prefix | eprefix) echo ' o="$o $exec_prefix"' >>$LIBCONFIG_FILE ;; + template-version) echo ' o="$o $template_version"' >>$LIBCONFIG_FILE ;; + cflags) + echo ' i=`eval echo "$includedir"`' >>$LIBCONFIG_FILE ; + echo ' i=`eval echo "$i"`' >>$LIBCONFIG_FILE ; + echo ' if test "_$i" != "_/usr/include" ; then' >>$LIBCONFIG_FILE ; + echo ' o="$o -I$includedir"' >>$LIBCONFIG_FILE ; + echo ' fi' >>$LIBCONFIG_FILE ; + echo ' o="$o $cflags"' >>$LIBCONFIG_FILE ;; + libs) echo ' o="$o -L$libdir $libs"' >>$LIBCONFIG_FILE ;; + help) echo ' h="1"' >>$LIBCONFIG_FILE ;; + pkgdatadir) echo " o=\"$o \${datadir}/\${package}\"" >>$LIBCONFIG_FILE ;; + pkglibdir) echo " o=\"$o \${libdir}/\${package}\"" >>$LIBCONFIG_FILE ;; + pkgincludedir) echo " o=\"$o \${includedir}/\${package}\"" >>$LIBCONFIG_FILE ;; + extra) + echo ' v=`echo $i | sed -e s://:\$:g`' >>$LIBCONFIG_FILE ; + echo ' v=`eval "echo $v"`' >>$LIBCONFIG_FILE ; + echo ' o="$o $v"' >>$LIBCONFIG_FILE ;; + *) echo " o=\"$o \$$option\"" >>$LIBCONFIG_FILE + esac + echo 'fi' >>$LIBCONFIG_FILE +done +echo ' ' >>$LIBCONFIG_FILE +echo '# output data' >>$LIBCONFIG_FILE +echo 'o=`eval "echo $o"`' >>$LIBCONFIG_FILE +echo 'o=`eval "echo $o"`' >>$LIBCONFIG_FILE +echo 'if test -n "$o" ; then ' >>$LIBCONFIG_FILE +echo ' eval "echo $o"' >>$LIBCONFIG_FILE +echo 'fi' >>$LIBCONFIG_FILE +echo ' ' >>$LIBCONFIG_FILE +echo '# help text' >>$LIBCONFIG_FILE +echo 'if test ! -z "$h" ; then ' >>$LIBCONFIG_FILE +echo ' cat <>$LIBCONFIG_FILE +echo 'All available options:' >>$LIBCONFIG_FILE +echo ' --prefix=DIR and change \$prefix and \$exec-prefix' >>$LIBCONFIG_FILE +echo ' --exec-prefix=DIR (affects all other options)' >>$LIBCONFIG_FILE +echo ' --prefix \$prefix $prefix' >>$LIBCONFIG_FILE +echo ' --exec_prefix or... ' >>$LIBCONFIG_FILE +echo ' --eprefix \$exec_prefix $exec_prefix' >>$LIBCONFIG_FILE +echo ' --version \$version $version' >>$LIBCONFIG_FILE +echo ' --cflags -I\$includedir unless it is /usr/include' >>$LIBCONFIG_FILE +echo ' --libs -L\$libdir \$LIBS $libs' >>$LIBCONFIG_FILE +echo ' --package \$package $package' >>$LIBCONFIG_FILE +echo ' --bindir \$bindir $bindir' >>$LIBCONFIG_FILE +echo ' --sbindir \$sbindir $sbindir' >>$LIBCONFIG_FILE +echo ' --libexecdir \$libexecdir $libexecdir' >>$LIBCONFIG_FILE +echo ' --datadir \$datadir $datadir' >>$LIBCONFIG_FILE +echo ' --sysconfdir \$sysconfdir $sysconfdir' >>$LIBCONFIG_FILE +echo ' --sharedstatedir \$sharedstatedir$sharedstatedir' >>$LIBCONFIG_FILE +echo ' --localstatedir \$localstatedir $localstatedir' >>$LIBCONFIG_FILE +echo ' --libdir \$libdir $libdir' >>$LIBCONFIG_FILE +echo ' --infodir \$infodir $infodir' >>$LIBCONFIG_FILE +echo ' --mandir \$mandir $mandir' >>$LIBCONFIG_FILE +echo ' --target \$target $target' >>$LIBCONFIG_FILE +echo ' --host \$host $host' >>$LIBCONFIG_FILE +echo ' --build \$build $build' >>$LIBCONFIG_FILE +echo ' --pkgdatadir \$datadir/\$package ${datadir}/${package}' >>$LIBCONFIG_FILE +echo ' --pkglibdir \$libdir/\$package ${libdir}/${package}' >>$LIBCONFIG_FILE +echo ' --pkgincludedir \$includedir/\$package ${includedir}/${package}' >>$LIBCONFIG_FILE +echo ' --template-version \$template_version $template_version' >>$LIBCONFIG_FILE +echo ' --help' >>$LIBCONFIG_FILE +echo 'EOF' >>$LIBCONFIG_FILE +echo 'fi' >>$LIBCONFIG_FILE +m4_pushdef([LIBCONFIG_UP], [m4_translit([$1], [a-z], [A-Z])])dnl +LIBCONFIG_UP[]_CONFIG="LIBCONFIG_DIR[]$1-config" +AC_SUBST(LIBCONFIG_UP[]_CONFIG) +dnl AC_CONFIG_FILES(LIBCONFIG_DIR[]$1[-config], [chmod +x ]LIBCONFIG_DIR[]$1[-config]) +m4_popdef([LIBCONFIG_DIR]) +m4_popdef([LIBCONFIG_UP]) +]) + + +# AC_CONFIG_LIBCONFIG_IN_MODULES [(MODULE1 [, MODULE2 [, ...]])] +# -------------------------------------------------------------- +#Output shell script using custom module variables. +AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_MODULES], +[m4_if([$1], , , + [# create module definition for $1 +dnl we're going to need uppercase, lowercase and user-friendly versions of the +dnl string `MODULE' +m4_pushdef([MODULE_UP], m4_translit([$1], [a-z], [A-Z]))dnl +m4_pushdef([MODULE_DOWN], m4_translit([$1], [A-Z], [a-z]))dnl +if test -z "$MODULE_DOWN[]_cflags" ; then + if test -n "$MODULE_UP[]_CFLAGS" ; then + MODULE_DOWN[]_cflags="$MODULE_UP[]_CFLAGS" + else +dnl AC_MSG_WARN([variable `MODULE_DOWN[]_cflags' undefined]) + MODULE_DOWN[]_cflags='' + fi +fi +AC_SUBST(MODULE_DOWN[]_cflags)dnl +if test -z "$MODULE_DOWN[]_libs" ; then + if test -n "$MODULE_UP[]_LIBS" ; then + MODULE_DOWN[]_libs="$MODULE_UP[]_LIBS" + else + AC_MSG_WARN([variable `MODULE_DOWN[]_libs' and `MODULE_UP[]_LIBS' undefined]) + MODULE_DOWN[]_libs='-l$1' + fi + if test -n "$MODULE_UP[]_LIBDEPS" ; then + MODULE_DOWN[]_libs="$MODULE_DOWN[]_libs $MODULE_UP[]_LIBDEPS" + fi +fi +AC_SUBST(MODULE_DOWN[]_libs)dnl +if test -z "$MODULE_UP[]_VERSION" ; then + AC_MSG_WARN([variable `MODULE_UP[]_VERSION' undefined]) + MODULE_UP[]_VERSION="$VERSION" +fi +AC_SUBST(MODULE_UP[]_VERSION)dnl +echo 'if test x$echo_module_$1 = xyes ; then' >>$LIBCONFIG_FILE +AC_CONFIG_LIBCONFIG_IN_MODULES_VARS([cflags], [MODULE_DOWN[]_cflags], [cflags]) +AC_CONFIG_LIBCONFIG_IN_MODULES_VARS([libs], [MODULE_DOWN[]_libs], [libs]) +AC_CONFIG_LIBCONFIG_IN_MODULES_VARS([version], [MODULE_UP[]_VERSION], [modversion]) +echo 'fi' >>$LIBCONFIG_FILE +m4_popdef([MODULE_UP])dnl +m4_popdef([MODULE_DOWN])dnl +AC_CONFIG_LIBCONFIG_IN_MODULES(m4_shift($@))])dnl +]) + + +# AC_CONFIG_LIBCONFIG_IN_MODULES_VARS [(VAR, SUBSTITUTION, +# PKGCONFIG_ARGS)] +# -------------------------------------------------------- +# Output AC_CONFIG_LIBCONFIG_IN_MODULES variables. +# VAR = variable to set +# SUBSTITUTION = set if pkg-config is not available +# PKGCONFIG_ARGS = args for pkg-config +AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_MODULES_VARS], +[m4_if(AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG, [true], +[ +echo 'if test -x "`which pkg-config`" ; then' >>$LIBCONFIG_FILE +echo ' if pkg-config --atleast-pkgconfig-version=0.7 --exists "MODULE_DOWN"; then' >>$LIBCONFIG_FILE +echo ' $1="@S|@$1 `pkg-config --$3 MODULE_DOWN`"' >>$LIBCONFIG_FILE +echo ' fi' >>$LIBCONFIG_FILE +echo 'else' >>$LIBCONFIG_FILE +echo ' $1="@S|@$1 @$2@"' >>$LIBCONFIG_FILE +echo 'fi' >>$LIBCONFIG_FILE +], +[echo ' $1="@S|@$1 @$2@"' >>$LIBCONFIG_FILE +])]) + + +# AC_CONFIG_LIBCONFIG_IN_PKGCONFIG +# -------------------------------- +# Enable pkgconfig support in libconfig script (default) +AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_PKGCONFIG], +[m4_define([AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG], [true]) +])dnl + + +# AC_CONFIG_LIBCONFIG_IN_STATIC +# ----------------------------- +# Disable pkgconfig support in libconfig script +AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_STATIC], +[m4_define([AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG], [false]) +])dnl diff --git a/m4/acx_pthread.m4 b/m4/acx_pthread.m4 new file mode 100644 index 00000000..d318ab01 --- /dev/null +++ b/m4/acx_pthread.m4 @@ -0,0 +1,190 @@ +dnl Available from the GNU Autoconf Macro Archive at: +dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html +dnl +AC_DEFUN([ACX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_SAVE +AC_LANG_C +acx_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) + AC_MSG_RESULT($acx_pthread_ok) + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# pthread: Linux, etcetera +# --thread-safe: KAI C++ + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthread or + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_TRY_LINK([#include ], + [pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], + [acx_pthread_ok=yes]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT($acx_pthread_ok) + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: threads are created detached by default + # and the JOINABLE attribute has a nonstandard name (UNDETACHED). + AC_MSG_CHECKING([for joinable pthread attribute]) + AC_TRY_LINK([#include ], + [int attr=PTHREAD_CREATE_JOINABLE;], + ok=PTHREAD_CREATE_JOINABLE, ok=unknown) + if test x"$ok" = xunknown; then + AC_TRY_LINK([#include ], + [int attr=PTHREAD_CREATE_UNDETACHED;], + ok=PTHREAD_CREATE_UNDETACHED, ok=unknown) + fi + if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then + AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok, + [Define to the necessary symbol if this constant + uses a non-standard name on your system.]) + fi + AC_MSG_RESULT(${ok}) + if test x"$ok" = xunknown; then + AC_MSG_WARN([we do not know how to create joinable pthreads]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + AC_MSG_RESULT(${flag}) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with cc_r + AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC}) +else + PTHREAD_CC="$CC" +fi + +AC_SUBST(PTHREAD_LIBS) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_CC) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) + : +else + acx_pthread_ok=no + $2 +fi +AC_LANG_RESTORE +])dnl ACX_PTHREAD diff --git a/m4/ogg.m4 b/m4/ogg.m4 new file mode 100644 index 00000000..c73bab54 --- /dev/null +++ b/m4/ogg.m4 @@ -0,0 +1,102 @@ +# Configure paths for libogg +# Jack Moffitt 10-21-2000 +# Shamelessly stolen from Owen Taylor and Manish Singh + +dnl XIPH_PATH_OGG([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl Test for libogg, and define OGG_CFLAGS and OGG_LIBS +dnl +AC_DEFUN(XIPH_PATH_OGG, +[dnl +dnl Get the cflags and libraries +dnl +AC_ARG_WITH(ogg,[ --with-ogg=PFX Prefix where libogg is installed (optional)], ogg_prefix="$withval", ogg_prefix="") +AC_ARG_WITH(ogg-libraries,[ --with-ogg-libraries=DIR Directory where libogg library is installed (optional)], ogg_libraries="$withval", ogg_libraries="") +AC_ARG_WITH(ogg-includes,[ --with-ogg-includes=DIR Directory where libogg header files are installed (optional)], ogg_includes="$withval", ogg_includes="") +AC_ARG_ENABLE(oggtest, [ --disable-oggtest Do not try to compile and run a test Ogg program],, enable_oggtest=yes) + + if test "x$ogg_libraries" != "x" ; then + OGG_LIBS="-L$ogg_libraries" + elif test "x$ogg_prefix" != "x" ; then + OGG_LIBS="-L$ogg_prefix/lib" + elif test "x$prefix" != "xNONE" ; then + OGG_LIBS="-L$prefix/lib" + fi + + OGG_LIBS="$OGG_LIBS -logg" + + if test "x$ogg_includes" != "x" ; then + OGG_CFLAGS="-I$ogg_includes" + elif test "x$ogg_prefix" != "x" ; then + OGG_CFLAGS="-I$ogg_prefix/include" + elif test "$prefix" != "xNONE"; then + OGG_CFLAGS="-I$prefix/include" + fi + + AC_MSG_CHECKING(for Ogg) + no_ogg="" + + + if test "x$enable_oggtest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $OGG_CFLAGS" + LIBS="$LIBS $OGG_LIBS" +dnl +dnl Now check if the installed Ogg is sufficiently new. +dnl + rm -f conf.oggtest + AC_TRY_RUN([ +#include +#include +#include +#include + +int main () +{ + system("touch conf.oggtest"); + return 0; +} + +],, no_ogg=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + + if test "x$no_ogg" = "x" ; then + AC_MSG_RESULT(yes) + ifelse([$1], , :, [$1]) + else + AC_MSG_RESULT(no) + if test -f conf.oggtest ; then + : + else + echo "*** Could not run Ogg test program, checking why..." + CFLAGS="$CFLAGS $OGG_CFLAGS" + LIBS="$LIBS $OGG_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return 0; ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding Ogg or finding the wrong" + echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means Ogg was incorrectly installed" + echo "*** or that you have moved Ogg since it was installed." ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + OGG_CFLAGS="" + OGG_LIBS="" + ifelse([$2], , :, [$2]) + fi + AC_SUBST(OGG_CFLAGS) + AC_SUBST(OGG_LIBS) + rm -f conf.oggtest +]) diff --git a/m4/vorbis.m4 b/m4/vorbis.m4 new file mode 100644 index 00000000..d311a410 --- /dev/null +++ b/m4/vorbis.m4 @@ -0,0 +1,122 @@ +# Configure paths for libvorbis +# Jack Moffitt 10-21-2000 +# Shamelessly stolen from Owen Taylor and Manish Singh +# thomasvs added check for vorbis_bitrate_addblock which is new in rc3 + +dnl XIPH_PATH_VORBIS([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl Test for libvorbis, and define VORBIS_CFLAGS and VORBIS_LIBS +dnl +AC_DEFUN(XIPH_PATH_VORBIS, +[dnl +dnl Get the cflags and libraries +dnl +AC_ARG_WITH(vorbis,[ --with-vorbis=PFX Prefix where libvorbis is installed (optional)], vorbis_prefix="$withval", vorbis_prefix="") +AC_ARG_WITH(vorbis-libraries,[ --with-vorbis-libraries=DIR Directory where libvorbis library is installed (optional)], vorbis_libraries="$withval", vorbis_libraries="") +AC_ARG_WITH(vorbis-includes,[ --with-vorbis-includes=DIR Directory where libvorbis header files are installed (optional)], vorbis_includes="$withval", vorbis_includes="") +AC_ARG_ENABLE(vorbistest, [ --disable-vorbistest Do not try to compile and run a test Vorbis program],, enable_vorbistest=yes) + + if test "x$vorbis_libraries" != "x" ; then + VORBIS_LIBS="-L$vorbis_libraries" + elif test "x$vorbis_prefix" != "x" ; then + VORBIS_LIBS="-L$vorbis_prefix/lib" + elif test "x$prefix" != "xNONE"; then + VORBIS_LIBS="-L$prefix/lib" + fi + + VORBIS_LIBS="$VORBIS_LIBS -lvorbis -lm" + VORBISFILE_LIBS="-lvorbisfile" + VORBISENC_LIBS="-lvorbisenc" + + if test "x$vorbis_includes" != "x" ; then + VORBIS_CFLAGS="-I$vorbis_includes" + elif test "x$vorbis_prefix" != "x" ; then + VORBIS_CFLAGS="-I$vorbis_prefix/include" + elif test "x$prefix" != "xNONE"; then + VORBIS_CFLAGS="-I$prefix/include" + fi + + + AC_MSG_CHECKING(for Vorbis) + no_vorbis="" + + + if test "x$enable_vorbistest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $VORBIS_CFLAGS $OGG_CFLAGS" + LIBS="$LIBS $VORBIS_LIBS $VORBISENC_LIBS $OGG_LIBS" +dnl +dnl Now check if the installed Vorbis is sufficiently new. +dnl + rm -f conf.vorbistest + AC_TRY_RUN([ +#include +#include +#include +#include +#include + +int main () +{ + vorbis_block vb; + vorbis_dsp_state vd; + vorbis_info vi; + + vorbis_info_init (&vi); + vorbis_encode_init (&vi, 2, 44100, -1, 128000, -1); + vorbis_analysis_init (&vd, &vi); + vorbis_block_init (&vd, &vb); + /* this function was added in 1.0rc3, so this is what we're testing for */ + vorbis_bitrate_addblock (&vb); + + system("touch conf.vorbistest"); + return 0; +} + +],, no_vorbis=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + + if test "x$no_vorbis" = "x" ; then + AC_MSG_RESULT(yes) + ifelse([$1], , :, [$1]) + else + AC_MSG_RESULT(no) + if test -f conf.vorbistest ; then + : + else + echo "*** Could not run Vorbis test program, checking why..." + CFLAGS="$CFLAGS $VORBIS_CFLAGS" + LIBS="$LIBS $VORBIS_LIBS $OGG_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return 0; ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding Vorbis or finding the wrong" + echo "*** version of Vorbis. If it is not finding Vorbis, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means Vorbis was incorrectly installed" + echo "*** or that you have moved Vorbis since it was installed." ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + VORBIS_CFLAGS="" + VORBIS_LIBS="" + VORBISFILE_LIBS="" + VORBISENC_LIBS="" + ifelse([$2], , :, [$2]) + fi + AC_SUBST(VORBIS_CFLAGS) + AC_SUBST(VORBIS_LIBS) + AC_SUBST(VORBISFILE_LIBS) + AC_SUBST(VORBISENC_LIBS) + rm -f conf.vorbistest +])