From: Arvin Schnell Date: Fri, 24 Feb 2012 18:23:58 +0000 (+0100) Subject: - allow to compile without blocxx X-Git-Tag: v0.1.3~254 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=79a08d3dae572ee4fbad0d7e5235664e14469656;p=thirdparty%2Fsnapper.git - allow to compile without blocxx --- diff --git a/configure.in b/configure.in index 08521838..44c4d772 100644 --- a/configure.in +++ b/configure.in @@ -25,6 +25,12 @@ AM_PATH_PYTHON AC_PREFIX_DEFAULT(/usr) +dnl Check for blocxx +AC_CHECK_LIB(blocxx, main, + AC_SUBST([LIBBLOCXX], ["-lblocxx"]) + AC_DEFINE([HAVE_LIBBLOCXX], [1], + [Define if you have libblocxx])) + dnl Automake 1.11 enables silent compilation dnl Disable it by "configure --disable-silent-rules" or "make V=1" m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) diff --git a/package/snapper.changes b/package/snapper.changes index 96460b74..7d18d705 100644 --- a/package/snapper.changes +++ b/package/snapper.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Feb 24 19:21:15 CET 2012 - aschnell@suse.de + +- allow to compile without blocxx + ------------------------------------------------------------------- Fri Dec 23 15:33:12 CET 2011 - aschnell@suse.de diff --git a/snapper/Log.cc b/snapper/Log.cc index ee514819..fdb4bc72 100644 --- a/snapper/Log.cc +++ b/snapper/Log.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) [2004-2011] Novell, Inc. + * Copyright (c) [2004-2012] Novell, Inc. * * All Rights Reserved. * @@ -24,25 +24,40 @@ #include #include +#include "config.h" + +#ifdef HAVE_LIBBLOCXX #include #include #include #include +#endif #include "snapper/Log.h" +#include "snapper/AppUtil.h" namespace snapper { using namespace std; - using namespace blocxx; +#ifdef HAVE_LIBBLOCXX + + using namespace blocxx; static const String component = "libsnapper"; +#else + + string filename; + +#endif + void createLogger(const string& name, const string& logpath, const string& logfile) { +#ifdef HAVE_LIBBLOCXX + if (logpath != "NULL" && logfile != "NULL") { String nm = name.c_str(); @@ -84,12 +99,20 @@ namespace snapper LogAppender::setDefaultLogAppender(logApp); } + +#else + + filename = logpath + "/" + logfile; + +#endif } bool testLogLevel(LogLevel level) { +#ifdef HAVE_LIBBLOCXX + ELogLevel curLevel = LogAppender::getCurrentLogAppender()->getLogLevel(); switch (level) @@ -105,6 +128,12 @@ namespace snapper default: return curLevel >= E_FATAL_ERROR_LEVEL; } + +#else + + return level != DEBUG; + +#endif } @@ -130,6 +159,8 @@ namespace snapper logStreamClose(LogLevel level, const char* file, unsigned line, const char* func, ostringstream* stream) { +#ifdef HAVE_LIBBLOCXX + ELogLevel curLevel = LogAppender::getCurrentLogAppender()->getLogLevel(); String category; @@ -179,6 +210,36 @@ namespace snapper } } +#else + + static const char* ln[4] = { "DEB", "MIL", "WAR", "ERR" }; + + string prefix = sformat("%s %s libsnapper(%d) %s(%s):%d", datetime(time(0), false, true).c_str(), + ln[level], getpid(), file, func, line); + + FILE* f = fopen(filename.c_str(), "a"); + + string tmp = stream->str(); + + string::size_type pos1 = 0; + + while (true) + { + string::size_type pos2 = tmp.find('\n', pos1); + + if (pos2 != string::npos || pos1 != tmp.length()) + fprintf(f, "%s - %s\n", prefix.c_str(), tmp.substr(pos1, pos2 - pos1).c_str()); + + if (pos2 == string::npos) + break; + + pos1 = pos2 + 1; + } + + fclose(f); + +#endif + delete stream; } diff --git a/snapper/Makefile.am b/snapper/Makefile.am index cf6cf39a..a8949667 100644 --- a/snapper/Makefile.am +++ b/snapper/Makefile.am @@ -27,7 +27,7 @@ libsnapper_la_SOURCES = \ SnapperDefines.h libsnapper_la_LDFLAGS = -version-info @LIBVERSION_INFO@ -libsnapper_la_LIBADD = -lblocxx -lxml2 +libsnapper_la_LIBADD = @LIBBLOCXX@ -lxml2 pkgincludedir = $(includedir)/snapper diff --git a/snapper/Snapper.cc b/snapper/Snapper.cc index a009324e..6bf086f8 100644 --- a/snapper/Snapper.cc +++ b/snapper/Snapper.cc @@ -28,6 +28,7 @@ #include #include "config.h" + #include "snapper/Snapper.h" #include "snapper/Comparison.h" #include "snapper/AppUtil.h"