Gary Benson writes:
That aside, having the database rebuilding as an alternative (so
possibly a no-op) would also cause problems. Imagine this:
1. User has GCJ as their JVM.
2. a) User installs some Fedora packages.
b) GCJ database is rebuilt into a consistent state.
3. User switches to some other JVM.
4. a) User installs some more Fedora packages.
b) GCJ database is not rebuilt.
5. User switches to GCJ as their JVM.
The user has ended up with a broken database. His applications will
be slower, and in some (admittedly broken) cases will suddenly start
to fail.
Rather than being an alternative, the rebuild command would need to
rebuild all databases that could be installed on the system. This
could be done by for example having all JVMs drop scripts in some
database, and having 'aot-compile --rebuild' or whatever call them all
in turn.
Use make. If any .db files are added or altered, the .db gets
rebuilt. If they aren't, it isn't. The makefile contains the
commands that do the right thing.
make is designed to solve this kind of problem.
Andrew.