office-gobmx/sysui/CustomTarget_share.mk

228 lines
8.8 KiB
Makefile
Raw Normal View History

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
share_WORKDIR := $(call gb_CustomTarget_get_workdir,sysui/share)
share_SRCDIR := $(SRCDIR)/sysui/desktop
LAUNCHERLIST_APPS := writer calc draw impress math base printeradmin startcenter
LAUNCHERLIST := $(LAUNCHERLIST_APPS) qstart xsltfilter
LAUNCHERS := $(foreach launcher,$(LAUNCHERLIST),$(share_SRCDIR)/menus/$(launcher).desktop)
MIMELIST := \
text \
text-template \
spreadsheet \
spreadsheet-template \
drawing \
drawing-template \
presentation \
presentation-template \
formula \
master-document \
oasis-text \
oasis-text-template \
oasis-text-flat-xml \
oasis-spreadsheet \
oasis-spreadsheet-template \
oasis-spreadsheet-flat-xml \
oasis-drawing \
oasis-drawing-template \
oasis-drawing-flat-xml \
oasis-presentation \
oasis-presentation-template \
oasis-presentation-flat-xml \
oasis-formula \
oasis-master-document \
oasis-database \
oasis-web-template \
ms-excel-sheet-12 \
ms-excel-sheet \
ms-excel-template-12 \
ms-powerpoint-presentation-12 \
ms-powerpoint-presentation \
ms-powerpoint-template-12 \
ms-word-document-12 \
ms-word-document \
ms-word-document2 \
ms-word-template-12 \
openxmlformats-officedocument-presentationml-presentation \
openxmlformats-officedocument-presentationml-template \
openxmlformats-officedocument-spreadsheetml-sheet \
openxmlformats-officedocument-spreadsheetml-template \
openxmlformats-officedocument-wordprocessingml-document \
openxmlformats-officedocument-wordprocessingml-template \
ms-excel-sheet-binary-12 \
extension
MIMEICONLIST := \
oasis-text \
oasis-text-template \
oasis-spreadsheet \
oasis-spreadsheet-template \
oasis-drawing \
oasis-drawing-template \
oasis-presentation \
oasis-presentation-template \
oasis-formula \
oasis-master-document \
oasis-database \
oasis-web-template \
text \
text-template \
spreadsheet \
spreadsheet-template \
drawing \
drawing-template \
presentation \
presentation-template \
formula \
master-document \
database \
extension
share_ICONS := $(foreach size,16x16 32x32 48x48,\
$(foreach contrast,hicolor locolor,\
$(foreach app,$(LAUNCHERLIST_APPS),\
$(share_SRCDIR)/icons/$(contrast)/$(size)/apps/$(app).png) \
$(foreach mime,$(MIMEICONLIST),\
$(share_SRCDIR)/icons/$(contrast)/$(size)/mimetypes/$(mime).png)))
MIMEKEYS := $(foreach mime,$(MIMELIST),$(share_SRCDIR)/mimetypes/$(mime).keys)
MIMEDESKTOPS := $(foreach mime,$(MIMELIST),$(share_SRCDIR)/mimetypes/$(mime).desktop)
ULFS := documents.ulf \
launcher_comment.ulf \
launcher_genericname.ulf \
launcher_unityquicklist.ulf \
launcher_name.ulf
PRODUCTLIST := libreoffice libreofficedev oxygenoffice
PKGVERSION := $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)
PKGVERSIONSHORT := $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR)
PRODUCTNAME.libreoffice := LibreOffice
PRODUCTNAME.libreofficeodev := LibreOfficeDev
PRODUCTNAME.oxygenoffice := OxygenOffice
UNIXFILENAME.libreoffice := $(PRODUCTNAME.libreoffice)$(PRODUCTVERSION)
UNIXFILENAME.libreofficedev := $(PRODUCTNAME.libreofficedev)$(PRODUCTVERSION)
UNIXFILENAME.oxygenoffice := $(PRODUCTNAME.oxygenoffice)$(PRODUCTVERSION)
$(eval $(call gb_CustomTarget_CustomTarget,sysui/share))
$(eval $(call gb_CustomTarget_register_targets,sysui/share,\
$(ULFS) \
$(foreach product,$(PRODUCTLIST),\
$(product)/build.flag \
$(product)/openoffice.org.xml \
$(product)/openoffice.mime \
$(product)/openoffice.applications \
$(product)/openoffice.keys \
$(product)/openoffice.sh \
$(product)/printeradmin.sh \
$(product)/create_tree.sh \
$(product)/mimelnklist \
$(product)/launcherlist) \
))
$(share_WORKDIR)/%/openoffice.org.xml: $(share_WORKDIR)/documents.ulf $(MIMEDESKTOPS) $(share_SRCDIR)/share/create_mime_xml.pl
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1)
$(PERL) $(share_SRCDIR)/share/create_mime_xml.pl $< > $@
$(share_WORKDIR)/%/openoffice.keys: \
$(share_SRCDIR)/mimetypes/openoffice.mime $(MIMEKEYS) $(share_SRCDIR)/share/brand.pl \
$(share_SRCDIR)/share/translate.pl $(share_WORKDIR)/documents.ulf
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1)
$(PERL) $(share_SRCDIR)/share/brand.pl -p $* -u $(UNIXFILENAME.$*) \
--iconprefix $(UNIXFILENAME.$*) $^ $(share_WORKDIR)/$*
$(PERL) $(share_SRCDIR)/share/translate.pl -p $* -d $(share_WORKDIR)/$* \
--ext "keys" --key "description" $(share_WORKDIR)/documents.ulf
cat $(MIMEKEYS) > $@
$(share_WORKDIR)/%/mimelnklist: $(MIMEDESKTOPS) $(share_SRCDIR)/share/brand.pl \
$(share_SRCDIR)/share/translate.pl $(share_WORKDIR)/documents.ulf
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1)
$(PERL) $(share_SRCDIR)/share/brand.pl -p $* -u $(UNIXFILENAME.$*) \
--iconprefix $(UNIXFILENAME.$*) $^ $(share_WORKDIR)/$*
$(PERL) $(share_SRCDIR)/share/translate.pl -p $* -d $(share_WORKDIR)/$* \
--ext "desktop" --key "Comment" $(share_WORKDIR)/documents.ulf
echo "$(MIMEDESKTOPS)" > $@
$(share_WORKDIR)/%/openoffice.mime: $(share_SRCDIR)/mimetypes/openoffice.mime
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,1)
cat $< | tr -d "\015" > $@
$(share_WORKDIR)/%/openoffice.sh: $(share_SRCDIR)/share/openoffice.sh
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,1)
cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$*)/g" > $@
$(share_WORKDIR)/%/printeradmin.sh: $(share_SRCDIR)/share/printeradmin.sh
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,1)
cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$*)/g" > $@
$(share_WORKDIR)/%/create_tree.sh: $(share_SRCDIR)/share/create_tree.sh $(share_WORKDIR)/%/mimelnklist $(share_WORKDIR)/%/printeradmin.sh \
$(share_WORKDIR)/%/openoffice.org.xml $(share_WORKDIR)/%/openoffice.applications $(share_WORKDIR)/%/openoffice.mime \
$(share_WORKDIR)/%/openoffice.keys $(share_WORKDIR)/%/launcherlist
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,1)
echo "#!/bin/sh" > $@
echo "PREFIX=$(UNIXFILENAME.$*)" >> $@
echo "ICON_PREFIX=$(UNIXFILENAME.$*)" >> $@
echo "ICON_SOURCE_DIR=$(SRCDIR)/sysui/desktop/icons" >> $@
echo "PRODUCTVERSION=$(PRODUCTVERSION)" >> $@
cat $< >> $@
chmod 774 $@
$(share_WORKDIR)/%/launcherlist: $(LAUNCHERS)
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
echo "$(addsuffix .desktop,$(filter-out qstart,$(LAUNCHERLIST)))" > $@
$(share_WORKDIR)/%/openoffice.applications: $(share_SRCDIR)/mimetypes/openoffice.applications
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,1)
cat $< | tr -d "\015" | sed -e "s/OFFICENAME/$(UNIXFILENAME.$*)/" -e "s/%PRODUCTNAME/$(PRODUCTNAME.$*) $(PRODUCTVERSION.$*)/" > $@
$(share_WORKDIR)/%/build.flag: $(share_SRCDIR)/share/brand.pl $(LAUNCHERS) \
$(share_SRCDIR)/share/translate.pl $(addprefix $(share_WORKDIR)/,$(ULFS))
mkdir -p $(dir $@)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1)
$(PERL) $(share_SRCDIR)/share/brand.pl -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -u '$$(UNIXPRODUCTNAME)$$(BRANDPACKAGEVERSION)' \
--iconprefix '$$(UNIXBASISROOTNAME)' $^ $(share_WORKDIR)/$*
$(PERL) $(share_SRCDIR)/share/translate.pl -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -d $(share_WORKDIR)/$* \
--ext "desktop" --key "Name" $(share_WORKDIR)/launcher_name.ulf
$(PERL) $(share_SRCDIR)/share/translate.pl -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -d $(share_WORKDIR)/$* \
--ext "desktop" --key "Comment" $(share_WORKDIR)/launcher_comment.ulf
$(PERL) $(share_SRCDIR)/share/translate.pl -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -d $(share_WORKDIR)/$* \
--ext "desktop" --key "GenericName" $(share_WORKDIR)/launcher_genericname.ulf
$(PERL) $(share_SRCDIR)/share/translate.pl -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -d $(share_WORKDIR)/$* \
--ext "desktop" --key "UnityQuickList" $(share_WORKDIR)/launcher_unityquicklist.ulf
touch $@
ifneq ($(WITH_LANG),)
$(share_WORKDIR)/%.ulf: $(share_SRCDIR)/share/%.ulf | $(call gb_Executable_get_runtime_dependencies,ulfex)
$(call gb_Output_announce,$@,$(true),SUM,1)
MERGEINPUT=`$(gb_MKTEMP)` && \
echo $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $@)).po) > $${MERGEINPUT} && \
$(call gb_Helper_abbreviate_dirs,\
$(call gb_Executable_get_command,ulfex) -i $< -o $@ -m $${MERGEINPUT} -l all ) && \
rm -rf $${MERGEINPUT}
else
$(share_WORKDIR)/%.ulf: $(share_SRCDIR)/share/%.ulf
cp $< $@
endif
# vim: set noet sw=4 ts=4: