From 6f1e9c45cf67d84c3822c984d18f2501bd0afd95 Mon Sep 17 00:00:00 2001 From: Adam Spiers Date: Sun, 8 Sep 2024 14:52:49 +0100 Subject: [PATCH 1/3] update to autoconf 2.72 --- aclocal.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index 6d04fca..53cbb40 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -14,8 +14,8 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -[m4_warning([this file was generated for autoconf 2.71. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, +[m4_warning([this file was generated for autoconf 2.72. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) From 70173b520d36e0f333a44773dc6cf513156a1d7a Mon Sep 17 00:00:00 2001 From: Adam Spiers Date: Sun, 8 Sep 2024 15:09:30 +0100 Subject: [PATCH 2/3] INSTALL.md: move clean-up to a separate section It's not part of the install process. --- INSTALL.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index a85ad87..663c426 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -105,13 +105,6 @@ The steps in building Stow are: line into the generated stow script to ensure that it can always locate the Perl modules without needing to manually set `PERL5LIB`. -4. You can remove the generated files from the source code directory - by typing `make clean`. To also remove the files that `configure` - created (so you can compile the package for a different computer), - type `make distclean`. There is also a `make maintainer-clean` - target, but that is intended mainly for stow's developers. If you - use it, you may have to get all sorts of other programs in order - to regenerate files that came with the distribution. Installation Names ------------------ @@ -193,6 +186,17 @@ operates. `configure` also accepts some other, not widely useful, options. +Cleaning up build files +----------------------- + +You can remove the generated files from the source code directory by +typing `make clean`. To also remove the files that `configure` +created (so you can compile the package for a different computer), +type `make distclean`. There is also a `make maintainer-clean` +target, but that is intended mainly for stow's developers. If you use +it, you may have to get all sorts of other programs in order to +regenerate files that came with the distribution. + License for this file --------------------- From 6d705e70469b852a7c0d46ec3e7d2fb70a875642 Mon Sep 17 00:00:00 2001 From: Adam Spiers Date: Sun, 8 Sep 2024 14:51:58 +0100 Subject: [PATCH 3/3] make build of PDF optional to avoid LaTeX dependency Fixes #95. --- INSTALL.md | 14 ++++++++++++-- Makefile.am | 6 ++++-- NEWS | 9 +++++++++ doc/HOWTO-RELEASE | 1 + 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 663c426..33143d3 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -71,9 +71,15 @@ The steps in building Stow are: to avoid a superfluous `use lib` line in your stow executable. -3. Type `perl Build.PL`. +3. If you have LaTeX and texinfo installed and want to build a PDF + version of the manual, type: -4. Type `./Build install` to install the various files. As noted + make pdf + +4. Type `perl Build.PL`. If you skipped step 3 and see a warning + about `manual.pdf` being missing, you can safely ignore it. + +5. Type `./Build install` to install the various files. As noted above, this installs fewer files than the Autotools installation. Basic Installation via Autotools @@ -105,6 +111,10 @@ The steps in building Stow are: line into the generated stow script to ensure that it can always locate the Perl modules without needing to manually set `PERL5LIB`. +4. If you have LaTeX and texinfo installed and want to build a PDF + version of the manual, type: + + make pdf Installation Names ------------------ diff --git a/Makefile.am b/Makefile.am index 96eedb1..75d9be9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,7 +22,7 @@ PDF = doc/manual.pdf HTML = doc/manual-single.html dist_doc_DATA = \ README.md INSTALL.md \ - $(PDF) $(HTML) doc/version.texi \ + $(HTML) doc/version.texi \ ChangeLog doc/ChangeLog.OLD # automake magic to define where *_DATA files get installed: @@ -97,7 +97,7 @@ $(TESTS_OUT): CPAN_FILES = MANIFEST MANIFEST.SKIP Build.PL META.yml META.json EXTRA_DIST = \ bin/stow.in bin/chkstow.in lib/Stow.pm.in lib/Stow/Util.pm.in \ - doc/manual-split \ + $(PDF) doc/manual-split \ $(TESTS) t/testutil.pm \ $(DEFAULT_IGNORE_LIST) \ $(CPAN_FILES) @@ -237,6 +237,8 @@ $(HTML): $(doc_deps) -c USE_TITLEPAGE_FOR_TITLE=1 --no-split -o $@ \ `test -f 'doc/stow.texi' || echo '$(srcdir)/'`doc/stow.texi +pdf: $(PDF) + $(PDF): $(doc_deps) TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ diff --git a/NEWS b/NEWS index 84148de..4706fe7 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,15 @@ News file for Stow. --target="$HOME/dir with space in/file with space in" --ignore=\\$FOO\\$ +*** Make dependency on LaTeX optional + + Previously, the installation instructions always built a PDF + version of the manual, which required having LaTeX installed. + However LaTeX is a large program which can be awkward to install, + so this has now been made optional, and by default the PDF manual + is not part of the build. It can still be built via =make pdf=, + and this is documented. + *** Fix Docker builds. Fix the return error 100 that was happening when trying to run diff --git a/doc/HOWTO-RELEASE b/doc/HOWTO-RELEASE index d810582..d27baea 100644 --- a/doc/HOWTO-RELEASE +++ b/doc/HOWTO-RELEASE @@ -38,6 +38,7 @@ Release procedure eval `perl -V:siteprefix` automake --add-missing ./configure --prefix=$siteprefix && make + make pdf (N.B. the CPAN distribution will contain these files, whereas the GNU distribution will not.)