Skip to content

Commit

Permalink
libsuricata-config: program to print build flags
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
jasonish committed Feb 16, 2021
1 parent 2c5e1d6 commit dfd930a
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,5 @@ test.sh
.vscode/*
/suricata-update/*
!/suricata-update/Makefile.am
/libsuricata-config
!/libsuricata-config.in
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,4 @@ endif
install-library:
cd src && $(MAKE) $@
cd rust && $(MAKE) $@
$(INSTALL) libsuricata-config "$(DESTDIR)$(bindir)/libsuricata-config"
2 changes: 2 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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"])

Expand All @@ -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:
Expand Down
66 changes: 66 additions & 0 deletions libsuricata-config.in
Original file line number Diff line number Diff line change
@@ -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"

0 comments on commit dfd930a

Please sign in to comment.