diff options
author | Dmitry Artamonow <mad_soft@inbox.ru> | 2010-06-23 07:00:38 +0000 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2010-08-20 08:37:58 +0200 |
commit | cf8d370464b68cd1ccbb2be9b93833c20ad1cfa4 (patch) | |
tree | 5324e274eacf88b915c37cfe5912f3d47bf3e668 /recipes/mupdf | |
parent | 78c84d68c9d4f5034651ec3def7d65e10bc3c480 (diff) |
mupdf-0.6: new recipe
MuPDF is a slim and fast PDF viewer/toolkit.
Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes/mupdf')
-rw-r--r-- | recipes/mupdf/mupdf-0.6/Makerules | 8 | ||||
-rw-r--r-- | recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch | 90 | ||||
-rw-r--r-- | recipes/mupdf/mupdf_0.6.bb | 60 |
3 files changed, 158 insertions, 0 deletions
diff --git a/recipes/mupdf/mupdf-0.6/Makerules b/recipes/mupdf/mupdf-0.6/Makerules new file mode 100644 index 0000000000..5f3d4e2aea --- /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_endianness.patch b/recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch new file mode 100644 index 0000000000..056e1451b1 --- /dev/null +++ b/recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch @@ -0,0 +1,90 @@ +Patch from upstream darcs repository, see this bugzilla entry for details: +http://bugs.ghostscript.com/show_bug.cgi?id=690932 + +Wed Jun 16 10:29:54 UTC 2010 tor@ghostscript.com + * Do runtime endianness test instead of relying on unreliable preprocessor macros. +diff -rN -u old-mupdf/apps/x11_image.c new-mupdf-1/apps/x11_image.c +--- old-mupdf/apps/x11_image.c 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/apps/x11_image.c 2010-06-16 12:33:35.000000000 +0000 +@@ -10,7 +10,7 @@ + # define _XOPEN_SOURCE 1 + #endif + +-#include <fitz.h> ++#include "fitz.h" + + #include <X11/Xlib.h> + #include <X11/Xutil.h> +@@ -205,11 +205,10 @@ + unsigned long rs, gs, bs; + + byteorder = ImageByteOrder(info.display); +-#if BYTE_ORDER == BIG_ENDIAN +- byterev = byteorder != MSBFirst; +-#else +- byterev = byteorder != LSBFirst; +-#endif ++ if (fz_isbigendian()) ++ byterev = byteorder != MSBFirst; ++ else ++ byterev = byteorder != LSBFirst; + + rm = info.visual.red_mask; + gm = info.visual.green_mask; +diff -rN -u old-mupdf/draw/imageunpack.c new-mupdf-1/draw/imageunpack.c +--- old-mupdf/draw/imageunpack.c 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/draw/imageunpack.c 2010-06-16 12:33:36.000000000 +0000 +@@ -31,6 +31,12 @@ + justinvert &= min[i] == 255 && max[i] == 0 && sub[i] == -255; + } + ++ unsigned mask; ++ if (fz_isbigendian()) ++ mask = 0x00ff00ff; ++ else ++ mask = 0xff00ff00; ++ + if (!needed) + return; + +@@ -51,11 +57,7 @@ + wh = wh - 2 * hwh; + while(hwh--) { + unsigned in = *wp; +-#if BYTE_ORDER == LITTLE_ENDIAN +- unsigned out = in ^ 0xff00ff00; +-#else +- unsigned out = in ^ 0x00ff00ff; +-#endif ++ unsigned out = in ^ mask; + *wp++ = out; + } + p = (byte *)wp; +diff -rN -u old-mupdf/fitz/base_cpudep.c new-mupdf-1/fitz/base_cpudep.c +--- old-mupdf/fitz/base_cpudep.c 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/fitz/base_cpudep.c 2010-06-16 12:33:36.000000000 +0000 +@@ -10,6 +10,12 @@ + /* global run-time constant */ + unsigned fz_cpuflags = 0; + ++int fz_isbigendian(void) ++{ ++ static const int one = 1; ++ return *(char*)&one == 0; ++} ++ + #ifndef HAVE_CPUDEP + + void fz_cpudetect(void) +diff -rN -u old-mupdf/fitz/fitz_base.h new-mupdf-1/fitz/fitz_base.h +--- old-mupdf/fitz/fitz_base.h 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/fitz/fitz_base.h 2010-06-16 12:33:36.000000000 +0000 +@@ -86,6 +86,8 @@ + /* treat as constant! */ + extern unsigned fz_cpuflags; + ++int fz_isbigendian(void); ++ + /* + * Base Fitz runtime. + */ diff --git a/recipes/mupdf/mupdf_0.6.bb b/recipes/mupdf/mupdf_0.6.bb new file mode 100644 index 0000000000..bcd853419b --- /dev/null +++ b/recipes/mupdf/mupdf_0.6.bb @@ -0,0 +1,60 @@ +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_endianness.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 +# so we need to provide some safe settings +FULL_OPTIMIZATION = "-O2" + +do_configure() { + cp ${WORKDIR}/Makerules ${S}/Makerules + + # 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" |