[Libreoffice] Few word about set_soenv.in and config_host.mk.in
Norbert Thiebaud
nthiebaud at gmail.com
Mon Jan 2 08:19:35 PST 2012
set_soenv.in is the base for a perl program, executed during configure
that generate Env.Host.sh
in turn Env.Host.sh (and Env.Build.sh in case of cross-compile) need
to be 'sourced' in the shell... which lead to the need of some
recurdsion magic in the Makefile.
config_host.mk.in isthe base to generate a file config_host.k (and
config_build.mk in case of cross compile). this file is designed in
such way that it can be sourced in a shell _OR_ included directly in a
Makefile.
The later option would alleviate the need to recurse
The main issue involved in this conversion are:
- set_soenv would 'undef' any variable that end-up with an empty
value. Most of the build test of == "" and does not rely on ifndef,
but still there are exceptions which can cause trouble during the
conversion.
(Note: supporting the undef behavior is quite painfull to do in a way
that maintain the goal of being both source-able and include-able)
- set_soenv do path modification (to deal with windows mostly). it is
very easy to get confused as to when a PATH should be 'windows' like
and when it should be unix like... this is not help by the fact that
the dmake build system actually tweak things along the way...
- set_soenv deal with PATH. managing that properly is quite painful...
I have not even started to think how I'm going to do that (except that
I probably will need a kidn of path_munge() function in configure.in
so, if your build start to act stupid on master... that may be my fault :-)....
Norbert
More information about the LibreOffice
mailing list