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.
157 lines
4.9 KiB
157 lines
4.9 KiB
## @file |
|
## |
|
## $Id$ |
|
## |
|
## $Date$ |
|
## $Author$ |
|
## |
|
## @copy © Marc Wäckerlin |
|
## @license LGPL, see file <a href="license.html">COPYING</a> |
|
## |
|
## $Log$ |
|
## 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, 2) |
|
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_ENABLE(pedantic, |
|
[ --enable-pedantic enable all warnings and checks, abort on warnings], |
|
[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_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
|
|
|