mirror of
https://github.com/ONLYOFFICE/desktop-apps.git
synced 2026-04-07 14:09:22 +08:00
363 lines
12 KiB
Makefile
363 lines
12 KiB
Makefile
PWD := $(shell pwd)
|
|
|
|
COMPANY_NAME ?= ONLYOFFICE
|
|
PRODUCT_NAME ?= Desktop Editors
|
|
PRODUCT_NAME_SHORT ?= $(subst $(empty) $(empty),,$(PRODUCT_NAME))
|
|
|
|
COMPANY_NAME_LOW = $(shell echo $(COMPANY_NAME) | tr A-Z a-z)
|
|
PRODUCT_NAME_LOW = $(shell echo $(PRODUCT_NAME_SHORT) | tr A-Z a-z)
|
|
|
|
PUBLISHER_NAME ?= Ascensio System SIA
|
|
PUBLISHER_URL ?= http://onlyoffice.com
|
|
SUPPORT_URL ?= http://support.onlyoffice.com
|
|
SUPPORT_MAIL ?= support@onlyoffice.com
|
|
|
|
PRODUCT_VERSION ?= 0.0.0
|
|
BUILD_NUMBER ?= 0
|
|
PACKAGE_EDITION ?= cool
|
|
|
|
BRANDING_DIR ?= $(PWD)/branding
|
|
|
|
ifeq ($(COMPANY_NAME), ONLYOFFICE)
|
|
PACKAGE_NAME := $(COMPANY_NAME_LOW)-$(PRODUCT_NAME_LOW)
|
|
else
|
|
PACKAGE_NAME := $(COMPANY_NAME_LOW)
|
|
endif
|
|
PACKAGE_VERSION := $(PRODUCT_VERSION)-$(BUILD_NUMBER)
|
|
|
|
UNAME_M ?= $(shell uname -m)
|
|
ifeq ($(UNAME_M),x86_64)
|
|
RPM_ARCH = x86_64
|
|
DEB_ARCH = amd64
|
|
TAR_ARCH = x64
|
|
URPMI_ARCH = x86_64
|
|
APT_RPM_ARCH = x86_64
|
|
ARCHITECTURE = 64
|
|
endif
|
|
ifneq ($(filter %86,$(UNAME_M)),)
|
|
RPM_ARCH = i686
|
|
DEB_ARCH = i386
|
|
URPMI_ARCH = i586
|
|
APT_RPM_ARCH = i586
|
|
TAR_ARCH = x86
|
|
ARCHITECTURE = 32
|
|
endif
|
|
ifneq ($(filter aarch%,$(UNAME_M)),)
|
|
RPM_ARCH = aarch64
|
|
DEB_ARCH = arm64
|
|
URPMI_ARCH = aarch64
|
|
APT_RPM_ARCH = aarch64
|
|
TAR_ARCH = aarch64
|
|
ARCHITECTURE = arm64
|
|
endif
|
|
|
|
RPM_BUILD_DIR = $(PWD)/rpm/builddir
|
|
APT_RPM_BUILD_DIR = $(PWD)/apt-rpm/builddir
|
|
URPMI_BUILD_DIR = $(PWD)/urpmi/builddir
|
|
TAR_BUILD_DIR = $(PWD)/tar
|
|
|
|
RPM_PACKAGE_DIR = $(RPM_BUILD_DIR)/RPMS/$(RPM_ARCH)
|
|
APT_RPM_PACKAGE_DIR = $(APT_RPM_BUILD_DIR)/RPMS/$(APT_RPM_ARCH)
|
|
URPMI_PACKAGE_DIR = $(URPMI_BUILD_DIR)/RPMS/$(URPMI_ARCH)
|
|
TAR_PACKAGE_DIR = $(TAR_BUILD_DIR)/$(TAR_ARCH)
|
|
|
|
RPM = $(RPM_PACKAGE_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION).$(RPM_ARCH).rpm
|
|
APT_RPM = $(APT_RPM_PACKAGE_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION).$(APT_RPM_ARCH).rpm
|
|
URPMI = $(URPMI_PACKAGE_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION).$(URPMI_ARCH).rpm
|
|
DEB = deb/$(PACKAGE_NAME)_$(PACKAGE_VERSION)_$(DEB_ARCH).deb
|
|
DEB_ASTRA = deb-astra/$(PACKAGE_NAME)_$(PACKAGE_VERSION)-astra_$(DEB_ARCH).deb
|
|
TAR = $(TAR_PACKAGE_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(TAR_ARCH).tar.gz
|
|
|
|
ifeq ($(COMPANY_NAME), ONLYOFFICE)
|
|
DESKTOPEDITORS_PREFIX := $(COMPANY_NAME_LOW)/$(PRODUCT_NAME_LOW)
|
|
DESKTOPEDITORS_EXEC := $(PACKAGE_NAME)
|
|
else
|
|
DESKTOPEDITORS_PREFIX := $(COMPANY_NAME_LOW)/desktopeditors
|
|
MEDIAVIEWER_PREFIX := $(COMPANY_NAME_LOW)/mediaviewer
|
|
DESKTOPEDITORS_EXEC := $(COMPANY_NAME_LOW)-desktopeditors
|
|
IMAGEVIEWER_EXEC := $(COMPANY_NAME_LOW)-imageviewer
|
|
VIDEOPLAYER_EXEC := $(COMPANY_NAME_LOW)-videoplayer
|
|
endif
|
|
|
|
LINUX_DEPS += common/usr/share/applications/variables.m4
|
|
BIN_FILES += common/usr/bin/$(DESKTOPEDITORS_EXEC)
|
|
DESKTOP_FILES += common/usr/share/applications/$(DESKTOPEDITORS_EXEC).desktop
|
|
ifeq ($(COMPANY_NAME), ONLYOFFICE)
|
|
SYMLINK += common/usr/bin/desktopeditors
|
|
else
|
|
BIN_FILES += common/usr/bin/$(IMAGEVIEWER_EXEC)
|
|
BIN_FILES += common/usr/bin/$(VIDEOPLAYER_EXEC)
|
|
DESKTOP_FILES += common/usr/share/applications/$(IMAGEVIEWER_EXEC).desktop
|
|
DESKTOP_FILES += common/usr/share/applications/$(VIDEOPLAYER_EXEC).desktop
|
|
SYMLINK += common/usr/bin/$(COMPANY_NAME_LOW)
|
|
DEB_DEPS += common/usr/share/flyfm/templates/desktopeditors.docx.desktop
|
|
DEB_DEPS += common/usr/share/flyfm/templates/desktopeditors.xlsx.desktop
|
|
DEB_DEPS += common/usr/share/flyfm/templates/desktopeditors.pptx.desktop
|
|
endif
|
|
LINUX_DEPS += $(BIN_FILES)
|
|
LINUX_DEPS += $(DESKTOP_FILES)
|
|
LINUX_DEPS += $(SYMLINK)
|
|
|
|
DEB_DEPS += deb/build/debian/changelog
|
|
DEB_DEPS += deb/build/debian/compat
|
|
DEB_DEPS += deb/build/debian/control
|
|
DEB_DEPS += deb/build/debian/postinst
|
|
DEB_DEPS += deb/build/debian/postrm
|
|
DEB_DEPS += deb/build/debian/prerm
|
|
DEB_DEPS += deb/build/debian/rules
|
|
DEB_DEPS += deb/build/debian/source/format
|
|
DEB_DEPS += deb/build/debian/$(PACKAGE_NAME).dirs
|
|
DEB_DEPS += deb/build/debian/$(PACKAGE_NAME).install
|
|
DEB_DEPS += deb/build/debian/$(PACKAGE_NAME).links
|
|
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/changelog
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/compat
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/control
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/postinst
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/postrm
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/prerm
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/rules
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/source/format
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/$(PACKAGE_NAME).dirs
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/$(PACKAGE_NAME).install
|
|
DEB_ASTRA_DEPS += deb-astra/build/debian/$(PACKAGE_NAME).links
|
|
DEB_ASTRA_DEPS += common/usr/share/flyfm/templates/desktopeditors.docx.desktop
|
|
DEB_ASTRA_DEPS += common/usr/share/flyfm/templates/desktopeditors.xlsx.desktop
|
|
DEB_ASTRA_DEPS += common/usr/share/flyfm/templates/desktopeditors.pptx.desktop
|
|
|
|
INSTALLER_DEPENDENCY += desktopeditor
|
|
|
|
USR_LIB_X64 := /usr/lib/x86_64-linux-gnu
|
|
|
|
SRC += ../../../../build_tools/out/linux_$(ARCHITECTURE)/$(DESKTOPEDITORS_PREFIX)
|
|
ifneq ($(COMPANY_NAME), ONLYOFFICE)
|
|
SRC += ../../../../build_tools/out/linux_$(ARCHITECTURE)/$(MEDIAVIEWER_PREFIX)
|
|
endif
|
|
|
|
|
|
INSTALLER := qt-installer/$(PACKAGE_NAME)-installer-$(TAR_ARCH)
|
|
#QT_LIBS := $(shell qmake -query QT_INSTALL_LIBS)
|
|
#QT_PLUGINS := $(shell qmake -query QT_INSTALL_PLUGINS)
|
|
|
|
PLATFORM := linux_64_static_stdlib
|
|
|
|
M4_PARAMS += -D M4_COMPANY_NAME='$(COMPANY_NAME)'
|
|
M4_PARAMS += -D M4_PRODUCT_NAME='$(PRODUCT_NAME)'
|
|
M4_PARAMS += -D M4_PUBLISHER_NAME='$(PUBLISHER_NAME)'
|
|
M4_PARAMS += -D M4_PUBLISHER_URL='$(PUBLISHER_URL)'
|
|
M4_PARAMS += -D M4_SUPPORT_MAIL='$(SUPPORT_MAIL)'
|
|
M4_PARAMS += -D M4_SUPPORT_URL='$(SUPPORT_URL)'
|
|
M4_PARAMS += -D M4_PACKAGE_NAME='$(PACKAGE_NAME)'
|
|
M4_PARAMS += -D M4_PACKAGE_VERSION='$(PACKAGE_VERSION)'
|
|
M4_PARAMS += -D M4_PACKAGE_EDITION='$(PACKAGE_EDITION)'
|
|
M4_PARAMS += -D M4_DESKTOPEDITORS_PREFIX='$(DESKTOPEDITORS_PREFIX)'
|
|
M4_PARAMS += -D M4_DESKTOPEDITORS_EXEC='$(DESKTOPEDITORS_EXEC)'
|
|
ifneq ($(COMPANY_NAME), ONLYOFFICE)
|
|
M4_PARAMS += -D M4_MEDIAVIEWER_PREFIX='$(MEDIAVIEWER_PREFIX)'
|
|
M4_PARAMS += -D M4_IMAGEVIEWER_EXEC='$(IMAGEVIEWER_EXEC)'
|
|
M4_PARAMS += -D M4_VIDEOPLAYER_EXEC='$(VIDEOPLAYER_EXEC)'
|
|
M4_PARAMS += -D M4_SCHEME_HANDLER='$(COMPANY_NAME_LOW)'
|
|
else
|
|
M4_PARAMS += -D M4_SCHEME_HANDLER='oo-office'
|
|
endif
|
|
M4_PARAMS += -D M4_DEB_ARCH='$(DEB_ARCH)'
|
|
ifdef ASTRALINUX_KEYS_DIR
|
|
M4_PARAMS += -D M4_ASTRALINUX_KEYS_DIR='$(abspath $(ASTRALINUX_KEYS_DIR))'
|
|
endif
|
|
ifdef ASTRALINUX_SIGN_IMAGE
|
|
M4_PARAMS += -D M4_ASTRALINUX_SIGN_IMAGE='$(ASTRALINUX_SIGN_IMAGE)'
|
|
endif
|
|
|
|
RPM_PARAMS += --define '_company_name $(COMPANY_NAME)'
|
|
RPM_PARAMS += --define '_product_name $(PRODUCT_NAME)'
|
|
RPM_PARAMS += --define '_publisher_name $(PUBLISHER_NAME)'
|
|
RPM_PARAMS += --define '_publisher_url $(PUBLISHER_URL)'
|
|
RPM_PARAMS += --define '_support_mail $(SUPPORT_MAIL)'
|
|
RPM_PARAMS += --define '_package_name $(PACKAGE_NAME)'
|
|
RPM_PARAMS += --define '_package_edition $(PACKAGE_EDITION)'
|
|
RPM_PARAMS += --define '_product_version $(PRODUCT_VERSION)'
|
|
RPM_PARAMS += --define '_build_number $(BUILD_NUMBER)'
|
|
RPM_PARAMS += --define '_desktopeditors_prefix $(DESKTOPEDITORS_PREFIX)'
|
|
RPM_PARAMS += --define '_desktopeditors_exec $(DESKTOPEDITORS_EXEC)'
|
|
ifneq ($(COMPANY_NAME), ONLYOFFICE)
|
|
RPM_PARAMS += --define '_mediaviewer_prefix $(MEDIAVIEWER_PREFIX)'
|
|
RPM_PARAMS += --define '_imageviewer_exec $(IMAGEVIEWER_EXEC)'
|
|
RPM_PARAMS += --define '_videoplayer_exec $(VIDEOPLAYER_EXEC)'
|
|
RPM_PARAMS += --define '_scheme_handler $(COMPANY_NAME_LOW)'
|
|
else
|
|
RPM_PARAMS += --define '_scheme_handler oo-office'
|
|
endif
|
|
RPM_PARAMS += --define '_binary_payload w7.xzdio'
|
|
|
|
.PHONY: all clean branding packages rpm deb deb-astra apt-rpm tar desktopeditor qt-redist libstdc++-addon libc-addon
|
|
|
|
all: rpm deb apt-rpm urpmi tar
|
|
#installer
|
|
|
|
rpm: $(RPM)
|
|
|
|
deb: $(DEB)
|
|
|
|
deb-astra: $(DEB_ASTRA)
|
|
|
|
tar: $(TAR)
|
|
|
|
apt-rpm: $(APT_RPM)
|
|
|
|
urpmi: $(URPMI)
|
|
|
|
rpm_aarch64 : ARCHITECTURE = arm64
|
|
rpm_aarch64 : RPM_ARCH = aarch64
|
|
rpm_aarch64 : $(RPM)
|
|
|
|
installer: $(INSTALLER)
|
|
|
|
PACKAGES += deb rpm apt-rpm urpmi tar
|
|
ifneq ($(COMPANY_NAME), ONLYOFFICE)
|
|
PACKAGES += deb-astra
|
|
endif
|
|
|
|
packages: $(PACKAGES)
|
|
|
|
clean:
|
|
rm -rfv \
|
|
common/etc \
|
|
common/opt \
|
|
$(LINUX_DEPS) \
|
|
deb/build \
|
|
deb/*.buildinfo \
|
|
deb/*.changes \
|
|
deb/*.ddeb \
|
|
deb/*.deb \
|
|
deb-astra \
|
|
$(RPM_BUILD_DIR) \
|
|
$(APT_RPM_BUILD_DIR) \
|
|
$(URPMI_BUILD_DIR) \
|
|
$(TAR_BUILD_DIR) \
|
|
rpm/$(PACKAGE_NAME).spec \
|
|
apt-rpm/$(PACKAGE_NAME).spec \
|
|
urpmi/$(PACKAGE_NAME).spec \
|
|
$(INSTALLER)\
|
|
*.tar.gz
|
|
|
|
branding: $(BRANDING_DIR)
|
|
cp -rf $(BRANDING_DIR)/* $(PWD)/
|
|
|
|
desktopeditor: branding $(LINUX_DEPS)
|
|
mkdir -p common/opt
|
|
cp -rft common/opt $(SRC)
|
|
|
|
cp -rf ../../../common/package/license/agpl-3.0.htm common/opt/desktopeditors/LICENSE.htm
|
|
cp -rf ../../../common/package/license/3dparty/3DPARTYLICENSE common/opt/desktopeditors
|
|
|
|
cp -rf ../../../common/package/mimetypes common/opt/desktopeditors
|
|
|
|
chmod 755 common/opt/desktopeditors/DesktopEditors
|
|
ifneq ($(COMPANY_NAME), ONLYOFFICE)
|
|
chmod 755 common/opt/mediaviewer/ImageViewer
|
|
chmod 755 common/opt/mediaviewer/VideoPlayer
|
|
endif
|
|
|
|
qt-redist:
|
|
cp -r -L -t common/opt/desktopeditors/ \
|
|
$(QT_PLUGINS)/bearer \
|
|
$(QT_PLUGINS)/imageformats \
|
|
$(QT_PLUGINS)/platforms \
|
|
$(QT_PLUGINS)/platformthemes \
|
|
$(QT_PLUGINS)/printsupport \
|
|
$(QT_LIBS)/libQt5Core.so.5 \
|
|
$(QT_LIBS)/libQt5DBus.so.5 \
|
|
$(QT_LIBS)/libQt5Gui.so.5 \
|
|
$(QT_LIBS)/libQt5PrintSupport.so.5 \
|
|
$(QT_LIBS)/libQt5Widgets.so.5 \
|
|
$(QT_LIBS)/libQt5X11Extras.so.5 \
|
|
$(QT_LIBS)/libQt5XcbQpa.so.5
|
|
# $(USR_LIB_X64)/libicudata.so.52 \
|
|
# $(USR_LIB_X64)/libicui18n.so.52 \
|
|
# $(USR_LIB_X64)/libicuuc.so.52
|
|
|
|
$(RPM): desktopeditor rpm/$(PACKAGE_NAME).spec
|
|
cd rpm && rpmbuild -bb \
|
|
--define "_topdir $(RPM_BUILD_DIR)" \
|
|
--define "_package_arch $(RPM_ARCH)" \
|
|
--target $(RPM_ARCH) \
|
|
$(RPM_PARAMS) \
|
|
package.spec
|
|
|
|
deb/build/debian/% : deb/template/%
|
|
mkdir -pv $(@D) && cp -fv $< $@
|
|
|
|
deb/build/debian/% : deb/template/%.m4
|
|
mkdir -pv $(@D) && m4 $(M4_PARAMS) $< > $@
|
|
|
|
deb/build/debian/$(PACKAGE_NAME).% : deb/template/package.%.m4
|
|
mkdir -pv $(@D) && m4 $(M4_PARAMS) $< > $@
|
|
|
|
deb-astra/build/debian/% : deb/template/%
|
|
mkdir -pv $(@D) && cp -fv $< $@
|
|
|
|
deb-astra/build/debian/% : deb/template/%.m4
|
|
mkdir -pv $(@D) && \
|
|
m4 $(M4_PARAMS) -D M4_PACKAGE_VERSION='$(PACKAGE_VERSION)-astra' $< > $@
|
|
|
|
deb-astra/build/debian/$(PACKAGE_NAME).% : deb/template/package.%.m4
|
|
mkdir -pv $(@D) && \
|
|
m4 $(M4_PARAMS) -D M4_PACKAGE_VERSION='$(PACKAGE_VERSION)-astra' $< > $@
|
|
|
|
$(DEB): desktopeditor $(DEB_DEPS)
|
|
cd deb/build && dpkg-buildpackage -b -uc -us
|
|
|
|
$(DEB_ASTRA): desktopeditor $(DEB_ASTRA_DEPS)
|
|
cd deb-astra/build && dpkg-buildpackage -b -uc -us
|
|
|
|
$(APT_RPM): desktopeditor apt-rpm/$(PACKAGE_NAME).spec
|
|
cd apt-rpm && setarch $(APT_RPM_ARCH) rpmbuild -bb \
|
|
--define "_topdir $(APT_RPM_BUILD_DIR)" \
|
|
--define "_package_arch $(APT_RPM_ARCH)" \
|
|
--target $(RPM_ARCH) \
|
|
$(RPM_PARAMS) \
|
|
package.spec
|
|
|
|
$(URPMI): desktopeditor urpmi/$(PACKAGE_NAME).spec
|
|
cd urpmi && setarch $(URPMI_ARCH) rpmbuild -bb \
|
|
--define "_topdir $(URPMI_BUILD_DIR)" \
|
|
--define "_package_arch $(URPMI_ARCH)" \
|
|
--target $(RPM_ARCH) \
|
|
$(RPM_PARAMS) \
|
|
package.spec
|
|
|
|
$(TAR): desktopeditor
|
|
mkdir -p $(TAR_PACKAGE_DIR)
|
|
ifeq ($(COMPANY_NAME), ONLYOFFICE)
|
|
mkdir -p common/opt/desktopeditors/app
|
|
cp $(DESKTOP_FILES) common/opt/desktopeditors/app
|
|
tar -czf $@ --owner=root --group=root -C common/opt desktopeditors
|
|
else
|
|
tar -czf $@ --owner=root --group=root -C common/opt desktopeditors mediaviewer
|
|
endif
|
|
|
|
$(INSTALLER): $(INSTALLER_DEPENDENCY)
|
|
cd qt-installer && ./make-install.sh
|
|
|
|
common/usr/bin/$(DESKTOPEDITORS_EXEC) : common/usr/bin/desktopeditors.m4
|
|
common/usr/bin/$(IMAGEVIEWER_EXEC) : common/usr/bin/imageviewer.m4
|
|
common/usr/bin/$(VIDEOPLAYER_EXEC) : common/usr/bin/videoplayer.m4
|
|
common/usr/share/applications/variables.m4 : branding
|
|
common/usr/share/applications/$(DESKTOPEDITORS_EXEC).desktop : common/usr/share/applications/desktopeditors.desktop.m4 common/usr/share/applications/variables.m4
|
|
common/usr/share/applications/$(IMAGEVIEWER_EXEC).desktop : common/usr/share/applications/imageviewer.desktop.m4 common/usr/share/applications/variables.m4
|
|
common/usr/share/applications/$(VIDEOPLAYER_EXEC).desktop : common/usr/share/applications/videoplayer.desktop.m4 common/usr/share/applications/variables.m4
|
|
common/usr/bin/desktopeditors : common/usr/bin/$(DESKTOPEDITORS_EXEC)
|
|
common/usr/bin/$(COMPANY_NAME_LOW) : common/usr/bin/$(DESKTOPEDITORS_EXEC)
|
|
|
|
$(BIN_FILES) $(DESKTOP_FILES) :
|
|
m4 -I'common/usr/share/applications' $(M4_PARAMS) $< > $@
|
|
|
|
$(SYMLINK) :
|
|
ln -srf $< $@
|
|
|
|
% : %.m4
|
|
m4 $(M4_PARAMS) $< > $@
|
|
|
|
%/$(PACKAGE_NAME).spec : %/package.spec
|
|
cp $< $@
|