[Libreoffice] gbuild - libraries with version number

Matúš Kukan matus.kukan at gmail.com
Fri Sep 2 10:58:56 PDT 2011


Hi,

I'd really like to have this done.
We need few libraries with version number.. like libuno_sal.so.3
Probably this is not problem for Windows?
Until now, it's not possible to do so in gbuild.

I have just come up with patch below.
(But probably we want to do this in completely different way)
I'd appreciate any help or direction which way to go.

Use with $(eval $(call gb_Library_Library,salhelper,3))
The first part with Clean probably does nothing.

But then.. there could be another problems with versions. I'll write
another mail about this.

diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index db6d961..31319d2 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -46,13 +46,15 @@
 $(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) :
        $(call gb_Helper_abbreviate_dirs,\
                rm -f $(OUTDIR)/lib/$*$(gb_Library_PLAINEXT) \
-                       $(AUXTARGETS))
+                       $(if $(VERSION),rm -f
$(OUTDIR)/lib/$*$(gb_Library_PLAINEXT).$(VERSION)) \
+                               $(AUXTARGETS))

 # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule
because they are indistinguishable on windows
 $(gb_Library_OUTDIRLOCATION)/%$(gb_Library_PLAINEXT) :
        $(call gb_Helper_abbreviate_dirs,\
                $(call gb_Deliver_deliver,$<,$@) \
-                       $(foreach target,$(AUXTARGETS), && $(call
gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target))))
+                       $(if $(VERSION),&& mv $@ $@.$(VERSION) && cd
$(dir $@) && ln -sf $(notdir $@).$(VERSION) $(notdir $@)) \
+                               $(foreach target,$(AUXTARGETS), &&
$(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target))))

 define gb_Library_Library
 ifeq (,$$(findstring $(1),$$(gb_Library_KNOWNLIBS)))
@@ -60,6 +62,7 @@ $$(eval $$(call gb_Output_info,Currently known
libraries are: $(sort $(gb_Librar
 $$(eval $$(call gb_Output_error,Library $(1) must be registered in
Repository.mk))
 endif
 $(call gb_Library_get_target,$(1)) : AUXTARGETS :=
+$(call gb_Library_get_target,$(1)) : VERSION := $(2)
 $(call gb_Library__Library_impl,$(1),$(call
gb_Library_get_linktargetname,$(1)))
 $(call gb_Library_add_default_nativeres,$(1),default)

Thanks,

Matúš


More information about the LibreOffice mailing list