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 test has a few sister tests, for java, info, libtool. 21 22required=cc 23. test-init.sh 24 25cat >>configure.ac <<END 26AC_PROG_CC 27AM_PROG_AR 28AC_PROG_RANLIB 29AM_PATH_LISPDIR 30AC_OUTPUT 31END 32 33cat >Makefile.am <<'END' 34bin_PROGRAMS = prog1 prog2 prog3 35nobase_bin_PROGRAMS = progn1 progn2 progn3 36lisp_LISP = lisp1.el lisp2.el lisp3.el 37nobase_lisp_LISP = lispn1.el lispn2.el lispn3.el 38lib_LIBRARIES = lib1.a lib2.a lib3.a 39nobase_lib_LIBRARIES = libn1.a libn2.a libn3.a 40unreadable-prog: 41 chmod a-r prog1$(EXEEXT) 42readable-prog: 43 chmod a+r prog1$(EXEEXT) 44unreadable-progn: 45 chmod a-r progn1$(EXEEXT) 46readable-progn: 47 chmod a+r progn1$(EXEEXT) 48END 49 50for n in 1 2 3; do 51 echo "int main () { return 0; }" > prog$n.c 52 echo "int main () { return 0; }" > progn$n.c 53 echo "int foo$n () { return 0; }" > lib$n.c 54 echo "int foon$n () { return 0; }" > libn$n.c 55 echo >lisp$n.el 56 echo >lispn$n.el 57done 58 59$ACLOCAL 60$AUTOCONF 61$AUTOMAKE --add-missing 62 63instdir=$(pwd)/inst || fatal_ "getting current working directory" 64./configure --prefix="$instdir" 65$MAKE 66 67$MAKE install 68$MAKE uninstall 69 70for file in lib1.a libn1.a 71do 72 chmod a-r $file 73 test ! -r $file || skip_ "cannot drop file read permissions" 74 $MAKE install-exec && exit 1 75 chmod u+r $file 76done 77 78$MAKE unreadable-prog 79$MAKE install-exec && exit 1 80$MAKE readable-prog 81 82$MAKE unreadable-progn 83$MAKE install-exec && exit 1 84$MAKE readable-progn 85 86if ! grep "^EMACS = no" Makefile; then 87 for file in lisp1.el lisp1.elc; do 88 chmod a-r $file 89 $MAKE install-data && exit 1 90 chmod u+r $file 91 done 92fi 93 94: 95