Go back to requiring only Perl 5.6+ for users
[autoconf.git] / lib / local.mk
blob000cbf39c70ea669c53275661ea2da69106f7a44
1 # Make Autoconf-related libraries.
3 # Copyright (C) 2001-2005, 2009-2017, 2020-2023 Free Software
4 # Foundation, Inc.
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <https://www.gnu.org/licenses/>.
19 ETAGS_ARGS += $(ETAGS_FOR_AUTOCONF)
20 TAGS_FILES = # Incrementally updated later.
22 # Additional checks.
23 check-local: check-forbidden-patterns
24 forbidden_patterns = -e '^_*EOF' -e ' cmp '
25 forbidden_patterns_files = # Incrementally updated later.
27 ## ---------------------------------------------------------------- ##
28 ## Auxiliary perl modules used by autom4te and other perl scripts. ##
29 ## ---------------------------------------------------------------- ##
31 perllibdir = $(pkgdatadir)/Autom4te
33 dist_perllib_DATA = \
34 lib/Autom4te/C4che.pm \
35 lib/Autom4te/ChannelDefs.pm \
36 lib/Autom4te/Channels.pm \
37 lib/Autom4te/Config.pm \
38 lib/Autom4te/Configure_ac.pm \
39 lib/Autom4te/FileUtils.pm \
40 lib/Autom4te/General.pm \
41 lib/Autom4te/Getopt.pm \
42 lib/Autom4te/Request.pm \
43 lib/Autom4te/XFile.pm
45 TAGS_FILES += $(dist_perllib_DATA)
46 # Note: ETAGS_ARGS should have already been extended to handle perl files.
48 ## ------------------------------------------ ##
49 ## Make Autom4te default configuration file. ##
50 ## ------------------------------------------ ##
52 nodist_pkgdata_DATA = lib/autom4te.cfg
53 EXTRA_DIST += lib/autom4te.in
55 # All the files below depend on Makefile so that they are rebuilt
56 # when the prefix, etc. changes. Unfortunately, suffix rules
57 # cannot have additional dependencies, so we have to use explicit rules.
58 CLEANFILES += lib/autom4te.cfg
59 lib/autom4te.cfg: $(srcdir)/lib/autom4te.in Makefile
60 rm -f $@ $@-t
61 $(MKDIR_P) $(@D)
62 $(edit) $(srcdir)/lib/autom4te.in >$@-t
63 chmod a-w $@-t
64 mv -f $@-t $@
66 ## ----------------------------- ##
67 ## Make Autoconf Emacs library. ##
68 ## ----------------------------- ##
70 dist_lisp_LISP = lib/emacs/autoconf-mode.el lib/emacs/autotest-mode.el
72 # TODO: This is required to work around a limitation in older
73 # Automake. Remove once we can assume Automake 1.13 or later.
74 CLEANFILES += autoconf-mode.elc autotest-mode.elc
76 ## ----------------------- ##
77 ## Make Autoconf library. ##
78 ## ----------------------- ##
80 autoconflibdir = $(pkgdatadir)/autoconf
82 dist_autoconflib_DATA = \
83 lib/autoconf/autoconf.m4 \
84 lib/autoconf/general.m4 \
85 lib/autoconf/status.m4 \
86 lib/autoconf/oldnames.m4 \
87 lib/autoconf/specific.m4 \
88 lib/autoconf/autoheader.m4 \
89 lib/autoconf/autoupdate.m4 \
90 lib/autoconf/autotest.m4 \
91 lib/autoconf/autoscan.m4 \
92 lib/autoconf/lang.m4 \
93 lib/autoconf/c.m4 \
94 lib/autoconf/erlang.m4 \
95 lib/autoconf/fortran.m4 \
96 lib/autoconf/functions.m4 \
97 lib/autoconf/go.m4 \
98 lib/autoconf/headers.m4 \
99 lib/autoconf/types.m4 \
100 lib/autoconf/libs.m4 \
101 lib/autoconf/programs.m4 \
102 lib/autoconf/trailer.m4
104 nodist_autoconflib_DATA = lib/autoconf/autoconf.m4f
105 CLEANFILES += $(nodist_autoconflib_DATA)
107 TAGS_FILES += $(dist_autoconflib_DATA)
109 forbidden_patterns_files += $(dist_autoconflib_DATA)
111 lib/autoconf/autoconf.m4f: $(autoconf_m4f_dependencies)
113 ## ------------------------ ##
114 ## Make Autoscan library. ##
115 ## ------------------------ ##
117 autoscanlibdir = $(pkgdatadir)/autoscan
119 EXTRA_DIST += lib/autoscan/autoscan.pre
120 nodist_autoscanlib_DATA = lib/autoscan/autoscan.list
121 CLEANFILES += lib/autoscan/autoscan.list
123 lib/autoscan/autoscan.list: $(srcdir)/lib/autoscan/autoscan.pre
124 $(MKDIR_P) $(@D)
125 echo '# Automatically Generated: do not edit this file' >$@
126 sed '/^[#]/!q' $(srcdir)/lib/autoscan/autoscan.pre >>$@
128 sed -n '/^[^#]/p' $(srcdir)/lib/autoscan/autoscan.pre; \
129 $(MY_AUTOM4TE) --cache '' -M -l autoconf-without-aclocal-m4 \
130 -t'AN_OUTPUT:$$1: $$2 $$3' \
131 ) | LC_ALL=C sort >>$@
133 lib/autoscan/autoscan.list: $(autoconf_m4f_dependencies) Makefile
135 ## ----------------------------------- ##
136 ## Make Autoconf library for M4sugar. ##
137 ## ----------------------------------- ##
139 m4sugarlibdir = $(pkgdatadir)/m4sugar
141 dist_m4sugarlib_DATA = \
142 lib/m4sugar/m4sugar.m4 \
143 lib/m4sugar/foreach.m4 \
144 lib/m4sugar/m4sh.m4
146 nodist_m4sugarlib_DATA = \
147 lib/m4sugar/m4sugar.m4f \
148 lib/m4sugar/m4sh.m4f
150 nodist_pkgdata_DATA += \
151 lib/version.m4
153 CLEANFILES += $(nodist_m4sugarlib_DATA) $(nodist_pkgdata_DATA)
154 TAGS_FILES += $(dist_m4sugarlib_DATA)
156 forbidden_patterns_files += $(dist_m4sugarlib_DATA)
158 lib/m4sugar/m4sugar.m4f: $(m4sugar_m4f_dependencies)
159 lib/m4sugar/m4sh.m4f: $(m4sh_m4f_dependencies)
161 ## ----------------------- ##
162 ## Make Autotest library. ##
163 ## ----------------------- ##
165 autotestlibdir = $(pkgdatadir)/autotest
167 dist_autotestlib_DATA = \
168 lib/autotest/autotest.m4 \
169 lib/autotest/general.m4 \
170 lib/autotest/specific.m4
172 nodist_autotestlib_DATA = lib/autotest/autotest.m4f
173 CLEANFILES += $(nodist_autotestlib_DATA)
175 TAGS_FILES += $(dist_autotestlib_DATA)
177 forbidden_patterns_files += $(dist_autotestlib_DATA)
179 lib/autotest/autotest.m4f: $(autotest_m4f_dependencies)
181 ## --------------------------- ##
182 ## Install auxiliary scripts. ##
183 ## --------------------------- ##
185 # These are declared as _DATA so that they are not subject to
186 # --program-transform-name; $(pkgdatadir) is sufficient to keep
187 # multiple installations separate, and autoreconf looks for them by
188 # their unadorned names. However, autoreconf copies the executable
189 # bit when it copies these files into a source tree, and _DATA items
190 # are installed as not-executable, so we have to make them executable
191 # in a hook rule.
193 AUXSCRIPTS = \
194 build-aux/config.guess \
195 build-aux/config.sub \
196 build-aux/install-sh
198 buildauxdir = $(pkgdatadir)/build-aux
199 dist_buildaux_DATA = \
200 $(AUXSCRIPTS)
202 install-data-hook: install-data-hook-make-aux-scripts-executable
203 install-data-hook-make-aux-scripts-executable:
204 for s in $(AUXSCRIPTS); do \
205 chmod +x "$(DESTDIR)$(pkgdatadir)/$$s"; \
206 done
208 .PHONY: install-data-hook install-data-hook-make-aux-scripts-executable