Sun Sep 27 20:02:21 1998 Tom Tromey <tromey@cygnus.com>
+ * automake.in (handle_ltlibraries): Wrote better comment about
+ EXTRA_LTLIBRARIES.
+
+ * automake.texi (Invoking Automake): Document --copy.
+ * automake.in (copy_missing): New global.
+ (parse_arguments): Recognize --copy/-c.
+ (require_file_internal): Handle $copy_missing. Fixed error
+ message.
+ (initialize_global_constants): Document -c/--copy.
+
* automake.texi: Document LIBOBJS trick.
* automake.in (handle_dist_worker): If DIST_SUBDIRS defined, use
# TRUE if missing standard files should be installed.
$add_missing = 0;
+# TRUE if we should copy missing files; otherwise symlink if possible.
+$copy_missing = 0;
+
# Files found by scanning configure.in for LIBOBJS.
%libsources = ();
{
$add_missing = 1;
}
+ elsif ($arglist[0] eq '--copy' || $arglist[0] eq 'c')
+ {
+ $copy_missing = 1;
+ }
elsif ($arglist[0] eq '--verbose' || $arglist[0] eq '-v')
{
$verbose = 1;
local ($rpath);
if ($instdirs{$onelib} eq 'EXTRA')
{
- # It's an EXTRA_ library, so we can't specify -rpath.
- # Yuck.
+ # It's an EXTRA_ library, so we can't specify -rpath,
+ # because we don't know where the library will end up.
+ # The user probably knows, but generally speaking automake
+ # doesn't -- and in fact configure could decide
+ # dynamically between two different locations.
$rpath = 's/\@RPATH\@//go;';
}
else
-a, --add-missing add missing standard files to package
--amdir=DIR directory storing config files
--build-dir=DIR directory where build being done (for dependencies)
+ -c, --copy with -a, copy missing files (default is symlink)
--cygnus assume program is part of Cygnus-style tree
--foreign set strictness to foreign
--gnits set strictness to gnits
# first, in case it is a dangling symlink.
$message = "installing \`$errfile'";
unlink ($errfile);
- if ($symlink_exists)
+ if ($symlink_exists && ! $copy_missing)
{
if (! symlink ($am_dir . '/' . $file, $errfile))
{
elsif (! system ('cp', $am_dir . '/' . $file, $errfile))
{
$suppress = 0;
- $trailer = "\n error while making link\n";
+ $trailer = "\n error while copying\n";
}
}
}
@code{AC_CANONICAL_HOST}. Automake is distributed with several of these
files; this option will cause the missing ones to be automatically added
to the package, whenever possible. In general if Automake tells you a
-file is missing, try using this option.
+file is missing, try using this option. By default Automake tries to
+make a symbolic link pointing to its own copy of the missing file; this
+can be changed with @code{--copy}.
@item --amdir=@var{dir}
Look for Automake data files in directory @var{dir} instead of in the
including dependencies into a @file{Makefile.in} generated by @code{make
dist}; it should not be used otherwise.
+@item -c
+@item --copy
+When used with @code{--add-missing}, causes installed files to be
+copied. The default is to make a symbolic link.
+
@item --cygnus
Causes the generated @file{Makefile.in}s to follow Cygnus rules, instead
of GNU or Gnits rules. @xref{Cygnus} for more information.