configure.ac: Hack around Termux syslog weirdness.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 12 Jun 2018 10:21:17 +0000 (11:21 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 12 Jun 2018 10:23:58 +0000 (11:23 +0100)
Termux's <syslog.h> has weird macros to redirect to Android's logcat
machinery, but these need a separate library to be linked in.  Notice
this weirdness and cope.

configure.ac

index b1037ae..bb7eb4b 100644 (file)
@@ -68,6 +68,29 @@ AC_CHECK_FUNCS([setgroups])
 AC_CHECK_FUNCS([getnetbyname])
 AC_CHECK_FUNCS([strsignal])
 
+dnl Logging is weird under Termux.  Unfortunately, it involves macros, so we
+dnl have to do this the hard way.
+AC_CACHE_CHECK(
+  [library needed for syslog], [mdw_cv_syslog_lib],
+  [mdw_ORIG_LIBS=$LIBS LIBS=
+   for i in 0 1; do
+     AC_TRY_LINK([#include <syslog.h>],
+                [openlog("test", LOG_PID, LOG_DAEMON);
+                 syslog(LOG_ERR, "this is a test");],
+                [ok=t], [ok=nil])
+     case $i,$ok in
+       *,t) mdw_cv_syslog_lib=${LIBS:-none}; break ;;
+       0,nil) LIBS="-llog" ;;
+       1,nil) AC_MSG_ERROR("failed to link test program") ;;
+     esac
+   done
+   LIBS=$mdw_ORIG_LIBS])
+case $mdw_cv_syslog_lib in
+  none) ;;
+  *) LIBS="$LIBS $mdw_cv_syslog_lib" ;;
+esac
+AC_SUBST([LOGLIBS])
+
 dnl--------------------------------------------------------------------------
 dnl Output.