updated build system
This commit is contained in:
29
ChangeLog
29
ChangeLog
@@ -1,3 +1,32 @@
|
|||||||
|
2015-11-03 23:01 marc
|
||||||
|
|
||||||
|
* debian/control.in: set section
|
||||||
|
|
||||||
|
2015-11-03 22:02 marc
|
||||||
|
|
||||||
|
* AUTHORS: AUTHOR updated to new homepage
|
||||||
|
|
||||||
|
2015-11-03 15:38 marc
|
||||||
|
|
||||||
|
* AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README, aclocal.m4,
|
||||||
|
ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4,
|
||||||
|
ax_init_standard_project.m4, bootstrap-build-environment.spec.in,
|
||||||
|
bootstrap.sh, build-resource-file.sh, configure.ac, debian,
|
||||||
|
debian/changelog.in, debian/compat, debian/control.in,
|
||||||
|
debian/docs, debian/rules, doc, doc/doxyfile.in, doc/makefile.am,
|
||||||
|
mac-create-app-bundle.sh, makefile.am, resolve-debbuilddeps.sh,
|
||||||
|
resolve-rpmbuilddeps.sh, scripts, scripts/ax_check_qt.m4,
|
||||||
|
scripts/ax_cxx_compile_stdcxx_11.m4,
|
||||||
|
scripts/ax_init_standard_project.m4, scripts/bootstrap.sh,
|
||||||
|
scripts/build-resource-file.sh, scripts/mac-create-app-bundle.sh,
|
||||||
|
scripts/makefile.am, scripts/resolve-debbuilddeps.sh,
|
||||||
|
scripts/resolve-rpmbuilddeps.sh: initial release for packaging
|
||||||
|
|
||||||
|
2015-11-03 15:06 marc
|
||||||
|
|
||||||
|
* ax_init_standard_project.m4, resolve-debbuilddeps.sh: can be
|
||||||
|
built in fresh docker container
|
||||||
|
|
||||||
2015-11-03 15:05 marc
|
2015-11-03 15:05 marc
|
||||||
|
|
||||||
* bootstrap.sh, resolve-debbuilddeps.sh: some improvements
|
* bootstrap.sh, resolve-debbuilddeps.sh: some improvements
|
||||||
|
@@ -265,14 +265,8 @@ maintainer-clean-cxx-targets:
|
|||||||
EOF
|
EOF
|
||||||
])
|
])
|
||||||
|
|
||||||
# use this in configure.ac to support CppUnit for C++ unit tests
|
# use this in configure.ac to support tests without CppUnit
|
||||||
AC_DEFUN([AX_USE_CPPUNIT], [
|
AC_DEFUN([AX_BUILD_TEST], [
|
||||||
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
|
|
||||||
AC_CONFIG_FILES([test/makefile])
|
AC_CONFIG_FILES([test/makefile])
|
||||||
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-test-targets], [test/makefile.in])
|
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
|
test -f test/makefile.in && cat >> test/makefile.in <<EOF
|
||||||
@@ -283,6 +277,17 @@ maintainer-clean-test-targets:
|
|||||||
EOF
|
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
|
# 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])
|
||||||
|
29
bootstrap.sh
29
bootstrap.sh
@@ -19,6 +19,7 @@ PROJECT_PATH=$(pwd)
|
|||||||
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
|
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
|
||||||
configure=0
|
configure=0
|
||||||
build=0
|
build=0
|
||||||
|
docker=0
|
||||||
buildtarget="distcheck"
|
buildtarget="distcheck"
|
||||||
overwrite=0
|
overwrite=0
|
||||||
rebuild=0
|
rebuild=0
|
||||||
@@ -26,6 +27,7 @@ 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;;
|
||||||
|
(--docker|-d) docker=1;;
|
||||||
(--build|-b) configure=1; build=1;;
|
(--build|-b) configure=1; build=1;;
|
||||||
(--target|-t) shift; configure=1; build=1; buildtarget="$1";;
|
(--target|-t) shift; configure=1; build=1; buildtarget="$1";;
|
||||||
(--overwrite|-o) overwrite=1;;
|
(--overwrite|-o) overwrite=1;;
|
||||||
@@ -42,6 +44,7 @@ SYNOPSIS
|
|||||||
OPTIONS
|
OPTIONS
|
||||||
|
|
||||||
--configure, -c call ./configure after initialization
|
--configure, -c call ./configure after initialization
|
||||||
|
--docker, -d build and run tests in a docker instance
|
||||||
--build, -b build, also call ./configure && make distcheck
|
--build, -b build, also call ./configure && make distcheck
|
||||||
--target, -t <target> same as -b, but specify target instead of distcheck
|
--target, -t <target> same as -b, but specify target instead of distcheck
|
||||||
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros)
|
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros)
|
||||||
@@ -105,6 +108,7 @@ GENERATED FILES
|
|||||||
* ax_check_qt.m4 - auxiliary macro definition file
|
* ax_check_qt.m4 - auxiliary macro definition file
|
||||||
* resolve-debbuilddeps.sh - script to install debian package dependencies
|
* resolve-debbuilddeps.sh - script to install debian package dependencies
|
||||||
* resolve-rpmbuilddeps.sh - script to install RPM 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
|
* 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
|
* mac-create-app-bundle.sh - script to create apple mac os-x app-bundle
|
||||||
* AUTHORS - replace your name in AUTHORS before first run
|
* AUTHORS - replace your name in AUTHORS before first run
|
||||||
@@ -119,7 +123,7 @@ GENERATED FILES
|
|||||||
* scripts/makefile.in - if you enabled AX_USE_SCRIPTS
|
* scripts/makefile.in - if you enabled AX_USE_SCRIPTS
|
||||||
* doc/makefile.am - if you enabled AX_USE_DOXYGEN
|
* doc/makefile.am - if you enabled AX_USE_DOXYGEN
|
||||||
* doc/doxyfile.in - if you enabled AX_USE_DOXYGEN
|
* doc/doxyfile.in - if you enabled AX_USE_DOXYGEN
|
||||||
* test/makefile.am - if you enabled AX_BUILD_TEST
|
* test/makefile.am - if you enabled AX_BUILD_TEST or AX_USE_CPPUNIT
|
||||||
* examples/makefile.am - if you enabled AX_BUILD_EXAMPLES
|
* examples/makefile.am - if you enabled AX_BUILD_EXAMPLES
|
||||||
* debian/changelog.in - if you enabled AX_USE_DEBIAN_PACKAGING
|
* debian/changelog.in - if you enabled AX_USE_DEBIAN_PACKAGING
|
||||||
* debian/control.in - if you enabled AX_USE_DEBIAN_PACKAGING
|
* debian/control.in - if you enabled AX_USE_DEBIAN_PACKAGING
|
||||||
@@ -170,14 +174,14 @@ FILE DEPENDENCIES
|
|||||||
* test/makefile.am depends on AX_USE_LIBTOOL
|
* test/makefile.am depends on AX_USE_LIBTOOL
|
||||||
* html/makefile.am depends on AX_BUILD_HTML
|
* html/makefile.am depends on AX_BUILD_HTML
|
||||||
* doc/doxyfile.in depends on AX_BUILD_EXAMPLES
|
* doc/doxyfile.in depends on AX_BUILD_EXAMPLES
|
||||||
* debian/control.in depends on AX_USE_DOXYGEN, AX_BUILD_TEST,
|
* debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT
|
||||||
AX_CXX_QT, AX_CHECK_QT, AX_REQUIRE_QT, AX_USE_LIBTOOL
|
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}.install depends on AX_USE_LIBTOOL
|
||||||
* debian/${DEFAULT_PROJECT_NAME}.dirs 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.install depends on AX_USE_LIBTOOL
|
||||||
* debian/${DEFAULT_PROJECT_NAME}-dev.dirs depends on AX_USE_LIBTOOL
|
* debian/${DEFAULT_PROJECT_NAME}-dev.dirs depends on AX_USE_LIBTOOL
|
||||||
* ${DEFAULT_PROJECT_NAME}.spec.in depends on AX_USE_RPM_PACKAGING,
|
* ${DEFAULT_PROJECT_NAME}.spec.in depends on AX_USE_RPM_PACKAGING,
|
||||||
AX_USE_LIBTOOL, AX_CHECK_QT, AX_REQUIRE_QT, AX_CXX_QT, AX_BUILD_TEST
|
AX_USE_LIBTOOL, AX_CHECK_QT, AX_REQUIRE_QT, AX_CXX_QT, AX_USE_CPPUNIT
|
||||||
|
|
||||||
FILES
|
FILES
|
||||||
|
|
||||||
@@ -206,7 +210,7 @@ FILES
|
|||||||
* Enable Doxygen documentation generation: AX_USE_DOXYGEN
|
* 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
|
||||||
* Enable RPM packaging by calling "make rpm": AX_USE_RPM_PACKAGING
|
* Enable RPM packaging by calling "make rpm": AX_USE_RPM_PACKAGING
|
||||||
* Enable C++ testing using CppUnit: AX_BUILD_TEST plus AX_USE_CXX
|
* Enable C++ testing using CppUnit: AX_USE_CPPUNIT
|
||||||
* Enable other tests: AX_BUILD_TEST
|
* Enable other tests: AX_BUILD_TEST
|
||||||
* Enable C++ examples, i.e. for libraries: AX_BUILD_EXAMPLES
|
* 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)
|
* Check for C++11 support: AX_CXX_COMPILE_STDCXX_11 (see ax_cxx_compile_stdcxx_11.m4)
|
||||||
@@ -405,6 +409,7 @@ copy ax_cxx_compile_stdcxx_11.m4
|
|||||||
copy ax_check_qt.m4
|
copy ax_check_qt.m4
|
||||||
copy resolve-debbuilddeps.sh
|
copy resolve-debbuilddeps.sh
|
||||||
copy resolve-rpmbuilddeps.sh
|
copy resolve-rpmbuilddeps.sh
|
||||||
|
copy build-in-docker.sh
|
||||||
copy build-resource-file.sh
|
copy build-resource-file.sh
|
||||||
copy mac-create-app-bundle.sh
|
copy mac-create-app-bundle.sh
|
||||||
AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1)
|
AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1)
|
||||||
@@ -439,6 +444,7 @@ AX_INIT_STANDARD_PROJECT
|
|||||||
#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_BUILD_TEST
|
#AX_BUILD_TEST
|
||||||
#AX_BUILD_EXAMPLES
|
#AX_BUILD_EXAMPLES
|
||||||
#AX_BUILD_HTML
|
#AX_BUILD_HTML
|
||||||
@@ -696,7 +702,7 @@ namespace NAMESPACE {
|
|||||||
EOF
|
EOF
|
||||||
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_SCRIPTS scripts/makefile.am
|
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
|
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_DOXYGEN doc/makefile.am
|
||||||
to --condition AX_BUILD_TEST test/makefile.am <<EOF
|
to --condition 'AX_BUILD_TEST|AX_USE_CPPUNIT' test/makefile.am <<EOF
|
||||||
${HEADER}$(if testtag AX_USE_CXX; then
|
${HEADER}$(if testtag AX_USE_CXX; then
|
||||||
cat <<EOF2
|
cat <<EOF2
|
||||||
AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src
|
AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src
|
||||||
@@ -772,7 +778,7 @@ if testtag AX_USE_DOXYGEN; then
|
|||||||
if testtag AX_BUILD_HTML; then
|
if testtag AX_BUILD_HTML; then
|
||||||
doxyadd INPUT "@top_srcdir@/html"
|
doxyadd INPUT "@top_srcdir@/html"
|
||||||
fi
|
fi
|
||||||
if testtag AX_BUILD_TEST; then
|
if testtag AX_BUILD_TEST AX_USE_CPPUNIT; then
|
||||||
doxyadd INPUT "@top_srcdir@/test"
|
doxyadd INPUT "@top_srcdir@/test"
|
||||||
fi
|
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'
|
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'
|
||||||
@@ -813,7 +819,7 @@ if testtag AX_USE_DEBIAN_PACKAGING; then
|
|||||||
|
|
||||||
-- @AUTHOR@ @BUILD_DATE@
|
-- @AUTHOR@ @BUILD_DATE@
|
||||||
EOF
|
EOF
|
||||||
BUILD_DEPENDS="debhelper, subversion, pkg-config, automake, libtool, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_BUILD_TEST && testtag AX_USE_CXX; 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="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
|
to debian/control.in <<EOF
|
||||||
Source: @PACKAGE_NAME@
|
Source: @PACKAGE_NAME@
|
||||||
Priority: extra
|
Priority: extra
|
||||||
@@ -882,7 +888,7 @@ $(if testtag AX_USE_DOXYGEN; then echo -n "BuildRequires: graphviz"; fi)
|
|||||||
%endif
|
%endif
|
||||||
%if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version}
|
%if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version}
|
||||||
BuildRequires: pkgconfig, redhat-lsb$(
|
BuildRequires: pkgconfig, redhat-lsb$(
|
||||||
if testtag AX_BUILD_TEST && testtag AX_USE_CXX; then
|
if testtag AX_USE_CPPUNIT; then
|
||||||
echo -n ", cppunit-devel";
|
echo -n ", cppunit-devel";
|
||||||
fi)
|
fi)
|
||||||
%if ! ( 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} )
|
%if ! ( 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} )
|
||||||
@@ -893,7 +899,7 @@ $(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "B
|
|||||||
%endif
|
%endif
|
||||||
%else%if 0%{?suse_version} || 0%{?sles_version}
|
%else%if 0%{?suse_version} || 0%{?sles_version}
|
||||||
BuildRequires: pkg-config, lsb-release$(
|
BuildRequires: pkg-config, lsb-release$(
|
||||||
if testtag AX_BUILD_TEST && testtag AX_USE_CXX; then
|
if testtag AX_USE_CPPUNIT; then
|
||||||
echo -n ", libcppunit-devel";
|
echo -n ", libcppunit-devel";
|
||||||
fi)
|
fi)
|
||||||
%if 0%{?suse_version} < 1200 || 0%{?sles_version} < 1200
|
%if 0%{?suse_version} < 1200 || 0%{?sles_version} < 1200
|
||||||
@@ -1023,3 +1029,8 @@ fi
|
|||||||
if test "$build" -eq 1; then
|
if test "$build" -eq 1; then
|
||||||
make $buildtarget
|
make $buildtarget
|
||||||
fi
|
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"
|
@@ -22,6 +22,7 @@ function install() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
TO_INSTALL=
|
TO_INSTALL=
|
||||||
|
Reference in New Issue
Block a user