updated build system
This commit is contained in:
		@@ -265,14 +265,8 @@ maintainer-clean-cxx-targets:
 | 
			
		||||
EOF
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# use this in configure.ac to support CppUnit for C++ unit tests
 | 
			
		||||
AC_DEFUN([AX_USE_CPPUNIT], [
 | 
			
		||||
  AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"])
 | 
			
		||||
  # infos and warnings
 | 
			
		||||
  if test "$have_cppunit" = "no"; then
 | 
			
		||||
    AC_MSG_WARN([Missing cppunit development library!
 | 
			
		||||
     - you cannot check the library using "make check"
 | 
			
		||||
     - everything else works perfectly]); fi
 | 
			
		||||
# use this in configure.ac to support tests without CppUnit
 | 
			
		||||
AC_DEFUN([AX_BUILD_TEST], [
 | 
			
		||||
  AC_CONFIG_FILES([test/makefile])
 | 
			
		||||
  AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-test-targets], [test/makefile.in])
 | 
			
		||||
  test -f test/makefile.in && cat >> test/makefile.in <<EOF
 | 
			
		||||
@@ -283,6 +277,17 @@ maintainer-clean-test-targets:
 | 
			
		||||
EOF
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# use this in configure.ac to support CppUnit for C++ unit tests
 | 
			
		||||
AC_DEFUN([AX_USE_CPPUNIT], [
 | 
			
		||||
  AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"])
 | 
			
		||||
  # infos and warnings
 | 
			
		||||
  if test "$have_cppunit" = "no"; then
 | 
			
		||||
    AC_MSG_WARN([Missing cppunit development library!
 | 
			
		||||
     - you cannot check the project using "make check"
 | 
			
		||||
     - everything else works perfectly]); fi
 | 
			
		||||
  AX_BUILD_TEST
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# use this in configure.ac to support C++ examples
 | 
			
		||||
AC_DEFUN([AX_BUILD_EXAMPLES], [
 | 
			
		||||
  AC_CONFIG_FILES([examples/makefile])
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41
									
								
								bootstrap.sh
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								bootstrap.sh
									
									
									
									
									
								
							@@ -19,6 +19,7 @@ PROJECT_PATH=$(pwd)
 | 
			
		||||
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
 | 
			
		||||
configure=0
 | 
			
		||||
build=0
 | 
			
		||||
docker=0
 | 
			
		||||
buildtarget="distcheck"
 | 
			
		||||
overwrite=0
 | 
			
		||||
rebuild=0
 | 
			
		||||
@@ -26,6 +27,7 @@ rebuildfiles=()
 | 
			
		||||
while test $# -gt 0; do
 | 
			
		||||
    case "$1" in
 | 
			
		||||
        (--configure|-c) configure=1;;
 | 
			
		||||
        (--docker|-d) docker=1;;
 | 
			
		||||
        (--build|-b) configure=1; build=1;;
 | 
			
		||||
        (--target|-t) shift; configure=1; build=1; buildtarget="$1";;
 | 
			
		||||
        (--overwrite|-o) overwrite=1;;
 | 
			
		||||
@@ -42,6 +44,7 @@ SYNOPSIS
 | 
			
		||||
OPTIONS
 | 
			
		||||
 | 
			
		||||
  --configure, -c            call ./configure after initialization
 | 
			
		||||
  --docker, -d               build and run tests in a docker instance
 | 
			
		||||
  --build, -b                build, also call ./configure && make distcheck
 | 
			
		||||
  --target, -t <target>      same as -b, but specify target instead of distcheck
 | 
			
		||||
  --overwrite, -o            overwrite all basic files (bootstrap.sh, m4-macros)
 | 
			
		||||
@@ -105,6 +108,7 @@ GENERATED FILES
 | 
			
		||||
    * ax_check_qt.m4 - auxiliary macro definition file
 | 
			
		||||
    * resolve-debbuilddeps.sh - script to install debian package dependencies
 | 
			
		||||
    * resolve-rpmbuilddeps.sh - script to install RPM package dependencies
 | 
			
		||||
    * build-in-docker.sh - script to build the project encapsulated in a docker container
 | 
			
		||||
    * build-resource-file.sh - build resource.qrc file from a resource directory
 | 
			
		||||
    * mac-create-app-bundle.sh - script to create apple mac os-x app-bundle
 | 
			
		||||
    * AUTHORS - replace your name in AUTHORS before first run
 | 
			
		||||
@@ -119,7 +123,7 @@ GENERATED FILES
 | 
			
		||||
    * 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
 | 
			
		||||
    * test/makefile.am - if you enabled AX_BUILD_TEST or 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
 | 
			
		||||
@@ -170,7 +174,7 @@ FILE DEPENDENCIES
 | 
			
		||||
    * test/makefile.am depends on AX_USE_LIBTOOL
 | 
			
		||||
    * html/makefile.am depends on AX_BUILD_HTML
 | 
			
		||||
    * doc/doxyfile.in depends on AX_BUILD_EXAMPLES
 | 
			
		||||
    * debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT,
 | 
			
		||||
    * debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT
 | 
			
		||||
      AX_CXX_QT, AX_CHECK_QT, AX_REQUIRE_QT, AX_USE_LIBTOOL
 | 
			
		||||
    * debian/${DEFAULT_PROJECT_NAME}.install depends on AX_USE_LIBTOOL
 | 
			
		||||
    * debian/${DEFAULT_PROJECT_NAME}.dirs depends on AX_USE_LIBTOOL
 | 
			
		||||
@@ -207,6 +211,7 @@ FILES
 | 
			
		||||
      * Enable Debian packaging by calling "make deb": AX_USE_DEBIAN_PACKAGING
 | 
			
		||||
      * Enable RPM packaging by calling "make rpm": AX_USE_RPM_PACKAGING
 | 
			
		||||
      * Enable C++ testing using CppUnit: AX_USE_CPPUNIT
 | 
			
		||||
      * Enable other tests: AX_BUILD_TEST
 | 
			
		||||
      * 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)
 | 
			
		||||
@@ -404,6 +409,7 @@ copy ax_cxx_compile_stdcxx_11.m4
 | 
			
		||||
copy ax_check_qt.m4
 | 
			
		||||
copy resolve-debbuilddeps.sh
 | 
			
		||||
copy resolve-rpmbuilddeps.sh
 | 
			
		||||
copy build-in-docker.sh
 | 
			
		||||
copy build-resource-file.sh
 | 
			
		||||
copy mac-create-app-bundle.sh
 | 
			
		||||
AUTHOR=$(gpg -K  | sed -n 's,uid *,,p' | sort | head -1)
 | 
			
		||||
@@ -439,6 +445,7 @@ AX_INIT_STANDARD_PROJECT
 | 
			
		||||
#AX_USE_DEBIAN_PACKAGING
 | 
			
		||||
#AX_USE_RPM_PACKAGING
 | 
			
		||||
#AX_USE_CPPUNIT
 | 
			
		||||
#AX_BUILD_TEST
 | 
			
		||||
#AX_BUILD_EXAMPLES
 | 
			
		||||
#AX_BUILD_HTML
 | 
			
		||||
 | 
			
		||||
@@ -458,8 +465,8 @@ IFS="$SAVEIFS"
 | 
			
		||||
PackageName=${PackageName[*]^}
 | 
			
		||||
PackageName=${PackageName// /}
 | 
			
		||||
 | 
			
		||||
if ! testtag "AX_CHECK_QT" configure.ac && \
 | 
			
		||||
   ! testtag "AX_REQUIRE_QT" configure.ac; then
 | 
			
		||||
if ! testtag AX_CHECK_QT && \
 | 
			
		||||
   ! testtag AX_REQUIRE_QT; then
 | 
			
		||||
    echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | \
 | 
			
		||||
        to --condition AX_USE_CXX src/makefile.am
 | 
			
		||||
elif ! test -e src/makefile.am; then
 | 
			
		||||
@@ -695,10 +702,20 @@ namespace NAMESPACE {
 | 
			
		||||
EOF
 | 
			
		||||
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_SCRIPTS scripts/makefile.am
 | 
			
		||||
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_DOXYGEN doc/makefile.am
 | 
			
		||||
to --condition AX_USE_CPPUNIT test/makefile.am <<EOF
 | 
			
		||||
${HEADER}AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src
 | 
			
		||||
to --condition 'AX_BUILD_TEST|AX_USE_CPPUNIT' test/makefile.am <<EOF
 | 
			
		||||
${HEADER}$(if testtag AX_USE_CXX; then
 | 
			
		||||
cat <<EOF2
 | 
			
		||||
AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src
 | 
			
		||||
AM_LDFLAGS = -L\${abs_top_builddir}/src/.libs
 | 
			
		||||
$(if testtag AX_USE_LIBTOOL; then
 | 
			
		||||
cat <<EOF3
 | 
			
		||||
LDADD = -l${PACKAGE_NAME#lib}
 | 
			
		||||
EOF3
 | 
			
		||||
fi)
 | 
			
		||||
EOF2
 | 
			
		||||
fi)
 | 
			
		||||
 | 
			
		||||
TESTS =
 | 
			
		||||
 | 
			
		||||
MAINTAINERCLEANFILES = makefile.in
 | 
			
		||||
EOF
 | 
			
		||||
@@ -761,7 +778,7 @@ if testtag AX_USE_DOXYGEN; then
 | 
			
		||||
        if testtag AX_BUILD_HTML; then
 | 
			
		||||
            doxyadd INPUT "@top_srcdir@/html"
 | 
			
		||||
        fi
 | 
			
		||||
        if testtag AX_USE_CPPUNIT; then
 | 
			
		||||
        if testtag AX_BUILD_TEST 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 *.wt'
 | 
			
		||||
@@ -802,11 +819,12 @@ if testtag AX_USE_DEBIAN_PACKAGING; then
 | 
			
		||||
 | 
			
		||||
 -- @AUTHOR@  @BUILD_DATE@
 | 
			
		||||
EOF
 | 
			
		||||
    BUILD_DEPENDS="debhelper, subversion, svn2cl, pkg-config, automake, libtool, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | qt4-default | qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)"
 | 
			
		||||
    to debian/control.in <<EOF
 | 
			
		||||
Source: @PACKAGE_NAME@
 | 
			
		||||
Priority: extra
 | 
			
		||||
Maintainer: @AUTHOR@
 | 
			
		||||
Build-Depends: debhelper, subversion, pkg-config, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | qt4-default | qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)
 | 
			
		||||
Build-Depends: ${BUILD-DEPENDS}
 | 
			
		||||
 | 
			
		||||
Package: @PACKAGE_NAME@
 | 
			
		||||
Section: $(if testtag AX_USE_LIBTOOL; then echo  "libs"; fi)
 | 
			
		||||
@@ -820,7 +838,7 @@ $(      if testtag AX_USE_LIBTOOL; then
 | 
			
		||||
Package: @PACKAGE_NAME@-dev
 | 
			
		||||
Section: libdevel
 | 
			
		||||
Architecture: any
 | 
			
		||||
Depends: @PACKAGE_NAME@ (= \${binary:Version})
 | 
			
		||||
Depends: @PACKAGE_NAME@ (= \${binary:Version}), ${BUILD-DEPENDS}
 | 
			
		||||
Description: @DESCRIPTION@ - Development Package
 | 
			
		||||
@README_DEB@
 | 
			
		||||
EOF2
 | 
			
		||||
@@ -1011,3 +1029,8 @@ fi
 | 
			
		||||
if test "$build" -eq 1; then
 | 
			
		||||
    make $buildtarget
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#### Build In Docker If User Requires ####
 | 
			
		||||
if test "$docker" -eq 1; then
 | 
			
		||||
    ./build-in-docker.sh
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								build-in-docker.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								build-in-docker.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#! /bin/bash -ex
 | 
			
		||||
 | 
			
		||||
# build and test everything in a fresh docker installation
 | 
			
		||||
 | 
			
		||||
DOCKER_ID=$(docker run -d -v $(pwd):/workdir -w /workdir ubuntu sleep infinity)
 | 
			
		||||
trap "docker rm -f ${DOCKER_ID}" INT TERM EXIT
 | 
			
		||||
docker exec ${DOCKER_ID} apt-get install -y software-properties-common apt-transport-https dpkg-dev
 | 
			
		||||
docker exec ${DOCKER_ID} apt-add-repository universe
 | 
			
		||||
docker exec ${DOCKER_ID} apt-add-repository https://dev.marc.waeckerlin.org/repository
 | 
			
		||||
wget -O- https://dev.marc.waeckerlin.org/repository/PublicKey \
 | 
			
		||||
   | docker exec -i ${DOCKER_ID} apt-key add -
 | 
			
		||||
docker exec ${DOCKER_ID} apt-get update
 | 
			
		||||
docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh
 | 
			
		||||
docker exec -u $(id -u) ${DOCKER_ID} svn upgrade || true
 | 
			
		||||
docker exec -u $(id -u) ${DOCKER_ID} ./bootstrap.sh -t "all check distcheck"
 | 
			
		||||
							
								
								
									
										2
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
Source: @PACKAGE_NAME@
 | 
			
		||||
Priority: extra
 | 
			
		||||
Maintainer: @AUTHOR@
 | 
			
		||||
Build-Depends: debhelper, subversion, pkg-config, automake, libtool, autotools-dev, lsb-release , doxygen, graphviz, mscgen, libcppunit-dev, libz-dev, binutils-dev @DEB_DEPEND_IFEXISTS@
 | 
			
		||||
Build-Depends: debhelper, subversion, subversion-tools, pkg-config, automake, libtool, autotools-dev, lsb-release , doxygen, graphviz, mscgen, libcppunit-dev, libz-dev, binutils-dev @DEB_DEPEND_IFEXISTS@
 | 
			
		||||
 | 
			
		||||
Package: @PACKAGE_NAME@
 | 
			
		||||
Section: libs
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ function install() {
 | 
			
		||||
            return 0
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    return 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TO_INSTALL=
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user