mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-27 06:09:57 +08:00
e9b2b3f264
for a different host, it can't be shipped. That also means that defs will always be generated in the build tree, so each test case can have the srcdir discovery factored away into tests/defs.in: * Makefile.am (EXTRA_DIST): s/defs/defs.in/g * tests/Makefile.am (defs): New rule to remake defs from the parent directory's Makefile. * tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-hardcode.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-noinst-link.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-relink.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-relink.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-dryrun.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test, tests/tagtrace.test: Removed srcdir discovery boilerplate... * tests/defs.in: ...and put it here.
105 lines
3.8 KiB
Bash
Executable File
105 lines
3.8 KiB
Bash
Executable File
#! /bin/sh
|
|
# mdemo-dryrun.test - check whether the --dry-run mode works properly
|
|
|
|
# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
|
# 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.
|
|
|
|
. defs || exit 1
|
|
|
|
func_require "mdemo-conf" "mdemo/Makefile"
|
|
|
|
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'
|
|
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.
|
|
func_make main.$objext
|
|
|
|
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
|
|
func_make foo1.lo foo2.lo libsub.la
|
|
|
|
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
|
|
func_make foo1.la libfoo2.la
|
|
|
|
func_msg "Making programs in ../mdemo (dry run)"
|
|
ls -l . $objdir | grep -v total > $before
|
|
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
|
|
func_make mdemo$EXEEXT mdemo_static$EXEEXT
|
|
|
|
func_msg "Running $MAKE install in ../mdemo (dry run)"
|
|
# Libtool does not create these directories
|
|
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
|
|
func_make install
|
|
|
|
func_msg "Running $MAKE uninstall in ../mdemo (dry run)"
|
|
# Libtool does not uninstall the programs, remove them first
|
|
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
|
|
func_make uninstall
|
|
|
|
rm -f $before $after libtool
|
|
mv $objdir/libtool libtool
|
|
|
|
exit 0
|