Dependencies - tahiri-lab/KMeansPhyloTreesClustering GitHub Wiki
In this project there are no important external libraries
The following dependencies are identified directly from the Makefile:
1. GNU C++ Compiler (g++)
g++ -std=c++11 main.cpp fonctions.cpp hgt_int.cpp K-means.cpp Super-trees.cpp utils_tree.cpp -fopenmp -g -o KMPTC
2. C++ Standard (C++11)
-std=c++11
3. OpenMP (Parallel Computing)
-fopenmp
4. Internal Source Files
main.cpp fonctions.cpp hgt_int.cpp K-means.cpp Super-trees.cpp utils_tree.cpp
These files represent the core implementation of the application.
5. Python 3
PY_INCLUDES = $(shell python3 -m pybind11 --includes)
PY_SUFFIX = $(shell python3-config --extension-suffix)
6. pybind11
PY_INCLUDES = $(shell python3 -m pybind11 --includes)
7. Python Development Headers
PY_SUFFIX = $(shell python3-config --extension-suffix)
8. Shared Library Compilation Support
g++ -O3 -shared -std=c++11 -fPIC $(PY_INCLUDES) $(PY_SRC) -o $(PYEXT_NAME)$(PY_SUFFIX)
9. System Commands (Unix Shell)
@if [ ! -d "../output" ]; then mkdir "../output"; fi
@if [ ! -d "../output/stat.csv" ]; then touch "../output/stat.csv"; fi
@if [ ! -d "../output/output.txt" ]; then touch "../output/output.txt"; fi
chmod -R 777 * .
Required tools:
- mkdir
- touch
- chmod
- Unix-like shell environment
10. Make Utility
$(RM) *.o input_.txt
$(RM) KMPTC
Summary
The project depends on:
- GNU C++ compiler (g++)
- C++11 standard
- OpenMP for parallelism
- Python 3 and pybind11 (optional, for Python bindings)
- Unix-like shell commands (mkdir, touch, chmod)
- Make utility
The project mainly relies on:
- C++ Standard Library (STL)
- C Standard Library
- POSIX system libraries (Unix-based systems)
- Internal project headers
No external third-party libraries are required.