xref: /OK3568_Linux_fs/buildroot/package/mupdf/mupdf.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# mudpf
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun# python-pymupdf's version must match mupdf's version
8*4882a593SmuzhiyunMUPDF_VERSION = 1.18.0
9*4882a593SmuzhiyunMUPDF_SOURCE = mupdf-$(MUPDF_VERSION)-source.tar.xz
10*4882a593SmuzhiyunMUPDF_SITE = https://mupdf.com/downloads/archive
11*4882a593SmuzhiyunMUPDF_LICENSE = AGPL-3.0+
12*4882a593SmuzhiyunMUPDF_LICENSE_FILES = COPYING
13*4882a593SmuzhiyunMUPDF_CPE_ID_VENDOR = artifex
14*4882a593SmuzhiyunMUPDF_INSTALL_STAGING = YES
15*4882a593SmuzhiyunMUPDF_DEPENDENCIES = \
16*4882a593Smuzhiyun	freetype \
17*4882a593Smuzhiyun	gumbo-parser \
18*4882a593Smuzhiyun	harfbuzz \
19*4882a593Smuzhiyun	host-pkgconf \
20*4882a593Smuzhiyun	jbig2dec jpeg \
21*4882a593Smuzhiyun	lcms2 openjpeg \
22*4882a593Smuzhiyun	xlib_libX11 \
23*4882a593Smuzhiyun	zlib
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun# 0002-Bug-703366-Fix-double-free-of-object-during-linearization.patch
26*4882a593SmuzhiyunMUPDF_IGNORE_CVES += CVE-2021-3407
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun# 0003-Bug-703791-Stay-within-hash-table-max-key-size-in-cached-color-converter.patch
29*4882a593SmuzhiyunMUPDF_IGNORE_CVES += CVE-2021-37220
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun# The pkg-config name for gumbo-parser is `gumbo`.
32*4882a593SmuzhiyunMUPDF_PKG_CONFIG_PACKAGES = \
33*4882a593Smuzhiyun	freetype2 \
34*4882a593Smuzhiyun	gumbo \
35*4882a593Smuzhiyun	harfbuzz \
36*4882a593Smuzhiyun	libjpeg \
37*4882a593Smuzhiyun	zlib
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunMUPDF_CFLAGS = \
40*4882a593Smuzhiyun	$(TARGET_CFLAGS) \
41*4882a593Smuzhiyun	`$(PKG_CONFIG_HOST_BINARY) --cflags $(MUPDF_PKG_CONFIG_PACKAGES)` \
42*4882a593Smuzhiyun	-fPIC # -fPIC is needed because the Makefile doesn't append it.
43*4882a593Smuzhiyun
44*4882a593SmuzhiyunMUPDF_LDFLAGS = \
45*4882a593Smuzhiyun	$(TARGET_LDFLAGS) \
46*4882a593Smuzhiyun	`$(PKG_CONFIG_HOST_BINARY) --libs $(MUPDF_PKG_CONFIG_PACKAGES)`
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun# mupdf doesn't use CFLAGS and LIBS but XCFLAGS and XLIBS instead.
49*4882a593Smuzhiyun# with USE_SYSTEM_LIBS it will try to use system libraries instead of the bundled ones.
50*4882a593SmuzhiyunMUPDF_MAKE_ENV = $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \
51*4882a593Smuzhiyun	XCFLAGS="$(MUPDF_CFLAGS)" \
52*4882a593Smuzhiyun	XLIBS="$(MUPDF_LDFLAGS)" \
53*4882a593Smuzhiyun	USE_SYSTEM_LIBS=yes
54*4882a593Smuzhiyun
55*4882a593SmuzhiyunMUPDF_MAKE_OPTS = \
56*4882a593Smuzhiyun	HAVE_OBJCOPY=no \
57*4882a593Smuzhiyun	prefix="/usr"
58*4882a593Smuzhiyun
59*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBFREEGLUT),y)
60*4882a593SmuzhiyunMUPDF_DEPENDENCIES += libfreeglut
61*4882a593Smuzhiyunelse
62*4882a593SmuzhiyunMUPDF_MAKE_OPTS += HAVE_GLUT=no
63*4882a593Smuzhiyunendif
64*4882a593Smuzhiyun
65*4882a593Smuzhiyundefine MUPDF_BUILD_CMDS
66*4882a593Smuzhiyun	$(MUPDF_MAKE_ENV) $(MAKE) -C $(@D) $(MUPDF_MAKE_OPTS) all
67*4882a593Smuzhiyunendef
68*4882a593Smuzhiyun
69*4882a593Smuzhiyundefine MUPDF_INSTALL_STAGING_CMDS
70*4882a593Smuzhiyun	$(MUPDF_MAKE_ENV) $(MAKE) -C $(@D) $(MUPDF_MAKE_OPTS) \
71*4882a593Smuzhiyun		DESTDIR="$(STAGING_DIR)" install_libs
72*4882a593Smuzhiyunendef
73*4882a593Smuzhiyun
74*4882a593Smuzhiyundefine MUPDF_INSTALL_TARGET_CMDS
75*4882a593Smuzhiyun	$(MUPDF_MAKE_ENV) $(MAKE) -C $(@D) $(MUPDF_MAKE_OPTS) \
76*4882a593Smuzhiyun		DESTDIR="$(TARGET_DIR)" install
77*4882a593Smuzhiyunendef
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun$(eval $(generic-package))
80