diff --git a/autogen.sh b/autogen.sh index fe26405..7d368f8 100755 --- a/autogen.sh +++ b/autogen.sh @@ -4,4 +4,5 @@ aclocal || exit 1 autoheader || exit 1 autoconf || exit 1 automake -a -c || exit 1 -./configure --enable-maintainer-mode --enable-examples-build $* +./configure --enable-maintainer-mode --enable-examples-build \ + --enable-debug-log $* diff --git a/configure.ac b/configure.ac index 9e76bd8..45b9565 100644 --- a/configure.ac +++ b/configure.ac @@ -31,7 +31,26 @@ AC_ARG_ENABLE([examples-build], [AS_HELP_STRING([--enable-examples-build], [build_examples='no']) AM_CONDITIONAL([BUILD_EXAMPLES], [test "x$build_examples" != "xno"]) +# Message logging +AC_ARG_ENABLE([log], [AS_HELP_STRING([--disable-log], [disable all logging])], + [log_enabled=$enableval], + [log_enabled='yes']) +if test "x$log_enabled" != "xno"; then + AC_DEFINE([ENABLE_LOGGING], 1, [Message logging]) +fi + +AC_ARG_ENABLE([debug-log], [AS_HELP_STRING([--enable-debug-log], + [enable debug logging (default n)])], + [debug_log_enabled=$enableval], + [debug_log_enabled='no']) +if test "x$debug_log_enabled" != "xno"; then + AC_DEFINE([ENABLE_DEBUG_LOGGING], 1, [Debug message logging]) +fi + + AC_DEFINE([API_EXPORTED], [__attribute__((visibility("default")))], [Default visibility]) +AM_CFLAGS="-Werror-implicit-function-declaration -Wimplicit-int -Wunreachable-code -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wnonnull -Wreturn-type -Wextra -Wshadow" +AC_SUBST(AM_CFLAGS) AC_CONFIG_FILES([Makefile] [libfprint/Makefile] [examples/Makefile]) AC_OUTPUT diff --git a/libfprint/Makefile.am b/libfprint/Makefile.am index 1d3fa91..9790fbe 100644 --- a/libfprint/Makefile.am +++ b/libfprint/Makefile.am @@ -4,7 +4,7 @@ UPEKTS_SRC = drivers/upekts.c DRIVER_SRC = $(UPEKTS_SRC) -libfprint_la_CFLAGS = -fvisibility=hidden $(LIBUSB_CFLAGS) $(GLIB_CFLAGS) +libfprint_la_CFLAGS = -fvisibility=hidden $(LIBUSB_CFLAGS) $(GLIB_CFLAGS) $(AM_CFLAGS) libfprint_la_LDFLAGS = -version-info @lt_major@:@lt_revision@:@lt_age@ libfprint_la_LIBADD = $(LIBUSB_LIBS) $(GLIB_LIBS) diff --git a/libfprint/core.c b/libfprint/core.c index b6d90f0..02c0e86 100644 --- a/libfprint/core.c +++ b/libfprint/core.c @@ -50,6 +50,10 @@ void fpi_log(enum fpi_log_level level, const char *component, stream = stderr; prefix = "debug"; break; + default: + stream = stderr; + prefix = "unknown"; + break; } fprintf(stream, "%s:%s [%s] ", component ? component : "fp", prefix, @@ -74,7 +78,7 @@ static const struct fp_driver * const drivers[] = { static void register_drivers(void) { - int i; + unsigned int i; for (i = 0; i < ARRAY_SIZE(drivers); i++) register_driver(drivers[i]); diff --git a/libfprint/fp_internal.h b/libfprint/fp_internal.h index 5073866..39ba08a 100644 --- a/libfprint/fp_internal.h +++ b/libfprint/fp_internal.h @@ -20,6 +20,8 @@ #ifndef __FPRINT_INTERNAL_H__ #define __FPRINT_INTERNAL_H__ +#include + #include #include @@ -53,9 +55,18 @@ void fpi_log(enum fpi_log_level, const char *component, const char *function, #define FP_COMPONENT NULL #endif +#ifdef ENABLE_LOGGING #define _fpi_log(level, fmt...) fpi_log(level, FP_COMPONENT, __FUNCTION__, fmt) +#else +#define _fpi_log(level, fmt...) +#endif +#ifdef ENABLE_DEBUG_LOGGING #define fp_dbg(fmt...) _fpi_log(LOG_LEVEL_DEBUG, fmt) +#else +#define fp_dbg(fmt...) +#endif + #define fp_info(fmt...) _fpi_log(LOG_LEVEL_INFO, fmt) #define fp_warn(fmt...) _fpi_log(LOG_LEVEL_WARNING, fmt) #define fp_err(fmt...) _fpi_log(LOG_LEVEL_ERROR, fmt)