Hi!

During my exercise with libsndfile I found a problem with
the manifest embedding code. $output may or may not contain
the trailing $EXEEXT, so the code in $postlink_cmds has
to handle both cases (or some c14n has to be added to ltmain).

So, here is a patch to address that. Ok to push to the
pr-msvc-support branch?

Cheers,
Peter

2008-08-30  Peter Rosin  <[EMAIL PROTECTED]>

        * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS)
        [ cygwin, mingw, cegcc ] <cl*>: @OUTPUT@ may or may not
        include a trailing $EXEEXT. If mt fails, make sure libtool
        exits with an error.
        (_LT_LANG_CXX_CONFIG): Likewise.
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index a8f20f0..3e667b2 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -4824,9 +4824,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 "@[EMAIL PROTECTED]"; then
-           mt -manifest "@[EMAIL PROTECTED]" -outputresource:"@[EMAIL 
PROTECTED]";
-           $RM "@[EMAIL PROTECTED]";
+       _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'
        ;;
       *)
@@ -5821,9 +5826,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 "@[EMAIL PROTECTED]"; then
-             mt -manifest "@[EMAIL PROTECTED]" -outputresource:"@[EMAIL 
PROTECTED]";
-             $RM "@[EMAIL PROTECTED]";
+         _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'
          ;;
        *)

Reply via email to