build should work now

master
Marc Wäckerlin 10 years ago
parent e4e2595654
commit 51b258cb7a
  1. 31
      ChangeLog
  2. 80
      ax_check_qt.m4
  3. 187
      ax_init_standard_project.m4
  4. 450
      bootstrap.sh
  5. 23
      configure.ac
  6. 1
      debian/control.in
  7. 2
      debian/rules
  8. 2
      debian/swisssurfer.install
  9. 94
      doc/doxyfile.in
  10. 4
      doc/makefile.am
  11. 0
      examples/filewatch.cxx
  12. 0
      examples/filewatch.hxx
  13. 10
      examples/makefile.am
  14. 6
      makefile.am
  15. 3
      src/makefile.am
  16. 2
      src/swisssurfer.pc.in
  17. 40
      src/version.cxx
  18. 16
      src/version.cxx.in
  19. 33
      src/version.hxx
  20. 9
      test/makefile.am
  21. 17
      test/qmake.pro.in

@ -1,3 +1,34 @@
2015-03-15 22:59 marc
* configure.ac: compatibility with more distributions
2015-03-15 22:51 marc
* configure.ac, src/qbrowserlib/downloadmanager.hxx: compatibility
with more distributions
2015-03-15 22:05 marc
* ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4,
ax_init_standard_project.m4, bootstrap.sh,
debian/swisssurfer-dev.install, debian/swisssurfer.install: build
fixed - missing resources, translations, test, examples
2015-03-15 21:58 marc
* debian/swisssurfer-dev.install, debian/swisssurfer.install: build
fixed - missing resources, translations, test, examples
2015-03-15 21:58 marc
* ChangeLog, ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4,
ax_init_standard_project.m4, bootstrap.sh, doc/doxyfile.in,
doc/makefile.am, src/designer/buttonlineeditwidgetifc.json,
src/designer/makefile.am, src/designer/webviewwidgetifc.json,
src/designer/webwidgetifc.json, src/makefile.am,
src/qbrowserlib/makefile.am: build fixed - missing resources,
translations, test, examples
2015-03-15 20:55 marc 2015-03-15 20:55 marc
* README, ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4, * README, ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4,

@ -1,6 +1,10 @@
# SYNOPSIS # SYNOPSIS
# #
# AX_CXX_CHECK_QT([qt_prefix], [list-of-qt-modules]) # 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 # DESCRIPTIONS
# #
@ -25,6 +29,13 @@
# feature. Each entry in the list can have a version comparison # feature. Each entry in the list can have a version comparison
# specifier, with the same syntax as the Requires keyword in the # specifier, with the same syntax as the Requires keyword in the
# data files themselves. # 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], [ AC_DEFUN([AX_CXX_QT_TOOL], [
if test -z "$HAVE_$1"; then if test -z "$HAVE_$1"; then
@ -93,12 +104,24 @@ AC_DEFUN([AX_CHECK_QT], [
MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}" MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}"
AM_CXXFLAGS+=" ${[$1]5_CFLAGS}" AM_CXXFLAGS+=" ${[$1]5_CFLAGS}"
LIBS+=" ${[$1]5_LIBS}" LIBS+=" ${[$1]5_LIBS}"
modules=${qt_modules//Qt/Qt5}
if test -z "$PKG_REQUIREMENTS"; then
PKG_REQUIREMENTS="${modules// /, }"
else
PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }"
fi
if test -n "${qt_modules_optional}"; then if test -n "${qt_modules_optional}"; then
PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [ PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [
AM_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" AM_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
AM_CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" AM_CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
LIBS+=" ${[$1]5_OPTIONAL_LIBS}" LIBS+=" ${[$1]5_OPTIONAL_LIBS}"
modules=${qt_modules_optional//Qt/Qt5}
if test -z "$PKG_REQUIREMENTS"; then
PKG_REQUIREMENTS="${modules// /, }"
else
PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }"
fi
], [ ], [
AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}]) AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}])
]) ])
@ -111,12 +134,24 @@ AC_DEFUN([AX_CHECK_QT], [
MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}" MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}"
AM_CXXFLAGS+=" ${$1_CFLAGS}" AM_CXXFLAGS+=" ${$1_CFLAGS}"
LIBS+=" ${$1_LIBS}" LIBS+=" ${$1_LIBS}"
modules=${qt_modules}
if test -z "$PKG_REQUIREMENTS"; then
PKG_REQUIREMENTS="${modules// /, }"
else
PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }"
fi
if test -n "$3"; then if test -n "$3"; then
PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [ PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [
AM_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}" AM_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}" MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}"
AM_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}" AM_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
LIBS+=" ${$1_OPTIONAL_LIBS}" LIBS+=" ${$1_OPTIONAL_LIBS}"
modules=${qt_modules_optional}
if test -z "$PKG_REQUIREMENTS"; then
PKG_REQUIREMENTS="${modules// /, }"
else
PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }"
fi
], [ ], [
AC_MSG_NOTICE([Not found: ${qt_modules_optional}]) AC_MSG_NOTICE([Not found: ${qt_modules_optional}])
]) ])
@ -128,6 +163,7 @@ AC_DEFUN([AX_CHECK_QT], [
AC_SUBST(AM_CPPFLAGS) AC_SUBST(AM_CPPFLAGS)
AC_SUBST(MOC_FLAGS) AC_SUBST(MOC_FLAGS)
AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
AX_ADDITIONAL_QT_RULES_HACK=' AX_ADDITIONAL_QT_RULES_HACK='
ui_%.hxx: %.ui ui_%.hxx: %.ui
$(UIC) -o [$][@] $< $(UIC) -o [$][@] $<
@ -140,9 +176,51 @@ qrc_%.cxx: %.qrc
AC_SUBST(AX_ADDITIONAL_QT_RULES_HACK) 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], [ AC_DEFUN([AX_REQUIRE_QT], [
AX_CHECK_QT([$1], [$2], [$3]) AX_CHECK_QT([$1], [$2], [$3])
if ! test "$HAVE_$1" -eq 1; then if ! test "$HAVE_$1" -eq 1; then
AC_MSG_ERROR([Required Qt modules not found: $2]) AC_MSG_ERROR([Required Qt modules not found: $2])
fi fi
]) ])
# Omit Qt Keywords
# AX_QT_NO_KEYWORDS
AC_DEFUN([AX_QT_NO_KEYWORDS], [
AM_CPPFLAGS+=" -DQT_NO_KEYWORDS"
])

@ -3,17 +3,41 @@
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890 ## 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( m4_define(x_least, m4_esyscmd_s(
LEAST="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout" SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout"
for path in . .. ../..; do for path in . .. ../..; do
if svn info $path 2>&1 > /dev/null; then if svn info $path 2>&1 > /dev/null; then
LEAST=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') SVN_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p')
(cd $path && svn2cl) (cd $path && svn2cl)
break; break;
fi fi
done done
echo -n $LEAST # 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( m4_define(x_bugreport, m4_esyscmd_s(
head -1 AUTHORS | \ head -1 AUTHORS | \
sed -n 's,.*<\([-_.a-z0-9A-Z]*@[-_.a-z0-9A-Z]*\)>.*,\1,gp' sed -n 's,.*<\([-_.a-z0-9A-Z]*@[-_.a-z0-9A-Z]*\)>.*,\1,gp'
@ -37,6 +61,11 @@ dnl refers to ${prefix}. Thus we have to use `eval' twice.
test "$exec_prefix_NONE" && exec_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], [ AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [
sh_add_makefile_target_dep() { sh_add_makefile_target_dep() {
sed -i ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${srcdir}/${3}" sed -i ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${srcdir}/${3}"
@ -50,15 +79,36 @@ AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [
fi fi
]) ])
# Same as AC_SUBST, but adds -Dname="value" option to CPPFLAGS
# - parameters:
# $1 = variable name
AC_DEFUN([AX_SUBST], [ AC_DEFUN([AX_SUBST], [
AC_SUBST([$1]) AC_SUBST([$1])
tmp_var="${$1//$'\n'/\n}" tmp_var=$(echo "${$1}" | awk 1 ORS='\\n')
AM_CPPFLAGS+=' -D$1='"'${tmp_var//#/\\#}'" tmp_var=${tmp_var//\"/\\\"}
tmp_var=${tmp_var//\'/\'\"\'\"\'}
tmp_var=${tmp_var//#/\\#}
AM_CPPFLAGS+=" '-D$1=\"${tmp_var}\"'"
AC_SUBST(AM_CPPFLAGS) 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], [ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X'" AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_NAME}'"
AX_SUBST(NUMBERS) AX_SUBST(NUMBERS)
AX_SUBST(HOME) AX_SUBST(HOME)
README=$(tail -n +3 README) README=$(tail -n +3 README)
@ -74,7 +124,7 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
AX_SUBST(DISTRO) AX_SUBST(DISTRO)
BUILD_NUMBER=${BUILD_NUMBER:-1} BUILD_NUMBER=${BUILD_NUMBER:-1}
AX_SUBST(BUILD_NUMBER) AX_SUBST(BUILD_NUMBER)
BUILD_DATE=$(date -R) BUILD_DATE=$(LANG= date +"%a, %d %B %Y %H:%M:%S %z")
AX_SUBST(BUILD_DATE) AX_SUBST(BUILD_DATE)
if test -f "${PROJECT_NAME}-logo.png"; then if test -f "${PROJECT_NAME}-logo.png"; then
PROJECT_LOGO="${PROJECT_NAME}-logo.png" PROJECT_LOGO="${PROJECT_NAME}-logo.png"
@ -91,7 +141,7 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
test -f makefile.in && cat >> makefile.in <<EOF test -f makefile.in && cat >> makefile.in <<EOF
#### Begin: Appended by $0 #### Begin: Appended by $0
EXTRA_DIST = bootstrap.sh EXTRA_DIST = bootstrap.sh
doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog @PACKAGE_NAME@.spec doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog
clean-standard-project-targets: clean-standard-project-targets:
-rm -rf \${PACKAGE_NAME}-\${PACKAGE_VERSION} -rm -rf \${PACKAGE_NAME}-\${PACKAGE_VERSION}
-rm \${PACKAGE_TARNAME}-\${PACKAGE_VERSION}.tar.gz -rm \${PACKAGE_TARNAME}-\${PACKAGE_VERSION}.tar.gz
@ -104,6 +154,7 @@ maintainer-clean-standard-project-targets:
EOF EOF
]) ])
# use this in configure.ac to support C++
AC_DEFUN([AX_USE_CXX], [ AC_DEFUN([AX_USE_CXX], [
m4_include(ax_cxx_compile_stdcxx_11.m4) m4_include(ax_cxx_compile_stdcxx_11.m4)
AC_LANG(C++) AC_LANG(C++)
@ -158,6 +209,7 @@ maintainer-clean-cxx-targets:
EOF EOF
]) ])
# use this in configure.ac to support CppUnit for C++ unit tests
AC_DEFUN([AX_USE_CPPUNIT], [ AC_DEFUN([AX_USE_CPPUNIT], [
AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"]) AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"])
# infos and warnings # infos and warnings
@ -175,6 +227,7 @@ maintainer-clean-test-targets:
EOF EOF
]) ])
# use this in configure.ac to support C++ examples
AC_DEFUN([AX_BUILD_EXAMPLES], [ AC_DEFUN([AX_BUILD_EXAMPLES], [
AC_CONFIG_FILES([examples/makefile]) AC_CONFIG_FILES([examples/makefile])
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-example-targets], [examples/makefile.in]) AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-example-targets], [examples/makefile.in])
@ -186,11 +239,12 @@ maintainer-clean-example-targets:
EOF EOF
]) ])
# use this in configure.ac to support C++ libraries
AC_DEFUN([AX_USE_LIBTOOL], [ AC_DEFUN([AX_USE_LIBTOOL], [
# libtool versioning # libtool versioning
LIB_MAJOR=m4_eval(x_major+x_minor) LIB_MAJOR=m4_eval(x_major+x_minor)
LIB_MINOR=x_least LIB_MINOR=x_least
LIB_LEAST=x_minor LIB_LEAST=x_minor_fixed
LIB_VERSION="${LIB_MAJOR}:${LIB_MINOR}:${LIB_LEAST}" LIB_VERSION="${LIB_MAJOR}:${LIB_MINOR}:${LIB_LEAST}"
AM_LDFLAGS="-version-info ${LIB_VERSION}" AM_LDFLAGS="-version-info ${LIB_VERSION}"
AC_SUBST(AM_LDFLAGS) AC_SUBST(AM_LDFLAGS)
@ -213,6 +267,7 @@ uninstall-data-libtool-pkg:
EOF EOF
]) ])
# use this in configure.ac to support debian packages
AC_DEFUN([AX_USE_DEBIAN_PACKAGING], [ AC_DEFUN([AX_USE_DEBIAN_PACKAGING], [
README_DEB=$(tail -n +3 README | sed -e 's/^$/./g' -e 's/^/ /g') README_DEB=$(tail -n +3 README | sed -e 's/^$/./g' -e 's/^/ /g')
AC_SUBST(README_DEB) AC_SUBST(README_DEB)
@ -233,6 +288,7 @@ distclean-debian-targets:
EOF EOF
]) ])
# use this in configure.ac to support RPM packages
AC_DEFUN([AX_USE_RPM_PACKAGING], [ AC_DEFUN([AX_USE_RPM_PACKAGING], [
# m4_include(ax_rpm_rules.m4) # m4_include(ax_rpm_rules.m4)
AC_CONFIG_FILES([${PACKAGE_NAME}.spec]) AC_CONFIG_FILES([${PACKAGE_NAME}.spec])
@ -246,6 +302,12 @@ rpm: dist
EOF 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_DEFUN([AX_USE_DOXYGEN], [
AC_CHECK_PROG(have_doxygen, doxygen, yes, no) AC_CHECK_PROG(have_doxygen, doxygen, yes, no)
AC_CHECK_PROG(have_dot, dot, yes, no) AC_CHECK_PROG(have_dot, dot, yes, no)
@ -296,19 +358,116 @@ uninstall-documentation:
EOF 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], [ AC_DEFUN([AX_PKG_REQUIRE], [
PKG_PROG_PKG_CONFIG PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([$1], [$1], [ PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
if test -n "$3"; then
$1_found=0;
for p in ${$1_CFLAGS}; do
if test -e ${p#-I}/$3; then
$1_found=1
break
fi
done
if test ${$1_found} -eq 0; then
for p in /usr/include ${$1_CFLAGS}; do
$1_file=$(find ${p#-I} -name $3)
if test -e "${$1_file}"; then
AC_MSG_NOTICE([Header file $3 found in sub path as ${$1_file}])
$1_CFLAGS="${$1_CFLAGS} -I${$1_file%/$3}"
$1_found=1
break
fi
done
fi
if test ${$1_found} -eq 0; then
AC_MSG_WARN([Header file $3 not found in $1_CFLAGS = ${$1_CFLAGS}])
fi
fi
AM_CPPFLAGS+=" ${$1_CFLAGS}" AM_CPPFLAGS+=" ${$1_CFLAGS}"
AM_CXXFLAGS+=" ${$1_CFLAGS}" AM_CXXFLAGS+=" ${$1_CFLAGS}"
LIBS+=" ${$1_LIBS}" 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
], [ ], [
AC_MSG_ERROR([Required package $1 not found]) AC_MSG_WARN([Recommended package m4_default([$2], [$1]) for feature $1 not installed])
if test -n "$4"; then
for pkg in $4; do
PKG_CHECK_MODULES([$1], [$pkg], [
if test -n "$3"; then
$1_found=0;
for p in ${$1_CFLAGS}; do
if test -e ${p#-I}/$3; then
$1_found=1
break
fi
done
if test ${$1_found} -eq 0; then
for p in /usr/include ${$1_CFLAGS}; do
$1_file=$(find ${p#-I} -name $3)
if test -e ${$1_file}; then
AC_MSG_NOTICE([Header file $3 found in sub path as ${$1_file}])
$1_CFLAGS="${$1_CFLAGS} -I${$1_file%/$3}"
$1_found=1
break
fi
done
fi
if test ${$1_found} -eq 0; then
AC_MSG_WARN([Header file $3 not found in $1_CFLAGS = ${$1_CFLAGS}])
fi
fi
AM_CPPFLAGS+=" ${$1_CFLAGS}"
AM_CXXFLAGS+=" ${$1_CFLAGS}"
LIBS+=" ${$1_LIBS}"
if test -z "$PKG_REQUIREMENTS"; then
PKG_REQUIREMENTS="$pkg"
else
PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, $pkg"
fi
], [
AC_MSG_WARN([Recommended package $pkg for feature $1 not installed])
])
done
fi
]) ])
AC_SUBST(AM_CPPFLAGS) AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
if test -n "$3"; then
old_CPPFLAGS=${CPPFLAGS}
CPPFLAGS=" ${$1_CFLAGS} ${CPPFLAGS}"
AC_CHECK_HEADER([$3], [
], [
AC_MSG_ERROR([Required header $3 for feature $1 not found])
])
CPPFLAGS=${old_CPPFLAGS}
fi
]) ])
# 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], [ AC_DEFUN([AX_PKG_CHECK], [
PKG_PROG_PKG_CONFIG PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [ PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
@ -316,6 +475,11 @@ AC_DEFUN([AX_PKG_CHECK], [
AM_CPPFLAGS+=" ${$1_CFLAGS}" AM_CPPFLAGS+=" ${$1_CFLAGS}"
AM_CXXFLAGS+=" ${$1_CFLAGS}" AM_CXXFLAGS+=" ${$1_CFLAGS}"
LIBS+=" ${$1_LIBS}" 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 HAVE_$1=0
]) ])
@ -323,4 +487,5 @@ AC_DEFUN([AX_PKG_CHECK], [
AC_SUBST(HAVE_$1) AC_SUBST(HAVE_$1)
AC_SUBST(AM_CPPFLAGS) AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_CXXFLAGS) AC_SUBST(AM_CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
]) ])

@ -14,23 +14,218 @@
## added file header ## added file header
## ##
MY_NAME=${0##*/}
PROJECT_PATH=$(pwd)
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
configure=0 configure=0
build=0
overwrite=0
rebuild=0
rebuildfiles=()
while test $# -gt 0; do while test $# -gt 0; do
case "$1" in case "$1" in
(--configure|-c) configure=1;; (--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;; (*) break;;
esac esac
shift; shift;
done done
MY_NAME=${0##*/} HEADER='## @id '"\$Id\$"'
PROJECT_PATH=$(pwd)
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
HEADER='## @id $Id$
# #
# This file has been added by '${MY_NAME}' on '$(date -R)' # 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 # Feel free to change it or even remove and rebuild it, up to your needs
# #
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8
@ -38,6 +233,10 @@ HEADER='## @id $Id$
' '
notice() {
echo -e "\e[1;33m$*\e[0m"
}
run() { run() {
check=1 check=1
while test $# -gt 0; do while test $# -gt 0; do
@ -70,6 +269,12 @@ testtag() {
egrep -q '^ *'"$1" configure.ac egrep -q '^ *'"$1" configure.ac
} }
contains() {
local e
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
checkdir() { checkdir() {
if ! test -d "$1"; then # create path if ! test -d "$1"; then # create path
run mkdir -p "$1" run mkdir -p "$1"
@ -77,19 +282,32 @@ checkdir() {
fi fi
} }
checkfile() {
exists=0
if test -f "$1"; then
exists=1
fi
test $exists -eq 1
}
to() { to() {
while test $# -gt 0; do while test $# -gt 0; do
mode="u=rw,g=rw,o=r"
case "$1" in case "$1" in
(--condition) shift # test for a tag, abort if not set (--condition) shift # test for a tag, abort if not set
if ! testtag "$1" configure.ac; then if ! testtag "$1" configure.ac; then
return return
fi;; fi;;
(--mode) shift # test for a tag, abort if not set
mode="$1";;
(*) break;; (*) break;;
esac esac
shift; shift;
done done
if test -f "$1"; then # file already exists if checkfile "$1" && test $rebuild -eq 0 \
return && ! contains "$1" "${rebuildfiles[@]}"; then
# file already exists and must not be rebuilt
return 1
fi fi
checkdir "$(dirname ${1})" checkdir "$(dirname ${1})"
echo -en "\e[1m-> generating:\e[0m $1 ..." echo -en "\e[1m-> generating:\e[0m $1 ..."
@ -105,13 +323,22 @@ to() {
else else
echo -e " \e[32msuccess\e[0m" echo -e " \e[32msuccess\e[0m"
fi fi
run svn add "$1" chmod $mode $1
run svn propset svn:keywords "Id" "$1" if test $exists -eq 0; then
run svn add "$1"
run svn propset svn:keywords "Id" "$1"
fi
return 0
} }
copy() { copy() {
if ! test -f "$1"; then if checkfile "$1" && test $overwrite -eq 0 \
run cp "${0%/*}/$1" "$1" && ! 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 add "$1"
run svn propset svn:keywords "Id" "$1" run svn propset svn:keywords "Id" "$1"
fi fi
@ -119,11 +346,22 @@ copy() {
doxyreplace() { doxyreplace() {
echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..." echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..."
if sed -i 's|\(^'"$1"' *=\) *|\1'" $2"'|g' doc/doxyfile.in; then if sed -i 's|\(^'"$1"' *=\) *.*|\1'" $2"'|g' doc/doxyfile.in; then
echo -e " \e[32msuccess\e[0m" echo -e " \e[32msuccess\e[0m"
else else
echo -e " \e[31merror\e[0m" echo -e " \e[31merror\e[0m"
echo -e "\e[1m**** command: sed -i 's|\(^'"$1"' *=\) *|\1'" $2"'|g' doc/doxyfile.in;\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 exit 1
fi fi
} }
@ -133,49 +371,143 @@ copy ${MY_NAME}
copy ax_init_standard_project.m4 copy ax_init_standard_project.m4
copy ax_cxx_compile_stdcxx_11.m4 copy ax_cxx_compile_stdcxx_11.m4
copy ax_check_qt.m4 copy ax_check_qt.m4
copy AUTHORS AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1)
if ! test -f configure.ac; then if test -z "${AUTHOR}"; then
to configure.ac <<EOF AUTHOR="FIRSTNAME LASTNAME (URL) <EMAIL>"
fi
to AUTHORS <<EOF && notice "please edit AUTHORS"
$AUTHOR
EOF
to configure.ac <<EOF && \
( notice "please edit configure.ac, then rerun $0"; exit 0 )
${HEADER}m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name ${HEADER}m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name
m4_define(x_major, 0) # project's major version m4_define(x_major, 0) # project's major version
m4_define(x_minor, 0) # project's minor version m4_define(x_minor, 0) # project's minor version
m4_include(ax_init_standard_project.m4) m4_include(ax_init_standard_project.m4)
AC_INIT(x_package_name, x_major.x_minor.x_least, x_bugreport, x_package_name) AC_INIT(x_package_name, x_version, x_package_name)
AM_INIT_AUTOMAKE([1.9 tar-pax]) AM_INIT_AUTOMAKE([1.9 tar-pax])
AX_INIT_STANDARD_PROJECT AX_INIT_STANDARD_PROJECT
# requirements, uncomment, what you need: # requirements, uncomment, what you need:
#AX_USE_CXX #AX_USE_CXX
#AX_USE_LIBTOOL #AX_USE_LIBTOOL
#AX_USE_SCRIPTS
#AX_USE_DOXYGEN #AX_USE_DOXYGEN
#AX_USE_DEBIAN_PACKAGING #AX_USE_DEBIAN_PACKAGING
#AX_USE_RPM_PACKAGING #AX_USE_RPM_PACKAGING
#AX_USE_CPPUNIT #AX_USE_CPPUNIT
#AX_BUILD_EXAMPLES #AX_BUILD_EXAMPLES
# qt features, uncomment, what you need:
#AX_CHECK_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets])
#AX_QT_NO_KEYWORDS
# create output # create output
AC_OUTPUT AC_OUTPUT
EOF EOF
echo "please edit configure.ac, then rerun $0"
exit 0
fi
PACKAGE_NAME=$(sed -n 's/.*m4_define *( *x_package_name *, *\([^ ]*\) *).*/\1/p' configure.ac) PACKAGE_NAME=$(sed -n 's/.*m4_define *( *x_package_name *, *\([^ ]*\) *).*/\1/p' configure.ac)
echo "${HEADER}" | to --condition AX_USE_CXX src/makefile.am echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_CXX src/makefile.am
echo "${HEADER}" | to --condition AX_USE_DOXYGEN doc/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 to --condition AX_USE_CPPUNIT test/makefile.am <<EOF
${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src ${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src
AM_LDFLAGS = -L${top_builddir}/src/.libs AM_LDFLAGS = -L${top_builddir}/src/.libs
LDADD = -l${PACKAGE_NAME} LDADD = -l${PACKAGE_NAME}
MAINTAINERCLEANFILES = makefile.in
EOF EOF
to --condition AX_BUILD_EXAMPLES examples/makefile.am <<EOF to --condition AX_BUILD_EXAMPLES examples/makefile.am <<EOF
${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src ${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src
AM_LDFLAGS = -L${top_builddir}/src/.libs AM_LDFLAGS = -L${top_builddir}/src/.libs
LDADD = -l${PACKAGE_NAME} LDADD = -l${PACKAGE_NAME}
MAINTAINERCLEANFILES = makefile.in
EOF EOF
if testtag AX_USE_DOXYGEN && ! test -f doc/doxyfile.in; then if testtag AX_USE_DOXYGEN && \
( ! checkfile doc/doxyfile.in || \
contains doc/doxyfile.in "${rebuildfiles[@]}" ); then
run doxygen -g doc/doxyfile.in run doxygen -g doc/doxyfile.in
run svn add doc/doxyfile.in if test $exists -eq 0; then
run svn propset svn:keywords "Id" doc/doxyfile.in run svn add doc/doxyfile.in
run svn propset svn:keywords "Id" doc/doxyfile.in
fi
doxyreplace PROJECT_NAME "@PACKAGE_NAME@" doxyreplace PROJECT_NAME "@PACKAGE_NAME@"
doxyreplace PROJECT_NUMBER "@PACKAGE_VERSION@" doxyreplace PROJECT_NUMBER "@PACKAGE_VERSION@"
doxyreplace PROJECT_BRIEF "@DESCRIPTION@" doxyreplace PROJECT_BRIEF "@DESCRIPTION@"
@ -183,27 +515,47 @@ if testtag AX_USE_DOXYGEN && ! test -f doc/doxyfile.in; then
doxyreplace INLINE_INHERITED_MEMB YES doxyreplace INLINE_INHERITED_MEMB YES
doxyreplace MULTILINE_CPP_IS_BRIEF YES doxyreplace MULTILINE_CPP_IS_BRIEF YES
doxyreplace TAB_SIZE 2 doxyreplace TAB_SIZE 2
doxyreplace ALIASES '"id=\par File-ID\n" "copy=\par Copyright\n" "license=\par License\n" "classmutex=\par Reentrant:\nAccess is locked with class static mutex @c " "instancemutex=\par Reentrant:\nAccess is locked with per instance mutex @c " "mutex=\par Reentrant:\nAccess is locked with mutex @c "' 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 BUILTIN_STL_SUPPORT YES
doxyreplace DISTRIBUTE_GROUP_DOC YES doxyreplace DISTRIBUTE_GROUP_DOC YES
doxyreplace EXTRACT_ALL YES doxyreplace EXTRACT_ALL YES
doxyreplace EXTRACT_PACKAGE YES
doxyreplace EXTRACT_PRIVATE YES doxyreplace EXTRACT_PRIVATE YES
doxyreplace EXTRACT_STATIC YES doxyreplace EXTRACT_STATIC YES
doxyreplace EXTRACT_LOCAL_CLASSES YES doxyreplace EXTRACT_LOCAL_CLASSES YES
doxyreplace EXTRACT_LOCAL_METHODS YES doxyreplace EXTRACT_LOCAL_METHODS YES
doxyreplace EXTRACT_ANON_NSPACES YES doxyreplace EXTRACT_ANON_NSPACES YES
doxyreplace SHOW_GROUPED_MEMB_INC YES
doxyreplace SORT_MEMBERS_CTORS_1ST YES doxyreplace SORT_MEMBERS_CTORS_1ST YES
doxyreplace WARN_IF_UNDOCUMENTED NO doxyreplace WARN_IF_UNDOCUMENTED NO
doxyreplace WARN_LOGFILE doxygen.errors doxyreplace WARN_LOGFILE doxygen.errors
doxyreplace INPUT "@top_srcdir@/src" 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 RECURSIVE YES
doxyreplace EXCLUDE_PATTERNS "moc_* uic_* qrc_*" doxyreplace EXCLUDE_PATTERNS "moc_* uic_* qrc_*"
if testtag AX_BUILD_EXAMPLES; then if testtag AX_BUILD_EXAMPLES; then
doxyreplace EXAMPLE_PATH @top_srcdir@/examples doxyreplace EXAMPLE_PATH @top_srcdir@/examples
fi fi
doxyreplace EXAMPLE_RECURSIVE YES doxyreplace EXAMPLE_RECURSIVE YES
doxyreplace FILTER_PATTERNS '*.wt=doxygen-webtester.sed'
doxyreplace SOURCE_BROWSER YES doxyreplace SOURCE_BROWSER YES
doxyreplace INLINE_SOURCES YES doxyreplace INLINE_SOURCES YES
doxyreplace GENERATE_TESTLIST YES
doxyreplace GENERATE_TREEVIEW NO doxyreplace GENERATE_TREEVIEW NO
doxyreplace SEARCHENGINE YES doxyreplace SEARCHENGINE YES
doxyreplace GENERATE_HTML YES doxyreplace GENERATE_HTML YES
@ -237,8 +589,7 @@ 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) 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@ Package: @PACKAGE_NAME@
$(if testtag AX_USE_LIBTOOL; then echo "Section: libs"; fi) $(if testtag AX_USE_LIBTOOL; then echo "Section: libs"; fi)Architecture: any
Architecture: any
Depends: \${shlibs:Depends}, \${misc:Depends} Depends: \${shlibs:Depends}, \${misc:Depends}
Description: @DESCRIPTION@ Description: @DESCRIPTION@
@README_DEB@ @README_DEB@
@ -258,41 +609,32 @@ EOF
NEWS NEWS
README README
EOF EOF
to debian/${PACKAGE_NAME}.install <<EOF to --condition AX_USE_LIBTOOL debian/${PACKAGE_NAME}.install <<EOF
usr/bin/*
usr/lib/lib*.so.* usr/lib/lib*.so.*
$(if ! testtag AX_USE_LIBTOOL; then echo "usr/share/doc/${PACKAGE_NAME}/html"; fi)
EOF
to debian/${PACKAGE_NAME}.dirs <<EOF
usr/lib
EOF EOF
if testtag AX_USE_LIBTOOL; then to --condition AX_USE_LIBTOOL debian/${PACKAGE_NAME}-dev.install <<EOF
to debian/${PACKAGE_NAME}-dev.install <<EOF
usr/include/* usr/include/*
usr/lib/lib*.a usr/lib/lib*.a
usr/lib/lib*.so usr/lib/lib*.so
usr/lib/pkgconfig/* usr/lib/pkgconfig/*
usr/lib/*.la usr/lib/*.la
$(if testtag AX_USE_LIBTOOL; then echo "usr/share/doc/${PACKAGE_NAME}/html"; fi) usr/share/doc/${PACKAGE_NAME}/html
EOF
to debian/${PACKAGE_NAME}-dev.dirs <<EOF
usr/lib
usr/include
EOF EOF
fi to --mode "u=rwx,g=rwx,o=rx" debian/rules <<EOF
to debian/rules <<EOF
${HEADER}%: ${HEADER}%:
dh \$@ dh \$@
EOF EOF
echo 7 | to debian/compat echo 7 | to debian/compat
fi fi
if ! test -f makefile.am; then SUBDIRS=""
SUBDIRS="" for d in src test scripts doc examples; do
for d in src test doc examples; do test -d $d && SUBDIRS="${SUBDIRS} $d"
test -d $d && SUBDIRS="${SUBDIRS} $d" done
done to makefile.am<<EOF
echo "${HEADER}SUBDIRS =${SUBDIRS}" | to makefile.am ${HEADER}SUBDIRS =${SUBDIRS}
fi
MAINTAINERCLEANFILES = makefile.in
EOF
to --condition AX_USE_LIBTOOL src/${PACKAGE_NAME}.pc.in <<EOF to --condition AX_USE_LIBTOOL src/${PACKAGE_NAME}.pc.in <<EOF
${HEADER}prefix=@prefix@ ${HEADER}prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
@ -304,6 +646,7 @@ Description: @DESCRIPTION@
Version: @VERSION@ Version: @VERSION@
Libs: -L\${libdir} -l@PACKAGE_NAME@ @LDFLAGS@ Libs: -L\${libdir} -l@PACKAGE_NAME@ @LDFLAGS@
Cflags: -I\${includedir} @CPPFLAGS@ Cflags: -I\${includedir} @CPPFLAGS@
Requires: @PKG_REQUIREMENTS@
EOF EOF
#### Cleanup If Makefile Exists #### #### Cleanup If Makefile Exists ####
@ -321,3 +664,8 @@ run autoconf
if test "$configure" -eq 1; then if test "$configure" -eq 1; then
./configure $* ./configure $*
fi fi
#### Run Make If User Requires ####
if test "$build" -eq 1; then
make
fi

@ -20,13 +20,32 @@ AX_USE_LIBTOOL
AX_USE_DOXYGEN AX_USE_DOXYGEN
AX_USE_DEBIAN_PACKAGING AX_USE_DEBIAN_PACKAGING
AX_USE_RPM_PACKAGING AX_USE_RPM_PACKAGING
AX_USE_CPPUNIT #AX_USE_CPPUNIT
AX_BUILD_EXAMPLES AX_BUILD_EXAMPLES
AX_REQUIRE_QT([QT], [QtCore QtNetwork QtWebKit QtDesigner], [QtWidgets QtWebKitWidgets QtPrintSupport]) # special optional library download
AC_ARG_ENABLE(pkcs11-download,
[AS_HELP_STRING([--enable-pkcs11-download],
[download pkcs11 header])],
[have_pedantic="$enableval"
if test "$enableval" = "yes"; then
mkdir -p usr/include
cd usr/include
for f in $(wget -q -O- ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/ 2>&1 | html2 | sed -n 's,.*/a/@href=\(.*\.h\)$,\1,gp'); do
wget --unlink $f
done
AM_CPPFLAGS+=" -I$(pwd)"
cd -
fi
])
AX_REQUIRE_QT([QT], [QtCore QtNetwork QtWebKit QtDesigner],
[QtWidgets QtWebKitWidgets QtPrintSupport])
AX_QT_NO_KEYWORDS
AX_PKG_REQUIRE([libpcscxx]) AX_PKG_REQUIRE([libpcscxx])
AX_PKG_REQUIRE([proxyface]) AX_PKG_REQUIRE([proxyface])
AX_PKG_REQUIRE([mrwcxx], [mrw-c++])
AC_CONFIG_FILES([src/qbrowserlib/makefile src/designer/makefile]) AC_CONFIG_FILES([src/qbrowserlib/makefile src/designer/makefile])

1
debian/control.in vendored

@ -1,5 +1,4 @@
Source: @PACKAGE_NAME@ Source: @PACKAGE_NAME@
Section: web
Priority: extra Priority: extra
Maintainer: @AUTHOR@ Maintainer: @AUTHOR@
Build-Depends: debhelper, pkg-config, autotools-dev, lsb-release , doxygen, graphviz, libcppunit-dev, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, libpcscxx-dev, qttools5-dev | libqt4-dev Build-Depends: debhelper, pkg-config, autotools-dev, lsb-release , doxygen, graphviz, libcppunit-dev, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, libpcscxx-dev, qttools5-dev | libqt4-dev

2
debian/rules vendored

@ -1,6 +1,6 @@
## @id $Id$ ## @id $Id$
# #
# This file has been added by bootstrap.sh on Sun, 15 Mar 2015 16:35:09 +0100 # This file has been added by bootstrap.sh on Sat, 09 May 2015 08:50:06 +0200
# Feel free to change it or even remove and rebuild it, up to your needs # Feel free to change it or even remove and rebuild it, up to your needs
# #
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8

@ -1,3 +1 @@
usr/bin/*
usr/lib/lib*.so.* usr/lib/lib*.so.*

@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places. # title of most generated pages and in a few other places.
# The default value is: My Project. # The default value is: My Project.
PROJECT_NAME = @PACKAGE_NAME@"My Project" PROJECT_NAME = @PACKAGE_NAME@
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
@ -125,7 +125,7 @@ ALWAYS_DETAILED_SEC = NO
# operators of the base classes will not be shown. # operators of the base classes will not be shown.
# The default value is: NO. # The default value is: NO.
INLINE_INHERITED_MEMB = YESNO INLINE_INHERITED_MEMB = YES
# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
# before files name in the file list and in the header files. If set to NO the # before files name in the file list and in the header files. If set to NO the
@ -189,7 +189,7 @@ QT_AUTOBRIEF = NO
# not recognized any more. # not recognized any more.
# The default value is: NO. # The default value is: NO.
MULTILINE_CPP_IS_BRIEF = YESNO MULTILINE_CPP_IS_BRIEF = YES
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements. # documentation from any documented member that it re-implements.
@ -208,7 +208,7 @@ SEPARATE_MEMBER_PAGES = NO
# uses this value to replace tabs by spaces in code fragments. # uses this value to replace tabs by spaces in code fragments.
# Minimum value: 1, maximum value: 16, default value: 4. # Minimum value: 1, maximum value: 16, default value: 4.
TAB_SIZE = 24 TAB_SIZE = 2
# This tag can be used to specify a number of aliases that act as commands in # This tag can be used to specify a number of aliases that act as commands in
# the documentation. An alias has the form: # the documentation. An alias has the form:
@ -220,13 +220,12 @@ TAB_SIZE = 24
# "Side Effects:". You can put \n's in the value part of an alias to insert # "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines. # newlines.
ALIASES = "id=par File-ID ALIASES = "id=\par File-ID\n"
" "copy=par Copyright ALIASES += "mutex=\par Reentrant:\nAccess is locked with mutex @c "
" "license=par License ALIASES += "instancemutex=\par Reentrant:\nAccess is locked with per instance mutex @c "
" "classmutex=par Reentrant: ALIASES += "classmutex=\par Reentrant:\nAccess is locked with class static mutex @c "
Access is locked with class static mutex @c " "instancemutex=par Reentrant: ALIASES += "license=\par License\n"
Access is locked with per instance mutex @c " "mutex=par Reentrant: ALIASES += "copy=\par Copyright\n"
Access is locked with mutex @c "
# This tag can be used to specify a number of word-keyword mappings (TCL only). # This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class" # A mapping has the form "name=value". For example adding "class=itcl::class"
@ -304,7 +303,7 @@ AUTOLINK_SUPPORT = YES
# diagrams that involve STL classes more complete and accurate. # diagrams that involve STL classes more complete and accurate.
# The default value is: NO. # The default value is: NO.
BUILTIN_STL_SUPPORT = YESNO BUILTIN_STL_SUPPORT = YES
# If you use Microsoft's C++/CLI language, you should set this option to YES to # If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support. # enable parsing support.
@ -336,7 +335,7 @@ IDL_PROPERTY_SUPPORT = YES
# all members of a group must be documented explicitly. # all members of a group must be documented explicitly.
# The default value is: NO. # The default value is: NO.
DISTRIBUTE_GROUP_DOC = YESNO DISTRIBUTE_GROUP_DOC = YES
# Set the SUBGROUPING tag to YES to allow class member groups of the same type # Set the SUBGROUPING tag to YES to allow class member groups of the same type
# (for instance a group of public functions) to be put as a subgroup of that # (for instance a group of public functions) to be put as a subgroup of that
@ -404,25 +403,25 @@ LOOKUP_CACHE_SIZE = 0
# normally produced when WARNINGS is set to YES. # normally produced when WARNINGS is set to YES.
# The default value is: NO. # The default value is: NO.
EXTRACT_ALL = YESNO EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
# be included in the documentation. # be included in the documentation.
# The default value is: NO. # The default value is: NO.
EXTRACT_PRIVATE = YESNO EXTRACT_PRIVATE = YES
# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
# scope will be included in the documentation. # scope will be included in the documentation.
# The default value is: NO. # The default value is: NO.
EXTRACT_PACKAGE = NO EXTRACT_PACKAGE = YES
# If the EXTRACT_STATIC tag is set to YES all static members of a file will be # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
# included in the documentation. # included in the documentation.
# The default value is: NO. # The default value is: NO.
EXTRACT_STATIC = YESNO EXTRACT_STATIC = YES
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO # locally in source files will be included in the documentation. If set to NO
@ -430,7 +429,7 @@ EXTRACT_STATIC = YESNO
# for Java sources. # for Java sources.
# The default value is: YES. # The default value is: YES.
EXTRACT_LOCAL_CLASSES = YESYES EXTRACT_LOCAL_CLASSES = YES
# This flag is only useful for Objective-C code. When set to YES local methods, # This flag is only useful for Objective-C code. When set to YES local methods,
# which are defined in the implementation section but not in the interface are # which are defined in the implementation section but not in the interface are
@ -438,7 +437,7 @@ EXTRACT_LOCAL_CLASSES = YESYES
# included. # included.
# The default value is: NO. # The default value is: NO.
EXTRACT_LOCAL_METHODS = YESNO EXTRACT_LOCAL_METHODS = YES
# If this flag is set to YES, the members of anonymous namespaces will be # If this flag is set to YES, the members of anonymous namespaces will be
# extracted and appear in the documentation as a namespace called # extracted and appear in the documentation as a namespace called
@ -447,7 +446,7 @@ EXTRACT_LOCAL_METHODS = YESNO
# are hidden. # are hidden.
# The default value is: NO. # The default value is: NO.
EXTRACT_ANON_NSPACES = YESNO EXTRACT_ANON_NSPACES = YES
# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these # undocumented members inside documented classes or files. If set to NO these
@ -513,7 +512,7 @@ SHOW_INCLUDE_FILES = YES
# which file to include in order to use the member. # which file to include in order to use the member.
# The default value is: NO. # The default value is: NO.
SHOW_GROUPED_MEMB_INC = NO SHOW_GROUPED_MEMB_INC = YES
# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
# files with double quotes in the documentation rather than with sharp brackets. # files with double quotes in the documentation rather than with sharp brackets.
@ -552,7 +551,7 @@ SORT_BRIEF_DOCS = NO
# detailed member documentation. # detailed member documentation.
# The default value is: NO. # The default value is: NO.
SORT_MEMBERS_CTORS_1ST = YESNO SORT_MEMBERS_CTORS_1ST = YES
# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
# of group names into alphabetical order. If set to NO the group names will # of group names into alphabetical order. If set to NO the group names will
@ -705,7 +704,7 @@ WARNINGS = YES
# will automatically be disabled. # will automatically be disabled.
# The default value is: YES. # The default value is: YES.
WARN_IF_UNDOCUMENTED = NOYES WARN_IF_UNDOCUMENTED = NO
# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some parameters # potential errors in the documentation, such as not documenting some parameters
@ -750,6 +749,7 @@ WARN_LOGFILE = doxygen.errors
# Note: If this tag is empty the current directory is searched. # Note: If this tag is empty the current directory is searched.
INPUT = @top_srcdir@/src INPUT = @top_srcdir@/src
INPUT += @top_srcdir@/test
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@ -769,13 +769,14 @@ INPUT_ENCODING = UTF-8
# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
# *.qsf, *.as and *.js. # *.qsf, *.as and *.js.
FILE_PATTERNS = 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
FILE_PATTERNS += *.wt
# The RECURSIVE tag can be used to specify whether or not subdirectories should # The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well. # be searched for input files as well.
# The default value is: NO. # The default value is: NO.
RECURSIVE = YESNO RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should be # The EXCLUDE tag can be used to specify files and/or directories that should be
# excluded from the INPUT source files. This way you can easily exclude a # excluded from the INPUT source files. This way you can easily exclude a
@ -817,7 +818,7 @@ EXCLUDE_SYMBOLS =
# that contain example code fragments that are included (see the \include # that contain example code fragments that are included (see the \include
# command). # command).
EXAMPLE_PATH = @top_srcdir@/examples EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the # If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@ -831,7 +832,7 @@ EXAMPLE_PATTERNS =
# irrespective of the value of the RECURSIVE tag. # irrespective of the value of the RECURSIVE tag.
# The default value is: NO. # The default value is: NO.
EXAMPLE_RECURSIVE = YESNO EXAMPLE_RECURSIVE = YES
# The IMAGE_PATH tag can be used to specify one or more files or directories # The IMAGE_PATH tag can be used to specify one or more files or directories
# that contain images that are to be included in the documentation (see the # that contain images that are to be included in the documentation (see the
@ -863,7 +864,7 @@ INPUT_FILTER =
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied. # patterns match the file name, INPUT_FILTER is applied.
FILTER_PATTERNS = FILTER_PATTERNS = *.wt=doxygen-webtester.sed
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER ) will also be used to filter the input files that are used for # INPUT_FILTER ) will also be used to filter the input files that are used for
@ -898,13 +899,13 @@ USE_MDFILE_AS_MAINPAGE =
# also VERBATIM_HEADERS is set to NO. # also VERBATIM_HEADERS is set to NO.
# The default value is: NO. # The default value is: NO.
SOURCE_BROWSER = YESNO SOURCE_BROWSER = YES
# Setting the INLINE_SOURCES tag to YES will include the body of functions, # Setting the INLINE_SOURCES tag to YES will include the body of functions,
# classes and enums directly into the documentation. # classes and enums directly into the documentation.
# The default value is: NO. # The default value is: NO.
INLINE_SOURCES = YESNO INLINE_SOURCES = YES
# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
# special comment blocks from generated source code fragments. Normal C, C++ and # special comment blocks from generated source code fragments. Normal C, C++ and
@ -1006,7 +1007,7 @@ IGNORE_PREFIX =
# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
# The default value is: YES. # The default value is: YES.
GENERATE_HTML = YESYES GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
@ -1358,7 +1359,7 @@ DISABLE_INDEX = NO
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_TREEVIEW = NONO GENERATE_TREEVIEW = NO
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation. # doxygen will group on one line in the generated HTML documentation.
@ -1472,7 +1473,7 @@ MATHJAX_CODEFILE =
# The default value is: YES. # The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
SEARCHENGINE = YESYES SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There # implemented using a web server instead of a web client using Javascript. There
@ -1546,7 +1547,7 @@ EXTRA_SEARCH_MAPPINGS =
# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
# The default value is: YES. # The default value is: YES.
GENERATE_LATEX = NOYES GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
@ -1657,14 +1658,14 @@ USE_PDFLATEX = YES
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BATCHMODE = YESNO LATEX_BATCHMODE = YES
# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
# index chapters (such as File Index, Compound Index, etc.) in the output. # index chapters (such as File Index, Compound Index, etc.) in the output.
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HIDE_INDICES = YESNO LATEX_HIDE_INDICES = YES
# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
# code with syntax highlighting in the LaTeX output. # code with syntax highlighting in the LaTeX output.
@ -1709,7 +1710,7 @@ RTF_OUTPUT = rtf
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES. # This tag requires that the tag GENERATE_RTF is set to YES.
COMPACT_RTF = YESNO COMPACT_RTF = YES
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
# contain hyperlink fields. The RTF file will contain links (just like the HTML # contain hyperlink fields. The RTF file will contain links (just like the HTML
@ -1721,7 +1722,7 @@ COMPACT_RTF = YESNO
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES. # This tag requires that the tag GENERATE_RTF is set to YES.
RTF_HYPERLINKS = YESNO RTF_HYPERLINKS = YES
# Load stylesheet definitions from file. Syntax is similar to doxygen's config # Load stylesheet definitions from file. Syntax is similar to doxygen's config
# file, i.e. a series of assignments. You only have to provide replacements, # file, i.e. a series of assignments. You only have to provide replacements,
@ -1901,7 +1902,7 @@ ENABLE_PREPROCESSING = YES
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
MACRO_EXPANSION = NO MACRO_EXPANSION = YES
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and # the macro expansion is limited to the macros specified with the PREDEFINED and
@ -1942,6 +1943,7 @@ INCLUDE_FILE_PATTERNS =
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
PREDEFINED = PREDEFINED =
PREDEFINED += "NAMESPACE=@PACKAGE_NAME@"
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The # tag can be used to specify a list of macro names that should be expanded. The
@ -2046,7 +2048,7 @@ DIA_PATH =
# and usage relations if the target is undocumented or is not a class. # and usage relations if the target is undocumented or is not a class.
# The default value is: YES. # The default value is: YES.
HIDE_UNDOC_RELATIONS = NOYES HIDE_UNDOC_RELATIONS = NO
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see: # available from the path. This tool is part of Graphviz (see:
@ -2055,7 +2057,7 @@ HIDE_UNDOC_RELATIONS = NOYES
# set to NO # set to NO
# The default value is: NO. # The default value is: NO.
HAVE_DOT = YESNO HAVE_DOT = YES
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
# to run in parallel. When set to 0 doxygen will base this on the number of # to run in parallel. When set to 0 doxygen will base this on the number of
@ -2097,7 +2099,7 @@ DOT_FONTPATH =
# The default value is: YES. # The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
CLASS_GRAPH = YESYES CLASS_GRAPH = YES
# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
# graph for each documented class showing the direct and indirect implementation # graph for each documented class showing the direct and indirect implementation
@ -2142,7 +2144,7 @@ UML_LIMIT_NUM_FIELDS = 10
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
TEMPLATE_RELATIONS = YESNO TEMPLATE_RELATIONS = YES
# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
# YES then doxygen will generate a graph for each documented file showing the # YES then doxygen will generate a graph for each documented file showing the
@ -2209,7 +2211,7 @@ DIRECTORY_GRAPH = YES
# The default value is: png. # The default value is: png.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
DOT_IMAGE_FORMAT = svgpng DOT_IMAGE_FORMAT = svg
# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
# enable generation of interactive SVG images that allow zooming and panning. # enable generation of interactive SVG images that allow zooming and panning.
@ -2221,7 +2223,7 @@ DOT_IMAGE_FORMAT = svgpng
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
INTERACTIVE_SVG = YESNO INTERACTIVE_SVG = YES
# The DOT_PATH tag can be used to specify the path where the dot tool can be # The DOT_PATH tag can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path. # found. If left blank, it is assumed the dot tool can be found in the path.
@ -2282,7 +2284,7 @@ MAX_DOT_GRAPH_DEPTH = 0
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag HAVE_DOT is set to YES.
DOT_TRANSPARENT = YESNO DOT_TRANSPARENT = YES
# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This # files in one run (i.e. multiple -o and -T options on the command line). This

@ -1,9 +1,9 @@
## @id $Id$ ## @id $Id$
# #
# This file has been added by bootstrap.sh on Sun, 15 Mar 2015 22:15:10 +0100 # This file has been added by bootstrap.sh on Sat, 09 May 2015 08:50:06 +0200
# Feel free to change it or even remove and rebuild it, up to your needs # Feel free to change it or even remove and rebuild it, up to your needs
# #
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890
MAINTAINERCLEANFILES = makefile.in

@ -1,9 +1,17 @@
## @id $Id$ ## @id $Id$
# #
# This file has been added by bootstrap.sh on Fri, 13 Mar 2015 14:04:43 +0100 # This file has been added by bootstrap.sh on Sat, 09 May 2015 08:50:06 +0200
# Feel free to change it or even remove and rebuild it, up to your needs # Feel free to change it or even remove and rebuild it, up to your needs
# #
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890
noinst_PROGRAM = filewatch
filewatch_SOURCES = filewatch.cxx filewatch.hxx
AM_CPPFLAGS = -I@top_srcdir@/src -I_srcdir@/src/qbrowserlib
AM_LDFLAGS = -L@top_builddir@/src/.libs
LDADD = -lswisssurfer
MAINTAINERCLEANFILES = makefile.in

@ -1,9 +1,11 @@
## @id $Id$ ## @id $Id$
# #
# This file has been added by bootstrap.sh on Fri, 13 Mar 2015 15:53:04 +0100 # This file has been added by bootstrap.sh on Sun, 10 May 2015 15:59:26 +0200
# Feel free to change it or even remove and rebuild it, up to your needs # Feel free to change it or even remove and rebuild it, up to your needs
# #
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890
SUBDIRS = src test doc examples SUBDIRS = src doc examples
MAINTAINERCLEANFILES = makefile.in

@ -1,6 +1,6 @@
## @id $Id$ ## @id $Id$
# #
# This file has been added by bootstrap.sh on Fri, 13 Mar 2015 14:04:43 +0100 # This file has been added by bootstrap.sh on Sat, 09 May 2015 08:50:06 +0200
# Feel free to change it or even remove and rebuild it, up to your needs # Feel free to change it or even remove and rebuild it, up to your needs
# #
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8
@ -25,3 +25,4 @@ BUILT_SOURCES = ${swisssurfer_MOCFILES} ${swisssurfer_UIFILES}
EXTRA_DIST = authentication.hxx certificate.hxx logincertificate.hxx \ EXTRA_DIST = authentication.hxx certificate.hxx logincertificate.hxx \
smartcardauth.hxx browser.hxx editbookmarks.hxx \ smartcardauth.hxx browser.hxx editbookmarks.hxx \
pinentry.hxx sslclientnetworkmanager.hxx pinentry.hxx sslclientnetworkmanager.hxx
MAINTAINERCLEANFILES = makefile.in

@ -1,6 +1,6 @@
## @id $Id$ ## @id $Id$
# #
# This file has been added by bootstrap.sh on Sun, 15 Mar 2015 19:02:58 +0100 # This file has been added by bootstrap.sh on Sat, 09 May 2015 08:50:06 +0200
# Feel free to change it or even remove and rebuild it, up to your needs # Feel free to change it or even remove and rebuild it, up to your needs
# #
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8

@ -0,0 +1,40 @@
/*! @file
@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);
}

@ -1,16 +0,0 @@
/*! @file
@id $Id$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
#include <string>
namespace xml {
std::string version() {
return "@PACKAGE_NAME@-@VERSION@";
}
const std::string WHAT("#(@) @PACKAGE_NAME@-@VERSION@");
const std::string IDENT("$Id: @PACKAGE_NAME@-@VERSION@ $");
}

@ -0,0 +1,33 @@
/*! @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;
}

@ -1,9 +0,0 @@
## @id $Id$
#
# This file has been added by bootstrap.sh on Fri, 13 Mar 2015 14:04:43 +0100
# Feel free to change it or even remove and rebuild it, up to your needs
#
## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890

@ -1,17 +0,0 @@
QMAKE_INCDIR += @top_srcdir@/src
QMAKE_LIBDIR += @top_builddir@/src/qbrowserlib
QMAKE_LIBDIR += @top_builddir@/src/qbrowserlib/release
QMAKE_LIBS += -lqbrowserlib
QT = core
macx {
CONFIG += x86 x86_64
}
HEADERS = @srcdir@/filewatch.hxx
SOURCES = @srcdir@/filewatch.cxx
TARGET = filewatch
Loading…
Cancel
Save