1#! /bin/sh 2# Copyright (C) 2008-2021 Free Software Foundation, Inc. 3# 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 2, or (at your option) 7# any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program. If not, see <https://www.gnu.org/licenses/>. 16 17# The install rule should honor failures of the install program. 18# Some of these are already caught by 'instmany.sh'. 19 20# This is the libtool sister test of 'instfail.sh'. 21 22required='cc libtool libtoolize' 23. test-init.sh 24 25cat >>configure.ac <<END 26AM_PROG_AR 27AC_PROG_LIBTOOL 28AC_OUTPUT 29END 30 31cat >Makefile.am <<'END' 32bin_PROGRAMS = prog1 prog2 prog3 33nobase_bin_PROGRAMS = progn1 progn2 progn3 34lib_LTLIBRARIES = liblt1.la liblt2.la liblt3.la 35nobase_lib_LTLIBRARIES = libltn1.la libltn2.la libltn3.la 36unreadable-prog: 37 chmod a-r prog1$(EXEEXT) 38readable-prog: 39 chmod a+r prog1$(EXEEXT) 40unreadable-progn: 41 chmod a-r progn1$(EXEEXT) 42readable-progn: 43 chmod a+r progn1$(EXEEXT) 44END 45 46for n in 1 2 3; do 47 echo "int main () { return 0; }" > prog$n.c 48 echo "int main () { return 0; }" > progn$n.c 49 echo "int foolt$n () { return 0; }" > liblt$n.c 50 echo "int fooltn$n () { return 0; }" > libltn$n.c 51done 52 53libtoolize 54$ACLOCAL 55$AUTOCONF 56$AUTOMAKE --add-missing 57 58instdir=$(pwd)/inst || fatal_ "getting current working directory" 59./configure --prefix="$instdir" 60$MAKE 61 62$MAKE install 63$MAKE uninstall 64 65for file in liblt1.la libltn1.la 66do 67 chmod a-r $file 68 test ! -r $file || skip_ "cannot drop file read permissions" 69 $MAKE install-exec && exit 1 70 chmod u+r $file 71done 72 73$MAKE unreadable-prog 74$MAKE install-exec && exit 1 75$MAKE readable-prog 76 77$MAKE unreadable-progn 78$MAKE install-exec && exit 1 79$MAKE readable-progn 80 81: 82