Mercurial > hgrepos > Python2 > PyMuPDF
comparison Makefile.freebsd @ 38:8934ac156ef5
Allow to build with the PyPI package "clang" instead of "libclang".
1. It seems to be maintained.
2. In the FreeBSD base system there is no pre-built libclang.so. If you
need this library you have to install llvm from ports additionally.
2. On FreeBSD there is no pre-built wheel "libclang" with a packaged
libclang.so.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Tue, 23 Sep 2025 10:27:15 +0200 |
| parents | f0e1e5146733 |
| children |
comparison
equal
deleted
inserted
replaced
| 37:1252325c592f | 38:8934ac156ef5 |
|---|---|
| 34 THIS_MAKEFILE_DIR:= $(abspath $(dir $(THIS_MAKEFILE_JUSTNAME))) | 34 THIS_MAKEFILE_DIR:= $(abspath $(dir $(THIS_MAKEFILE_JUSTNAME))) |
| 35 | 35 |
| 36 PYMUPDF_SETUP_MUPDF_BUILD?= $(THIS_MAKEFILE_DIR)/mupdf-source | 36 PYMUPDF_SETUP_MUPDF_BUILD?= $(THIS_MAKEFILE_DIR)/mupdf-source |
| 37 # It would compile with tesseract because its sources are vendored by MuPDF | 37 # It would compile with tesseract because its sources are vendored by MuPDF |
| 38 PYMUPDF_SETUP_MUPDF_TESSERACT?= 0 | 38 PYMUPDF_SETUP_MUPDF_TESSERACT?= 0 |
| 39 # | |
| 40 # We use clang instead of libclang: On FreeBSD you have to install | |
| 41 # llvm to get a libclang.so installed; there is no libclang package | |
| 42 # with a bundled libclang.so. Additionally, libclang currently is not | |
| 43 # up-to-date with respect to clang versions >= 19. | |
| 44 # | |
| 45 PYMUPDF_SETUP_LIBCLANG?= clang>=18,<19 | |
| 39 LIBCLANG_LIBRARY_PATH?= $(CLANG_DIR)/lib | 46 LIBCLANG_LIBRARY_PATH?= $(CLANG_DIR)/lib |
| 47 CLANG_DIR?= /usr/local/llvm18 | |
| 40 | 48 |
| 41 TEST= /bin/test | 49 TEST= /bin/test |
| 42 LOCALBASE?= /usr/local | 50 LOCALBASE?= /usr/local |
| 43 SYMLINK?= /bin/ln -s | 51 SYMLINK?= /bin/ln -s |
| 44 PYTHON?= python3 | 52 PYTHON?= python3 |
| 45 PYTHON_PREFIXES!= $(PYTHON) -c 'import sys; print(sys.prefix); print(sys.base_prefix)' | 53 PYTHON_PREFIXES!= $(PYTHON) -c 'import sys; print(sys.prefix); print(sys.base_prefix)' |
| 46 CLANG_DIR?= /usr/local/llvm18 | |
| 47 | 54 |
| 48 # | 55 # |
| 49 # Setting these does not work for some parts built by sub-makes. | 56 # Setting these does not work for some parts built by sub-makes. |
| 50 # Symlink in the venv instead. | 57 # Symlink in the venv instead. |
| 51 # | 58 # |
| 75 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/make || $(SYMLINK) $(LOCALBASE)/bin/gmake $(firstword $(PYTHON_PREFIXES))/bin/make | 82 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/make || $(SYMLINK) $(LOCALBASE)/bin/gmake $(firstword $(PYTHON_PREFIXES))/bin/make |
| 76 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ar || $(SYMLINK) $(CLANG_DIR)/bin/llvm-ar $(firstword $(PYTHON_PREFIXES))/bin/ar | 83 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ar || $(SYMLINK) $(CLANG_DIR)/bin/llvm-ar $(firstword $(PYTHON_PREFIXES))/bin/ar |
| 77 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/cc || $(SYMLINK) $(CLANG_DIR)/bin/clang $(firstword $(PYTHON_PREFIXES))/bin/cc | 84 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/cc || $(SYMLINK) $(CLANG_DIR)/bin/clang $(firstword $(PYTHON_PREFIXES))/bin/cc |
| 78 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/c++ || $(SYMLINK) $(CLANG_DIR)/bin/clang++ $(firstword $(PYTHON_PREFIXES))/bin/c++ | 85 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/c++ || $(SYMLINK) $(CLANG_DIR)/bin/clang++ $(firstword $(PYTHON_PREFIXES))/bin/c++ |
| 79 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ld || $(SYMLINK) $(CLANG_DIR)/bin/ld.lld $(firstword $(PYTHON_PREFIXES))/bin/ld | 86 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ld || $(SYMLINK) $(CLANG_DIR)/bin/ld.lld $(firstword $(PYTHON_PREFIXES))/bin/ld |
| 80 FORTIFY=$(FORTIFY) EXTRA_CHECKS=$(EXTRA_CHECKS) PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) $(PYTHON) -m build --wheel --verbose --no-isolation | 87 FORTIFY=$(FORTIFY) EXTRA_CHECKS=$(EXTRA_CHECKS) PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) PYMUPDF_SETUP_LIBCLANG='$(PYMUPDF_SETUP_LIBCLANG)' $(PYTHON) -m build --wheel --verbose --no-isolation |
| 81 | 88 |
| 82 | 89 |
| 83 sdist: check | 90 sdist: check |
| 84 PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) $(PYTHON) -m build --sdist --verbose --no-isolation | 91 PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) PYMUPDF_SETUP_LIBCLANG='$(PYMUPDF_SETUP_LIBCLANG)' $(PYTHON) -m build --sdist --verbose --no-isolation |
| 85 | 92 |
| 86 | 93 |
| 87 populate-venv: | 94 populate-venv: |
| 88 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES))) | 95 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES))) |
| 89 $(PYTHON) -m pip install -U -r requirements-build.txt | 96 $(PYTHON) -m pip install -U -r requirements-build.txt |
| 95 check: | 102 check: |
| 96 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES))) | 103 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES))) |
| 97 $(PYTHON) -m pip freeze | grep -E '^\s*setuptools-scm==' >/dev/null | 104 $(PYTHON) -m pip freeze | grep -E '^\s*setuptools-scm==' >/dev/null |
| 98 $(PYTHON) -m pip freeze | grep -E '^\s*build==' >/dev/null | 105 $(PYTHON) -m pip freeze | grep -E '^\s*build==' >/dev/null |
| 99 $(PYTHON) -m pip freeze | grep -E '^\s*swig==' >/dev/null | 106 $(PYTHON) -m pip freeze | grep -E '^\s*swig==' >/dev/null |
| 100 $(PYTHON) -m pip freeze | grep -E '^\s*libclang==18\.' >/dev/null | 107 $(PYTHON) -m pip freeze | grep -E '^\s*clang==18\.' >/dev/null |
| 108 # This covers the "clang" and "libclang" package | |
| 109 $(PYTHON) -c 'import clang.cindex' >/dev/null | |
| 101 $(TEST) -x $(LOCALBASE)/bin/gmake | 110 $(TEST) -x $(LOCALBASE)/bin/gmake |
| 102 $(TEST) -x $(LOCALBASE)/bin/cmake | 111 $(TEST) -x $(LOCALBASE)/bin/cmake |
| 103 $(TEST) -x $(CLANG_DIR)/bin/llvm-ar | 112 $(TEST) -x $(CLANG_DIR)/bin/llvm-ar |
| 104 $(TEST) -x $(CLANG_DIR)/bin/clang | 113 $(TEST) -x $(CLANG_DIR)/bin/clang |
| 105 $(TEST) -x $(CLANG_DIR)/bin/clang++ | 114 $(TEST) -x $(CLANG_DIR)/bin/clang++ |
