From: Michael Altizer (mialtize) Date: Fri, 23 Dec 2016 18:48:21 +0000 (-0500) Subject: Merge pull request #759 in SNORT/snort3 from pkg_conf to master X-Git-Tag: 3.0.0-233~123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35066e2f6a90863e21da91a30fe009d67c67fe26;p=thirdparty%2Fsnort3.git Merge pull request #759 in SNORT/snort3 from pkg_conf to master Squashed commit of the following: commit 5ffeafc229b253e2e0b3cdd4da94e57f9c50272d Author: Carter Waxman Date: Tue Dec 13 14:13:54 2016 -0500 Added CPP flags used to build Snort to snort.pc for extras and other plugins to use --- diff --git a/cmake/create_pkg_config.cmake b/cmake/create_pkg_config.cmake index 652705b51..6b0ac3c4f 100644 --- a/cmake/create_pkg_config.cmake +++ b/cmake/create_pkg_config.cmake @@ -12,7 +12,45 @@ set(datadir "\${datarootdir}") set(mandir "\${datarootdir}/man") set(infodir "\${datarootdir}/info") -set(DAQ_CPPFLAGS "-I${DAQ_INCLUDE_DIR}") +if(PCAP_INCLUDE_DIR) + set(PCAP_CPPFLAGS "-I${PCAP_INCLUDE_DIR}") +endif() + +if(HWLOC_INCLUDE_DIR) + set(HWLOC_CPPFLAGS "-I${HWLOC_INCLUDE_DIR}") +endif() + +if(LUAJIT_INCLUDE_DIR) + set(LUAJIT_CPPFLAGS "-I${LUAJIT_INCLUDE_DIR}") +endif() + +if(PCRE_INCLUDE_DIR) + set(PCRE_CPPFLAGS "-I${PCRE_INCLUDE_DIR}") +endif() + +if(DNET_INCLUDE_DIR) + set(DNET_CPPFLAGS "-I${DNET_INCLUDE_DIR}") +endif() + +if(DAQ_INCLUDE_DIR) + set(DAQ_CPPFLAGS "-I${DAQ_INCLUDE_DIR}") +endif() + +if(LZMA_INCLUDE_DIR) + set(LZMA_CPPFLAGS "-I${LZMA_INCLUDE_DIR}") +endif() + +if(OPENSSL_INCLUDE_DIR) + set(OPENSSL_CPPFLAGS "-I${OPENSSL_INCLUDE_DIR}") +endif() + +if(INTEL_SOFT_CPM_INCLUDE_DIR) + set(INTEL_SOFT_CPM_CPPFLAGS "-I${INTEL_SOFT_CPM_INCLUDE_DIR}") +endif() + +if(HYPERSCAN_INCLUDE_DIR) + set(HYPERSCAN_CPPFLAGS "-I${HYPERSCAN_INCLUDE_DIR}") +endif() # create & install pkgconfig file diff --git a/configure.ac b/configure.ac index 357c3882d..cf18882fe 100644 --- a/configure.ac +++ b/configure.ac @@ -578,8 +578,10 @@ AC_ARG_WITH(pcap_includes, AS_HELP_STRING([--with-pcap-includes=DIR],[libpcap include directory]), [with_libpcap_includes="$withval"],[with_libpcap_includes="no"]) +PCAP_CPPFLAGS="" if test "x$with_libpcap_includes" != "xno"; then - CPPFLAGS="${CPPFLAGS} -I${with_libpcap_includes}" + PCAP_CPPFLAGS="-I${with_libpcap_includes}" + CPPFLAGS="${CPPFLAGS} ${PCAP_CPPFLAGS}" fi AC_ARG_WITH(pcap_libraries, @@ -628,8 +630,9 @@ AC_MSG_CHECKING([for hwloc pkg-config presence]) PKG_CHECK_EXISTS([hwloc], [have_hwloc_pkgconfig="yes"], [have_hwloc_pkgconfig="no"]) AC_MSG_RESULT(${have_hwloc_pkgconfig}) +HWLOC_CPPFLAGS="" if test "${have_hwloc_pkgconfig}" = "yes" ; then - HWLOC_CFLAGS=`${PKG_CONFIG} --cflags hwloc` + HWLOC_CPPFLAGS=`${PKG_CONFIG} --cflags hwloc` HWLOC_LDFLAGS=`${PKG_CONFIG} --libs-only-L hwloc` fi @@ -638,7 +641,7 @@ AC_ARG_WITH(hwloc_includes, [with_hwloc_includes="$withval"],[with_hwloc_includes="no"]) if test "x$with_hwloc_includes" != "xno"; then - HWLOC_CFLAGS="-I${with_hwloc_includes}" + HWLOC_CPPFLAGS="-I${with_hwloc_includes}" fi AC_ARG_WITH(hwloc_libraries, @@ -649,7 +652,7 @@ if test "x$with_hwloc_libraries" != "xno"; then HWLOC_LDFLAGS="-L${with_hwloc_libraries}" fi -CPPFLAGS="${HWLOC_CFLAGS} ${CPPFLAGS}" +CPPFLAGS="${HWLOC_CPPFLAGS} ${CPPFLAGS}" LDFLAGS="${HWLOC_LDFLAGS} ${LDFLAGS}" AC_CHECK_HEADERS([hwloc.h], , [AC_MSG_ERROR(hwloc header not found.)]) @@ -663,8 +666,9 @@ AC_MSG_CHECKING([for luajit pkg-config presence]) PKG_CHECK_EXISTS([luajit], [ have_luajit_pkgconfig="yes" ], [ have_luajit_pkgconfig="no" ]) AC_MSG_RESULT(${have_luajit_pkgconfig}) +LUAJIT_CPPFLAGS="" if test "${have_luajit_pkgconfig}" = "yes" ; then - LUAJIT_CFLAGS=`${PKG_CONFIG} --cflags luajit` + LUAJIT_CPPFLAGS=`${PKG_CONFIG} --cflags luajit` LUAJIT_LDFLAGS=`${PKG_CONFIG} --libs-only-L luajit` fi @@ -673,7 +677,7 @@ AC_ARG_WITH(luajit_includes, [with_luajit_includes="$withval"],[with_luajit_includes="no"]) if test "x$with_luajit_includes" != "xno"; then - LUAJIT_CFLAGS="-I${with_luajit_includes}" + LUAJIT_CPPFLAGS="-I${with_luajit_includes}" fi AC_ARG_WITH(luajit_libraries, @@ -688,7 +692,7 @@ if test "x$macos" != "xno"; then LUAJIT_LDFLAGS="${LUAJIT_LDFLAGS} -pagezero_size 10000 -image_base 100000000" fi -CPPFLAGS="${CPPFLAGS} ${LUAJIT_CFLAGS}" +CPPFLAGS="${CPPFLAGS} ${LUAJIT_CPPFLAGS}" LDFLAGS="${LDFLAGS} ${LUAJIT_LDFLAGS}" AC_LANG_PUSH([C++]) @@ -704,6 +708,7 @@ AC_MSG_CHECKING([for libpcre pkg-config presence]) PKG_CHECK_EXISTS([libpcre], [ have_libpcre_pkgconfig="yes" ], [ have_libpcre_pkgconfig="no" ]) AC_MSG_RESULT(${have_libpcre_pkgconfig}) +PCRE_CPPFLAGS="" if test "${have_libpcre_pkgconfig}" = "yes" ; then PCRE_CFLAGS=`${PKG_CONFIG} --cflags libpcre` PCRE_LDFLAGS=`${PKG_CONFIG} --libs-only-L libpcre` @@ -714,9 +719,9 @@ AC_ARG_WITH(pcre_includes, [with_libpcre_includes="$withval"],[with_libpcre_includes="no"]) if test "x$with_libpcre_includes" != "xno"; then - PCRE_CFLAGS="-I${with_libpcre_includes}" + PCRE_CPPFLAGS="-I${with_libpcre_includes}" elif test "${have_libpcre_pkgconfig}" = "no"; then - PCRE_CFLAGS="`pcre-config --cflags`" + PCRE_CPPFLAGS="`pcre-config --cflags`" fi AC_ARG_WITH(pcre_libraries, @@ -729,7 +734,7 @@ elif test "${have_libpcre_pkgconfig}" = "no"; then PCRE_LDFLAGS="`pcre-config --libs`" fi -CPPFLAGS="${CPPFLAGS} ${PCRE_CFLAGS}" +CPPFLAGS="${CPPFLAGS} ${PCRE_CPPFLAGS}" LDFLAGS="${LDFLAGS} ${PCRE_LDFLAGS}" # PCRE configuration (required) @@ -762,21 +767,24 @@ AC_ARG_WITH(dnet_includes, AS_HELP_STRING([--with-dnet-includes=DIR],[libdnet include directory]), [with_dnet_includes="$withval"],[with_dnet_includes="no"]) +DNET_CPPFLAGS="" if test "x$with_dnet_includes" != "xno"; then - CPPFLAGS="${CPPFLAGS} -I${with_dnet_includes}" + DNET_CPPFLAGS="-I${with_dnet_includes}" else - CPPFLAGS="${CPPFLAGS} `dnet-config --cflags 2>/dev/null`" + DNET_CPPFLAGS="`dnet-config --cflags 2>/dev/null`" fi +CPPFLAGS="${CPPFLAGS} ${DNET_CPPFLAGS}" AC_ARG_WITH(dnet_libraries, AS_HELP_STRING([--with-dnet-libraries=DIR],[libdnet library directory]), [with_dnet_libraries="$withval"],[with_dnet_libraries="no"]) if test "x$with_dnet_libraries" != "xno"; then - LDFLAGS="${LDFLAGS} -L${with_dnet_libraries}" + DNET_LIBS="-L${with_dnet_libraries}" else - LDFLAGS="${LDFLAGS} `dnet-config --libs 2>/dev/null`" + DNET_LIBS="`dnet-config --libs 2>/dev/null`" fi +LDFLAGS="${LDFLAGS} ${DNET_LIBS}" AC_CHECK_HEADERS(dnet.h,,DNET_H="no") AC_CHECK_HEADERS(dumbnet.h,,DUMBNET_H="no") @@ -808,6 +816,7 @@ AC_ARG_WITH(daq_includes, AS_HELP_STRING([--with-daq-includes=DIR],[DAQ include directory]), [with_daq_includes="$withval"],[with_daq_includes="no"]) +DAQ_CPPFLAGS="" if test "x$with_daq_includes" != "xno"; then DAQ_CPPFLAGS="-I${with_daq_includes}" CPPFLAGS="${CPPFLAGS} ${DAQ_CPPFLAGS}" @@ -916,8 +925,10 @@ AC_ARG_WITH(lzma_includes, AS_HELP_STRING([--with-lzma-includes=DIR],[liblzma include directory]), [with_lzma_includes="$withval"],[with_lzma_includes="no"]) +LZMA_CPPFLAGS="" if test "x$with_lzma_includes" != "xno"; then - CPPFLAGS="${CPPFLAGS} -I${with_lzma_includes}" + LZMA_CPPFLAGS="-I${with_lzma_includes}" + CPPFLAGS="${CPPFLAGS} ${LZMA_CPPFLAGS}" fi AC_ARG_WITH(lzma_libraries, @@ -971,8 +982,10 @@ AC_ARG_WITH(openssl_includes, AS_HELP_STRING([--with-openssl-includes=DIR],[openssl include directory]), [with_openssl_includes="$withval"],[with_openssl_includes="no"]) +OPENSSL_CPPFLAGS="" if test "x$with_openssl_includes" != "xno"; then - CPPFLAGS="${CPPFLAGS} -I${with_openssl_includes}" + OPENSSL_CPPFLAGS="-I${with_openssl_includes}" + CPPFLAGS="${CPPFLAGS} ${OPENSSL_CPPFLAGS}" fi AC_ARG_WITH(openssl_libraries, @@ -996,8 +1009,10 @@ AC_ARG_WITH(intel_soft_cpm_includes, AS_HELP_STRING([--with-intel-soft-cpm-includes=DIR],[Intel Soft CPM include directory]), [with_intel_soft_cpm_includes="$withval"],[with_intel_soft_cpm_includes="no"]) +INTEL_SOFT_CPM_CPPFLAGS="" if test "x$with_intel_soft_cpm_includes" != "xno"; then - CPPFLAGS="${CPPFLAGS} -I${with_intel_soft_cpm_includes}" + INTEL_SOFT_CPM_CPPFLAGS="-I${with_intel_soft_cpm_includes}" + CPPFLAGS="${CPPFLAGS} ${INTEL_SOFT_CPM_CPPFLAGS}" else enable_intel_soft_cpm="no" fi @@ -1027,8 +1042,9 @@ AC_MSG_CHECKING([for hyperscan pkg-config presence]) PKG_CHECK_EXISTS([libhs], [ have_hyperscan_pkgconfig="yes" ], [ have_hyperscan_pkgconfig="no" ]) AC_MSG_RESULT(${have_hyperscan_pkgconfig}) +HYPERSCAN_CPPFLAGS="" if test "${have_hyperscan_pkgconfig}" = "yes" ; then - HYPERSCAN_CFLAGS=`${PKG_CONFIG} --cflags libhs` + HYPERSCAN_CPPFLAGS=`${PKG_CONFIG} --cflags libhs` HYPERSCAN_LDFLAGS=`${PKG_CONFIG} --libs-only-L libhs` fi @@ -1037,7 +1053,7 @@ AC_ARG_WITH(hyperscan_includes, [with_hyperscan_includes="$withval"],[with_hyperscan_includes="no"]) if test "x$with_hyperscan_includes" != "xno"; then - HYPERSCAN_CFLAGS="-I${with_hyperscan_includes}" + HYPERSCAN_CPPFLAGS="-I${with_hyperscan_includes}" fi AC_ARG_WITH(hyperscan_libraries, @@ -1048,7 +1064,7 @@ if test "x$with_hyperscan_libraries" != "xno"; then HYPERSCAN_LDFLAGS="-L${with_hyperscan_libraries}" fi -CPPFLAGS="${CPPFLAGS} ${HYPERSCAN_CFLAGS}" +CPPFLAGS="${CPPFLAGS} ${HYPERSCAN_CPPFLAGS}" LDFLAGS="${LDFLAGS} ${HYPERSCAN_LDFLAGS}" AC_CHECK_HEADERS(hs.h, HS_HEADERS="yes", HS_HEADERS="no") @@ -1096,11 +1112,21 @@ AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_LDFLAGS) AC_SUBST(snort2lua_CPPFLAGS) -AC_SUBST(DAQ_CPPFLAGS) AC_SUBST(CPPUTEST_CPPFLAGS) AC_SUBST(CPPUTEST_LDFLAGS) +AC_SUBST(PCAP_CPPFLAGS) +AC_SUBST(HWLOC_CPPFLAGS) +AC_SUBST(LUAJIT_CPPFLAGS) +AC_SUBST(PCRE_CPPFLAGS) +AC_SUBST(DNET_CPPFLAGS) +AC_SUBST(DAQ_CPPFLAGS) +AC_SUBST(LZMA_CPPFLAGS) +AC_SUBST(OPENSSL_CPPFLAGS) +AC_SUBST(INTEL_SOFT_CPM_CPPFLAGS) +AC_SUBST(HYPERSCAN_CPPFLAGS) + AC_CONFIG_FILES([ \ snort.pc \ Makefile \ diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt index 5ce8691ca..206c0923c 100644 --- a/extra/CMakeLists.txt +++ b/extra/CMakeLists.txt @@ -25,13 +25,45 @@ set (CPACK_SOURCE_GENERATOR TGZ) include(CPack) -# hacks for the DAQ +set ( C_FLAGS "" CACHE STRING "" ) +set ( CXX_FLAGS "" CACHE STRING "" ) + +set ( CMAKE_C_FLAGS "${C_FLAGS}" CACHE STRING "" FORCE ) +set ( CMAKE_CXX_FLAGS "${CXX_FLAGS}" CACHE STRING "" FORCE ) + +execute_process ( + COMMAND pkg-config --variable=cpp_opts snort + OUTPUT_VARIABLE CPP_OPTS +) +string ( REGEX REPLACE "[\r\n]" " " CPP_OPTS "${CPP_OPTS}" ) +separate_arguments ( CPP_OPTS ) + +foreach ( OPT ${CPP_OPTS} ) + execute_process ( + COMMAND pkg-config --variable=${OPT}_CPPFLAGS snort + OUTPUT_VARIABLE CPPFLAGS + ) + + string ( REGEX REPLACE "[\r\n]" " " CPPFLAGS "${CPPFLAGS}" ) + set ( ${OPT}_CPPFLAGS "${CPPFLAGS}" CACHE STRING "" ) + + set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${OPT}_CPPFLAGS}" CACHE STRING "" FORCE ) + set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${OPT}_CPPFLAGS}" CACHE STRING "" FORCE ) +endforeach ( OPT ) + execute_process ( - COMMAND pkg-config --variable=daq_cppflags snort - OUTPUT_VARIABLE DAQ_CPPFLAGS + COMMAND pkg-config --variable=cpp_opts_other snort + OUTPUT_VARIABLE CPP_OPTS_OTHER ) +string ( REGEX REPLACE "[\r\n]" " " CPP_OPTS_OTHER "${CPP_OPTS_OTHER}" ) +separate_arguments ( CPP_OPTS_OTHER ) -string ( REGEX REPLACE "[\r\n]" " " DAQ_CPPFLAGS "${DAQ_CPPFLAGS}" ) +foreach ( OPT ${CPP_OPTS_OTHER} ) + execute_process ( + COMMAND pkg-config --variable=${OPT}_CPPFLAGS snort + OUTPUT_VARIABLE CPPFLAGS + ) -set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DAQ_CPPFLAGS}" ) -set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DAQ_CPPFLAGS}" ) + string ( REGEX REPLACE "[\r\n]" " " CPPFLAGS "${CPPFLAGS}" ) + set ( ${OPT}_CPPFLAGS "${CPPFLAGS}" CACHE STRING "" ) +endforeach ( OPT ) diff --git a/extra/configure.ac b/extra/configure.ac index 614ad5ee9..edf7a7403 100644 --- a/extra/configure.ac +++ b/extra/configure.ac @@ -15,8 +15,10 @@ AX_CXX_COMPILE_STDCXX_11 PKG_CHECK_MODULES([SNORT3], [snort >= 3]) -# pkg magic doesn't work for custom vars -CPPFLAGS="`pkg-config --variable=daq_cppflags snort` ${CPPFLAGS}" +for i in `pkg-config --variable=cpp_opts snort`; do + CPPFLAGS_VAL=`pkg-config --variable=${i}_CPPFLAGS snort` + CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_VAL}" +done AC_SUBST([SNORT3_CFLAGS]) AC_SUBST([CPPFLAGS]) diff --git a/snort.pc.in b/snort.pc.in index bd7a7918a..386456265 100644 --- a/snort.pc.in +++ b/snort.pc.in @@ -7,7 +7,20 @@ datarootdir=@datarootdir@ datadir=@datadir@ mandir=@mandir@ infodir=@infodir@ -daq_cppflags=@DAQ_CPPFLAGS@ + +cpp_opts=PCAP LUAJIT DNET DAQ OPENSSL +cpp_opts_other=HWLOC PCRE LZMA INTEL_SOFT_CPM HYPERSCAN + +PCAP_CPPFLAGS=@PCAP_CPPFLAGS@ +LUAJIT_CPPFLAGS=@LUAJIT_CPPFLAGS@ +DNET_CPPFLAGS=@DNET_CPPFLAGS@ +DAQ_CPPFLAGS=@DAQ_CPPFLAGS@ +OPENSSL_CPPFLAGS=@OPENSSL_CPPFLAGS@ +HWLOC_CPPFLAGS=@HWLOC_CPPFLAGS@ +PCRE_CPPFLAGS=@PCRE_CPPFLAGS@ +LZMA_CPPFLAGS=@LZMA_CPPFLAGS@ +INTEL_SOFT_CPM_CPPFLAGS=@INTEL_SOFT_CPM_CPPFLAGS@ +HYPERSCAN_CPPFLAGS=@HYPERSCAN_CPPFLAGS@ Name: Snort++ Description: Snort 3.0 Project