improved bootstrapping

master
Marc Wäckerlin 10 years ago
parent c5c679c14e
commit 5e9c2965e8
  1. 5
      ax_check_qt.m4
  2. 49
      ax_init_standard_project.m4
  3. 221
      bootstrap.sh
  4. 26
      debian/copyright
  5. 0
      debian/dirs
  6. 20
      debian/libpcscxx.doc-base.EX
  7. 1
      debian/shlibs.local.ex
  8. 23
      debian/watch.ex

@ -89,6 +89,9 @@ AC_DEFUN([AX_CXX_CHECK_QT], [
${UIC} -o [$][@] $<
moc_%.cxx: %.hxx
${MOC} -o [$][@] $<'
${MOC} -o [$][@] $<
qrc_%.cxx: %.qrc
${RCC} -o [$][@] $<'
AC_SUBST(AX_ADDITIONAL_QT_RULES_HACK)
])

@ -39,9 +39,9 @@ dnl refers to ${prefix}. Thus we have to use `eval' twice.
AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [
sh_add_makefile_target_dep() {
sed -i ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${top_srcdir}/${3}"
if ! egrep -q "${1}:.* ${2}" "${top_srcdir}/${3}"; then
echo "${1}: ${2}" >> "${top_srcdir}/${3}"
sed -i ':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"
@ -67,6 +67,14 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
AC_SUBST(BUILD_NUMBER)
BUILD_DATE=$(date -R)
AC_SUBST(BUILD_DATE)
if test -f "${PROJECT_NAME}-logo.png"; then
PROJECT_LOGO="${PROJECT_NAME}-logo.png"
fi
AC_SUBST(PROJECT_LOGO)
if test -f "${PROJECT_NAME}-icon.png"; then
PROJECT_ICON="${PROJECT_NAME}-icon.png"
fi
AC_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])
@ -152,7 +160,7 @@ AC_DEFUN([AX_USE_LIBTOOL], [
LIB_MINOR=x_least
LIB_LEAST=x_minor
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(LIB_VERSION)
AC_PROG_LIBTOOL
@ -196,6 +204,18 @@ 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)
AC_ARG_ENABLE(html,
[AS_HELP_STRING([--disable-html],
[disable generation of doxygen html documentation])],
[have_html="$enableval"], [have_html="no"])
AM_CONDITIONAL(HTML_DOC, test "$have_html" = "yes")
AC_ARG_ENABLE(pdf,
[AS_HELP_STRING([--enable-pdf],
[enable generation of doxygen pdf documentation])],
[have_pdf="$enableval"], [have_pdf="no"])
AM_CONDITIONAL(PDF_DOC, test "$have_pdf" = "yes")
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
@ -215,15 +235,28 @@ AC_DEFUN([AX_USE_DOXYGEN], [
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
@HTML_DOC_TRUE@@PDF_DOC_TRUE@doc: doxyfile html @PDF_DOC@
@HTML_DOC_FALSE@@PDF_DOC_TRUE@doc: doxyfile @PDF_DOC@
@HTML_DOC_TRUE@@PDF_DOC_FALSE@doc: doxyfile html
@HTML_DOC_FALSE@@PDF_DOC_FALSE@doc: doxyfile
html:
doxygen -w html doxyfile
@PEDANTIC_TRUE@ test \! -s doxygen.errors
@PDF_DOC@: latex/refman.pdf
mv \${<}/refman.pdf @PDF_DOC@
latex/refman.pdf: latex
cd \$< && \${MAKE}
latex:
doxygen -w pdf doxyfile
@PEDANTIC_TRUE@ test \! -s doxygen.errors
clean-documentation:
-rm doxygen.errors @PACKAGE_NAME@-@PACKAGE_VERSION@.pdf
-rm doxygen.errors @PDF_DOC@
distclean-documentation:
-rm -r html
-rm -r html latex
-rm @PACKAGE_NAME@.doxytag
maintainer-clean-documentation:
-rm makefile.in

@ -14,8 +14,18 @@
## added file header
##
configure=0
while test $# -gt 0; do
case "$1" in
(--configure|-c) configure=1;;
(*) break;;
esac
shift;
done
MY_NAME=${0##*/}
PROJECT_PATH=${0%*/*}
PROJECT_PATH=$(pwd)
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
HEADER='## @id $Id$
@ -28,7 +38,7 @@ HEADER='## @id $Id$
'
function run {
run() {
check=1
while test $# -gt 0; do
case "$1" in
@ -56,15 +66,72 @@ function run {
fi
}
function to {
cat > "$1"
testtag() {
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 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:
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
echo "->generating configure.ac"
to configure.ac <<EOF
${HEADER}m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name
m4_define(x_major, 0) # project's major version
@ -87,26 +154,156 @@ AX_INIT_STANDARD_PROJECT
AC_OUTPUT
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)
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
if ! test -f makefile.am; then
echo "-> generating makefile.am"
SUBDIRS=""
for d in src test doc examples; do
test -d $d && SUBDIRS="${SUBDIRS} $d"
done
echo "${HEADER}SUBDIRS =${SUBDIRS}" | to makefile.am
fi
if ( test -d doc || grep -q AX_USE_DOXYGEN configure.ac ) \
&& ! test -f doc/makefile.am; then
echo "-> generating doc/makefile.am"
test -d doc || ( mkdir doc && svn add doc )
echo "${HEADER}" | to doc/makefile.am
fi
to --condition AX_USE_LIBTOOL src/${PACKAGE_NAME}.pc.in <<EOF
${HEADER}prefix=@PACKAGE_NAME@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
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
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

26
debian/copyright vendored

@ -1,26 +0,0 @@
This package was debianized by Marc Wäckerlin <marc@waeckerlin.org> on
Wed, 07 Apr 2010 10:23:02 +0200.
It was downloaded from https://dev.marc.waeckerlin.org/projects/proxyface
Upstream Author(s):
Marc Wäckerlin <marc@waeckerlin.org>
Copyright:
Marc Wäckerlin <marc@waeckerlin.org>
License:
LGPL version 3
The Debian packaging is:
Copyright (C) 2010 Marc Wäckerlin <marc@waeckerlin.org>
and is licensed under the GPL version 3,
see `/usr/share/common-licenses/GPL-3'.
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.

@ -1,20 +0,0 @@
Document: proxyface
Title: Debian proxyface Manual
Author: <insert document author here>
Abstract: This manual describes what proxyface is
and how it can be used to
manage online manuals on Debian systems.
Section: unknown
Format: debiandoc-sgml
Files: /usr/share/doc/proxyface/proxyface.sgml.gz
Format: postscript
Files: /usr/share/doc/proxyface/proxyface.ps.gz
Format: text
Files: /usr/share/doc/proxyface/proxyface.text.gz
Format: HTML
Index: /usr/share/doc/proxyface/html/index.html
Files: /usr/share/doc/proxyface/html/*.html

@ -1 +0,0 @@
libproxyface 1.0.34 proxyface (>> 1.0.34-0), proxyface (<< 1.0.34-99)

23
debian/watch.ex vendored

@ -1,23 +0,0 @@
# Example watch control file for uscan
# Rename this file to "watch" and then you can run the "uscan" command
# to check for upstream updates and more.
# See uscan(1) for format
# Compulsory line, this is a version 3 file
version=3
# Uncomment to examine a Webpage
# <Webpage URL> <string match>
#http://www.example.com/downloads.php proxyface-(.*)\.tar\.gz
# Uncomment to examine a Webserver directory
#http://www.example.com/pub/proxyface-(.*)\.tar\.gz
# Uncommment to examine a FTP server
#ftp://ftp.example.com/pub/proxyface-(.*)\.tar\.gz debian uupdate
# Uncomment to find new files on sourceforge, for devscripts >= 2.9
# http://sf.net/proxyface/proxyface-(.*)\.tar\.gz
# Uncomment to find new files on GooglePages
# http://example.googlepages.com/foo.html proxyface-(.*)\.tar\.gz
Loading…
Cancel
Save