aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcpk <cpk>2001-08-02 23:43:02 +0000
committercpk <cpk@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>2001-08-02 23:43:02 +0000
commit018a5f319550b87ed598a4b198718aa376d52b72 (patch)
tree215a971b329587432abafffa24396a1c26a5d4e2
parent03eb745b51e8fab049bccd73a1522b7f20aee9de (diff)
downloadenlightenment-018a5f319550b87ed598a4b198718aa376d52b72.tar.gz
enlightenment-018a5f319550b87ed598a4b198718aa376d52b72.tar.xz
enlightenment-018a5f319550b87ed598a4b198718aa376d52b72.zip
configure-time checks for the components ... hope I'm doing this right.
SVN revision: 5039
-rw-r--r--acsite.m4136
-rw-r--r--configure.in75
2 files changed, 195 insertions, 16 deletions
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 <gusl@cse.unsw.edu.au>
+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`
+dnl Check for Evas.
+AC_ARG_WITH(evas,
+ [ --with-evas=DIR use evas in <DIR>],
+ [CFLAGS="$CFLAGS -I$withval/include"
+ LIBS="-L$withval/lib $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`
-edb_cflags=`edb-config --cflags`
+evas_cflags=`evas-config --cflags`
+
+dnl Check for Edb.
+AC_ARG_WITH(edb,
+ [ --with-edb=DIR use edb in <DIR>],
+ [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`
-ebits_cflags=`ebits-config --cflags`
+edb_cflags=`edb-config --cflags`
+
+dnl Check for Ebits.
+AC_ARG_WITH(ebits,
+ [ --with-ebits=DIR use ebits in <DIR>],
+ [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`
-ecore_cflags=`ecore-config --cflags`
+ebits_cflags=`ebits-config --cflags`
+
+dnl Check for Ecore.
+AC_ARG_WITH(ecore,
+ [ --with-ecore=DIR use ecore in <DIR>],
+ [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`
-efsd_cflags=`efsd-config --cflags`
-efsd_libs=`efsd-config --libs`
+ecore_cflags=`ecore-config --cflags`
+
+dnl Check for Efsd.
+AC_ARG_WITH(efsd,
+ [ --with-efsd=DIR use efsd in <DIR>],
+ [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(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)