[oe] [PATCH 3/3] mupdf-0.6: new recipe

Khem Raj raj.khem at gmail.com
Wed Jun 9 13:36:18 UTC 2010


On (09/06/10 11:33), Dmitry Artamonow wrote:
> MuPDF is a slim and fast PDF viewer/toolkit.
> 
> Signed-off-by: Dmitry Artamonow <mad_soft at inbox.ru>
> ---
>  recipes/mupdf/mupdf-0.6/Makerules                  |    8 +++
>  .../mupdf/mupdf-0.6/mupdf_fix_16bit_display.patch  |   12 ++++
>  recipes/mupdf/mupdf_0.6.bb                         |   59 ++++++++++++++++++++
>  3 files changed, 79 insertions(+), 0 deletions(-)
>  create mode 100644 recipes/mupdf/mupdf-0.6/Makerules
>  create mode 100644 recipes/mupdf/mupdf-0.6/mupdf_fix_16bit_display.patch
>  create mode 100644 recipes/mupdf/mupdf_0.6.bb
> 
> diff --git a/recipes/mupdf/mupdf-0.6/Makerules b/recipes/mupdf/mupdf-0.6/Makerules
> new file mode 100644
> index 0000000..5f3d4e2
> --- /dev/null
> +++ b/recipes/mupdf/mupdf-0.6/Makerules
> @@ -0,0 +1,8 @@
> +# Configuration for the Makefile
> +LIBS := -ljbig2dec -lopenjpeg -ljpeg -lz -lm
> +CFLAGS := -Wall --std=gnu99 -Ifitz -Imupdf $(THIRD_INCS)
> +
> +CFLAGS += `pkg-config --cflags freetype2`
> +LDFLAGS += `pkg-config --libs freetype2`
> +X11LIBS = -lX11 -lXext
> +PDFVIEW_EXE = $(X11VIEW_EXE)
> diff --git a/recipes/mupdf/mupdf-0.6/mupdf_fix_16bit_display.patch b/recipes/mupdf/mupdf-0.6/mupdf_fix_16bit_display.patch
> new file mode 100644
> index 0000000..fdc0b74
> --- /dev/null
> +++ b/recipes/mupdf/mupdf-0.6/mupdf_fix_16bit_display.patch
> @@ -0,0 +1,12 @@
> +* upstream: http://bugs.ghostscript.com/show_bug.cgi?id=690932
> +
> +--- mupdf/apps/x11_image.c.orig	2010-06-06 19:42:46.000000000 +0400
> ++++ mupdf/apps/x11_image.c	2010-06-06 20:32:35.000000000 +0400
> +@@ -14,6 +14,7 @@
> + 
> + #include <X11/Xlib.h>
> + #include <X11/Xutil.h>
> ++#include <X11/Xarch.h>
> + #include <sys/ipc.h>
> + #include <sys/shm.h>
> + #include <X11/extensions/XShm.h>
> diff --git a/recipes/mupdf/mupdf_0.6.bb b/recipes/mupdf/mupdf_0.6.bb
> new file mode 100644
> index 0000000..e9cb0b1
> --- /dev/null
> +++ b/recipes/mupdf/mupdf_0.6.bb
> @@ -0,0 +1,59 @@
> +DESCRIPTION = "A lightweight PDF viewer and toolkit written in portable C."
> +HOMEPAGE = "http://www.mupdf.com"
> +SECTION = "x11/applications"
> +LICENSE = "GPLv3"
> +PR = "r0"
> +
> +DEPENDS = "openjpeg jbig2dec jpeg zlib virtual/libx11 libxext freetype"
> +
> +SRC_URI = "http://mupdf.com/download/source/${PN}-${PV}-source.tar.gz \
> +           file://mupdf_fix_16bit_display.patch \
> +           file://Makerules"
> +
> +S = "${WORKDIR}/mupdf"
> +
> +PACKAGES =+ "${PN}-tools ${PN}-tools-doc "
> +FILES_${PN}-tools = "${bindir}/pdfclean ${bindir}/pdfdraw ${bindir}/pdfshow \
> +                     ${bindir}/pdfextract ${bindir}/pdfinfo"
> +FILES_${PN}-tools-doc = "${mandir}/man1/pdfclean.1 ${mandir}/man1/pdfdraw.1 \
> +                         ${mandir}/man1/pdfshow.1"
> +
> +# mupdf crashes (at least on arm) when built with high level of optimization
> +FULL_OPTIMIZATION = "-O2"

the commend does not go with the code. O2 is high enough optimization.
be more specific what does not work and by default OE uses -Os + some 
specific opt passes.

> +
> +do_configure() {
> +    cp ${WORKDIR}/Makerules ${S}/Makerules
> +

Why not create a patch for Makerules instread of creating a file and then
copying. It will help upgrades the patch will get refreshed for any changes
but this will overwrite those changes.

> +    # we don't include CJK fonts to make binary more slim
> +    # comment out following two lines if you need support for CJK
> +    sed -i 's:^\t\$.GENDIR./font_cjk.c::g' ${S}/Makefile
> +    echo "CFLAGS += -DNOCJK" >> ${S}/Makerules
> +}
> +
> +do_compile() {
> +    # mupdf uses couple of tools for code generation during build process
> +    # so we need to compile them first with host compiler
> +    unset CFLAGS LDFLAGS
> +    oe_runmake build/debug
> +    oe_runmake build/debug/cmapdump LD=${BUILD_CC} CC=${BUILD_CC}
> +    oe_runmake build/debug/fontdump LD=${BUILD_CC} CC=${BUILD_CC}
> +
> +    # ...and then we fire 'make', feeding proper
> +    # cross-compilation flags through Makerules file
> +    echo "CFLAGS += ${CFLAGS}" >> ${S}/Makerules
> +    echo "LDFLAGS += ${LDFLAGS}" >> ${S}/Makerules
> +    oe_runmake LD="${CC}"
> +}
> +
> +do_install() {
> +    oe_runmake install prefix="${D}/usr"
> +    install -d ${D}/${datadir}/applications
> +    install -d ${D}/${datadir}/pixmaps
> +    install -d ${D}/${mandir}/man1
> +    install -m 0644 ${S}/debian/mupdf.xpm ${D}/${datadir}/pixmaps/
> +    install -m 0644 ${S}/debian/mupdf.desktop ${D}/${datadir}/applications/
> +    install -m 0644 ${S}/debian/*.1 ${D}/${mandir}/man1/
> +}
> +
> +SRC_URI[md5sum] = "d1e1a1df8fb3e4d1c601506797b75036"
> +SRC_URI[sha256sum] = "6f87c4f113ee9e0f4bdfd3a316ef44052edc4febc8f7b531c4a3f44ffe149605"
> -- 
> 1.7.1
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel




More information about the Openembedded-devel mailing list