1include ../../Makefile.include 2DEPS= ../../Makefile.include Makefile pillow-crosscompile.patch 3 4VERSION.TXT := $(CMAKE_SOURCE_DIR)/version.txt 5APP_NAME=$(shell awk '/APP_NAME/ {print tolower($$2)}' $(VERSION.TXT)) 6 7# lib name, version 8LIBNAME=Pillow 9VERSION=7.1.2 10SOURCE=$(LIBNAME)-$(VERSION) 11ARCHIVE=$(SOURCE).tar.gz 12 13PYTHONPATH=$(PREFIX)/lib/python3.8/site-packages/ 14PILPATH=$(PYTHONPATH) 15LDSHARED=$(CC) -shared 16 17# Clear pkg-config data, as it will pull from Native pkg-config incorrectly 18ifeq ($(CROSS_COMPILING), yes) 19export PKG_CONFIG_PATH= 20export PKG_CONFIG_LIBDIR=${PREFIX}/lib/pkgconfig 21export PKG_CONFIG_SYSROOT_DIR=${SDKROOT} 22endif 23 24ifeq ($(OS),android) 25PILPATH=$(PREFIX)/share/$(APP_NAME)/addons/script.module.pil 26PILPATHLIB=$(PILPATH)/lib 27PYTHONPATH=$(PILPATH):$(PREFIX)/lib/python3.8/site-packages/ 28EXTRALDFLAGS=-L$(PREFIX)/lib/dummy-lib$(APP_NAME)/ -l$(APP_NAME) -lm 29else ifeq ($(OS),darwin_embedded) 30PILPATH=$(PREFIX)/share/$(APP_NAME)/addons/script.module.pil 31PILPATHLIB=$(PILPATH)/lib 32PYTHONPATH=$(PILPATH):$(PREFIX)/lib/python3.8/site-packages/ 33endif 34 35ifeq (darwin, $(findstring darwin, $(HOST))) 36#ensure that only our target ldflags are passed to the python build 37LDSHARED=$(CC) -bundle -undefined dynamic_lookup 38ZLIB_ROOT=ZLIB_ROOT="$(SDKROOT)/usr" 39endif 40 41BUILD_OPTS=--plat-name $(OS)-$(CPU) --disable-jpeg2000 --disable-webp --disable-imagequant --disable-tiff --disable-webp --disable-webpmux --disable-xcb --disable-lcms --disable-platform-guessing 42CROSSFLAGS=$(ZLIB_ROOT) PYTHONXCPREFIX="$(PREFIX)" CC="$(CC) $(CFLAGS)" LDSHARED="$(LDSHARED)" LDFLAGS="$(LDFLAGS) $(EXTRALDFLAGS)" PYTHONPATH="$(PYTHONPATH)" 43 44all: .installed-$(PLATFORM) 45 46$(TARBALLS_LOCATION)/$(ARCHIVE): 47 cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE) 48 49$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) 50 rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM) 51 cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) 52 cd $(PLATFORM); patch -p1 -i ../pillow-crosscompile.patch 53 54$(PILPATHLIB): 55ifeq ($(OS),android) 56 mkdir -p $(PILPATHLIB) 57else ifeq ($(OS),darwin_embedded) 58 mkdir -p $(PILPATHLIB) 59endif 60 61.installed-$(PLATFORM): $(PLATFORM) $(PILPATHLIB) 62 cd $(PLATFORM); $(CROSSFLAGS) $(NATIVEPREFIX)/bin/python3 setup.py build_ext $(BUILD_OPTS) install --install-lib $(PILPATH) 63ifeq ($(OS),android) 64 cd $(PILPATHLIB) && unzip -o ../Pillow-*.egg 65 cd $(PILPATHLIB)/PIL && \ 66 sed -i -e 's/import sys/import os, sys /' \ 67 -e '/__file__/ s/_imaging/lib_imaging/g' \ 68 -e 's/pkg_resources.resource_filename(__name__,/os.path.join(os.environ["KODI_ANDROID_LIBS"], /' _imaging*.py 69 cd $(PILPATH) && rm -rf Pillow-*.egg 70else ifeq ($(OS),darwin_embedded) 71 cd $(PILPATHLIB) && unzip -o ../Pillow-*.egg 72 cd $(PILPATH) && rm -rf Pillow-*.egg 73endif 74 touch $@ 75 76clean: 77 $(MAKE) -C $(PLATFORM) clean 78 rm -f .installed-$(PLATFORM) 79 80distclean:: 81 rm -rf $(PLATFORM) .installed-$(PLATFORM) 82