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