From 131ad1a8f9aeebee3a7560e09c73cdbba8573feb Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Tue, 12 Jan 2010 21:41:34 +0100 Subject: sid player is now real plugin (dynamically loaded) ported sid code to new API moved to different md5 library added more md5 functions to plugin API --- .../sid/sidplay-libs/libsidutils/unix/my_macros.m4 | 550 +++++++++++++++++++++ 1 file changed, 550 insertions(+) create mode 100644 plugins/sid/sidplay-libs/libsidutils/unix/my_macros.m4 (limited to 'plugins/sid/sidplay-libs/libsidutils/unix/my_macros.m4') diff --git a/plugins/sid/sidplay-libs/libsidutils/unix/my_macros.m4 b/plugins/sid/sidplay-libs/libsidutils/unix/my_macros.m4 new file mode 100644 index 00000000..bd607f73 --- /dev/null +++ b/plugins/sid/sidplay-libs/libsidutils/unix/my_macros.m4 @@ -0,0 +1,550 @@ +dnl ------------------------------------------------------------------------- +dnl Try to find a file (or one of more files in a list of dirs). +dnl $1=files +dnl $2=dirs to search +dnl $3=found dir +dnl [$4=found file] +dnl ------------------------------------------------------------------------- + +AC_DEFUN(MY_FIND_FILE, +[ + $3=NO + for i in $2; do + for j in $1; do + if test -r "$i/$j"; then + $3=$i + if test "$4" != ""; then + $4=$j + fi + break 2 + fi + done + done +]) + + +dnl ------------------------------------------------------------------------- +AC_DEFUN(MY_SUBST_DEF, +[ + eval "$1=\"#define $1\"" + AC_SUBST($1) +]) + +AC_DEFUN(MY_SUBST_UNDEF, +[ + eval "$1=\"#undef $1\"" + AC_SUBST($1) +]) + +AC_DEFUN(MY_SUBST, +[ + eval "$1=$2" + AC_SUBST($1) +]) + + + + + +dnl ------------------------------------------------------------------------- +dnl Check whether compiler has a working ``bool'' type. +dnl Will substitute @HAVE_BOOL@ with either a def or undef line. +dnl ------------------------------------------------------------------------- + +AC_DEFUN(MY_CHECK_BOOL, +[ + AC_MSG_CHECKING([for bool]) + AC_CACHE_VAL(test_cv_have_bool, + [ + AC_TRY_COMPILE( + [], + [bool aBool = true;], + [test_cv_have_bool=yes], + [test_cv_have_bool=no] + ) + ]) + AC_MSG_RESULT($test_cv_have_bool) + if test "$test_cv_have_bool" = yes; then + AC_DEFINE(HAVE_BOOL,,[Define if the C++ compiler supports BOOL]) + fi +]) + +dnl ------------------------------------------------------------------------- +dnl Check whether C++ library has member ios::bin instead of ios::binary. +dnl Will substitute @HAVE_IOS_BIN@ with either a def or undef line. +dnl ------------------------------------------------------------------------- + +AC_DEFUN(MY_CHECK_IOS_BIN, +[ + AC_MSG_CHECKING([whether standard member ios::binary is available]) + AC_CACHE_VAL(test_cv_have_ios_binary, + [ + AC_TRY_COMPILE( + [#include ], + [ifstream myTest(ios::in|ios::binary);], + [test_cv_have_ios_binary=yes], + [test_cv_have_ios_binary=no] + ) + ]) + AC_MSG_RESULT($test_cv_have_ios_binary) + if test "$test_cv_have_ios_binary" = yes; then + AC_DEFINE(HAVE_IOS_BIN,, + [Define if standard member ``ios::binary'' is called ``ios::bin''.] + ) + fi +]) + +dnl ------------------------------------------------------------------------- +dnl Check whether C++ library has member ios::bin instead of ios::binary. +dnl Will substitute @HAVE_IOS_OPENMODE@ with either a def or undef line. +dnl ------------------------------------------------------------------------- + +AC_DEFUN(MY_CHECK_IOS_OPENMODE, +[ + AC_MSG_CHECKING([whether standard member ios::openmode is available]) + AC_CACHE_VAL(test_cv_have_ios_openmode, + [ + AC_TRY_COMPILE( + [#include + #include ], + [ios::openmode myTest = ios::in;], + [test_cv_have_ios_openmode=yes], + [test_cv_have_ios_openmode=no] + ) + ]) + AC_MSG_RESULT($test_cv_have_ios_openmode) + if test "$test_cv_have_ios_openmode" = yes; then + AC_DEFINE(HAVE_IOS_OPENMODE,, + [Define if ``ios::openmode'' is supported.] + ) + fi +]) + +dnl ------------------------------------------------------------------------- +dnl Check whether C++ environment provides the "nothrow allocator". +dnl Will substitute @HAVE_EXCEPTIONS@ if test code compiles. +dnl ------------------------------------------------------------------------- + +AC_DEFUN(MY_CHECK_EXCEPTIONS, +[ + AC_MSG_CHECKING([whether exceptions are available]) + AC_CACHE_VAL(test_cv_have_exceptions, + [ + AC_TRY_COMPILE( + [#include ], + [char* buf = new(nothrow) char[1024];], + [test_cv_have_exceptions=yes], + [test_cv_have_exceptions=no] + ) + ]) + AC_MSG_RESULT($test_cv_have_exceptions) + if test "$test_cv_have_exceptions" = yes; then + AC_DEFINE(HAVE_EXCEPTIONS,, + [Define if your C++ compiler implements exception-handling.] + ) + fi +]) + + +dnl ------------------------------------------------------------------------- +dnl Pass C++ compiler options to libtool which supports C only. +dnl ------------------------------------------------------------------------- + +AC_DEFUN(MY_CONFIG_LIBTOOL, +[ + my_save_cc=$CC + my_save_cflags=$CFLAGS + CC=$CXX + CFLAGS=$CXXFLAGS + AM_PROG_LIBTOOL + CC=$my_save_cc + CFLAGS=$my_save_cflags +]) + + +dnl ------------------------------------------------------------------------- +dnl Library compile test using libtool +dnl $1 = CXXFLAGS +dnl $2 = LDFLAGS +dnl $3 = include header +dnl $4 = program to compile +dnl $5 = variable name to store result +dnl ------------------------------------------------------------------------- +AC_DEFUN(MY_TRY_COMPILE, +[ + my_save_cxxflags=$CXXFLAGS + my_save_ldflags=$LDFLAGS + my_save_cxx=$CXX + + CXXFLAGS="$CXXFLAGS $1" + LDFLAGS="$LDFLAGS $2" + CXX="${SHELL-/bin/sh} ${srcdir}/libtool $CXX" + + AC_TRY_LINK( + [#include <$3>], + [$4;], + [$5=YES], + [$5=NO] + ) + + CXXFLAGS=$my_save_cxxflags + LDFLAGS=$my_save_ldflags + CXX=$my_save_cxx +]) + + +dnl ------------------------------------------------------------------------- +dnl Expand prefix variable and others relying on it +dnl ------------------------------------------------------------------------- +AC_DEFUN(MY_EXPAND_PREFIX, +[ + # Expand prefix/exec_prefix + my_save_prefix="$prefix" + my_save_exec_prefix="$exec_prefix" + test "x$prefix" = xNONE && prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && exec_prefix=$prefix + my_def_prefix=$prefix + my_def_exec_prefix=$exec_prefix + eval my_def_includedir=$includedir + eval my_def_libdir=$libdir + # Restore old prefix + prefix="$my_save_prefix" + exec_prefix="$my_save_exec_prefix" +]) + + +dnl ------------------------------------------------------------------------- +dnl Find pkg-config on the system +dnl Returns path to program in variable PKG_CONFIG +dnl Modifies PKG_CONFIG_PATH to contain default install prefix +dnl $1 - Version +dnl ------------------------------------------------------------------------- +AC_DEFUN(MY_CONFIG_PKG_CONFIG, +[ + dnl Find pkg-config + AC_PATH_PROG(PKG_CONFIG, pkg-config, NO) + if test "$PKG_CONFIG" = NO; then + AC_MSG_ERROR([ +pkg-config not found. See http://www.freedesktop.org/software/pkgconfig/ + ]) + fi + + if ! pkg-config --atleast-pkgconfig-version $1 ; then + AC_MSG_ERROR([ +pkg-config too old; version $1 or better required + ]) + fi + + if test "$my_def_prefix" = ""; then + MY_EXPAND_PREFIX + fi + + # Now add libdir to the pkgconfig search path using + # expanded prefix + PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$my_def_libdir/pkgconfig" + export PKG_CONFIG_PATH + my_save_pkg_config_path="$PKG_CONFIG_PATH" +]) + + +dnl ------------------------------------------------------------------------- +dnl Find library on the system using pkgconfig. You will automatically +dnl get LDFLAGS & CXXFLAGS using modified include and library paths if +dnl necessary. Other variables will be obtained with the original intended +dnl install paths. Results in uppercase output variables $library_$variable. +dnl $1 - library +dnl $2 - version +dnl $3 - variables +dnl $4 - library header +dnl $5 - program body +dnl [$6 - used header] +dnl ------------------------------------------------------------------------- +AC_DEFUN(MY_FIND_PKG_CONFIG_LIB, +[ + dnl Check if pkg-config is configured + if test "$PKG_CONFIG" = ""; then + MY_CONFIG_PKG_CONFIG(0.5) + fi + + AC_MSG_CHECKING([for working $1 library and headers]) + + dnl Be pessimistic. + my_includedir=NO + my_libdir=NO + my_uname=LIB`echo $1 | tr [a-z] [A-Z]` + + AC_ARG_WITH($1, + [ --with-$1=DIR + where the $1 is located], + [my_includedir="$withval" + my_libdir="$withval"] + ) + + AC_ARG_WITH($1-includes, + [ --with-$1-includes=DIR + where the $1 includes are located], + [my_includedir="$withval"] + ) + + AC_ARG_WITH($1-library, + [ --with-$1-library=DIR + where the $1 library is installed], + [my_libdir="$withval"] + ) + + # Find paths to headers & package config. + if test "$my_includedir" != NO; then + my_dirs="$my_includedir $my_includedir/include" + MY_FIND_FILE($4,$my_dirs,my_includedir,my_header) + else + my_dirs=`$PKG_CONFIG --variable=includedir lib$1` + MY_FIND_FILE($4,$my_dirs,my_includedir,my_header) + fi + + dnl find libs + if test "$my_libdir" != NO; then + my_dirs="$my_libdir $my_libdir/lib $my_libdir/src" + MY_FIND_FILE(lib$1.la,$my_dirs,my_libdir) + if test "$my_libdir" = NO; then + AC_MSG_ERROR([ +Unable to locate lib$1 library in: + $my_dirs +Please check your installation! + ]) + fi + PKG_CONFIG_PATH="$my_libdir:$my_libdir/pkgconfig:$my_libdir/../unix" + export PKG_CONFIG_PATH + else + my_libdir=`$PKG_CONFIG --variable=libdir lib$1` + fi + + dnl See if pkg-config locates the library + if $PKG_CONFIG --atleast-version=$2 lib$1; then + : + else + AC_MSG_ERROR([ +pkg-config couldn't locate lib$1 $2 in: + $PKG_CONFIG_PATH +Please check your installation! + ]) + fi + + dnl Get cflags and ldflags seperatly + my_cxxflags=`$PKG_CONFIG --define-variable=includedir=$my_includedir --cflags lib$1` + my_ldflags=`$PKG_CONFIG --define-variable=libdir=$my_libdir --libs lib$1` + eval ${my_uname}_CXXFLAGS=\"$my_cxxflags\" + eval ${my_uname}_LDFLAGS=\"$my_ldflags\" + + if test "$3" != ""; then + my_vars="$3" + for my_var in $my_vars; do + my_out=${my_uname}_`echo $my_var | tr [a-z] [A-Z]` + eval $my_out=\`$PKG_CONFIG --variable=$my_var lib$1\` + done + fi + + AC_MSG_RESULT([$my_libdir, $my_includedir]) + + dnl Check if found library works + MY_TRY_COMPILE($my_cxxflags,$my_ldflags,$my_header,$5,my_works) + if test "$my_works" = NO; then + AC_MSG_ERROR([ +$1 build test failed with found library and header files. +Please check your installation! + ]) + fi + + dnl Optional parameter - return used header + if test "$6" != ""; then + $6=$my_header + fi + + dnl Restore path for next library + PKG_CONFIG_PATH=$my_save_pkg_config_path + export PKG_CONFIG_PATH +]) + + +dnl ------------------------------------------------------------------------- +dnl Find library on the system. You will automatically LDFLAGS & CXXFLAGS. +dnl Results in uppercase output variables $library_$variable. +dnl $1 - library +dnl $2 - additional include paths +dnl $3 - additional library paths +dnl $4 - library header +dnl $5 - program body +dnl [$6 - used header] +dnl ------------------------------------------------------------------------- +AC_DEFUN(MY_FIND_LIB, +[ + AC_MSG_CHECKING([for working $1 library and headers]) + + if test "$my_def_prefix" = ""; then + MY_EXPAND_PREFIX + fi + + dnl Be pessimistic. + my_libdir="" + my_includedir="" + my_uname=LIB`echo $1 | tr [a-z] [A-Z]` + + AC_ARG_WITH($1, + [ --with-$1=DIR + where the $1 is located], + [my_includedir="$withval" + my_libdir="$withval" + ] + ) + + AC_ARG_WITH($1-includes, + [ --with-$1-includes=DIR + where the $1 includes are located], + [my_includedir="$withval"] + ) + + AC_ARG_WITH($1-library, + [ --with-$1-library=DIR + where the $1 library is installed], + [my_libdir="$withval"] + ) + + # Test compilation with library and headers in standard path. + my_ldflags="-l$1" + my_cxxflags="" + my_works=NO + + # Use library path given by user (if any). + if test "$my_libdir" != ""; then + my_dirs="$my_libdir $my_libdir/lib $my_libdir/src" + MY_FIND_FILE(lib$1.la,$my_dirs,my_libdir) + my_ldflags="$my_libdir/lib$1.la" + fi + + if test "$my_libdir" != NO; then + # Use include path given by user (if any). + if test "$my_includedir" != ""; then + my_dirs="$my_includedir $my_includedir/include" + MY_FIND_FILE($4,$my_dirs,my_includedir,my_header) + if test "$my_includedir" != NO; then + my_cxxflags="-I$my_includedir" + # Run test compilation. + MY_TRY_COMPILE($my_cxxflags,$my_ldflags,$my_header,$5,my_works) + fi + else + # Header files are on the system so run compile tests until + # we find the correct one + for i in $4; do + MY_TRY_COMPILE($my_cxxflags,$my_ldflags,$i,$5,my_works) + if test "$my_works" != NO; then + my_header="$i" + break + fi + done + fi + fi + + if test "$my_works" = NO; then + # Test compilation failed. + # Need to search for library and headers + # Search common locations where header files might be stored. + my_dirs="$2 $my_def_includedir $my_def_prefix/include \ + /usr/include /usr/local/include /usr/lib/$1/include \ + /usr/local/lib/$1/include" + MY_FIND_FILE($4,$my_dirs,my_includedir,my_header) + my_cxxflags="-I$my_includedir" + + # Search common locations where library might be stored. + my_dirs="$3 $my_def_libdir $my_def_prefix/lib \ + /usr/lib /usr/local/lib /usr/lib/$1/lib /usr/local/lib/$1/lib" + MY_FIND_FILE(lib$1.la,$my_dirs,my_libdir) + my_ldflags="$my_libdir/lib$1.la" + + if test "$my_includedir" != NO && test "$my_libdir" != NO; then + # Test compilation with found paths. + MY_TRY_COMPILE($my_cxxflags,$my_ldflags,$my_header,$5,my_works) + fi + + AC_MSG_RESULT([library $my_libdir, headers $my_includedir]) + if test "$my_works" = NO; then + AC_MSG_ERROR([ +$1 build test failed with found library and header files. +Please check your installation! + ]) + fi + else + AC_MSG_RESULT(yes) + fi + + eval ${my_uname}_CXXFLAGS=\"$my_cxxflags\" + eval ${my_uname}_LDFLAGS=\"$my_ldflags\" + + dnl Optional parameter - return used header + if test "$6" != ""; then + $6=$my_header + fi +]) + + +dnl ------------------------------------------------------------------------- +dnl Find library on the system. This is used to find libraries that are not +dnl built/installed. The include, lib path must be provided individually and it +dnl is not possible to validate the library path. +dnl $1 - library +dnl $2 - library header +dnl [$3 - used header] +dnl ------------------------------------------------------------------------- +AC_DEFUN(MY_FIND_LIB_NO_CHECK, +[ + AC_MSG_CHECKING([for $1 library and headers]) + + my_libdir="" + my_includedir="" + my_uname=LIB`echo $1 | tr [a-z] [A-Z]` + + AC_ARG_WITH($1-includes, + [ --with-$1-includes=DIR + where the $1 includes are located], + [my_includedir="$withval"] + ) + + AC_ARG_WITH($1-library, + [ --with-$1-library=DIR + where the $1 library is installed], + [my_libdir="$withval"] + ) + + dnl Both paths must be provided + if test "$my_libdir" = ""; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ +$1 library path not supplied! + ]) + fi + + if test "$my_includedir" = ""; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ +$1 include path not supplied! + ]) + fi + + dnl Check the include path + my_dirs="$my_includedir" + MY_FIND_FILE($2,$my_dirs,my_includedir,my_header) + + if test "$my_includedir" = NO; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ +$1 headers not found! + ]) + fi + + AC_MSG_RESULT(yes) + eval ${my_uname}_CXXFLAGS=\"-I$my_includedir\" + eval ${my_uname}_LDFLAGS=\"$my_libdir/lib$1.la\" + + dnl Optional parameter - return used header + if test "$3" != ""; then + $3=$my_header + fi +]) -- cgit v1.2.3