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.
193 lines
6.0 KiB
193 lines
6.0 KiB
## @file |
|
## |
|
## $Id$ |
|
## |
|
## $Date$ |
|
## $Author$ |
|
## |
|
## @copy © Marc Wäckerlin |
|
## @license LGPL, see file <a href="license.html">COPYING</a> |
|
## |
|
## $Log$ |
|
## Revision 1.19 2004/12/16 13:10:22 marc |
|
## release 1.3.1 |
|
## |
|
## Revision 1.18 2004/12/14 20:22:13 marc |
|
## *** empty log message *** |
|
## |
|
## Revision 1.17 2004/12/08 13:40:34 marc |
|
## error in output (trace) |
|
## |
|
## Revision 1.16 2004/12/08 13:34:14 marc |
|
## default: no tracer |
|
## |
|
## Revision 1.15 2004/11/25 18:33:18 marc |
|
## support for function tracing which does not yet work (bug in OpenC++) |
|
## |
|
## Revision 1.14 2004/10/13 11:19:54 marc |
|
## *** empty log message *** |
|
## |
|
## Revision 1.13 2004/10/11 16:50:50 marc |
|
## Version 1.2.0 |
|
## |
|
## Revision 1.12 2004/10/07 16:01:03 marc |
|
## new headers missing in installation |
|
## |
|
## Revision 1.11 2004/10/07 13:41:16 marc |
|
## devel in the same spec file |
|
## |
|
## Revision 1.10 2004/10/07 07:02:30 marc |
|
## better naming for major minor and least (one is a keyword) |
|
## PEDANTIC is now a AM variable |
|
## |
|
## Revision 1.9 2004/09/09 20:09:06 marc |
|
## library versioning now works how i want it |
|
## |
|
## Revision 1.8 2004/08/31 16:24:55 marc |
|
## no "if [];" but "if test;"! |
|
## |
|
## Revision 1.7 2004/08/31 16:01:10 marc |
|
## no -lbfd for --disable-stacktrace |
|
## |
|
## Revision 1.6 2004/08/28 16:21:07 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 |
|
## |
|
|
|
# init |
|
AC_INIT([mrw/mrw.hpp.in]) |
|
PACKAGENAME=mrw-c++ |
|
m4_define(x_major, 1) |
|
m4_define(x_minor, 3) |
|
m4_define(x_least, 1) |
|
AM_INIT_AUTOMAKE(@PACKAGENAME@, @MAJOR@.@MINOR@.@LEAST@, [marc@waeckerlin.org]) |
|
|
|
# copy M4 to shell |
|
MAJOR=x_major |
|
MINOR=x_minor |
|
LEAST=x_least |
|
AC_SUBST(MAJOR) |
|
AC_SUBST(MINOR) |
|
AC_SUBST(LEAST) |
|
|
|
# libtool versioning |
|
LIB_MAJOR=m4_eval(x_major+x_minor) |
|
LIB_MINOR=x_least |
|
LIB_LEAST=x_minor |
|
LIB_VERSION="${LIB_MAJOR}:${LIB_MINOR}:${LIB_LEAST}" |
|
AC_SUBST(LIB_VERSION) |
|
|
|
# macros |
|
README=README |
|
AC_SUBST_FILE(README) |
|
CHANGE_LOG=ChangeLog |
|
AC_SUBST_FILE(CHANGE_LOG) |
|
|
|
# languages |
|
AC_LANG(C++) |
|
|
|
# programs |
|
AC_PROG_CXX |
|
AC_PROG_CPP |
|
AC_PROG_INSTALL |
|
AC_PROG_LN_S |
|
AC_PROG_MAKE_SET |
|
AC_PROG_LIBTOOL |
|
AC_CHECK_PROG(have_doxygen, doxygen, yes, no) |
|
AC_CHECK_PROG(have_dot, dot, yes, no) |
|
|
|
# solaris? |
|
AC_CHECK_HEADER(sys/old_procfs.h, [AM_CPPFLAGS=-D__solaris__]) |
|
|
|
# libraries |
|
AC_CHECK_HEADER(log4cxx/logger.h, [have_log4cxx=yes]) |
|
|
|
# Arguments |
|
AM_MAINTAINER_MODE |
|
AC_ARG_WITH(tracer, |
|
[ --with-tracer=name add additional tracing output to this library itself], |
|
[with_tracer="$withval"], [with_tracer="no"]) |
|
AM_CONDITIONAL(TRACER, test "$with_tracer" == "yes") |
|
if test "$with_tracer" != "no"; then |
|
if test "$with_tracer" != "yes"; then |
|
TRACE=$with_tracer |
|
else |
|
TRACE="trace" |
|
fi |
|
AC_SUBST(TRACE) |
|
fi |
|
AC_ARG_ENABLE(pedantic, |
|
[ --enable-pedantic enable all warnings and checks, abort on warnings], |
|
[have_pedantic="$enableval"; test "$enableval" = "yes" && \ |
|
AM_CXXFLAGS="${AM_CXXFLAGS:-} -pedantic-errors -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-format-attribute -Wno-multichar -Wpacked -Wredundant-decls -Werror -Wshadow -Wcast-qual -Wno-ctor-dtor-privacy"]) |
|
dnl problem in libs: -Wshadow -Wcast-qual |
|
dnl auto.hpp: -Wno-ctor-dtor-privacy (removed) |
|
AM_CONDITIONAL(PEDANTIC, test "$enableval" = "yes") |
|
AC_ARG_ENABLE(dot, |
|
[ --disable-dot disable dot graphic tools for documentation], |
|
[have_dot="$enableval"]) |
|
test "$enableval" = "yes" && HAVE_DOT="YES" || HAVE_DOT="NO"; |
|
AC_ARG_ENABLE(log4cxx, |
|
[ --disable-log4cxx disable use of log4cxx library in automated |
|
stack trace], |
|
[have_log4cxx="$enableval"]) |
|
AM_CONDITIONAL(HAVE_LOG4CXX, test "$have_log4cxx" = "yes") |
|
AC_ARG_ENABLE(stacktrace, |
|
[ --disable-stacktrace disable stack trace, use this if you cannot |
|
compile the library on your system otherwise and |
|
you still want to use the other parts], |
|
[have_stacktrace="$enableval"], [have_stacktrace="yes"]) |
|
AM_CONDITIONAL(HAVE_STACKTRACE, test "$have_stacktrace" = "yes") |
|
if test "$have_stacktrace" = "yes"; then |
|
AC_SEARCH_LIBS(cplus_demangle, iberty, [AC_MSG_RESULT([OK])], |
|
[AC_MSG_ERROR([Library iberty is required!])]) |
|
AC_SEARCH_LIBS(bfd_arch_list, bfd, [AC_MSG_RESULT([OK])], |
|
[ac_cv_search_bfd_arch_list=; |
|
]AC_SEARCH_LIBS(bfd_arch_list, bfd, [AC_MSG_RESULT([OK])], |
|
[AC_MSG_ERROR([BFD library libbfd is required])], [-lintl])) |
|
fi |
|
|
|
# export macros |
|
AC_SUBST(HAVE_DOT) |
|
AC_SUBST(PACKAGENAME) |
|
AC_SUBST(AM_CXXFLAGS) |
|
AC_SUBST(AM_CPPFLAGS) |
|
|
|
# create output |
|
AC_CONFIG_FILES([makefile mrw-c++.spec |
|
mrw/makefile mrw/doxyfile mrw/mrw.hpp mrw/version.cpp]) |
|
AC_OUTPUT |
|
|
|
# infos and warnings |
|
if test "$have_doxygen" = "no"; then |
|
AC_MSG_WARN([Missing program doxygen! |
|
- you cannot rebuild the documentation with make doc |
|
- there are precompiled derieved files in the distribution]); fi |
|
if test "$have_dot" = "no"; then |
|
AC_MSG_WARN([Missing program dot! |
|
- when you rebild documentation with make doc, there are no generated images |
|
- there are precompiled derieved files in the distribution]); fi |
|
if test "$have_pedantic" == "yes"; then |
|
AC_MSG_NOTICE([Pedantic compile mode enabled! |
|
- all warnings for GNU g++ are enabled |
|
- all warnings result in an error |
|
- doxygen warnings are treated as error too]); fi |
|
if test "$with_tracer" != "no"; then |
|
AC_MSG_NOTICE([Verbose tracing is enabled! |
|
- function traces will be printed for all methods in the library |
|
- tracer is: $TRACE]); fi |
|
if test "$have_log4cxx" != "yes"; then |
|
AC_MSG_WARN([Library log4cxx will not be used! |
|
- if you want it, download it from: |
|
http://logging.apache.org/log4cxx]); fi |
|
if test "$have_stacktrace" != "yes"; then |
|
AC_MSG_WARN([mrw::StackTrace is disabled!]); fi
|
|
|