blob: 265f5383714f92b09b422b6e8068fb4328a47911 [file] [log] [blame]
# Makefile.am for texinfo/info.
#
# Copyright 2002-2026 Free Software Foundation, Inc.
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# no-dist-built-sources is actually in 1.16.4 upward
# could use no-dist-built-sources such that funs.h is not distributed even
# if in BUILT_SOURCES
#no-dist-built-sources
# However, in tests with automake 1.16.5 funs.h does not seems to be
# distributed even without no-dist-built-sources
AUTOMAKE_OPTIONS = 1.16
# Use `ginfo' for building to avoid confusion with the standard `info'
# target. Removes the `g' in the install rule before applying any
# user-specified name transformations.
bin_PROGRAMS = ginfo
transform = s/ginfo/info/; $(program_transform_name)
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/gnulib/lib \
-I$(top_builddir)/gnulib/lib \
-DLOCALEDIR=\"$(datadir)/locale\" \
-DINFODIR=\"$(infodir)\" \
-DINFODIR2=\"$(datadir)/info\" \
-DSYSCONFDIR=\"$(sysconfdir)\" \
-DPKGDATADIR=\"$(pkgdatadir)\"
LDADD = $(top_builddir)/gnulib/lib/libgnu.a $(TERMLIBS)
# for various gnulib modules
LDADD += $(LIBINTL) $(LIBICONV) $(LIBC32CONV) $(LIBUNISTRING) $(LIBTHREAD)
# for hard-locale gnulib module which is brought in indirectly
LDADD += $(HARD_LOCALE_LIB) $(SETLOCALE_NULL_LIB)
# for mbrtowc gnulib module which is brought in indirectly
LDADD += $(MBRTOWC_LIB)
# Needed if make has not run in the "gnulib" directory yet
../gnulib/lib/libgnu.a:
cd ../gnulib/lib && $(MAKE) $(AM_MAKEFLAGS)
EXTRA_DIST = pcterm.c
ginfo_SOURCES = configfiles.c configfiles.h dir.c display.c display.h \
doc.h dribble.c dribble.h echo-area.c echo-area.h \
filesys.c filesys.h footnotes.c footnotes.h indices.c indices.h \
info.c info.h infodoc.c infokey.c infomap.c infomap.h infopath.c \
m-x.c man.c man.h nodemenu.c nodes.c nodes.h \
run-external.c run-external.h scan.c scan.h \
search.c search.h session.c session.h session-cmd.c signals.c signals.h \
tag.c tag.h termdep.h terminal.c terminal.h tilde.c tilde.h \
util.c util.h variables.c variables.h window.c window.h
nodist_ginfo_SOURCES = doc.c funs.h
# The files `doc.c' and `funs.h' are created by ./makedoc run over the
# source files which contain DECLARE_INFO_COMMAND. `funs.h' is a header file
# listing the functions found. `doc.c' is a structure containing pointers
# to those functions along with completable names and documentation strings.
#
generated_sources = doc.c funs.h
# We need a linear ordering to prevent race condition in parallel make.
# See the node ``(automake)Multiple Outputs'' for an explanation.
# Make sure this matches with order in which makedoc.c creates these
# files.
doc.c: funs.h
# These files are not distributed.
DISTCLEANFILES = $(generated_sources)
noinst_PROGRAMS = makedoc
makedoc_SOURCES = makedoc.c
# Files with Info commands defined that makedoc should read.
cmd_sources = $(srcdir)/session-cmd.c $(srcdir)/echo-area.c \
$(srcdir)/infodoc.c $(srcdir)/m-x.c $(srcdir)/indices.c \
$(srcdir)/nodemenu.c $(srcdir)/footnotes.c $(srcdir)/variables.c
# Make the target only funs.h even though we create all the
# $(generated_sources) so that parallel makes won't do the rm && makedoc
# more than once.
funs.h: makedoc$(EXEEXT) $(cmd_sources)
rm -f $(generated_sources)
$(top_builddir)/$(native_tools)/info/makedoc $(cmd_sources)
# The following hack is necessary to hint make before the automatic
# dependencies are built.
BUILT_SOURCES = funs.h
# Test suite
CLEANFILES =
info_tests_with_pseudotty = \
t/adjust-anchors.sh \
t/all-only.sh \
t/anchor-positions.sh \
t/body-start.sh \
t/close-window-after-search.sh \
t/c-u-m-x-scroll-forward.sh \
t/dir-entry-to-subdir.sh \
t/dir-merge.sh \
t/echo-area-no-completions.sh \
t/empty-infopath.sh \
t/end-of-line.sh \
t/follow-path.sh \
t/follow-remain.sh \
t/follow-remain-other-dir.sh \
t/gc-split.sh \
t/goal-column.sh \
t/goto-quoted.sh \
t/inc-sea-bs.sh \
t/inc-sea-forward-nonregex.sh \
t/inc-sea-forward.sh \
t/inc-sea-history.sh \
t/inc-sea-insensitive.sh \
t/index-apropos.sh \
t/index-completing.sh \
t/index-long-nodeline.sh \
t/index-search.sh \
t/index.sh \
t/last-node-not-top-level.sh \
t/last-no-history.sh \
t/malformed-split.sh \
t/menu-sequence.sh \
t/multiple-completions.sh \
t/next-quoted.sh \
t/no-index.sh \
t/quoted-label-and-target.sh \
t/quoted-label-as-target.sh \
t/quoted-manual-in-label.sh \
t/quoted-manual-in-target.sh \
t/quoted-target.sh \
t/recode-C-locale.sh \
t/relative-reference.sh \
t/replace-viewed.sh \
t/resize-in-completions.sh \
t/search-after-tag.sh \
t/search-empty.sh \
t/search-skip-screen.sh \
t/search-split-after-index.sh \
t/split-file-menu.sh \
t/split-footnotes.sh \
t/split-index.sh \
t/star-note-non-whitespace.sh \
t/tab-argument.sh \
t/tab-no-xref.sh \
t/tab.sh \
t/tab-skip-node.sh \
t/window-split-dir.sh \
t/xref-across-lines-2.sh \
t/xref-across-lines.sh \
t/xref-to-anchor.sh
info_tests = \
t/file.sh \
t/file-node.sh \
t/file-nodes.sh \
t/file-node-with-dot.sh \
t/file-index.sh \
t/file-index-colons.sh \
t/file-file-with-dot.sh \
t/no-file.sh \
t/node-no-file.sh \
t/split.sh \
t/relative-path.sh \
t/file-relative-path.sh \
t/dir.sh \
t/dir-file.sh \
t/dir-file-sloppily.sh \
t/dir-nondir.sh \
t/dir-no-file.sh \
t/dir-file-menu.sh \
t/dir-file-no-menu.sh \
t/dir-file-node.sh \
t/dir-file-index.sh \
t/dir-3-menus.sh \
t/dir-menus-sloppily.sh \
t/where-dir-file.sh \
t/dir-dangling-entry.sh \
t/spec-file-node.sh \
t/spec-no-node.sh \
t/spec-menu.sh \
t/empty.sh \
t/index-paren.sh \
t/help.sh
TESTS = $(info_tests)
if PTYS_TESTS
check_PROGRAMS = pseudotty
pseudotty_SOURCES = pseudotty.c
TESTS += $(info_tests_with_pseudotty)
else
CLEANFILES += pseudotty
endif
EXTRA_DIST += $(info_tests) $(info_tests_with_pseudotty) $(XFAIL_TESTS) \
t/README t/infodir \
t/Init-test.inc \
t/config/texinfo/infokey t/node-target
dist_check_SCRIPTS = t/config/texinfo/info-hooks/manual-not-found
# for MS-Windows
dist_check_SCRIPTS += t/config/texinfo/info-hooks/manual-not-found.cmd
dist-hook:
rm -rf `find $(distdir)/t/infodir -name '*~'`
hooksdir=$(datadir)/texinfo/info-hooks
EXTRA_DIST += info-hooks-default/manual-not-found.in
hooks_SCRIPTS = info-hooks-default/manual-not-found
if HOST_IS_WINDOWS
hooks_SCRIPTS += info-hooks-default/manual-not-found.cmd
else
EXTRA_DIST += info-hooks-default/manual-not-found.cmd
endif
CLEANFILES += info-hooks-default/manual-not-found
info-hooks-default/manual-not-found: info-hooks-default/manual-not-found.in
$(MKDIR_P) info-hooks-default
sed -e 's,[@]AWK[@],$(AWK),g' \
-e 's,# manual-not-found.in,# Automatically generated from manual-not-found.in,' \
<$(srcdir)/info-hooks-default/manual-not-found.in >$@
chmod a+x $@
dist_hooks_DATA = \
info-hooks-default/gnu-manuals-locations.dat
if HOST_IS_WINDOWS
dist_hooks_DATA += info-hooks-default/gnu-manuals.awk
else
EXTRA_DIST += info-hooks-default/gnu-manuals.awk
endif