]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
patch embed-manifest-exeext.patch
authorPeter Rosin <peda@lysator.liu.se>
Mon, 3 Apr 1995 02:10:00 +0000 (04:10 +0200)
committerPeter Rosin <peda@lysator.liu.se>
Tue, 13 Jan 2009 09:27:25 +0000 (10:27 +0100)
Makefile.am
libltdl/m4/libtool.m4
tests/exeext.at [new file with mode: 0644]

index 60619a9350446195ff3ca3524db048fe0d4d27ee..8ed48c36444714262bdd64d4c74c9ad736acc85c 100644 (file)
@@ -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 \
index f8817687457f7107fa23f401de7304a8f0b04444..32de8320a0579d062726941f91a7146442322897 100644 (file)
@@ -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 (file)
index 0000000..30a9e4f
--- /dev/null
@@ -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