[Libreoffice] Removing DLLPOSTFIX

Christian Lohmaier lohmaier+libreoffice at googlemail.com
Tue May 24 03:04:13 PDT 2011


On Tue, May 24, 2011 at 8:18 AM, Francois Tigeot <ftigeot at wolfpond.org> wrote:
> On Mon, May 23, 2011 at 11:22:28AM -0600, Tor Lillqvist wrote:
>> > If removing the suffix is too much work for 3.5,
>>
>> Nah, why would it be that much work? If it is agreed that those shared libraries that use those suffixes are ones that binary extensions don't link to anyway, let's just do it.
>
> Fine. Most of the code using DLLPOSTFIX in dmakefiles is quite simple and a
> quick sed invocation should be enough to get rid of it.
>
> The new gbuild code should not be too difficult to clean either.
>
> The only real difficulties I see will be with these files in
> bootstrap/solenv/inc:
>
> _tg_shl.mk
> tg_shl.mk
> tg_wntx64.mk
>
> with rules such as
>
>  SHL$(TNR)VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
>
> What do these do exactly ?

SHL$(TNR)VERSIONOBJDEP
The TNR variable gets replaced by mkunroll - i.e. the makefile you're
looking at is not the one that is actually used, but a template for
others.
the actual template will contain SHL1VERSIONOBJDEP, SHL2VERSIONOBJDEP, ....

$(VERSIONOBJ:d)
:d means directory portion of the path in NAME,

$(VERSIONOBJ:f:s/.o/.obj/)
:f → filename portion of the file, is combined with the subsitution
(:s) of .o → .obj

$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))
alternate way of doing a substitution
$(VERSIONOBJ:f:s/.o/.obj/) can also be written as
$(subst,.o,.obj $(VERSIONOBJ:f))
i.e. it replaces $(DLLPOSTFIX) in $(SHL$(TNR)TARGET) by _dflt

$(DLLPOSTFIX) in $(SHL$(TNR)TARGET) is replaced by _dflt

last but not least foo{bar}baz means:
for every token in bar prepend foo, and append baz, i.e. evaluate to
"foobar1baz foobar2baz foobar3baz" if bar actually results in "bar1
bar2 bar3"

> I guess I can't just rip out the lines containing
> DLLPOSTFIX from the above files and expect a build to still work ...

Nope, that above recipe is too late/only a fraction of the situations
that need to be adjusted. But for a start setting DLLPOSTFIX to "" in
the platform-specific macros should work.

ciao
Christian


More information about the LibreOffice mailing list