[v2] gdb/configure.ac: add --enable-source-highlight

Message ID 20190317224802.13221-1-slyfox@gentoo.org
State New
Headers show
Series
  • [v2] gdb/configure.ac: add --enable-source-highlight
Related show

Commit Message

Sergei Trofimovich March 17, 2019, 10:48 p.m.
From: Sergei Trofimovich <siarheit@google.com>


Allow disabling source-highlight dependency autodetection even
it exists in the system. More details on problem of automatic
dependencies:
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies

Noticed by Jeroen Roovers in https://bugs.gentoo.org/680238

	* configure.ac: add --enable-source-highlight switch.
	* configure: Regenerate.
	* top.c (print_gdb_version): plumb --enable-source-highlight
	status to "show configuration".
---
 gdb/ChangeLog    |  7 +++++++
 gdb/configure    | 38 +++++++++++++++++++++++++++++++-------
 gdb/configure.ac | 33 ++++++++++++++++++++++++++-------
 gdb/top.c        |  9 +++++++++
 4 files changed, 73 insertions(+), 14 deletions(-)

-- 
2.21.0

Comments

Tom Tromey April 19, 2019, 8:08 p.m. | #1
>>>>> "Sergei" == Sergei Trofimovich <slyfox@gentoo.org> writes:


Sergei> From: Sergei Trofimovich <siarheit@google.com>
Sergei> Allow disabling source-highlight dependency autodetection even
Sergei> it exists in the system. More details on problem of automatic
Sergei> dependencies:
Sergei> https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies

Sergei> Noticed by Jeroen Roovers in https://bugs.gentoo.org/680238

Sergei> 	* configure.ac: add --enable-source-highlight switch.
Sergei> 	* configure: Regenerate.
Sergei> 	* top.c (print_gdb_version): plumb --enable-source-highlight
Sergei> 	status to "show configuration".

I'm checking in this version.  Thanks for doing this.

I'm going to push it to the 8.3 branch as well, because this whole
feature will first appear in that release.

Tom

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6390295bfc..fb7f58d57e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -46,6 +46,13 @@ 
 	* observable.h (source_styling_changed): New observable.
 	* observable.c: Define source_styling_changed observable.
 
+2019-03-13  Sergei Trofimovich <siarheit@google.com>
+
+	* configure.ac: add --enable-source-highlight switch.
+	* configure: Regenerate.
+	* top.c (print_gdb_version): plumb --enable-source-highlight
+	status to "show configuration".
+
 2019-03-13  Tom Tromey  <tromey@adacore.com>
 
 	* i386-gnu-nat.c (i386_gnu_nat_target::fetch_registers)
diff --git a/gdb/configure b/gdb/configure
index f2d271e23a..15a96afcca 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -879,6 +879,7 @@  with_mpfr
 with_libmpfr_prefix
 with_python
 with_guile
+enable_source_highlight
 enable_libmcheck
 with_intel_pt
 with_libipt_prefix
@@ -1554,6 +1555,8 @@  Optional Features:
   --enable-profiling      enable profiling of GDB
   --enable-codesign=CERT  sign gdb with 'codesign -s CERT'
   --disable-rpath         do not hardcode runtime library paths
+  --enable-source-highlight
+                          enable source-highlight for source listings
   --enable-libmcheck      Try linking with -lmcheck if available
   --enable-werror         treat compile warnings as errors
   --enable-build-warnings enable build-time compiler warnings if gcc is used
@@ -11393,13 +11396,30 @@  fi
 
 SRCHIGH_LIBS=
 SRCHIGH_CFLAGS=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the source-highlight library" >&5
+
+# Check whether --enable-source-highlight was given.
+if test "${enable_source_highlight+set}" = set; then :
+  enableval=$enable_source_highlight; case "${enableval}" in
+  yes)  enable_source_highlight=yes ;;
+  no)   enable_source_highlight=no  ;;
+  *)    as_fn_error $? "bad value ${enableval} for source-highlight option" "$LINENO" 5 ;;
+esac
+else
+  enable_source_highlight=auto
+fi
+
+
+if test "${enable_source_highlight}" != "no"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the source-highlight library" >&5
 $as_echo_n "checking for the source-highlight library... " >&6; }
-if test "${pkg_config_prog_path}" = "missing"; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no - pkg-config not found" >&5
+  if test "${pkg_config_prog_path}" = "missing"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no - pkg-config not found" >&5
 $as_echo "no - pkg-config not found" >&6; }
-else
-   if ${pkg_config_prog_path} --exists source-highlight; then
+    if test "${enable_source_highlight}" = "yes"; then
+      as_fn_error $? "pkg-config was not found in your system" "$LINENO" 5
+    fi
+  else
+    if ${pkg_config_prog_path} --exists source-highlight; then
       SRCHIGH_CFLAGS=`${pkg_config_prog_path} --cflags source-highlight`
       SRCHIGH_LIBS=`${pkg_config_prog_path} --libs source-highlight`
 
@@ -11407,10 +11427,14 @@  $as_echo "#define HAVE_SOURCE_HIGHLIGHT 1" >>confdefs.h
 
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-   else
+    else
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-   fi
+      if test "${enable_source_highlight}" = "yes"; then
+        as_fn_error $? "source-highlight was not found in your system" "$LINENO" 5
+      fi
+    fi
+  fi
 fi
 
 
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 8ddd0fda61..1318c8d008 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1220,19 +1220,38 @@  AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
 
 SRCHIGH_LIBS=
 SRCHIGH_CFLAGS=
-AC_MSG_CHECKING([for the source-highlight library])
-if test "${pkg_config_prog_path}" = "missing"; then
-   AC_MSG_RESULT([no - pkg-config not found])
-else
-   if ${pkg_config_prog_path} --exists source-highlight; then
+
+AC_ARG_ENABLE(source-highlight,
+  AS_HELP_STRING([--enable-source-highlight],
+    [enable source-highlight for source listings]),
+  [case "${enableval}" in
+  yes)  enable_source_highlight=yes ;;
+  no)   enable_source_highlight=no  ;;
+  *)    AC_MSG_ERROR(bad value ${enableval} for source-highlight option) ;;
+esac],
+[enable_source_highlight=auto])
+
+if test "${enable_source_highlight}" != "no"; then
+  AC_MSG_CHECKING([for the source-highlight library])
+  if test "${pkg_config_prog_path}" = "missing"; then
+    AC_MSG_RESULT([no - pkg-config not found])
+    if test "${enable_source_highlight}" = "yes"; then
+      AC_MSG_ERROR([pkg-config was not found in your system])
+    fi
+  else
+    if ${pkg_config_prog_path} --exists source-highlight; then
       SRCHIGH_CFLAGS=`${pkg_config_prog_path} --cflags source-highlight`
       SRCHIGH_LIBS=`${pkg_config_prog_path} --libs source-highlight`
       AC_DEFINE([HAVE_SOURCE_HIGHLIGHT], 1,
                 [Define to 1 if the source-highlight library is available])
       AC_MSG_RESULT([yes])
-   else
+    else
       AC_MSG_RESULT([no])
-   fi
+      if test "${enable_source_highlight}" = "yes"; then
+        AC_MSG_ERROR([source-highlight was not found in your system])
+      fi
+    fi
+  fi
 fi
 AC_SUBST(SRCHIGH_LIBS)
 AC_SUBST(SRCHIGH_CFLAGS)
diff --git a/gdb/top.c b/gdb/top.c
index b10b0649e9..80908c317d 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1449,6 +1449,15 @@  This GDB was configured as follows:\n\
              --without-guile\n\
 "));
 #endif
+#if HAVE_SOURCE_HIGHLIGHT
+  fprintf_filtered (stream, _("\
+             --enable-source-highlight\n\
+"));
+#else
+  fprintf_filtered (stream, _("\
+             --disable-source-highlight\n\
+"));
+#endif
 #ifdef RELOC_SRCDIR
   fprintf_filtered (stream, _("\
              --with-relocated-sources=%s\n\