RepositoryExternal.mk | 23 +++++++++++++----- config_host.mk.in | 2 + configure.ac | 12 +++++++-- external/jpeg-turbo/jpeg-turbo.win_build.patch.1 | 28 +++++++++++++++++++++++ external/poppler/ExternalProject_poppler.mk | 2 - external/poppler/UnpackedTarball_poppler.mk | 1 external/poppler/poppler-libjpeg.patch.1 | 23 ++++++++++++++++++ 7 files changed, 81 insertions(+), 10 deletions(-)
New commits: commit 206554422b9163fce76c8f44ec8be6c0de230685 Author: Michael Stahl <mst...@redhat.com> Date: Wed Nov 2 14:13:54 2016 +0100 poppler: build against libjpeg Albert Astals Cid points out that --disable-libjpeg causes poppler to use internal JPEG code instead, which is not actively maintained. Add LIBJPEG_CFLAGS / LIBJPEG_LIBS to config_host.mk and patch poppler to respect LIBJPEG_LIBS. Reviewed-on: https://gerrit.libreoffice.org/30496 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit eea709f67d91e271e3df37e6c6724b7b5870b1ee) jpeg-turbo: resolve some conflicts to fix poppler build poppler uses both windows.h and jpeg headers, so runs into the conflict between Win32 definitions of boolean, INT16, INT32, and jpeg's. Tweak jpeg-turbo headers so it uses the Win32 definitions. (cherry picked from commit f2761b62b3d0b45a3e57781a16c8c5c6ee94ded0) Change-Id: Id19a62a9bd9dc41fee5e8e43e2798e515aacc299 Reviewed-on: https://gerrit.libreoffice.org/30506 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: David Tardon <dtar...@redhat.com> diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 0fc7d25..ece2bd7 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -426,32 +426,37 @@ endif # SYSTEM_ZLIB ifneq ($(SYSTEM_JPEG),) define gb_LinkTarget__use_jpeg -$(call gb_LinkTarget_add_libs,$(1),-ljpeg) +$(call gb_LinkTarget_add_libs,$(1),$(LIBJPEG_LIBS)) $(call gb_LinkTarget_set_ldflags,$(1),\ $$(filter-out -L/usr/lib/jvm%,$$(T_LDFLAGS)) \ ) endef +gb_ExternalProject__use_jpeg := + else ifneq ($(filter JPEG_TURBO,$(BUILD_TYPE)),) define gb_LinkTarget__use_jpeg $(call gb_LinkTarget_set_include,$(1),\ - -I$(call gb_UnpackedTarball_get_dir,jpeg-turbo) \ + $(LIBJPEG_CFLAGS) \ $$(INCLUDE) \ ) -$(call gb_LinkTarget_add_libs,$(1),\ - $(call gb_UnpackedTarball_get_dir,jpeg-turbo)/.libs/libjpeg$(gb_StaticLibrary_PLAINEXT) \ -) +$(call gb_LinkTarget_add_libs,$(1),$(LIBJPEG_LIBS)) $(call gb_LinkTarget_use_external_project,$(1),jpeg-turbo,full) endef +define gb_ExternalProject__use_jpeg +$(call gb_ExternalProject_use_external_project,$(1),jpeg-turbo) + +endef + else # !SYSTEM_JPEG define gb_LinkTarget__use_jpeg $(call gb_LinkTarget_set_include,$(1),\ - -I$(call gb_UnpackedTarball_get_dir,jpeg) \ + $(LIBJPEG_CFLAGS) \ $$(INCLUDE) \ ) @@ -459,6 +464,11 @@ $(call gb_LinkTarget_use_static_libraries,$(1),\ jpeg \ ) +define gb_ExternalProject__use_jpeg +$(call gb_ExternalProject_use_static_libraries,$(1),jpeg) + +endef + endef endif # SYSTEM_JPEG @@ -2674,6 +2684,7 @@ endef else # !SYSTEM_POPPLER define gb_LinkTarget__use_poppler +$(call gb_LinkTarget_use_external,$(1),jpeg) $(call gb_LinkTarget_use_external_project,$(1),poppler,full) $(call gb_LinkTarget_set_include,$(1),\ diff --git a/config_host.mk.in b/config_host.mk.in index ddd144e..04fc400 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -328,6 +328,8 @@ export LIBFONTS_JAR=@LIBFONTS_JAR@ export LIBFORMULA_JAR=@LIBFORMULA_JAR@ export LIBGCRYPT_CFLAGS=@LIBGCRYPT_CFLAGS@ export LIBGCRYPT_LIBS=@LIBGCRYPT_LIBS@ +export LIBJPEG_CFLAGS=$(gb_SPACE)@LIBJPEG_CFLAGS@ +export LIBJPEG_LIBS=$(gb_SPACE)@LIBJPEG_LIBS@ export LIBLANGTAG_CFLAGS=$(gb_SPACE)@LIBLANGTAG_CFLAGS@ export LIBLANGTAG_LIBS=$(gb_SPACE)@LIBLANGTAG_LIBS@ export LIBLAYOUT_JAR=@LIBLAYOUT_JAR@ diff --git a/configure.ac b/configure.ac index 3862386..66a830c 100644 --- a/configure.ac +++ b/configure.ac @@ -7636,10 +7636,10 @@ fi if test "$with_system_jpeg" = "yes"; then AC_MSG_RESULT([external]) SYSTEM_JPEG=TRUE - AC_CHECK_HEADER(jpeglib.h, [], + AC_CHECK_HEADER(jpeglib.h, [ LIBJPEG_CFLAGS= ], [AC_MSG_ERROR(jpeg.h not found. install libjpeg)], []) - AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ JPEG3RDLIB=-ljpeg ], - [AC_MSG_CHECKING(jpeg library not found or fuctional)], []) + AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ LIBJPEG_LIBS="-ljpeg" ], + [AC_MSG_ERROR(jpeg library not found or fuctional)], []) libo_MINGW_CHECK_DLL([libjpeg]) else SYSTEM_JPEG= @@ -7688,12 +7688,18 @@ Alternatively, you can install the 'new' nasm where ever you want and make sure _EOS AC_MSG_ERROR([no nasm (Netwide Assembler) found]) fi + LIBJPEG_CFLAGS="-I${WORKDIR}/UnpackedTarball/jpeg-turbo" + LIBJPEG_LIBS="${WORKDIR}/UnpackedTarball/jpeg-turbo/.libs/libjpeg.lib" else AC_MSG_RESULT([internal, jpeg]) BUILD_TYPE="$BUILD_TYPE JPEG" + LIBJPEG_CFLAGS="-I${WORKDIR}/UnpackedTarball/jpeg" + LIBJPEG_LIBS="-L${WORKDIR}/LinkTarget/StaticLibrary -ljpeg" fi fi AC_SUBST(NASM) +AC_SUBST(LIBJPEG_CFLAGS) +AC_SUBST(LIBJPEG_LIBS) AC_SUBST(SYSTEM_JPEG) dnl =================================================================== diff --git a/external/jpeg-turbo/jpeg-turbo.win_build.patch.1 b/external/jpeg-turbo/jpeg-turbo.win_build.patch.1 index ce00851..b5dabaa 100644 --- a/external/jpeg-turbo/jpeg-turbo.win_build.patch.1 +++ b/external/jpeg-turbo/jpeg-turbo.win_build.patch.1 @@ -1,3 +1,7 @@ +Copy definitions of "boolean", "INT16", "INT32" from win/jconfig.h.in + +... into jconfig.h.in, which is the one we use via configure. + diff -ru jpeg-turbo.orig/simd/Makefile.in jpeg-turbo/simd/Makefile.in --- jpeg-turbo.orig/simd/Makefile.in 2015-09-21 20:48:45.000000000 +0200 +++ jpeg-turbo/simd/Makefile.in 2015-11-22 10:52:46.975285184 +0100 @@ -24,3 +28,27 @@ diff -ru jpeg-turbo.orig/configure jpeg-turbo/configure fi done +--- jpeg-turbo/jconfig.h.in.orig 2016-11-02 22:43:55.012600000 +0100 ++++ jpeg-turbo/jconfig.h.in 2016-11-02 22:45:01.905400000 +0100 +@@ -71,3 +71,21 @@ + + /* The size of `size_t', as computed by sizeof. */ + #undef SIZEOF_SIZE_T ++ ++#ifdef _MSC_VER ++ ++/* Define "boolean" as unsigned char, not int, per Windows custom */ ++#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ ++typedef unsigned char boolean; ++#endif ++#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ ++ ++/* Define "INT32" as int, not long, per Windows custom */ ++#if !(defined(_BASETSD_H_) || defined(_BASETSD_H)) /* don't conflict if basetsd.h already read */ ++typedef short INT16; ++typedef signed int INT32; ++#endif ++#define XMD_H /* prevent jmorecfg.h from redefining it */ ++ ++#endif /* _MSC_VER */ ++ diff --git a/external/poppler/ExternalProject_poppler.mk b/external/poppler/ExternalProject_poppler.mk index eab1d91..f75dddc 100644 --- a/external/poppler/ExternalProject_poppler.mk +++ b/external/poppler/ExternalProject_poppler.mk @@ -26,7 +26,7 @@ $(call gb_ExternalProject_get_state_target,poppler,build) : --disable-poppler-cpp \ --disable-libopenjpeg \ --disable-libtiff \ - --disable-libjpeg \ + --enable-libjpeg \ --disable-libpng \ --disable-zlib \ --disable-libcurl \ diff --git a/external/poppler/UnpackedTarball_poppler.mk b/external/poppler/UnpackedTarball_poppler.mk index 4de2242..efcbee7 100644 --- a/external/poppler/UnpackedTarball_poppler.mk +++ b/external/poppler/UnpackedTarball_poppler.mk @@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,poppler,\ external/poppler/poppler-0.46.0-std-max.patch.1 \ external/poppler/poppler-0.46.0-unused-private-field.patch.1 \ external/poppler/ubsan.patch.0 \ + external/poppler/poppler-libjpeg.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/poppler/poppler-libjpeg.patch.1 b/external/poppler/poppler-libjpeg.patch.1 new file mode 100644 index 0000000..c8d54be --- /dev/null +++ b/external/poppler/poppler-libjpeg.patch.1 @@ -0,0 +1,23 @@ +do not override user supplied LIBJPEG_LIBS so we can use the one in WORKDIR + +--- poppler/configure.orig 2016-11-02 13:58:32.530617038 +0100 ++++ poppler/configure 2016-11-02 13:58:06.233617689 +0100 +@@ -21377,8 +21377,9 @@ + ac_save_USER_INCLUDES="$USER_INCLUDES" + ac_save_USER_LDFLAGS="$USER_LDFLAGS" + USER_INCLUDES="$USER_INCLUDES $LIBJPEG_CFLAGS" +- USER_LDFLAGS="$USER_LDFLAGS $LIBJPEG_CFLAGS" ++ USER_LDFLAGS="$USER_LDFLAGS $LIBJPEG_LIBS" + ++if test -z "$LIBJPEG_LIBS"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libjpeg6b" >&5 + $as_echo_n "checking for libjpeg6b... " >&6; } +@@ -21489,6 +21490,7 @@ + + + fi ++fi + + + ac_save_CPPFLAGS="$CPPFLAGS" _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits