The cleanest way to straighten all this out would be:
1) Move the enforcement script implementation to //open/util.
It really
doesn't belong under fennel. However, factor out the project-specific
boilerplate as a resource file fed to the script as a
parameter. Those
resource files should live under the individual projects.
2) For resgen, whose source isn't branched, just use the scripts
directly.
3) For other projects, follow our well-established pattern of treating
the script as a thirdparty dependency (same as we do for resgen).
Create an archive of the script and check it into thirdparty
with unpack
rules in the Makefile. That way it gets branched together with the
buildfiles which use it.
4) Change the builds for fennel, farrago, etc to refer to the
thirdparty
script location and feed in their project-specific boilerplate.
5) We could simplify all this with a single thirdparty archive for all
eigenbase-utils (resgen, properties, preamble enforcement scripts, and
whatever else we come up with in the future).
This is all a bit of work, so as soon as I have the Eigenbase JIRA
instance set up (about which more later) I will create a task
to remind
us of what needs to be done.
[reporter="jvs", created="Sun, 4 Dec 2005 03:01:19 -0500 (GMT-05:00)"] Email transcript below.