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.