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.
您最多选择25个主题
主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
148 行
4.7 KiB
148 行
4.7 KiB
## @file |
|
## |
|
## $Id$ |
|
## |
|
## $Date$ |
|
## $Author$ |
|
## |
|
## @copy © Marc Wäckerlin |
|
## @license LGPL, see file <a href="license.html">COPYING</a> |
|
## |
|
## $Log$ |
|
## 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, 0) |
|
m4_define(x_least, 0) |
|
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
|
|
|