added doxygen-webtester.sed do generate doxygen from webtester files

master
Marc Wäckerlin 9 years ago
parent 89c77edae7
commit 6583fd29be
  1. 5
      ChangeLog
  2. 5
      ax_init_standard_project.m4
  3. 83
      bootstrap.sh
  4. 1
      configure.ac
  5. 4
      makefile.am
  6. 44
      scripts/doxygen-webtester.sed
  7. 13
      scripts/example.wt
  8. 9
      scripts/makefile.am

@ -1,3 +1,8 @@
2015-05-06 07:56 marc
* ChangeLog, debian/.dirs, debian/.install, debian/webtester.dirs,
debian/webtester.install: no need for install and dirs in debian
2015-05-05 20:31 marc
* ax_init_standard_project.m4, bootstrap.sh, configure.ac, debian,

@ -283,6 +283,11 @@ rpm: dist
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)

@ -19,10 +19,18 @@ PROJECT_PATH=$(pwd)
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
configure=0
build=0
overwrite=0
rebuild=0
while test $# -gt 0; do
case "$1" in
(--configure|-c) configure=1;;
(--version|-v) echo "$Id$"; exit;;
(--build|-b) configure=1; build=1;;
(--overwrite|-o) overwrite=1;;
(--rebuild|-r) rebuild=1;;
(--version|-v)
echo "$Id$";
exit;;
(--help|-h) less <<EOF
SYNOPSIS
@ -31,6 +39,9 @@ SYNOPSIS
OPTIONS
--configure, -c call ./configure after initialization
--build, -c build, call ./configure && make after initialization
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros)
--rebuild -r force rebuild of generated files, even if modified
--help, -h show this help
--version, -v show version and date of this file
@ -93,6 +104,7 @@ GENERATED FILES
* 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
@ -108,8 +120,11 @@ GENERATED FILES
* debian/compat - if you enabled AX_USE_DEBIAN_PACKAGING
* src/${DEFAULT_PROJECT_NAME}.pc.in - if you enabled AX_USE_LIBTOOL
To rebuild any of these files, just remove it using "svn rm <filename>"
and run ${MY_NAME} again.
REBUILDING FILES
To rebuild all these files, just run "${MY_NAME} -o". You can also
remove and rebuild a single file by removing it from subversion,
just call "svn rm <file>" and "${MY_NAME}" to rebuild file "<file>".
FILES TO EDIT
@ -128,8 +143,8 @@ FILES TO EDIT
FILE DEPENDENCIES
You should rebuild (remove and run (see above) the files, whenever
you change the configuration a dependent, i.e.:
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
@ -162,8 +177,9 @@ FILES
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
* 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
@ -198,7 +214,7 @@ EOF
done
HEADER='## @id $Id$
HEADER='## @id '"\$Id\$"'
#
# This file has been added by '${MY_NAME}' on '$(date -R)'
# Feel free to change it or even remove and rebuild it, up to your needs
@ -247,6 +263,14 @@ checkdir() {
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"
@ -261,7 +285,7 @@ to() {
esac
shift;
done
if test -f "$1"; then # file already exists
if checkfile "$1" && test $rebuild -eq 0; then # file already exists
return
fi
checkdir "$(dirname ${1})"
@ -279,13 +303,18 @@ to() {
echo -e " \e[32msuccess\e[0m"
fi
chmod $mode $1
run svn add "$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
}
copy() {
if ! test -f "$1"; then
run cp "${0%/*}/$1" "$1"
if checkfile "$1" && test $overwrite -eq 0; then
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
@ -321,6 +350,7 @@ 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
@ -342,7 +372,7 @@ echo "${HEADER}" | to --condition AX_USE_CXX src/makefile.am
to --condition AX_USE_CXX src/version.hxx <<EOF
/*! @file
@id \$Id$
@id \$Id\$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
@ -377,7 +407,7 @@ EOF
to --condition AX_USE_CXX src/version.cxx <<EOF
/*! @file
@id $Id$
@id $Id\$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
@ -416,6 +446,7 @@ namespace NAMESPACE {
const std::string IDENT("\$Id: " PACKAGE_STRING);
}
EOF
echo "${HEADER}" | to --condition AX_USE_SCRIPTS scripts/makefile.am
echo "${HEADER}" | 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
@ -512,28 +543,17 @@ EOF
NEWS
README
EOF
to debian/${PACKAGE_NAME}.install <<EOF
usr/bin/*
to --condition AX_USE_LIBTOOL debian/${PACKAGE_NAME}.install <<EOF
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
if testtag AX_USE_LIBTOOL; then
to debian/${PACKAGE_NAME}-dev.install <<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
$(if testtag AX_USE_LIBTOOL; then echo "usr/share/doc/${PACKAGE_NAME}/html"; fi)
EOF
to debian/${PACKAGE_NAME}-dev.dirs <<EOF
usr/lib
usr/include
usr/share/doc/${PACKAGE_NAME}/html
EOF
fi
to --mode "u=rwx,g=rwx,o=rx" debian/rules <<EOF
${HEADER}%:
dh \$@
@ -542,7 +562,7 @@ EOF
fi
if ! test -f makefile.am; then
SUBDIRS=""
for d in src test doc examples; do
for d in src test scripts doc examples; do
test -d $d && SUBDIRS="${SUBDIRS} $d"
done
echo "${HEADER}SUBDIRS =${SUBDIRS}" | to makefile.am
@ -575,3 +595,8 @@ run autoconf
if test "$configure" -eq 1; then
./configure $*
fi
#### Run Make If User Requires ####
if test "$build" -eq 1; then
make
fi

@ -20,6 +20,7 @@ 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

@ -1,9 +1,9 @@
## @id $Id$
#
# This file has been added by bootstrap.sh on Mon, 04 May 2015 16:05:25 +0200
# This file has been added by bootstrap.sh on Wed, 06 May 2015 16:20:18 +0200
# Feel free to change it or even remove and rebuild it, up to your needs
#
## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
SUBDIRS = src doc
SUBDIRS = src scripts doc

@ -0,0 +1,44 @@
#!/bin/sed -nsf
# begin of file, declare file
1{
/@file/!{ # no file definition yet, add it
x
s,^, @file\n,
x
}
}
# line with doxygen comment (defined as ## at begin of line)
/^##\( \|$\)/{
s/##\( \|$\)/ / # replace ## comments by 4 spaces indent
H; d # hold, evaluate later
}
# variable definition
/^set/{
s,^set \+\([^ =]\+\)\( *= *\(.*\)\)\?,/** @var \1, # prepend variable decl
G # append hold buffer
s,$, */\n, # append end of comment
p; z; x; d # clear buffer, next line
}
# function definition
/^function/{
s,^function \+\([^ ]\+\) *\(.*\)\?,/** @fn \1(\2), # prepend function decl
G # append hold buffer
s,$, */\n, # append end of comment
p; z; x; d # clear buffer, next line
}
# default for non matching lines - print buffer
{
z; x; # get and clear buffer
/^$/!{ # only if buffer is not empty
s,^\n,, # remove first newline
s,^\( \)\?,/** , # prepend doxygen comment start
s,$, */\n, # append end of comment
p; d
}
}

@ -0,0 +1,13 @@
## Commented Webtest Example File
##
## This is text that can be converted to doxygen using the tool
## @c doxygen-webtester.sed as filter.
## This is a variable declaration
set a=b
## This is a function
##
## Here we have an example of a function declaration
function function-name ARG1, ARG2
# do nothing

@ -0,0 +1,9 @@
## @id $Id$
#
# This file has been added by bootstrap.sh on Wed, 06 May 2015 16:04:49 +0200
# Feel free to change it or even remove and rebuild it, up to your needs
#
## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
dist_bin_SCRIPTS = doxygen-webtester.sed
Loading…
Cancel
Save