libsuricata-config: program to print build flags

Following the pattern of many other libraries, provide a -config
program to output cflags and libs to properly link an application
against the library.

usage: libsuricata-config [--cflags] [--libs] [--static]

--cflags and --libs can be used infividually or together.

--static will link against the static libraries instead of the
shared library. Note that if the shared library is not available,
the static libraries will be provided even without this option.
pull/5866/head
Jason Ish 4 years ago
parent 2c5e1d6a6d
commit dfd930a13e

2
.gitignore vendored

@ -65,3 +65,5 @@ test.sh
.vscode/* .vscode/*
/suricata-update/* /suricata-update/*
!/suricata-update/Makefile.am !/suricata-update/Makefile.am
/libsuricata-config
!/libsuricata-config.in

@ -58,3 +58,4 @@ endif
install-library: install-library:
cd src && $(MAKE) $@ cd src && $(MAKE) $@
cd rust && $(MAKE) $@ cd rust && $(MAKE) $@
$(INSTALL) libsuricata-config "$(DESTDIR)$(bindir)/libsuricata-config"

@ -2680,6 +2680,7 @@ AC_SUBST(PACKAGE_VERSION)
AC_SUBST(RUST_FEATURES) AC_SUBST(RUST_FEATURES)
AC_SUBST(RUST_SURICATA_LIBDIR) AC_SUBST(RUST_SURICATA_LIBDIR)
AC_SUBST(RUST_SURICATA_LIBNAME) 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"]) 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(suricata.yaml etc/Makefile etc/suricata.logrotate etc/suricata.service)
AC_CONFIG_FILES(python/Makefile python/suricata/config/defaults.py) AC_CONFIG_FILES(python/Makefile python/suricata/config/defaults.py)
AC_CONFIG_FILES(ebpf/Makefile) AC_CONFIG_FILES(ebpf/Makefile)
AC_CONFIG_FILES(libsuricata-config)
AC_OUTPUT AC_OUTPUT
SURICATA_BUILD_CONF="Suricata Configuration: SURICATA_BUILD_CONF="Suricata Configuration:

@ -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"
Loading…
Cancel
Save