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  <jose.marchesi@oracle.com>

	* 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  <jose.marchesi@oracle.com>

	* configure: Regenerated.
	* configure.ac: Use GDB_AC_TRANSFORM.
	* aclocal.m4: sinclude ../transform.m4.
This commit is contained in:
Jose E. Marchesi 2015-02-18 13:52:53 +01:00
parent e3ee8ed41b
commit f6a88844c3
10 changed files with 91 additions and 60 deletions

View File

@ -1,3 +1,12 @@
2015-02-18 Jose E. Marchesi <jose.marchesi@oracle.com>
* 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 <jose.marchesi@oracle.com>
* NEWS: Announce the support for DTrace SDT probes.

View File

@ -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 \

View File

@ -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)

24
gdb/configure vendored
View File

@ -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"

View File

@ -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,

View File

@ -1,3 +1,9 @@
2015-02-18 Jose E. Marchesi <jose.marchesi@oracle.com>
* configure: Regenerated.
* configure.ac: Use GDB_AC_TRANSFORM.
* aclocal.m4: sinclude ../transform.m4.
2015-02-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* lib/dtrace.exp: New file.

View File

@ -1,5 +1,6 @@
sinclude(../../config/acx.m4)
sinclude(../../config/override.m4)
sinclude(../transform.m4)
# AM_CONDITIONAL -*- Autoconf -*-

View File

@ -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"

View File

@ -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 \

23
gdb/transform.m4 Normal file
View File

@ -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)
])