Gary Benson writes:
Andrew Haley wrote:
> Gary Benson writes:
> > Andrew Haley wrote:
> > > The way this traditionally works in UNIX is by using `make'.
> > >
> > > For example, to rebuild the mail database you simply go to
> > > /etc/mail and type
> > >
> > > make
> > >
> > > which does whatever is necessary.
> > >
> > > Why not do it this way with gcj's dependencies? Just go into
> > > /var/lib/gcj<blah> and run make? The makefile can then do
> > > everything that is necessary, using make's dependency analysis.
> >
> > That's fine for sendmail, where everything in /etc/mail is owned by
> > sendmail. GCJ can't know in advance what will be in /usr/lib/gcj, so
> > such a makefile would need to be edited or generated by something.
>
> I don't think so. All the makefile has to know is that the master
> db depends on *.db and *.so in some directory.
How would it cope with file deletions?
Use the directory as a dependency. Any deletions will cause the
directory to be touched.
------------------------------------------------------------------------
bar: foo
echo "update"
touch bar
------------------------------------------------------------------------
$ mkdir foo
$ touch foo/baz
$ make
echo "update"
update
touch bar
$ make
make: `bar' is up to date.
$ rm foo/baz
$ make
echo "update"
update
touch bar
Andrew.