From 018a5f319550b87ed598a4b198718aa376d52b72 Mon Sep 17 00:00:00 2001 From: cpk Date: Thu, 2 Aug 2001 23:43:02 +0000 Subject: [PATCH] configure-time checks for the components ... hope I'm doing this right. SVN revision: 5039 --- acsite.m4 | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 83 +++++++++++++++++++++++-------- 2 files changed, 199 insertions(+), 20 deletions(-) create mode 100644 acsite.m4 diff --git a/acsite.m4 b/acsite.m4 new file mode 100644 index 000000000..7472b4638 --- /dev/null +++ b/acsite.m4 @@ -0,0 +1,136 @@ +dnl @synopsis AC_PATH_GENERIC(LIBRARY [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl +dnl Runs a LIBRARY-config script and defines LIBRARY_CFLAGS and LIBRARY_LIBS +dnl +dnl The script must support `--cflags' and `--libs' args. +dnl If MINIMUM-VERSION is specified, the script must also support the +dnl `--version' arg. +dnl If the `--with-library-[exec-]prefix' arguments to ./configure are given, +dnl it must also support `--prefix' and `--exec-prefix'. +dnl (In other words, it must be like gtk-config.) +dnl +dnl For example: +dnl +dnl AC_PATH_GENERIC(Foo, 1.0.0) +dnl +dnl would run `foo-config --version' and check that it is at least 1.0.0 +dnl +dnl If so, the following would then be defined: +dnl +dnl FOO_CFLAGS to `foo-config --cflags` +dnl FOO_LIBS to `foo-config --libs` +dnl +dnl At present there is no support for additional "MODULES" (see AM_PATH_GTK) +dnl (shamelessly stolen from gtk.m4 and then hacked around a fair amount) +dnl +dnl @author Angus Lees +dnl @version $Id$ + +AC_DEFUN(AC_PATH_GENERIC, +[dnl +dnl we're going to need uppercase, lowercase and user-friendly versions of the +dnl string `LIBRARY' +pushdef([UP], translit([$1], [a-z], [A-Z]))dnl +pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl + +dnl +dnl Get the cflags and libraries from the LIBRARY-config script +dnl +AC_ARG_WITH(DOWN-prefix,[ --with-]DOWN[-prefix=PFX Prefix where $1 is installed (optional)], + DOWN[]_config_prefix="$withval", DOWN[]_config_prefix="") +AC_ARG_WITH(DOWN-exec-prefix,[ --with-]DOWN[-exec-prefix=PFX Exec prefix where $1 is installed (optional)], + DOWN[]_config_exec_prefix="$withval", DOWN[]_config_exec_prefix="") + + if test x$DOWN[]_config_exec_prefix != x ; then + DOWN[]_config_args="$DOWN[]_config_args --exec-prefix=$DOWN[]_config_exec_prefix" + if test x${UP[]_CONFIG+set} != xset ; then + UP[]_CONFIG=$DOWN[]_config_exec_prefix/bin/DOWN-config + fi + fi + if test x$DOWN[]_config_prefix != x ; then + DOWN[]_config_args="$DOWN[]_config_args --prefix=$DOWN[]_config_prefix" + if test x${UP[]_CONFIG+set} != xset ; then + UP[]_CONFIG=$DOWN[]_config_prefix/bin/DOWN-config + fi + fi + + AC_PATH_PROG(UP[]_CONFIG, DOWN-config, no) + ifelse([$2], , + AC_MSG_CHECKING(for $1), + AC_MSG_CHECKING(for $1 - version >= $2) + ) + no_[]DOWN="" + if test "$UP[]_CONFIG" = "no" ; then + no_[]DOWN=yes + else + UP[]_CFLAGS="`$UP[]_CONFIG $DOWN[]_config_args --cflags`" + UP[]_LIBS="`$UP[]_CONFIG $DOWN[]_config_args --libs`" + ifelse([$2], , ,[ + DOWN[]_config_major_version=`$UP[]_CONFIG $DOWN[]_config_args \ + --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + DOWN[]_config_minor_version=`$UP[]_CONFIG $DOWN[]_config_args \ + --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + DOWN[]_config_micro_version=`$UP[]_CONFIG $DOWN[]_config_args \ + --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + DOWN[]_wanted_major_version="regexp($2, [\<\([0-9]*\)], [\1])" + DOWN[]_wanted_minor_version="regexp($2, [\<\([0-9]*\)\.\([0-9]*\)], [\2])" + DOWN[]_wanted_micro_version="regexp($2, [\<\([0-9]*\).\([0-9]*\).\([0-9]*\)], [\3])" + + # Compare wanted version to what config script returned. + # If I knew what library was being run, i'd probably also compile + # a test program at this point (which also extracted and tested + # the version in some library-specific way) + if test "$DOWN[]_config_major_version" -lt \ + "$DOWN[]_wanted_major_version" \ + -o \( "$DOWN[]_config_major_version" -eq \ + "$DOWN[]_wanted_major_version" \ + -a "$DOWN[]_config_minor_version" -lt \ + "$DOWN[]_wanted_minor_version" \) \ + -o \( "$DOWN[]_config_major_version" -eq \ + "$DOWN[]_wanted_major_version" \ + -a "$DOWN[]_config_minor_version" -eq \ + "$DOWN[]_wanted_minor_version" \ + -a "$DOWN[]_config_micro_version" -lt \ + "$DOWN[]_wanted_micro_version" \) ; then + # older version found + no_[]DOWN=yes + echo -n "*** An old version of $1 " + echo -n "($DOWN[]_config_major_version" + echo -n ".$DOWN[]_config_minor_version" + echo ".$DOWN[]_config_micro_version) was found." + echo -n "*** You need a version of $1 newer than " + echo -n "$DOWN[]_wanted_major_version" + echo -n ".$DOWN[]_wanted_minor_version" + echo ".$DOWN[]_wanted_micro_version." + echo "***" + echo "*** If you have already installed a sufficiently new version, this error" + echo "*** probably means that the wrong copy of the DOWN-config shell script is" + echo "*** being found. The easiest way to fix this is to remove the old version" + echo "*** of $1, but you can also set the UP[]_CONFIG environment to point to the" + echo "*** correct copy of DOWN-config. (In this case, you will have to" + echo "*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf" + echo "*** so that the correct libraries are found at run-time)" + fi + ]) + fi + if test "x$no_[]DOWN" = x ; then + AC_MSG_RESULT(yes) + ifelse([$3], , :, [$3]) + else + AC_MSG_RESULT(no) + if test "$UP[]_CONFIG" = "no" ; then + echo "*** The DOWN-config script installed by $1 could not be found" + echo "*** If $1 was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the UP[]_CONFIG environment variable to the" + echo "*** full path to DOWN-config." + fi + UP[]_CFLAGS="" + UP[]_LIBS="" + ifelse([$4], , :, [$4]) + fi + AC_SUBST(UP[]_CFLAGS) + AC_SUBST(UP[]_LIBS) + + popdef([UP]) + popdef([DOWN]) +]) diff --git a/configure.in b/configure.in index b6b4081e7..3a879a2ad 100644 --- a/configure.in +++ b/configure.in @@ -103,27 +103,70 @@ if test "x$GCC" = "xyes"; then fi changequote([,])dnl -evas_cflags=`evas-config --cflags` -evas_libs=`evas-config --libs` -edb_cflags=`edb-config --cflags` -edb_libs=`edb-config --libs` -ebits_cflags=`ebits-config --cflags` -ebits_libs=`ebits-config --libs` -ecore_cflags=`ecore-config --cflags` -ecore_libs=`ecore-config --libs` -efsd_cflags=`efsd-config --cflags` -efsd_libs=`efsd-config --libs` +dnl Check for Evas. +AC_ARG_WITH(evas, + [ --with-evas=DIR use evas in ], + [CFLAGS="$CFLAGS -I$withval/include" + LIBS="-L$withval/lib $LIBS"]) -AC_SUBST(evas_cflags) -AC_SUBST(evas_libs) -AC_SUBST(edb_cflags) -AC_SUBST(edb_libs) -AC_SUBST(ebits_cflags) -AC_SUBST(ebits_libs) -AC_SUBST(ecore_cflags) -AC_SUBST(ecore_libs) -AC_SUBST(efsd_cflags) -AC_SUBST(efsd_libs) +AC_PATH_GENERIC(evas,, [ + AC_SUBST(evas_libs) + AC_SUBST(evas_cflags)], + AC_MSG_ERROR(Cannot find edb: Is edb-config in path?)) +evas_libs=`evas-config --libs` +evas_cflags=`evas-config --cflags` + +dnl Check for Edb. +AC_ARG_WITH(edb, + [ --with-edb=DIR use edb in ], + [CFLAGS="$CFLAGS -I$withval/include" + LIBS="-L$withval/lib $LIBS"]) + +AC_PATH_GENERIC(edb,, [ + AC_SUBST(edb_libs) + AC_SUBST(edb_cflags)], + AC_MSG_ERROR(Cannot find edb: Is edb-config in path?)) +edb_libs=`edb-config --libs` +edb_cflags=`edb-config --cflags` + +dnl Check for Ebits. +AC_ARG_WITH(ebits, + [ --with-ebits=DIR use ebits in ], + [CFLAGS="$CFLAGS -I$withval/include" + LIBS="-L$withval/lib $LIBS"]) + +AC_PATH_GENERIC(ebits,, [ + AC_SUBST(ebits_libs) + AC_SUBST(ebits_cflags)], + AC_MSG_ERROR(Cannot find ebits: Is ebits-config in path?)) +ebits_libs=`ebits-config --libs` +ebits_cflags=`ebits-config --cflags` + +dnl Check for Ecore. +AC_ARG_WITH(ecore, + [ --with-ecore=DIR use ecore in ], + [CFLAGS="$CFLAGS -I$withval/include" + LIBS="-L$withval/lib $LIBS"]) + +AC_PATH_GENERIC(ecore,, [ + AC_SUBST(ecore_libs) + AC_SUBST(ecore_cflags)], + AC_MSG_ERROR(Cannot find ecore: Is ecore-config in path?)) +ecore_libs=`ecore-config --libs` +ecore_cflags=`ecore-config --cflags` + +dnl Check for Efsd. +AC_ARG_WITH(efsd, + [ --with-efsd=DIR use efsd in ], + [CFLAGS="$CFLAGS -I$withval/include" + LIBS="-L$withval/lib $LIBS"]) + +AC_PATH_GENERIC(efsd,, [ + AC_SUBST(efsd_libs) + AC_SUBST(efsd_cflags)], + AC_MSG_ERROR(Cannot find efsd: Is efsd-config in path?)) +efsd_libs=`efsd-config --libs` +efsd_cflags=`efsd-config --cflags` AC_SUBST(CP_OPTIONS)