
LFU
===

`lfu' recursively deletes files from the destination directory and
copies files from the source directory, as necessary, to make the
destination directory into a faithful copy of the source.  If a
`program' is specified, then the instructions in the program can
change the copying process, for example by specifying exactly which
files are to be copied, or how the status of the destination files
should differ from the status of the corresponding source files.

See the file NEWS for a list of major changes in the current release.

See the file INSTALL for generic compilation and installation instructions.

Mail suggestions and bug reports to paul@dcs.ed.ac.uk.


Making Changes to the Source
============================

Change the major version, or (usually) the release in configure.in
Make whatever changes are needed to the source
Do "automake; autoconf; ./configure; make" to build
(The configure might need some options - see below)

Edit the Changelog

Do "make ci"
This creates a distribution and checks all the files in and out.
Install the distribution

You might want to rcs -u all the RCS files when you have finished.

What's all this AMD stuff?
==========================

When lfu is creating "links" for shadow trees it creates links with
full pathnames (which is what you want). However, if you don't specify
full pathnames on the command line, then lfu prepends the current
working directory to the relative names to make them into full
pathnames. If you are using an automounter like AMD, the current
directory name will be some automount point which is *really* not the
kind of thing you want embedding in symbolic links.

If you have AMD source around, then lfu can link with some AMD modules
so that it will query AMD for the automount points and translate
automount points into more reasonable pathnames.

You can use the --enable-AMD option to configure to tell it to use any
AMD source tree. The tar file amq-upl102.tar is an upl102 AMD source
tree which has the makefile slightly modified so that it only builds
the modules used by lfu. This makes the build faster, and it makes it
less likely to fail the AMD compilatioon trying to make things you
don't need

Creating a distribution
=======================

Do "make dist" in this directory to create a tar.gz distribution file.

Make sure that the AMD and X options are enabled when the distribution is
built, otherwise it won't contain all the necessary files.


Installing under Linux
======================

Put the spec file in the SPEC dir and the .tar.gz file in the SOURCES dir,
together with the AMD source tar file.

Make a binary RPM by doing the following (as root)

	rpm -ba <spec-file>

Then install the RPM with "rpm -i". The RPM must be built as root,
otherwise the support files will be owned by the user who built
the RPM. Note that running rpm as root will read the root .rpmrc.

The RPM build performs all necessary configuration.


Installing under something else
===============================

Untar the tar.gz file in some temporary build directory.

	./configure
	make
	make install

If you want to include the AMD stuff, you might need --enable-AMD=<WHERE>
on the configure to specify the AMD source location. If the AMD sources
can't be found, lfu will be compiled without AMD support.

If the X libraries are in an unusual place, you might need to specify
those to configure as well. If the X libraries can't be found, lfu will
be compiled without X support (no monitor program).

If you want to put the monitor program somewhere in particular, do
--libexecdir=<SOME DIRECTORY>.

Options can also be given to configure to disable the caching and/or
debugging options of lfu.

The target "dcs-install" is equivalent to "install" but it uses the
dcs.ed.ac.uk local version of the "install" program to install the
binaries into /export.

Paul Anderson <paul@dcs.ed.ac.uk>


