* automake.in (usage): Changed bug-reporting address.
(handle_dist): Use undef, not delete.
+Wed Feb 26 08:41:11 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * automake.in (%obsolete_macros): Reintroduce, with hints for what
+ to do to upgrade the support.
+
+ * automake.in, ltlib-clean.am, ltlib.am, ltlibrary.am: Revamped
+ libtool support to use the _LTLIBRARIES primary.
+
Wed Feb 26 00:20:39 1997 Tom Tromey <tromey@cygnus.com>
* automake.in (handle_tags): In default case, add @tags_deps to
info_TEXINFOS = automake.texi
pkgdata_DATA = clean-kr.am clean.am compile-kr.am comp-vars.am \
-compile.am data.am dejagnu.am depend.am depend2.am dist-vars.am footer.am \
-header.am header-vars.am kr-extra.am libs.am library.am libtool.am ltlibs.am \
-mans-vars.am program.am progs.am remake-hdr.am \
-remake.am scripts.am subdirs.am tags.am tags-clean.am \
-texi-vers.am texinfos.am libs-clean.am \
-progs-clean.am data-clean.am COPYING INSTALL texinfo.tex ansi2knr.c \
-ansi2knr.1 lisp.am lisp-clean.am
+compile.am data.am dejagnu.am depend.am depend2.am dist-vars.am \
+footer.am header.am header-vars.am kr-extra.am libs.am library.am \
+libtool.am ltlib.am ltlibrary.am mans-vars.am program.am progs.am \
+remake-hdr.am remake.am scripts.am subdirs.am tags.am tags-clean.am \
+texi-vers.am texinfos.am libs-clean.am ltlib-clean.am progs-clean.am \
+data-clean.am COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 \
+lisp.am lisp-clean.am
## These must all be executable when installed.
pkgdata_SCRIPTS = config.guess config.sub install-sh interlock mdate-sh \
info_TEXINFOS = automake.texi
pkgdata_DATA = clean-kr.am clean.am compile-kr.am comp-vars.am \
-compile.am data.am dejagnu.am depend.am depend2.am dist-vars.am footer.am \
-header.am header-vars.am kr-extra.am libs.am library.am libtool.am ltlibs.am \
-mans-vars.am program.am progs.am remake-hdr.am \
-remake.am scripts.am subdirs.am tags.am tags-clean.am \
-texi-vers.am texinfos.am libs-clean.am \
-progs-clean.am data-clean.am COPYING INSTALL texinfo.tex ansi2knr.c \
-ansi2knr.1 lisp.am lisp-clean.am
+compile.am data.am dejagnu.am depend.am depend2.am dist-vars.am \
+footer.am header.am header-vars.am kr-extra.am libs.am library.am \
+libtool.am ltlib.am ltlibrary.am mans-vars.am program.am progs.am \
+remake-hdr.am remake.am scripts.am subdirs.am tags.am tags-clean.am \
+texi-vers.am texinfos.am libs-clean.am ltlib-clean.am progs-clean.am \
+data-clean.am COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 \
+lisp.am lisp-clean.am
pkgdata_SCRIPTS = config.guess config.sub install-sh interlock mdate-sh \
mkinstalldirs elisp-comp ylwrap acinstall
# Keys of this hash are names of dependency files to ignore.
%omit_dependencies = ();
+# Map from obsolete macros to hints for new macros.
+# FIXME complete the list so that there are no `0' hints.
+%obsolete_macros =
+ (
+ 'AC_FEATURE_CTYPE', "use \`AC_HEADER_STDC'",
+ 'AC_FEATURE_ERRNO', "add \`strerror' to \`AC_REPLACE_FUNCS(...)'",
+ 'AC_FEATURE_EXIT', 0,
+ 'AC_SYSTEM_HEADER', 0,
+
+ # Autoconf macros that Automake enhances.
+ 'AC_CONFIG_HEADER', "use \`AM_CONFIG_HEADER'",
+
+ 'fp_C_PROTOTYPES', "use \`AM_C_PROTOTYPES'",
+ 'fp_PROG_CC_STDC', "use \`AM_PROG_CC_STDC'",
+ 'fp_PROG_INSTALL', "use \`AM_PROG_INSTALL'",
+ 'fp_WITH_DMALLOC', "use \`AM_WITH_DMALLOC'",
+ 'fp_WITH_REGEX', "use \`AM_WITH_REGEX'",
+ 'gm_PROG_LIBTOOL', "use \`AM_PROG_LIBTOOL'",
+ 'jm_MAINTAINER_MODE', "use \`AM_MAINTAINER_MODE'",
+ 'md_TYPE_PTRDIFF_T', "use \`AM_TYPE_PTRDIFF_T'",
+ 'ud_PATH_LISPDIR', "use \`AM_PATH_LISPDIR'",
+
+ # Now part of autoconf proper, under a different name.
+ 'AM_FUNC_FNMATCH', "use \`AC_FUNC_FNMATCH'",
+ 'fp_FUNC_FNMATCH', "use \`AC_FUNC_FNMATCH'",
+ 'AM_SANITY_CHECK_CC', "automatically done by \`AC_PROG_CC'",
+
+# These aren't quite obsolete.
+# 'md_PATH_PROG',
+ );
+
+# Regexp to match the above macros.
+$obsolete_rx = '(' . join ('|', keys %obsolete_macros) . ')';
+
\f
&initialize_global_constants;
&handle_configure ($output, $makefile, @secondary_inputs);
&handle_gettext;
&handle_libraries;
+ &handle_ltlibraries;
&handle_programs;
&handle_scripts;
#
# Handle libtool.
#
- local ($libtool) = '';
+ local ($ltcompile, $ltlink) = ('', '');
if ($seen_libtool)
{
&define_configure_variable ("LIBTOOL");
- $libtool = '$(LIBTOOL) --mode=link ';
+ $ltcompile = '$(LIBTOOL) --mode=compile ';
+ $ltlink = '$(LIBTOOL) --mode=link ';
}
#
&define_configure_variable ("CXXFLAGS");
&define_variable ('CXXCOMPILE', '$(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS)');
+ &define_variable ('LTCXXCOMPILE',
+ $ltcompile . '$(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS)')
+ if ($seen_libtool);
+
&define_variable ('CXXLINK', $libtool . '$(CXX) $(LDFLAGS) -o $@');
local ($ext);
$output_rules .= ("$ext.o:\n"
. "\t\$(CXXCOMPILE) -c \$<\n");
$output_rules .= ("$ext.lo:\n"
- . "\t\$(LIBTOOL) --mode=compile \x$(CXXCOMPILE) -c \$<\n")
+ . "\t\$(LTCXXCOMPILE) -c \$<\n")
if ($seen_libtool);
}
&define_configure_variable ('CFLAGS');
&define_variable ('COMPILE',
'$(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)');
- &define_variable ('LINK', $libtool . '$(CC) $(LDFLAGS) -o $@');
+ &define_variable ('LTCOMPILE',
+ $ltcompile .
+ '$(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)')
+ if ($seen_libtool);
+ &define_variable ('LINK', $ltlink . '$(CC) $(LDFLAGS) -o $@');
if (! defined $configure_vars{'CC'})
{
# Automatically handle @LIBOBJS@ and @ALLOCA@. Basically this
# means adding entries to dep_files.
- if ($lsearch eq '@LIBOBJS@')
+ if ($lsearch =~ /^\@(LT)?LIBOBJS\@$/)
{
push (@dep_list, $lsearch);
$seen_libobjs = 1;
if (! keys %libsources)
{
- &am_line_error ($var, "\@LIBOBJS\@ seen but never set in \`configure.in'");
+ &am_line_error ($var, "\@$1" . "LIBOBJS\@ seen but never set in \`configure.in'");
}
local ($iter, $rewrite);
}
}
}
- elsif ($lsearch eq '@ALLOCA@')
+ elsif ($lsearch =~ /^\@(LT)?ALLOCA\@$/)
{
push (@dep_list, $lsearch);
&am_line_error ($var,
- "\@ALLOCA\@ seen but \`AC_FUNC_ALLOCA' not in \`configure.in'")
+ "\@$1" . "ALLOCA\@ seen but \`AC_FUNC_ALLOCA' not in \`configure.in'")
if ! defined $libsources{'alloca.c'};
$dep_files{'.deps/alloca.P'} = 1;
&require_file_with_line ($var, $FOREIGN, 'alloca.c');
# Handle C programs.
sub handle_programs
{
- local (@proglist) = &am_install_var ('-clean', '-ltlibs',
+ local (@proglist) = &am_install_var ('-clean',
'progs', 'PROGRAMS',
'bin', 'sbin', 'libexec', 'pkglib',
'noinst', 'check');
&define_configure_variable ('RANLIB');
}
+# Handle shared libraries.
+sub handle_ltlibraries
+{
+ local (@liblist) = &am_install_var ('-clean',
+ 'ltlib', 'LTLIBRARIES',
+ 'lib', 'pkglib');
+ return if ! @liblist;
+
+ local (%instdirs);
+ local (%valid) = &am_primary_prefixes ('LTLIBRARIES', 'lib', 'pkglib');
+
+ local ($key);
+ foreach $key (keys %valid)
+ {
+ if (&variable_defined ($key . '_LTLIBRARIES'))
+ {
+ if (!$seen_libtool)
+ {
+ &am_line_error ($key . '_LTLIBRARIES', "library used but \`LIBTOOL' not defined in \`configure.in'");
+ # Only get this error once.
+ $configure_vars{'LIBTOOL'} = 1;
+ $seen_libtool = 1;
+ }
+
+ # Get the installation directory of each library.
+ next if ($key eq 'EXTRA');
+ for (&variable_value_as_list ($key . '_LTLIBRARIES'))
+ {
+ if ($instdirs{$_})
+ {
+ &am_error ("\`$_' is already going to be installed in \`$instdirs{$_}'");
+ }
+ else
+ {
+ $instdirs{$_} = $key;
+ }
+ }
+ }
+ }
+
+ local ($onelib);
+ local ($munge);
+ local ($xlib);
+ local ($seen_libobjs) = 0;
+ foreach $onelib (@liblist)
+ {
+ # Check that the library fits the standard naming convention.
+ if ($onelib !~ /^lib.*\.la$/)
+ {
+ # FIXME this should only be a warning for foreign packages
+ # FIXME should put line number here. That means mapping
+ # from library name back to variable name.
+ &am_error ("\`$onelib' is not a standard libtool library name");
+ }
+
+ local ($obj) = &get_object_extension ($onelib);
+
+ # Canonicalize names.
+ ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c;
+ if ($xlib ne $onelib)
+ {
+ local ($xt);
+ foreach $xt ('_LIBADD', '_LDFLAGS', '_SOURCES', '_OBJECTS', '_DEPENDENCIES')
+ {
+ &am_line_error ($onelib . $xt,
+ "invalid variable \`" . $onelib . $xt
+ . "'; should be \`" . $xlib . $xt . "'")
+ if &variable_defined ($onelib . $xt);
+ }
+ }
+
+ if (! &variable_defined ($xlib . '_LDFLAGS'))
+ {
+ # Define the lib_LDFLAGS variable.
+ &define_variable ($xlib . '_LDFLAGS', '');
+ }
+
+ if (&variable_defined ($xlib . '_LIBADD'))
+ {
+ if (&handle_lib_objects ($xlib, $xlib . '_LIBADD', 0))
+ {
+ $seen_libobjs = 1;
+ }
+ }
+ else
+ {
+ # Generate support for conditional object inclusion in
+ # libraries.
+ &define_variable ($xlib . "_LIBADD", '');
+ }
+
+ local ($linker) = &handle_source_transform ($xlib, $onelib, $obj);
+
+ # Determine program to use for link.
+ local ($xlink);
+ if (&variable_defined ($xlib . '_LINK'))
+ {
+ $xlink = $xlib . '_LINK';
+ }
+ else
+ {
+ $xlink = $linker ? $linker : 'LINK';
+ }
+
+
+ $output_rules .=
+ &file_contents_with_transform ('s/\@LTLIBRARY\@/'
+ . $onelib . '/go;'
+ . 's/\@XLTLIBRARY\@/'
+ . $xlib . '/go;'
+ . 's/\@DIR\@/'
+ . $instdirs{$onelib} . '/go;'
+ . 's/\@XLINK\@/' . $xlink . '/go;',
+ 'ltlibrary');
+ }
+
+ if ($seen_libobjs)
+ {
+ foreach $onelib (@liblist)
+ {
+ # Canonicalize names.
+ ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c;
+ if (&variable_defined ($xlib . '_LIBADD'))
+ {
+ &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
+ }
+ }
+ }
+}
+
# See if any _SOURCES variable were misspelled. Also, make sure that
# EXTRA_ variables don't contain configure substitutions.
sub check_typos
}
}
- if (/(fp_WITH_DMALLOC|fp_WITH_REGEX|fp_FUNC_FNMATCH|fp_PROG_INSTALL|fp_C_PROTOTYPES|jm_MAINTAINER_MODE|ud_GNU_GETTEXT)/)
+ if (/$obsolete_rx/o)
{
- &am_conf_line_error ($filename, $., "\`$1' is obsolete; use corresponding \`AM_' macro");
+ local ($hint) = '';
+ if ($obsolete_macros{$1})
+ {
+ $hint = '; ' . $obsolete_macros{$1};
+ }
+ &am_conf_line_error ($filename, $., "\`$1' is obsolete$hint");
}
# Process the AC_OUTPUT macro.
{
$seen_libtool = 1;
$libtool_line = $.;
+ $configure_vars{'LIBTOOL'} = 1;
$configure_vars{'RANLIB'} = 1;
$configure_vars{'CC'} = 1;
# AM_PROG_LIBTOOL runs AC_CANONICAL_HOST. Make sure we
{
local (@args) = @_;
- local ($do_clean, $do_ltlibs) = (0, 0);
- local ($more_xform) = '';
- while (@args)
- {
- if ($args[0] eq '-clean')
- {
- $do_clean = 1;
- }
- if ($args[0] eq '-ltlibs')
- {
- $do_ltlibs = 1;
- if ($seen_libtool)
+ local ($do_clean) = 0;
+
+ local ($ltxform);
+ if (defined $configure_vars{'LIBTOOL'})
{
- # Note that we explicitly set the mode, to avoid
- # lossage if the program name isn't what we expect.
- $more_xform = 's/\@LIBTOOL\@/\$(LIBTOOL) --mode=install/;';
+ # Transform '@LIBTOOL ...@' to '$(LIBTOOL) ...'
+ $ltxform = 's/\@LIBTOOL([^\@]*)\@/\$(LIBTOOL) $1/;';
}
else
{
- $more_xform = 's/\@LIBTOOL\@//;';
+ # Delete '@LIBTOOL ...@'
+ $ltxform = 's/\@LIBTOOL([^\@]*)\@//;';
}
+
+ while (@args)
+ {
+ if ($args[0] eq '-clean')
+ {
+ $do_clean = 1;
}
elsif ($args[0] !~ /^-/)
{
shift (@args);
}
local ($file, $primary, @prefixes) = @args;
- unshift (@prefixes, 'lib') if ($do_ltlibs);
local (@used) = ();
local (@result) = ();
}
next;
}
-
- if ($do_ltlibs)
- {
- if ($rcurs =~ /^lib.*\.l?a$/)
- {
- if (! $seen_libtool)
- {
- &am_line_error ($one_name,
- "\`$rcurs' is a libtool library name, but AM_PROG_LIBTOOL is not in \`configure.in'");
- $seen_libtool = 1;
- }
-
- # Check that libtool libraries go only into
- # libdir. Ignore `EXTRA' libtool libraries.
- if ($rcurs =~ /^lib.*\.la$/ && $X ne 'lib'
- && $X ne 'EXTRA')
- {
- &am_line_error ($one_name,
- "libtool library \`$rcurs' must only be installed in libdir");
- }
- elsif ($X =~ /^s?bin|libexec$/)
- {
- &am_line_error ($one_name,
- "library \`$rcurs' must not be installed in a binary directory");
- }
- }
- elsif ($X eq 'lib')
- {
- &am_line_error ($one_name,
- "only libraries (not \`$rcurs') may be installed in libdir");
- }
- }
push (@result, $rcurs);
}
next;
}
- if ($do_ltlibs && $X eq 'lib')
- {
- $output_rules .=
- &file_contents_with_transform ('s/\@DIR\@/' . $X . '/go;',
- 'ltlibs');
- }
- else
- {
$output_rules .=
&file_contents_with_transform ('s/\@DIR\@/' . $X . '/g;'
- . $more_xform,
+ . $ltxform,
$file);
- }
push (@uninstall, 'uninstall-' . $X . $primary);
push (@phony, 'uninstall-' . $X . $primary);
[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h])
@end example
@cvindex AC_CONFIG_HEADER
-Note that Automake does not currently currently check to make sure the
-@code{AC_OUTPUT} command is correct. Hopefully a future version of
-@code{autoconf} will let Automake handle this automatically.
@item AC_CONFIG_AUX_DIR
Automake will look for various helper scripts, such as
@node Invoking aclocal
@section Auto-generating aclocal.m4
+Automake includes a number of Autoconf macros which can be used in your
+package; some of them are actually required by Automake in certain
+situations. These macros must be defined in your @file{aclocal.m4};
+otherwise they will not be seen by @code{autoconf}.
+
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 Automake-provided macros, without having to
search around. Also, the @code{aclocal} mechanism is extensible for use
by other packages.
+At startup, @code{aclocal} scans all the @samp{.m4} files it can find,
+looking for macro definitions. Then it scans @file{configure.in}. Any
+mention of one of the macros found in the first step causes that macro,
+and any macros it in turn requires, to be put into @file{aclocal.m4}.
+
+The contents of @file{acinclude.m4}, if it exists, are also
+automatically included in @file{aclocal.m4}. This is useful for
+incorporating local macros into @file{configure}.
+
@code{aclocal} accepts the following options:
@table @code
@node Extending aclocal
@section Writing your own aclocal macros
-... explain format of macro files
-... explain how to get your own macros installed (using acinstall)
-... explain situations where this is actually useful (eg gettext)
+Aclocal doesn't have any built-in knowledge of any macros, so it is easy
+to extend it with your own macros.
+
+This is mostly used for libraries which want to supply their own
+Autoconf macros for use by other programs. For instance the
+@code{gettext} library supplies a macro @code{AM_GNU_GETTEXT} which
+should be used by any package using @code{gettext}. When the library is
+installed, it installs this macro so that @code{aclocal} will find it.
+
+A file of macros should be a series of @code{AC_DEFUN}'s. Aclocal also
+understands @code{AC_REQUIRE}, so it is safe to put each macro in a
+separate file.
+A macro file's name should end in @samp{.m4}. Such files should be
+installed in @file{$(datadir)/aclocal}.
@node Top level
@chapter The top-level @file{Makefile.am}
* A Program:: Building a program
* A Library:: Building a library
* LIBOBJS:: Special handling for LIBOBJS and ALLOCA
+* A Shared Library:: Building a Libtool library
* Program variables:: Variables used when building a program
* Yacc and Lex:: Yacc and Lex support
* C++:: C++ and other languages
name of the primary is @samp{LIBRARIES}. Libraries can be installed in
@code{libdir} or @code{pkglibdir}.
+@xref{A Shared Library}, for information on how to build shared
+libraries using Libtool and the @samp{LTLIBRARIES} primary.
+
Each @samp{_LIBRARIES} variable is a list of the libraries to be built.
For instance to create a library named @file{libcpio.a}, but not install
it, you would write:
libcpio_a_LIBADD = @@LIBOBJS@@ @@ALLOCA@@
@end example
-@unnumberedsubsec Building Libraries with @code{libtool}
-
-The innovation used by GNU Libtool (@pxref{Top, , The Libtool Manual,
-libtool, The Libtool Manual}) is that libraries are programs.
-
-So, if you have GNU Libtool and want to use it to build your libraries,
-you should use the @samp{lib_PROGRAMS} variable (@pxref{Using Automake,
-, Using Automake with Libtool, libtool, The Libtool Manual}).
-
@node LIBOBJS
@section Special handling for LIBOBJS and ALLOCA
@code{@@LIBOBJS@@} and @code{@@ALLOCA@@} are specially recognized in any
@samp{_LDADD} or @samp{_LIBADD} variable.
+@node A Shared Library
+@section Building a Shared Library
+
+Building shared libraries is a relatively complex matter. For this
+reason, GNU Libtool (@pxref{Top, , The Libtool Manual, libtool, The
+Libtool Manual}) was created to help build shared libraries in a
+platform-independent way.
+
+Automake uses Libtool to build libraries declared with
+@samp{LTLIBRARIES} primary. Each @samp{_LTLIBRARIES} variable is a list
+of shared libraries to build. For instance, to create a library named
+@file{libgettext.a} and its corresponding shared libraries, and install
+them in @samp{libdir}, write:
+
+@example
+lib_LTLIBRARIES = libgettext.la
+@end example
+
+Note that shared libraries @emph{must} be installed, so
+@samp{noinst_LTLIBRARIES} and @samp{check_LTLIBRARIES} are not allowed.
+
+For each library, the @samp{library_LIBADD} variable contains the names
+of extra libtool objects (@samp{.lo} files) to add to the shared
+library. The @samp{library_LDFLAGS} variable contains any additional
+libtool flags, such as @samp{-version-info} or @samp{-static}.
+
+@xref{Using Automake, Using Automake with Libtool, libtool, The Libtool
+Manual, The Libtool Manual}, for more information.
@node Program variables
@section Variables used when building a program
@table @code
@item INCLUDES
A list of @samp{-I} options. This can be set in your @file{Makefile.am}
-if you have special directories you want to look in.
+if you have special directories you want to look in. @code{automake}
+already provides some @samp{-I} options automatically. In particular it
+generates @samp{-I$(srcdir)} and a @samp{-I} pointing to the directory
+holding @file{config.h} (if you've used @code{AC_CONFIG_HEADER} or
+@code{AM_CONFIG_HEADER}).
@item COMPILE
This is the command used to actually compile a C source file. The
* Emacs Lisp:: Emacs Lisp
* gettext:: Gettext
* Guile:: Guile
+* Libtool:: Libtool
@end menu
@node Emacs Lisp
the Emacs found by @code{AM_PATH_LISPDIR}. If you wish to avoid
byte-compiling, simply define the variable @samp{ELCFILES} to be empty.
@vindex ELCFILES
+Byte-compiled Emacs Lisp files are not portable among all versions of
+Emacs, so it makes sense to turn this off if you expect sites to have
+more than one version of Emacs installed. Furthermore, many packages
+don't actually benefit from byte-compilation. Still, we recommand that
+you leave it enabled by default. It is probably better for sites with
+strange setups to cope for themselves than to make the installation less
+nice for everybody else.
@node gettext
@section Gettext
As the Guile module code matures, no doubt the Automake support will
grow as well.
+@node Libtool
+@section Libtool
+
+Automake provides support for GNU Libtool (@pxref{Top, , The Libtool
+Manual, libtool, The Libtool Manual}) with the @samp{LTLIBRARIES}
+primary. @xref{A Shared Library}.
@node Documentation
@chapter Building documentation
info_TEXINFOS = automake.texi
pkgdata_DATA = clean-kr.am clean.am compile-kr.am comp-vars.am \
-compile.am data.am dejagnu.am depend.am depend2.am dist-vars.am footer.am \
-header.am header-vars.am kr-extra.am libs.am library.am libtool.am ltlibs.am \
-mans-vars.am program.am progs.am remake-hdr.am \
-remake.am scripts.am subdirs.am tags.am tags-clean.am \
-texi-vers.am texinfos.am libs-clean.am \
-progs-clean.am data-clean.am COPYING INSTALL texinfo.tex ansi2knr.c \
-ansi2knr.1 lisp.am lisp-clean.am
+compile.am data.am dejagnu.am depend.am depend2.am dist-vars.am \
+footer.am header.am header-vars.am kr-extra.am libs.am library.am \
+libtool.am ltlib.am ltlibrary.am mans-vars.am program.am progs.am \
+remake-hdr.am remake.am scripts.am subdirs.am tags.am tags-clean.am \
+texi-vers.am texinfos.am libs-clean.am ltlib-clean.am progs-clean.am \
+data-clean.am COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 \
+lisp.am lisp-clean.am
## These must all be executable when installed.
pkgdata_SCRIPTS = config.guess config.sub install-sh interlock mdate-sh \
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
-install-@DIR@PROGRAMS: $(@DIR@_PROGRAMS)
+install-@DIR@LTLIBRARIES: $(@DIR@_LTLIBRARIES)
$(NORMAL_INSTALL)
$(mkinstalldirs) $(@DIR@dir)
## Funny invocation because Makefile variable can be empty, leading to
## a syntax error in sh.
- @list="$(@DIR@_PROGRAMS)"; for p in $$list; do \
+ @list="$(@DIR@_LTLIBRARIES)"; for p in $$list; do \
if test -f $$p; then \
## Note that we explicitly set the libtool mode. This avoids any lossage
## if the program doesn't have a name that libtool expects.
- echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(@DIR@dir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(@DIR@dir)/$$p; \
+ echo "@LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/$$p"; \
+ @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/$$p; \
else :; fi; \
done
-uninstall-@DIR@PROGRAMS:
- list="$(@DIR@_PROGRAMS)"; for p in $$list; do \
- $(LIBTOOL) --mode=uninstall rm -f $(@DIR@dir)/$$p; \
+uninstall-@DIR@LTLIBRARIES:
+ list="$(@DIR@_LTLIBRARIES)"; for p in $$list; do \
+ @LIBTOOL --mode=uninstall@ rm -f $(@DIR@dir)/$$p; \
done
--- /dev/null
+## automake - create Makefile.in from Makefile.am
+## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+@LTLIBRARY@: $(@XLTLIBRARY@_OBJECTS) $(@XLTLIBRARY@_DEPENDENCIES)
+ $(@XLINK@) -rpath $(@DIR@dir) $(@XLTLIBRARY@_LDFLAGS) $(@XLTLIBRARY@_OBJECTS) $(@XLTLIBRARY@_LIBADD) $(LIBS)
## a syntax error in sh.
@list="$(@DIR@_PROGRAMS)"; for p in $$list; do \
if test -f $$p; then \
-## It is harmless to unconditionally use $(LIBTOOL) here because it
-## will be null in non-libtoolized packages, and even if it is set to
-## a real libtool, its behaviour is identical to normal INSTALL_PROGRAM.
-## Note that we explicitly set the libtool mode. This avoids any lossage
-## if the program doesn't have a name that libtool expects.
- echo " @LIBTOOL@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`"; \
- @LIBTOOL@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`; \
+## Note that we explicitly set the libtool mode. This avoids any
+## lossage if the install program doesn't have a name that libtool
+## expects.
+ echo " @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`"; \
+ @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`; \
else :; fi; \
done
--- /dev/null
+## automake - create Makefile.in from Makefile.am
+## Copyright (C) 1997 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+mostlyclean-@DIR@LTLIBRARIES:
+
+clean-@DIR@LTLIBRARIES:
+ test -z "$(@DIR@_LTLIBRARIES)" || rm -f $(@DIR@_LTLIBRARIES)
+
+distclean-@DIR@LTLIBRARIES:
+
+maintainer-clean-@DIR@LTLIBRARIES:
--- /dev/null
+## automake - create Makefile.in from Makefile.am
+## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+install-@DIR@LTLIBRARIES: $(@DIR@_LTLIBRARIES)
+ $(NORMAL_INSTALL)
+ $(mkinstalldirs) $(@DIR@dir)
+## Funny invocation because Makefile variable can be empty, leading to
+## a syntax error in sh.
+ @list="$(@DIR@_LTLIBRARIES)"; for p in $$list; do \
+ if test -f $$p; then \
+## Note that we explicitly set the libtool mode. This avoids any lossage
+## if the program doesn't have a name that libtool expects.
+ echo "@LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/$$p"; \
+ @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/$$p; \
+ else :; fi; \
+ done
+
+uninstall-@DIR@LTLIBRARIES:
+ list="$(@DIR@_LTLIBRARIES)"; for p in $$list; do \
+ @LIBTOOL --mode=uninstall@ rm -f $(@DIR@dir)/$$p; \
+ done
--- /dev/null
+## automake - create Makefile.in from Makefile.am
+## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+@LTLIBRARY@: $(@XLTLIBRARY@_OBJECTS) $(@XLTLIBRARY@_DEPENDENCIES)
+ $(@XLINK@) -rpath $(@DIR@dir) $(@XLTLIBRARY@_LDFLAGS) $(@XLTLIBRARY@_OBJECTS) $(@XLTLIBRARY@_LIBADD) $(LIBS)
## a syntax error in sh.
@list="$(@DIR@_PROGRAMS)"; for p in $$list; do \
if test -f $$p; then \
-## It is harmless to unconditionally use $(LIBTOOL) here because it
-## will be null in non-libtoolized packages, and even if it is set to
-## a real libtool, its behaviour is identical to normal INSTALL_PROGRAM.
-## Note that we explicitly set the libtool mode. This avoids any lossage
-## if the program doesn't have a name that libtool expects.
- echo " @LIBTOOL@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`"; \
- @LIBTOOL@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`; \
+## Note that we explicitly set the libtool mode. This avoids any
+## lossage if the install program doesn't have a name that libtool
+## expects.
+ echo " @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`"; \
+ @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p $(@DIR@dir)/`echo $$p|sed '$(transform)'`; \
else :; fi; \
done