Module Name:    othersrc
Committed By:   lukem
Date:           Sun Jul  5 09:37:53 UTC 2020

Modified Files:
        othersrc/usr.bin/tnftp: Makefile.am configure.ac todo
        othersrc/usr.bin/tnftp/src: Makefile.am

Log Message:
implement --with-local-libedit

Add --with-local-libedit=(yes|auto|no) to control which libedit
implementation to use:
- yes - force local implementation
- auto - try system library, fallback to local implementation. Default
- no - force system library and fail if not found

Define NO_EDITCOMPLETE as AH_TEMPLATE() instead of adding to CFLAGS.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 othersrc/usr.bin/tnftp/Makefile.am
cvs rdiff -u -r1.34 -r1.35 othersrc/usr.bin/tnftp/configure.ac
cvs rdiff -u -r1.14 -r1.15 othersrc/usr.bin/tnftp/todo
cvs rdiff -u -r1.4 -r1.5 othersrc/usr.bin/tnftp/src/Makefile.am

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: othersrc/usr.bin/tnftp/Makefile.am
diff -u othersrc/usr.bin/tnftp/Makefile.am:1.3 othersrc/usr.bin/tnftp/Makefile.am:1.4
--- othersrc/usr.bin/tnftp/Makefile.am:1.3	Sun May  5 13:06:37 2013
+++ othersrc/usr.bin/tnftp/Makefile.am	Sun Jul  5 09:37:53 2020
@@ -1,10 +1,10 @@
-## $NetBSD: Makefile.am,v 1.3 2013/05/05 13:06:37 lukem Exp $
+## $NetBSD: Makefile.am,v 1.4 2020/07/05 09:37:53 lukem Exp $
 
 ACLOCAL_AMFLAGS = -I buildaux
 
 SUBDIRS = libnetbsd
 
-if USE_LIBEDIT
+if WITH_LOCAL_LIBEDIT
 SUBDIRS += libedit
 endif
 

Index: othersrc/usr.bin/tnftp/configure.ac
diff -u othersrc/usr.bin/tnftp/configure.ac:1.34 othersrc/usr.bin/tnftp/configure.ac:1.35
--- othersrc/usr.bin/tnftp/configure.ac:1.34	Sun Jan 31 22:23:59 2016
+++ othersrc/usr.bin/tnftp/configure.ac	Sun Jul  5 09:37:53 2020
@@ -1,4 +1,4 @@
-#       $NetBSD: configure.ac,v 1.34 2016/01/31 22:23:59 lukem Exp $
+#       $NetBSD: configure.ac,v 1.35 2020/07/05 09:37:53 lukem Exp $
 #
 # Process this file with autoconf to produce a configure script.
 
@@ -9,7 +9,7 @@ AC_COPYRIGHT([
 Copyright (c) 1999-2016 The NetBSD Foundation, Inc.
 All rights reserved.
 ])
-AC_REVISION([$Revision: 1.34 $])
+AC_REVISION([$Revision: 1.35 $])
 
 AS_SHELL_SANITIZE()
 
@@ -28,6 +28,7 @@ AM_MAINTAINER_MODE()
 AC_ARG_ENABLE([editcomplete],
               [AS_HELP_STRING([--enable-editcomplete],
                               [turn on command line editing and completion
+                               (requires system or local libedit)
                                [default=enabled]])],
               [opt_editcomplete=$enableval],
               [opt_editcomplete=yes])
@@ -43,6 +44,13 @@ AC_ARG_ENABLE([ssl],
                                [default=auto]])],
               [with_ssl=$enableval],
               [with_ssl=auto])
+AC_ARG_WITH([local-libedit],
+            [AS_HELP_STRING([--with-local-libedit],
+                            [use local libedit instead of system library:
+                             yes; auto (try system, fallback to local); no
+                             [default=auto]])],
+            [],
+            [with_local_libedit=auto])
 AC_ARG_WITH([socks],
             [AS_HELP_STRING([--with-socks],
                             [enable support for (Dante) SOCKS5 proxy
@@ -65,6 +73,8 @@ AH_TEMPLATE([HAVE_VA_COPY],
             [Define to 1 if the 'va_copy' function is supported.])
 AH_TEMPLATE([HAVE___BUILTIN_VA_COPY],
             [Define to 1 if the '__builtin_va_copy' function is supported.])
+AH_TEMPLATE([NO_EDITCOMPLETE],
+            [Define if disabling command-line editing and completion.])
 AH_TEMPLATE([USE_INET6],
             [Define if using IPv6 support.])
 AH_TEMPLATE([USE_SOCKS],
@@ -99,14 +109,31 @@ AS_CASE([$target_os],
 #
 # Checks for libraries.
 #
+
+# Check if libedit is required, and which implementation.
+#
 AS_IF([test "$opt_editcomplete" = yes],
-      [AC_SEARCH_LIBS([tgetent],
+      [AC_MSG_NOTICE([--enable-editcomplete; checking for required features])
+       AC_SEARCH_LIBS([tgetent],
                       [termcap termlib curses ncurses tinfo],
                       [],
-                      [AC_MSG_ERROR(
-                           [no relevant library found containing tgetent])])
-       ])
+                      [AC_MSG_ERROR([no relevant library found containing tgetent])])
+       AS_IF([test "$with_local_libedit" != yes],
+             [AC_CHECK_LIB([edit],
+                           [el_init],
+                           [AC_MSG_NOTICE([using system libedit])
+                            with_local_libedit=no],
+                           [AS_IF([test "$with_local_libedit" = no],
+                                  [AC_MSG_ERROR([--without-local-libedit was given, but system libedit was not found])])
+                            AC_MSG_NOTICE([using local libedit])
+                            with_local_libedit=yes])],
+             [AC_MSG_NOTICE([using local libedit])])],
+      [AC_MSG_NOTICE([--disable-editcomplete; disabling --with-local-libedit])
+       AC_DEFINE([NO_EDITCOMPLETE], [1])
+       with_local_libedit=no])
 
+# Check for ns and socket libraries.
+#
 AC_SEARCH_LIBS([gethostbyname], [nsl])
 AC_SEARCH_LIBS([socket],
                [socket],
@@ -117,7 +144,6 @@ AC_SEARCH_LIBS([socket],
                              [],
                              [-lnsl])])
 
-#
 # Check for (Dante) SOCKS5.
 #
 AS_IF([test "$with_socks" != no],
@@ -131,13 +157,12 @@ AS_IF([test "$with_socks" != no],
                              [AC_MSG_WARN(
                 [IPv6 is incompatible with socks, disabling IPv6 support])
                               opt_ipv6=no])],
-                      [AS_IF([test "$with_socks" != "auto"],
-                             [AC_MSG_FAILURE(
+                      [AS_IF([test "$with_socks" != auto],
+                             [AC_MSG_ERROR(
                 [--with-socks was given, but SOCKSinit() was not found])])
                        AC_MSG_NOTICE([disabling --with-socks])
                        with_socks=no])])
 
-#
 # Check for OpenSSL.
 #
 AX_CHECK_OPENSSL([have_ssl=yes])
@@ -148,13 +173,11 @@ AS_IF([test "$with_ssl" != no],
              [AC_DEFINE([WITH_SSL], [1])
               AC_MSG_NOTICE([enabling SSL support])
               with_ssl=yes],
-             [AS_IF([test "$with_ssl" != "auto"],
-                    [AC_MSG_FAILURE([--with-ssl was given, but OpenSSL was not found])])
+             [AS_IF([test "$with_ssl" != auto],
+                    [AC_MSG_ERROR([--with-ssl was given, but OpenSSL was not found])])
               AC_MSG_NOTICE([disabling --with-ssl])
               with_ssl=no])])
 
-AM_CONDITIONAL([WITH_SSL], [test "$with_ssl" = yes])
-
 #
 # Checks for header files.
 #
@@ -404,12 +427,6 @@ exit(!res);
                       AC_LIBOBJ([strptime])],
                      [AC_MSG_RESULT([unknown - cross-compiling])])])
 
-# Use local libedit if editcomplete is requested
-#
-AS_IF([test "$opt_editcomplete" = yes],
-      [AC_MSG_NOTICE([--enable-editcomplete; using internal libedit])],
-      [CFLAGS="-DNO_EDITCOMPLETE $CFLAGS"])
-
 # Replace sl_init() (et al) if it provides the older API.
 #
 AS_IF([test "$ac_cv_func_sl_init" = yes],
@@ -439,7 +456,9 @@ AS_IF([test "$ac_cv_header_vis_h" = yes]
 #include <vis.h>
 ])])
 
-AM_CONDITIONAL([USE_LIBEDIT], [test "$opt_editcomplete" = yes])
+AM_CONDITIONAL([WITH_SSL], [test "$with_ssl" = yes])
+AM_CONDITIONAL([OPT_EDITCOMPLETE], [test "$opt_editcomplete" = yes])
+AM_CONDITIONAL([WITH_LOCAL_LIBEDIT], [test "$with_local_libedit" = yes])
 
 #
 # Create the Makefiles.
@@ -459,6 +478,7 @@ AC_MSG_NOTICE([ === Configuration result
 AC_MSG_NOTICE([Package:               $PACKAGE_STRING])
 AC_MSG_NOTICE([Prefix:                $prefix])
 AC_MSG_NOTICE([Command-line editing:  $opt_editcomplete])
+AC_MSG_NOTICE([Local libedit:         $with_local_libedit])
 AC_MSG_NOTICE([IPv6 support:          $opt_ipv6])
 AC_MSG_NOTICE([SOCKS5 proxy support:  $with_socks])
 AC_MSG_NOTICE([SSL:                   $with_ssl])

Index: othersrc/usr.bin/tnftp/todo
diff -u othersrc/usr.bin/tnftp/todo:1.14 othersrc/usr.bin/tnftp/todo:1.15
--- othersrc/usr.bin/tnftp/todo:1.14	Sat Jul  4 14:51:15 2020
+++ othersrc/usr.bin/tnftp/todo	Sun Jul  5 09:37:53 2020
@@ -1,10 +1,8 @@
-$NetBSD: todo,v 1.14 2020/07/04 14:51:15 lukem Exp $
+$NetBSD: todo,v 1.15 2020/07/05 09:37:53 lukem Exp $
 
 Current Items
 -------------
 
-add autoconf control to use system libedit instead of internal libedit
-
 autoconf test for HAVE_DECL_GETADDRINFO if providing getaddrinfo() override.
 (required for UnixWare 7.1.1)
 

Index: othersrc/usr.bin/tnftp/src/Makefile.am
diff -u othersrc/usr.bin/tnftp/src/Makefile.am:1.4 othersrc/usr.bin/tnftp/src/Makefile.am:1.5
--- othersrc/usr.bin/tnftp/src/Makefile.am:1.4	Sun May  5 13:29:19 2013
+++ othersrc/usr.bin/tnftp/src/Makefile.am	Sun Jul  5 09:37:53 2020
@@ -1,4 +1,4 @@
-## $NetBSD: Makefile.am,v 1.4 2013/05/05 13:29:19 lukem Exp $
+## $NetBSD: Makefile.am,v 1.5 2020/07/05 09:37:53 lukem Exp $
 
 bin_PROGRAMS = tnftp
 
@@ -26,13 +26,17 @@ tnftp_LDADD = \
 	../libnetbsd/libnetbsd.la 
 
 
-if USE_LIBEDIT
+if OPT_EDITCOMPLETE
+if WITH_LOCAL_LIBEDIT
 tnftp_CPPFLAGS += \
 	-I$(top_srcdir)/libedit
 
 tnftp_LDADD += \
 	../libedit/libedit.la
-endif
+else	# !WITH_LOCAL_LIBEDIT
+tnftp_LDADD += -ledit
+endif	# !WITH_LOCAL_LIBEDIT
+endif	# !OPT_EDITCOMPLETE
 
 
 if WITH_SSL

Reply via email to