@ -14,8 +14,18 @@
## added file header
## added file header
##
##
configure = 0
while test $# -gt 0; do
case " $1 " in
( --configure| -c) configure = 1; ;
( *) break; ;
esac
shift;
done
MY_NAME = ${ 0 ##*/ }
MY_NAME = ${ 0 ##*/ }
PROJECT_PATH = ${ 0 %*/* }
PROJECT_PATH = $( pwd )
DEFAULT_PROJECT_NAME = ${ PROJECT_PATH ##*/ }
DEFAULT_PROJECT_NAME = ${ PROJECT_PATH ##*/ }
HEADER = ' ## @id $Id$
HEADER = ' ## @id $Id$
@ -28,7 +38,7 @@ HEADER='## @id $Id$
'
'
function run {
run( ) {
check = 1
check = 1
while test $# -gt 0; do
while test $# -gt 0; do
case " $1 " in
case " $1 " in
@ -56,15 +66,72 @@ function run {
fi
fi
}
}
function to {
testtag( ) {
cat > " $1 "
egrep -q '^ *' " $1 " configure.ac
}
checkdir( ) {
if ! test -d " $1 " ; then # create path
run mkdir -p " $1 "
run svn add " $1 "
fi
}
to( ) {
while test $# -gt 0; do
case " $1 " in
( --condition) shift # test for a tag, abort if not set
if ! testtag " $1 " configure.ac; then
return
fi ; ;
( *) break; ;
esac
shift;
done
if test -f " $1 " ; then # file already exists
return
fi
checkdir " $( dirname ${ 1 } ) "
echo -n " -> generating $1 ... "
result = $( cat > " $1 " 2>& 1)
res = $?
if test $res -ne 0; then
echo " error"
echo " *** Failed with return code: $res "
if test -n " $result " ; then
echo " $result "
fi
exit 1
else
echo " success"
fi
run svn add " $1 "
run svn add " $1 "
run svn propset svn:keywords "Id" " $1 "
run svn propset svn:keywords "Id" " $1 "
}
}
copy( ) {
if ! test -f " $1 " ; then
run cp " ${ 0 %/* } / $1 " " $1 "
run svn add " $1 "
run svn propset svn:keywords "Id" " $1 "
fi
}
doxyreplace( ) {
echo -n " -> doxyfile: configure $1 ... "
if sed -i 's§\(^' " $1 " ' *=\) *§\1' " $2 " '§g' doc/doxyfile.in; then
echo " success"
else
echo " ignored"
fi
}
# Initialize the environment:
# Initialize the environment:
copy ${ MY_NAME }
copy ax_init_standard_project.m4
copy ax_cxx_compile_stdcxx_11.m4
copy ax_check_qt.m4
if ! test -f configure.ac; then
if ! test -f configure.ac; then
echo "->generating configure.ac"
to configure.ac <<EOF
to configure.ac <<EOF
${ 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
@ -87,26 +154,156 @@ AX_INIT_STANDARD_PROJECT
AC_OUTPUT
AC_OUTPUT
EOF
EOF
echo " please edit configure.ac, then rerun $0 "
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)
echo " ${ HEADER } " | to --condition AX_USE_CXX src/makefile.am
echo " ${ HEADER } " | to --condition AX_USE_CPPUNIT test/makefile.am
echo " ${ HEADER } " | to --condition AX_USE_DOXYGEN doc/makefile.am
echo " ${ HEADER } " | to --condition AX_BUILD_EXAMPLES examples/makefile.am
if testtag AX_USE_DOXYGEN && ! test -f doc/doxyfile.in; then
run doxygen -g doc/doxyfile.in
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" "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 BUILTIN_STL_SUPPORT YES
doxyreplace DISTRIBUTE_GROUP_DOC YES
doxyreplace EXTRACT_ALL 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 SORT_MEMBERS_CTORS_1ST YES
doxyreplace WARN_IF_UNDOCUMENTED NO
doxyreplace WARN_LOGFILE doxygen.errors
doxyreplace INPUT "@top_srcdir@/src"
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 SOURCE_BROWSER YES
doxyreplace INLINE_SOURCES YES
doxyreplace GENERATE_TREEVIEW NO
doxyreplace SEARCHENGINE YES
doxyreplace GENERATE_HTML YES
doxyreplace GENERATE_LATEX YES
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 debian/${ PACKAGE_NAME } .install <<EOF
usr/bin/*
usr/lib/lib*.so.*
EOF
to debian/${ PACKAGE_NAME } .dirs <<EOF
usr/lib
EOF
if testtag AX_USE_LIBTOOL; then
to debian/${ PACKAGE_NAME } -dev.install <<EOF
usr/include/*
usr/lib/lib*.a
usr/lib/lib*.so
usr/lib/pkgconfig/*
usr/lib/*.la
usr/share/pkgconfig/*
EOF
to debian/${ PACKAGE_NAME } -dev.dirs <<EOF
usr/lib
usr/include
EOF
fi
to debian/rules <<EOF
%:
dh $@
EOF
echo 7 | to debian/compat
fi
fi
if ! test -f makefile.am; then
if ! test -f makefile.am; then
echo "-> generating makefile.am"
SUBDIRS = ""
SUBDIRS = ""
for d in src test 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
echo " ${ HEADER } SUBDIRS = ${ SUBDIRS } " | to makefile.am
echo " ${ HEADER } SUBDIRS = ${ SUBDIRS } " | to makefile.am
fi
fi
if ( test -d doc || grep -q AX_USE_DOXYGEN configure.ac ) \
to --condition AX_USE_LIBTOOL src/${ PACKAGE_NAME } .pc.in <<EOF
&& ! test -f doc/makefile.am; then
${ HEADER } prefix = @PACKAGE_NAME@
echo "-> generating doc/makefile.am"
exec_prefix = ${ prefix }
test -d doc || ( mkdir doc && svn add doc )
libdir = ${ exec_prefix } /lib
echo " ${ HEADER } " | to doc/makefile.am
includedir = ${ prefix } /include
fi
Name: @PACKAGE_NAME@
Description: @DESCRIPTION@
Version: @VERSION@
Libs: -L${ libdir } -l@PACKAGE_NAME@
Cflags: -I${ includedir }
EOF
#### Cleanup If Makefile Exists ####
if test -f makefile; then
if test -f makefile; then
run --no-check make distclean
run --no-check make distclean
fi
fi
#### Bootstrap Before Configure ####
run aclocal
run aclocal
run libtoolize --force
run libtoolize --force
run automake -a
run automake -a
run autoconf
run autoconf
#### Run Configure If User Requires ####
if test " $configure " -eq 1; then
./configure $*
fi