diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2021-06-08 23:39:47 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2021-06-09 00:28:54 +0200 |
commit | 4d6ea33aa43627b25eb2f1a0dcc7391d651bc32e (patch) | |
tree | c20bd1d02431738587afb698e5be99b1f18c5e60 | |
parent | 55ecf068b36c065363f3e6db37d314ae78d9f54d (diff) |
Trying to fix BUILD_NDPI for xcompilation.
* added a CMake warning as well
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | CMakeLists.txt | 21 | ||||
-rwxr-xr-x | scripts/get-and-build-libndpi.sh | 7 |
2 files changed, 24 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 595da7574..6e60120d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ option(BUILD_NDPI "Clone and build nDPI from github." OFF) option(NDPI_NO_PKGCONFIG "Do not use pkgconfig to search for libnDPI." OFF) set(STATIC_LIBNDPI_INSTALLDIR "" CACHE STRING "Path to a installation directory of libnDPI e.g. /opt/libnDPI/usr") +set(CROSS_COMPILE_TRIPLET "" CACHE STRING "Host triplet used to enable cross compiling.") add_executable(nDPId nDPId.c utils.c) add_executable(nDPIsrvd nDPIsrvd.c utils.c) @@ -23,7 +24,18 @@ add_custom_command( DEPENDS nDPId nDPIsrvd ) +if(NOT CROSS_COMPILE_TRIPLET STREQUAL "") + set(CMAKE_C_COMPILER_TARGET ${CROSS_COMPILE_TRIPLET}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +endif() + if(BUILD_NDPI) + message(WARNING "Building nDPI from source is an experimental feature " + "used for development/testing purposes.\n" + "The build process may fail at any time.") enable_testing() add_test(NAME run_tests COMMAND "${CMAKE_SOURCE_DIR}/test/run_tests.sh" @@ -36,7 +48,7 @@ execute_process( WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_VERSION ERROR_QUIET) string(STRIP "${GIT_VERSION}" GIT_VERSION) -if(GIT_VERSION STREQUAL "") +if(GIT_VERSION STREQUAL "" OR NOT IS_DIRECTORY "${CMAKE_SOURCE_DIR}/.git") if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "") set(GIT_VERSION "1.5-pre") else() @@ -75,7 +87,9 @@ if(STATIC_LIBNDPI_INSTALLDIR STREQUAL "" AND BUILD_NDPI) ExternalProject_Add( libnDPI SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libnDPI + DOWNLOAD_COMMAND "" CONFIGURE_COMMAND env CC=${CMAKE_C_COMPILER} CFLAGS=${CMAKE_C_FLAGS} LDFLAGS=${CMAKE_EXE_LINKER_FLAGS} + CROSS_COMPILE_TRIPLET=${CROSS_COMPILE_TRIPLET} MAKE_PROGRAM=make DEST_INSTALL=${CMAKE_BINARY_DIR}/libnDPI ${CMAKE_CURRENT_SOURCE_DIR}/scripts/get-and-build-libndpi.sh BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/libnDPI/lib/libndpi.a @@ -133,7 +147,7 @@ target_compile_options(nDPId PRIVATE ${NDPID_C_FLAGS} -DGIT_VERSION=\"${GIT_VERS target_include_directories(nDPId PRIVATE "${STATIC_LIBNDPI_INC}" "${NDPI_INCLUDEDIR}" "${NDPI_INCLUDEDIR}/ndpi") target_link_libraries(nDPId "${STATIC_LIBNDPI_LIB}" "${pkgcfg_lib_NDPI_ndpi}" "${pkgcfg_lib_PCRE_pcre}" "${pkgcfg_lib_MAXMINDDB_maxminddb}" - "${GCRYPT_LIBRARY}" "${PCAP_LIBRARY}" + "${GCRYPT_LIBRARY}" "${GCRYPT_ERROR_LIBRARY}" "${PCAP_LIBRARY}" "-pthread") target_compile_options(nDPIsrvd PRIVATE ${NDPID_C_FLAGS} -DGIT_VERSION=\"${GIT_VERSION}\" ${MEMORY_PROFILING_CFLAGS}) @@ -153,7 +167,7 @@ target_include_directories(nDPId-test PRIVATE "${STATIC_LIBNDPI_INC}" "${NDPI_IN target_compile_definitions(nDPId-test PRIVATE "-D_GNU_SOURCE=1" "-DNO_MAIN=1" "-Dsyslog=mock_syslog_stderr") target_link_libraries(nDPId-test "${STATIC_LIBNDPI_LIB}" "${pkgcfg_lib_NDPI_ndpi}" "${pkgcfg_lib_PCRE_pcre}" "${pkgcfg_lib_MAXMINDDB_maxminddb}" - "${GCRYPT_LIBRARY}" "${PCAP_LIBRARY}" + "${GCRYPT_LIBRARY}" "${GCRYPT_ERROR_LIBRARY}" "${PCAP_LIBRARY}" "-pthread") if(BUILD_EXAMPLES) @@ -189,6 +203,7 @@ install(FILES examples/py-flow-info/flow-info.py DESTINATION bin RENAME nDPIsrvd message(STATUS "--------------------------") message(STATUS "nDPId GIT_VERSION........: ${GIT_VERSION}") +message(STATUS "CROSS_COMPILE_TRIPLET....: ${CROSS_COMPILE_TRIPLET}") message(STATUS "CMAKE_BUILD_TYPE.........: ${CMAKE_BUILD_TYPE}") message(STATUS "CMAKE_C_FLAGS............: ${CMAKE_C_FLAGS}") message(STATUS "NDPID_C_FLAGS............: ${NDPID_C_FLAGS}") diff --git a/scripts/get-and-build-libndpi.sh b/scripts/get-and-build-libndpi.sh index 945dcf7b3..573b68d2c 100755 --- a/scripts/get-and-build-libndpi.sh +++ b/scripts/get-and-build-libndpi.sh @@ -20,7 +20,12 @@ fi cd ./libnDPI DEST_INSTALL="${DEST_INSTALL:-$(realpath ./install)}" MAKE_PROGRAM="${MAKE_PROGRAM:-make -j4}" -./autogen.sh --prefix="${DEST_INSTALL}" --with-only-libndpi +if [ ! -z "${CROSS_COMPILE_TRIPLET}" ]; then + HOST_ARG="--host=${CROSS_COMPILE_TRIPLET}" +else + HOST_ARG="" +fi +./autogen.sh --prefix="${DEST_INSTALL}" --with-only-libndpi ${HOST_ARG} ${MAKE_PROGRAM} install rm -f "${LOCKFILE}" |