@@ -20,3 +20,39 @@ np.array([1,2,3], dtype=QuadPrecDType("sleef"))
20
20
# using longdouble backend
21
21
np.array([1 ,2 ,3 ], dtype = QuadPrecDType(" longdouble" ))
22
22
```
23
+
24
+ ## Install from source
25
+
26
+ The code needs the quad precision pieces of the sleef library, which
27
+ is not available on most systems by default, so we have to generate
28
+ that first. The below assumes one has the required pieces to build
29
+ sleef (cmake and libmpfr-dev), and that one is in the package
30
+ directory locally.
31
+
32
+ ```
33
+ git clone https://github.com/shibatch/sleef.git
34
+ cd sleef
35
+ cmake -S . -B build -DSLEEF_BUILD_QUAD:BOOL=ON -DSLEEF_BUILD_SHARED_LIBS:BOOL=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON
36
+ cmake --build build/ --clean-first -j
37
+ cd ..
38
+ ```
39
+
40
+ In principle, one can now install this system-wide, but easier would
41
+ seem to use the version that was just created, as follows:
42
+ ```
43
+ export SLEEF_DIR=$PWD/sleef/build
44
+ export LIBRARY_PATH=$SLEEF_DIR/lib
45
+ export C_INCLUDE_PATH=$SLEEF_DIR/include
46
+ export CPLUS_INCLUDE_PATH=$SLEEF_DIR/include
47
+ python3 -m venv temp
48
+ source temp/bin/activate
49
+ pip install meson-python numpy pytest
50
+ pip install -e . -v --no-build-isolation
51
+ export LD_LIBRARY_PATH=$SLEEF_DIR/lib
52
+ ```
53
+
54
+ Here, we created an editable install on purpose, so one can just work
55
+ from the package directory if needed, e.g., to run the tests with,
56
+ ```
57
+ python -m pytest
58
+ ```
0 commit comments