build dynamic lib use makefile wrapper to test all use cases include clang-tidy config file prevent clang-tidy warnings