File: Makefile

package info (click to toggle)
libmbd 0.12.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 700 kB
  • sloc: f90: 7,222; python: 1,512; ansic: 127; makefile: 48; sh: 12
file content (49 lines) | stat: -rw-r--r-- 1,260 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
ifndef VIRTUAL_ENV
$(error Must be run inside a Python virtual environment)
endif

BLDDIR ?= $(CURDIR)/build
export LIBMBD_PREFIX = $(VIRTUAL_ENV)
ifdef MPI_NODES
override RUN_CMD := env OMP_NUM_THREADS=1 mpiexec $(MPIEXEC_EXTRA_FLAGS) -n $(MPI_NODES) $(RUN_CMD)
endif
PYMBD_EXTRAS = test
ifneq (,$(findstring ENABLE_SCALAPACK_MPI=ON,$(CMAKE_ARGS)))
PYMBD_EXTRAS += mpi
endif
EMPTY =
SPACE = $(EMPTY) $(EMPTY)
COMMA = ,

all: install_editable test

run_cmake:
	cmake -B $(BLDDIR) -DCMAKE_INSTALL_PREFIX=$(LIBMBD_PREFIX) $(CMAKE_ARGS)

build_libmbd: run_cmake
	make -C $(BLDDIR) all

install_libmbd: build_libmbd
	make -C $(BLDDIR) install

install_editable: install_libmbd
	pip install -e .[$(subst $(SPACE),$(COMMA),$(PYMBD_EXTRAS))]

install: install_libmbd
	pip install .[$(subst $(SPACE),$(COMMA),$(PYMBD_EXTRAS))]

test_libmbd:
	ctest --test-dir $(BLDDIR) --output-on-failure

test: test_libmbd
	$(RUN_CMD) pytest -v --durations=3

build_doc:
	pip install "Markdown<3.4" "sphinx<3" "Jinja2<3.1" toml git+https://github.com/libmbd/ford@7b44574da7ec20f4ab4b1842ec7561de2a601930
	ford -I. doc/libmbd.md -o build
	sphinx-build -W -d $(BLDDIR)/doctrees doc doc/build/pymbd
	touch doc/build/.nojekyll

distclean:
	-rm -r $(BLDDIR)/*
	-rm src/pymbd/_libmbd.*.so