Skip to content

Commit

Permalink
Bump mupdf, kopt, lept and tess, fix build
Browse files Browse the repository at this point in the history
mupdf 1.17, tracking https://github.com/ezdiy/mupdf
kopt 2.53, tracking https://github.com/ezdiy/libk2pdfopt
lept 1.79, frozen
tess 4.1, frozen
  • Loading branch information
ezdiy committed Oct 5, 2020
1 parent fc79465 commit ab4298a
Show file tree
Hide file tree
Showing 30 changed files with 2,221 additions and 2,018 deletions.
14 changes: 8 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ all: $(OUTPUT_DIR)/libs $(if $(ANDROID),,$(LUAJIT)) \
$(LUASERIAL_LIB) \
$(TURBOJPEG_LIB) \
$(LODEPNG_LIB) \
$(MUPDF_LIB) \
$(GIF_LIB) \
$(if $(USE_LJ_WPACLIENT),$(LJ_WPACLIENT),) \
$(TURBO_FFI_WRAP_LIB) \
Expand Down Expand Up @@ -102,7 +103,7 @@ libs: \
$(OUTPUT_DIR)/libs/libkoreader-djvu.so \
$(OUTPUT_DIR)/libs/libkoreader-cre.so \
$(OUTPUT_DIR)/libs/libkoreader-xtext.so \
$(OUTPUT_DIR)/libs/libwrap-mupdf.so
$(OUTPUT_DIR)/libs/libkoreader-mupdf.so

$(OUTPUT_DIR)/libs/libinkview-compat.so: input/inkview-compat.c
$(CC) $(DYNLIB_CFLAGS) -linkview -o $@ $<
Expand Down Expand Up @@ -192,12 +193,13 @@ endif
$(OUTPUT_DIR)/libs/libblitbuffer.so: blitbuffer.c
$(CC) $(DYNLIB_CFLAGS) $(VECTO_CFLAGS) -o $@ $^

$(OUTPUT_DIR)/libs/libwrap-mupdf.so: wrap-mupdf.c \
$(MUPDF_LIB)
$(CC) -I$(MUPDF_DIR)/include $(DYNLIB_CFLAGS) -o $@ $^
$(OUTPUT_DIR)/libs/libkoreader-mupdf.so: mupdf.c \
$(if $(USE_LUAJIT_LIB),$(LUAJIT_LIB),)
$(CC) -I$(MUPDF_DIR)/include $(DYNLIB_CFLAGS) -lmupdf -o $@ $^
ifdef DARWIN
install_name_tool -id \
libs/libwrap-mupdf.so \
install_name_tool -change \
`otool -L "$@" | grep "libluajit" | awk '{print $$1}'` \
libs/$(notdir $(LUAJIT_LIB)) \
$@
endif

Expand Down
62 changes: 46 additions & 16 deletions Makefile.defs
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ BASE_CFLAGS:=-O2 -ffast-math -pipe -fomit-frame-pointer
VECTO_CFLAGS:=-O3 -ffast-math -pipe -fomit-frame-pointer -frename-registers -fweb -ftree-vectorize -funroll-loops
# And for an aggressive LTO build
#BASE_CFLAGS:=$(VECTO_CFLAGS) -flto=8 -fuse-linker-plugin

# Use this for debugging:
ifdef KODEBUG
BASE_CFLAGS:=-Og -g -pipe -fno-omit-frame-pointer
Expand Down Expand Up @@ -507,6 +508,7 @@ ifeq ($(TARGET), win32)
LDFLAGS+=-Wl,--allow-multiple-definition -static-libgcc
endif


# in case the libstdc++ is to be linked statically, the location of the static
# library can be specified in the STATICLIBSTDCPP variable.
# the default is to link a shared library:
Expand All @@ -523,6 +525,7 @@ else
MACHINE=$(TARGET_MARCHINE)
endif
OUTPUT_DIR=build/$(MACHINE)

# We'll want a machine-specific staging directory *outside* of OUTPUT_DIR, so we don't pickup random build artifacts in packages...
CMAKE_STAGING_DIR=build/staging-$(MACHINE)

Expand Down Expand Up @@ -662,19 +665,12 @@ LUAFILESYSTEM_DIR=luafilesystem

ZLIB_BUILD_DIR=$(THIRDPARTY_DIR)/zlib/build/$(MACHINE)
ZLIB_DIR=$(CURDIR)/$(ZLIB_BUILD_DIR)/zlib-prefix/src/zlib
ZLIB_INC=$(ZLIB_DIR)
ZLIB_STATIC=$(ZLIB_DIR)/libz.a

MINIZIP_BUILD_DIR=$(THIRDPARTY_DIR)/minizip/build/$(MACHINE)
MINIZIP_DIR=$(CURDIR)/$(MINIZIP_BUILD_DIR)/minizip-prefix/src/minizip
AES_LIB_DIR=$(MINIZIP_DIR)/aes
AES_LIB=$(MINIZIP_DIR)/libaes.a

MUPDF_BUILD_DIR=$(CURDIR)/$(THIRDPARTY_DIR)/mupdf/build/$(MACHINE)
MUPDF_DIR=$(MUPDF_BUILD_DIR)/mupdf-prefix/src/mupdf
MUPDF_LIB_DIR=$(MUPDF_DIR)/build/$(if $(KODEBUG),debug,release)
MUPDF_LIB_STATIC=$(MUPDF_LIB_DIR)/libmupdf.a
MUPDF_THIRDPARTY_LIBS=$(MUPDF_LIB_DIR)/libmupdfthird.a \
$(AES_LIB)
MUPDF_LIB_DIR=$(MUPDF_DIR)/build/shared-$(if $(KODEBUG),debug,release)
MUPDF_LIB=$(OUTPUT_DIR)/libs/libmupdf$(LIB_EXT)

DJVULIBRE_BUILD_DIR=$(THIRDPARTY_DIR)/djvulibre/build/$(MACHINE)
Expand Down Expand Up @@ -702,28 +698,31 @@ POPEN_NOSHELL_DIR=$(CURDIR)/$(POPEN_NOSHELL_BUILD_DIR)/popen-noshell-prefix/src/
POPEN_NOSHELL_LIB=$(POPEN_NOSHELL_DIR)/libpopen_noshell.a

LEPTONICA_BUILD_DIR=$(THIRDPARTY_DIR)/leptonica/build/$(MACHINE)
LEPTONICA_DIR=$(CURDIR)/$(LEPTONICA_BUILD_DIR)/leptonica-prefix/src/leptonica
LEPTONICA_DIR=$(CURDIR)/$(LEPTONICA_BUILD_DIR)/leptonica-prefix/src/leptonica-build

TESSERACT_BUILD_DIR=$(THIRDPARTY_DIR)/tesseract/build/$(MACHINE)
TESSERACT_DIR=$(CURDIR)/$(TESSERACT_BUILD_DIR)/tesseract-prefix/src/tesseract
TESSERACT_DIR=$(CURDIR)/$(TESSERACT_BUILD_DIR)/tesseract-prefix/src/tesseract-build

K2PDFOPT_BUILD_DIR=$(THIRDPARTY_DIR)/libk2pdfopt/build/$(MACHINE)
K2PDFOPT_DIR=$(CURDIR)/$(K2PDFOPT_BUILD_DIR)/libk2pdfopt-prefix/src/libk2pdfopt
K2PDFOPT_LIB_EXT=$(if $(WIN32),-2.dll,$(if $(DARWIN),.2.dylib,.so.2))
K2PDFOPT_LIB=$(OUTPUT_DIR)/libs/libk2pdfopt$(K2PDFOPT_LIB_EXT)
K2PDFOPT_CFLAGS=-I$(K2PDFOPT_DIR)/willuslib \
-I$(K2PDFOPT_DIR)/k2pdfoptlib -I$(K2PDFOPT_DIR) \
-I$(K2PDFOPT_DIR)/include_mod
K2PDFOPT_CFLAGS=-I$(K2PDFOPT_DIR)/k2pdfopt/willuslib \
-I$(K2PDFOPT_DIR)/k2pdfopt/k2pdfoptlib -I$(K2PDFOPT_DIR) \
-I$(K2PDFOPT_DIR)/k2pdfopt/include_mod

FREETYPE_LIB_EXT=$(if $(WIN32),-6.dll,$(if $(DARWIN),.6.dylib,.so.6))
FREETYPE_LIB=$(OUTPUT_DIR)/libs/libfreetype$(FREETYPE_LIB_EXT)
FREETYPE_BUILD_DIR=$(THIRDPARTY_DIR)/freetype2/build/$(MACHINE)
FREETYPE_DIR=$(CURDIR)/$(FREETYPE_BUILD_DIR)/freetype2-prefix/src/freetype2-build
FREETYPE_LIBDIR=$(FREETYPE_DIR)/$(if $(WIN32),bin,lib)
FREETYPE_INC=$(FREETYPE_DIR)/include/freetype2

HARFBUZZ_LIB_EXT=$(if $(WIN32),-0.dll,$(if $(DARWIN),.0.dylib,.so.0))
HARFBUZZ_LIB=$(OUTPUT_DIR)/libs/libharfbuzz$(HARFBUZZ_LIB_EXT)
HARFBUZZ_BUILD_DIR=$(THIRDPARTY_DIR)/harfbuzz/build/$(MACHINE)
HARFBUZZ_DIR=$(CURDIR)/$(HARFBUZZ_BUILD_DIR)/harfbuzz-prefix/src/harfbuzz-build
HARFBUZZ_INC=$(HARFBUZZ_DIR)/include/harfbuzz

FRIBIDI_LIB_EXT=$(if $(WIN32),-0.dll,$(if $(DARWIN),.0.dylib,.so.0))
FRIBIDI_LIB=$(OUTPUT_DIR)/libs/libfribidi$(FRIBIDI_LIB_EXT)
Expand All @@ -745,6 +744,7 @@ JPEG_LIB=$(OUTPUT_DIR)/libs/libjpeg$(JPEG_LIB_EXT)
TURBOJPEG_LIB=$(OUTPUT_DIR)/libs/libturbojpeg$(if $(WIN32),.dll,$(if $(DARWIN),.dylib,.so))
JPEG_BUILD_DIR=$(THIRDPARTY_DIR)/libjpeg-turbo/build/$(MACHINE)
JPEG_DIR=$(CURDIR)/$(JPEG_BUILD_DIR)/libjpeg-turbo-prefix/src/libjpeg-turbo-build
JPEG_LIBDIR=$(JPEG_DIR)/$(if $(WIN32),,lib)

PNG_LIB_EXT=$(if $(WIN32),-16.dll,$(if $(DARWIN),.16.dylib,.so.16))
PNG_LIB=$(OUTPUT_DIR)/libs/libpng16$(PNG_LIB_EXT)
Expand All @@ -760,6 +760,35 @@ GIF_LIB=$(OUTPUT_DIR)/libs/libgif$(GIF_LIB_EXT)
GIF_BUILD_DIR=$(THIRDPARTY_DIR)/giflib/build/$(MACHINE)
GIF_DIR=$(CURDIR)/$(GIF_BUILD_DIR)/giflib-prefix/src/giflib-build

TIFF_LIB_EXT=$(if $(WIN32),-5.dll,$(if $(DARWIN),.5.dylib,.so.5))
TIFF_LIB=$(OUTPUT_DIR)/libs/libtiff$(TIFF_LIB_EXT)
TIFF_BUILD_DIR=$(THIRDPARTY_DIR)/libtiff/build/$(MACHINE)
TIFF_DIR=$(CURDIR)/$(TIFF_BUILD_DIR)/libtiff-prefix/src/libtiff-build

JP2_LIB_EXT=$(if $(WIN32),-7.dll,$(if $(DARWIN),.7.dylib,.so.7))
JP2_LIB=$(OUTPUT_DIR)/libs/libopenjp2$(JP2_LIB_EXT)
JP2_BUILD_DIR=$(THIRDPARTY_DIR)/openjpeg/build/$(MACHINE)
JP2_DIR=$(CURDIR)/$(JP2_BUILD_DIR)/openjpeg-src

# FIXME: openjpeg build behaves real poorly due to the underlying cmake horribleness
JP2_INC=$(JP2_DIR)/src/lib/openjp2
JP2_LIBDIR=$(CURDIR)/$(JP2_BUILD_DIR)/build/$(MACHINE)/openjpeg-src/bin
JP2_INC2=$(CURDIR)/$(JP2_BUILD_DIR)/build/$(MACHINE)/openjpeg-src/src/lib/openjp2

WEBP_LIB_EXT=$(if $(ANDROID),.so,$(if $(WIN32),-7.dll,$(if $(DARWIN),.7.dylib,.so.7)))
WEBP_LIB=$(OUTPUT_DIR)/libs/libwebp$(WEBP_LIB_EXT)
WEBP_BUILD_DIR=$(THIRDPARTY_DIR)/libwebp/build/$(MACHINE)
WEBP_DIR=$(CURDIR)/$(WEBP_BUILD_DIR)/libwebp-prefix/src/libwebp-build

# Shortcut CFLAG for all image format libraries
IMG_CFLAGS := \
-I$(WEBP_DIR)/include -I$(JP2_INC) -I$(JP2_INC2) -I$(TIFF_DIR)/include -I$(GIF_DIR)/include -I$(PNG_DIR)/include -I$(JPEG_DIR)/include

IMG_LDFLAGS := \
-L$(WEBP_DIR)/lib -L$(JP2_LIBDIR) -L$(TIFF_DIR)/lib -L$(GIF_DIR)/lib -L$(PNG_DIR)/lib -L$(JPEG_DIR)/lib -L$(ZLIB_DIR)

IMG_LIBS := -lz -lwebp -lopenjp2 -ltiff -lgif -lpng -ljpeg

LIBFFI_BUILD_DIR=$(THIRDPARTY_DIR)/libffi/build/$(MACHINE)
LIBFFI_DIR=$(CURDIR)/$(LIBFFI_BUILD_DIR)/libffi-prefix/src/libffi-build

Expand All @@ -783,9 +812,10 @@ GLIB=$(GLIB_DIR)/lib/libglib-2.0$(if $(DARWIN),.dylib,.so.0)
GLIB_STATIC=$(GLIB_DIR)/lib/libglib-2.0.a
ZLIB=$(OUTPUT_DIR)/libs/$(if $(WIN32),zlib1.dll,$(if $(DARWIN),libz.1.dylib,libz.so.1))

LEPT_LIB_EXT=$(if $(WIN32),-5.dll,$(if $(DARWIN),.5.dylib,.so.5))
LEPT_LIB_EXT=$(if $(ANDROID),.so,$(if $(WIN32),-5.dll,$(if $(DARWIN),.5.dylib,.so.5)))
LEPTONICA_LIB=$(OUTPUT_DIR)/libs/liblept$(LEPT_LIB_EXT)
TESS_LIB_EXT=$(if $(WIN32),-3.dll,$(if $(DARWIN),.3.dylib,.so.3))

TESS_LIB_EXT=$(if $(ANDROID),.so,$(if $(WIN32),-4.dll,$(if $(DARWIN),.4.dylib,.so.4)))
TESSERACT_LIB=$(OUTPUT_DIR)/libs/libtesseract$(TESS_LIB_EXT)

OPENSSL_BUILD_DIR=$(THIRDPARTY_DIR)/openssl/build/$(MACHINE)
Expand Down
131 changes: 72 additions & 59 deletions Makefile.third
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ $(FREETYPE_LIB) $(FREETYPE_DIR)/include: $(THIRDPARTY_DIR)/freetype2/*.*
-DCXXFLAGS="$(CXXFLAGS)" -DLDFLAGS="$(LDFLAGS)" -DCHOST=$(CHOST) \
$(CURDIR)/$(THIRDPARTY_DIR)/freetype2 && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(FREETYPE_DIR)/$(if $(WIN32),bin,lib)/$(notdir $(FREETYPE_LIB)) $@
cp -fL $(FREETYPE_LIBDIR)/$(notdir $(FREETYPE_LIB)) $@

$(HARFBUZZ_LIB) $(HARFBUZZ_DIR)/include: $(THIRDPARTY_DIR)/harfbuzz/*.*
install -d $(HARFBUZZ_BUILD_DIR)
Expand Down Expand Up @@ -80,8 +80,8 @@ $(TURBOJPEG_LIB) $(JPEG_LIB): $(THIRDPARTY_DIR)/libjpeg-turbo/*.*
$(CMAKE) $(CMAKE_FLAGS) \
$(CURDIR)/$(THIRDPARTY_DIR)/libjpeg-turbo && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(JPEG_DIR)/$(if $(WIN32),,lib)/$(notdir $(TURBOJPEG_LIB)) $(TURBOJPEG_LIB)
cp -fL $(JPEG_DIR)/$(if $(WIN32),,lib)/$(notdir $(JPEG_LIB)) $(JPEG_LIB)
cp -fL $(JPEG_LIBDIR)/$(notdir $(TURBOJPEG_LIB)) $(TURBOJPEG_LIB)
cp -fL $(JPEG_LIBDIR)/$(notdir $(JPEG_LIB)) $(JPEG_LIB)
ifdef DARWIN
install_name_tool -id \
libs/$(notdir $(JPEG_LIB)) \
Expand All @@ -91,7 +91,7 @@ ifdef DARWIN
$(TURBOJPEG_LIB)
endif

$(PNG_LIB): $(ZLIB) $(THIRDPARTY_DIR)/libpng/*.*
$(PNG_LIB) $(PNG_DIR): $(ZLIB) $(THIRDPARTY_DIR)/libpng/*.*
install -d $(PNG_BUILD_DIR)
cd $(PNG_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) -DCC="$(CC)" -DCXX="$(CXX)" -DCHOST="$(CHOST)" \
Expand All @@ -101,43 +101,25 @@ $(PNG_LIB): $(ZLIB) $(THIRDPARTY_DIR)/libpng/*.*
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(PNG_DIR)/.libs/$(notdir $(PNG_LIB)) $@

$(AES_LIB): $(THIRDPARTY_DIR)/minizip/*.*
install -d $(MINIZIP_BUILD_DIR)
-rm -f $(MINIZIP_DIR)/../minizip-stamp/minizip-build
cd $(MINIZIP_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) -DCC="$(CC) $(CFLAGS)" -DLDFLAGS="$(LDFLAGS)" \
-DAR="$(AR)" -DRANLIB="$(RANLIB)" \
$(CURDIR)/$(THIRDPARTY_DIR)/minizip && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)

# by default, mupdf compiles to a static library:
# we generate a dynamic library from the static library:
$(MUPDF_LIB) $(MUPDF_DIR)/include: $(JPEG_LIB) \
$(FREETYPE_LIB) $(FREETYPE_DIR)/include \
$(HARFBUZZ_LIB) $(HARFBUZZ_DIR)/include \
$(ZLIB) $(AES_LIB) $(THIRDPARTY_DIR)/mupdf/*.*
-rm -rf $(MUPDF_BUILD_DIR)
$(MUPDF_LIB) $(MUPDF_DIR)/include: $(JPEG_LIB) $(JPEG_INC) \
$(FREETYPE_LIB) $(FREETYPE_INC) \
$(HARFBUZZ_LIB) $(HARFBUZZ_INC) \
$(ZLIB) $(ZLIB_INC) $(JP2_LIB) $(JP2_INC) $(OPENSSL_DIR) $(THIRDPARTY_DIR)/mupdf/*.*
install -d $(MUPDF_BUILD_DIR)
cd $(MUPDF_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) -DHOSTCFLAGS="$(HOSTCFLAGS)" -DHOSTCC="$(HOSTCC)" \
-DCC="$(CC)" -DCFLAGS="$(CFLAGS)" -DCXX="$(CXX)" -DCXXFLAGS="$(CXXFLAGS)" -DOS="$(if $(WIN32),,Other)" \
-DAR="$(AR)" -DLDFLAGS="$(LDFLAGS) -L$(CURDIR)/$(OUTPUT_DIR)" \
-DXCFLAGS="$(CFLAGS) -DNOBUILTINFONT -DNO_ICC -I$(JPEG_DIR)/include -I$(FREETYPE_DIR)/include/freetype2 -I$(HARFBUZZ_DIR)/include/harfbuzz -I$(ZLIB_DIR) -I$(MINIZIP_DIR)" \
-DMUPDF_LIB_STATIC=$(MUPDF_LIB_STATIC) \
-DMUPDF_THIRDPARTY_LIBS=$(MUPDF_THIRDPARTY_LIBS) \
-DMUPDF_LIB=$(CURDIR)/$(MUPDF_LIB) \
-DMUPDF_SONAME=$(notdir $(MUPDF_LIB)) \
-DAES_LIB=$(AES_LIB) -DRPATH="\$$ORIGIN" \
-DZLIB=$(CURDIR)/$(ZLIB) -DJPEG_LIB=$(CURDIR)/$(JPEG_LIB) \
-DFREETYPE_LIB=$(CURDIR)/$(FREETYPE_LIB) \
-DHARFBUZZ_LIB=$(CURDIR)/$(HARFBUZZ_LIB) \
$(CMAKE) $(CMAKE_FLAGS) \
-DCC="$(CC)" \
-DLDFLAGS="$(LDFLAGS) -Wl,-rpath,'$(ORIGIN_CMAKE_TO_AUTOCFG)' -L$(OPENSSL_DIR) -L$(LEPTONICA_DIR)/lib -L$(JPEG_LIBDIR) -L$(TESSERACT_DIR)/lib -L$(CURL_DIR)/lib -L$(ZLIB_DIR)/lib -L$(HARFBUZZ_DIR)/lib -L$(FREETYPE_LIBDIR) -L$(JP2_LIBDIR)" \
-DOS="$(if $(WIN32),MINGW,$(if $(DARWIN),MACOS,Linux))" \
-DMUPDF_LIB="$(MUPDF_LIB_DIR)/$(notdir $(MUPDF_LIB))" \
-DXCFLAGS="$(CFLAGS) $(IMG_CFLAGS) -I$(OPENSLS_DIR)/include -I$(FREETYPE_INC) -I$(HARFBUZZ_INC) -I$(ZLIB_INC)" \
$(CURDIR)/$(THIRDPARTY_DIR)/mupdf && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(MUPDF_LIB_DIR)/$(notdir $(MUPDF_LIB)) $(MUPDF_LIB)
ifdef DARWIN
install_name_tool -change \
`otool -L "$(MUPDF_LIB)" | grep "$(notdir $(JPEG_LIB)) " | awk '{print $$1}'` \
libs/$(notdir $(JPEG_LIB)) \
$(MUPDF_LIB)
install_name_tool -id \
libs/$(notdir $(MUPDF_LIB)) \
$@
endif

$(LODEPNG_LIB) $(LODEPNG_DIR): $(THIRDPARTY_DIR)/lodepng/*.*
Expand All @@ -150,7 +132,7 @@ $(LODEPNG_LIB) $(LODEPNG_DIR): $(THIRDPARTY_DIR)/lodepng/*.*
$(CURDIR)/$(THIRDPARTY_DIR)/lodepng && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)

$(GIF_LIB): $(THIRDPARTY_DIR)/giflib/*.*
$(GIF_LIB) $(GIF_DIR): $(THIRDPARTY_DIR)/giflib/*.*
install -d $(GIF_BUILD_DIR)
cd $(GIF_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) -DCC="$(CC) $(if $(ANDROID),-DS_IREAD=S_IRUSR -DS_IWRITE=S_IWUSR,)" \
Expand All @@ -159,12 +141,40 @@ $(GIF_LIB): $(THIRDPARTY_DIR)/giflib/*.*
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(GIF_DIR)/lib/$(notdir $(GIF_LIB)) $@

$(DJVULIBRE_LIB): $(JPEG_LIB) $(THIRDPARTY_DIR)/djvulibre/*.*
$(TIFF_LIB) $(TIFF_DIR): $(THIRDPARTY_DIR)/libtiff/*.*
install -d $(TIFF_BUILD_DIR)
cd $(TIFF_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) \
-DCFLAGS="$(CFLAGS)" -DLDFLAGS="$(LDFLAGS)" -DCHOST="$(CHOST)" \
$(CURDIR)/thirdparty/libtiff && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(TIFF_DIR)/lib/$(notdir $(TIFF_LIB)) $@

$(JP2_LIB) $(JP2_INC): $(THIRDPARTY_DIR)/openjpeg/*.*
install -d $(JP2_BUILD_DIR)
cd $(JP2_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) \
-DCFLAGS="$(CFLAGS)" -DLDFLAGS="$(LDFLAGS)" -DCHOST="$(CHOST) -DJP2_LIB_NAME=$(notdir $(JP2_LIB))" \
$(CURDIR)/thirdparty/openjpeg && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
ln -s $(JP2_INC) $(JP2_INC)/openjpeg-2.3 || true
cp -fL $(JP2_LIBDIR)/$(notdir $(JP2_LIB)) $@

$(WEBP_LIB) $(WEBP_DIR): $(THIRDPARTY_DIR)/libwebp/*.*
install -d $(WEBP_BUILD_DIR)
cd $(WEBP_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) \
-DCFLAGS="$(CFLAGS)" -DLDFLAGS="$(LDFLAGS)" -DCHOST="$(CHOST)" \
$(CURDIR)/thirdparty/libwebp && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(WEBP_DIR)/lib/$(notdir $(WEBP_LIB)) $@

$(DJVULIBRE_LIB): $(JPEG_LIB) $(TIFF_LIB) $(JPEG_DIR) $(TIFF_DIR) $(THIRDPARTY_DIR)/djvulibre/*.*
install -d $(DJVULIBRE_BUILD_DIR)
cd $(DJVULIBRE_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) -DCC="$(CC)" -DCXX="$(CXX)" -DCFLAGS="$(CFLAGS)" \
-DCXXFLAGS="$(CXXFLAGS)" -DLDFLAGS="$(LDFLAGS)" \
-DLIBS="$(STATIC_LIBSTDCPP)" \
$(CMAKE) $(CMAKE_FLAGS) -DCC="$(CC)" -DCXX="$(CXX)" -DCFLAGS="$(CFLAGS) $(IMG_CFLAGS)" \
-DCXXFLAGS="$(CXXFLAGS) $(IMG_CFLAGS)" -DLDFLAGS="$(LDFLAGS)" \
-DLIBS="$(STATIC_LIBSTDCPP) $(IMG_LDFLAGS)" \
-DCHOST="$(if $(EMULATE_READER),,$(CHOST))" \
$(CURDIR)/$(THIRDPARTY_DIR)/djvulibre && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
Expand Down Expand Up @@ -260,38 +270,41 @@ $(POPEN_NOSHELL_LIB): $(THIRDPARTY_DIR)/popen-noshell/*.*
$(CURDIR)/$(THIRDPARTY_DIR)/popen-noshell && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)

# k2pdfopt depends on leptonica and tesseract
$(LEPTONICA_DIR): $(THIRDPARTY_DIR)/leptonica/*.*
$(LEPTONICA_LIB) $(LEPTONICA_DIR): $(WEBP_LIB) $(WEBP_DIR) $(TIFF_LIB) $(TIFF_DIR) $(PNG_LIB) $(PNG_DIR) $(JPEG_LIB) $(JPEG_DIR) $(JP2_LIB) $(JP2_DIR) $(GIF_LIB) $(GIF_DIR) \
$(THIRDPARTY_DIR)/leptonica/*.*
install -d $(LEPTONICA_BUILD_DIR)
rm -rf $(LEPTONICA_DIR)
cd $(LEPTONICA_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) \
$(CMAKE) $(CMAKE_FLAGS) -DCC="$(CC)" -DCFLAGS="$(CFLAGS) $(IMG_CFLAGS) -I$(ZLIB_DIR)" \
-DLDFLAGS="$(LDFLAGS) $(IMG_LDFLAGS)" -DCHOST="$(if $(EMULATE_READER),,$(CHOST))" \
$(if $(ARM_GLIBC_GTE_2_22),-DARM_GLIBC_GTE_2_22=on,) \
$(CURDIR)/$(THIRDPARTY_DIR)/leptonica && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -f $(LEPTONICA_DIR)/lib/$(notdir $(LEPTONICA_LIB)) $(LEPTONICA_LIB)

$(TESSERACT_DIR): $(THIRDPARTY_DIR)/tesseract/*.*
$(TESSERACT_LIB) $(TESSERACT_DIR): $(LEPTONICA_LIB) $(LEPTONICA_DIR) $(THIRDPARTY_DIR)/tesseract/*.*
install -d $(TESSERACT_BUILD_DIR)
rm -rf $(TESSERACT_DIR)
cd $(TESSERACT_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) $(CURDIR)/$(THIRDPARTY_DIR)/tesseract && \
$(CMAKE) $(CMAKE_FLAGS) -DCC="$(CC)" -DCXX="$(CXX)" -DCFLAGS="$(CFLAGS) $(IMG_CFLAGS) -I$(LEPTONICA_DIR)/include/leptonica" \
-DCXXFLAGS="$(CXXFLAGS) $(IMG_CFLAGS) -I$(TESSERACT_DIR)/src/api -I$(LEPTONICA_DIR)/include/leptonica" \
-DLDFLAGS="$(LDFLAGS) -L$(LEPTONICA_DIR)/lib -L$(JPEG_DIR)/lib" \
-DLIBS="$(STATIC_LIBSTDCPP) -ljpeg -llept" \
-DCHOST="$(if $(EMULATE_READER),,$(CHOST))" \
$(CURDIR)/$(THIRDPARTY_DIR)/tesseract && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -f $(TESSERACT_DIR)/lib/$(notdir $(TESSERACT_LIB)) $(TESSERACT_LIB)

$(K2PDFOPT_LIB) $(LEPTONICA_LIB) $(TESSERACT_LIB): $(PNG_LIB) $(ZLIB) \
$(THIRDPARTY_DIR)/libk2pdfopt/*.* \
$(TESSERACT_DIR) $(LEPTONICA_DIR)
$(K2PDFOPT_LIB) $(K2PDFOPT_DIR): $(PNG_LIB) $(ZLIB) $(TESSERACT_LIB) $(LEPTONICA_LIB) $(DJVULIBRE_LIB) $(MUPDF_LIB) \
$(THIRDPARTY_DIR)/libk2pdfopt/*.*
install -d $(K2PDFOPT_BUILD_DIR)
cd $(K2PDFOPT_BUILD_DIR) && \
$(CMAKE) $(CMAKE_FLAGS) $(if $(EMULATE_READER),,-DHOST="$(if $(ANDROID),"arm-linux",$(CHOST))") \
-DCC="$(CC)" -DCFLAGS="$(CFLAGS)" -DCXX="$(CXX)" -DCXXFLAGS="$(CXXFLAGS) -O3" \
-DAR="$(AR)" -DRANLIB="$(RANLIB)" -DSTDCPPLIB="$(STATIC_LIBSTDCPP)" -DLDFLAGS="$(LDFLAGS)" \
-DZLIB_DIR=$(ZLIB_DIR) -DZLIB=$(CURDIR)/$(ZLIB) -DPNG_DIR=$(PNG_DIR) \
-DLEPTONICA_DIR=$(LEPTONICA_DIR) -DTESSERACT_DIR=$(TESSERACT_DIR) \
$(CMAKE) $(CMAKE_FLAGS) \
-DCC="$(CC)" \
-DCFLAGS="$(DYNLIB_CMAKE_CFLAGS) $(IMG_CFLAGS) -I$(LEPTONICA_DIR)/include/leptonica -I$(DJVULIBRE_DIR) -I$(MUPDF_DIR)/include" \
-DLDFLAGS="$(LDFLAGS) -L$(ZLIB_DIR) -L$(LEPTONICA_DIR)/lib -L$(TESSERACT_DIR)/lib $(IMG_LDFLAGS) -L$(MUPDF_LIB_DIR) -L$(DJVULIBRE_LIB_DIR)" \
-DLIBNAME=$(notdir $(K2PDFOPT_LIB)) \
$(CURDIR)/$(THIRDPARTY_DIR)/libk2pdfopt && \
$(CMAKE_MAKE_PROGRAM) $(CMAKE_MAKE_PROGRAM_FLAGS)
cp -fL $(K2PDFOPT_DIR)/$(notdir $(K2PDFOPT_LIB)) $(K2PDFOPT_LIB)
cp -fL $(K2PDFOPT_DIR)/$(notdir $(LEPTONICA_LIB)) $(LEPTONICA_LIB)
cp -fL $(K2PDFOPT_DIR)/$(notdir $(TESSERACT_LIB)) $(TESSERACT_LIB)
cp -f $(K2PDFOPT_DIR)/$(notdir $(K2PDFOPT_LIB)) $(K2PDFOPT_LIB)
ifdef DARWIN
install_name_tool -id \
libs/$(notdir $(K2PDFOPT_LIB)) \
Expand Down
Loading

0 comments on commit ab4298a

Please sign in to comment.