This is looking a bit more complicated than I expected, so I've done some rethinking about what I think each script should do:

build.sh and install.sh are end-user tools (not developer tools). As such, they should be geared towards a full install. They should be able to function from either the git repository or the distribution tarball, building what isn't present but skipping over what is pre-built so as to be as efficient as possible. They should also take as few arguments as possible, just what is necessary to specify build/installation localization.

make (through the Makefiles) is the developer interface. Build targets should exist for each piece separately. Likewise there should be clean targets which will remove the built files. Currently, the only target which will remove those files is maintainer-clean, which, of course, also removes the Makefile (requiring configure to be run again). With a clean target which removed the built files, but left the Makefiles intact, a forced rebuild would be much simpler (e.g. for the fonts it could be `make clean-ttf && make fonts`).

install-gtex.sh is a substitute for install targets in the tex, doc, and fonts folders (which are infeasible). It is thus a developer tool and should allow for fine grained control over what is installed and where. The end-user interface for installing the files in these folders is contained in install.sh, which provides just a subset of the available options.

Currently, I've probably been overly dependent on build.sh for my own work flow. I should probably switch to using make more often and having the right targets would make that considerably easier.


Let me apply this to your suggestions:

On 2016-05-08 10:40 PM, Henry So Jr. wrote:
1. Make build.sh build the docs if they don't exist.

Definitely a good idea.

2. Add a --force=pdf option to build.sh to force documents to be built
even if they exist by first deleting the PDFs.
>
3. Fix the --force=fonts option in build.sh to delete the TTFs in order
to truly force the fonts to be built.

Certainly if we have one, we should have the other here. However, based on my above thoughts, I'm not sure that either force option is necessary.

4. Add a gregorio target to the root makefile to build the executable
only, and have build.sh use this target for the first step of the build.

Yes and no. I like the idea of a Makefile target which just builds the executable, but don't think that build.sh needs to be made to use it.

5. Add --skip= options for gregorio, pdf, and fonts to skip the desired
step(s).

This goes hand-in-hand with 2 & 3.

6. Rewrite install-gtex.sh to parse options.

7. Rather than using the environment variable tricks, use options in
install-gtex.sh to prevent installation of fonts, docs, examples, and/or
font sources.

This is what got the whole thing started for me so I see this as a good idea.

8. Modify the gregorio-test harness to use the new install-gtex.sh
options rather than environment variable tricks.

I'm not sure what you have in mind here. What "environment variable tricks" are you referring to?

--
✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝
Br. Samuel, OSB
St. Anselm’s Abbey
Washington, DC
(R. Padraic Springuel)

PAX ☧ ΧΡΙΣΤΟΣ

_______________________________________________
Gregorio-devel mailing list
[email protected]
https://mail.gna.org/listinfo/gregorio-devel

Répondre à