summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-12-18 15:37:17 +0100
committerHarald Welte <laforge@gnumonks.org>2015-12-18 15:38:42 +0100
commita37b06d7354c5cfec0e88dc22a8a5d784551f1b3 (patch)
tree02fdd685e1a9769902eabba107f571cdbca8fbe2
parent41b85d5597119fa8105dc0641ffe5cd1bbae39b2 (diff)
add '--enable-debug' configure option to build with EMIT_ASN_DEBUG
... which in turn causes all the ASN_DEBUG() to be turned into fprintf(stderr, ...) statements, once the user application decides to set 'asn_debug = 1' somewhere in its code. The next step would be to make _ASN_DECODE_FAILED / _ASN_ENCODE_FAILED no longer depend on ASN_DEBUG (which it currently does)
-rw-r--r--configure.ac4
-rw-r--r--include/asn1c/asn_system.h2
-rw-r--r--src/Makefile.am3
-rw-r--r--src/asn_codecs_prim.c4
4 files changed, 13 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index b8b5743..aaa2b5a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,6 +28,10 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([char foo;])],
CFLAGS="$saved_CFLAGS"
AC_SUBST(SYMBOL_VISIBILITY)
+AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [Buld the library with EMIT_ASN_DEBUG enabled])],
+ [build_debug="$enableval"], [build_debug="no"])
+AM_CONDITIONAL(BUILD_DEBUG, test "x$build_debug" = "xyes")
+
AC_OUTPUT(
libasn1c.pc
src/Makefile
diff --git a/include/asn1c/asn_system.h b/include/asn1c/asn_system.h
index e420ad2..fe8a377 100644
--- a/include/asn1c/asn_system.h
+++ b/include/asn1c/asn_system.h
@@ -21,6 +21,8 @@
#include <stdarg.h> /* For va_start */
#include <stddef.h> /* for offsetof and ptrdiff_t */
+extern int asn_debug;
+
#ifdef _WIN32
#include <malloc.h>
diff --git a/src/Makefile.am b/src/Makefile.am
index 633cc04..8004b37 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -5,6 +5,9 @@ LIBVERSION=1:0:0
AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include/asn1c
AM_CFLAGS = -fPIC -Wall $(LIBOSMOCORE_CFLAGS)
+if BUILD_DEBUG
+AM_CFLAGS += -DEMIT_ASN_DEBUG=1
+endif
lib_LTLIBRARIES = libasn1c.la
diff --git a/src/asn_codecs_prim.c b/src/asn_codecs_prim.c
index 8e604a4..53d20c0 100644
--- a/src/asn_codecs_prim.c
+++ b/src/asn_codecs_prim.c
@@ -6,6 +6,10 @@
#include <asn_codecs_prim.h>
#include <errno.h>
+#if EMIT_ASN_DEBUG == 1
+int asn_debug = 0;
+#endif
+
/*
* Decode an always-primitive type.
*/