C++ Library containing a lot of needful things: Stack Trace, Command Line Parser, Resource Handling, Configuration Files, Unix Command Execution, Directories, Regular Expressions, Tokenizer, Function Trace, Standard Extensions.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
415 lines
15 KiB
415 lines
15 KiB
## @file |
|
## |
|
## $Id$ |
|
## |
|
## $Date$ |
|
## $Author$ |
|
## |
|
## @copy © Marc Wäckerlin |
|
## @license LGPL, see file <a href="license.html">COPYING</a> |
|
## |
|
## $Log$ |
|
## Revision 1.26 2005/04/07 20:58:57 marc |
|
## Oops, there's a make distcheck...? Now it works. |
|
## documentation is now generated in root dir, no more in mrw subdir |
|
## HTML documentation now with stylesheet, footer and header |
|
## RPM/libtool: .la files with wrong path! |
|
## New feature: library libmrwlog4cxxconfiguration configures log4cxx |
|
## |
|
## Revision 1.25 2005/03/11 23:20:54 marc |
|
## - removed old TRACER |
|
## - new autofunctiontrace library, new function trace |
|
## - new multithreaded targets |
|
## - corrected build flags for not optimized tests |
|
## |
|
## Revision 1.24 2005/02/28 08:10:24 marc |
|
## dynamic library is conditional |
|
## |
|
## Revision 1.23 2005/02/28 07:14:58 marc |
|
## new functiontrace, removed simpletrace |
|
## |
|
## Revision 1.22 2005/02/18 15:51:08 marc |
|
## new dynamiclibrary.hpp |
|
## tests are now compiled with option -O0 |
|
## |
|
## Revision 1.21 2005/02/08 12:34:14 marc |
|
## added errno / unix_error |
|
## |
|
## Revision 1.20 2005/01/28 11:22:32 marc |
|
## cppunit flags |
|
## |
|
## Revision 1.19 2005/01/07 01:07:39 marc |
|
## added configuration files for test |
|
## |
|
## Revision 1.18 2005/01/07 00:57:55 marc |
|
## the test script was not distributed |
|
## |
|
## Revision 1.17 2005/01/07 00:33:51 marc |
|
## added config file and file |
|
## |
|
## Revision 1.16 2004/12/17 16:30:06 marc |
|
## added tokenizer |
|
## |
|
## Revision 1.15 2004/12/14 20:20:06 marc |
|
## added regexp |
|
## |
|
## Revision 1.14 2004/12/08 13:48:20 marc |
|
## forget TRACE |
|
## |
|
## Revision 1.13 2004/11/25 18:33:18 marc |
|
## support for function tracing which does not yet work (bug in OpenC++) |
|
## |
|
## Revision 1.12 2004/10/13 11:17:21 marc |
|
## new file stdext.cpp |
|
## |
|
## Revision 1.11 2004/10/11 18:33:02 marc |
|
## add stdext.hpp |
|
## |
|
## Revision 1.10 2004/10/07 16:16:34 marc |
|
## forgotten to save before last checkin... |
|
## |
|
## Revision 1.9 2004/10/07 09:29:17 marc |
|
## new classes |
|
## new versioning |
|
## link tests with unexpected handler |
|
## check doxygen.error |
|
## |
|
## Revision 1.8 2004/09/09 20:09:06 marc |
|
## library versioning now works how i want it |
|
## |
|
## Revision 1.7 2004/08/31 16:23:57 marc |
|
## added .PHONY |
|
## |
|
## Revision 1.6 2004/08/28 16:21:25 marc |
|
## mrw-c++-0.92 (mrw) |
|
## - new file: version.cpp |
|
## - new file header for all sources |
|
## - work around warning in mrw::auto<T> |
|
## - possibility to compile without log4cxx |
|
## - work around bugs in demangle.h and libiberty.h |
|
## - corrections in documentation |
|
## - added simple tracing mechanism |
|
## - more warnings |
|
## - small corrections in Auto<>::Free and a new test for it |
|
## - possibility to compile without stack trace |
|
## |
|
|
|
AM_CPPFLAGS += -I.. |
|
|
|
if HAVE_STACKTRACE |
|
AM_CPPFLAGS += -DHAVE_STACKTRACE |
|
endif |
|
|
|
CLEANFILES = doxygen.errors functiontrace_test.log \ |
|
mrwautofunctiontracelog4cxx_test.log \ |
|
mrwautofunctiontracelog4cxx_test-mt.log |
|
examplesdir = ${pkgdatadir}/mrw/examples |
|
dist_examples_DATA = ${top_srcdir}/mrw/examples/* |
|
htmldir = ${pkgdatadir}/doc/html |
|
dist_html_DATA = ${top_builddir}/doc/html/index.html |
|
pdfdir = ${pkgdatadir}/doc/pdf |
|
dist_pdf_DATA = ${top_builddir}/doc/latex/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.pdf |
|
|
|
lib_LTLIBRARIES = libmrw.la |
|
if HAVE_BOOST_THREAD |
|
lib_LTLIBRARIES += libmrw-mt.la |
|
endif |
|
if HAVE_STACKTRACE |
|
lib_LTLIBRARIES += libmrwexcstderr.la |
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
lib_LTLIBRARIES += libmrwexcstderr-mt.la |
|
endif |
|
endif |
|
if HAVE_LOG4CXX |
|
lib_LTLIBRARIES += libmrwexclog4cxx.la \ |
|
libmrwlog4cxxconfiguration.la |
|
if HAVE_THREADS |
|
lib_LTLIBRARIES += libmrwlog4cxxconfiguration-mt.la |
|
if HAVE_BOOST_THREAD |
|
lib_LTLIBRARIES += libmrwexclog4cxx-mt.la |
|
endif |
|
endif |
|
if AUTOFNTRACE |
|
lib_LTLIBRARIES += libmrwautofunctiontracelog4cxx.la |
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
lib_LTLIBRARIES += libmrwautofunctiontracelog4cxx-mt.la |
|
endif |
|
endif |
|
endif |
|
endif |
|
endif |
|
|
|
libmrw_la_SOURCES = \ |
|
mrw.hpp version.cpp \ |
|
arg.cpp arg.hpp auto.hpp deque.hpp \ |
|
exception.cpp exception.hpp \ |
|
exec.cpp exec.hpp list.hpp \ |
|
map.hpp multimap.hpp multiset.hpp \ |
|
set.hpp \ |
|
smartpointer.hpp stdext.cpp stdext.hpp \ |
|
string.hpp unistd.hpp vector.hpp regexp.hpp regexp.cpp \ |
|
tokenizer.hpp configfile.hpp configfile.cpp file.hpp \ |
|
errno.hpp errno.cpp |
|
if HAVE_LTDL |
|
libmrw_la_SOURCES += dynamiclibrary.hpp |
|
endif |
|
if HAVE_LOG4CXX |
|
libmrw_la_SOURCES += functiontrace.cpp functiontrace.hpp |
|
endif |
|
if HAVE_STACKTRACE |
|
libmrw_la_SOURCES += \ |
|
stacktrace.hpp stacktrace.cpp |
|
endif |
|
libmrw_la_LDFLAGS = -version-info @LIB_VERSION@ |
|
libmrw_la_LIBADD = |
|
if HAVE_STACKTRACE |
|
libmrw_la_LIBADD += -lltdl |
|
endif |
|
|
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
libmrw_mt_la_SOURCES = ${libmrw_la_SOURCES} |
|
libmrw_mt_la_CXXFLAGS = @THREADS@ |
|
libmrw_mt_la_LDFLAGS = ${libmrw_la_LDFLAGS} @THREADS@ |
|
libmrw_mt_la_LIBADD = ${libmrw_la_LIBADD} @BOOST_THREAD_LIB@ |
|
endif |
|
endif |
|
|
|
if HAVE_STACKTRACE |
|
libmrwexcstderr_la_SOURCES = autostacktracestderr.cpp version.cpp |
|
libmrwexcstderr_la_LDFLAGS = -version-info @LIB_VERSION@ |
|
libmrwexcstderr_la_LIBADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
libmrwexcstderr_mt_la_SOURCES = autostacktracestderr.cpp version.cpp |
|
libmrwexcstderr_mt_la_CXXFLAGS = @THREADS@ |
|
libmrwexcstderr_mt_la_LDFLAGS = -version-info @LIB_VERSION@ @THREADS@ |
|
libmrwexcstderr_mt_la_LIBADD = ${top_builddir}/mrw/libmrw-mt.la |
|
endif |
|
endif |
|
|
|
if HAVE_LOG4CXX |
|
libmrwexclog4cxx_la_SOURCES = autostacktracelog4cxx.cpp version.cpp |
|
libmrwexclog4cxx_la_LDFLAGS = -version-info @LIB_VERSION@ |
|
libmrwexclog4cxx_la_LIBADD = ${top_builddir}/mrw/libmrw.la -llog4cxx |
|
libmrwlog4cxxconfiguration_la_SOURCES = log4cxxconfiguration.cpp version.cpp |
|
libmrwlog4cxxconfiguration_la_LDFLAGS = -version-info @LIB_VERSION@ |
|
libmrwlog4cxxconfiguration_la_LIBADD = -llog4cxx |
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
libmrwexclog4cxx_mt_la_SOURCES = autostacktracelog4cxx.cpp version.cpp |
|
libmrwexclog4cxx_mt_la_CXXFLAGS = @THREADS@ |
|
libmrwexclog4cxx_mt_la_LDFLAGS = -version-info @LIB_VERSION@ @THREADS@ |
|
libmrwexclog4cxx_mt_la_LIBADD = ${top_builddir}/mrw/libmrw-mt.la -llog4cxx |
|
libmrwlog4cxxconfiguration_mt_la_SOURCES = log4cxxconfiguration.cpp \ |
|
version.cpp |
|
libmrwlog4cxxconfiguration_mt_la_CXXFLAGS = @THREADS@ |
|
libmrwlog4cxxconfiguration_mt_la_LDFLAGS = -version-info @LIB_VERSION@ \ |
|
@THREADS@ |
|
libmrwlog4cxxconfiguration_mt_la_LIBADD = -llog4cxx |
|
endif |
|
endif |
|
|
|
if AUTOFNTRACE |
|
libmrwautofunctiontracelog4cxx_la_SOURCES = autofunctiontracelog4cxx.cpp \ |
|
version.cpp |
|
libmrwautofunctiontracelog4cxx_la_CXXFLAGS = -w |
|
libmrwautofunctiontracelog4cxx_la_LDFLAGS = -version-info @LIB_VERSION@ |
|
libmrwautofunctiontracelog4cxx_la_LIBADD = ${top_builddir}/mrw/libmrw.la -llog4cxx |
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
libmrwautofunctiontracelog4cxx_mt_la_SOURCES = \ |
|
autofunctiontracelog4cxx.cpp version.cpp |
|
libmrwautofunctiontracelog4cxx_mt_la_CXXFLAGS = @THREADS@ -w |
|
libmrwautofunctiontracelog4cxx_mt_la_LDFLAGS = \ |
|
-version-info @LIB_VERSION@ @THREADS@ |
|
libmrwautofunctiontracelog4cxx_mt_la_LIBADD = \ |
|
${top_builddir}/mrw/libmrw-mt.la -llog4cxx |
|
endif |
|
endif |
|
endif |
|
endif |
|
endif |
|
|
|
check_PROGRAMS = auto_test smartpointer_test exec_test stdext_test regexp_test \ |
|
tokenizer_test configfile_test |
|
if HAVE_LTDL |
|
check_PROGRAMS += dynamiclibrary_test |
|
endif |
|
if HAVE_LOG4CXX |
|
check_PROGRAMS += functiontrace_test |
|
endif |
|
dist_check_SCRIPTS = configfile_check.sh |
|
if HAVE_STACKTRACE |
|
check_PROGRAMS += stacktrace_test mrwexcstderr_test |
|
if HAVE_LOG4CXX |
|
check_PROGRAMS += mrwexclog4cxx_test |
|
if AUTOFNTRACE |
|
check_PROGRAMS += mrwautofunctiontracelog4cxx_test |
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
check_PROGRAMS += mrwautofunctiontracelog4cxx_test-mt |
|
endif |
|
endif |
|
endif |
|
endif |
|
endif |
|
auto_test_SOURCES = auto_test.cpp version.cpp |
|
auto_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
auto_test_CXXFLAGS = -g3 -O0 |
|
auto_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
auto_test_LDADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_STACKTRACE |
|
auto_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
smartpointer_test_SOURCES = smartpointer_test.cpp version.cpp |
|
smartpointer_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
smartpointer_test_CXXFLAGS = -g3 -O0 |
|
smartpointer_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
smartpointer_test_LDADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_STACKTRACE |
|
smartpointer_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
exec_test_SOURCES = exec_test.cpp version.cpp |
|
exec_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
exec_test_CXXFLAGS = -g3 -O0 |
|
exec_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
exec_test_LDADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_STACKTRACE |
|
exec_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
stdext_test_SOURCES = stdext_test.cpp version.cpp |
|
stdext_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
stdext_test_CXXFLAGS = -g3 -O0 |
|
stdext_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
stdext_test_LDADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_STACKTRACE |
|
stdext_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
regexp_test_SOURCES = regexp_test.cpp version.cpp |
|
regexp_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
regexp_test_CXXFLAGS = -g3 -O0 |
|
regexp_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
regexp_test_LDADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_STACKTRACE |
|
regexp_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
tokenizer_test_SOURCES = tokenizer_test.cpp version.cpp |
|
tokenizer_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
tokenizer_test_CXXFLAGS = -g3 -O0 |
|
tokenizer_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
tokenizer_test_LDADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_STACKTRACE |
|
tokenizer_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
configfile_test_SOURCES = configfile_test.cpp version.cpp |
|
configfile_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
configfile_test_CXXFLAGS = -g3 -O0 |
|
configfile_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
configfile_test_LDADD = ${top_builddir}/mrw/libmrw.la |
|
if HAVE_STACKTRACE |
|
configfile_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
if HAVE_LTDL |
|
check_LTLIBRARIES = libdynamiclibrary_testlib.la |
|
libdynamiclibrary_testlib_la_SOURCES = dynamiclibrary_testlib.cpp |
|
libdynamiclibrary_testlib_la_LDFLAGS = -module -rpath /bullshit |
|
dynamiclibrary_test_SOURCES = dynamiclibrary_test.cpp version.cpp |
|
dynamiclibrary_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
dynamiclibrary_test_CXXFLAGS = -g3 -O0 |
|
dynamiclibrary_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
dynamiclibrary_test_LDADD = ${top_builddir}/mrw/libmrw.la -lltdl |
|
endif |
|
if HAVE_LOG4CXX |
|
functiontrace_test_SOURCES = functiontrace_test.cpp version.cpp |
|
functiontrace_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
functiontrace_test_CXXFLAGS = -g3 -O0 |
|
functiontrace_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
functiontrace_test_LDADD = ${top_builddir}/mrw/libmrw.la -llog4cxx |
|
if HAVE_STACKTRACE |
|
functiontrace_test_LDADD += ${top_builddir}/mrw/libmrwexcstderr.la |
|
endif |
|
endif |
|
if HAVE_STACKTRACE |
|
stacktrace_test_SOURCES = stacktrace_test.cpp version.cpp |
|
stacktrace_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
stacktrace_test_CXXFLAGS = -g3 -O0 |
|
stacktrace_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
stacktrace_test_LDADD = ${top_builddir}/mrw/libmrw.la ${top_builddir}/mrw/libmrwexcstderr.la |
|
mrwexcstderr_test_SOURCES = mrwexcstderr_test.cpp version.cpp |
|
mrwexcstderr_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
mrwexcstderr_test_CXXFLAGS = -g3 -O0 |
|
mrwexcstderr_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
mrwexcstderr_test_LDADD = ${top_builddir}/mrw/libmrwexcstderr.la |
|
if HAVE_LOG4CXX |
|
mrwexclog4cxx_test_SOURCES = mrwexclog4cxx_test.cpp version.cpp |
|
mrwexclog4cxx_test_CPPFLAGS = -I.. @CPPUNIT_CFLAGS@ -g3 -O0 |
|
mrwexclog4cxx_test_CXXFLAGS = -g3 -O0 |
|
mrwexclog4cxx_test_LDFLAGS = @CPPUNIT_LIBS@ |
|
mrwexclog4cxx_test_LDADD = ${top_builddir}/mrw/libmrwexclog4cxx.la -llog4cxx |
|
if AUTOFNTRACE |
|
mrwautofunctiontracelog4cxx_test_SOURCES = \ |
|
mrwautofunctiontracelog4cxx_test.cpp version.cpp |
|
mrwautofunctiontracelog4cxx_test_CPPFLAGS = \ |
|
-I.. @CPPUNIT_CFLAGS@ -finstrument-functions -g3 -O0 |
|
mrwautofunctiontracelog4cxx_test_CXXFLAGS = -g3 -O0 -finstrument-functions |
|
mrwautofunctiontracelog4cxx_test_LDFLAGS = \ |
|
@CPPUNIT_LIBS@ -finstrument-functions |
|
mrwautofunctiontracelog4cxx_test_LDADD = \ |
|
-llog4cxx ${top_builddir}/mrw/libmrwautofunctiontracelog4cxx.la |
|
if HAVE_THREADS |
|
if HAVE_BOOST_THREAD |
|
mrwautofunctiontracelog4cxx_test_mt_SOURCES = \ |
|
mrwautofunctiontracelog4cxx_test.cpp version.cpp |
|
mrwautofunctiontracelog4cxx_test_mt_CPPFLAGS = \ |
|
-I.. @CPPUNIT_CFLAGS@ -finstrument-functions -g3 -O0 |
|
mrwautofunctiontracelog4cxx_test_mt_CXXFLAGS = -g3 -O0 \ |
|
-finstrument-functions @THREADS@ |
|
mrwautofunctiontracelog4cxx_test_mt_LDFLAGS = \ |
|
@CPPUNIT_LIBS@ @THREADS@ -finstrument-functions |
|
mrwautofunctiontracelog4cxx_test_mt_LDADD = \ |
|
-llog4cxx ${top_builddir}/mrw/libmrwautofunctiontracelog4cxx-mt.la @BOOST_THREAD_LIB@ |
|
endif |
|
endif |
|
endif |
|
endif |
|
endif |
|
|
|
dist_check_DATA = test.dat configfile.ini configfile.ini.result |
|
EXTRA_DIST = head.html foot.html style.css |
|
TESTS = ${check_PROGRAMS} ${dist_check_SCRIPTS} |
|
|
|
.PHONY: doc clean-local distclean-local |
|
|
|
deps = ${top_srcdir}/COPYING ${top_srcdir}/README ${top_srcdir}/INSTALL ${top_srcdir}/NEWS ${top_srcdir}/ChangeLog |
|
doc: ${top_builddir}/doc/html/index.html ${top_builddir}/doc/latex/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.pdf |
|
${top_builddir}/doc/html/index.html: doxyfile *.[ch]pp ${deps} style.css head.html foot.html |
|
test -d ${top_builddir}/doc/latex || mkdir -p ${top_builddir}/doc/latex |
|
test -d ${top_builddir}/doc/html || mkdir -p ${top_builddir}/doc/html |
|
@test -f ${top_builddir}/doc/html/hintergrund.png || \ |
|
cp ~/www/marc/linux/hintergrund.png \ |
|
${top_builddir}/doc/html || \ |
|
echo "**** sorry, you are missing the html background image" && \ |
|
echo " (after distclean doc/html/hintergrund.png is deleted)" |
|
doxygen doxyfile |
|
if PEDANTIC |
|
test \! -s doxygen.errors |
|
endif |
|
${top_builddir}/doc/latex/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.pdf: doxyfile *.[ch]pp ${deps} |
|
cd ${top_builddir}/doc/latex && make && \ |
|
mv refman.pdf @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.pdf |
|
clean-local: |
|
- rm doxygen.err libmrw.doxytag |
|
distclean-local: |
|
- rm -r ${top_builddir}/doc/html/* ${top_builddir}/doc/latex/* |
|
- rm makefile makefile.in doxygen.err libmrw.doxytag |
|
|
|
install-data-hook: |
|
chmod -R u+w ${pkgdatadir}/doc |
|
cp -rf ${top_builddir}/doc/html ${pkgdatadir}/doc/ |
|
|
|
uninstall-hook: |
|
chmod -R u+w ${pkgdatadir}/doc |
|
rm -rf ${pkgdatadir}/doc/html
|
|
|