From a6655646d42c33ac9c8c14716c1b61617e04a8bf Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 23 Feb 1997 19:41:20 +0000 Subject: [PATCH] allow texinfo files w/o .info extension --- ChangeLog | 13 ++++++ NEWS | 1 + TODO | 7 ++++ automake.in | 63 +++++++++++++++++++++------- automake.texi | 118 ++++++++++++++++++++++++++-------------------------- lib/am/texinfos.am | 18 ++++++++ tests/ChangeLog | 9 ++++ tests/Makefile.am | 2 +- tests/Makefile.in | 33 +++++++-------- tests/canon2.test | 4 +- tests/info.test | 2 +- tests/mdate.test | 1 + tests/mdate2.test | 1 + tests/texinfo.test | 2 +- tests/texinfo2.test | 2 +- tests/texinfo3.test | 16 +++++++ tests/texinfo4.test | 15 +++++++ tests/vtexi.test | 1 + tests/vtexi2.test | 1 + texinfos.am | 18 ++++++++ version.texi | 2 +- 21 files changed, 229 insertions(+), 100 deletions(-) create mode 100755 tests/texinfo3.test create mode 100755 tests/texinfo4.test diff --git a/ChangeLog b/ChangeLog index 1a378e3..e032f51 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,14 @@ Sun Feb 23 00:10:36 1997 Tom Tromey + * texinfos.am (.texi, .texinfo): New targets. + + * automake.in (scan_texinfo_file): Renamed. + (handle_texinfo): Handle files without ".info" extension. + * automake.in (handle_subdirs): Error if directory contains "/". + (handle_yacc_lex_cxx): Quoting fix. + (handle_single_transform_list): Use transformed (non-ansi) version + of $obj instead of explicit ".o". From Gord Matzigkeit. * m4/sanity.m4: Pass -L to ls if possible. @@ -62,6 +70,11 @@ Sun Jan 26 17:46:08 1997 Tom Tromey * texinfos.am (.texi.info): If --cygnus, set -I $(srcdir). From Per Bothner. +Sun Jan 12 18:28:16 1997 Fred Fish (fnf@ninemoons.com) + + * automake.in: Use 'interlock' and 'ylwrap' from source + directory or aux config directory, not build directory. + Tue Jan 7 18:35:10 1997 Tom Tromey * aclocal.in (parse_arguments): Handle -I. diff --git a/NEWS b/NEWS index 982d876..e8ef99a 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,7 @@ New in 1.1m: * Full libtool support, from Gord Matzigkeit * No longer have to explicitly touch stamp-h when using AC_CONFIG_HEADER; AM_CONFIG_HEADER handles it automatically +* Texinfo output files no longer need .info extension New in 1.0: * Bug fixes diff --git a/TODO b/TODO index a8496b9..f71c718 100644 --- a/TODO +++ b/TODO @@ -13,6 +13,11 @@ non-C source in a libtool library specification. ================================================================ +should clean up texinfos.am; one rule is repeated 3 times, but +shouldn't be + +should always use perl -w + rewrite in guile * finish up TAGS work @@ -322,6 +327,8 @@ containing application. Document: +SUBDIR entry must be direct subdir of this dir + C++ -vs- yacc/lex multi-":" mode in AC_OUTPUT -- automake only looks at the first file diff --git a/automake.in b/automake.in index 79438f5..e4c5df6 100755 --- a/automake.in +++ b/automake.in @@ -786,8 +786,16 @@ sub handle_yacc_lex_cxx # required to allow parallel builds to work correctly. FIXME: # for now, no line number. &require_config_file ($FOREIGN, 'interlock', 'ylwrap'); - &define_variable ('INTERLOCK', $config_aux_dir . "/interlock"); - &define_variable ('YLWRAP', $config_aux_dir . "/ylwrap"); + if ($config_aux_dir ne '.' && $config_aux_dir ne '') + { + &define_variable ('INTERLOCK', $config_aux_dir . "/interlock"); + &define_variable ('YLWRAP', $config_aux_dir . "/ylwrap"); + } + else + { + &define_variable ('INTERLOCK', '$(srcdir)/interlock'); + &define_variable ('YLWRAP', '$(srcdir)/ylwrap'); + } } # @@ -819,7 +827,7 @@ sub handle_yacc_lex_cxx $output_rules .= ("$ext.o:\n" . "\t\$(CXXCOMPILE) -c \$<\n"); $output_rules .= ("$ext.lo:\n" - . "\t\$(LIBTOOL) --mode=compile $(CXXCOMPILE) -c \$<\n") + . "\t\$(LIBTOOL) --mode=compile \x$(CXXCOMPILE) -c \$<\n") if ($seen_libtool); } @@ -959,6 +967,8 @@ sub handle_single_transform_list local (@files) = @_; local ($linker) = ''; local (@result) = (); + local ($nonansi_obj) = $obj; + $nonansi_obj =~ s/_//g; if (length (@files)) { # Turn sources into objects. @@ -1000,12 +1010,12 @@ sub handle_single_transform_list # Transform source files into .o files. List of C++ # extensions comes from Emacs 19.34 etags. - if (s/\.(c\+\+|cc|cpp|cxx|C)$/.o/) + if (s/\.(c\+\+|cc|cpp|cxx|C)$/$nonansi_obj/) { $cxx_extensions{'.' . $1} = 1; $linker = 'CXXLINK'; } - elsif (s/\.(yy|y\+\+|yxx|ll|l\+\+|lxx)$/\.o/) + elsif (s/\.(yy|y\+\+|yxx|ll|l\+\+|lxx)$/$nonansi_obj/) { # Compiling lex or yacc with C++ local ($ext) = $1; @@ -1013,11 +1023,11 @@ sub handle_single_transform_list $cxx_extensions{".$ext"} = 1; $linker = 'CXXLINK'; } - elsif (s/\.([Ff]\\|f90\\|for)$/.o/) + elsif (s/\.([Ff]\\|f90\\|for)$/$nonansi_obj/) { # FORTRAN support. FIXME: not finished. } - elsif (s/\.[sS]$/.o/) + elsif (s/\.[sS]$/$nonansi_obj/) { # .s is assembly. Just rewrite it. FIXME: not finished. } @@ -1547,7 +1557,7 @@ sub handle_scripts # of the include file if found, or the empty string if not. A # "version.texi" file is actually any file whose name matches # "vers*.texi". -sub grep_for_vers_texi +sub scan_texinfo_file { local ($filename) = @_; @@ -1558,18 +1568,25 @@ sub grep_for_vers_texi } print "automake: reading $filename\n" if $verbose; + local ($vfile, $outfile); while () { + if (/^\@setfilename +(\S+)/) + { + $outfile = $1; + last if ($vfile); + } + if (/^\@include\s+(vers[^.]*\.texi)\s*$/) { - # Found it. - close (TEXI); - return $1; + # Found version.texi include. + $vfile = $1; + last if $outfile; } } close (TEXI); - return ''; + return ($outfile, $vfile); } # Handle all Texinfo source. @@ -1597,8 +1614,22 @@ sub handle_texinfo # If 'version.texi' is referenced by input file, then include # automatic versioning capability. - local ($vtexi) - = &grep_for_vers_texi ($relative_dir . "/" . $info_cursor); + local ($out_file, $vtexi) = &scan_texinfo_file ($relative_dir + . "/" . $info_cursor); + + if ($out_file eq '') + { + &am_error ("\`$info_cursor' missing \@setfilename"); + next; + } + + if ($out_file =~ /\.(.+)$/ && $1 ne 'info') + { + # FIXME should report line number in input file. + &am_error ("output of \`$info_cursor', \`$out_file', has unrecognized extension"); + next; + } + if ($vtexi) { &am_error ("\`$vtexi', included in \`$info_cursor', also included in \`$versions{$vtexi}'") @@ -1645,13 +1676,13 @@ sub handle_texinfo &push_dist_common ('$(' . $canonical . '_TEXINFOS)'); } - $output_rules .= ("\n" . $infobase . ".info: " + $output_rules .= ("\n" . $out_file . ": " . join (' ', @texi_deps) . "\n" . $infobase . ".dvi: " . join (' ', @texi_deps) . "\n\n"); - push (@info_deps_list, $infobase . '.info'); + push (@info_deps_list, $out_file); push (@dvis_list, $infobase . '.dvi'); # Generate list of things to clean for this target. We do diff --git a/automake.texi b/automake.texi index 3035176..d14bfc7 100644 --- a/automake.texi +++ b/automake.texi @@ -113,8 +113,8 @@ documents version @value{VERSION}. * Tests:: Support for test suites * Options:: Changing Automake's behavior * Miscellaneous:: Miscellaneous rules -* Gnits:: The effect of --gnu and --gnits -* Cygnus:: The effect of --cygnus +* Gnits:: The effect of @code{--gnu} and @code{--gnits} +* Cygnus:: The effect of @code{--cygnus} * Extending:: Extending Automake * Distributing:: Distributing the Makefile.in * Examples:: Some example packages @@ -150,7 +150,7 @@ assumes that the project uses Autoconf (@pxref{Top, , The Autoconf Manual, autoconf, The Autoconf Manual}), and enforces certain restrictions on the @file{configure.in} contents. -@code{Automake} requires @code{perl} in order to generate the +Automake requires @code{perl} in order to generate the @file{Makefile.in}s. However, the distributions created by Automake are fully GNU standards-compliant, and do not require @code{perl} in order to be built. @@ -187,7 +187,7 @@ in a subdirectory to change its behavior in some cases. @table @code @item -a -@item --add-missing +@itemx --add-missing Automake requires certain common files to exist in certain situations; for instance @file{config.guess} is required if @file{configure.in} runs @code{AC_CANONICAL_HOST}. Automake is distributed with several of these @@ -224,14 +224,14 @@ information. Print a summary of the command line options and exit. @item -i -@item --include-deps +@itemx --include-deps Include all automatically generated dependency information (@pxref{Dependencies}) in the generated @file{Makefile.in}. This is generally done when making a distribution; see @ref{Dist}. @item -o @var{dir} -@item --output-dir=@var{dir} +@itemx --output-dir=@var{dir} Put the generated @file{Makefile.in} in the directory @var{dir}. Ordinarily each @file{Makefile.in} is created in the directory of the corresponding @file{Makefile.am}. This option is used when making @@ -244,7 +244,7 @@ current build. This option is used when including dependencies into a otherwise. @item -v -@item --verbose +@itemx --verbose Cause Automake to print information about which files are being read or created. @@ -303,7 +303,7 @@ definition. Be warned that many of the variables generated by names might change in future releases. When examining a variable definition, Automake will recursively examine -variables referenced in the definition. Eg if Automake is looking at +variables referenced in the definition. E.g., if Automake is looking at the content of @samp{foo_SOURCES} in this snippet @example @@ -351,8 +351,8 @@ which are built. A @dfn{shallow} package is one in which the primary source resides in the top-level directory, while various parts (typically libraries) -reside in subdirectories. @code{automake} is one such package (as is -GNU @code{make}, which does not currently use @code{automake}). +reside in subdirectories. Automake is one such package (as is GNU +@code{make}, which does not currently use @code{automake}). @node Strictness @@ -361,7 +361,7 @@ While Automake is intended to be used by maintainers of GNU packages, it does make some effort to accommodate those who wish to use it, but do not want to use all the GNU conventions. -To this end, Automake supports three levels of @dfn{strictness} -- the +To this end, Automake supports three levels of @dfn{strictness}---the strictness indicating how stringently Automake should check standards conformance. @@ -377,14 +377,14 @@ used for GNU programs; these relaxed rules are not the standard mode of operation. @item gnu -Automake will check -- as much as possible -- for compliance to the GNU +Automake will check---as much as possible---for compliance to the GNU standards for packages. This is the default. @item gnits -Automake will check for compliance to the as-yet-unwritten GNITS +Automake will check for compliance to the as-yet-unwritten Gnits standards. These are based on the GNU standards, but are even more -detailed. Unless you are a GNITS standards contributor, it is -recommended that you avoid this option until such time as the GNITS +detailed. Unless you are a Gnits standards contributor, it is +recommended that you avoid this option until such time as the Gnits standard is actually published. @end table @@ -412,9 +412,9 @@ be used as the installation directory. The standard directory names are given in the GNU standards (@pxref{Directory Variables, , , standards, The GNU Coding Standards}). -@code{automake} extends this list with @code{pkglibdir}, -@code{pkgincludedir}, and @code{pkgdatadir}; these are the same as the -non-@samp{pkg} versions, but with @samp{@@PACKAGE@@} appended. +Automake extends this list with @code{pkglibdir}, @code{pkgincludedir}, +and @code{pkgdatadir}; these are the same as the non-@samp{pkg} +versions, but with @samp{@@PACKAGE@@} appended. @cvindex PACKAGE For each primary, there is one additional variable named by prepending @@ -445,7 +445,7 @@ Not every sort of object can be installed in every directory. Automake will flag those attempts it finds in error. Automake will also diagnose obvious misspellings in directory names. -Sometimes the standard directories -- even as augmented by Automake -- +Sometimes the standard directories---even as augmented by Automake--- are not enough. In particular it is sometimes useful, for clarity, to install objects in a subdirectory of some predefined directory. To this end, Automake allows you to extend the list of possible installation @@ -487,7 +487,7 @@ supplies. For instance program names are rewritten into Makefile macro names. Automake canonicalizes this text, so that it does not have to follow Makefile variable naming rules. All characters in the name except for letters, numbers, and the underscore are turned into -underscores when making macro references. Eg, if your program is named +underscores when making macro references. E.g., if your program is named @code{sniff-glue}, the derived variable name would be @code{sniff_glue_SOURCES}, not @code{sniff-glue_SOURCES}. @@ -608,7 +608,7 @@ or library. @cvindex AC_PATH_XTRA @item AC_CANONICAL_HOST -@item AC_CHECK_TOOL +@itemx AC_CHECK_TOOL Automake will ensure that @file{config.guess} and @file{config.sub} exist. Also, the @file{Makefile} variables @samp{host_alias} and @samp{host_triplet} are introduced. @@ -626,14 +626,14 @@ This is similar to @code{AC_CANONICAL_HOST}, but also defines the @vindex target_alias @item AC_FUNC_ALLOCA -@item AC_FUNC_GETLOADAVG -@item AC_FUNC_MEMCMP -@item AC_STRUCT_ST_BLOCKS -@item AC_FUNC_FNMATCH -@item AM_FUNC_STRTOD -@item AC_REPLACE_FUNCS -@item AC_REPLACE_GNU_GETOPT -@item AM_WITH_REGEX +@itemx AC_FUNC_GETLOADAVG +@itemx AC_FUNC_MEMCMP +@itemx AC_STRUCT_ST_BLOCKS +@itemx AC_FUNC_FNMATCH +@itemx AM_FUNC_STRTOD +@itemx AC_REPLACE_FUNCS +@itemx AC_REPLACE_GNU_GETOPT +@itemx AM_WITH_REGEX Automake will ensure that the appropriate dependencies are generated for the objects corresponding to these macros. Also, Automake will verify that the appropriate source files are part of the distribution. Note @@ -712,11 +712,11 @@ FIXME xref. @cvindex AM_MAINTAINER_MODE @item AC_SUBST -@item AC_CHECK_TOOL -@item AC_CHECK_PROG -@item AC_CHECK_PROGS -@item AC_PATH_PROG -@item AC_PATH_PROGS +@itemx AC_CHECK_TOOL +@itemx AC_CHECK_PROG +@itemx AC_CHECK_PROGS +@itemx AC_PATH_PROG +@itemx AC_PATH_PROGS For each of these macros, the first argument is automatically defined as a variable in each generated @file{Makefile.in}. @cvindex AC_SUBST @@ -734,7 +734,7 @@ a variable in each generated @file{Makefile.in}. The @code{aclocal} program will automatically generate @file{aclocal.m4} files based on the contents of @file{configure.in}. This provides a -convenient way to get @code{automake}-provided macros, without having to +convenient way to get Automake-provided macros, without having to search around. Also, the @code{aclocal} mechanism is extensible for use by other packages. @@ -916,7 +916,7 @@ actually can be used to add any options to the linker command line. Sometimes, multiple programs are built in one directory but do not share the same link-time requirements. In this case, you can use the -@samp{@var{prog}_LDADD} variable (where @var{PROG} is the name of the +@samp{@var{prog}_LDADD} variable (where @var{prog} is the name of the program as it appears in some @samp{_PROGRAMS} variable, and usually written in lowercase) to override the global @code{LDADD}. (If this variable exists for a given program, then that program is not linked @@ -1078,7 +1078,7 @@ macro @samp{AC_PROG_YACC}. Similarly, if a lex source file is seen, then your @file{configure.in} must define the variable @samp{LEX}. You can use @samp{AC_PROG_LEX} to do this. Automake's lex support also requires that you use the -@samp{AC_DECL_YYTEXT} macro -- automake needs to know the value of +@samp{AC_DECL_YYTEXT} macro---automake needs to know the value of @samp{LEX_OUTPUT_ROOT}. Any program including a lex source file must be linked against @@ -1386,8 +1386,7 @@ By default, built sources are not included in a distribution. @chapter Other GNU Tools Since Automake is primarily intended to generate @file{Makefile.in}s for -use in GNU programs, it tries hard to interoperatoe with other GNU -tools. +use in GNU programs, it tries hard to interoperate with other GNU tools. @menu * Emacs Lisp:: Emacs Lisp @@ -1553,7 +1552,7 @@ Automake also handles installing any specified info and man pages. Automake generates separate @code{install-data} and @code{install-exec} targets, in case the installer is installing on multiple machines which -share directory structure -- these targets allow the machine-independent +share directory structure---these targets allow the machine-independent parts to be installed only once. The @code{install} target depends on both of these targets. @trindex install-data @@ -1608,8 +1607,8 @@ be defined to specify additional files to clean. These variables are The @code{dist} target in the generated @file{Makefile.in} can be used to generate a gzip'd @code{tar} file for distribution. The tar file is -named based on the @var{PACKAGE} and @var{VERSION} variables; more -precisely it is named @samp{@var{PACKAGE}-@var{VERSION}.tar.gz}. +named based on the @samp{PACKAGE} and @samp{VERSION} variables; more +precisely it is named @samp{@var{package}-@var{version}.tar.gz}. @cvindex PACKAGE @cvindex VERSION @trindex dist @@ -1633,8 +1632,8 @@ cause @code{make dist} runtime failures. Occasionally it is useful to be able to change the distribution before it is packaged up. If the @code{dist-hook} target exists, it is run after the distribution directory is filled, but before the actual tar -(or shar) file is created. One way to use this is for distributing file -in subdirectories for which a new @file{Makefile.am} is overkill: +(or shar) file is created. One way to use this is for distributing +files in subdirectories for which a new @file{Makefile.am} is overkill: @example dist-hook: @@ -1714,7 +1713,7 @@ targets will still be available. This option is disallowed at @trindex install-info @item @code{ansi2knr} -@item @code{path/ansi2knr} +@itemx @code{path/ansi2knr} Turn on automatic de-ANSI-fication. @xref{ANSI}. If preceeded by a path, the generated @file{Makefile.in} will look in the specified directory to find the @file{ansi2knr} program. Generally the path @@ -1782,8 +1781,8 @@ There are a few rules and variables that didn't fit anywhere else. @code{automake} will generate rules to generate @file{TAGS} files for use with GNU Emacs under some circumstances. -If any C source code or headers are present, then a @code{tags} target -will be generated for the directory. +If any C source code or headers are present, then @code{tags} and +@code{TAGS} targets will be generated for the directory. @trindex tags At the topmost directory of a multi-directory package, a @code{tags} @@ -1804,8 +1803,8 @@ ETAGS_ARGS = automake.in --lang=none \ --regex='/^@@node[ \t]+\([^,]+\)/\1/' automake.texi @end example -If you add filenames to @var{ETAGS_ARGS}, you will probably also -want to set @var{TAGS_DEPENDENCIES}. The contents of this variable +If you add filenames to @samp{ETAGS_ARGS}, you will probably also +want to set @samp{TAGS_DEPENDENCIES}. The contents of this variable are added directly to the dependencies for the @code{tags} target. @vindex TAGS_DEPENDENCIES @@ -1839,7 +1838,7 @@ FIXME write this @node Gnits -@chapter The effect of --gnu and --gnits +@chapter The effect of @code{--gnu} and @code{--gnits} The @samp{--gnu} option (or @samp{gnu} in the @samp{AUTOMAKE_OPTIONS} variable) causes @code{automake} to check the following: @@ -1871,7 +1870,8 @@ checks the following as well: updated to the current version. @item -The file @file{COPYING.LIB} is prohibited. +The file @file{COPYING.LIB} is prohibited. The LGPL is apparently +considered a failed experiment. @item @samp{VERSION} is checked to make sure its format complies with Gnits @@ -1889,7 +1889,7 @@ The file @file{THANKS} is required. @node Cygnus -@chapter The effect of --cygnus +@chapter The effect of @code{--cygnus} Cygnus Support has slightly different rules for how a @file{Makefile.in} is to be constructed. Passing @samp{--cygnus} to @code{automake} will @@ -1919,7 +1919,7 @@ user's @samp{PATH}. These tools are @code{runtest}, @code{expect}, @code{makeinfo} and @code{texi2dvi}. @item -@samp{--foreign} is implied. +@code{--foreign} is implied. @item The options @samp{no-installinfo} and @samp{no-dependencies} are @@ -1936,8 +1936,8 @@ to the special Cygnus mode. @node Extending @chapter When Automake Isn't Enough -@code{automake}s implicit copying semantics means that many problems can -be worked around by simply adding some @code{make} targets and rules to +Automake's implicit copying semantics means that many problems can be +worked around by simply adding some @code{make} targets and rules to @file{Makefile.in}. @code{automake} will ignore these additions. There are some caveats to doing this. Although you can overload a @@ -1999,7 +1999,7 @@ their work under terms like those of the GPL, but doing so is not required to use Automake. Some of the files that can be automatically installed via the -@samp{--add-missing} switch do fall under the GPL; examine each file +@code{--add-missing} switch do fall under the GPL; examine each file to see. @@ -2080,7 +2080,7 @@ ctags.o: $(COMPILE) -DCTAGS -o ctags.o etags.c @end example -Note that @code{ctags_SOURCES} is defined to be empty -- that way no +Note that @code{ctags_SOURCES} is defined to be empty---that way no implicit value is substituted. The implicit value, however, is used to generate @code{etags} from @file{etags.o}. @@ -2178,7 +2178,7 @@ makes a standard distribution. Automake consists primarily of one program, @code{automake}, and a number of auxiliary scripts. Automake also installs a number of -programs which are possibly installed via the @samp{--add-missing} +programs which are possibly installed via the @code{--add-missing} option; these scripts are listed in the @code{pkgdata_SCRIPTS} variable. Automake also has a @file{tests} subdirectory, as indicated in the @@ -2232,7 +2232,7 @@ xmalloc.c xstrtod.c xstrtol.c xstrtoul.c tu_LIBADD = @@REGEXOBJ@@ @@LIBOBJS@@ @@ALLOCA@@ @end example -The @file{src} directory contains the source for all the textutils -- 23 +The @file{src} directory contains the source for all the textutils---23 programs in all. The @file{Makefile.am} for this directory also includes some simple checking code, and constructs a @file{version.c} file on the fly: diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am index 765d2b2..3dc254d 100644 --- a/lib/am/texinfos.am +++ b/lib/am/texinfos.am @@ -30,6 +30,15 @@ CYGNUS $(MAKEINFO) -I $(srcdir) $< ## if it is in srcdir. MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< +.texi: +## We want to force the .info file to be built in srcdir. This is +## probably the simplest way. However, at Cygnus .info files are +## always put into the build directory. So at runtime we select which +## rule to use. +NOTCYGNUS cd $(srcdir) \ +NOTCYGNUS && $(MAKEINFO) `echo $< | sed 's,.*/,,'` +CYGNUS $(MAKEINFO) -I $(srcdir) $< + .texinfo.info: ## We want to force the .info file to be built in srcdir. This is ## probably the simplest way. However, at Cygnus .info files are @@ -39,6 +48,15 @@ NOTCYGNUS cd $(srcdir) \ NOTCYGNUS && $(MAKEINFO) `echo $< | sed 's,.*/,,'` CYGNUS $(MAKEINFO) $< +.texinfo: +## We want to force the .info file to be built in srcdir. This is +## probably the simplest way. However, at Cygnus .info files are +## always put into the build directory. So at runtime we select which +## rule to use. +NOTCYGNUS cd $(srcdir) \ +NOTCYGNUS && $(MAKEINFO) `echo $< | sed 's,.*/,,'` +CYGNUS $(MAKEINFO) $< + .texinfo.dvi: TEXINPUTS=$(srcdir):$$TEXINPUTS $(TEXI2DVI) $< diff --git a/tests/ChangeLog b/tests/ChangeLog index 8943feb..04282c5 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,12 @@ +Sun Feb 23 11:58:00 1997 Tom Tromey + + * texinfo.test, texinfo2.test, texinfo3.test, info.test, + mdate.test, vtexi.test, canon2.test, mdate2.test, vtexi2.test: + Updated for new texinfo handling. + + * texinfo4.test: New file. + * texinfo3.test: New file. + Sat Feb 22 09:48:44 1997 Tom Tromey * yaccpp.test: New file. diff --git a/tests/Makefile.am b/tests/Makefile.am index 0919302..80b93dc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -23,7 +23,7 @@ distdir.test lex2.test libobj4.test libobj5.test version.test \ ranlib.test confvar.test confvar2.test stdlib.test cxxo.test \ colon2.test colon3.test remake.test output.test output2.test \ remake2.test output3.test output4.test colneq2.test subst.test \ -defun2.test yaccpp.test +defun2.test yaccpp.test texinfo3.test texinfo4.test EXTRA_DIST = defs $(TESTS) diff --git a/tests/Makefile.in b/tests/Makefile.in index 616f566..daec4ce 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.1l from Makefile.am +# Makefile.in generated automatically by automake 1.1g from Makefile.am # Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -37,11 +37,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -PACKAGE = @PACKAGE@ PERL = @PERL@ TAR = @TAR@ -VERSION = @VERSION@ AUTOMAKE_OPTIONS = gnits @@ -66,7 +63,7 @@ distdir.test lex2.test libobj4.test libobj5.test version.test \ ranlib.test confvar.test confvar2.test stdlib.test cxxo.test \ colon2.test colon3.test remake.test output.test output2.test \ remake2.test output3.test output4.test colneq2.test subst.test \ -defun2.test yaccpp.test +defun2.test yaccpp.test texinfo3.test texinfo4.test EXTRA_DIST = defs $(TESTS) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -74,20 +71,20 @@ CONFIG_CLEAN_FILES = DIST_COMMON = ChangeLog Makefile.am Makefile.in +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) \ $(TEXINFOS) $(MANS) $(EXTRA_DIST) - -GZIP = --best default: all -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL) - cd $(top_srcdir) && automake --gnits tests/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in + cd $(top_srcdir) && automake --strictness=gnits $(subdir)/Makefile + +Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in $(BUILT_SOURCES) cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - tags: TAGS TAGS: @@ -125,8 +122,7 @@ check-TESTS: $(TESTS) fi info: dvi: -check: all - $(MAKE) check-TESTS +check: all check-TESTS installcheck: install-exec: $(NORMAL_INSTALL) @@ -162,16 +158,16 @@ maintainer-clean-generic: test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) mostlyclean: mostlyclean-generic -clean: clean-generic mostlyclean +clean: clean-generic mostlyclean -distclean: distclean-generic clean distclean-local +distclean: distclean-generic clean rm -f config.status -maintainer-clean: maintainer-clean-generic distclean +maintainer-clean: maintainer-clean-generic distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." -.PHONY: default tags distdir check-TESTS info dvi installcheck \ +.PHONY: default tags distdir check-TESTS info dvi check installcheck \ install-exec install-data install uninstall all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean @@ -179,6 +175,7 @@ maintainer-clean-generic clean mostlyclean distclean maintainer-clean distclean-local: rm -rf testSubdir +.SUFFIXES: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/canon2.test b/tests/canon2.test index 83b49e9..0efe346 100755 --- a/tests/canon2.test +++ b/tests/canon2.test @@ -10,8 +10,8 @@ zar_doz_TEXINFOS = frob.texi END : > texinfo.tex -: > zar-doz.texi -: > frob.texi +echo '@setfilename zar-doz.info' > zar-doz.texi +echo '@setfilename frob' > frob.texi $AUTOMAKE || exit 1 diff --git a/tests/info.test b/tests/info.test index 327999d..f5c3cfa 100755 --- a/tests/info.test +++ b/tests/info.test @@ -11,7 +11,7 @@ magic: @echo $(INFOS) END -: > foo.texi +echo '@setfilename foo.info' > foo.texi : > texinfo.tex $AUTOMAKE || exit 1 diff --git a/tests/mdate.test b/tests/mdate.test index b9b5f74..c0619e8 100755 --- a/tests/mdate.test +++ b/tests/mdate.test @@ -10,6 +10,7 @@ END cat > textutils.texi << 'END' @include version.texi +@setfilename textutils.info END # Required when using Texinfo. diff --git a/tests/mdate2.test b/tests/mdate2.test index c27d8a8..ef19458 100755 --- a/tests/mdate2.test +++ b/tests/mdate2.test @@ -15,6 +15,7 @@ END # Required when using Texinfo. : > texinfo.tex : > mdate-sh +echo '@setfilename textutils' > textutils.texi # Use "././" to confuse Automake into thinking this is a subdir build. $AUTOMAKE ././Makefile || exit 1 diff --git a/tests/texinfo.test b/tests/texinfo.test index 19e5f0f..6097265 100755 --- a/tests/texinfo.test +++ b/tests/texinfo.test @@ -11,7 +11,7 @@ magic: @echo $(DISTFILES) END -: > textutils.texi +echo '@setfilename textutils.info' > textutils.texi : > texinfo.tex $AUTOMAKE || exit 1 diff --git a/tests/texinfo2.test b/tests/texinfo2.test index 6ca27fe..74e3281 100755 --- a/tests/texinfo2.test +++ b/tests/texinfo2.test @@ -12,7 +12,7 @@ magic: END : > texinfo.tex -: > textutils.texi +echo '@setfilename textutils.info' > textutils.texi : > textutils.info~ $AUTOMAKE || exit 1 diff --git a/tests/texinfo3.test b/tests/texinfo3.test new file mode 100755 index 0000000..e5ae269 --- /dev/null +++ b/tests/texinfo3.test @@ -0,0 +1,16 @@ +#! /bin/sh + +# Test to make sure .info-less @setfilename works. + +. $srcdir/defs || exit 1 + +cat > Makefile.am << 'END' +info_TEXINFOS = textutils.texi +END + +echo '@setfilename textutils' > textutils.texi +: > texinfo.tex + +$AUTOMAKE || exit 1 + +grep '^INFO_DEPS.*textutils$' Makefile.in diff --git a/tests/texinfo4.test b/tests/texinfo4.test new file mode 100755 index 0000000..17b76e5 --- /dev/null +++ b/tests/texinfo4.test @@ -0,0 +1,15 @@ +#! /bin/sh + +# Make sure non-empty, non-info suffixes are diagnosed. + +. $srcdir/defs || exit 1 + +cat > Makefile.am << 'END' +info_TEXINFOS = textutils.texi +END + +echo '@setfilename textutils.frob' > textutils.texi +: > texinfo.tex + +$AUTOMAKE && exit 1 +exit 0 diff --git a/tests/vtexi.test b/tests/vtexi.test index eac76e9..09524eb 100755 --- a/tests/vtexi.test +++ b/tests/vtexi.test @@ -15,6 +15,7 @@ END cat > textutils.texi << 'END' @include version.texi +@setfilename textutils.info END # Required when using Texinfo. diff --git a/tests/vtexi2.test b/tests/vtexi2.test index f59e9f8..d950c25 100755 --- a/tests/vtexi2.test +++ b/tests/vtexi2.test @@ -12,6 +12,7 @@ info_TEXINFOS = zardoz.texi END cat > zardoz.texi << 'END' +@setfilename zardoz @include version.texi END diff --git a/texinfos.am b/texinfos.am index 765d2b2..3dc254d 100644 --- a/texinfos.am +++ b/texinfos.am @@ -30,6 +30,15 @@ CYGNUS $(MAKEINFO) -I $(srcdir) $< ## if it is in srcdir. MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< +.texi: +## We want to force the .info file to be built in srcdir. This is +## probably the simplest way. However, at Cygnus .info files are +## always put into the build directory. So at runtime we select which +## rule to use. +NOTCYGNUS cd $(srcdir) \ +NOTCYGNUS && $(MAKEINFO) `echo $< | sed 's,.*/,,'` +CYGNUS $(MAKEINFO) -I $(srcdir) $< + .texinfo.info: ## We want to force the .info file to be built in srcdir. This is ## probably the simplest way. However, at Cygnus .info files are @@ -39,6 +48,15 @@ NOTCYGNUS cd $(srcdir) \ NOTCYGNUS && $(MAKEINFO) `echo $< | sed 's,.*/,,'` CYGNUS $(MAKEINFO) $< +.texinfo: +## We want to force the .info file to be built in srcdir. This is +## probably the simplest way. However, at Cygnus .info files are +## always put into the build directory. So at runtime we select which +## rule to use. +NOTCYGNUS cd $(srcdir) \ +NOTCYGNUS && $(MAKEINFO) `echo $< | sed 's,.*/,,'` +CYGNUS $(MAKEINFO) $< + .texinfo.dvi: TEXINPUTS=$(srcdir):$$TEXINPUTS $(TEXI2DVI) $< diff --git a/version.texi b/version.texi index 244d509..0b70448 100644 --- a/version.texi +++ b/version.texi @@ -1,3 +1,3 @@ -@set UPDATED 22 February 1997 +@set UPDATED 23 February 1997 @set EDITION 1.1l @set VERSION 1.1l -- 2.7.4