From bbdbf8b43a846dd5f84cee581cb43eae7fc57c87 Mon Sep 17 00:00:00 2001
From: Jeffrey C. Ollie <jeff@ocjtech.us>
Date: Tue, 25 Mar 2008 00:50:27 -0500
Subject: [PATCH] Build using external libedit.
---
build_tools/menuselect-deps.in | 1 +
configure.ac | 22 ++++++++++++++++++++++
main/Makefile | 7 ++++---
main/cli.c | 3 ++-
makeopts.in | 4 ++++
5 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/build_tools/menuselect-deps.in b/build_tools/menuselect-deps.in
index 45faa9e..90507ee 100644
--- a/build_tools/menuselect-deps.in
+++ b/build_tools/menuselect-deps.in
@@ -17,6 +17,7 @@ ISDNNET=@PBX_ISDNNET@
IXJUSER=@PBX_IXJUSER@
JACK=@PBX_JACK@
LDAP=@PBX_LDAP@
+LIBEDIT=@PBX_LIBEDIT@
LTDL=@PBX_LTDL@
LUA=@PBX_LUA@
MISDN=@PBX_MISDN@
diff --git a/configure.ac b/configure.ac
index f4e445c..40f8d6e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -223,6 +223,7 @@ AST_EXT_LIB_SETUP([IMAP_TK], [UW IMAP Toolkit], [imap])
AST_EXT_LIB_SETUP([ISDNNET], [ISDN4Linux Library], [isdnnet])
AST_EXT_LIB_SETUP([JACK], [Jack Audio Connection Kit], [jack])
AST_EXT_LIB_SETUP([LDAP], [OpenLDAP], [ldap])
+AST_EXT_LIB_SETUP([LIBEDIT], [NetBSD Editline library], [libedit])
AST_EXT_LIB_SETUP([LTDL], [libtool], [ltdl])
AST_EXT_LIB_SETUP([LUA], [Lua], [lua])
AST_EXT_LIB_SETUP([MISDN], [mISDN User Library], [misdn])
@@ -1530,6 +1531,27 @@ AC_SUBST(PBX_GTK2)
AC_SUBST(GTK2_INCLUDE)
AC_SUBST(GTK2_LIB)
+PBX_LIBEDIT=0
+LIBEDIT_INCLUDE=-Ieditline/readline
+LIBEDIT_LIB=
+LIBEDIT_OBJ=editline/libedit.a
+if test "${USE_LIBEDIT}" != "no"; then
+ AC_CHECK_TOOL(PKGCONFIG, pkg-config, no)
+ if test "${PKGCONFIG}" != "no"; then
+ if ${PKGCONFIG} --exists libedit; then
+ LIBEDIT_INCLUDE=$(${PKGCONFIG} libedit --cflags)
+ LIBEDIT_LIB=$(${PKGCONFIG} libedit --libs)
+ LIBEDIT_OBJ=
+ PBX_LIBEDIT=1
+ AC_DEFINE([HAVE_LIBEDIT], 1, [Define if your system has the NetBSD Editline libraries.])
+ fi
+ fi
+fi
+AC_SUBST(PBX_LIBEDIT)
+AC_SUBST(LIBEDIT_INCLUDE)
+AC_SUBST(LIBEDIT_LIB)
+AC_SUBST(LIBEDIT_OBJ)
+
if test "${USE_CURL}" != "no"; then
AC_PATH_TOOL([CURL_CONFIG], [curl-config], No)
if test ! x"${CURL_CONFIG}" = xNo; then
diff --git a/main/Makefile b/main/Makefile
index b3a53a3..996ddf6 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -132,6 +132,7 @@ testexpr2: ast_expr2f.c ast_expr2.c ast_expr2.h
channel.o: ASTCFLAGS+=$(DAHDI_INCLUDE)
asterisk.o: ASTCFLAGS+=$(DAHDI_INCLUDE)
+cli.o: ASTCFLAGS+=$(LIBEDIT_INCLUDE)
ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),)
http.o: ASTCFLAGS+=$(GMIME_INCLUDE)
@@ -165,13 +166,13 @@ ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),)
GMIMELDFLAGS+=$(GMIME_LIB)
endif
-$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS)
+$(MAIN_TGT): $(OBJS) $(LIBEDIT_OBJ) db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS)
@$(CC) -c -o buildinfo.o $(ASTCFLAGS) buildinfo.c
$(ECHO_PREFIX) echo " [LD] $^ -> $@"
ifneq ($(findstring chan_h323,$(MENUSELECT_CHANNELS)),)
- $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS)
+ $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS) $(LIBEDIT_LIB)
else
- $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) $(GMIMELDFLAGS)
+ $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) $(GMIMELDFLAGS) $(LIBEDIT_LIB)
endif
$(CMD_PREFIX) $(ASTTOPDIR)/build_tools/strip_nonapi $@ || rm $@
diff --git a/main/cli.c b/main/cli.c
index 70d26e1..90454d8 100644
--- a/main/cli.c
+++ b/main/cli.c
@@ -34,6 +34,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include <ctype.h>
#include <regex.h>
+#include <readline.h>
+
#include "asterisk/cli.h"
#include "asterisk/linkedlists.h"
#include "asterisk/module.h"
@@ -42,7 +44,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/utils.h"
#include "asterisk/app.h"
#include "asterisk/lock.h"
-#include "editline/readline/readline.h"
#include "asterisk/threadstorage.h"
/*!
diff --git a/makeopts.in b/makeopts.in
index 05de366..72d5315 100644
--- a/makeopts.in
+++ b/makeopts.in
@@ -241,3 +241,7 @@ TINFO_DIR=@TINFO_DIR@
# if poll is not present, let the makefile know.
POLL_AVAILABLE=@HAS_POLL@
+
+LIBEDIT_INCLUDE=@LIBEDIT_INCLUDE@
+LIBEDIT_LIB=@LIBEDIT_LIB@
+LIBEDIT_OBJ=@LIBEDIT_OBJ@
--
1.5.6.5