From 0dcc48ee9b83df55f26d27c4b9ed00bdd4de8db8 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Sat, 26 Oct 2024 08:55:08 +0200 Subject: [PATCH] build: query pkg-config for readline/libedit/libeditline Fix #686 --- m4/ax_lib_readline.m4 | 63 +++++++++++++++++++++++++++--------------- src/client/Makefile.am | 2 +- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/m4/ax_lib_readline.m4 b/m4/ax_lib_readline.m4 index 269bb125..f8dde262 100644 --- a/m4/ax_lib_readline.m4 +++ b/m4/ax_lib_readline.m4 @@ -61,27 +61,42 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -# Modified version. Original version is available here: +# Modified version to include support for pkg-config. Original version is +# available here: # http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html #serial 6 AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE_LLDPD]) AC_DEFUN([AX_LIB_READLINE_LLDPD], [ - AC_CACHE_CHECK([for a readline compatible library], + if test -z "$ax_cv_lib_readline"; then + PKG_CHECK_MODULES(READLINE, readline, [ax_cv_lib_readline="$READLINE_LIBS"; ax_cv_lib_readline_cflags="$READLINE_CFLAGS"], [:]) + fi + if test -z "$ax_cv_lib_readline"; then + PKG_CHECK_MODULES(LIBEDIT, libedit, [ax_cv_lib_readline="$LIBEDIT_LIBS"; ax_cv_lib_readline_cflags="$LIBEDIT_CFLAGS"], [:]) + fi + if test -z "$ax_cv_lib_readline"; then + PKG_CHECK_MODULES(LIBEDITLINE, libeditline, [ax_cv_lib_readline="$LIBEDITLINE_LIBS"; ax_cv_lib_readline_cflags="$LIBEDITLINE_CFLAGS"], [:]) + fi + if test -z "$ax_cv_lib_readline"; then + AC_CACHE_CHECK([for a readline compatible library], ax_cv_lib_readline, [ - _save_LIBS="$LIBS" - for readline_lib in readline edit editline; do - for termcap_lib in "" termcap curses ncurses; do - if test -z "$termcap_lib"; then - TRY_LIB="-l$readline_lib" - else - TRY_LIB="-l$readline_lib -l$termcap_lib" - fi - LIBS="$ORIG_LIBS $TRY_LIB" - for readline_func in readline rl_insert_text rl_forced_update_display; do - AC_TRY_LINK_FUNC($readline_func, ax_cv_lib_readline="$TRY_LIB", ax_cv_lib_readline="") - if test -z "$ax_cv_lib_readline"; then + _save_LIBS="$LIBS" + for readline_lib in readline edit editline; do + for termcap_lib in "" termcap curses ncurses; do + if test -z "$termcap_lib"; then + TRY_LIB="-l$readline_lib" + else + TRY_LIB="-l$readline_lib -l$termcap_lib" + fi + LIBS="$ORIG_LIBS $TRY_LIB" + for readline_func in readline rl_insert_text rl_forced_update_display; do + AC_TRY_LINK_FUNC($readline_func, ax_cv_lib_readline="$TRY_LIB", ax_cv_lib_readline="") + if test -z "$ax_cv_lib_readline"; then + break + fi + done + if test -n "$ax_cv_lib_readline"; then break fi done @@ -89,22 +104,23 @@ AC_DEFUN([AX_LIB_READLINE_LLDPD], [ break fi done - if test -n "$ax_cv_lib_readline"; then - break + if test -z "$ax_cv_lib_readline"; then + ax_cv_lib_readline="no" fi - done - if test -z "$ax_cv_lib_readline"; then - ax_cv_lib_readline="no" - fi - LIBS="$_save_LIBS" - ]) + LIBS="$_save_LIBS" + ]) + fi if test "$ax_cv_lib_readline" != "no"; then READLINE_LIBS="$ax_cv_lib_readline" + READLINE_CLFAGS="$ax_cv_lib_readline_cflags" AC_SUBST(READLINE_LIBS) + AC_SUBST(READLINE_CFLAGS) _save_LIBS="$LIBS" - LIBS="$LIBS $READLINE_LIBS" + _save_CFLAGS="$CFLAGS" + LIBS="$LIBS $ax_cv_lib_readline" + CFLAGS="$LIBS $ax_cv_lib_readline_cflags" AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a readline compatible library]) AC_CHECK_HEADERS(readline.h readline/readline.h editline/readline.h) @@ -120,5 +136,6 @@ AC_DEFUN([AX_LIB_READLINE_LLDPD], [ fi LIBS="$_save_LIBS" + CFLAGS="$_save_CFLAGS" fi ])dnl diff --git a/src/client/Makefile.am b/src/client/Makefile.am index 23a3225c..1d830973 100644 --- a/src/client/Makefile.am +++ b/src/client/Makefile.am @@ -23,7 +23,7 @@ lldpcli_LDADD = \ $(top_builddir)/src/libcommon-daemon-client.la \ $(top_builddir)/src/lib/liblldpctl.la \ @READLINE_LIBS@ -lldpcli_CFLAGS = $(AM_CFLAGS) +lldpcli_CFLAGS = $(AM_CFLAGS) @READLINE_CFLAGS@ lldpcli_LDFLAGS = $(AM_LDFLAGS) $(LLDP_BIN_LDFLAGS) if USE_XML -- 2.39.5