office-gobmx/sysui/desktop/debian/makefile.mk
2006-06-30 07:59:38 +00:00

270 lines
10 KiB
Makefile

#*************************************************************************
#
# OpenOffice.org - a multi-platform office productivity suite
#
# $RCSfile: makefile.mk,v $
#
# $Revision: 1.15 $
#
# last change: $Author: vg $ $Date: 2006-06-30 08:59:38 $
#
# The Contents of this file are made available subject to
# the terms of GNU Lesser General Public License Version 2.1.
#
#
# GNU Lesser General Public License Version 2.1
# =============================================
# Copyright 2005 by Sun Microsystems, Inc.
# 901 San Antonio Road, Palo Alto, CA 94303, USA
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1, as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#*************************************************************************
PRJ=..$/..
PRJNAME=sysui
TARGET=debian
# !!! FIXME !!!
# debian-menus file.
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
.INCLUDE : packtools.mk
# --- Product Version Information ----------------------------------
.INCLUDE : ../productversion.mk
# --- Files --------------------------------------------------------
# GNOME does not like icon names with more than one '.'
ICONPREFIX = $(UNIXFILENAME:s/.//g)
LAUNCHERLIST = writer calc draw impress math base printeradmin
LAUNCHERDEPN = $(foreach,i,$(LAUNCHERLIST) $(UNIXFILENAME)-$i.desktop)
LAUNCHERDIR = $(shell cd $(MISC)$/$(TARGET); pwd)
MIMELIST = \
text \
text-template \
spreadsheet \
spreadsheet-template \
drawing \
drawing-template \
presentation \
presentation-template \
formula \
master-document \
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
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
GNOMEMIMEDEPN = ../mimetypes/{$(MIMELIST)}.keys ../mimetypes/openoffice.mime
KDEMIMEDEPN = ../mimetypes/{$(MIMELIST)}.desktop
KDEMIMEFLAGFILE = \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mimelnk/application.flag
GNOMEICONLIST = \
{16x16 32x32 48x48}/apps/$(ICONPREFIX)-{$(LAUNCHERLIST)}.png \
{16x16 32x32 48x48}/mimetypes/$(ICONPREFIX)-{$(MIMEICONLIST)}.png
HCICONLIST = \
HighContrast/{16x16 32x32 48x48}/apps/$(ICONPREFIX)-{$(LAUNCHERLIST)}.png \
HighContrast/{16x16 32x32 48x48}/mimetypes/$(ICONPREFIX)-{$(HCMIMEICONLIST)}.png
KDEICONLIST = \
hicolor/{16x16 32x32 48x48}/apps/$(ICONPREFIX)-{$(LAUNCHERLIST)}.png \
hicolor/{16x16 32x32 48x48}/mimetypes/$(ICONPREFIX)-{$(MIMEICONLIST)}.png \
locolor/{16x16 32x32}/apps/$(ICONPREFIX)-{$(LAUNCHERLIST)}.png \
locolor/{16x16 32x32}/mimetypes/$(ICONPREFIX)-{$(MIMEICONLIST)}.png
.IF "$(PKGFORMAT)"!="$(PKGFORMAT:s/deb//)"
PKGNAME=openoffice.org-$(TARGET)-menus
DEBFILE=$(PKGDIR)/$(PKGNAME)_$(PKGVERSION)-$(PKGREV)_all.deb
DEBDEPN = \
$(MISC)/$(TARGET)/$(DEBFILE:f)/etc/$(UNIXFILENAME) \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/bin/soffice \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/bin/$(UNIXFILENAME) \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/bin/$(UNIXFILENAME)-printeradmin \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/lib/menu/$(PKGNAME) \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/applications/{$(LAUNCHERDEPN)} \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/applnk/Office \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/application-registry/$(UNIXFILENAME).applications \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mime/packages/openoffice.org.xml \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mime-info/$(UNIXFILENAME).keys \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mime-info/$(UNIXFILENAME).mime \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mimelnk/application.flag \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/icons/gnome/{$(GNOMEICONLIST)} \
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/icons/{$(KDEICONLIST)}
DEBDIR = $(shell cd $(BIN); pwd)
ULFDIR = $(COMMONMISC)$/desktopshare
.ENDIF
# --- Targets -------------------------------------------------------
.INCLUDE : target.mk
.IF "$(PKGFORMAT)"!="$(PKGFORMAT:s/deb//)"
ALLTAR : $(DEBFILE)
# --- launcher ------------------------------------------------------
%.desktop :
@$(MKDIRHIER) $(@:d)
@ln -sf $(subst,$(UNIXFILENAME)-, /etc/$(UNIXFILENAME)/share/xdg/$(@:f)) $@
%/Office :
@$(MKDIRHIER) $@
%/menu/$(PKGNAME) : $$(@:f)
@$(MKDIRHIER) $(@:d)
@cat $< | sed -e 's/%PRODUCTNAME/$(LONGPRODUCTNAME)/' -e 's/%PREFIX/$(UNIXFILENAME)/' \
-e 's/%ICONPREFIX/$(ICONPREFIX)/' > $@
# --- icons --------------------------------------------------------
#
# This target is responsible for copying the GNOME icons to their package specific target
# e.g. $(LAUNCHERDIR)/usr/share/icons/gnome/16x16/apps/openoffice-writer.png
#
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/icons/gnome/{$(GNOMEICONLIST)} : ../icons/hicolor/$$(@:d:d:d:d:f)/$$(@:d:d:f)/$$(@:f:s/$(ICONPREFIX)-//)
@$(MKDIRHIER) $(@:d)
@$(COPY) $< $@
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/icons/{$(KDEICONLIST)} : ../icons/$$(@:d:d:d:d:d:d:f)/$$(@:d:d:d:d:f)/$$(@:d:d:f)/$$(@:f:s/$(ICONPREFIX)-//)
@$(MKDIRHIER) $(@:d)
@$(COPY) $< $@
# --- mime types ---------------------------------------------------
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mime-info/$(UNIXFILENAME).keys : $(GNOMEMIMEDEPN) ../productversion.mk ../share/brand.pl ../share/translate.pl $(ULFDIR)/documents.ulf
@$(MKDIRHIER) $(@:d)
@echo Creating GNOME .keys file ..
@echo ---------------------------------
@$(PERL) ../share/brand.pl -p $(PRODUCTNAME) -u $(UNIXFILENAME) --iconprefix "$(ICONPREFIX)-" $(GNOMEMIMEDEPN) $(MISC)/$(TARGET)
@$(PERL) ../share/translate.pl -p $(PRODUCTNAME) -d $(MISC)/$(TARGET) --ext "keys" --key "description" $(ULFDIR)/documents.ulf
@cat $(MISC)/$(TARGET)/{$(MIMELIST)}.keys > $@
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mime-info/$(UNIXFILENAME).mime : ../mimetypes/openoffice.mime
@$(MKDIRHIER) $(@:d)
@echo Creating GNOME .mime file ..
@echo ---------------------------------
@cat $< | tr -d "\015" > $@
$(KDEMIMEFLAGFILE) : $(KDEMIMEDEPN) ../productversion.mk ../share/brand.pl ../share/translate.pl $(ULFDIR)/documents.ulf
@$(MKDIRHIER) $(@:db)
@echo Creating KDE mimelnk entries ..
@echo ---------------------------------
@$(PERL) ../share/brand.pl -p "$(PRODUCTNAME)" -u $(UNIXFILENAME) --prefix "$(UNIXFILENAME)-" --iconprefix "$(ICONPREFIX)-" $(KDEMIMEDEPN) $(@:db)
@$(PERL) ../share/translate.pl -p "$(PRODUCTNAME)" -d $(@:db) --prefix "$(UNIXFILENAME)-" --ext "desktop" --key "Comment" $(ULFDIR)/documents.ulf
@touch $@
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/application-registry/$(UNIXFILENAME).applications : ../productversion.mk ../mimetypes/openoffice.applications
@$(MKDIRHIER) $(@:d)
@echo Creating GNOME .applications file ..
@echo ---------------------------------
@cat ../mimetypes/openoffice.applications | tr -d "\015" | sed -e "s/openoffice/$(UNIXFILENAME)/" -e "s/%PRODUCTNAME/$(LONGPRODUCTNAME)/" > $@
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/share/mime/packages/openoffice.org.xml : $(COMMONMISC)$/desktopshare/openoffice.org.xml
@$(MKDIRHIER) $(@:d)
@cp $< $@
# --- script ------------------------------------------------------
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/bin/$(UNIXFILENAME) : ../share/openoffice.sh
@$(MKDIRHIER) $(@:d)
@cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME)/g" > $@
@chmod a+x $@
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/bin/$(UNIXFILENAME)-printeradmin : ../share/printeradmin.sh
@$(MKDIRHIER) $(@:d)
@cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME)/g" > $@
@chmod a+x $@
$(MISC)/$(TARGET)/$(DEBFILE:f)/usr/bin/soffice :
@$(MKDIRHIER) $(@:d)
@ln -sf /etc/$(UNIXFILENAME)/program/soffice $@
$(MISC)/$(TARGET)/$(DEBFILE:f)/etc/$(UNIXFILENAME) :
@$(MKDIRHIER) $(@:d)
@ln -sf /opt/openoffice.org$(PRODUCTVERSION) $@
# --- packaging ---------------------------------------------------
# getuid.so fakes the user/group for us
$(DEBFILE) : $(DEBDEPN) control postinst postrm prerm
-@$(RM) $(@:d)/$(PKGNAME)_*_all.deb $(BIN)$/$(PKGNAME)_*_all.deb
@$(MKDIRHIER) $(@:d)
@$(MKDIRHIER) $(MISC)/$(TARGET)/$(@:f)/DEBIAN
@cat control | tr -d "\015" > $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/control
@echo "Version: $(PKGVERSION)-$(PKGREV)" >> $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/control
@du -k -s $(MISC)/$(TARGET)/$(DEBFILE:f) | awk -F ' ' '{ printf "Installed-Size: %s\n", $$1 ; }' >> $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/control
@cat postinst | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME)/g" > $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/postinst
@cat postrm | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME)/g" > $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/postrm
@cat prerm | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME)/g" > $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/prerm
@chmod -R g-w $(MISC)/$(TARGET)/$(DEBFILE:f)
@chmod a+rx $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/post* $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN/pre*
@chmod g-s $(MISC)/$(TARGET)/$(DEBFILE:f)/DEBIAN
/bin/bash -c "LD_PRELOAD=$(SOLARBINDIR)/getuid.so dpkg-deb --build $(MISC)/$(TARGET)/$(@:f) $@" && $(TOUCH) $(MISC)$/$(TARGET).debflag
@+$(TYPE) $(MISC)$/$(TARGET).debflag || echo "ERROR: packing $(TARGET) failed! "
@chmod -R g+w $(MISC)/$(TARGET)/$(DEBFILE:f)
@$(RM) -r $(MISC)/$(TARGET)/$(@:f)/DEBIAN
@chmod -R g+w $(MISC)/$(TARGET)/$(DEBFILE:f)
.ENDIF