Mercurial > hgrepos > Python2 > PyMuPDF
annotate Makefile.freebsd @ 9:b2d41d02518f
Use the LLVM compilers by symlinking them in the venv.
This is because CC= and CXX= do not work for some subprojects.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 17 Sep 2025 06:11:34 +0200 |
| parents | bf1744083a54 |
| children | 76e05e28f6a8 |
| rev | line source |
|---|---|
|
6
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
1 # -*- mode: makefile; coding: utf-8 -*- |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
2 # |
|
8
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
3 # Needs GNU make (aka gmake) and binutils/ar (instead of FreeBSD /usr/bin/ar). |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
4 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
5 # Building against an installed mupdf package fails because the libmupdfcpp.so |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
6 # is missing. |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
7 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
8 # Prepare: |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
9 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
10 # - Create a Python venv and activate it |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
11 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
12 # - In the "bin"-directory of the venv symlink "make" to /usr/local/bin/ggmake |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
13 # and "ar" to /usr/local/bin/ar |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
14 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
15 # * Makefiles have GNU syntax |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
16 # * ar is called with @-response-files -- which are a GNU feature |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
17 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
18 # - At first to not build with tesseract (OCR) |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
19 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
20 # export PYMUPDF_SETUP_MUPDF_TESSERACT=0 |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
21 # |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
22 # - Install a LLVM package that has the same version as the libclang |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
23 # Python package that will be used/installed |
|
bf1744083a54
Some documentation notes into Makefile.freebsd
Franz Glasner <fzglas.hg@dom66.de>
parents:
6
diff
changeset
|
24 # (e.g. pkg install llvm18 because of libclang>=18,<19) |
|
6
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
25 # |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
26 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
27 .PHONY: build |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
28 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
29 THIS_MAKEFILE_JUSTNAME:= $(firstword $(MAKEFILE_LIST)) |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
30 THIS_MAKEFILE_DIR:= $(abspath $(dir $(THIS_MAKEFILE_JUSTNAME))) |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
31 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
32 PYMUPDF_SETUP_MUPDF_BUILD?= $(THIS_MAKEFILE_DIR)/mupdf-source |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
33 PYMUPDF_SETUP_MUPDF_TESSERACT?= 0 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
34 LIBCLANG_LIBRARY_PATH?= $(CLANG_DIR)/lib |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
35 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
36 TEST= /bin/test |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
37 LOCALBASE?= /usr/local |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
38 SYMLINK?= /bin/ln -s |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
39 PYTHON?= python |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
40 PYTHON_PREFIXES!= $(PYTHON) -c 'import sys; print(sys.prefix); print(sys.base_prefix)' |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
41 CLANG_DIR?= /usr/local/llvm18 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
42 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
43 # Setting these does not work for some parts built by sub-makes |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
44 #CC= $(CLANG_DIR)/bin/clang |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
45 #CXX= $(CLANG_DIR)/bin/clang++ |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
46 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
47 build: |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
48 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES))) |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
49 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/make || $(SYMLINK) $(LOCALBASE)/bin/gmake $(firstword $(PYTHON_PREFIXES))/bin/make |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
50 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ar || $(SYMLINK) $(LOCALBASE)/bin/ar $(firstword $(PYTHON_PREFIXES))/bin/ar |
|
9
b2d41d02518f
Use the LLVM compilers by symlinking them in the venv.
Franz Glasner <fzglas.hg@dom66.de>
parents:
8
diff
changeset
|
51 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/cc || $(SYMLINK) $(CLANG_DIR)/bin/clang $(firstword $(PYTHON_PREFIXES))/bin/cc |
|
b2d41d02518f
Use the LLVM compilers by symlinking them in the venv.
Franz Glasner <fzglas.hg@dom66.de>
parents:
8
diff
changeset
|
52 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/c++ || $(SYMLINK) $(CLANG_DIR)/bin/clang++ $(firstword $(PYTHON_PREFIXES))/bin/c++ |
|
6
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
53 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 |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
54 else |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
55 $(error Not in a Python virtual environment) |
|
b5f06508363a
PyMuPDF builds on FreeBSD now with "gmake -f Makefile.freebsd".
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
56 endif |
