diff --git a/src/app/mumta.cpp b/src/app/mumta.cpp index 4dad2ad4c38ebb32b1730fbe6539c3a016e8fc76..296e09ac2d8d89054e12936dc5d668653cd1ac53 100644 --- a/src/app/mumta.cpp +++ b/src/app/mumta.cpp @@ -1,10 +1,40 @@ #include <chrono> #include <cstdint> +#include <iostream> #include <thread> +#include <ev++.h> + #include "service/daemonctl.hpp" +bool check_version_libev() { + auto ev_major{ev::version_major()}; + auto ev_minor{ev::version_minor()}; + + constexpr auto exp_major{EV_VERSION_MAJOR}; + constexpr auto exp_minor{EV_VERSION_MINOR}; + + std::cout << "Checking dependency: libev: detected " << ev_major << "." << ev_minor << ", compiled " << exp_major << "." << exp_minor << "\n" << std::flush; + + if(ev_major != exp_major) { + std::cerr << "Checking dependency: libev: failed version check: Major API version mismatch.\n" << std::flush; + return false; + } + + if(ev_minor < exp_minor) { + std::cerr << "Checking dependency: libev: failed version check: Minor API version too old.\n" << std::flush; + return false; + } + + return true; +} + int main() { + dctl_status_msg("Checking environment"); + if(!check_version_libev()) { + return 1; + } + dctl_status_msg("Initializing"); dctl_status_msg("Reading configuration"); dctl_status_msg("Initializing network"); @@ -30,4 +60,6 @@ int main() { dctl_status_msg("Storing active caches"); dctl_status_msg("Closing active sockets"); dctl_status_msg("Inactive"); + + return 0; } diff --git a/src/app/mumta.ldflags b/src/app/mumta.ldflags index c205321e11519249597afe086d06d17585ce73ff..5cee85c8c4c37ef4f91f3d6e2af590506200ea54 100644 --- a/src/app/mumta.ldflags +++ b/src/app/mumta.ldflags @@ -1 +1,3 @@ `pkg-config --cflags --libs libsystemd` +-lev +-pthread