From f6a88844c36e2c03806563c9703b92af6ba0b345 Mon Sep 17 00:00:00 2001 From: "Jose E. Marchesi" Date: Wed, 18 Feb 2015 13:52:53 +0100 Subject: [PATCH] Factorize target program transformations in the GDB_AC_TRANSFORM macro. This patch introduces a new M4 macro GDB_AC_TRANSFORM to avoid repeating the common idiom which is the transformation of target program names, i.e. from gdb to sparc64-linux-gnu-gdb. It also makes gdb/configure.ac and gdb/testsuite/configure.ac to use the new macro. gdb/ChangeLog: 2015-02-18 Jose E. Marchesi * configure: Regenerated. * configure.ac: Use GDB_AC_TRANSFORM. * Makefile.in (aclocal_m4_deps): Added transform.m4. * acinclude.m4: sinclude transform.m4. * transform.m4: New file. (GDB_AC_TRANSFORM): New macro. gdb/testsuite/ChangeLog: 2015-02-18 Jose E. Marchesi * configure: Regenerated. * configure.ac: Use GDB_AC_TRANSFORM. * aclocal.m4: sinclude ../transform.m4. --- gdb/ChangeLog | 9 ++++++++ gdb/Makefile.in | 1 + gdb/acinclude.m4 | 3 +++ gdb/configure | 24 +++++++++++--------- gdb/configure.ac | 14 ++---------- gdb/testsuite/ChangeLog | 6 +++++ gdb/testsuite/aclocal.m4 | 1 + gdb/testsuite/configure | 45 ++++++++++++++++++++++++-------------- gdb/testsuite/configure.ac | 25 ++++----------------- gdb/transform.m4 | 23 +++++++++++++++++++ 10 files changed, 91 insertions(+), 60 deletions(-) create mode 100644 gdb/transform.m4 diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6a0a31634c8..a21f6df645f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2015-02-18 Jose E. Marchesi + + * configure: Regenerated. + * configure.ac: Use GDB_AC_TRANSFORM. + * Makefile.in (aclocal_m4_deps): Added transform.m4. + * acinclude.m4: sinclude transform.m4. + * transform.m4: New file. + (GDB_AC_TRANSFORM): New macro. + 2015-02-17 Jose E. Marchesi * NEWS: Announce the support for DTrace SDT probes. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index c646ee58d72..16e2f1c946b 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1528,6 +1528,7 @@ aclocal_m4_deps = \ configure.ac \ acx_configure_dir.m4 \ libmcheck.m4 \ + transform.m4 \ ../bfd/bfd.m4 \ ../config/acinclude.m4 \ ../config/plugins.m4 \ diff --git a/gdb/acinclude.m4 b/gdb/acinclude.m4 index 6f714862328..1f0b5741b8d 100644 --- a/gdb/acinclude.m4 +++ b/gdb/acinclude.m4 @@ -9,6 +9,9 @@ sinclude(acx_configure_dir.m4) # This gets GDB_AC_LIBMCHECK. sinclude(libmcheck.m4) +# This gets GDB_AC_TRANSFORM. +sinclude(transform.m4) + dnl gdb/configure.in uses BFD_NEED_DECLARATION, so get its definition. sinclude(../bfd/bfd.m4) diff --git a/gdb/configure b/gdb/configure index 30a54d2980d..bb9697d481e 100755 --- a/gdb/configure +++ b/gdb/configure @@ -15141,17 +15141,21 @@ ac_config_links="$ac_config_links $ac_config_links_1" $as_echo "#define GDB_DEFAULT_HOST_CHARSET \"UTF-8\"" >>confdefs.h -# Undo the $ec_script escaping suitable for Makefile. -transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` -GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"` -if test "x$GDB_TRANSFORM_NAME" = x; then - GDB_TRANSFORM_NAME=gdb -fi -GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"` -if test "x$GCORE_TRANSFORM_NAME" = x; then - GCORE_TRANSFORM_NAME=gcore -fi + gdb_ac_transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` + GDB_TRANSFORM_NAME=`echo gdb | sed -e "$gdb_ac_transform"` + if test "x$GDB_TRANSFORM_NAME" = x; then + GDB_TRANSFORM_NAME=gdb + fi + + + + gdb_ac_transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` + GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$gdb_ac_transform"` + if test "x$GCORE_TRANSFORM_NAME" = x; then + GCORE_TRANSFORM_NAME=gcore + fi + ac_config_files="$ac_config_files gcore" diff --git a/gdb/configure.ac b/gdb/configure.ac index 39fcef2e27b..90bf71cd73e 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -2444,18 +2444,8 @@ dnl At the moment, we just assume it's UTF-8. AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", [Define to be a string naming the default host character set.]) -# Undo the $ec_script escaping suitable for Makefile. -transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'` -GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"` -if test "x$GDB_TRANSFORM_NAME" = x; then - GDB_TRANSFORM_NAME=gdb -fi -AC_SUBST(GDB_TRANSFORM_NAME) -GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"` -if test "x$GCORE_TRANSFORM_NAME" = x; then - GCORE_TRANSFORM_NAME=gcore -fi -AC_SUBST(GCORE_TRANSFORM_NAME) +GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME]) +GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME]) AC_CONFIG_FILES([gcore], [chmod +x gcore]) AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile, diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1e36b45a326..2fae0808b05 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-02-18 Jose E. Marchesi + + * configure: Regenerated. + * configure.ac: Use GDB_AC_TRANSFORM. + * aclocal.m4: sinclude ../transform.m4. + 2015-02-17 Jose E. Marchesi * lib/dtrace.exp: New file. diff --git a/gdb/testsuite/aclocal.m4 b/gdb/testsuite/aclocal.m4 index 2934db2bd82..d40c3a9fc6a 100644 --- a/gdb/testsuite/aclocal.m4 +++ b/gdb/testsuite/aclocal.m4 @@ -1,5 +1,6 @@ sinclude(../../config/acx.m4) sinclude(../../config/override.m4) +sinclude(../transform.m4) # AM_CONDITIONAL -*- Autoconf -*- diff --git a/gdb/testsuite/configure b/gdb/testsuite/configure index b593cd386a1..859f3480e63 100755 --- a/gdb/testsuite/configure +++ b/gdb/testsuite/configure @@ -3479,26 +3479,37 @@ test "$program_suffix" != NONE && ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` -STRIP_TRANSFORM_NAME=`echo strip | sed -e "$transform"` -if test "x$STRIP_TRANSFORM_NAME" = x; then - STRIP_TRANSFORM_NAME=strip -fi -READELF_TRANSFORM_NAME=`echo readelf | sed -e "$transform"` -if test "x$READELF_TRANSFORM_NAME" = x; then - READELF_TRANSFORM_NAME=readelf -fi + gdb_ac_transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` + STRIP_TRANSFORM_NAME=`echo strip | sed -e "$gdb_ac_transform"` + if test "x$STRIP_TRANSFORM_NAME" = x; then + STRIP_TRANSFORM_NAME=strip + fi -GAS_TRANSFORM_NAME=`echo as | sed -e "$transform"` -if test "x$GAS_TRANSFORM_NAME" = x; then - GAS_TRANSFORM_NAME=as -fi -NM_TRANSFORM_NAME=`echo nm | sed -e "$transform"` -if test "x$NM_TRANSFORM_NAME" = x; then - NM_TRANSFORM_NAME=nm -fi + + gdb_ac_transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` + READELF_TRANSFORM_NAME=`echo readelf | sed -e "$gdb_ac_transform"` + if test "x$READELF_TRANSFORM_NAME" = x; then + READELF_TRANSFORM_NAME=readelf + fi + + + + gdb_ac_transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` + GAS_TRANSFORM_NAME=`echo as | sed -e "$gdb_ac_transform"` + if test "x$GAS_TRANSFORM_NAME" = x; then + GAS_TRANSFORM_NAME=as + fi + + + + gdb_ac_transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'` + NM_TRANSFORM_NAME=`echo nm | sed -e "$gdb_ac_transform"` + if test "x$NM_TRANSFORM_NAME" = x; then + NM_TRANSFORM_NAME=nm + fi + ac_config_files="$ac_config_files lib/pdtrace" diff --git a/gdb/testsuite/configure.ac b/gdb/testsuite/configure.ac index eed01919b2b..9de9fcc1ac8 100644 --- a/gdb/testsuite/configure.ac +++ b/gdb/testsuite/configure.ac @@ -99,27 +99,10 @@ AC_SUBST(EXTRA_RULES) # Transform the name of some programs and generate the lib/pdtrace # test tool. AC_ARG_PROGRAM -transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'` -STRIP_TRANSFORM_NAME=`echo strip | sed -e "$transform"` -if test "x$STRIP_TRANSFORM_NAME" = x; then - STRIP_TRANSFORM_NAME=strip -fi -AC_SUBST(STRIP_TRANSFORM_NAME) -READELF_TRANSFORM_NAME=`echo readelf | sed -e "$transform"` -if test "x$READELF_TRANSFORM_NAME" = x; then - READELF_TRANSFORM_NAME=readelf -fi -AC_SUBST(READELF_TRANSFORM_NAME) -GAS_TRANSFORM_NAME=`echo as | sed -e "$transform"` -if test "x$GAS_TRANSFORM_NAME" = x; then - GAS_TRANSFORM_NAME=as -fi -AC_SUBST(GAS_TRANSFORM_NAME) -NM_TRANSFORM_NAME=`echo nm | sed -e "$transform"` -if test "x$NM_TRANSFORM_NAME" = x; then - NM_TRANSFORM_NAME=nm -fi -AC_SUBST(NM_TRANSFORM_NAME) +GDB_AC_TRANSFORM(strip, STRIP_TRANSFORM_NAME) +GDB_AC_TRANSFORM(readelf, READELF_TRANSFORM_NAME) +GDB_AC_TRANSFORM(as, GAS_TRANSFORM_NAME) +GDB_AC_TRANSFORM(nm, NM_TRANSFORM_NAME) AC_CONFIG_FILES([lib/pdtrace], [chmod +x lib/pdtrace]) AC_OUTPUT([Makefile \ diff --git a/gdb/transform.m4 b/gdb/transform.m4 new file mode 100644 index 00000000000..d9079af0436 --- /dev/null +++ b/gdb/transform.m4 @@ -0,0 +1,23 @@ +# Copyright (C) 2015 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# GDB_AC_TRANSFORM([PROGRAM], [VAR]) +# +# Transform a tool name to get the installed name of PROGRAM and store +# it in the output variable VAR. +# +# This macro uses the SED command stored in $program_transform_name, +# but it undoes the Makefile-like escaping of $s performed by +# AC_ARG_PROGRAM. + +AC_DEFUN([GDB_AC_TRANSFORM], [ + gdb_ac_transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'` + $2=`echo $1 | sed -e "$gdb_ac_transform"` + if test "x$$2" = x; then + $2=$1 + fi + AC_SUBST($2) +]) -- 2.30.2