diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f7c721..61712ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,15 @@ option(WITH_CSOCKET "Unix control socket support for daemon" ON) option(WITH_HARDENING "Enable hardening options" OFF) option(WITH_PCRE "Build pcre-compatible filter" ON) -set(CMAKE_INSTALL_PREFIX "/usr/local") +if (NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr") +endif () +# HACK: cmake >= 3.4 fixes this +if (CMAKE_INSTALL_PREFIX MATCHES "^/usr/?$") + set(CMAKE_INSTALL_SYSCONFDIR "/etc") +endif () +include(GNUInstallDirs) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c99") add_definitions("-D_XOPEN_SOURCE=600") @@ -23,7 +31,12 @@ endif () message(STATUS "Compiler : ${CMAKE_C_COMPILER} (${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION})") message(STATUS "- CFLAGS : ${CMAKE_C_FLAGS}") -message(STATUS "Prefix : ${CMAKE_INSTALL_PREFIX}") +message(STATUS "Paths:") +message(STATUS "- prefix : ${CMAKE_INSTALL_PREFIX}") +message(STATUS "- configs : ${CMAKE_INSTALL_FULL_SYSCONFDIR}") +message(STATUS "- binary : ${CMAKE_INSTALL_FULL_BINDIR}") +message(STATUS "- binary : ${CMAKE_INSTALL_FULL_SBINDIR}") +message(STATUS "- data : ${CMAKE_INSTALL_FULL_DATAROOTDIR}") message(STATUS "Build type : ${CMAKE_BUILD_TYPE}") message(STATUS "Options:") message(STATUS "- WITH_CLIENT : ${WITH_CLIENT}") @@ -36,9 +49,9 @@ add_subdirectory(src) add_subdirectory(t) set_property(DIRECTORY "t" PROPERTY COMPILE_FLAGS "-g;-ggdb;-Wall;-Wextra;-pedantic;-O0") -install(DIRECTORY "filters" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/f2b/") -install(DIRECTORY "configs" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/f2b/") -install(FILES "configs/f2b.conf.sample" DESTINATION "${CMAKE_INSTALL_PREFIX}/etc/f2b/" RENAME "f2b.conf") +install(DIRECTORY "filters" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/f2b") +install(DIRECTORY "configs/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/f2b") +install(FILES "configs/f2b.conf.sample" DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}/f2b/" RENAME "f2b.conf") add_custom_target("dist" COMMAND "git" "archive" "--format=tar.gz" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0a8da81..2c00c86 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,12 +10,12 @@ endif () add_executable("f2b" ${SOURCES}) target_link_libraries(f2b "dl") -install(TARGETS "f2b" RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/sbin") +install(TARGETS "f2b" RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}) if (WITH_CLIENT) set(SOURCES "strlcpy.c" "log.c" "client.c" "cmsg.c" "commands.c" "csocket.c") add_executable("f2bc" ${SOURCES}) - install(TARGETS "f2bc" RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") + install(TARGETS "f2bc" RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif () set(SOURCES "strlcpy.c" "backend-test.c" "log.c" "config.c" "backend.c") diff --git a/src/backends/CMakeLists.txt b/src/backends/CMakeLists.txt index 9b577af..45b2eb1 100644 --- a/src/backends/CMakeLists.txt +++ b/src/backends/CMakeLists.txt @@ -7,4 +7,4 @@ list(APPEND BACKENDS "f2b_backend_exec") message(STATUS "- Backends : ${BACKENDS}") install(TARGETS ${BACKENDS} - LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/src/filters/CMakeLists.txt b/src/filters/CMakeLists.txt index 93c9c30..6401f11 100644 --- a/src/filters/CMakeLists.txt +++ b/src/filters/CMakeLists.txt @@ -14,4 +14,4 @@ endif () message(STATUS "- Filters : ${FILTERS}") install(TARGETS ${FILTERS} - LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})