============================
SESUM COMPILATION GUIDE
============================

Requirements:
-------------
Please search online on how to install these for your specific system:
- CMake
- GCC
- G++
- Python (ensure Numpy is installed)

Platform-Specific Requirements:
-------------------------------
- Windows:
  * Install the compiler: MinGW Distro 18.0
    Download link: https://nuwen.net/mingw.html
    After installation, remember to add the path to the compiler binaries to your system's PATH.
    You do not need a separate Boost installation, it is included in the MinGW Distro.

- macOS:
  * Use GCC from Homebrew. 
    Download link: https://formulae.brew.sh/formula/gcc


Compilation Steps:
--------------------------------------
Summary:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE ..
make -j 8

Detailed instructions:

1. Create a build directory:

mkdir build
cd build

2. Set up compilation:
- For macOS provide the g++ and gcc version installed:

CXX=g++-12 CC=gcc-12 cmake -DCMAKE_BUILD_TYPE=RELEASE ..

- For other platforms:

cmake -DCMAKE_BUILD_TYPE=RELEASE ..

3. Compile:

make -j 8

Note: 
The "sesum" folder now has the dynamic library named 'libsr'.
'libsr' is stored in the appropriate subfolder based on the operating system and system architecture.
To execute sesum in Python, you only need the "sesum" directory.

If you wish to create a wheel package that can be installed using pip,
first install the necessary tools and then execute the packaging command (out of source):

pip install wheel setuptools

cd wheel_build
python setup.py sdist bdist_wheel

Once executed, the wheel file will be located in the wheel_build/dist/ directory.
You can then install it using pip.

pip install sesum-0.4.0-py3-none-any.whl


Usage:
--------------------------------------
Refer to "main_sesum.py" for usage instructions.

Happy coding!
