1 dnl Copyright © 2021-2023 Nick Bowler
3 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
4 dnl This is free software: you are free to do what the fuck you want to.
5 dnl There is NO WARRANTY, to the extent permitted by law.
7 AT_BANNER([Automake snippet tests])
9 m4_define([TEST_DEPFILES_INIT],
11 [[AM_INIT_AUTOMAKE([foreign])
16 AM_OUTPUT_DEPENDENCY_COMMANDS
20 AC_CONFIG_FILES([Makefile])
23 cp "$srcdir/snippet/autotest.mk" .
24 AT_DATA([Makefile.am],
27 include $(top_srcdir)/autotest.mk
32 AT_SETUP([autotest.mk depfiles (MAKE=gmake)])
37 AT_CHECK([{ echo 'rule:; @: $(info works)' |
38 gmake --no-print-directory -f - >out 2>/dev/null &&
39 read s <out && test x"$s" = x"works"; } || exit 77])
42 AT_CHECK([cd build && ../configure MAKE=gmake && test -f .deps/testsuite.P],
44 AT_CHECK([gmake --no-print-directory -sC build distclean &&
49 AT_SETUP([autotest.mk depfiles (MAKE=dmake)])
54 AT_CHECK([{ echo 'rule:; @echo works' | dmake -f - >out 2>/dev/null &&
55 read s <out && test x"$s" = x"works"; } || exit 77])
57 AT_CHECK([./configure MAKE=dmake && test -f .deps/testsuite.P], [0], [ignore])
61 AT_SETUP([autotest.mk no depfiles])
64 [[AM_INIT_AUTOMAKE([foreign])
67 AM_OUTPUT_DEPENDENCY_COMMANDS
72 AM_CONDITIONAL([HAVE_AUTOTEST], [:])
74 AC_CONFIG_FILES([Makefile])
77 cp "$srcdir/snippet/autotest.mk" .
78 AT_DATA([Makefile.am],
81 include $(top_srcdir)/autotest.mk
85 TEST_CONFIGURE([--disable-dependency-tracking])
87 AT_DATA([testsuite.at])
88 AT_CHECK([make -s AUTOTEST="$srcdir/t/autotest.sh" testsuite])
92 AT_SETUP([glconfig.mk no depfiles])
95 [[AM_INIT_AUTOMAKE([foreign])
98 AM_OUTPUT_DEPENDENCY_COMMANDS
103 AC_SUBST([GLSRC], [lib])
105 AC_CONFIG_FILES([Makefile])
108 cp "$srcdir/snippet/glconfig.mk" .
109 AT_DATA([Makefile.am],
113 include $(top_srcdir)/glconfig.mk
117 TEST_CONFIGURE([--disable-dependency-tracking])
118 AT_CHECK([make -s lib/glconfig.h])
119 AT_CHECK([test ! -d lib/.deps && test ! -d lib/_deps && cat lib/glconfig.h])
123 AT_SETUP([gettext.mk .mo installation])
125 cp "$srcdir/snippet/gettext.mk" "$srcdir/t/msgfmt.sh" .
128 [[AM_INIT_AUTOMAKE([foreign])
129 AC_CONFIG_FILES([Makefile])
132 AT_DATA([Makefile.am],
133 [[MSGFMT = $(SHELL) $(top_srcdir)/msgfmt.sh
135 MAINTAINERCLEANFILES =
138 include $(top_srcdir)/gettext.mk
143 (cd build && TEST_CONFIGURE([--prefix="$at_group_dir/inst"], [../configure]))
145 AT_CHECK([cd build &&
146 make DESTDIR="$at_group_dir" localedir=/l0 install],
147 [0], [ignore], [ignore])
148 AT_CHECK([test -d inst || { find l0 | LC_ALL=C sort; }], [0],
152 l0/a/LC_MESSAGES/test.mo
155 l0/b/LC_MESSAGES/test.mo
158 AT_CHECK([cd build &&
159 make DESTDIR="$at_group_dir" localedir=/l1 installdirs],
160 [0], [ignore], [ignore])
161 AT_CHECK([test -d inst || { find l1 | LC_ALL=C sort; }], [0],
169 AT_CHECK([cd build &&
170 make DESTDIR="$at_group_dir" localedir=/l2 MOFILES= install installdirs],
171 [0], [ignore], [ignore])
172 AT_CHECK([test ! -d inst && test ! -d l2])
174 AT_CHECK([cd build &&
175 make DESTDIR="$at_group_dir" localedir=/l0 MOFILES= uninstall],
176 [0], [ignore], [ignore])
177 AT_CHECK([test -d inst || { find l0 | LC_ALL=C sort; }], [0],