[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