2
0
mirror of git://git.savannah.gnu.org/libtool.git synced 2024-12-27 07:09:26 +08:00
libtool/tests/mdemo-dryrun.test

109 lines
3.9 KiB
Plaintext
Raw Normal View History

#! /bin/sh
2003-10-15 05:46:13 +08:00
# mdemo-dryrun.test - check whether the --dry-run mode works properly
2004-01-05 04:45:24 +08:00
# Copyright (C) 2003 Free Software Foundation, Inc.
2003-10-15 05:46:13 +08:00
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# This program 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.
#
# This program 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 this program; if not, a copy can be downloaded from
# http://www.gnu.org/copyleft/gpl.html, or by writing to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA.
if test -z "$srcdir"; then
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
test "$srcdir" = "$0" && srcdir=.
fi
. $srcdir/defs || exit 1
2003-10-15 05:46:13 +08:00
func_require "mdemo-conf" "mdemo/Makefile"
2003-10-15 05:46:13 +08:00
func_mkprefixdir
func_cd "mdemo"
func_make "clean"
# create `before' and `after' in a directory deep within objdir,
# so that their creation and removal does not modify even a timestamp
# in the output of `ls -l . $objdir'
2003-10-15 05:46:13 +08:00
func_mkdir_p "$objdir/temp/temp"
before=$objdir/temp/temp/before
after=$objdir/temp/temp/after
# Create a new libtool script that will enter dry run if the environment
# variable force_dry_run is set
rm -f $objdir/libtool.new
sed 's/^run=$/run=${force_dry_run+:}/' < libtool > $objdir/libtool.new
chmod +x $objdir/libtool.new
mv libtool $objdir/libtool
mv $objdir/libtool.new libtool
# main.o is not compiled with libtool, but it depends on it, so make
# sure it is up-to-date. libfoo2.la is linked with libsub.la, so make
# sure it exists, otherwise libtool will complain.
2003-10-15 05:46:13 +08:00
func_make main.$objext
2003-10-15 05:46:13 +08:00
func_msg "Making object files in mdemo (dry run)"
ls -l . $objdir | grep -v total > $before
force_dry_run=yes $make foo1.lo foo2.lo sub.lo || exit $?
ls -l . $objdir | grep -v total > $after
cmp $before $after > /dev/null || exit 1
# Now really make them
2003-10-15 05:46:13 +08:00
func_make foo1.lo foo2.lo libsub.la
2003-10-15 05:46:13 +08:00
func_msg "Making libraries in mdemo (dry run)"
ls -l . $objdir | grep -v total > $before
force_dry_run=yes $make foo1.la libfoo2.la || exit $?
ls -l . $objdir | grep -v total > $after
cmp $before $after > /dev/null || exit 1
# Now really make them
2003-10-15 05:46:13 +08:00
func_make foo1.la libfoo2.la
2003-10-15 05:46:13 +08:00
func_msg "Making programs in ../mdemo (dry run)"
ls -l . $objdir | grep -v total > $before
* NEWS: Updated. * THANKS: Added Rob Collins and Chuck Wilson for their cygwin work. From Robert Collins <robert.collins@itdomain.com.au>: * configure.ac (AC_EXEEXT): Needed for DOSish systems. * libtool.m4 (shlibpath_overrides_runpath) [cygwin]: Set to yes when compiling with gcc. (lt_prog_compiler_pic) [cygwin]: No longer needs the -DDLL_EXPORT hack, so we just say the pic is the default. (AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin]: Extract symbols from a library normally. [cygwin]: Declare C++ compiler characterisics for g++, taking into account the new auto-import support in cygwin ld. * ltmain.in (specialdeplibs) [cygwin]: Be careful about eliminating duplicate -lgcc's from the link line. [cygwin]: Be smarter about .exe suffixes. * demo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Support DOSish systems properly. * depdemo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Ditto. * demo/Makefile.am (deplibs-check): Allow for .exe suffix. Use hell_static instead of hell.static for multi-`.' inhibited OSes. * tests/demo-exec.test: Ditto. * tests/demo-inst.test: Ditto. * demo/foo.h [cygwin]: Sanitize cygwin dll support. * demo/foo.c (_LIBFOO_COMPILATION_): No longer required. * demo/hello.c (_LIBFOO_COMPILATION_): Ditto. * depdemo/Makefile.am (bin_PROGRAMS): Use depdemo_static instead of depdemo.static for multi-`.' inhibited OSes. * tests/depdemo-exec.test: Ditto. * tests/depdemo-inst.test: Ditto. * mdemo/Makefile.am (bin_PROGRAMS): Ditto for mdemo.static. * tests/dryrun.test: Ditto. * tests/mdemo-exec.test: Ditto. * tests/mdemo-inst.test: Ditto. * tests/build-relink.test: Be careful about possible .exe suffixes. * tests/noinst-link.test: Allow for .exe suffix.
2002-03-03 11:19:55 +08:00
force_dry_run=yes $make mdemo$EXEEXT mdemo_static$EXEEXT 1>&2 || exit $?
ls -l . $objdir | grep -v total > $after
cmp $before $after > /dev/null || exit 1
# Now really make them
2003-10-15 05:46:13 +08:00
func_make mdemo$EXEEXT mdemo_static$EXEEXT
2003-10-15 05:46:13 +08:00
func_msg "Running $make install in ../mdemo (dry run)"
# Libtool does not create these directories
2003-10-15 05:46:13 +08:00
func_mkdir_p "$prefix/bin"
func_mkdir_p "$prefix/lib"
ls -l . $objdir | grep -v total > $before
ls -lR $prefix | grep -v total >> $before
force_dry_run=yes $make install 1>&2 || exit 1
ls -l . $objdir | grep -v total > $after
ls -lR $prefix | grep -v total >> $after
cmp $before $after > /dev/null || exit 1
# Now really run it
2003-10-15 05:46:13 +08:00
func_make install
2003-10-15 05:46:13 +08:00
func_msg "Running $make uninstall in ../mdemo (dry run)"
# Libtool does not uninstall the programs, remove them first
2003-10-15 05:46:13 +08:00
rm -f "$prefix/bin/mdemo$EXEEXT" "$prefix/bin/mdemo_static$EXEEXT"
ls -l . $objdir | grep -v total > $before
ls -lR $prefix | grep -v total >> $before
force_dry_run=yes $make uninstall 1>&2 || exit $?
ls -l . $objdir | grep -v total > $after
ls -lR $prefix | grep -v total >> $after
cmp $before $after > /dev/null || exit 1
# Now really run it
2003-10-15 05:46:13 +08:00
func_make uninstall
rm -f $before $after libtool
mv $objdir/libtool libtool
exit 0