Mercurial > octave
changeset 22077:df50d42d4b1b
build: build doc-cache and DOCSTRINGS files in the build dir
* libinterp/module.mk (libinterp/DOCSTRINGS): Build in the build directory,
allow vpath builds to find it in $(srcdir).
(install-built-in-docstrings): Use file in $(srcdir) if it doesn't exist in
the current directory.
* scripts/module.mk (scripts/DOCSTRINGS): Build in the build directory,
allow vpath builds to find it in $(srcdir).
* run-octave.in: Use doc-cache and DOCSTRINGS in $(srcdir) if they don't exist
in the current directory.
* doc/interpreter/mk_doc_cache.m: Add an argument for the source directory.
Apply it to each of the DOCSTRINGS input files if they don't exist in the
current directory.
* doc/interpreter/munge-texi.pl: Apply $top_srcdir to each of the DOCSTRINGS
input files if they don't exist in the current directory.
* doc/interpreter/module.mk (doc/interpreter/doc-cache): Call mk_doc_cache.m
with additional $(srcdir) argument.
author | Mike Miller <mtmiller@octave.org> |
---|---|
date | Fri, 08 Jul 2016 10:01:24 -0700 |
parents | d9643bc3792a |
children | ce69151a2d1b |
files | doc/interpreter/mk_doc_cache.m doc/interpreter/module.mk doc/interpreter/munge-texi.pl libinterp/module.mk run-octave.in scripts/module.mk |
diffstat | 6 files changed, 37 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/interpreter/mk_doc_cache.m Thu Jul 07 19:06:09 2016 -0700 +++ b/doc/interpreter/mk_doc_cache.m Fri Jul 08 10:01:24 2016 -0700 @@ -16,12 +16,13 @@ args = argv (); -if (nargin < 2) - error ("usage: mk_doc_cache OUTPUT-FILE DOCSTRINGS-FILE ..."); +if (nargin < 3) + error ("usage: mk_doc_cache OUTPUT-FILE SRCDIR DOCSTRINGS-FILE ..."); endif output_file = args{1}; -docstrings_files = args(2:end); +top_srcdir = args{2}; +docstrings_files = args(3:end); ## Special character used as break between DOCSTRINGS doc_delim = char (0x1d); @@ -33,8 +34,13 @@ text = cell (1, nfiles); for i = 1:nfiles file = docstrings_files{i}; + ## DOCSTRINGS files may exist in the current (build) directory or in the + ## source directory when building from a release. fid = fopen (file, "r"); if (fid < 0) + fid = fopen (fullfile (top_srcdir, file), "r"); + endif + if (fid < 0) error ("unable to open %s for reading", file); else tmp = fread (fid, Inf, "*char")';
--- a/doc/interpreter/module.mk Thu Jul 07 19:06:09 2016 -0700 +++ b/doc/interpreter/module.mk Fri Jul 08 10:01:24 2016 -0700 @@ -290,7 +290,7 @@ doc/interpreter/doc-cache: $(DOCSTRING_FILES) doc/interpreter/mk_doc_cache.m | $(OCTAVE_INTERPRETER_TARGETS) doc/interpreter/$(octave_dirstamp) $(AM_V_GEN)rm -f $@-t $@ && \ - $(SHELL) run-octave --norc --silent --no-history $(srcdir)/doc/interpreter/mk_doc_cache.m - $(srcdir)/doc/interpreter/macros.texi $(DOCSTRING_FILES) > $@-t && \ + $(SHELL) run-octave --norc --silent --no-history $(srcdir)/doc/interpreter/mk_doc_cache.m - $(srcdir) $(srcdir)/doc/interpreter/macros.texi $(DOCSTRING_FILES) > $@-t && \ mv $@-t $@ $(MUNGED_TEXI_SRC): $(DOCSTRING_FILES)
--- a/doc/interpreter/munge-texi.pl Thu Jul 07 19:06:09 2016 -0700 +++ b/doc/interpreter/munge-texi.pl Fri Jul 08 10:01:24 2016 -0700 @@ -16,7 +16,12 @@ # Load DOCSTRINGS into memory while expanding @seealso references foreach $DOCSTRING_file (@ARGV) { - open (DOCFH, $DOCSTRING_file) or die "Unable to open $DOCSTRING_file\n"; + ## DOCSTRINGS files may exist in the current (build) directory or in the + ## source directory when building from a release. + $DOCSTRING_file_srcdir = "$top_srcdir/$DOCSTRING_file"; + + open (DOCFH, $DOCSTRING_file) or open (DOCFH, $DOCSTRING_file_srcdir) + or die "Unable to open $DOCSTRING_file\n"; # Skip comments while (defined ($_ = <DOCFH>) and /$comment_line/o) {;}
--- a/libinterp/module.mk Thu Jul 07 19:06:09 2016 -0700 +++ b/libinterp/module.mk Fri Jul 08 10:01:24 2016 -0700 @@ -79,7 +79,7 @@ libinterp/builtins.cc libinterp_EXTRA_DIST += \ - $(srcdir)/libinterp/DOCSTRINGS \ + libinterp/DOCSTRINGS \ libinterp/build-env.in.cc \ libinterp/build-env-features.sh \ libinterp/find-defun-files.sh \ @@ -271,9 +271,9 @@ mv $@-t $@ endif -DOCSTRING_FILES += $(srcdir)/libinterp/DOCSTRINGS +DOCSTRING_FILES += libinterp/DOCSTRINGS -$(srcdir)/libinterp/DOCSTRINGS: $(ALL_DEFUN_FILES) | libinterp/$(octave_dirstamp) +libinterp/DOCSTRINGS: $(ALL_DEFUN_FILES) | libinterp/$(octave_dirstamp) $(AM_V_GEN)rm -f libinterp/DOCSTRINGS-t && \ $(PERL) $(srcdir)/libinterp/gendoc.pl "$(srcdir)" $(ALL_DEFUN_FILES) > libinterp/DOCSTRINGS-t && \ $(call move_if_change_rule,libinterp/DOCSTRINGS-t,$@) @@ -320,7 +320,9 @@ install-built-in-docstrings: $(MKDIR_P) $(DESTDIR)$(octetcdir) - $(INSTALL_DATA) $(srcdir)/libinterp/DOCSTRINGS $(DESTDIR)$(octetcdir)/built-in-docstrings + f=libinterp/DOCSTRINGS; \ + if test -f $$f; then d=; else d="$(srcdir)/"; fi; \ + $(INSTALL_DATA) "$$d$$f" $(DESTDIR)$(octetcdir)/built-in-docstrings .PHONY: install-built-in-docstrings uninstall-built-in-docstrings: @@ -338,7 +340,7 @@ libinterp/parse-tree/oct-parse.output libinterp_MAINTAINERCLEANFILES += \ - $(srcdir)/libinterp/DOCSTRINGS \ + libinterp/DOCSTRINGS \ $(LIBINTERP_BUILT_DISTFILES) BUILT_DISTFILES += $(LIBINTERP_BUILT_DISTFILES)
--- a/run-octave.in Thu Jul 07 19:06:09 2016 -0700 +++ b/run-octave.in Fri Jul 08 10:01:24 2016 -0700 @@ -51,7 +51,7 @@ LOADPATH="$d1_path:$d2_path:$d3_path:$d4_path" IMAGEPATH="$top_srcdir/scripts/image" DOCFILE="$builddir/doc/interpreter/doc-cache" -BUILT_IN_DOCSTRINGS_FILE="$top_srcdir/libinterp/DOCSTRINGS" +BUILT_IN_DOCSTRINGS_FILE="$builddir/libinterp/DOCSTRINGS" TEXIMACROSFILE="$top_srcdir/doc/interpreter/macros.texi" INFOFILE="$top_srcdir/doc/interpreter/octave.info" @@ -87,6 +87,15 @@ fi done +## DOCSTRINGS and doc-cache files may exist in the current (build) directory +## or in the source directory when building from a release. +if ! [ -e $DOCFILE ]; then + DOCFILE="$top_srcdir/doc/interpreter/doc-cache" +fi +if ! [ -e $BUILT_IN_DOCSTRINGS_FILE ]; then + BUILT_IN_DOCSTRINGS_FILE="$top_srcdir/libinterp/DOCSTRINGS" +fi + ## We set OCTAVE_ARCHLIBDIR so that the wrapper program can find the ## octave-gui program in the build tree. That will fail if we ever ## need Octave to find other things in ARCHLIBDIR that are not built
--- a/scripts/module.mk Thu Jul 07 19:06:09 2016 -0700 +++ b/scripts/module.mk Fri Jul 08 10:01:24 2016 -0700 @@ -103,9 +103,9 @@ $(foreach f, $(GEN_FCN_FILES), $(eval $(call GEN_FCN_FILES_TEMPLATE, $(f)))) -DOCSTRING_FILES += $(srcdir)/scripts/DOCSTRINGS +DOCSTRING_FILES += scripts/DOCSTRINGS -$(srcdir)/scripts/DOCSTRINGS: $(FCN_FILES) $(GEN_FCN_FILES_IN) | scripts/$(octave_dirstamp) +scripts/DOCSTRINGS: $(FCN_FILES) $(GEN_FCN_FILES_IN) | scripts/$(octave_dirstamp) $(AM_V_GEN)rm -f scripts/DOCSTRINGS-t && \ $(PERL) $(srcdir)/scripts/mkdoc.pl "$(srcdir)" $(FCN_FILES) $(GEN_FCN_FILES_IN) > scripts/DOCSTRINGS-t && \ $(call move_if_change_rule,scripts/DOCSTRINGS-t,$@) @@ -182,7 +182,7 @@ $(SCRIPTS_IMAGES) \ $(FCN_FILES) \ $(GEN_FCN_FILES_IN) \ - $(srcdir)/scripts/DOCSTRINGS \ + scripts/DOCSTRINGS \ scripts/mkdoc.pl \ scripts/mk-pkg-add @@ -196,7 +196,7 @@ $(DIRSTAMP_FILES) scripts_MAINTAINERCLEANFILES += \ - $(srcdir)/scripts/DOCSTRINGS + scripts/DOCSTRINGS CLEANFILES += $(scripts_CLEANFILES) DISTCLEANFILES += $(scripts_DISTCLEANFILES)