diff --git a/scripts/ax_init_standard_project.m4 b/scripts/ax_init_standard_project.m4 index e19bc03..e3fd147 100644 --- a/scripts/ax_init_standard_project.m4 +++ b/scripts/ax_init_standard_project.m4 @@ -12,29 +12,25 @@ m4_define(x_least, m4_ifdef([x_least_fix], [x_least_fix], m4_ifdef([x_least_diff], mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" - for path in . .. ../..; do + for path in . .. ../.. ../../..; do if test -d .svn; then VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') - if test -z "${VCS_REVISION}"; then VCS_REVISION=0; fi - break; + if test -n "${VCS_REVISION}"; then break; fi elif test -d .git; then VCS_REVISION=$(git rev-list --all --count) - if test -z "${VCS_REVISION}"; then VCS_REVISION=0; fi - break; + if test -n "${VCS_REVISION}"; then break; fi fi done echo $ECHO_N $(($VCS_REVISION)) ]), mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" - for path in . .. ../..; do + for path in . .. ../.. ../../..; do if test -d .svn; then VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') - if test -z "${VCS_REVISION}"; then VCS_REVISION=0; fi - break; + if test -n "${VCS_REVISION}"; then break; fi elif test -d .git; then VCS_REVISION=$(git rev-list --all --count) - if test -z "${VCS_REVISION}"; then VCS_REVISION=0; fi - break; + if test -n "${VCS_REVISION}"; then break; fi fi done # Mac does not support LEAST > 255 @@ -48,15 +44,13 @@ m4_define(x_least, m4_ifdef([x_least_fix], [x_least_fix], # add to x_minor if revision number is > 256 m4_define(x_minor_diff, m4_ifdef([x_least_fix], 0, mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" - for path in . .. ../..; do + for path in . .. ../.. ../../..; do if test -d .svn; then VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') - if test -z "${VCS_REVISION}"; then VCS_REVISION=0; fi - break; + if test -n "${VCS_REVISION}"; then break; fi elif test -d .git; then VCS_REVISION=$(git rev-list --all --count) - if test -z "${VCS_REVISION}"; then VCS_REVISION=0; fi - break; + if test -n "${VCS_REVISION}"; then break; fi fi; done # Mac does not support LEAST > 255 @@ -312,6 +306,43 @@ maintainer-clean-cxx-targets: EOF ]) +# use this in configure.ac to support old school C +AC_DEFUN([AX_USE_C], [ + AC_LANG(C) + AC_PROG_CC + AC_PROG_CPP + + AC_CONFIG_FILES([src/makefile]) + + AM_CPPFLAGS+=' -I ${top_srcdir}/src -I ${top_builddir}/src -I ${srcdir} -I ${builddir}' + AM_LDFLAGS+=' -L ${top_srcdir}/src -L ${top_builddir}/src' + + # Get rid of those stupid -g -O2 options! + CXXFLAGS="${CXXFLAGS//-g -O2/}" + CFLAGS="${CFLAGS//-g -O2/}" + + # pass compile flags to make distcheck + AM_DISTCHECK_CONFIGURE_FLAGS="CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'" + AC_SUBST(AM_DISTCHECK_CONFIGURE_FLAGS) + + AC_SUBST(AM_CFLAGS) + AC_SUBST(AM_CPPFLAGS) + AC_SUBST(AM_LDFLAGS) + AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-c-targets], [src/makefile.in]) + test -f src/makefile.in && cat >> src/makefile.in <> makefile.in < rebild specific file (can be added multiple times) + --no-vcs, -n do not automatically add files to version control + --exclude-vcs, -x exclude specific file from version control --help, -h show this help --version, -v show version and date of this file @@ -109,12 +115,14 @@ RUNNING If you run ${MY_NAME}, it first generates the necessary files (see below), then first runs make distclean if a makefile exists. After this it calles aclocal, libtoolize, automake, autoconf and - optionally ./configure. + optionally ./configure. If necessary, files are added to version + control. GENERATED FILES This script copies the following files into your project environment: * ${MY_NAME} + * autogen.sh - just the basics to initialize auto tools and create configure * ax_init_standard_project.m4 - auxiliary macro definition file * ax_cxx_compile_stdcxx_11.m4 - auxiliary macro definition file * ax_check_qt.m4 - auxiliary macro definition file @@ -260,20 +268,20 @@ EOF done echo -en "\e[1m-> checking:\e[0m for version control system ..." +VCS="" +VCSDEPENDS="" if test -d .svn; then - VCS="svn" - VCSDEPENDS="subversion" + VCS="svn" + VCSDEPENDS="subversion," + echo -e " \e[32msuccess\e[0m detected ${VCS}" elif test -d .git; then - VCS="git" - VCSDEPENDS="git" + VCS="git" + VCSDEPENDS="git," + echo -e " \e[32msuccess\e[0m detected ${VCS}" else - echo -e " \e[31merror\e[0m" - echo -e "\e[1m*** must be started in root path of a subversion or git repositry\e[0m" - exit 1 + echo -e " \e[33mignored\e[0m" fi -echo -e " \e[32msuccess\e[0m detected ${VCS}" - HEADER='## @id '"\$Id\$"' ## ## This file has been added: @@ -345,7 +353,9 @@ contains() { checkdir() { if ! test -d "$1"; then # create path run mkdir -p "$1" - run ${VCS} add "$1" + if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then + run ${VCS} add "$1" + fi fi } @@ -358,13 +368,17 @@ checkfile() { } to() { + mode="u=rw,g=rw,o=r" while test $# -gt 0; do - mode="u=rw,g=rw,o=r" case "$1" in (--condition) shift # test for a tag, abort if not set if ! testtag "$1"; then return 0 fi;; + (--unless) shift # test for a tag, abort if set + if testtag "$1"; then + return 0 + fi;; (--mode) shift # test for a tag, abort if not set mode="$1";; (*) break;; @@ -390,11 +404,13 @@ to() { else echo -e " \e[32msuccess\e[0m" fi - chmod $mode $1 + run chmod $mode $1 if test $exists -eq 0; then - run ${VCS} add "$1" - if test "${VCS}" = "svn"; then - run svn propset svn:keywords "Id" "$1" + if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then + run ${VCS} add "$1" + if test "${VCS}" = "svn"; then + run svn propset svn:keywords "Id" "$1" + fi fi fi return 0 @@ -415,9 +431,11 @@ copy() { fi run cp "${source}" "$1" if test $exists -eq 0; then - run ${VCS} add "$1" - if test "${VCS}" = "svn"; then - run svn propset svn:keywords "Id" "$1" + if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then + run ${VCS} add "$1" + if test "${VCS}" = "svn"; then + run svn propset svn:keywords "Id" "$1" + fi fi fi } @@ -446,21 +464,27 @@ doxyadd() { vcs2cl() { exists=0 - if test -f "Changelog"; then + if test -f "ChangeLog"; then exists=1 - fi - if test "${VCS}" = "git"; then - ${VCS}2cl > ChangeLog else - ${VCS}2cl + touch "ChangeLog" + fi + if test -x $(which ${VCS}2cl); then + if test "${VCS}" = "git"; then + ${VCS}2cl > ChangeLog + elif test -n "${VCS}"; then + ${VCS}2cl + fi fi if test $exists -eq 0; then - run ${VCS} add ChangeLog + if test -n "${VCS}" -a $novcs -eq 0 && ! contains "ChangeLog" "${excludevcs[@]}"; then + run ${VCS} add ChangeLog + fi fi } # Check if we are in subversion root, if so, create trunk, branches, tags: -if test "${VCS}" = "svn"; then +if test "${VCS}" = "svn" -a $novcs -eq 0; then if test "$(LANG= svn info | sed -n 's,Relative URL: *,,p')" = "^/"; then svn mkdir trunk branches tags cd trunk @@ -771,7 +795,9 @@ ${HEADER}dist_bin_SCRIPTS = MAINTAINERCLEANFILES = makefile.in EOF echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_DOXYGEN doc/makefile.am -to --condition AX_BUILD_TEST test/runtests.sh < ${0%/*}/test/runtests.sh +if testtag AX_BUILD_TEST; then + to test/runtests.sh < ${0%/*}/test/runtests.sh +fi to --condition 'AX_BUILD_TEST|AX_USE_CPPUNIT' test/makefile.am < ChangeLog";; +esac) +fi +aclocal +$(if testtag AX_USE_LIBTOOL; then echo libtoolize --force; fi) +automake -a +autoconf +EOF to makefile.am<&1 | sed -n 's, is needed by.*,,p') if test -n "${FILES}"; then schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \ schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \ - schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES} + schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES} fi else - ./bootstrap.sh -t dist FILES=$(LANG= rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p') if test -n "${FILES}"; then yum install -y ${FILES} || \