minor changes - don't know wha it does not compile for precise, lucid, squeeze
This commit is contained in:
		@@ -1,3 +1,9 @@
 | 
				
			|||||||
 | 
					2015-05-25 08:03  marc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* ChangeLog, doc/makefile.am, src/mrw/auto.hxx, test/auto_test.cxx,
 | 
				
			||||||
 | 
						  test/exec_test.cxx, test/stdext_test.cxx: fixed some non-explicit
 | 
				
			||||||
 | 
						  conversions, so that make distcheck runs on mac yosemite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2015-05-05 18:43  marc
 | 
					2015-05-05 18:43  marc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* configure.ac: need to do a minor update due to least modulo 256
 | 
						* configure.ac: need to do a minor update due to least modulo 256
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										206
									
								
								ax_check_qt.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										206
									
								
								ax_check_qt.m4
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,206 @@
 | 
				
			|||||||
 | 
					# SYNOPSIS
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Check if a module exists:
 | 
				
			||||||
 | 
					#     AX_CXX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules])
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Abort if a module does not exist:
 | 
				
			||||||
 | 
					#     AX_CXX_REQUIRE_QT([qt_prefix], [list-of-qt-modules], [optional-modules])
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# DESCRIPTIONS
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    qt_prefix
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      Each call to AX_CXX_CHECK_QT should have a different prefix
 | 
				
			||||||
 | 
					#      value (with a few exceptions discussed later on). This value,
 | 
				
			||||||
 | 
					#      usually provided in uppercase, is used as prefix to the
 | 
				
			||||||
 | 
					#      variables holding the compiler flags and libraries reported by
 | 
				
			||||||
 | 
					#      pkg-config.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      For instance, if your prefix was to be FOO you'll be provided
 | 
				
			||||||
 | 
					#      two variables FOO_CFLAGS and FOO_LIBS.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      This will also be used as message during the configure checks:
 | 
				
			||||||
 | 
					#      checking for FOO....
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    list-of-modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      A single call to the macro can check for the presence of one or
 | 
				
			||||||
 | 
					#      more qt modules; you'll see later how to make good use of this
 | 
				
			||||||
 | 
					#      feature. Each entry in the list can have a version comparison
 | 
				
			||||||
 | 
					#      specifier, with the same syntax as the Requires keyword in the
 | 
				
			||||||
 | 
					#      data files themselves.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    optional-modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      Optional list of more, optional modules, e.g. modules that
 | 
				
			||||||
 | 
					#      exist only in Qt5, but not in Qt4, such as QtWidgets or
 | 
				
			||||||
 | 
					#      QtWebKitWidgets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_DEFUN([AX_CXX_QT_TOOL], [
 | 
				
			||||||
 | 
					  if test -z "$HAVE_$1"; then
 | 
				
			||||||
 | 
					    HAVE_$1=1
 | 
				
			||||||
 | 
					    AC_MSG_CHECKING([for $2])
 | 
				
			||||||
 | 
					    AC_ARG_VAR([$1], [path to Qt tool $2])
 | 
				
			||||||
 | 
					    $1=${$1:-$(pkg-config --variable=$2_location Qt5Core)}
 | 
				
			||||||
 | 
					    $1=${$1:-$(pkg-config --variable=host_bins Qt5Core)/$2}
 | 
				
			||||||
 | 
					    $1=${$1:-$(pkg-config --variable=$2_location QtCore)}
 | 
				
			||||||
 | 
					    $1=${$1:-$(pkg-config --variable=host_bins QtCore)/$2}
 | 
				
			||||||
 | 
					    if ! which "${$1%% *}" > /dev/null; then
 | 
				
			||||||
 | 
					      if which "$2" > /dev/null; then
 | 
				
			||||||
 | 
					        $1=$2
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        HAVE_$1=0
 | 
				
			||||||
 | 
					        $1=""
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    AC_SUBST($1)
 | 
				
			||||||
 | 
					    AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1)
 | 
				
			||||||
 | 
					    if test $HAVE_$1 -eq 1; then
 | 
				
			||||||
 | 
					      AC_MSG_RESULT([$$1])
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      AC_MSG_RESULT([not found])
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_DEFUN([AX_CXX_QT_TOOLS], [
 | 
				
			||||||
 | 
					  AX_CXX_QT_TOOL(QMAKE, qmake)
 | 
				
			||||||
 | 
					  AX_CXX_QT_TOOL(MOC, moc)
 | 
				
			||||||
 | 
					  AX_CXX_QT_TOOL(UIC, uic)
 | 
				
			||||||
 | 
					  AX_CXX_QT_TOOL(RCC, rcc)
 | 
				
			||||||
 | 
					  AX_CXX_QT_TOOL(LUPDATE, lupdate)
 | 
				
			||||||
 | 
					  AX_CXX_QT_TOOL(LRELEASE, lrelease)
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_DEFUN([AX_CHECK_VALID_FLAG], [
 | 
				
			||||||
 | 
					  AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])])
 | 
				
			||||||
 | 
					  save_cxxflags="$CXXFLAGS"
 | 
				
			||||||
 | 
					  newflag="no"
 | 
				
			||||||
 | 
					  for test_flag in $1; do
 | 
				
			||||||
 | 
					    CXXFLAGS+=" ${test_flag}"
 | 
				
			||||||
 | 
					    AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
 | 
				
			||||||
 | 
					      newflag="$test_flag"
 | 
				
			||||||
 | 
					      AM_CXXFLAGS+=" ${test_flag}"
 | 
				
			||||||
 | 
					      CXXFLAGS="$save_cxxflags"
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					    CXXFLAGS="$save_cxxflags"
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CXXFLAGS)
 | 
				
			||||||
 | 
					  AC_MSG_RESULT([$newflag])
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_DEFUN([AX_CHECK_QT], [
 | 
				
			||||||
 | 
					  qt_modules="$2"
 | 
				
			||||||
 | 
					  qt_modules_optional="$3"
 | 
				
			||||||
 | 
					  AX_CXX_QT_TOOLS
 | 
				
			||||||
 | 
					  HAVE_$1=0
 | 
				
			||||||
 | 
					  PKG_PROG_PKG_CONFIG
 | 
				
			||||||
 | 
					  PKG_CHECK_MODULES([$1]5, [${qt_modules//Qt/Qt5}], [
 | 
				
			||||||
 | 
					    HAVE_$1=1
 | 
				
			||||||
 | 
					    AC_DEFINE([HAVE_$1])
 | 
				
			||||||
 | 
					    AM_CPPFLAGS+=" ${[$1]5_CFLAGS}"
 | 
				
			||||||
 | 
					    MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}"
 | 
				
			||||||
 | 
					    AM_CXXFLAGS+=" ${[$1]5_CFLAGS}"
 | 
				
			||||||
 | 
					    LIBS+=" ${[$1]5_LIBS}"
 | 
				
			||||||
 | 
					    PKG_REQUIREMENTS+=" ${qt_modules//Qt/Qt5}"
 | 
				
			||||||
 | 
					    if test -n "${qt_modules_optional}"; then
 | 
				
			||||||
 | 
					      PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [
 | 
				
			||||||
 | 
					        AM_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
 | 
				
			||||||
 | 
					        MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
 | 
				
			||||||
 | 
					        AM_CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
 | 
				
			||||||
 | 
					        LIBS+=" ${[$1]5_OPTIONAL_LIBS}"
 | 
				
			||||||
 | 
					        PKG_REQUIREMENTS+=" ${qt_modules_optional//Qt/Qt5}"
 | 
				
			||||||
 | 
					      ], [
 | 
				
			||||||
 | 
					        AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}])
 | 
				
			||||||
 | 
					      ])
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  ], [
 | 
				
			||||||
 | 
					    PKG_CHECK_MODULES([$1], [${qt_modules}], [
 | 
				
			||||||
 | 
					      HAVE_$1=1
 | 
				
			||||||
 | 
					      AC_DEFINE([HAVE_$1])
 | 
				
			||||||
 | 
					      AM_CPPFLAGS+=" ${$1_CFLAGS}"
 | 
				
			||||||
 | 
					      MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}"
 | 
				
			||||||
 | 
					      AM_CXXFLAGS+=" ${$1_CFLAGS}"
 | 
				
			||||||
 | 
					      LIBS+=" ${$1_LIBS}"
 | 
				
			||||||
 | 
					      PKG_REQUIREMENTS+=" ${qt_modules}"
 | 
				
			||||||
 | 
					      if test -n "$3"; then
 | 
				
			||||||
 | 
					        PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [
 | 
				
			||||||
 | 
					          AM_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
 | 
				
			||||||
 | 
					          MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}"
 | 
				
			||||||
 | 
					          AM_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
 | 
				
			||||||
 | 
					          LIBS+=" ${$1_OPTIONAL_LIBS}"
 | 
				
			||||||
 | 
					          PKG_REQUIREMENTS+=" ${qt_modules_optional}"
 | 
				
			||||||
 | 
					        ], [
 | 
				
			||||||
 | 
					          AC_MSG_NOTICE([Not found: ${qt_modules_optional}])
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    ], [HAVE_$1=0])
 | 
				
			||||||
 | 
					  ])
 | 
				
			||||||
 | 
					  AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1)
 | 
				
			||||||
 | 
					  AX_CHECK_VALID_FLAG([-fPIC -fPIE], [position independent code flag])
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CPPFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(MOC_FLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CXXFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(PKG_REQUIREMENTS)
 | 
				
			||||||
 | 
					  AX_ADDITIONAL_QT_RULES_HACK='
 | 
				
			||||||
 | 
					ui_%.hxx: %.ui
 | 
				
			||||||
 | 
						$(UIC) -o [$][@] $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					moc_%.cxx: %.hxx
 | 
				
			||||||
 | 
						$(MOC) $(MOC_FLAGS) -o [$][@] $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					qrc_%.cxx: %.qrc
 | 
				
			||||||
 | 
						$(RCC) -o [$][@] $<'
 | 
				
			||||||
 | 
					  AC_SUBST(AX_ADDITIONAL_QT_RULES_HACK)
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SYNOPSIS
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   AX_CXX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules])
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# DESCRIPTIONS
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    qt_prefix
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      Each call to AX_CXX_CHECK_QT should have a different prefix
 | 
				
			||||||
 | 
					#      value (with a few exceptions discussed later on). This value,
 | 
				
			||||||
 | 
					#      usually provided in uppercase, is used as prefix to the
 | 
				
			||||||
 | 
					#      variables holding the compiler flags and libraries reported by
 | 
				
			||||||
 | 
					#      pkg-config.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      For instance, if your prefix was to be FOO you'll be provided
 | 
				
			||||||
 | 
					#      two variables FOO_CFLAGS and FOO_LIBS.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      This will also be used as message during the configure checks:
 | 
				
			||||||
 | 
					#      checking for FOO....
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    list-of-modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      A single call to the macro can check for the presence of one or
 | 
				
			||||||
 | 
					#      more qt modules; you'll see later how to make good use of this
 | 
				
			||||||
 | 
					#      feature. Each entry in the list can have a version comparison
 | 
				
			||||||
 | 
					#      specifier, with the same syntax as the Requires keyword in the
 | 
				
			||||||
 | 
					#      data files themselves.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    optional-modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      Optional list of more, optional modules, e.g. modules that
 | 
				
			||||||
 | 
					#      exist only in Qt5, but not in Qt4, such as QtWidgets or
 | 
				
			||||||
 | 
					#      QtWebKitWidgets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_DEFUN([AX_REQUIRE_QT], [
 | 
				
			||||||
 | 
					  AX_CHECK_QT([$1], [$2], [$3])
 | 
				
			||||||
 | 
					  if ! test "$HAVE_$1" -eq 1; then
 | 
				
			||||||
 | 
					     AC_MSG_ERROR([Required Qt modules not found: $2])
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   Omit Qt Keywords
 | 
				
			||||||
 | 
					#     AX_QT_NO_KEYWORDS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_DEFUN([AX_QT_NO_KEYWORDS], [
 | 
				
			||||||
 | 
					  AM_CPPFLAGS+=" -DQT_NO_KEYWORDS"
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
							
								
								
									
										464
									
								
								ax_init_standard_project.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										464
									
								
								ax_init_standard_project.m4
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,464 @@
 | 
				
			|||||||
 | 
					## @id $Id$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##       1         2         3         4         5         6         7         8
 | 
				
			||||||
 | 
					## 45678901234567890123456789012345678901234567890123456789012345678901234567890
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define least version number from subversion's revision number:
 | 
				
			||||||
 | 
					# it is taken modulo 256 due to a bug on Apple's MacOSX
 | 
				
			||||||
 | 
					m4_define(x_least, m4_esyscmd_s(
 | 
				
			||||||
 | 
					  SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout"
 | 
				
			||||||
 | 
					  for path in . .. ../..; do
 | 
				
			||||||
 | 
					    if svn info $path 2>&1 > /dev/null; then
 | 
				
			||||||
 | 
					      SVN_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p')
 | 
				
			||||||
 | 
					      (cd $path && svn2cl)
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					  # Mac does not support LEAST > 255
 | 
				
			||||||
 | 
					  echo $ECHO_N $(($SVN_REVISION%256))
 | 
				
			||||||
 | 
					))
 | 
				
			||||||
 | 
					# define version number from subversion's revision number:
 | 
				
			||||||
 | 
					# it is taken modulo 256 due to a bug on Apple's MacOSX
 | 
				
			||||||
 | 
					# add to x_minor if revision number is > 256
 | 
				
			||||||
 | 
					m4_define(x_minor_fixed, m4_esyscmd_s(
 | 
				
			||||||
 | 
					  SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout"
 | 
				
			||||||
 | 
					  for path in . .. ../..; do
 | 
				
			||||||
 | 
					    if svn info $path 2>&1 > /dev/null; then
 | 
				
			||||||
 | 
					      SVN_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p')
 | 
				
			||||||
 | 
					      (cd $path && svn2cl)
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					  # Mac does not support LEAST > 255
 | 
				
			||||||
 | 
					  echo $ECHO_N $((x_minor+$SVN_REVISION/256))
 | 
				
			||||||
 | 
					))
 | 
				
			||||||
 | 
					# setup version number
 | 
				
			||||||
 | 
					m4_define(x_version, m4_esyscmd_s(
 | 
				
			||||||
 | 
					  echo $ECHO_N x_major.x_minor_fixed.x_least
 | 
				
			||||||
 | 
					))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## bugreport mail address is taken from <user@host> in first line of AUTHORS
 | 
				
			||||||
 | 
					m4_define(x_bugreport, m4_esyscmd_s(
 | 
				
			||||||
 | 
					  head -1 AUTHORS | \
 | 
				
			||||||
 | 
					    sed -n 's,.*<\([-_.a-z0-9A-Z]*@[-_.a-z0-9A-Z]*\)>.*,\1,gp'
 | 
				
			||||||
 | 
					))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					m4_include(ax_check_qt.m4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_ALIAS([AC_DEFINE_DIR], [AX_DEFINE_DIR])
 | 
				
			||||||
 | 
					AC_DEFUN([AX_DEFINE_DIR], [
 | 
				
			||||||
 | 
					  prefix_NONE=
 | 
				
			||||||
 | 
					  exec_prefix_NONE=
 | 
				
			||||||
 | 
					  test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
 | 
				
			||||||
 | 
					  test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
 | 
				
			||||||
 | 
					dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn
 | 
				
			||||||
 | 
					dnl refers to ${prefix}.  Thus we have to use `eval' twice.
 | 
				
			||||||
 | 
					  eval ax_define_dir="\"[$]$2\""
 | 
				
			||||||
 | 
					  eval ax_define_dir="\"$ax_define_dir\""
 | 
				
			||||||
 | 
					  AC_SUBST($1, "$ax_define_dir")
 | 
				
			||||||
 | 
					  AC_DEFINE_UNQUOTED($1, "$ax_define_dir", [$3])
 | 
				
			||||||
 | 
					  test "$prefix_NONE" && prefix=NONE
 | 
				
			||||||
 | 
					  test "$exec_prefix_NONE" && exec_prefix=NONE
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# add target dependencies to an existing makefile.in
 | 
				
			||||||
 | 
					#  - parameters:
 | 
				
			||||||
 | 
					#     $1 = existing target
 | 
				
			||||||
 | 
					#     $2 = new dependency for that target
 | 
				
			||||||
 | 
					#     $3 = filename of makefile.in
 | 
				
			||||||
 | 
					AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [
 | 
				
			||||||
 | 
					  sh_add_makefile_target_dep() {
 | 
				
			||||||
 | 
					    sed -i -e ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${srcdir}/${3}"
 | 
				
			||||||
 | 
					    if ! egrep -q "${1}:.* ${2}" "${srcdir}/${3}"; then
 | 
				
			||||||
 | 
					        echo "${1}: ${2}" >> "${srcdir}/${3}"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  sh_add_makefile_target_dep "$1" "$2" "$3"
 | 
				
			||||||
 | 
					  if test "$1" != ".PHONY"; then
 | 
				
			||||||
 | 
					      sh_add_makefile_target_dep ".PHONY" "$2" "$3"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Same as AC_SUBST, but adds -Dname="value" option to CPPFLAGS
 | 
				
			||||||
 | 
					#  - parameters:
 | 
				
			||||||
 | 
					#     $1 = variable name
 | 
				
			||||||
 | 
					AC_DEFUN([AX_SUBST], [
 | 
				
			||||||
 | 
					  AC_SUBST([$1])
 | 
				
			||||||
 | 
					  tmp_var=$(echo "${$1}" | awk 1 ORS='\\n')
 | 
				
			||||||
 | 
					  tmp_var=${tmp_var//\"/\\\"}
 | 
				
			||||||
 | 
					  tmp_var=${tmp_var//\'/\'\"\'\"\'}
 | 
				
			||||||
 | 
					  tmp_var=${tmp_var//#/\\#}
 | 
				
			||||||
 | 
					  AM_CPPFLAGS+=" '-D$1=\"${tmp_var}\"'"
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CPPFLAGS)
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# must be called on the right position in configure.ac
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# configure.ac must start with:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# m4_define(x_package_name, YOUR_PACKAGE_NAME) # project's name
 | 
				
			||||||
 | 
					# m4_define(x_major, MAJOR_NUMBER) # project's major version
 | 
				
			||||||
 | 
					# m4_define(x_minor, MINOR_NUMBER) # project's minor version
 | 
				
			||||||
 | 
					# m4_include(ax_init_standard_project.m4)
 | 
				
			||||||
 | 
					# AC_INIT(x_package_name, x_version, x_bugreport, x_package_name)
 | 
				
			||||||
 | 
					# AM_INIT_AUTOMAKE([1.9 tar-pax])
 | 
				
			||||||
 | 
					# AX_INIT_STANDARD_PROJECT
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# you change nothing but: YOUR_PACKAGE_NAME, MAJOR_NUMBER, MINOR_NUMBER
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# configures the basic environment
 | 
				
			||||||
 | 
					AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
 | 
				
			||||||
 | 
					  AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_NAME}'"
 | 
				
			||||||
 | 
					  AX_SUBST(NUMBERS)
 | 
				
			||||||
 | 
					  AX_SUBST(HOME)
 | 
				
			||||||
 | 
					  README=$(tail -n +3 README)
 | 
				
			||||||
 | 
					  AX_SUBST(README)
 | 
				
			||||||
 | 
					  _AM_SUBST_NOTMAKE([README])
 | 
				
			||||||
 | 
					  DESCRIPTION=$(head -1 README)
 | 
				
			||||||
 | 
					  AX_SUBST(DESCRIPTION)
 | 
				
			||||||
 | 
					  _AM_SUBST_NOTMAKE([DESCRIPTION])
 | 
				
			||||||
 | 
					  AUTHOR=$(head -1 AUTHORS)
 | 
				
			||||||
 | 
					  AX_SUBST(AUTHOR)
 | 
				
			||||||
 | 
					  _AM_SUBST_NOTMAKE([AUTHOR])
 | 
				
			||||||
 | 
					  DISTRO=$(lsb_release -sc)
 | 
				
			||||||
 | 
					  AX_SUBST(DISTRO)
 | 
				
			||||||
 | 
					  BUILD_NUMBER=${BUILD_NUMBER:-1}
 | 
				
			||||||
 | 
					  AX_SUBST(BUILD_NUMBER)
 | 
				
			||||||
 | 
					  BUILD_DATE=$(LANG= date +"%a, %d %B %Y %H:%M:%S %z")
 | 
				
			||||||
 | 
					  AX_SUBST(BUILD_DATE)
 | 
				
			||||||
 | 
					  if test -f "${PROJECT_NAME}-logo.png"; then
 | 
				
			||||||
 | 
					     PROJECT_LOGO="${PROJECT_NAME}-logo.png"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  AX_SUBST(PROJECT_LOGO)
 | 
				
			||||||
 | 
					  if test -f "${PROJECT_NAME}-icon.png"; then
 | 
				
			||||||
 | 
					     PROJECT_ICON="${PROJECT_NAME}-icon.png"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  AX_SUBST(PROJECT_ICON)
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([makefile])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-standard-project-targets], [makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-standard-project-targets], [makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-standard-project-targets], [makefile.in])
 | 
				
			||||||
 | 
					  test -f makefile.in && cat >> makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					EXTRA_DIST = bootstrap.sh
 | 
				
			||||||
 | 
					doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog
 | 
				
			||||||
 | 
					clean-standard-project-targets:
 | 
				
			||||||
 | 
						-rm -rf \${PACKAGE_NAME}-\${PACKAGE_VERSION}
 | 
				
			||||||
 | 
						-rm \${PACKAGE_TARNAME}-\${PACKAGE_VERSION}.tar.gz
 | 
				
			||||||
 | 
					distclean-standard-project-targets:
 | 
				
			||||||
 | 
						-rm -r autom4te.cache
 | 
				
			||||||
 | 
						-rm aclocal.m4 config.guess config.sub configure depcomp compile install-sh ltmain.sh makefile missing mkinstalldirs
 | 
				
			||||||
 | 
					maintainer-clean-standard-project-targets:
 | 
				
			||||||
 | 
						-rm makefile.in
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support C++
 | 
				
			||||||
 | 
					AC_DEFUN([AX_USE_CXX], [
 | 
				
			||||||
 | 
					  m4_include(ax_cxx_compile_stdcxx_11.m4)
 | 
				
			||||||
 | 
					  AC_LANG(C++)
 | 
				
			||||||
 | 
					  AX_CXX_COMPILE_STDCXX_11(noext, optional)
 | 
				
			||||||
 | 
					  AC_PROG_CXX
 | 
				
			||||||
 | 
					  AC_PROG_CPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([src/makefile])
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  AM_CPPFLAGS+=' -I ${top_srcdir}/src -I ${top_builddir}/src -I ${srcdir} -I ${builddir}'
 | 
				
			||||||
 | 
					  AM_LDFLAGS+=' -L ${top_srcdir}/src -L ${top_builddir}/src'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Get rid of that stupid -O2 -g opions!
 | 
				
			||||||
 | 
					  CXXFLAGS="${CXXFLAGS:-}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# pass compile flags to make distcheck
 | 
				
			||||||
 | 
					  AM_DISTCHECK_CONFIGURE_FLAGS="CXXFLAGS='${CXXFLAGS}' CPPFLAGS='${CPPFLAGS}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
 | 
				
			||||||
 | 
					  AC_SUBST(AM_DISTCHECK_CONFIGURE_FLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  AC_ARG_ENABLE(pedantic,
 | 
				
			||||||
 | 
					    [AS_HELP_STRING([--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")
 | 
				
			||||||
 | 
					  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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  MINGW32=no
 | 
				
			||||||
 | 
					  MAC=no
 | 
				
			||||||
 | 
					  case $host_os in
 | 
				
			||||||
 | 
					    *mingw32*) MINGW32=yes;;
 | 
				
			||||||
 | 
					    *darwin* | *rhapsody* | *macosx*) MAC=yes;;
 | 
				
			||||||
 | 
					  esac
 | 
				
			||||||
 | 
					  AM_CONDITIONAL(MINGW32, test "$MINGW32" = "yes")
 | 
				
			||||||
 | 
					  AM_CONDITIONAL(MAC, test "$MAC" = "yes")
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CXXFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CPPFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(AM_LDFLAGS)
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-cxx-targets], [src/makefile.in])
 | 
				
			||||||
 | 
					  test -f src/makefile.in && cat >> src/makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					maintainer-clean-cxx-targets:
 | 
				
			||||||
 | 
						-rm makefile.in
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support CppUnit for C++ unit tests
 | 
				
			||||||
 | 
					AC_DEFUN([AX_USE_CPPUNIT], [
 | 
				
			||||||
 | 
					  AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"])
 | 
				
			||||||
 | 
					  # infos and warnings
 | 
				
			||||||
 | 
					  if test "$have_cppunit" = "no"; then
 | 
				
			||||||
 | 
					    AC_MSG_WARN([Missing cppunit development library!
 | 
				
			||||||
 | 
					     - you cannot check the library using "make check"
 | 
				
			||||||
 | 
					     - everything else works perfectly]); fi
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([test/makefile])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-test-targets], [test/makefile.in])
 | 
				
			||||||
 | 
					  test -f test/makefile.in && cat >> test/makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					maintainer-clean-test-targets:
 | 
				
			||||||
 | 
						-rm makefile.in
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support C++ examples
 | 
				
			||||||
 | 
					AC_DEFUN([AX_BUILD_EXAMPLES], [
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([examples/makefile])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-example-targets], [examples/makefile.in])
 | 
				
			||||||
 | 
					  test -f examples/makefile.in && cat >> examples/makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					maintainer-clean-example-targets:
 | 
				
			||||||
 | 
						-rm makefile.in
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support C++ libraries
 | 
				
			||||||
 | 
					AC_DEFUN([AX_USE_LIBTOOL], [
 | 
				
			||||||
 | 
					  # libtool versioning
 | 
				
			||||||
 | 
					  LIB_MAJOR=m4_eval(x_major+x_minor_fixed)
 | 
				
			||||||
 | 
					  LIB_MINOR=x_least
 | 
				
			||||||
 | 
					  LIB_LEAST=x_minor_fixed
 | 
				
			||||||
 | 
					  LIB_VERSION="${LIB_MAJOR}:${LIB_MINOR}:${LIB_LEAST}"
 | 
				
			||||||
 | 
					  AM_LDFLAGS="-version-info ${LIB_VERSION}"
 | 
				
			||||||
 | 
					  AC_SUBST(AM_LDFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(LIB_VERSION)
 | 
				
			||||||
 | 
					  AC_PROG_LIBTOOL
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([src/${PACKAGE_NAME}.pc])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([install-data-am], [install-data-libtool-pkg], [src/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([uninstall-am], [uninstall-data-am], [src/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([uninstall-data-am], [uninstall-data-libtool-pkg], [src/makefile.in])
 | 
				
			||||||
 | 
					  test -f src/makefile.in && cat >> src/makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					install-data-libtool-pkg:
 | 
				
			||||||
 | 
						test -d \$(DESTDIR)\${libdir}/pkgconfig || mkdir -p \$(DESTDIR)\${libdir}/pkgconfig
 | 
				
			||||||
 | 
						chmod -R u+w \$(DESTDIR)\${libdir}/pkgconfig
 | 
				
			||||||
 | 
						cp \${PACKAGE_NAME}.pc \$(DESTDIR)\${libdir}/pkgconfig/
 | 
				
			||||||
 | 
					uninstall-data-libtool-pkg:
 | 
				
			||||||
 | 
						-chmod -R u+w \$(DESTDIR)\${libdir}/pkgconfig
 | 
				
			||||||
 | 
						-rm -f \$(DESTDIR)\${libdir}/pkgconfig/\${PACKAGE_NAME}.pc
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support debian packages
 | 
				
			||||||
 | 
					AC_DEFUN([AX_USE_DEBIAN_PACKAGING], [
 | 
				
			||||||
 | 
					  README_DEB=$(tail -n +3 README | sed -e 's/^$/./g' -e 's/^/ /g')
 | 
				
			||||||
 | 
					  AC_SUBST(README_DEB)
 | 
				
			||||||
 | 
					  _AM_SUBST_NOTMAKE([README_DEB])
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([debian/changelog debian/control])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-debian-targets], [makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-debian-targets], [makefile.in])
 | 
				
			||||||
 | 
					  test -f makefile.in && cat >> makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					EXTRA_DIST += debian
 | 
				
			||||||
 | 
					clean-debian-targets:
 | 
				
			||||||
 | 
						-rm -rf \${PACKAGE_NAME}_\${PACKAGE_VERSION}~\${DISTRO}.\${BUILD_NUMBER}.{dsc,tar.gz} \${PACKAGE_NAME}_\${PACKAGE_VERSION}~\${DISTRO}.\${BUILD_NUMBER}*.changes \$\$(sed -n 's,Package: \(.*\),\1_${PACKAGE_VERSION}~${DISTRO}.${BUILD_NUMBER}*.deb,p;' debian/control)
 | 
				
			||||||
 | 
					deb: distdir
 | 
				
			||||||
 | 
						cd \${PACKAGE_NAME}-\${PACKAGE_VERSION} && ( export CFLAGS="\${CFLAGS}"; export CPPFLAGS="\${CPPFLAGS}"; export  CXXFLAGS="\${CXXFLAGS}"; export LDFLAGS="\${LDFLAGS}"; export DEB_CFLAGS_APPEND="\${CFLAGS}"; export DEB_CPPFLAGS_APPEND="\${CPPFLAGS}"; export  DEB_CXXFLAGS_APPEND="\${CXXFLAGS}"; export  DEB_LDFLAGS_APPEND="\${LDFLAGS}"; dpkg-buildpackage )
 | 
				
			||||||
 | 
					distclean-debian-targets:
 | 
				
			||||||
 | 
						-rm debian/changelog debian/control
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support RPM packages
 | 
				
			||||||
 | 
					AC_DEFUN([AX_USE_RPM_PACKAGING], [
 | 
				
			||||||
 | 
					#  m4_include(ax_rpm_rules.m4)
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([${PACKAGE_NAME}.spec])
 | 
				
			||||||
 | 
					  #AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-debian-targets], [makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([.PHONY], [rpm], [makefile.in])
 | 
				
			||||||
 | 
					  test -f makefile.in && cat >> makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					rpm: dist
 | 
				
			||||||
 | 
						rpmbuild -ba --define "_topdir \$(pwd)" --define "_sourcedir \$(pwd)" \${PACKAGE_NAME}.spec
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support scripts, e.g. bash scripts
 | 
				
			||||||
 | 
					AC_DEFUN([AX_USE_SCRIPTS], [
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([scripts/makefile])
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use this in configure.ac to support Doxygen documentation generation
 | 
				
			||||||
 | 
					AC_DEFUN([AX_USE_DOXYGEN], [
 | 
				
			||||||
 | 
					  AC_CHECK_PROG(have_doxygen, doxygen, yes, no)
 | 
				
			||||||
 | 
					  AC_CHECK_PROG(have_dot, dot, yes, no)
 | 
				
			||||||
 | 
					  AC_CHECK_PROG(have_mscgen, mscgen, yes, no)
 | 
				
			||||||
 | 
					  PDF_DOC=${PACKAGE_NAME}-${PACKAGE_VERSION}.pdf
 | 
				
			||||||
 | 
					  AC_SUBST(PDF_DOC)
 | 
				
			||||||
 | 
					  if test "$have_doxygen" = "no"; then
 | 
				
			||||||
 | 
					    AC_MSG_WARN([Missing program doxygen!
 | 
				
			||||||
 | 
					     - you cannot rebuild the documentation
 | 
				
			||||||
 | 
					     - there are precompiled derived files in the distribution]); fi
 | 
				
			||||||
 | 
					  if test "$have_dot" = "no"; then
 | 
				
			||||||
 | 
					    AC_MSG_WARN([Missing program dot!
 | 
				
			||||||
 | 
					     - when you rebild documentation, there are no generated images
 | 
				
			||||||
 | 
					     - there are precompiled derived files in the distribution]); fi
 | 
				
			||||||
 | 
					  if test "$have_mscgen" = "no"; then
 | 
				
			||||||
 | 
					    AC_MSG_WARN([Missing program mscgen!
 | 
				
			||||||
 | 
					     - when you rebild documentation, there are no message state charts
 | 
				
			||||||
 | 
					     - there are precompiled derived files in the distribution]); fi
 | 
				
			||||||
 | 
					  AC_CONFIG_FILES([doc/makefile doc/doxyfile])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-documentation], [doc/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-documentation], [doc/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-documentation], [doc/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([install-data-am], [install-data-documentation], [doc/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([uninstall-am], [uninstall-documentation], [doc/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([all], [doc], [doc/makefile.in])
 | 
				
			||||||
 | 
					  AX_ADD_MAKEFILE_TARGET_DEP([.PHONY], [pdf], [doc/makefile.in])
 | 
				
			||||||
 | 
					  test -f doc/makefile.in && cat >> doc/makefile.in <<EOF
 | 
				
			||||||
 | 
					#### Begin: Appended by $0
 | 
				
			||||||
 | 
					doc: doxyfile
 | 
				
			||||||
 | 
						doxygen doxyfile
 | 
				
			||||||
 | 
					@PEDANTIC_TRUE@	test \! -s doxygen.errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean-documentation:
 | 
				
			||||||
 | 
						-rm doxygen.errors @PDF_DOC@
 | 
				
			||||||
 | 
					distclean-documentation:
 | 
				
			||||||
 | 
						-rm -r html latex
 | 
				
			||||||
 | 
						-rm  @PACKAGE_NAME@.doxytag
 | 
				
			||||||
 | 
					maintainer-clean-documentation:
 | 
				
			||||||
 | 
						-rm makefile.in
 | 
				
			||||||
 | 
					install-data-documentation:
 | 
				
			||||||
 | 
						test -d \$(DESTDIR)\${docdir} || mkdir -p \$(DESTDIR)\${docdir}
 | 
				
			||||||
 | 
						chmod -R u+w \$(DESTDIR)\${docdir}
 | 
				
			||||||
 | 
						cp -r html \$(DESTDIR)\${docdir}/
 | 
				
			||||||
 | 
					uninstall-documentation:
 | 
				
			||||||
 | 
						-chmod -R u+w \$(DESTDIR)\${docdir}
 | 
				
			||||||
 | 
						-rm -rf \$(DESTDIR)\${docdir}/*
 | 
				
			||||||
 | 
					#### End: $0
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# require a specific package, with fallback: test for a header
 | 
				
			||||||
 | 
					#  - parameter:
 | 
				
			||||||
 | 
					#     $1 = unique id (no special characters)
 | 
				
			||||||
 | 
					#     $2 = module name
 | 
				
			||||||
 | 
					#     $3 = a header file to find (optional)
 | 
				
			||||||
 | 
					#     $4 = alternative module names (space separated, optional)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# uses PKG_CHECK_MODULES to test for a module
 | 
				
			||||||
 | 
					# then, if given, looks for the header file
 | 
				
			||||||
 | 
					# if header file is not found, searches in alternative modules
 | 
				
			||||||
 | 
					# sets all flags, so that the module can be used everywhere
 | 
				
			||||||
 | 
					# fails if not found
 | 
				
			||||||
 | 
					AC_DEFUN([AX_PKG_REQUIRE], [
 | 
				
			||||||
 | 
					  PKG_PROG_PKG_CONFIG
 | 
				
			||||||
 | 
					  $1_found=0
 | 
				
			||||||
 | 
					  PKG_CHECK_MODULES([$1], [$2], [
 | 
				
			||||||
 | 
					    $1_found=1
 | 
				
			||||||
 | 
					    PKG_REQUIREMENTS+=" $2"
 | 
				
			||||||
 | 
					  ], [
 | 
				
			||||||
 | 
					    if test -n "$4"; then
 | 
				
			||||||
 | 
					      AC_MSG_WARN([Recommended package $2 for feature $1 not installed, trying $4])
 | 
				
			||||||
 | 
					      for pkg in $4; do
 | 
				
			||||||
 | 
					        PKG_CHECK_MODULES([$1], [$pkg], [
 | 
				
			||||||
 | 
					          PKG_REQUIREMENTS+=" $pkg"
 | 
				
			||||||
 | 
					          $1_found=1
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        ], [
 | 
				
			||||||
 | 
					          AC_MSG_WARN([Recommended package $pkg for feature $1 not installed])
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					      done
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  ])
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CPPFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CXXFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(PKG_REQUIREMENTS)
 | 
				
			||||||
 | 
					  if test -n "$3"; then
 | 
				
			||||||
 | 
					    $1_found=0
 | 
				
			||||||
 | 
					    old_CPPFLAGS=${CPPFLAGS}
 | 
				
			||||||
 | 
					    CPPFLAGS=" ${$1_CFLAGS} ${CPPFLAGS}"
 | 
				
			||||||
 | 
					    AC_CHECK_HEADER([$3], [
 | 
				
			||||||
 | 
					      $1_found=1
 | 
				
			||||||
 | 
					    ], [
 | 
				
			||||||
 | 
					      for x in ${$1_CFLAGS}; do
 | 
				
			||||||
 | 
					        AC_MSG_NOTICE([search for $3 in ${x[#]-I}])
 | 
				
			||||||
 | 
					        for f in $(find ${x[#]-I} -name "$3"); do
 | 
				
			||||||
 | 
					          if test -f "$f"; then
 | 
				
			||||||
 | 
					            $1_found=1
 | 
				
			||||||
 | 
					            $1_CFLAGS+=" -I${f%/*}"
 | 
				
			||||||
 | 
					            AC_MSG_NOTICE([added path ${f%/*}])
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					        if test ${$1_found} -eq 1; then
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					      done
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					    CPPFLAGS=${old_CPPFLAGS}
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  if test ${$1_found} -eq 0; then
 | 
				
			||||||
 | 
					    if test -n "$3"; then
 | 
				
			||||||
 | 
					      if test -n "$4"; then
 | 
				
			||||||
 | 
					        AC_MSG_ERROR([Feature $1 not found, need header $3 in modules $2 or $4])
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        AC_MSG_ERROR([Feature $1 not found, need header $3 in module $2])
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      AC_MSG_ERROR([Feature $1 not found please install module $2])
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  AM_CPPFLAGS+=" ${$1_CFLAGS}"
 | 
				
			||||||
 | 
					  AM_CXXFLAGS+=" ${$1_CFLAGS}"
 | 
				
			||||||
 | 
					  LIBS+=" ${$1_LIBS}"
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# check if a specific package exists
 | 
				
			||||||
 | 
					#  - parameter:
 | 
				
			||||||
 | 
					#     $1 = unique id (no special characters)
 | 
				
			||||||
 | 
					#     $2 = module name (optional, if different from id)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# uses PKG_CHECK_MODULES to test for a module
 | 
				
			||||||
 | 
					# sets automake conditional HAVE_$1 to 0 (not found) or 1 (found)
 | 
				
			||||||
 | 
					# sets all flags, so that the module can be used everywhere
 | 
				
			||||||
 | 
					AC_DEFUN([AX_PKG_CHECK], [
 | 
				
			||||||
 | 
					  PKG_PROG_PKG_CONFIG
 | 
				
			||||||
 | 
					  PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
 | 
				
			||||||
 | 
					    HAVE_$1=1
 | 
				
			||||||
 | 
					    AM_CPPFLAGS+=" ${$1_CFLAGS}"
 | 
				
			||||||
 | 
					    AM_CXXFLAGS+=" ${$1_CFLAGS}"
 | 
				
			||||||
 | 
					    LIBS+=" ${$1_LIBS}"
 | 
				
			||||||
 | 
					    if test -z "$PKG_REQUIREMENTS"; then
 | 
				
			||||||
 | 
					      PKG_REQUIREMENTS="m4_default([$2], [$1])"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, m4_default([$2], [$1])"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  ], [
 | 
				
			||||||
 | 
					    HAVE_$1=0
 | 
				
			||||||
 | 
					  ])
 | 
				
			||||||
 | 
					  AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1)
 | 
				
			||||||
 | 
					  AC_SUBST(HAVE_$1)
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CPPFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(AM_CXXFLAGS)
 | 
				
			||||||
 | 
					  AC_SUBST(PKG_REQUIREMENTS)
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
							
								
								
									
										650
									
								
								bootstrap.sh
									
									
									
									
									
								
							
							
						
						
									
										650
									
								
								bootstrap.sh
									
									
									
									
									
								
							@@ -1,5 +1,4 @@
 | 
				
			|||||||
#! /bin/sh
 | 
					#! /bin/bash
 | 
				
			||||||
 | 
					 | 
				
			||||||
## @file
 | 
					## @file
 | 
				
			||||||
##
 | 
					##
 | 
				
			||||||
## $Id$
 | 
					## $Id$
 | 
				
			||||||
@@ -15,5 +14,648 @@
 | 
				
			|||||||
## added file header
 | 
					## added file header
 | 
				
			||||||
##
 | 
					##
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test -f makefile && make distclean
 | 
					MY_NAME=${0##*/}
 | 
				
			||||||
aclocal && libtoolize --force && automake -a && autoconf
 | 
					PROJECT_PATH=$(pwd)
 | 
				
			||||||
 | 
					DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					configure=0
 | 
				
			||||||
 | 
					build=0
 | 
				
			||||||
 | 
					overwrite=0
 | 
				
			||||||
 | 
					rebuild=0
 | 
				
			||||||
 | 
					rebuildfiles=()
 | 
				
			||||||
 | 
					while test $# -gt 0; do
 | 
				
			||||||
 | 
					    case "$1" in
 | 
				
			||||||
 | 
					        (--configure|-c) configure=1;;
 | 
				
			||||||
 | 
					        (--build|-b)  configure=1; build=1;;
 | 
				
			||||||
 | 
					        (--overwrite|-o) overwrite=1;;
 | 
				
			||||||
 | 
					        (--rebuild|-r) rebuild=1;;
 | 
				
			||||||
 | 
					        (--rebuild-file|-f) shift; rebuildfiles+=("$1");;
 | 
				
			||||||
 | 
					        (--version|-v)
 | 
				
			||||||
 | 
					            echo "$Id$";
 | 
				
			||||||
 | 
					            exit;;
 | 
				
			||||||
 | 
					        (--help|-h) less <<EOF
 | 
				
			||||||
 | 
					SYNOPSIS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ${MY_NAME} [--help|-h] [OPTIOS]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  --configure, -c            call ./configure after initialization
 | 
				
			||||||
 | 
					  --build, -c                build, also call ./configure && make
 | 
				
			||||||
 | 
					  --overwrite, -o            overwrite all basic files (bootstrap.sh, m4-macros)
 | 
				
			||||||
 | 
					  --rebuild, -r              force rebuild of generated files, even if modified
 | 
				
			||||||
 | 
					  --rebuild-file, -f <file>  rebild specific file (can be added multiple times)
 | 
				
			||||||
 | 
					  --help, -h                 show this help
 | 
				
			||||||
 | 
					  --version, -v              show version and date of this file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Initializes your build environment, as far as neccessary. Reads your
 | 
				
			||||||
 | 
					  used features from configure.ac, if that file exists, or creates a
 | 
				
			||||||
 | 
					  configure.ac. Automatically copies or creates all required template
 | 
				
			||||||
 | 
					  files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  From your new and empty project's subversion path, call $0 to
 | 
				
			||||||
 | 
					  initialize your build environment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Before you call ${MY_NAME} the very first time, edit ${0#/*}/AUTHORS
 | 
				
			||||||
 | 
					  and replace it with your name (or the authors of your project, one
 | 
				
			||||||
 | 
					  name each line, main developper and copyright holder on the first
 | 
				
			||||||
 | 
					  line).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The first call to ${MY_NAME} should be something like
 | 
				
			||||||
 | 
					  ../bootstrap-build-environment/${MY_NAME} and not
 | 
				
			||||||
 | 
					  ./${MY_NAME}. Actually, you called $0.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  In the way you called ${MY_NAME}, it has detected
 | 
				
			||||||
 | 
					  ${DEFAULT_PROJECT_NAME} as the project name for your project in
 | 
				
			||||||
 | 
					  ${PROJECT_PATH}. In the first run, you should call ${MY_NAME} from a
 | 
				
			||||||
 | 
					  checked out the bootstrap-build-environment from
 | 
				
			||||||
 | 
					  https://dev.marc.waeckerlin.org/, and the path from where you call
 | 
				
			||||||
 | 
					  ${MY_NAME} (which is actually ${PROJECT_PATH}) should be the path to
 | 
				
			||||||
 | 
					  your newly created project. Please note that your project must be a
 | 
				
			||||||
 | 
					  checked out subversion repository, since this build environment
 | 
				
			||||||
 | 
					  relies on subversion.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Example for an initial run, where your new projet is stored in
 | 
				
			||||||
 | 
					  subversion on svn:/path/to/your/new-project:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cd ~/svn
 | 
				
			||||||
 | 
					    svn co https://dev.marc.waeckerlin.org/svn/bootstrap-build-environment/trunk \\
 | 
				
			||||||
 | 
					           bootstrap-build-environment
 | 
				
			||||||
 | 
					    svn co svn:/path/to/your/new-project/trunk new-project
 | 
				
			||||||
 | 
					    cd new-project
 | 
				
			||||||
 | 
					    ../bootstrap-build-environment/bootstrap.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUNNING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  If you run ${MY_NAME}, it first generates the necessary files (see
 | 
				
			||||||
 | 
					  below), then first runs make distclean if a makefile exists. After
 | 
				
			||||||
 | 
					  this it calles aclocal, libtoolize, automake, autoconf and
 | 
				
			||||||
 | 
					  optionally ./configure.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GENERATED FILES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This script copies the following files into your project environment:
 | 
				
			||||||
 | 
					    * ${MY_NAME}
 | 
				
			||||||
 | 
					    * ax_init_standard_project.m4 - auxiliary macro definition file
 | 
				
			||||||
 | 
					    * ax_cxx_compile_stdcxx_11.m4 - auxiliary macro definition file
 | 
				
			||||||
 | 
					    * ax_check_qt.m4 - auxiliary macro definition file
 | 
				
			||||||
 | 
					    * AUTHORS - replace your name in AUTHORS before first run
 | 
				
			||||||
 | 
					    * configure.ac - global configuration file template
 | 
				
			||||||
 | 
					    * makefile.am - global makefile template
 | 
				
			||||||
 | 
					    * src/makefile.am - if you enabled AX_USE_CXX
 | 
				
			||||||
 | 
					    * src/version.hxx - if you enabled AX_USE_CXX
 | 
				
			||||||
 | 
					    * src/version.cxx - if you enabled AX_USE_CXX
 | 
				
			||||||
 | 
					    * scripts/makefile.in - if you enabled AX_USE_SCRIPTS
 | 
				
			||||||
 | 
					    * doc/makefile.am - if you enabled AX_USE_DOXYGEN
 | 
				
			||||||
 | 
					    * doc/doxyfile.in - if you enabled AX_USE_DOXYGEN
 | 
				
			||||||
 | 
					    * test/makefile.am - if you enabled AX_USE_CPPUNIT
 | 
				
			||||||
 | 
					    * examples/makefile.am - if you enabled AX_BUILD_EXAMPLES
 | 
				
			||||||
 | 
					    * debian/changelog.in - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/control.in - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/docs - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}.install - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}.dirs - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}-dev.install - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}-dev.dirs - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/rules - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * debian/compat - if you enabled AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					    * src/${DEFAULT_PROJECT_NAME}.pc.in - if you enabled AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REBUILDING FILES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  To rebuild all these files, just run "${MY_NAME} -r".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  To copy only the files provided by this package, that means those
 | 
				
			||||||
 | 
					  files you must never change, that means to update the build system
 | 
				
			||||||
 | 
					  to the latest release, run "${MY_NAME} -o"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  You can also rebuild a list of singleany list of specific file files
 | 
				
			||||||
 | 
					  by adding option "${MY_NAME} -f <file>" to rebuild file
 | 
				
			||||||
 | 
					  "<file>". You can add option "-f" more than once.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILES TO EDIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  After creation of the files, you can edit them according to your
 | 
				
			||||||
 | 
					  needs. Please don't forget to redo your edits after rebuilding a
 | 
				
			||||||
 | 
					  file. Most files don't even need to be edited, they work out of the
 | 
				
			||||||
 | 
					  box.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The following files normally require editing:
 | 
				
			||||||
 | 
					    * AUTHORS
 | 
				
			||||||
 | 
					    * README
 | 
				
			||||||
 | 
					    * configure.ac
 | 
				
			||||||
 | 
					    * src/makefile.am
 | 
				
			||||||
 | 
					    * test/makefile.am
 | 
				
			||||||
 | 
					    * examples/makefile.am
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE DEPENDENCIES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  You should rebuild (see above) the files, whenever you change the
 | 
				
			||||||
 | 
					  configuration a dependent, i.e.:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    * test/makefile.am depends on AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					    * doc/doxyfile.in depends on AX_BUILD_EXAMPLES
 | 
				
			||||||
 | 
					    * debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT,
 | 
				
			||||||
 | 
					      AX_CXX_QT, AX_CXX_CHECK_QT, AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}.install depends on AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}.dirs depends on AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}-dev.install depends on AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					    * debian/${DEFAULT_PROJECT_NAME}-dev.dirs depends on AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  * AUTHORS:      First line is the main author and used in Debian and RPM
 | 
				
			||||||
 | 
					                  packaging, so there must be a GPG key that matches
 | 
				
			||||||
 | 
					                  to this line.
 | 
				
			||||||
 | 
					  * README:       First line is a short description of your project, then an
 | 
				
			||||||
 | 
					                  empty line must follow. All remaining lines are a
 | 
				
			||||||
 | 
					                  long description of your project. this information
 | 
				
			||||||
 | 
					                  is copied, e.g. in Debian or RPM packages. In C++
 | 
				
			||||||
 | 
					                  <ou can access the readme by calling
 | 
				
			||||||
 | 
					                  ${DEFAULT_PROJECT_NAME}::description().
 | 
				
			||||||
 | 
					  * ChangeLog:    Your changelog is automatically maintained from
 | 
				
			||||||
 | 
					                  subversion history, using svn2cl. You don't need to
 | 
				
			||||||
 | 
					                  care about.
 | 
				
			||||||
 | 
					  * configure.ac: This file becomes very short and simple. You provide
 | 
				
			||||||
 | 
					                  the project name, the major and minor version. The
 | 
				
			||||||
 | 
					                  least version number is automatically taken from
 | 
				
			||||||
 | 
					                  subversion's revision, so every checkin
 | 
				
			||||||
 | 
					                  automatically increments the least version
 | 
				
			||||||
 | 
					                  number. The following macros are supported:
 | 
				
			||||||
 | 
					      * Enable C++: AX_USE_CXX
 | 
				
			||||||
 | 
					      * Enable LibTool library creation: AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					      * Enable Scripts: AX_USE_SCRIPTS
 | 
				
			||||||
 | 
					      * Enable Doxygen documentation generation: AX_USE_DOXYGEN
 | 
				
			||||||
 | 
					      * Enable Debian packaging by calling "make deb": AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					      * Not yet implemented: AX_USE_RPM_PACKAGING
 | 
				
			||||||
 | 
					      * Enable C++ testing using CppUnit: AX_USE_CPPUNIT
 | 
				
			||||||
 | 
					      * Enable C++ examples, i.e. for libraries: AX_BUILD_EXAMPLES
 | 
				
			||||||
 | 
					      * Check for C++11 support: AX_CXX_COMPILE_STDCXX_11 (see ax_cxx_compile_stdcxx_11.m4)
 | 
				
			||||||
 | 
					      * Require a QT module: AX_REQUIRE_QT (see ax_check_qt.m4)
 | 
				
			||||||
 | 
					      * Optionally use a QT module: AX_CHECK_QT (see ax_check_qt.m4)
 | 
				
			||||||
 | 
					      * Require a module: AX_PKG_REQUIRE (see ax_init_standard_project.m4)
 | 
				
			||||||
 | 
					      * Check for an optional module: AX_PKG_CHECK (see ax_init_standard_project.m4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES: src/makefile.am in a QT project
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  In this example, you wrote the following files:
 | 
				
			||||||
 | 
					    * ${DEFAULT_PROJECT_NAME}.hxx - Qt Header file, passed to moc
 | 
				
			||||||
 | 
					    * ${DEFAULT_PROJECT_NAME}.cxx - C++ file containing main()
 | 
				
			||||||
 | 
					    * ${DEFAULT_PROJECT_NAME}.ui - UI file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  All rules are implicitely added, all you need to do is to add the
 | 
				
			||||||
 | 
					  following definitions, most lines are generic:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bin_PROGRAMS = ${DEFAULT_PROJECT_NAME}
 | 
				
			||||||
 | 
					${DEFAULT_PROJECT_NAME}_MOCFILES = moc_${DEFAULT_PROJECT_NAME}.cxx
 | 
				
			||||||
 | 
					${DEFAULT_PROJECT_NAME}_UIFILES = ui_${DEFAULT_PROJECT_NAME}.hxx
 | 
				
			||||||
 | 
					${DEFAULT_PROJECT_NAME}_SOURCES = version.cxx version.hxx ${DEFAULT_PROJECT_NAME}.cxx ${DEFAULT_PROJECT_NAME}_MOCFILES ${DEFAULT_PROJECT_NAME}_UIFILES
 | 
				
			||||||
 | 
					BUILT_SOURCES = \${${DEFAULT_PROJECT_NAME}_MOCFILES} \${${DEFAULT_PROJECT_NAME}_UIFILES}
 | 
				
			||||||
 | 
					EXTRA_DIST = \${${DEFAULT_PROJECT_NAME}_MOCFILES:moc_%.cxx=%.hxx} \${${DEFAULT_PROJECT_NAME}_UIFILES:ui_%.hxx=%.ui}
 | 
				
			||||||
 | 
					MAINTAINERCLEANFILES = makefile.in
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					            exit;;
 | 
				
			||||||
 | 
					        (*) break;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					    shift;
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HEADER='## @id '"\$Id\$"'
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This file has been added by '${MY_NAME}' on '$(LANG= date +"%a, %d %B %Y %H:%M:%S %z")'
 | 
				
			||||||
 | 
					# Feel free to change it or even remove and rebuild it, up to your needs
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					##       1         2         3         4         5         6         7         8
 | 
				
			||||||
 | 
					## 45678901234567890123456789012345678901234567890123456789012345678901234567890
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run() {
 | 
				
			||||||
 | 
					    check=1
 | 
				
			||||||
 | 
					    while test $# -gt 0; do
 | 
				
			||||||
 | 
					        case "$1" in
 | 
				
			||||||
 | 
					            (--no-check) check=0;;
 | 
				
			||||||
 | 
					            (*) break;;
 | 
				
			||||||
 | 
					        esac
 | 
				
			||||||
 | 
					        shift;
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    echo -en "\e[1m-> running:\e[0m $* ..."
 | 
				
			||||||
 | 
					    result=$($* 2>&1)
 | 
				
			||||||
 | 
					    res=$?
 | 
				
			||||||
 | 
					    if test $res -ne 0; then
 | 
				
			||||||
 | 
					        if test $check -eq 1; then
 | 
				
			||||||
 | 
					            echo -e " \e[31merror\e[0m"
 | 
				
			||||||
 | 
					            echo -e "\e[1m*** Failed with return code: $res\e[0m"
 | 
				
			||||||
 | 
					            if test -n "$result"; then
 | 
				
			||||||
 | 
					                echo "$result"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            echo -e " \e[33mignored\e[0m"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo -e " \e[32msuccess\e[0m"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					testtag() {
 | 
				
			||||||
 | 
					    egrep -q '^ *'"$1" configure.ac
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					contains() {
 | 
				
			||||||
 | 
					    local e
 | 
				
			||||||
 | 
					    for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
 | 
				
			||||||
 | 
					    return 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					checkdir() {
 | 
				
			||||||
 | 
					    if ! test -d "$1"; then # create path
 | 
				
			||||||
 | 
					        run mkdir -p "$1"
 | 
				
			||||||
 | 
					        run svn add "$1"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					checkfile() {
 | 
				
			||||||
 | 
					    exists=0
 | 
				
			||||||
 | 
					    if test -f "$1"; then
 | 
				
			||||||
 | 
					        exists=1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    test $exists -eq 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					to() {
 | 
				
			||||||
 | 
					    while test $# -gt 0; do
 | 
				
			||||||
 | 
					        mode="u=rw,g=rw,o=r"
 | 
				
			||||||
 | 
					        case "$1" in
 | 
				
			||||||
 | 
					            (--condition) shift # test for a tag, abort if not set
 | 
				
			||||||
 | 
					                if ! testtag "$1" configure.ac; then
 | 
				
			||||||
 | 
					                    return
 | 
				
			||||||
 | 
					                fi;;
 | 
				
			||||||
 | 
					            (--mode) shift # test for a tag, abort if not set
 | 
				
			||||||
 | 
					                mode="$1";;
 | 
				
			||||||
 | 
					            (*) break;;
 | 
				
			||||||
 | 
					        esac
 | 
				
			||||||
 | 
					        shift;
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    if checkfile "$1" && test $rebuild -eq 0 \
 | 
				
			||||||
 | 
					        && ! contains "$1" "${rebuildfiles[@]}"; then
 | 
				
			||||||
 | 
					        # file already exists and must not be rebuilt
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    checkdir "$(dirname ${1})"
 | 
				
			||||||
 | 
					    echo -en "\e[1m-> generating:\e[0m $1 ..."
 | 
				
			||||||
 | 
					    result=$(cat > "$1" 2>&1)
 | 
				
			||||||
 | 
					    res=$?
 | 
				
			||||||
 | 
					    if test $res -ne 0; then
 | 
				
			||||||
 | 
					        echo -e " \e[31merror\e[0m"
 | 
				
			||||||
 | 
					        echo -e "\e[1m*** Failed with return code: $res\e[0m"
 | 
				
			||||||
 | 
					        if test -n "$result"; then
 | 
				
			||||||
 | 
					            echo "$result"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo -e " \e[32msuccess\e[0m"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    chmod $mode $1
 | 
				
			||||||
 | 
					    if test $exists -eq 0; then
 | 
				
			||||||
 | 
					        run svn add "$1"
 | 
				
			||||||
 | 
					        run svn propset svn:keywords "Id" "$1"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					copy() {
 | 
				
			||||||
 | 
					    if  checkfile "$1" && test $overwrite -eq 0 \
 | 
				
			||||||
 | 
					        && ! contains "$1" "${rebuildfiles[@]}"; then
 | 
				
			||||||
 | 
					        # file already exists and must not be rebuilt
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    run cp "${0%/*}/$1" "$1"
 | 
				
			||||||
 | 
					    if test $exists -eq 0; then
 | 
				
			||||||
 | 
					        run svn add "$1"
 | 
				
			||||||
 | 
					        run svn propset svn:keywords "Id" "$1"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					doxyreplace() {
 | 
				
			||||||
 | 
					    echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..."
 | 
				
			||||||
 | 
					    if sed -i 's|\(^'"$1"' *=\) *.*|\1'" $2"'|g' doc/doxyfile.in; then
 | 
				
			||||||
 | 
					        echo -e " \e[32msuccess\e[0m"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo -e " \e[31merror\e[0m"
 | 
				
			||||||
 | 
					        echo -e "\e[1m**** command: $0 $*\e[0m"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					doxyadd() {
 | 
				
			||||||
 | 
					    echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..."
 | 
				
			||||||
 | 
					    if sed -i '/^'"$1"' *=/a'"$1"' += '"$2" doc/doxyfile.in; then
 | 
				
			||||||
 | 
					        echo -e " \e[32msuccess\e[0m"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo -e " \e[31merror\e[0m"
 | 
				
			||||||
 | 
					        echo -e "\e[1m**** command: $0 $*\e[0m"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Initialize the environment:
 | 
				
			||||||
 | 
					copy ${MY_NAME}
 | 
				
			||||||
 | 
					copy ax_init_standard_project.m4
 | 
				
			||||||
 | 
					copy ax_cxx_compile_stdcxx_11.m4
 | 
				
			||||||
 | 
					copy ax_check_qt.m4
 | 
				
			||||||
 | 
					copy AUTHORS
 | 
				
			||||||
 | 
					to configure.ac <<EOF && \
 | 
				
			||||||
 | 
					    ( echo "please edit configure.ac, then rerun $0"; exit 0 )
 | 
				
			||||||
 | 
					${HEADER}m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name
 | 
				
			||||||
 | 
					m4_define(x_major, 0) # project's major version
 | 
				
			||||||
 | 
					m4_define(x_minor, 0) # project's minor version
 | 
				
			||||||
 | 
					m4_include(ax_init_standard_project.m4)
 | 
				
			||||||
 | 
					AC_INIT(x_package_name, x_version, x_package_name)
 | 
				
			||||||
 | 
					AM_INIT_AUTOMAKE([1.9 tar-pax])
 | 
				
			||||||
 | 
					AX_INIT_STANDARD_PROJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# requirements, uncomment, what you need:
 | 
				
			||||||
 | 
					#AX_USE_CXX
 | 
				
			||||||
 | 
					#AX_USE_LIBTOOL
 | 
				
			||||||
 | 
					#AX_USE_SCRIPTS
 | 
				
			||||||
 | 
					#AX_USE_DOXYGEN
 | 
				
			||||||
 | 
					#AX_USE_DEBIAN_PACKAGING
 | 
				
			||||||
 | 
					#AX_USE_RPM_PACKAGING
 | 
				
			||||||
 | 
					#AX_USE_CPPUNIT
 | 
				
			||||||
 | 
					#AX_BUILD_EXAMPLES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# qt features, uncomment, what you need:
 | 
				
			||||||
 | 
					#AX_CHECK_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets])
 | 
				
			||||||
 | 
					#AM_CPPFLAGS="${AM_CPPFLAGS} -DQT_NO_KEYWORDS"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# create output
 | 
				
			||||||
 | 
					AC_OUTPUT
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					PACKAGE_NAME=$(sed -n 's/.*m4_define *( *x_package_name *, *\([^ ]*\) *).*/\1/p' configure.ac)
 | 
				
			||||||
 | 
					echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_CXX src/makefile.am
 | 
				
			||||||
 | 
					to --condition AX_USE_CXX src/version.hxx <<EOF
 | 
				
			||||||
 | 
					/*! @file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @id \$Id\$
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					//       1         2         3         4         5         6         7         8
 | 
				
			||||||
 | 
					// 45678901234567890123456789012345678901234567890123456789012345678901234567890
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace NAMESPACE {
 | 
				
			||||||
 | 
					  /// get package string which consists of package name and package version
 | 
				
			||||||
 | 
					  std::string package_string();
 | 
				
			||||||
 | 
					  /// get package name
 | 
				
			||||||
 | 
					  std::string package_name();
 | 
				
			||||||
 | 
					  /// get package version
 | 
				
			||||||
 | 
					  std::string version();
 | 
				
			||||||
 | 
					  /// get code build date
 | 
				
			||||||
 | 
					  std::string build_date();
 | 
				
			||||||
 | 
					  /// get author, i.e. copyright holder
 | 
				
			||||||
 | 
					  std::string author();
 | 
				
			||||||
 | 
					  /// get short package description (1st line of README)
 | 
				
			||||||
 | 
					  std::string description();
 | 
				
			||||||
 | 
					  /// get long package description (starting at 3rd line in README)
 | 
				
			||||||
 | 
					  std::string readme();
 | 
				
			||||||
 | 
					  /// get package logo file name
 | 
				
			||||||
 | 
					  std::string logo();
 | 
				
			||||||
 | 
					  /// get package icon file name
 | 
				
			||||||
 | 
					  std::string icon();
 | 
				
			||||||
 | 
					  /// used for <code>what filename</code>
 | 
				
			||||||
 | 
					  extern const std::string WHAT;
 | 
				
			||||||
 | 
					  /// used for <code>ident filename</code>
 | 
				
			||||||
 | 
					  extern const std::string IDENT;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					to --condition AX_USE_CXX src/version.cxx <<EOF
 | 
				
			||||||
 | 
					/*! @file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @id $Id\$
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					//       1         2         3         4         5         6         7         8
 | 
				
			||||||
 | 
					// 45678901234567890123456789012345678901234567890123456789012345678901234567890
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace NAMESPACE {
 | 
				
			||||||
 | 
					  std::string package_string() {
 | 
				
			||||||
 | 
					    return PACKAGE_STRING;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string package_name() {
 | 
				
			||||||
 | 
					    return PACKAGE_NAME;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string version() {
 | 
				
			||||||
 | 
					    return PACKAGE_VERSION;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string build_date() {
 | 
				
			||||||
 | 
					    return BUILD_DATE;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string author() {
 | 
				
			||||||
 | 
					    return AUTHOR;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string description() {
 | 
				
			||||||
 | 
					    return DESCRIPTION;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string readme() {
 | 
				
			||||||
 | 
					    return README;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string logo() {
 | 
				
			||||||
 | 
					    return PROJECT_LOGO;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  std::string icon() {
 | 
				
			||||||
 | 
					    return PROJECT_ICON;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const std::string WHAT("#(@) " PACKAGE_STRING);
 | 
				
			||||||
 | 
					  const std::string IDENT("\$Id: " PACKAGE_STRING);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_SCRIPTS scripts/makefile.am
 | 
				
			||||||
 | 
					echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_DOXYGEN doc/makefile.am
 | 
				
			||||||
 | 
					to --condition AX_USE_CPPUNIT test/makefile.am <<EOF
 | 
				
			||||||
 | 
					${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src
 | 
				
			||||||
 | 
					AM_LDFLAGS = -L${top_builddir}/src/.libs
 | 
				
			||||||
 | 
					LDADD = -l${PACKAGE_NAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MAINTAINERCLEANFILES = makefile.in
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					to --condition AX_BUILD_EXAMPLES examples/makefile.am <<EOF
 | 
				
			||||||
 | 
					${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src
 | 
				
			||||||
 | 
					AM_LDFLAGS = -L${top_builddir}/src/.libs
 | 
				
			||||||
 | 
					LDADD = -l${PACKAGE_NAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MAINTAINERCLEANFILES = makefile.in
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					if testtag AX_USE_DOXYGEN && \
 | 
				
			||||||
 | 
					    ( ! checkfile doc/doxyfile.in || \
 | 
				
			||||||
 | 
					      contains doc/doxyfile.in "${rebuildfiles[@]}" ); then
 | 
				
			||||||
 | 
					    run doxygen -g doc/doxyfile.in
 | 
				
			||||||
 | 
					    if test $exists -eq 0; then
 | 
				
			||||||
 | 
					        run svn add doc/doxyfile.in
 | 
				
			||||||
 | 
					        run svn propset svn:keywords "Id" doc/doxyfile.in
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    doxyreplace PROJECT_NAME "@PACKAGE_NAME@"
 | 
				
			||||||
 | 
					    doxyreplace PROJECT_NUMBER "@PACKAGE_VERSION@"
 | 
				
			||||||
 | 
					    doxyreplace PROJECT_BRIEF "@DESCRIPTION@"
 | 
				
			||||||
 | 
					    doxyreplace PROJECT_LOGO "@PROJECT_LOGO@"
 | 
				
			||||||
 | 
					    doxyreplace INLINE_INHERITED_MEMB YES
 | 
				
			||||||
 | 
					    doxyreplace MULTILINE_CPP_IS_BRIEF YES
 | 
				
			||||||
 | 
					    doxyreplace TAB_SIZE 2
 | 
				
			||||||
 | 
					    doxyreplace ALIASES '"id=\\par File-ID\\n"'
 | 
				
			||||||
 | 
					    doxyadd ALIASES '"copy=\\par Copyright\\n"'
 | 
				
			||||||
 | 
					    doxyadd ALIASES '"license=\\par License\\n"'
 | 
				
			||||||
 | 
					    doxyadd ALIASES '"classmutex=\\par Reentrant:\\nAccess is locked with class static mutex @c "'
 | 
				
			||||||
 | 
					    doxyadd ALIASES '"instancemutex=\\par Reentrant:\\nAccess is locked with per instance mutex @c "'
 | 
				
			||||||
 | 
					    doxyadd ALIASES '"mutex=\\par Reentrant:\\nAccess is locked with mutex @c "'
 | 
				
			||||||
 | 
					    doxyreplace ENABLE_PREPROCESSING YES
 | 
				
			||||||
 | 
					    doxyreplace MACRO_EXPANSION YES
 | 
				
			||||||
 | 
					    doxyadd PREDEFINED '"NAMESPACE=@PACKAGE_NAME@"'
 | 
				
			||||||
 | 
					    doxyreplace BUILTIN_STL_SUPPORT YES
 | 
				
			||||||
 | 
					    doxyreplace DISTRIBUTE_GROUP_DOC YES
 | 
				
			||||||
 | 
					    doxyreplace EXTRACT_ALL YES
 | 
				
			||||||
 | 
					    doxyreplace EXTRACT_PACKAGE YES
 | 
				
			||||||
 | 
					    doxyreplace EXTRACT_PRIVATE YES
 | 
				
			||||||
 | 
					    doxyreplace EXTRACT_STATIC YES
 | 
				
			||||||
 | 
					    doxyreplace EXTRACT_LOCAL_CLASSES YES
 | 
				
			||||||
 | 
					    doxyreplace EXTRACT_LOCAL_METHODS YES
 | 
				
			||||||
 | 
					    doxyreplace EXTRACT_ANON_NSPACES YES
 | 
				
			||||||
 | 
					    doxyreplace SHOW_GROUPED_MEMB_INC YES
 | 
				
			||||||
 | 
					    doxyreplace SORT_MEMBERS_CTORS_1ST YES
 | 
				
			||||||
 | 
					    doxyreplace WARN_IF_UNDOCUMENTED NO
 | 
				
			||||||
 | 
					    doxyreplace WARN_LOGFILE doxygen.errors
 | 
				
			||||||
 | 
					    doxyreplace INPUT "@top_srcdir@/src"
 | 
				
			||||||
 | 
					    if testtag AX_USE_SCRIPTS; then
 | 
				
			||||||
 | 
					        doxyadd INPUT "@top_srcdir@/scripts"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    if testtag AX_USE_CPPUNIT; then
 | 
				
			||||||
 | 
					        doxyadd INPUT "@top_srcdir@/test"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    doxyreplace FILE_PATTERNS '*.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.idl *.ddl *.odl *.h *.hh *.hxx *.hpp *.h++ *.cs *.d *.php *.php4 *.php5 *.phtml *.inc *.m *.markdown *.md *.mm *.dox *.py *.f90 *.f *.for *.tcl *.vhd *.vhdl *.ucf *.qsf *.as *.js'
 | 
				
			||||||
 | 
					    doxyadd FILE_PATTERNS *.wt
 | 
				
			||||||
 | 
					    doxyreplace RECURSIVE YES
 | 
				
			||||||
 | 
					    doxyreplace EXCLUDE_PATTERNS "moc_* uic_* qrc_*"
 | 
				
			||||||
 | 
					    if testtag AX_BUILD_EXAMPLES; then
 | 
				
			||||||
 | 
					        doxyreplace EXAMPLE_PATH @top_srcdir@/examples
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    doxyreplace EXAMPLE_RECURSIVE YES
 | 
				
			||||||
 | 
					    doxyreplace FILTER_PATTERNS '*.wt=doxygen-webtester.sed'
 | 
				
			||||||
 | 
					    doxyreplace SOURCE_BROWSER YES
 | 
				
			||||||
 | 
					    doxyreplace INLINE_SOURCES YES
 | 
				
			||||||
 | 
					    doxyreplace GENERATE_TESTLIST YES
 | 
				
			||||||
 | 
					    doxyreplace GENERATE_TREEVIEW NO
 | 
				
			||||||
 | 
					    doxyreplace SEARCHENGINE YES
 | 
				
			||||||
 | 
					    doxyreplace GENERATE_HTML YES
 | 
				
			||||||
 | 
					    doxyreplace GENERATE_LATEX NO
 | 
				
			||||||
 | 
					    doxyreplace LATEX_BATCHMODE YES
 | 
				
			||||||
 | 
					    doxyreplace LATEX_HIDE_INDICES YES
 | 
				
			||||||
 | 
					    doxyreplace COMPACT_RTF YES
 | 
				
			||||||
 | 
					    doxyreplace RTF_HYPERLINKS YES
 | 
				
			||||||
 | 
					    doxyreplace GENERATE_TAGFILE "@PACKAGE_NAME@.doxytag"
 | 
				
			||||||
 | 
					    doxyreplace HIDE_UNDOC_RELATIONS NO
 | 
				
			||||||
 | 
					    doxyreplace HAVE_DOT YES
 | 
				
			||||||
 | 
					    doxyreplace CLASS_GRAPH YES
 | 
				
			||||||
 | 
					    doxyreplace TEMPLATE_RELATIONS YES
 | 
				
			||||||
 | 
					    doxyreplace DOT_IMAGE_FORMAT svg
 | 
				
			||||||
 | 
					    doxyreplace INTERACTIVE_SVG YES
 | 
				
			||||||
 | 
					    doxyreplace DOT_TRANSPARENT YES
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					if testtag AX_USE_DEBIAN_PACKAGING; then
 | 
				
			||||||
 | 
					    checkdir debian
 | 
				
			||||||
 | 
					    to debian/changelog.in <<EOF
 | 
				
			||||||
 | 
					@PACKAGE@ (@PACKAGE_VERSION@~@DISTRO@.@BUILD_NUMBER@) @DISTRO@; urgency=low
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  * Please see ChangeLog of @PACKAGE@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 -- @AUTHOR@  @BUILD_DATE@
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					    to debian/control.in <<EOF
 | 
				
			||||||
 | 
					Source: @PACKAGE_NAME@
 | 
				
			||||||
 | 
					Priority: extra
 | 
				
			||||||
 | 
					Maintainer: @AUTHOR@
 | 
				
			||||||
 | 
					Build-Depends: debhelper, pkg-config, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CXX_CHECK_QT; then echo -n ", qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools"; fi)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Package: @PACKAGE_NAME@
 | 
				
			||||||
 | 
					$(if testtag AX_USE_LIBTOOL; then echo "Section: libs"; fi)Architecture: any
 | 
				
			||||||
 | 
					Depends: \${shlibs:Depends}, \${misc:Depends}
 | 
				
			||||||
 | 
					Description: @DESCRIPTION@
 | 
				
			||||||
 | 
					@README_DEB@
 | 
				
			||||||
 | 
					$(      if testtag AX_USE_LIBTOOL; then
 | 
				
			||||||
 | 
					            cat <<EOF2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Package: @PACKAGE_NAME@-dev
 | 
				
			||||||
 | 
					Section: libdevel
 | 
				
			||||||
 | 
					Architecture: any
 | 
				
			||||||
 | 
					Depends: @PACKAGE_NAME@ (= \${binary:Version})
 | 
				
			||||||
 | 
					Description: @DESCRIPTION@ - Development Package
 | 
				
			||||||
 | 
					@README_DEB@
 | 
				
			||||||
 | 
					EOF2
 | 
				
			||||||
 | 
					          fi)
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					    to debian/docs <<EOF
 | 
				
			||||||
 | 
					NEWS
 | 
				
			||||||
 | 
					README
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					    to --condition AX_USE_LIBTOOL debian/${PACKAGE_NAME}.install <<EOF
 | 
				
			||||||
 | 
					usr/lib/lib*.so.*
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					    to --condition AX_USE_LIBTOOL debian/${PACKAGE_NAME}-dev.install <<EOF
 | 
				
			||||||
 | 
					usr/include/*
 | 
				
			||||||
 | 
					usr/lib/lib*.a
 | 
				
			||||||
 | 
					usr/lib/lib*.so
 | 
				
			||||||
 | 
					usr/lib/pkgconfig/*
 | 
				
			||||||
 | 
					usr/lib/*.la
 | 
				
			||||||
 | 
					usr/share/doc/${PACKAGE_NAME}/html
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					    to --mode "u=rwx,g=rwx,o=rx" debian/rules <<EOF
 | 
				
			||||||
 | 
					${HEADER}%:
 | 
				
			||||||
 | 
						dh \$@
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					    echo 7 | to debian/compat
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					SUBDIRS=""
 | 
				
			||||||
 | 
					for d in src test scripts doc examples; do
 | 
				
			||||||
 | 
					    test -d $d && SUBDIRS="${SUBDIRS} $d"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					to makefile.am<<EOF
 | 
				
			||||||
 | 
					${HEADER}SUBDIRS =${SUBDIRS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MAINTAINERCLEANFILES = makefile.in
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					to --condition AX_USE_LIBTOOL src/${PACKAGE_NAME}.pc.in <<EOF
 | 
				
			||||||
 | 
					${HEADER}prefix=@prefix@
 | 
				
			||||||
 | 
					exec_prefix=@exec_prefix@
 | 
				
			||||||
 | 
					libdir=\${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=\${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: @PACKAGE_NAME@
 | 
				
			||||||
 | 
					Description: @DESCRIPTION@
 | 
				
			||||||
 | 
					Version: @VERSION@
 | 
				
			||||||
 | 
					Libs: -L\${libdir} -l@PACKAGE_NAME@ @LDFLAGS@
 | 
				
			||||||
 | 
					Cflags: -I\${includedir} @CPPFLAGS@
 | 
				
			||||||
 | 
					Requires: @PKG_REQUIREMENTS@
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Cleanup If Makefile Exists ####
 | 
				
			||||||
 | 
					if test -f makefile; then
 | 
				
			||||||
 | 
					    run --no-check make distclean
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Bootstrap Before Configure ####
 | 
				
			||||||
 | 
					run aclocal
 | 
				
			||||||
 | 
					run libtoolize --force
 | 
				
			||||||
 | 
					run automake -a
 | 
				
			||||||
 | 
					run autoconf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Run Configure If User Requires ####
 | 
				
			||||||
 | 
					if test "$configure" -eq 1; then
 | 
				
			||||||
 | 
					    ./configure $*
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Run Make If User Requires ####
 | 
				
			||||||
 | 
					if test "$build" -eq 1; then
 | 
				
			||||||
 | 
					    make
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -82,7 +82,7 @@ namespace mrw {
 | 
				
			|||||||
      typedef mrw::AutoResource<bfd*, int(*)(bfd*), &bfd_close, int> AutoBfd;
 | 
					      typedef mrw::AutoResource<bfd*, int(*)(bfd*), &bfd_close, int> AutoBfd;
 | 
				
			||||||
      template<class T> class Auto {
 | 
					      template<class T> class Auto {
 | 
				
			||||||
        public:
 | 
					        public:
 | 
				
			||||||
          typedef mrw::AutoResource<T, void(*)(void*), &free, T, (T)0> Free;
 | 
					          typedef mrw::AutoResource<T, void(*)(void*), &free, T, T(0)> Free;
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      @endcode
 | 
					      @endcode
 | 
				
			||||||
      @param RESOURCE_TYPE type of the resource to manage
 | 
					      @param RESOURCE_TYPE type of the resource to manage
 | 
				
			||||||
@@ -97,7 +97,7 @@ namespace mrw {
 | 
				
			|||||||
           typename FUNCTION_PTR,
 | 
					           typename FUNCTION_PTR,
 | 
				
			||||||
           FUNCTION_PTR FREE_FUNCTION,
 | 
					           FUNCTION_PTR FREE_FUNCTION,
 | 
				
			||||||
           typename INITIAL_VALUE_TYPE = RESOURCE_TYPE,
 | 
					           typename INITIAL_VALUE_TYPE = RESOURCE_TYPE,
 | 
				
			||||||
           INITIAL_VALUE_TYPE INITIAL_VALUE = (INITIAL_VALUE_TYPE)0,
 | 
					      INITIAL_VALUE_TYPE INITIAL_VALUE = INITIAL_VALUE_TYPE(0),
 | 
				
			||||||
           typename FREE_TYPE = RESOURCE_TYPE>
 | 
					           typename FREE_TYPE = RESOURCE_TYPE>
 | 
				
			||||||
  class AutoResource {
 | 
					  class AutoResource {
 | 
				
			||||||
    public:
 | 
					    public:
 | 
				
			||||||
@@ -436,7 +436,7 @@ namespace mrw {
 | 
				
			|||||||
  */
 | 
					  */
 | 
				
			||||||
  template<class T> class Auto {
 | 
					  template<class T> class Auto {
 | 
				
			||||||
  public:
 | 
					  public:
 | 
				
			||||||
    typedef mrw::AutoResource<T, void(*)(void*), &free, T, (T)0, void*> Free;
 | 
					      typedef mrw::AutoResource<T, void(*)(void*), &free, T, T(0), void*> Free;
 | 
				
			||||||
  private:
 | 
					  private:
 | 
				
			||||||
    /** @internal
 | 
					    /** @internal
 | 
				
			||||||
        work around compiler warning:
 | 
					        work around compiler warning:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,7 +32,7 @@
 | 
				
			|||||||
#        else
 | 
					#        else
 | 
				
			||||||
           // __cplusplus==1 is a known bug in gcc 4.6.3
 | 
					           // __cplusplus==1 is a known bug in gcc 4.6.3
 | 
				
			||||||
#          warning your compiler has a know bug, please upgrade to gcc >= 4.7
 | 
					#          warning your compiler has a know bug, please upgrade to gcc >= 4.7
 | 
				
			||||||
#          warning see __cplusplus in http://gcc.gnu.org/gcc-4.7/changes.html
 | 
					#          warning "see __cplusplus in http://gcc.gnu.org/gcc-4.7/changes.html"
 | 
				
			||||||
#      endif
 | 
					#      endif
 | 
				
			||||||
#    else
 | 
					#    else
 | 
				
			||||||
       /// Code is compiled with an old non C++11 standard compliant compiler
 | 
					       /// Code is compiled with an old non C++11 standard compliant compiler
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user