]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Bug fixes.
authorTom Tromey <tromey@redhat.com>
Sat, 9 Dec 1995 00:30:03 +0000 (00:30 +0000)
committerTom Tromey <tromey@redhat.com>
Sat, 9 Dec 1995 00:30:03 +0000 (00:30 +0000)
Changes for new naming scheme

20 files changed:
ChangeLog
Makefile.am
Makefile.in
NEWS
THANKS
TODO
automake.in
automake.texi
data-clean.am [new file with mode: 0644]
depend.am
lib/am/Makefile.am
lib/am/depend.am
lib/am/scripts.am
libraries-clean.am [new file with mode: 0644]
libraries.am
programs-clean.am [new file with mode: 0644]
programs.am
scripts-clean.am [new file with mode: 0644]
scripts.am
version.texi

index 80cbe239e2a749b921c5cd3671280d1297a49b17..6e55cf83c5adfc0b46faca0001015be874723c47 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+Fri Dec  8 16:30:48 1995  Tom Tromey  <tromey@cambric.colorado.edu>
+
+       * depend.am (DEP_FILES): Handle deANSIfication case.  From Jim
+       Meyering.
+
+       * Makefile.am (pkgdata_DATA): Added new files.
+       * data-clean.am: New file.
+       * scripts-clean.am: New file.
+       * libraries-clean.am: New file.
+       * programs-clean.am: New file.
+
+Wed Dec  6 00:06:11 1995  Tom Tromey  <tromey@cambric.colorado.edu>
+
+       * automake.in (am_install_var): Error if variable name
+       "misspelled".
+       (handle_source_transform): Automatically include .c file
+       corresponding to .y or .l.
+
 Tue Dec  5 00:46:14 1995  Tom Tromey  <tromey@cambric.colorado.edu>
 
        * programs.am: Changed for uniform naming scheme.
index 6d13cf633efc3002dd6a059e12b4cf69acdbc3b6..a76be772960d52d92ab7bf20035e8fa8ad51339a 100644 (file)
@@ -11,12 +11,14 @@ libraries.am library.am mans-vars.am \
 program.am programs.am remake-hdr.am \
 remake-subd.am remake.am scripts.am subdirs.am tags.am tags-subd.am \
 tags-clean.am \
-texi-clean.am texi-version.am texinfos-vars.am texinfos.am
+texi-clean.am texi-version.am texinfos-vars.am texinfos.am \
+libraries-clean.am scripts-clean.am programs-clean.am data-clean.am
 
 DIST_OTHER = automake.in
 
 # The following requires a fixed version of the Emacs 19.30 etags.
-ETAGS_ARGS = automake.in
+ETAGS_ARGS = automake.in --lang=none \
+ --regex='/^@node[ \t]+\([^,]+\)/\1/' automake.texi
 
 # The simplest form of checking.
 check-local: automake
index c9a7c70520065727f43a99cb77b53a34f739743e..31ba00aed7512d864a9e69be56ec3dd2a4eb44ec 100644 (file)
@@ -62,7 +62,7 @@ texi-clean.am texi-version.am texinfos-vars.am texinfos.am
 
 DIST_OTHER = automake.in
 
-ETAGS_ARGS = automake.in
+ETAGS_ARGS = automake.in --lang=none --regex='/^@node[ \t]+\([^,]+\)/\1/' automake.texi
 
 
 SCRIPTS = $(bin_SCRIPTS)
@@ -239,7 +239,7 @@ dist: $(DISTFILES)
        tar -chozf $(distdir).tar.gz $(distdir)
        rm -rf $(distdir)
 
-all: info $(PROGRAMS) $(SCRIPTS) $(DATA) $(HEADERS)
+all: info $(SCRIPTS) $(DATA)
 
 info: $(INFO_DEPS)
 
diff --git a/NEWS b/NEWS
index 88fca18fdbab9decfa6ee622df4d689d73b052f1..27a5b30c764e4994203bd2657e239a74fe3180a8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,10 @@
 New in 0.24:
 * New uniform naming scheme.
-* --strict option
+* --strictness option
 * Works with Perl 5
+* '.c' files corresponding to '.y' or '.l' files are automatically
+  distributed.
+* Many bug fixes and cleanups
 \f
 New in 0.23:
 * Allow objects to be conditionally included in libraries via lib_LIBADD.
diff --git a/THANKS b/THANKS
index 007d96147356ff6898faa743ecabd1dfe9af3f98..f27cafb9b44a412c15af7d3478022e5c3eb35b55 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -4,6 +4,6 @@ people:
 
 François Pinard <pinard@iro.umontreal.ca>
 Gord Matzigkeit <gord@enci.ucalgary.ca>
-Jim Meyering <meyering@comco.com>
+Jim Meyering <meyering@na-net.ornl.gov>
 Karl Berry <kb@cs.umb.edu>
 Ulrich Drepper <drepper@gnu.ai.mit.edu>
diff --git a/TODO b/TODO
index 1c9901a460907e40a3f859ff6f916fc20dc31ee8..3a5dae2ecfd367915063e62513de18cc4be51ee8 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,5 @@
 Top priorities:
-* FINISH new `where_HOW' scheme!
-* Update docs!
+* Fix up how 'clean' interacts with new naming scheme.
 
 Clean up the output:
 * Order rules sensibly
@@ -160,6 +159,9 @@ SUFFIXES    additional suffixes
 
 Document customary ordering of Makefile.am.  From Franc,ois.
 
+Automake assumes SCRIPTS are built from something else.  They are
+removed during 'make clean'.  Beware.
+
 ================================================================
 
 Libraries:
@@ -173,7 +175,7 @@ X Need a way to install library header files.
   It would be really interesting to be able to easily (as the end-user)
   make many different versions of the library: shared, static, profiling,
   debug, optimized...
-* Must ranlib libraries after installing
+X Must ranlib libraries after installing
 
 Some examples to keep in mind while doing this:
 * readline
index 1b0a975a1b0f0bbc8a0b3fdc846bd6224969ecf0..c341101736f169c5e6935b23acd0d970cb8adabb 100755 (executable)
@@ -317,17 +317,30 @@ sub handle_source_transform
        if (! defined $contents{$one_file . "_OBJECTS"})
        {
            # Turn sources into objects.
-           $_ = $contents{$one_file . "_SOURCES"};
-
+           local (@files) = split (/\s+/, $contents{$one_file . "_SOURCES"});
            # Ugh: Perl syntax vs Emacs.
            local ($krc1, $krc2) = ('\.\$\{kr\}c', '\.\$\(kr\)c');
+           local (@result) = ();
+           foreach $one_source (@files)
+           {
+               if (/^(.*)\.[yl]$/)
+               {
+                   # Automatically include generated .c file in
+                   # distribution.
+                   push_dist_common ($1 . '.c');
+               }
+
+               # Transform source files into .o files.
+               s/\.cc$/$obj/g;
+               s/$krc1$/$obj/g;
+               s/$krc2$/$obj/g;
+               s/\.[cCmylfs]$/$obj/g;
 
-           s/\.cc/$obj/g;
-           s/$krc1/$obj/g;
-           s/$krc2/$obj/g;
-           s/\.[cCmylfs]/$obj/g;
+               push (@result, $_);
+           }
 
-           $output_vars .= $one_file . "_OBJECTS = " . $_ . "\n";
+           $output_vars .= ($one_file . "_OBJECTS = " . join (' ', @result)
+                            . "\n");
        }
        else
        {
@@ -1341,6 +1354,19 @@ sub am_install_var
     # Push here because PRIMARY might be configure time determined.
     push (@all, '$(' . $primary . ')') if ($do_all && $#used >= 0);
 
+    # Look for misspellings.  It is an error to have a variable ending
+    # in a "reserved" suffix whose prefix is unknown, eg
+    # "bni_PROGRAMS".
+    local (%valid, $varname);
+    grep ($valid{$_} = 0, @prefixes);
+    foreach $varname (keys %contents)
+    {
+       if ($varname =~ /^(.*)_$primary$/ && ! defined $valid{$1})
+       {
+           &am_error ("invalid variable \"$varname\"");
+       }
+    }
+
     return (@result);
 }
 
index ee2bbea4b11d45903fd0ae13cc1da61e32586722..43be0f88765f7991c42f08772b683181428de70d 100644 (file)
@@ -101,7 +101,7 @@ GNU Coding Standards})
 is long, complicated,
 and subject to change.  The goal of Automake is to remove the burden of
 Makefile maintenance from back the individual GNU maintainer (and put it
-on the back of the Automake maintainer)
+on the back of the Automake maintainer).
 
 Typical Automake input files are simply a series of macro definitions.
 Automake processes these files to produce @file{Makefile.in}s which are
@@ -116,16 +116,17 @@ Automake's convenience.
 @chapter Making @code{automake} templates
 
 @menu
+* Generalities::                General overview
 * configure::                   Automake and configure
 * Depth::                       Types of package hierarchy
-* Programs::                    What gets built
-* Source::                      Specifying source files
+* Naming::                      The uniform naming scheme
+* Programs::                    Building programs
+* ANSI::                        Automatic de-ANSI-fication
 * Scripts::                     Building scripts
 * Libraries::                   Building libraries
-* Libstuff::                    Programs that aren't user-visible
+* Headers::                     Header files
 * Data::                        Data files.
 * Docs::                        Specifying documentation files
-* ANSI::                        Automatic de-ANSI-fication
 * Install::                     What gets installed
 * Clean::                       What gets cleaned
 * Distribution::                What gets distributed
@@ -134,6 +135,22 @@ Automake's convenience.
 * Extending::                   If the defaults aren't enough
 @end menu
 
+@node Generalities
+@section General use of Automake
+
+@code{Automake} is a tool for automatically generating
+@file{Makefile.in}s from files called @file{Makefile.am}.  The
+@file{Makefile.am} is basically a series of @code{make} macro
+definitions (with the occasional rule thrown in).  The generated
+@file{Makefile.in}s are compliant with the GNU Makefile standards.
+
+There should be one @file{Makefile.am} per directory of a project
+(though it is possible to incorporate directories that don't use
+@code{automake} if necessary).
+
+@code{automake} assumes the package in question uses @code{autoconf}.
+
+
 @node configure
 @section How @code{automake} and @code{configure} interact
 
@@ -203,21 +220,20 @@ AC_SUBST(INSTALL_SCRIPT)dnl
 
 A flat package is one in which all the files are in a single directory.
 The @file{Makefile.am} for such a package by definition lacks a
-@samp{SUBDIRS} macro.  (There are not any @code{automake}-using packages
-which are flat)
+@samp{SUBDIRS} macro.  An example of such a package is @code{termutils}.
 
 A deep package is one in which all the source lies in subdirectories;
-the top level directory contains only configuration information.  GNU
-cpio is a good example of such a package (as is GNU tar, although it
-does not presently use @code{automake}).  The top level
+the top level directory contains mainly configuration information.  GNU
+cpio is a good example of such a package (as is GNU @code{tar}, although
+it does not presently use @code{automake}).  The top level
 @file{Makefile.am} for a deep package will contain a @samp{SUBDIRS}
-macro, but no other macros to define objects which are built (eg
-@samp{PROGRAMS}).
+macro, but no other macros to define objects which are built.
+Typically, @samp{PRGORAMS} is defined in @file{src/Makefile.am}.
 
 A 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 make,
-which does not currently use @code{automake}).
+subdirectories.  @code{automake} is one such package (as is GNU
+@code{make}, which does not currently use @code{automake}).
 
 
 The @samp{SUBDIRS} macro holds a list of subdirectories in which
@@ -234,6 +250,54 @@ If @samp{SUBDIRS} is defined, then your @file{configure.in} must include
 FIXME supply complete list of recursive targets?
 
 
+@node Naming
+@section The uniform naming scheme
+
+@code{Automake} uses a uniform naming scheme to make it easy to decide
+how programs are built, and how they are installed.  This scheme also
+supports @code{configure}-time determination of what should be built.
+
+There are certain variables which are used at @code{make} time to
+determine which objects are to be built.  For instance, @samp{PROGRAMS}
+holds a list of programs which are to be compiled and linked.  These
+variables are called ``primary'' variables.
+
+A different set of variables are used to decide where the built objects
+should be installed.  These variables are named after the primary
+variables, but have a prefix indicating which standard directory should
+be used as the installation directory.  The standard directory names are
+given in the GNU standards (FIXME xref).  @code{automake} extends this
+list with @samp{pkglibdir}, @samp{pkgincludedir}, and @samp{pkgdatadir};
+these are the same as the non-@samp{pkg} versions, but with
+@code{@@PACKAGE@@} appended.
+
+For instance, @code{cpio} decides at configure time which programs are
+built.  Some of the programs are installed in @samp{bindir}, and some
+are installed in @samp{sbindir}:
+
+@example
+PROGRAMS = @@PROGRAMS@@
+bin_PROGRAMS = cpio pax
+sbin_PROGRAMS = rmt mt
+@end example
+
+Note that the common ``dir'' suffix is left off when constructing the
+variable names; thus one writes @samp{bin_PROGRAMS} and not
+@samp{bindir_PROGRAMS}.
+
+Not every sort of object can be installed in every directory.
+@code{automake} will flag those attempts it finds in error.
+
+The special prefix @code{noinst} indicates that the objects in question
+should not be installed at all.
+
+Possible primary names are @samp{PROGRAMS}, @samp{LIBRARIES},
+@samp{SCRIPTS}, @samp{DATA}, and @samp{HEADERS}.
+
+FIXME currently TEXINFOS and MANS don't follow this rule, but they
+probably should.
+
+
 @node Programs
 @section Which Programs Are Built
 
@@ -262,20 +326,15 @@ single source file.  The source file must be listed in each ``_SOURCE''
 definition.
 
 Sometimes it is useful to determine the programs that are to be built at
-configure time.  For instance, GNU cpio only builts @code{mt} and
+configure time.  For instance, GNU @code{cpio} only builts @code{mt} and
 @code{rmt} under special circumstances.
 
 In this case, you must notify Automake of all the programs that can
 possibly be built, but at the same time cause the generated
 @file{Makefile.in} to use the programs specified by @code{configure}.
-You can do this using the @code{AM_PROGRAMS} variable.  Here is the
-relevant code from cpio:
-
-@example
-PROGRAMS = @@PROGS@@
-AM_PROGRAMS = cpio pax mt rmt
-@end example
-
+This is done trivially by making the @code{PROGRAMS} variable determined
+at configure time, and letting @code{automake} look in the install
+variables for the static list of programs.
 
 If you need to link against libraries that are not found by
 @code{configure}, you can use @samp{LDADD} to do so.  This variable
@@ -283,11 +342,12 @@ 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 to override the global @samp{LDADD}.
-(If this variable exists for a given program, then that program is not
-linked using @samp{LDADD}).
+@samp{@var{prog}_LDADD} variable (where @var{PROG} is the name of the
+program as it appears in @samp{PROGRAMS} to override the global
+@samp{LDADD}.  (If this variable exists for a given program, then that
+program is not linked using @samp{LDADD}.)
 
-For instance, in GNU cpio, @code{pax}, @code{cpio}, and @code{mt} are
+For instance, in GNU @code{cpio}, @code{pax}, @code{cpio}, and @code{mt} are
 linked against the library @file{libcpio.a}.  However, @code{rmt} is
 built in the same directory, and has no such link requirement.  Thus:
 
@@ -296,42 +356,30 @@ LDADD = ../lib/libcpio.a @@INTLLIBS@@
 rmt_LDADD =
 @end example
 
-
-@node Source
-@section Specifying Source Code
-
-Any header files in your distribution must be listed in the
-@samp{HEADERS} variable.  This is used both for making distributions,
-and for automatic de-ANSI-fication.
-
-@example
-HEADERS = hello.h getopt.h rx.h
-@end example
-
-@samp{HEADERS} should also be used to list any sources files which are
-conditionally built.  FIXME probably should use @samp{SOURCES} for this;
-that support might even work.
-
-
 @node Scripts
 @section Programs Which are Scripts
 
 It is possible to define and install programs which are scripts.  Such
 programs should be listed in the @samp{SCRIPTS} variable.
-@code{automake} doesn't define any dependencies for scripts; if a script
-is not to be installed as-is, the @file{Makefile.am} should include the
-appropriate rules.
+@code{automake} doesn't define any dependencies for scripts; the
+@file{Makefile.am} should include the appropriate rules.
+
+@code{automake} does assume that objects listed in the @samp{SCRIPTS}
+macro are derived objects; such objects are deleted by @code{make clean}.
 
 @code{automake} itself is a script that is generated at configure time
 from @file{automake.in}.  Here is how this is handled:
 
 @example
-SCRIPTS = automake
+bin_SCRIPTS = automake
 
 automake: automake.in
        CONFIG_FILES=$@@ CONFIG_HEADERS= ./config.status
 @end example
 
+Script objects can be installed in @samp{bindir}, @samp{sbindir}, or
+@samp{libexecdir}.
+
 
 @node Libraries
 @section Building Libraries
@@ -342,61 +390,64 @@ configure time, you may define @samp{AM_LIBRARIES} to supply
 @code{automake} with the full static list of possible libraries.
 
 For a given library @samp{zot}, the sources are taken to be in
-@samp{@var{zot}_SOURCES}, just as for programs.  Note that libraries and
+@samp{zot_SOURCES}, just as for programs.  Note that libraries and
 programs share one namespace in @code{automake}: one directory cannot
 contain both a library (``liblob.a'') and a program (``lob'') with the
 same name.
 
-Here is how the @file{libcpio.a} library is built in the GNU cpio
+Here is how the @file{libcpio.a} library is built in the GNU @code{cpio}
 distribution's @file{lib} subdirectory:
 
 @example
-LIBRARIES = cpio
+noinst_LIBRARIES = cpio
 cpio_SOURCES = dirname.c dstring.c error.c filemode.c \
 getopt.c getopt1.c idcache.c makepath.c octal.c \
 stpcpy.c stripslash.c userspec.c xmalloc.c xstrdup.c
 @end example
 
+Extra objects can be added to a library using the @code{library_LIBADD}
+variable.  This should be used for objects determined by
+@code{configure}.  Again from @code{cpio}:
 
-@node Libstuff
-@section Programs which are not User-Visible
+@example
+cpio_LIBADD = @@LIBOBJS@@ @@ALLOCA@@
+@end example
 
-@code{automake} allows for the automatic building and installation of
-programs which are not actually used by the user, but are instead used
-by other user-visible programs.  Such programs are installed in a
-separate directory from user-visible programs.
+Library objects can be installed in @samp{libdir} or @samp{pkglibdir}.
 
-For programs of this sort which are build from C source, define the
-names in @samp{LIBPROGRAMS}.  For scripts, use @samp{LIBSCRIPTS}.  In
-other respects, these variables are similar to @samp{PROGRAMS} and
-@samp{SCRIPTS}.  Both of these variables have ``AM_'' override forms.
 
-Here is how to generate a program named @code{goodbye}, a helper for
-@code{hello}:
+@node Headers
+@section Header files
 
-@example
-LIBPROGRAMS = goodbye
-goodbye_SOURCES = goodbye.c
-@end example
+Header files are specified by the @samp{HEADERS} family of variables.
+Generally header files are not installed, so the @samp{noinst_HEADERS}
+variable will be the most used.
+
+All header files must be listed somewhere; missing ones will not appear
+in the distribution.
+
+You can also put conditionally compiled source file names into a
+@samp{HEADERS} variable.  (This will probably change in a future
+release).
 
 
 @node Data
 @section Architecture-independent data files
 
-@code{automake} supports two different ways to install
-architecture-independent data files.
+@code{automake} supports the installation of miscellaneous data files
+using the @samp{DATA} family of variables.
+
+Such data can be installed in the directories @code{datadir},
+@code{sysconfdir}, @code{sharedstatedir}, @code{localstatedir}, or
+@code{pkgdatadir}.
 
-The first variable that can be used is @samp{DATA}.  This is intended to
-be used for only a small number of data files.  The files are installed
-in @samp{$@{datadir@}}.
+All such data files are included in the distribution.  (FIXME, this is
+probably a bug)
 
-The second variable that can be used is @samp{PACKAGEDATA}.  This is
-intended for a larger number of data files.  The files are installed in
-@samp{$@{datadir@}/$@{PACKAGE@}}.  This variable is what @code{automake}
-itself uses:
+Here is how @code{autoconf} installs its auxiliary data files:
 
 @example
-PACKAGEDATA = clean-kr.am clean.am compile-kr.am compile-vars.am \
+pkgdata_DATA = clean-kr.am clean.am compile-kr.am compile-vars.am \
 compile.am data.am depend.am dist-subd-top.am dist-subd-vars.am \
 dist-subd.am dist-vars.am dist.am footer.am header-vars.am header.am \
 libscripts.am libprograms.am libraries-vars.am libraries.am library.am \
@@ -405,9 +456,6 @@ remake-subd.am remake.am scripts.am subdirs.am tags.am tags-subd.am \
 texinfos-vars.am texinfos.am hack-make.sed nl-remove.sed
 @end example
 
-All @samp{DATA} and @samp{PACKAGEDATA} files are included in a
-distribution.
-
 
 @node Docs
 @section Texinfo and Man Pages
@@ -456,7 +504,7 @@ this matter.  FIXME xref).
 Man pages are declared using the @samp{MANS} macro.
 
 
-Here is how the documentation is handled in GNU cpio (which includes
+Here is how the documentation is handled in GNU @code{cpio} (which includes
 both Texinfo documentation and man pages):
 
 @example
@@ -564,10 +612,9 @@ esac
 @section What Gets Installed
 
 Naturally, @code{automake} handles the details of actually installing
-your program once it has been built.  Any objects specified in
-@samp{PROGRAMS}, @samp{LIBPROGRAMS}, @samp{SCRIPTS}, @samp{LIBSCRIPTS},
-@samp{DATA}, and @samp{PACKAGEDATA} are automatically installed in the
-appropriate place.
+your program once it has been built.  All @code{PROGRAMS},
+@code{SCRIPTS}, @code{LIBRARIES}, @code{DATA} and @code{HEADERS} are
+automatically installed in the appropriate places.
 
 @code{automake} also handles installing any specified info and man
 pages.
@@ -621,8 +668,6 @@ For instance, in the @code{automake} distribution,
 DIST_OTHER = automake.in
 @end example
 
-FIXME mention files that are found automatically but not printed by
---help.
 FIXME: describe DIST_SUBDIRS or not?  It is a hack which might go away.
 
 @node Tags
@@ -641,8 +686,14 @@ files from subdirectories.
 Also, if the variable @samp{ETAGS_ARGS} is defined, a @file{TAGS} file
 will be generated.  This variable is intended for use in directories
 which contain taggable source that @code{etags} does not understand.
-(For instance, it could be set to a regexp to recognize node names in
-Texinfo documentation)
+
+Here is how @code{automake} generates tags for its source, and for nodes
+in its Texinfo file:
+
+@example
+ETAGS_ARGS = automake.in --lang=none \
+ --regex='/^@@node[ \t]+\([^,]+\)/\1/' automake.texi
+@end example
 
 
 @node Dependencies
@@ -687,8 +738,7 @@ already used by @code{automake}.  However, various useful targets have a
 
 The targets that support a local version are @samp{all}, @samp{info},
 @samp{dvi}, @samp{check}, @samp{install-data}, @samp{install-exec}, and
-@samp{uninstall}.  (Currently @samp{install} is also supported, but this
-might go away)
+@samp{uninstall}.
 
 For instance, here is how to install a file in @file{/etc}:
 
diff --git a/data-clean.am b/data-clean.am
new file mode 100644 (file)
index 0000000..fb676c2
--- /dev/null
@@ -0,0 +1 @@
+## This file must exist.  FIXME.
index 08e31eae4d96231e524620d1d91ece908f3fbfcf..c1fdc904e7bb88cd1b568a0bc3b3135fcaf2b8a7 100644 (file)
--- a/depend.am
+++ b/depend.am
@@ -4,7 +4,8 @@
 
 MKDEP = gcc -MM
 
-DEP_FILES = $(patsubst %.o,.deps/%.P,$(OBJECTS))
+## Use ${kr} in case we are doing auto-deANSIfication.
+DEP_FILES = $(patsubst %.{kr}o,.deps/%.P,$(OBJECTS))
 
 ## We use ".P" as the name of our placeholder because it can't be
 ## duplicated by any C source file.  (Well, there could be ".c", but
index 6d13cf633efc3002dd6a059e12b4cf69acdbc3b6..a76be772960d52d92ab7bf20035e8fa8ad51339a 100644 (file)
@@ -11,12 +11,14 @@ libraries.am library.am mans-vars.am \
 program.am programs.am remake-hdr.am \
 remake-subd.am remake.am scripts.am subdirs.am tags.am tags-subd.am \
 tags-clean.am \
-texi-clean.am texi-version.am texinfos-vars.am texinfos.am
+texi-clean.am texi-version.am texinfos-vars.am texinfos.am \
+libraries-clean.am scripts-clean.am programs-clean.am data-clean.am
 
 DIST_OTHER = automake.in
 
 # The following requires a fixed version of the Emacs 19.30 etags.
-ETAGS_ARGS = automake.in
+ETAGS_ARGS = automake.in --lang=none \
+ --regex='/^@node[ \t]+\([^,]+\)/\1/' automake.texi
 
 # The simplest form of checking.
 check-local: automake
index 08e31eae4d96231e524620d1d91ece908f3fbfcf..c1fdc904e7bb88cd1b568a0bc3b3135fcaf2b8a7 100644 (file)
@@ -4,7 +4,8 @@
 
 MKDEP = gcc -MM
 
-DEP_FILES = $(patsubst %.o,.deps/%.P,$(OBJECTS))
+## Use ${kr} in case we are doing auto-deANSIfication.
+DEP_FILES = $(patsubst %.{kr}o,.deps/%.P,$(OBJECTS))
 
 ## We use ".P" as the name of our placeholder because it can't be
 ## duplicated by any C source file.  (Well, there could be ".c", but
index 35acf349d3e4103df70e8db350901ee341636d0c..0319e99d0dd4ecb536a18a30ec654eac5ac62b3f 100644 (file)
@@ -9,12 +9,3 @@ uninstall-@DIR@SCRIPTS:
          rm -f $(@DIR@dir)/`echo $$p|sed '$(transform)'`; \
        done
 
-mostlyclean-@DIR@SCRIPTS:
-
-clean-@DIR@SCRIPTS:
-       rm -f $(@DIR@_SCRIPTS)
-
-distclean-@DIR@SCRIPTS:
-
-maintainer-clean-@DIR@SCRIPTS:
-
diff --git a/libraries-clean.am b/libraries-clean.am
new file mode 100644 (file)
index 0000000..b232e69
--- /dev/null
@@ -0,0 +1,9 @@
+mostlyclean-@DIR@LIBRARIES:
+
+clean-@DIR@LIBRARIES:
+       rm -f $(@DIR@_LIBFILES)
+
+distclean-@DIR@LIBRARIES:
+
+maintainer-clean-@DIR@LIBRARIES:
+
index 3c3e47a4b1acf21d86b28e167c6878243b1f0642..b130ada1c00e76f49bb4d4c520d2ff92269fce4e 100644 (file)
@@ -2,6 +2,7 @@ install-@DIR@LIBRARIES: $(@DIR@_LIBFILES)
        $(topsrcdir)/mkinstalldirs $(@DIR@dir)
        for p in $(@DIR@_LIBFILES); do          \
          $(INSTALL_DATA) $$p $(@DIR@dir)/$$p;  \
+## Must ranlib after installing because mod time changes.
          $(RANLIB) $(@DIR@dir)/$$p;            \
        done
 
@@ -10,12 +11,3 @@ uninstall-@DIR@LIBRARIES:
          rm -f $(@DIR@dir)/$$p;                \
        done
 
-mostlyclean-@DIR@LIBRARIES:
-
-clean-@DIR@LIBRARIES:
-       rm -f $(@DIR@_LIBFILES)
-
-distclean-@DIR@LIBRARIES:
-
-maintainer-clean-@DIR@LIBRARIES:
-
diff --git a/programs-clean.am b/programs-clean.am
new file mode 100644 (file)
index 0000000..d606d95
--- /dev/null
@@ -0,0 +1,9 @@
+mostlyclean-@DIR@PROGRAMS:
+
+clean-@DIR@PROGRAMS:
+       rm -f $(@DIR@PROGRAMS)
+
+distclean-@DIR@PROGRAMS:
+
+maintainer-clean-@DIR@PROGRAMS:
+
index 4421d654ffd516719638c5cc7e35aa5d8f12c52e..2f2285d02197e121824ea2509899cfdf72789096 100644 (file)
@@ -9,12 +9,3 @@ uninstall-@DIR@PROGRAMS:
          rm -f $(@DIR@dir)/`echo $$p|sed '$(transform)'`; \
        done
 
-mostlyclean-@DIR@PROGRAMS:
-
-clean-@DIR@PROGRAMS:
-       rm -f $(@DIR@PROGRAMS)
-
-distclean-@DIR@PROGRAMS:
-
-maintainer-clean-@DIR@PROGRAMS:
-
diff --git a/scripts-clean.am b/scripts-clean.am
new file mode 100644 (file)
index 0000000..3ee5d19
--- /dev/null
@@ -0,0 +1,9 @@
+mostlyclean-@DIR@SCRIPTS:
+
+clean-@DIR@SCRIPTS:
+       rm -f $(@DIR@_SCRIPTS)
+
+distclean-@DIR@SCRIPTS:
+
+maintainer-clean-@DIR@SCRIPTS:
+
index 35acf349d3e4103df70e8db350901ee341636d0c..0319e99d0dd4ecb536a18a30ec654eac5ac62b3f 100644 (file)
@@ -9,12 +9,3 @@ uninstall-@DIR@SCRIPTS:
          rm -f $(@DIR@dir)/`echo $$p|sed '$(transform)'`; \
        done
 
-mostlyclean-@DIR@SCRIPTS:
-
-clean-@DIR@SCRIPTS:
-       rm -f $(@DIR@_SCRIPTS)
-
-distclean-@DIR@SCRIPTS:
-
-maintainer-clean-@DIR@SCRIPTS:
-
index 62d1eab6f4a3185bc03d10a7a50a208264e21e0c..2c816b6437e1fcf735e7e911a233d2e9115945e9 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 3 December
+@set UPDATED 8 December
 @set EDITION 0.24
 @set VERSION 0.24