[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Detecting shishi from autoconf
From: |
Simon Josefsson |
Subject: |
Re: Detecting shishi from autoconf |
Date: |
Tue, 16 May 2006 13:04:18 +0200 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.50 (gnu/linux) |
Elrond <address@hidden> writes:
> On Tue, May 16, 2006 at 12:37:11PM +0200, Elrond wrote:
> [...]
>> > I've been using Bruno's lib-*.m4 macros for a while in several
>> > projects now, and they appear to work fine. I hope they will become
>> > part of autoconf eventually.
>>
>> Okay, I'll look at that then.
>
> I've played with that a bit (using readline as a target
> library), and the bad news about that one is: It does not
> consider the dependency libraries "optional".
>
> So for example doing something like
> AC_LIB_HAVE_LINKFLAGS(readline, [curses tinfo termcap])
> is a bad idea.
> (There two basic possibilities:
> 1) -lreadline is enough (on most modern shared library
> systems)
> 2) Any one of the additional libraries is needed.
> )
>
> If just boinks out with "tinfo not found".
>
>
> I know, it's not your fault, just wanted to let someone
> know about the traps available.
Yup, readline is a problematic library to link to properly, I'm using
the M4 macro below in other projects. Generally, you might want to
check out gnulib because it contains a lot of generally re-usable
portability glue. See <http://www.gnu.org/software/gnulib/>. I'm
trying to move as much as possible of code re-used between my projects
to it, and it seems some other people are doing the same.
/Simon
# readline.m4 serial 4
dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Written by Simon Josefsson, with help from Bruno Haible and Oskar
dnl Liljeblad.
AC_DEFUN([gl_FUNC_READLINE],
[
AC_LIBSOURCES([readline.c, readline.h])
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
dnl Search for libreadline and define LIBREADLINE, LTLIBREADLINE and
dnl INCREADLINE accordingly.
AC_LIB_LINKFLAGS_BODY([readline])
dnl Add $INCREADLINE to CPPFLAGS before performing the following checks,
dnl because if the user has installed libreadline and not disabled its use
dnl via --without-libreadline-prefix, he wants to use it. The AC_TRY_LINK
dnl will then succeed.
am_save_CPPFLAGS="$CPPFLAGS"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCREADLINE])
AC_CACHE_CHECK(for readline, gl_cv_lib_readline, [
gl_cv_lib_readline=no
am_save_LIBS="$LIBS"
dnl On some systems, -lreadline doesn't link without an additional
dnl -lncurses or -ltermcap.
dnl Try -lncurses before -ltermcap, because libtermcap is unsecure
dnl by design and obsolete since 1994. Try -lcurses last, because
dnl libcurses is unusable on some old Unices.
for extra_lib in "" ncurses termcap curses; do
LIBS="$am_save_LIBS $LIBREADLINE"
if test -n "$extra_lib"; then
LIBS="$LIBS -l$extra_lib"
fi
AC_TRY_LINK([#include <stdio.h>
#include <readline/readline.h>],
[readline((char*)0);],
[gl_cv_lib_readline=" -l$extra_lib"])
if test "$gl_cv_lib_readline" != no; then
break
fi
done
LIBS="$am_save_LIBS"
])
if test "$gl_cv_lib_readline" != no; then
AC_DEFINE(HAVE_READLINE, 1, [Define if you have the readline library.])
if test "$gl_cv_lib_readline" != " -l"; then
LIBREADLINE="$LIBREADLINE$gl_cv_lib_readline"
LTLIBREADLINE="$LTLIBREADLINE$gl_cv_lib_readline"
fi
AC_MSG_CHECKING([how to link with libreadline])
AC_MSG_RESULT([$LIBREADLINE])
else
dnl If $LIBREADLINE didn't lead to a usable library, we don't
dnl need $INCREADLINE either.
CPPFLAGS="$am_save_CPPFLAGS"
LIBREADLINE=
LTLIBREADLINE=
fi
AC_SUBST(LIBREADLINE)
AC_SUBST(LTLIBREADLINE)
AC_CHECK_HEADERS(readline/readline.h)
if test $gl_cv_lib_readline = no; then
AC_LIBOBJ(readline)
gl_PREREQ_READLINE
fi
])
# Prerequisites of lib/readline.c.
AC_DEFUN([gl_PREREQ_READLINE], [
:
])
- Detecting shishi from autoconf, Elrond, 2006/05/15
- Re: Detecting shishi from autoconf, Simon Josefsson, 2006/05/15
- Re: Detecting shishi from autoconf, Elrond, 2006/05/16
- Re: Detecting shishi from autoconf, Simon Josefsson, 2006/05/16
- Re: Detecting shishi from autoconf, Elrond, 2006/05/16
- Re: Detecting shishi from autoconf, Elrond, 2006/05/16
- Re: Detecting shishi from autoconf,
Simon Josefsson <=
- Re: Detecting shishi from autoconf, Elrond, 2006/05/16
- Re: Detecting shishi from autoconf, Simon Josefsson, 2006/05/16