mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-27 06:09:57 +08:00
c20dbb8781
Fixes a lot of testsuite failures with MSVC 2003 (v8.0) and above (and perhaps also MSVC .Net) related to running programs that have been moved (e.g. installed) without their manifests also having been moved. * libltdl/m4/libtool.m4 (_LT_PATH_MANIFEST_TOOL): New macro that locates the Manifest Tool (mt) and verifies that it is indeed the manifest tool. The result is stored in the new variable MANIFEST_TOOL. (_LT_LINKER_SHLIBS) <postlink_cmds>: New tag variable. [ cygwin, mingw, cegcc ] <cl*>: Embed the manifest file as a resource. Make sure the embedding work regardless of if the @OUTPUT@ file name includes a trailing $EXEEXT. (_LT_LANG_CXX_CONFIG): Likewise. (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Require the above _LT_PATH_MANIFEST_TOOL. * libltdl/config/ltmain.m4sh (func_mode_link): After linking a program, replace @OUTPUT@ in $postlink_cmds and then execute the commands. * doc/libtool.texi (libtool script contents): Document new postlink_cmds variable. (LT_INIT): Add that the MANIFEST_TOOL environment variable can be used to override the manifest tool to use. * tests/exeext.at: New. Make sure linking with both -o prog and -o prog$EXEEXT works. * Makefile.am (TESTSUITE_AT): Update. (TESTS_ENVIRONMENT): Propagate $(MANIFEST_TOOL) to the testsuite. * NEWS: Add note of the new MANIFEST_TOOL environment variable.
54 lines
1.7 KiB
Plaintext
54 lines
1.7 KiB
Plaintext
# exeext.at -- ensure that exeext handling works -*- Autotest -*-
|
|
#
|
|
# Copyright (C) 2010 Free Software Foundation, Inc.
|
|
# Written by Peter Rosin
|
|
#
|
|
# 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
|