1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
#! /bin/sh
# Copyright (C) 2010-2021 Free Software Foundation, Inc.
#
# 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, 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, see <https://www.gnu.org/licenses/>.
# Make sure AC_LIBOBJ and friends work.
# Please keep this in sync with sister test 'libobj16b.sh'.
required=cc
. test-init.sh
mv configure.ac configure.proto
cat >> configure.proto << 'END'
AC_PROG_CC
AM_PROG_AR
AC_PROG_RANLIB
%LIBOBJ-STUFF% # Will be activated later.
AC_OUTPUT
END
cat > Makefile.am << 'END'
noinst_LIBRARIES = libtu.a
libtu_a_SOURCES =
libtu_a_LIBADD = $(LIBOBJS)
include extra-checks.am
.PHONY: $(extra_checks) pre-test
pre-test: distdir
ls -l $(srcdir) $(builddir) $(distdir)
$(AR) tv libtu.a
$(extra_checks): pre-test
check-local: $(extra_checks)
maude-src:
grep dummy_maude $(srcdir)/maude.c
maude-dist:
grep dummy_maude $(distdir)/maude.c
liver-src:
grep dummy_liver $(srcdir)/liver.c
liver-dist:
grep dummy_liver $(distdir)/liver.c
liver-not-dist: distdir
test ! -r $(distdir)/liver.c
maude-not-dist: distdir
test ! -r $(distdir)/maude.c
maude-lib:
$(AR) t libtu.a | grep maude
maude-not-lib:
$(AR) t libtu.a | grep maude && exit 1; exit 0
liver-lib:
$(AR) t libtu.a | grep liver
liver-not-lib:
$(AR) t libtu.a | grep liver && exit 1; exit 0
END
cat > maude.c << 'END'
extern int dummy_maude;
END
cat > liver.c << 'END'
extern int dummy_liver;
END
sed '/%LIBOBJ-STUFF%/{
s/.*//
i\
AC_LIBOBJ([maude])
}' configure.proto > configure.ac
cat configure.ac # For debugging.
cat > extra-checks.am << 'END'
extra_checks = maude-src maude-dist maude-lib liver-not-dist
END
$ACLOCAL
$AUTOCONF
$AUTOMAKE --add-missing
./configure
$MAKE
$MAKE check
$MAKE distcheck
$MAKE distclean
# Avoid timestamp-related differences.
rm -rf autom4te*.cache
cat > extra-checks.am << 'END'
extra_checks = maude-src maude-dist liver-src liver-dist
if MAUDE_COND
extra_checks += maude-lib liver-not-lib
else
extra_checks += maude-not-lib liver-lib
endif
END
sed '/%LIBOBJ-STUFF%/{
s/.*//
i\
AM_CONDITIONAL([MAUDE_COND], [test x"$MAUDE" = x"yes"])\
if test x"$MAUDE" = x"yes"; then\
AC_LIBOBJ([maude])\
else\
AC_LIBOBJ([liver])\
fi\
AC_LIBSOURCES([maude.c, liver.c])
}' configure.proto > configure.ac
cat configure.ac # For debugging.
$ACLOCAL
$AUTOCONF
$AUTOMAKE
./configure MAUDE=yes
$MAKE
$MAKE check
$MAKE distcheck
$MAKE distclean
./configure MAUDE=no
$MAKE
$MAKE check
$MAKE distcheck
$MAKE distclean
:
|