comparison Makefile.freebsd @ 16:bd5bb0742cc3

A "check" target that checks for all venv and host prerequisites
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 17 Sep 2025 21:11:25 +0200
parents 393e55ef9200
children dd663470c57c
comparison
equal deleted inserted replaced
15:393e55ef9200 16:bd5bb0742cc3
24 # - At first to not build with tesseract (OCR) 24 # - At first to not build with tesseract (OCR)
25 # 25 #
26 # export PYMUPDF_SETUP_MUPDF_TESSERACT=0 26 # export PYMUPDF_SETUP_MUPDF_TESSERACT=0
27 # 27 #
28 28
29 .PHONY: build populate-venv 29 .PHONY: build populate-venv check
30
31 .SILENT: check
30 32
31 THIS_MAKEFILE_JUSTNAME:= $(firstword $(MAKEFILE_LIST)) 33 THIS_MAKEFILE_JUSTNAME:= $(firstword $(MAKEFILE_LIST))
32 THIS_MAKEFILE_DIR:= $(abspath $(dir $(THIS_MAKEFILE_JUSTNAME))) 34 THIS_MAKEFILE_DIR:= $(abspath $(dir $(THIS_MAKEFILE_JUSTNAME)))
33 35
34 PYMUPDF_SETUP_MUPDF_BUILD?= $(THIS_MAKEFILE_DIR)/mupdf-source 36 PYMUPDF_SETUP_MUPDF_BUILD?= $(THIS_MAKEFILE_DIR)/mupdf-source
47 # Symlink in the venv instead. 49 # Symlink in the venv instead.
48 # 50 #
49 #CC= $(CLANG_DIR)/bin/clang 51 #CC= $(CLANG_DIR)/bin/clang
50 #CXX= $(CLANG_DIR)/bin/clang++ 52 #CXX= $(CLANG_DIR)/bin/clang++
51 53
52 build: 54 build: check
53 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES)))
54 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/make || $(SYMLINK) $(LOCALBASE)/bin/gmake $(firstword $(PYTHON_PREFIXES))/bin/make 55 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/make || $(SYMLINK) $(LOCALBASE)/bin/gmake $(firstword $(PYTHON_PREFIXES))/bin/make
55 # $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ar || $(SYMLINK) $(LOCALBASE)/bin/ar $(firstword $(PYTHON_PREFIXES))/bin/ar
56 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ar || $(SYMLINK) $(CLANG_DIR)/bin/llvm-ar $(firstword $(PYTHON_PREFIXES))/bin/ar 56 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ar || $(SYMLINK) $(CLANG_DIR)/bin/llvm-ar $(firstword $(PYTHON_PREFIXES))/bin/ar
57 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/cc || $(SYMLINK) $(CLANG_DIR)/bin/clang $(firstword $(PYTHON_PREFIXES))/bin/cc 57 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/cc || $(SYMLINK) $(CLANG_DIR)/bin/clang $(firstword $(PYTHON_PREFIXES))/bin/cc
58 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/c++ || $(SYMLINK) $(CLANG_DIR)/bin/clang++ $(firstword $(PYTHON_PREFIXES))/bin/c++ 58 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/c++ || $(SYMLINK) $(CLANG_DIR)/bin/clang++ $(firstword $(PYTHON_PREFIXES))/bin/c++
59 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ld || $(SYMLINK) $(CLANG_DIR)/bin/ld.lld $(firstword $(PYTHON_PREFIXES))/bin/ld 59 $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ld || $(SYMLINK) $(CLANG_DIR)/bin/ld.lld $(firstword $(PYTHON_PREFIXES))/bin/ld
60 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 60 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
61 else
62 $(error Not in a Python virtual environment)
63 endif
64 61
65 62
66 populate-venv: 63 populate-venv:
67 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES))) 64 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES)))
68 $(PYTHON) -m pip install -U -r requirements-build.txt 65 $(PYTHON) -m pip install -U -r requirements-build.txt
69 else 66 else
70 $(error Not in a Python virtual environment) 67 $(error Not in a Python virtual environment)
71 endif 68 endif
69
70
71 check:
72 ifneq ($(firstword $(PYTHON_PREFIXES)),$(lastword $(PYTHON_PREFIXES)))
73 $(PYTHON) -m pip freeze | grep -E '^\s*setuptools-scm==' >/dev/null
74 $(PYTHON) -m pip freeze | grep -E '^\s*build==' >/dev/null
75 $(PYTHON) -m pip freeze | grep -E '^\s*swig==' >/dev/null
76 $(PYTHON) -m pip freeze | grep -E '^\s*libclang==18\.' >/dev/null
77 $(TEST) -x $(LOCALBASE)/bin/gmake
78 $(TEST) -x $(LOCALBASE)/bin/cmake
79 $(TEST) -x $(CLANG_DIR)/bin/llvm-ar
80 $(TEST) -x $(CLANG_DIR)/bin/clang
81 $(TEST) -x $(CLANG_DIR)/bin/clang++
82 $(TEST) -x $(CLANG_DIR)/bin/ld.lld
83 else
84 $(error Not in a Python virtual environment)
85 endif