Skip to content

Commit ce8c26b

Browse files
authored
Merge pull request #104 from mhvk/install-from-source
Add install from source instructions
2 parents 79e5ea2 + 6e83f1c commit ce8c26b

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

quaddtype/README.md

+36
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,39 @@ np.array([1,2,3], dtype=QuadPrecDType("sleef"))
2020
# using longdouble backend
2121
np.array([1,2,3], dtype=QuadPrecDType("longdouble"))
2222
```
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

Comments
 (0)