Any objections against dropping support for using tcsh as the shell invoked by dmake within the OOo code base? Then bash would be the only remaining supported shell there, and some makefiles could be simplified (including ones I am currently writing).

Note that this would not impact what shells you can use to start the OOo build (i.e., the shell you execute configure, build, dmake, etc. in); in particular, configure would still generate two to-be-sourced scripts ...Env.Set and ...Env.Set.sh. (And it would similarly not affect what shells can be used with the Sun-Hamburg setsolar environment, either.)

The following details what I would like to change. How things work today: configure has an option --with-use-shell that accepts =tcsh and =bash, defaulting to tcsh. The generated to-be-sourced scripts (...Env.Set, ...Env.Set.sh) set the USE_SHELL environment variable to "tcsh" resp. "bash" and explicitly reset the SHELL environment variable to the pathname of the relevant shell. dmake prefers a set SHELL environment variable over any settings for that variable (via *:=) in solenv/inc/startup/..., so dmake effectively invokes the shell specified by --with-use-shell. Additionally, due to explicitly resetting the SHELL environment variable, anything that depends on it (e.g., system(3)) also uses the shell specified by --with-use-shell (however, this appears to be irrelevant when building OOo, as in DEV300_m69 I found no code outside .mk files that uses USE_SHELL for anything but obsolete 4nt checks).

How things would work in the future: configure has no --with-use-shell option anymore, and the generated to-be-sourced scripts affect no shell-related environment variables (in particular, neither USE_SHELL nor SHELL). solenv/inc/startup/startup.mk explicitly sets the dmake SHELL variable to /bin/bash (so dmake always invokes /bin/bash). All uses of USE_SHELL (to discriminate among bash and tcsh and already obsolete 4nt) are removed.

Two questions remain:

For one, the to-be-sourced scripts currently ensure that USE_SHELL's path is in PATH, but I see no reason for that?

For another, are there any relevant configurations where bash is not at /bin/bash? Currently, configure uses AC_PATH_PROG to find bash. If there are specific platforms that consistently use some other place than /bin/bash, this could be hard-coded in the relevant per-platform solenv/inc/startup file. If, however, we still need the general check in configure, we would still need some environment variable to transport the relevant information from configure to solenv/inc/startup.mk (which I would like to save, if possible).

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.org
For additional commands, e-mail: dev-h...@openoffice.org

Reply via email to