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