From: Peter Rosin Date: Mon, 3 Apr 1995 02:10:00 +0000 (+0200) Subject: patch embed-manifest-exeext.patch X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2817364bb6efd255550192c46edecfe085cbb288;p=thirdparty%2Flibtool.git patch embed-manifest-exeext.patch --- diff --git a/Makefile.am b/Makefile.am index 60619a935..8ed48c364 100644 --- a/Makefile.am +++ b/Makefile.am @@ -465,6 +465,7 @@ TESTSUITE_AT = tests/testsuite.at \ tests/search-path.at \ tests/indirect_deps.at \ tests/archive-in-archive.at \ + tests/exeext.at \ tests/execute-mode.at \ tests/infer-tag.at \ tests/localization.at \ diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4 index f88176874..32de8320a 100644 --- a/libltdl/m4/libtool.m4 +++ b/libltdl/m4/libtool.m4 @@ -4774,9 +4774,14 @@ _LT_EOF _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(compile_tag, $1)=-TC _LT_TAGVAR(dashl_xform, $1)='s/\(.*\)/\1.lib/' - _LT_TAGVAR(postlink_cmds, $1)='if test -e "@OUTPUT@.exe.manifest"; then - mt -manifest "@OUTPUT@.exe.manifest" -outputresource:"@OUTPUT@.exe"; - $RM "@OUTPUT@.exe.manifest"; + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + case "$lt_outputfile" in + *.[[eE][xX][eE]]) ;; + *) lt_outputfile="$lt_outputfile.exe" ;; + esac~ + if test -e "$lt_outputfile.manifest"; then + mt -manifest "$lt_outputfile.manifest" -outputresource:"$lt_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; fi' ;; *) @@ -5781,9 +5786,14 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(compile_tag, $1)=-TP _LT_TAGVAR(dashl_xform, $1)='s/\(.*\)/\1.lib/' - _LT_TAGVAR(postlink_cmds, $1)='if test -e "@OUTPUT@.exe.manifest"; then - mt -manifest "@OUTPUT@.exe.manifest" -outputresource:"@OUTPUT@.exe"; - $RM "@OUTPUT@.exe.manifest"; + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + case "$lt_outputfile" in + *.[[eE][xX][eE]]) ;; + *) lt_outputfile="$lt_outputfile.exe" ;; + esac~ + if test -e "$lt_outputfile.manifest"; then + mt -manifest "$lt_outputfile.manifest" -outputresource:"$lt_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; fi' ;; *) diff --git a/tests/exeext.at b/tests/exeext.at new file mode 100644 index 000000000..30a9e4f48 --- /dev/null +++ b/tests/exeext.at @@ -0,0 +1,53 @@ +# exeext.at -- ensure that exeext handling works -*- Autotest -*- +# +# Copyright (C) 2008 Free Software Foundation, Inc. +# Written by Peter Rosin, 2008 +# +# 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_SETUP([both of -o prog and -o prog$EXEEXT work]) +AT_KEYWORDS([libtool]) + +AT_CHECK([test -n "$EXEEXT" || exit 77]) + +bin=`pwd`/bin +binext=`pwd`/binext +mkdir src $bin srcext $binext + +AT_DATA(src/prog.c, +[[ +int main(void) { return 0; } +]]) + +$CC $CPPFLAGS $CFLAGS -c src/prog.c -o src/prog.$OBJEXT + +AT_CHECK($LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o src/prog src/prog.$OBJEXT, + [0], [ignore], [ignore]) +AT_CHECK($LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o srcext/prog$EXEEXT src/prog.$OBJEXT, + [0], [ignore], [ignore]) + +$LIBTOOL --mode=install cp src/prog $bin/prog +$LIBTOOL --mode=install cp srcext/prog$EXEEXT $binext/prog$EXEEXT + +LT_AT_EXEC_CHECK([$bin/prog]) +LT_AT_EXEC_CHECK([$binext/prog$EXEEXT]) + +AT_CLEANUP