diff --git a/.gitignore b/.gitignore index ca98ed119e..56203f4e0a 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,5 @@ test.sh .vscode/* /suricata-update/* !/suricata-update/Makefile.am +/libsuricata-config +!/libsuricata-config.in diff --git a/Makefile.am b/Makefile.am index 5bcf9280a8..4cb7488750 100644 --- a/Makefile.am +++ b/Makefile.am @@ -58,3 +58,4 @@ endif install-library: cd src && $(MAKE) $@ cd rust && $(MAKE) $@ + $(INSTALL) libsuricata-config "$(DESTDIR)$(bindir)/libsuricata-config" diff --git a/configure.ac b/configure.ac index 8aaf4a66d0..af47d47b4b 100644 --- a/configure.ac +++ b/configure.ac @@ -2680,6 +2680,7 @@ AC_SUBST(PACKAGE_VERSION) AC_SUBST(RUST_FEATURES) AC_SUBST(RUST_SURICATA_LIBDIR) AC_SUBST(RUST_SURICATA_LIBNAME) +AC_SUBST(enable_non_bundled_htp) AM_CONDITIONAL([BUILD_SHARED_LIBRARY], [test "x$enable_shared" = "xyes"] && [test "x$can_build_shared_library" = "xyes"]) @@ -2690,6 +2691,7 @@ AC_CONFIG_FILES(contrib/Makefile contrib/file_processor/Makefile contrib/file_pr AC_CONFIG_FILES(suricata.yaml etc/Makefile etc/suricata.logrotate etc/suricata.service) AC_CONFIG_FILES(python/Makefile python/suricata/config/defaults.py) AC_CONFIG_FILES(ebpf/Makefile) +AC_CONFIG_FILES(libsuricata-config) AC_OUTPUT SURICATA_BUILD_CONF="Suricata Configuration: diff --git a/libsuricata-config.in b/libsuricata-config.in new file mode 100644 index 0000000000..1fabe07652 --- /dev/null +++ b/libsuricata-config.in @@ -0,0 +1,66 @@ +#! /bin/sh + +prefix="@prefix@" +exec_prefix="@exec_prefix@" +includedir="@includedir@" +libdir="@libdir@" +LIBS="@LIBS@ @RUST_LDADD@" + +shared_lib="-lsuricata" +static_lib="-lsuricata_c -lsuricata_rust" + +enable_non_bundled_htp="@enable_non_bundled_htp@" + +lib="$shared_lib" + +show_libs="no" +show_cflags="no" +use_static="no" + +if [ "$#" = 0 ]; then + echo "usage: suricata-config [--cflags] [--libs] [--static]" + exit 0 +fi + +while [ "$#" != 0 ] +do + case "$1" in + --libs) + show_libs="yes" + ;; + --cflags) + show_cflags="yes" + ;; + --static) + lib="$static_lib" + use_status="yes" + ;; + esac + shift +done + +# If --static wasn't provided, use the static library if the shared +# library is not available. +if [ "$use_static" = "no" ]; then + if ! test -e "$libdir/libsuricata.so"; then + lib="$static_lib" + fi +fi + +# If we're using a bundled htp, add it to the libs as well. It will +# already be present if we're use a non-bundled libhtp. +if [ "$enable_non_bundled_htp" = "no" ]; then + lib="${lib} -lhtp" +fi + +output="" + +if [ "$show_cflags" = "yes" ]; then + output="${output} -DHAVE_CONFIG_H -I$includedir/suricata" +fi + +if [ "$show_libs" = "yes" ]; then + output="${output} -L$libdir $lib $LIBS" +fi + +echo "$output"