>From 562a2a74f7cbaf236aee46b88cf01e06217300cb Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Sat, 13 Dec 2014 10:59:37 +0100 Subject: [PATCH 1/2] libtool.m4: typofix, subst last '$' with quadrigraph * m4/libtool.m4 (_LT_LIBTOOL_TAG_VARS): Encase the configure/libtool shared function into parseable borders; for testing purposes. (func_munge_path_list): Typo s/$/@S|@/. * tests/configure-funcs.at: New testcase. * Makefile.am (TESTSUITE_AT): Mention new testcase. --- Makefile.am | 1 + m4/libtool.m4 | 9 ++++--- tests/configure-funcs.at | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 tests/configure-funcs.at diff --git a/Makefile.am b/Makefile.am index f1b7ead..ede28c7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -651,6 +651,7 @@ testsuite = $(tests_dir)/testsuite # that it can check for previous failures and skip if necessary. TESTSUITE = tests/testsuite TESTSUITE_AT = tests/testsuite.at \ + tests/configure-funcs.at \ tests/libtoolize.at \ tests/libtool.at \ tests/demo.at \ diff --git a/m4/libtool.m4 b/m4/libtool.m4 index f879988..31431ee 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -748,13 +748,14 @@ _LT_LIBTOOL_TAG_VARS _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" -## -------------------------------------- ## -## Shell functions shared with configure. ## -## -------------------------------------- ## + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME +# ### END FUNCTIONS SHARED WITH CONFIGURE + _LT_EOF case $host_os in @@ -2256,7 +2257,7 @@ func_munge_path_list () x) ;; *:) - eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` address@hidden|@1\" + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` address@hidden|@@S|@1\" ;; x:*) eval @S|@1=\"address@hidden|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" diff --git a/tests/configure-funcs.at b/tests/configure-funcs.at new file mode 100644 index 0000000..eab84a0 --- /dev/null +++ b/tests/configure-funcs.at @@ -0,0 +1,70 @@ +# configure-functions.at -- Linking and loading. -*- Autotest -*- +# +# Copyright (C) 2014 Free Software Foundation, Inc. +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#### + +AT_BANNER([Functions shared with configure and libtool.]) + +m4_define([_AT_FUNC_SETUP], [dnl +AT_SETUP($1)dnl +_lt_bin="$abs_top_builddir/libtool" +re_begincf='^# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE' +re_endcf='^# ### END FUNCTIONS SHARED WITH CONFIGURE' + +$ECHO '#!/bin/sh' > "$1" +$ECHO '#: ${SED=sed}' >> "$1" +$ECHO '#: ${ECHO=echo}' >> "$1" + +sed "1,/$re_begincf/d;/$re_endcf/,\$d" < "$_lt_bin" >> "$1" +]) + +_AT_FUNC_SETUP([func_munge_path_list]) + +cat <<\EOF >> func_munge_path_list +for orig in "/usr/lib" " /lib /usr/lib "; do + $ECHO "'$orig':" + for path in "/p1:" "/p3:/p2:" ":/a1" ":/a2:/a3" "/p4::/a4" "/p6:/p5::/a5:/a6"; do + old="$orig" + func_munge_path_list orig "$path" || exit 1 + $ECHO "munge ($path) = $orig" + done +done +EOF +chmod +x func_munge_path_list + +AT_CHECK([ECHO="$ECHO" SED="$SED" ./func_munge_path_list], [0], +['/usr/lib': +munge (/p1:) = /p1 /usr/lib +munge (/p3:/p2:) = /p3 /p2 /p1 /usr/lib +munge (:/a1) = /p3 /p2 /p1 /usr/lib /a1 +munge (:/a2:/a3) = /p3 /p2 /p1 /usr/lib /a1 /a2 /a3 +munge (/p4::/a4) = /p4 /p3 /p2 /p1 /usr/lib /a1 /a2 /a3 /a4 +munge (/p6:/p5::/a5:/a6) = /p6 /p5 /p4 /p3 /p2 /p1 /usr/lib /a1 /a2 /a3 /a4 /a5 /a6 +' /lib /usr/lib ': +munge (/p1:) = /p1 /lib /usr/lib @&t@ +munge (/p3:/p2:) = /p3 /p2 /p1 /lib /usr/lib @&t@ +munge (:/a1) = /p3 /p2 /p1 /lib /usr/lib /a1 +munge (:/a2:/a3) = /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3 +munge (/p4::/a4) = /p4 /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3 /a4 +munge (/p6:/p5::/a5:/a6) = /p6 /p5 /p4 /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3 /a4 /a5 /a6 +], []) + +AT_CLEANUP -- 1.9.3