Commit e2dfd294 authored by Nick Mathewson's avatar Nick Mathewson 👁
Browse files

More comments for configure.in, and also make configure.in not croak on old libevents


svn:r4287
parent 6cfce54a
......@@ -60,9 +60,11 @@ AC_SEARCH_LIBS(pthread_create, [pthread])
AC_SEARCH_LIBS(pthread_detach, [pthread])
dnl ------------------------------------------------------
dnl Where do you live, libevent?
dnl Where do you live, libevent? And how do we call you?
# Step 1. Try to link and run a program using libevent. If it works,
# great! Just add -levent.
AC_CACHE_CHECK([for a normal libevent], ac_cv_libevent_normal, [
saved_LIBS="$LIBS"
LIBS="$LIBS -levent"
......@@ -70,14 +72,12 @@ AC_CACHE_CHECK([for a normal libevent], ac_cv_libevent_normal, [
void *event_init(void);
int main(void)
{
if (!event_init())
return -1;
event_init();
return 0;
}], ac_cv_libevent_normal=yes, ac_cv_libevent_normal=no)
LIBS="$saved_LIBS"
])
if test "$ac_cv_libevent_normal" = yes; then
LIBS="$LIBS -levent"
else
......@@ -86,28 +86,35 @@ else
saved_LDFLAGS="$LDFLAGS"
LIBS="$LIBS -levent"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
# Step 2. Otherwise, check whether adding -L/usr/local/lib allows
# us to link. If not, assume we have no libevent at all.
AC_TRY_LINK([], [ void *event_init(void); event_init(); ],
[ libevent_is_in_local=yes ], [ libevent_is_in_local=no ])
if test $libevent_is_in_local = yes; then
if test $libevent_is_in_local = no ; then
ac_cv_libevent_local=no
else
# Step 3. Does adding -L/usr/local/lib allow us to run, too?
# If so, all we have to do as adjust LDFLAGS and CFLAGS.
AC_TRY_RUN([
void *event_init(void);
int main(void)
{
if (!event_init())
return -1;
event_init();
return 0;
}], [ ac_cv_libevent_local=yes ], [ ac_cv_libevent_local=unlinked ])
else
ac_cv_libevent_local=no
fi
if test "$GCC" = yes -a $ac_cv_libevent_local = unlinked ; then
# Step 4. Okay, so we can link but not run. This probably means
# that the dynamic linker doesn't have /usr/local/lib in
# its search path. If we're lucky enough to be running
# GCC on an ELF system, we might have a workaround for that.
# See whether -Wl,-R/usr/local/lib makes things better.
LDFLAGS="$LDFLAGS -Wl,-R/usr/local/lib"
AC_TRY_RUN([
void *event_init(void);
int main(void)
{
if (!event_init())
return -1;
event_init();
return 0;
}], [ ac_cv_libevent_local=unlinked_gcc_elf ])
fi
......@@ -116,6 +123,13 @@ int main(void)
CFLAGS="$saved_CFLAGS"
LDFLAGS="$saved_LDFLAGS" ])
# Now we're done. ac_vc_libevent_local could be:
# yes -- Add -L/usr/local/lib and we can link fine.
# unlinked_gcc_elf -- We can link, but we need to use the GCC-ELF
# workaround. Complain a little.
# unlinked -- We can link, but we can't run. Complain a lot.
# no -- we can't link at all. Give an error and die.
if test $ac_cv_libevent_local != no; then
LIBS="$LIBS -levent"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment