Hello,

If you use MinGW, then most of the dependent libraries already work with very 
little tweaking. As an example, you can use the attached script to build 
poppler on MSYS+MinGW (requires python). Some minor patches are also present, 
use the --patches option to get them.

Regards,
Ashish

On Mon, 21 Dec 2009 22:52:33 +0530  wrote
>Hi,

I'm currently trying to get a current version of Gourmet Recipe Manager
(http://grecipe-manager.sourceforge.net/) running on windows. As it has
a dependency on poppler, and given the number of other projects using it
that also provide windows binaries (such as evince or calibre), I was
wondering if there is a chance for officially maintained poppler windows
binaries. I guess the affected parties might kindly provide some testing
and bug fixes.

Kind regards,
Bernhard Reiter
PS Please don't forget to CC when replying to this message!


# export CFLAGS="-I/usr/local/include"
# export CPPFLAGS="-I/usr/local/include"
# export LDFLAGS="-L/usr/local/lib"
# export PKG_CONFIG_PATH=C:/DevTools/msys/local/lib/pkgconfig

import os, sys, shutil, binascii, hashlib

LIBS = [
    {
        'name'  : 'zlib',
        'url'   : 'http://www.zlib.net/zlib-1.2.3.tar.gz',
        'md5'   : 'debc62758716a169df9f62e6ab2bc634',
        'dir'   : 'zlib-1.2.3',
        'build' : [ 'make -f win32/Makefile.gcc install' ],
        'patch' : 'ZGlmZiAtdXIgemxpYi0xLjIuMy93aW4zMi9NYWtlZmlsZS5nY2MgemxpYi0xLjIuMy93aW4zMi9NYWtlZmlsZS5nY2MKLS0tIHpsaWItMS4yLjMvd2luMzIvTWFrZWZpbGUuZ2NjCTIwMDMtMDgtMDIgMDk6MTk6MDAgKzA1MzAKKysrIHpsaWItMS4yLjMvd2luMzIvTWFrZWZpbGUuZ2NjCTIwMDktMTItMDUgMTc6Mjc6NDAgKzA1MzAKQEAgLTI0LDggKzI0LDggQEAKICMgdGhlIERMTCBuYW1lIHNob3VsZCBiZSBjaGFuZ2VkIGZyb20gInpsaWIxLmRsbCIuCiAKIFNUQVRJQ0xJQiA9IGxpYnouYQotU0hBUkVETElCID0gemxpYjEuZGxsCi1JTVBMSUIgICAgPSBsaWJ6ZGxsLmEKK1NIQVJFRExJQiA9IGxpYnotMS5kbGwKK0lNUExJQiAgICA9IGxpYnouZGxsLmEKIAogI0xPQyA9IC1EQVNNVgogI0xPQyA9IC1EREVCVUcgLWcKQEAgLTc4LDkgKzc4LDkgQEAKIAogJChJTVBMSUIpOiAkKFNIQVJFRExJQikKIAotJChTSEFSRURMSUIpOiB3aW4zMi96bGliLmRlZiAkKE9CSlMpICQoT0JKQSkgemxpYnJjLm8KKyQoU0hBUkVETElCKTogd2luMzIvemxpYi5kZWYgJChPQkpTKSAkKE9CSkEpCiAJZGxsd3JhcCAtLWRyaXZlci1uYW1lICQoQ0MpIC0tZGVmIHdpbjMyL3psaWIuZGVmIFwKLQkgIC0taW1wbGliICQoSU1QTElCKSAtbyAkQCAkKE9CSlMpICQoT0JKQSkgemxpYnJjLm8KKwkgIC0taW1wbGliICQoSU1QTElCKSAtbyAkQCAkKE9CSlMpICQoT0JKQSkKIAlzdHJpcCAkQAogCiBleGFtcGxlOiBleGFtcGxlLm8gJChTVEFUSUNMSUIpCkBAIC0xMDMsMTMgKzEwMywxMSBAQAogCiAuUEhPTlk6IGluc3RhbGwgdW5pbnN0YWxsIGNsZWFuCiAKLWluc3RhbGw6IHpsaWIuaCB6Y29uZi5oICQoTElCKQotCS1AaWYgbm90IGV4aXN0ICQoSU5DTFVERV9QQVRIKS9udWwgbWtkaXIgJChJTkNMVURFX1BBVEgpCi0JLUBpZiBub3QgZXhpc3QgJChMSUJSQVJZX1BBVEgpL251bCBta2RpciAkKExJQlJBUllfUEFUSCkKLQktJChJTlNUQUxMKSB6bGliLmggJChJTkNMVURFX1BBVEgpCi0JLSQoSU5TVEFMTCkgemNvbmYuaCAkKElOQ0xVREVfUEFUSCkKLQktJChJTlNUQUxMKSAkKFNUQVRJQ0xJQikgJChMSUJSQVJZX1BBVEgpCi0JLSQoSU5TVEFMTCkgJChJTVBMSUIpICQoTElCUkFSWV9QQVRIKQoraW5zdGFsbDogemxpYi5oIHpjb25mLmggJChJTVBMSUIpCisJLSQoSU5TVEFMTCkgemxpYi5oICQocHJlZml4KS9pbmNsdWRlCisJLSQoSU5TVEFMTCkgemNvbmYuaCAkKHByZWZpeCkvaW5jbHVkZQorCS0kKElOU1RBTEwpICQoSU1QTElCKSAkKHByZWZpeCkvbGliCisJLSQoSU5TVEFMTCkgJChTSEFSRURMSUIpICQocHJlZml4KS9iaW4KIAogdW5pbnN0YWxsOgogCS0kKFJNKSAkKElOQ0xVREVfUEFUSCkvemxpYi5oCg=='
    },
    {
        'name'  : 'jpeg',
        'url'   : 'http://ijg.org/files/jpegsrc.v7.tar.gz',
        'md5'   : '382ef33b339c299b56baf1296cda9785',
        'dir'   : 'jpeg-7',
        'build' : [ 'sh configure --disable-static --enable-shared', 'make install' ],
        'patch' : 'ZGlmZiAtdXIganBlZy03L2pjb25maWcuY2ZnIGpwZWctNy9qY29uZmlnLmNmZwotLS0ganBlZy03L2pjb25maWcuY2ZnCTIwMDktMDYtMDcgMTY6NDI6MzQgKzA1MzAKKysrIGpwZWctNy9qY29uZmlnLmNmZwkyMDA5LTEyLTA0IDEzOjI2OjI5ICswNTMwCkBAIC0xNyw2ICsxNywxNCBAQAogLyogRGVmaW5lIHRoaXMgaWYgeW91IGdldCB3YXJuaW5ncyBhYm91dCB1bmRlZmluZWQgc3RydWN0dXJlcy4gKi8KICN1bmRlZiBJTkNPTVBMRVRFX1RZUEVTX0JST0tFTgogCisjaWZkZWYgX19NSU5HVzMyX1ZFUlNJT04KKyNkZWZpbmUgX0JBU0VUU0RfSF8JCS8qIHByZXZlbnQgam1vcmVjZmcuaCBmcm9tIHJlZGVmaW5pbmcgSU5UMzIgKi8KKyNpZm5kZWYgX1JQQ05EUl9ICQkJLyogZG9uJ3QgY29uZmxpY3QgaWYgcnBjbmRyLmggYWxyZWFkeSByZWFkICovCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgYm9vbGVhbjsKKyNlbmRpZgorI2RlZmluZSBIQVZFX0JPT0xFQU4JCS8qIHByZXZlbnQgam1vcmVjZmcuaCBmcm9tIHJlZGVmaW5pbmcgaXQgKi8KKyNlbmRpZgorCiAjaWZkZWYgSlBFR19JTlRFUk5BTFMKIAogI3VuZGVmIFJJR0hUX1NISUZUX0lTX1VOU0lHTkVECg=='
    },
    {
        'name'  : 'openjpeg',
        'url'   : 'http://openjpeg.googlecode.com/files/openjpeg_v1_3.tar.gz',
        'md5'   : 'f9a3ccfa91ac34b589e9bf7577ce8ff9',
        'dir'   : 'OpenJPEG_v1_3',
        'build' : [ 'make install' ],
        'patch' : 'ZGlmZiAtdXIgT3BlbkpQRUdfdjFfMy5vcmlnL01ha2VmaWxlIE9wZW5KUEVHX3YxXzMvTWFrZWZpbGUKLS0tIE9wZW5KUEVHX3YxXzMub3JpZy9NYWtlZmlsZQkyMDA3LTEyLTIxIDE2OjA5OjQxICswNTMwCisrKyBPcGVuSlBFR192MV8zL01ha2VmaWxlCTIwMDktMTItMDcgMTM6NTQ6NDUgKzA1MzAKQEAgLTEsNCArMSw0IEBACi0jIExpbnV4IG1ha2VmaWxlIGZvciBPcGVuSlBFRworIyBNaW5HVyBtYWtlZmlsZSBmb3IgT3BlbkpQRUcKIAogVkVSX01BSk9SID0gMgogVkVSX01JTk9SID0gMS4zLjAKQEAgLTExLDIzICsxMSwyMyBAQAogQ0MgPSBnY2MKIEFSID0gYXIKIAotUFJFRklYID0gL3VzcgorUFJFRklYID0gL3Vzci9sb2NhbAorSU5TVEFMTF9CSU5ESVIgPSAkKFBSRUZJWCkvYmluCiBJTlNUQUxMX0xJQkRJUiA9ICQoUFJFRklYKS9saWIKIElOU1RBTExfSU5DTFVERSA9ICQoUFJFRklYKS9pbmNsdWRlCiAKICMgQ29udmVydHMgY3IvbGYgdG8ganVzdCBsZgogRE9TMlVOSVggPSBkb3MydW5peAogCi1DT01QSUxFUkZMQUdTID0gLVdhbGwgLU8zIC1mZmFzdC1tYXRoIC1zdGQ9Yzk5IC1mUElDCitDT01QSUxFUkZMQUdTID0gLVdhbGwgLU8zIC1mZmFzdC1tYXRoIC1zdGQ9Yzk5IC1EV0lOMzIKIExJQlJBUklFUyA9IC1sc3RkYysrCiAKIE1PRFVMRVMgPSAkKFNSQ1M6LmM9Lm8pCiBDRkxBR1MgPSAkKENPTVBJTEVSRkxBR1MpICQoSU5DTFVERSkKIAogVEFSR0VUICA9IG9wZW5qcGVnCi1TVEFUSUNMSUIgPSBsaWIkKFRBUkdFVCkuYQotU0hBUkVETElCID0gbGliJChUQVJHRVQpLSQoVkVSX01BSk9SKS4kKFZFUl9NSU5PUikuc28KLUxJQk5BTUUgPSBsaWIkKFRBUkdFVCkuc28uJChWRVJfTUFKT1IpCitJTVBPUlRMSUIgPSBsaWIkKFRBUkdFVCkuZGxsLmEKK1NIQVJFRExJQiA9IGxpYiQoVEFSR0VUKS0kKFZFUl9NQUpPUikuZGxsCiAKIAogCkBAIC00NSwyOCArNDUsMjIgQEAKIGRvczJ1bml4OgogCUAkKERPUzJVTklYKSAkKFNSQ1MpICQoSU5DTFMpCiAKLU9wZW5KUEVHOiAkKFNUQVRJQ0xJQikgJChTSEFSRURMSUIpCitPcGVuSlBFRzogJChTSEFSRURMSUIpCiAKIC5jLm86CiAJJChDQykgJChDRkxBR1MpIC1jICQ8IC1vICRACiAKLSQoU1RBVElDTElCKTogJChNT0RVTEVTKQotCSQoQVIpIHIgJEAgJChNT0RVTEVTKQotCiAkKFNIQVJFRExJQik6ICQoTU9EVUxFUykKLQkkKENDKSAtcyAtc2hhcmVkIC1XbCwtc29uYW1lLCQoTElCTkFNRSkgLW8gJEAgJChNT0RVTEVTKSAkKExJQlJBUklFUykKKwkkKENDKSAtc2hhcmVkIC1vICRAIC1XbCwtLW91dC1pbXBsaWIsJChJTVBPUlRMSUIpICQoTU9EVUxFUykgJChMSUJSQVJJRVMpCiAKIGluc3RhbGw6IE9wZW5KUEVHCiAJaW5zdGFsbCAtZCAnJChERVNURElSKSQoSU5TVEFMTF9MSUJESVIpJyAnJChERVNURElSKSQoSU5TVEFMTF9JTkNMVURFKScKLQlpbnN0YWxsIC1tIDY0NCAtbyByb290IC1nIHJvb3QgJChTVEFUSUNMSUIpICckKERFU1RESVIpJChJTlNUQUxMX0xJQkRJUiknCi0JcmFubGliICckKERFU1RESVIpJChJTlNUQUxMX0xJQkRJUikvJChTVEFUSUNMSUIpJwotCWluc3RhbGwgLW0gNzU1IC1vIHJvb3QgLWcgcm9vdCAkKFNIQVJFRExJQikgJyQoREVTVERJUikkKElOU1RBTExfTElCRElSKScKLQlsbiAtc2YgJChTSEFSRURMSUIpICckKERFU1RESVIpJChJTlNUQUxMX0xJQkRJUikvJChMSUJOQU1FKScKLQlpbnN0YWxsIC1tIDY0NCAtbyByb290IC1nIHJvb3QgbGlib3BlbmpwZWcvb3BlbmpwZWcuaCAnJChERVNURElSKSQoSU5TVEFMTF9JTkNMVURFKScKLQktbGRjb25maWcKKwlpbnN0YWxsIC1tIDY0NCAkKElNUE9SVExJQikgJyQoREVTVERJUikkKElOU1RBTExfTElCRElSKScKKwlpbnN0YWxsIC1tIDY0NCAkKFNIQVJFRExJQikgJyQoREVTVERJUikkKElOU1RBTExfQklORElSKScKKwlpbnN0YWxsIC1tIDY0NCBsaWJvcGVuanBlZy9vcGVuanBlZy5oICckKERFU1RESVIpJChJTlNUQUxMX0lOQ0xVREUpJwogCiBjbGVhbjoKLQlybSAtcmYgY29yZSBkaXN0LyB1MmR0bXAqICQoTU9EVUxFUykgJChTVEFUSUNMSUIpICQoU0hBUkVETElCKSAkKExJQk5BTUUpCisJcm0gLXJmIGNvcmUgZGlzdC8gdTJkdG1wKiAkKE1PRFVMRVMpICQoSU1QT1JUTElCKSAkKFNIQVJFRExJQikgJChMSUJOQU1FKQogCiBvc3g6CiAJbWFrZSAtZiBNYWtlZmlsZS5vc3gKZGlmZiAtdXIgT3BlbkpQRUdfdjFfMy5vcmlnL2xpYm9wZW5qcGVnL29wZW5qcGVnLmggT3BlbkpQRUdfdjFfMy9saWJvcGVuanBlZy9vcGVuanBlZy5oCi0tLSBPcGVuSlBFR192MV8zLm9yaWcvbGlib3BlbmpwZWcvb3BlbmpwZWcuaAkyMDA3LTEyLTIxIDE2OjA5OjQxICswNTMwCisrKyBPcGVuSlBFR192MV8zL2xpYm9wZW5qcGVnL29wZW5qcGVnLmgJMjAwOS0xMi0wNyAxMzo0ODozOCArMDUzMApAQCAtMzksNyArMzksNyBAQAogICAgQ29tcGlsZXIgZGlyZWN0aXZlcwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8KLQorI2RlZmluZSBPUEpfU1RBVElDCiAjaWYgZGVmaW5lZChPUEpfU1RBVElDKSB8fCAhKGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX19XSU4zMl9fKSkKICNkZWZpbmUgT1BKX0FQSQogI2RlZmluZSBPUEpfQ0FMTENPTlYK'
    },
    {
        'name'  : 'png',
        'url'   : 'http://downloads.sourceforge.net/libpng/libpng-1.2.41.tar.gz',
        'md5'   : '82ab87818fb22961620aac7eca9fea14',
        'dir'   : 'libpng-1.2.41',
        'build' : [ 'sh configure --disable-static --enable-shared', 'make install' ]
    },
    {
        'name'  : 'expat',
        'url'   : 'http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz',
        'md5'   : 'ee8b492592568805593f81f8cdf2a04c',
        'dir'   : 'expat-2.0.1',
        'build' : [ 'sh configure --disable-static --enable-shared', 'make install' ]
    },
    {
        'name'  : 'lcms',
        'url'   : 'http://downloads.sourceforge.net/lcms/lcms-1.19.tar.gz',
        'md5'   : '8af94611baf20d9646c7c2c285859818',
        'dir'   : 'lcms-1.19',
        'build' : [ 'sh configure --disable-static --enable-shared', 'make install' ]
    },
    {
        'name'  : 'freetype',
        'url'   : 'http://downloads.sourceforge.net/freetype/freetype-2.3.11.tar.gz',
        'md5'   : 'a693c9a4b0121890ca71e39364ffea4a',
        'dir'   : 'freetype-2.3.11',
        'build' : [ 'sh configure --disable-static --enable-shared', 'make install' ],
        'patch' : 'ZGlmZiAtcnUgZnJlZXR5cGUtMi4zLjExL2luY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmggZnJlZXR5cGUtMi4zLjExL2luY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmgKLS0tIGZyZWV0eXBlLTIuMy4xMS9pbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG9wdGlvbi5oCTIwMDktMDctMDMgMTg6NTg6MjQgKzA1MzAKKysrIGZyZWV0eXBlLTIuMy4xMS9pbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG9wdGlvbi5oCTIwMDktMTItMDIgMTY6MDU6MjcgKzA1MzAKQEAgLTQ5NSw3ICs0OTUsNyBAQAogICAvKiAgIERvIG5vdCAjdW5kZWYgdGhpcyBtYWNybyBoZXJlLCBzaW5jZSB0aGUgYnVpbGQgc3lzdGVtIG1pZ2h0ICAgICAgICAgKi8KICAgLyogICBkZWZpbmUgaXQgZm9yIGNlcnRhaW4gY29uZmlndXJhdGlvbnMgb25seS4gICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBUVF9DT05GSUdfT1BUSU9OX0JZVEVDT0RFX0lOVEVSUFJFVEVSICovCisjZGVmaW5lIFRUX0NPTkZJR19PUFRJT05fQllURUNPREVfSU5URVJQUkVURVIKIAogCiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtNjg1LDcgKzY4NSw3IEBACiAgICAqIGlzIHJlY29tbWVuZGVkIHRvIGRpc2FibGUgdGhlIG1hY3JvIHNpbmNlIGl0IHJlZHVjZXMgdGhlIGxpYnJhcnkncyBjb2RlCiAgICAqIHNpemUgYW5kIGFjdGl2YXRlcyBhIGZldyBtZW1vcnktc2F2aW5nIG9wdGltaXphdGlvbnMgYXMgd2VsbC4KICAgICovCi0jZGVmaW5lIEZUX0NPTkZJR19PUFRJT05fT0xEX0lOVEVSTkFMUworI3VuZGVmIEZUX0NPTkZJR19PUFRJT05fT0xEX0lOVEVSTkFMUwogCiAKICAgLyoK'
    },
    {
        'name'  : 'fontconfig',
        'url'   : 'http://fontconfig.org/release/fontconfig-2.8.0.tar.gz',
        'md5'   : '77e15a92006ddc2adbb06f840d591c0e',
        'dir'   : 'fontconfig-2.8.0',
        'build' : [ 'sh configure --disable-static --enable-shared --disable-static --enable-shared --with-default-fonts=WINDOWSFONTDIR --with-cache-dir=../var/fc-cache --with-add-fonts=../var/fonts --disable-docs', 'make install' ]
    },
    {
        'name'  : 'poppler',
        'url'   : 'http://poppler.freedesktop.org/poppler-0.12.2.tar.gz',
        'md5'   : '60c00b55acf7dd389bf256d178af70bf',
        'dir'   : 'poppler-0.12.2',
        'build' : [ 'sh configure --disable-static --enable-shared --enable-xpdf-headers --disable-cairo-output --disable-abiword-output --disable-gdk --disable-poppler-glib --disable-poppler-qt --disable-poppler-qt4', 'make install' ]
    },
    {
        'name'  : 'djvulibre',
        'url'   : 'http://downloads.sourceforge.net/djvu/djvulibre-3.5.22.tar.gz',
        'md5'   : 'd1513784ce0e4f37d71595dc34c95ec7',
        'dir'   : 'djvulibre-3.5.22',
        'build' : [ 'sh configure --disable-static --enable-shared --disable-threads --disable-djview --disable-i18n --disable-desktopfiles', 'make install' ],
        'patch' : 'ZGlmZiAtdXIgZGp2dWxpYnJlLTMuNS4yMi9jb25maWd1cmUgZGp2dWxpYnJlLTMuNS4yMi9jb25maWd1cmUKLS0tIGRqdnVsaWJyZS0zLjUuMjIvY29uZmlndXJlCTIwMDktMDUtMjEgMjA6NDU6NTAgKzA1MzAKKysrIGRqdnVsaWJyZS0zLjUuMjIvY29uZmlndXJlCTIwMDktMTItMDcgMTk6MTI6MDMgKzA1MzAKQEAgLTIxNjQsOSArMjE2NCw4IEBACiAKICMgU3BlY2lhbCBjYXNlcwogY2FzZSAiJGhvc3QiIGluCi0gICotbWluZ3czMikKKyAgKi1taW5ndzMyKikKICAgICAgRExMRkxBR1M9IiRETExGTEFHUyAtV2wsLS1leHBvcnQtYWxsLXN5bWJvbHMiCi0gICAgIExJQlM9LWxtc3ZjcDYwCiAgIDs7CiAgICotZGFyd2luKiB8ICotbWFjb3MxMCopCiAgICAgIGlmIHRlc3QgLWQgL29wdC9sb2NhbCA7IHRoZW4K'
    }
]

def system(cmd):
    ret = os.system(cmd)
    if ret != 0:
        print 'FAIL: exit code was %d for the following command:\n%s' % (ret, cmd)
        sys.exit(1)

def build():
    print '======== init ========'
    system('rm -fR /usr/local')
    system('install -d /usr/local/bin /usr/local/include /usr/local/lib')

    for lib in LIBS:
        print '======== %s ========' % lib['name']
        src = '%s.tar.gz' % lib['name']
        if not os.path.exists(src):
            system('wget -O %s %s' % (src, lib['url']))
            if not os.path.exists(src):
                print 'failed to download!!'
                sys.exit(1)
        hash = hashlib.md5(open(src, 'rb').read()).hexdigest()
        if hash != lib['md5']:
            print 'MD5 checksum failure: got %s' % hash
            sys.exit(2)

        if os.path.exists(lib['dir']):
            shutil.rmtree(lib['dir'])

        os.system('tar zxf %s' % src)
        if lib.has_key('patch') and lib['patch']:
            open('patch.patch', 'wb').write(binascii.a2b_base64(lib['patch']))
            system('cat patch.patch | patch -p0')
            os.remove('patch.patch')

        os.chdir(lib['dir'])
        for cmd in lib['build']:
            system(cmd)
        os.chdir('..')
        shutil.rmtree(lib['dir'])

def write_patches():
    for lib in LIBS:
        if lib.has_key('patch') and lib['patch']:
            open(lib['name']+'.patch', 'wb').write(binascii.a2b_base64(lib['patch']))

if __name__ == '__main__':
    if '--patches' in sys.argv:
        write_patches()
    else:
        build()
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to