From a5462e1fc2f408aa6b697300c1879b4567a51bf9 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 14:11:47 +0100 Subject: Replace deprecated AC_HELP_STRING with AS_HELP_STRING --- macros/mate-common.m4 | 2 +- macros/mate-compiler-flags.m4 | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/macros/mate-common.m4 b/macros/mate-common.m4 index bdde06a..77bfa8e 100644 --- a/macros/mate-common.m4 +++ b/macros/mate-common.m4 @@ -35,7 +35,7 @@ AC_DEFUN([MATE_COMMON_INIT], AC_DEFUN([MATE_DEBUG_CHECK], [ AC_ARG_ENABLE([debug], - AC_HELP_STRING([--enable-debug], + AS_HELP_STRING([--enable-debug], [turn on debugging]),, [enable_debug=no]) diff --git a/macros/mate-compiler-flags.m4 b/macros/mate-compiler-flags.m4 index b3a8a63..4b5ecc0 100644 --- a/macros/mate-compiler-flags.m4 +++ b/macros/mate-compiler-flags.m4 @@ -24,7 +24,7 @@ AC_DEFUN([MATE_COMPILE_WARNINGS],[ dnl ****************************** AC_ARG_ENABLE(compile-warnings, - AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], + AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], [Turn on compiler warnings]),, [enable_compile_warnings="m4_default([$1],[yes])"]) @@ -78,7 +78,7 @@ AC_DEFUN([MATE_COMPILE_WARNINGS],[ AC_MSG_RESULT($warning_flags) AC_ARG_ENABLE(iso-c, - AC_HELP_STRING([--enable-iso-c], + AS_HELP_STRING([--enable-iso-c], [Try to warn if code is not ISO C ]),, [enable_iso_c=no]) @@ -106,7 +106,7 @@ dnl For C++, do basically the same thing. AC_DEFUN([MATE_CXX_WARNINGS],[ AC_ARG_ENABLE(cxx-warnings, - AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] + AS_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] [Turn on compiler warnings.]),, [enable_cxx_warnings="m4_default([$1],[minimum])"]) @@ -132,7 +132,7 @@ AC_DEFUN([MATE_CXX_WARNINGS],[ AC_MSG_RESULT($warnCXXFLAGS) AC_ARG_ENABLE(iso-cxx, - AC_HELP_STRING([--enable-iso-cxx], + AS_HELP_STRING([--enable-iso-cxx], [Try to warn if code is not ISO C++ ]),, [enable_iso_cxx=no]) -- cgit v1.2.1 From 4d00cba6eb5a21bea9c0e5a495787e134fae7a19 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 14:24:12 +0100 Subject: mate-autogen.sh: Use autoreconf instead autopoint/libtoolize/autoconf/automake manually Based on gnome-common commits https://git.gnome.org/browse/gnome-common/commit/?id=323bbfe0989405725379cada1aa5cb361fd2999f https://git.gnome.org/browse/gnome-common/commit/?id=ac800833454ab6d38afb288773079b8ad1d5503f --- macros/mate-autogen | 83 +++++------------------------------------------------ 1 file changed, 7 insertions(+), 76 deletions(-) diff --git a/macros/mate-autogen b/macros/mate-autogen index b231084..91b35e7 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -412,35 +412,6 @@ for configure_ac in $configure_files; do printbold "Processing $configure_ac" cd $dirname - # Note that the order these tools are called should match what - # autoconf's "autoupdate" package does. See bug 138584 for - # details. - - # programs that might install new macros get run before aclocal - if grep "^A[CM]_PROG_LIBTOOL" $basename >/dev/null || - grep "^LT_INIT" $basename >/dev/null; then - printbold "Running $LIBTOOLIZE..." - $LIBTOOLIZE --force --copy || exit 1 - fi - - if grep "^AM_GLIB_GNU_GETTEXT" $basename >/dev/null; then - printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages." - echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1 - elif grep "^AM_GNU_GETTEXT" $basename >/dev/null; then - if grep "^AM_GNU_GETTEXT_VERSION" $basename > /dev/null; then - printbold "Running autopoint..." - autopoint --force || exit 1 - else - printbold "Running $GETTEXTIZE... Ignore non-fatal messages." - echo "no" | $GETTEXTIZE --force --copy || exit 1 - fi - fi - - if grep "^AC_PROG_INTLTOOL" $basename >/dev/null || - grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then - printbold "Running $INTLTOOLIZE..." - $INTLTOOLIZE --force --copy --automake || exit 1 - fi if grep "^GTK_DOC_CHECK" $basename >/dev/null; then printbold "Running $GTKDOCIZE..." $GTKDOCIZE --copy || exit 1 @@ -451,54 +422,14 @@ for configure_ac in $configure_files; do mate-doc-common --copy || exit 1 fi - # Now run aclocal to pull in any additional macros needed - - # if the AC_CONFIG_MACRO_DIR() macro is used, pass that - # directory to aclocal. - m4dir=`cat "$basename" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q` - if [ -n "$m4dir" ]; then - m4dir="-I $m4dir" - fi - printbold "Running $ACLOCAL..." - $ACLOCAL $m4dir $ACLOCAL_FLAGS || exit 1 - - if grep "MATE_AUTOGEN_OBSOLETE" aclocal.m4 >/dev/null; then - printerr "*** obsolete mate macros were used in $configure_ac" - fi - - # Now that all the macros are sorted, run autoconf and autoheader ... - printbold "Running $AUTOCONF..." - $AUTOCONF || exit 1 - if grep "^A[CM]_CONFIG_HEADER" $basename >/dev/null; then - printbold "Running $AUTOHEADER..." - $AUTOHEADER || exit 1 - # this prevents automake from thinking config.h.in is out of - # date, since autoheader doesn't touch the file if it doesn't - # change. - test -f config.h.in && touch config.h.in - fi - - # Finally, run automake to create the makefiles ... - printbold "Running $AUTOMAKE..." - if [ -f COPYING ]; then - cp -pf COPYING COPYING.autogen_bak - fi - if [ -f INSTALL ]; then - cp -pf INSTALL INSTALL.autogen_bak - fi - if [ $REQUIRED_AUTOMAKE_VERSION != 1.4 ]; then - $AUTOMAKE --gnu --add-missing --force --copy -Wno-portability || exit 1 - else - $AUTOMAKE --gnu --add-missing --copy || exit 1 + if grep "^AC_PROG_INTLTOOL" $basename >/dev/null || + grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then + printbold "Running $INTLTOOLIZE..." + $INTLTOOLIZE --force --copy --automake || exit 1 fi - if [ -f COPYING.autogen_bak ]; then - cmp COPYING COPYING.autogen_bak > /dev/null || cp -pf COPYING.autogen_bak COPYING - rm -f COPYING.autogen_bak - fi - if [ -f INSTALL.autogen_bak ]; then - cmp INSTALL INSTALL.autogen_bak > /dev/null || cp -pf INSTALL.autogen_bak INSTALL - rm -f INSTALL.autogen_bak - fi + # Now that all the macros are sorted, run autoreconf ... + printbold "Running autoreconf..." + autoreconf --verbose --force --install -Wno-portability || exit 1 cd "$topdir" fi -- cgit v1.2.1 From da4619a11bf11b4f6c5e15d93ec796aee49916d8 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 14:28:13 +0100 Subject: macros/mate-autogen: Create m4 directory if it doesnt exits This is a automake bug fixed in automake 1.13.2 Based on gnome commit: https://git.gnome.org/browse/gnome-common/commit/?id=47aa8189803d5f1bf60701f52795ef8735064b6c --- macros/mate-autogen | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/macros/mate-autogen b/macros/mate-autogen index 91b35e7..5b3a44d 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -412,6 +412,14 @@ for configure_ac in $configure_files; do printbold "Processing $configure_ac" cd $dirname + # if the AC_CONFIG_MACRO_DIR() macro is used, create that directory + # This is a automake bug fixed in automake 1.13.2 + # See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13514 + m4dir=`autoconf --trace 'AC_CONFIG_MACRO_DIR:$1'` + if [ -n "$m4dir" ]; then + mkdir -p $m4dir + fi + if grep "^GTK_DOC_CHECK" $basename >/dev/null; then printbold "Running $GTKDOCIZE..." $GTKDOCIZE --copy || exit 1 -- cgit v1.2.1 From 326dd32af1ecc9df2013b516f7f8f427a4b6cf5c Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 14:41:52 +0100 Subject: Add code coverage support Add a MATE_CODE_COVERAGE m4 macro to allow projects to easily add code coverage support using lcov. This is heavily based on the code coverage tooling from GLib (LGPLv2.1+), originally written by Patrick Hulin and modified by Matthias Clasen, Stef Walter and Simon McVittie since. Adapted for use in MATE by Sander Sweers. See GNOME commit: https://git.gnome.org/browse/gnome-common/commit/?id=493d55921f26ac3a9a3b7cc33756c88daace329e And follow up commits: https://git.gnome.org/browse/gnome-common/log/macros2/gnome-code-coverage.m4 --- macros/Makefile.am | 3 +- macros/mate-autogen | 3 + macros/mate-code-coverage.m4 | 165 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 macros/mate-code-coverage.m4 diff --git a/macros/Makefile.am b/macros/Makefile.am index a94ad27..534844e 100644 --- a/macros/Makefile.am +++ b/macros/Makefile.am @@ -2,7 +2,8 @@ MATE2_MACROS = \ mate-common.m4 \ - mate-compiler-flags.m4 + mate-compiler-flags.m4 \ + mate-code-coverage.m4 EXTRA_DIST = $(MATE2_MACROS) mate-autogen diff --git a/macros/mate-autogen b/macros/mate-autogen index 5b3a44d..63bf691 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -320,6 +320,9 @@ for configure_ac in $configure_files; do grep "^MATE_CXX_WARNINGS" $configure_ac >/dev/null; then require_m4macro mate-compiler-flags.m4 fi + if grep "^MATE_CODE_COVERAGE" $configure_ac >/dev/null; then + require_m4macro mate-code-coverage.m4 + fi done #tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13 diff --git a/macros/mate-code-coverage.m4 b/macros/mate-code-coverage.m4 new file mode 100644 index 0000000..d38e165 --- /dev/null +++ b/macros/mate-code-coverage.m4 @@ -0,0 +1,165 @@ +dnl **Based on GNOME's code coverage** +dnl MATE_CODE_COVERAGE +dnl +dnl Defines CODE_COVERAGE_CFLAGS and CODE_COVERAGE_LDFLAGS which should be +dnl included in the CFLAGS and LIBS/LDFLAGS variables of every build target +dnl (program or library) which should be built with code coverage support. +dnl Also defines MATE_CODE_COVERAGE_RULES which should be substituted in your +dnl Makefile; and $enable_code_coverage which can be used in subsequent +dnl configure output. +dnl +dnl Note that all optimisation flags in CFLAGS must be disabled when code +dnl coverage is enabled. +dnl +dnl Derived from Makefile.decl in GLib, originally licenced under LGPLv2.1+. +dnl This file is licenced under LGPLv2.1+. +dnl +dnl Usage example: +dnl configure.ac: +dnl MATE_CODE_COVERAGE +dnl +dnl Makefile.am: +dnl @MATE_CODE_COVERAGE_RULES@ +dnl my_program_LIBS = … $(CODE_COVERAGE_LDFLAGS) … +dnl my_program_CFLAGS = … $(CODE_COVERAGE_CFLAGS) … +dnl +dnl This results in a “check-code-coverage” rule being added to any Makefile.am +dnl which includes “@MATE_CODE_COVERAGE_RULES@” (assuming the module has been +dnl configured with --enable-code-coverage). Running `make check-code-coverage` +dnl in that directory will run the module’s test suite (`make check`) and build +dnl a code coverage report detailing the code which was touched, then print the +dnl URI for the report. + +AC_DEFUN([MATE_CODE_COVERAGE],[ + dnl Check for --enable-code-coverage + AC_MSG_CHECKING([whether to build with code coverage support]) + AC_ARG_ENABLE([code-coverage], AS_HELP_STRING([--enable-code-coverage], [Whether to enable code coverage support]),, enable_code_coverage=no) + AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test x$enable_code_coverage = xyes]) + AC_SUBST([CODE_COVERAGE_ENABLED], [$enable_code_coverage]) + AC_MSG_RESULT($enable_code_coverage) + + AS_IF([ test "$enable_code_coverage" = "yes" ], [ + dnl Check if gcc is being used + AS_IF([ test "$GCC" = "no" ], [ + AC_MSG_ERROR([not compiling with gcc, which is required for gcov code coverage]) + ]) + + # List of supported lcov versions. + lcov_version_list="1.6 1.7 1.8 1.9 1.10" + + AC_CHECK_PROG([LCOV], [lcov], [lcov]) + AC_CHECK_PROG([GENHTML], [genhtml], [genhtml]) + + AS_IF([ test "$LCOV" ], [ + AC_CACHE_CHECK([for lcov version], mate_cv_lcov_version, [ + mate_cv_lcov_version=invalid + lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` + for lcov_check_version in $lcov_version_list; do + if test "$lcov_version" = "$lcov_check_version"; then + mate_cv_lcov_version="$lcov_check_version (ok)" + fi + done + ]) + ], [ + lcov_msg="To enable code coverage reporting you must have one of the following lcov versions installed: $lcov_version_list" + AC_MSG_ERROR([$lcov_msg]) + ]) + + case $mate_cv_lcov_version in + ""|invalid[)] + lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)." + AC_MSG_ERROR([$lcov_msg]) + LCOV="exit 0;" + ;; + esac + + AS_IF([ test -z "$GENHTML" ], [ + AC_MSG_ERROR([Could not find genhtml from the lcov package]) + ]) + + dnl Build the code coverage flags + CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_LDFLAGS="-lgcov" + + AC_SUBST([CODE_COVERAGE_CFLAGS]) + AC_SUBST([CODE_COVERAGE_LDFLAGS]) + ]) + +MATE_CODE_COVERAGE_RULES=' +# Code coverage +# +# Optional: +# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. +# (Default: $(top_builddir)) +# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated +# by lcov for code coverage. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info) +# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage +# reports to be created. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage) +# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the lcov instance. +# (Default: empty) +# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml +# instance. (Default: empty) +# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore +# +# The generated report will be titled using the $(PACKAGE_NAME) and +# $(PACKAGE_VERSION). In order to add the current git hash to the title, +# use the git-version-gen script, available online. + +# Optional variables +CODE_COVERAGE_DIRECTORY ?= $(top_builddir) +CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info +CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage +CODE_COVERAGE_LCOV_OPTIONS ?= +CODE_COVERAGE_GENHTML_OPTIONS ?= +CODE_COVERAGE_IGNORE_PATTERN ?= + +code_coverage_quiet = $(code_coverage_quiet_$(V)) +code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY)) +code_coverage_quiet_0 = --quiet + +# Use recursive makes in order to ignore errors during check +check-code-coverage: +ifeq ($(CODE_COVERAGE_ENABLED),yes) + -$(MAKE) $(AM_MAKEFLAGS) -k check + $(MAKE) $(AM_MAKEFLAGS) code-coverage-capture +else + @echo "Need to reconfigure with --enable-code-coverage" +endif + +# Capture code coverage data +code-coverage-capture: code-coverage-capture-hook +ifeq ($(CODE_COVERAGE_ENABLED),yes) + $(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_OPTIONS) + $(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" + -@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp + LANG=C $(GENHTML) $(code_coverage_quiet) --prefix $(CODE_COVERAGE_DIRECTORY) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS) + @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html" +else + @echo "Need to reconfigure with --enable-code-coverage" +endif + +# Hook rule executed before code-coverage-capture, overridable by the user +code-coverage-capture-hook: + +ifeq ($(CODE_COVERAGE_ENABLED),yes) +clean: code-coverage-clean +code-coverage-clean: + -$(LCOV) --directory $(top_builddir) -z + -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY) + -find . -name "*.gcda" -o -name "*.gcov" -delete +endif + +GITIGNOREFILES ?= +GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY) + +DISTCHECK_CONFIGURE_FLAGS ?= +DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage + +.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean +' + + AC_SUBST([MATE_CODE_COVERAGE_RULES]) + m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([MATE_CODE_COVERAGE_RULES])]) +]) -- cgit v1.2.1 From 5ab654b317e170e4c7e7b814d0551a646d7111d3 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 14:57:21 +0100 Subject: Fix bashisms in mate-autogen Based on GNOME commit: https://git.gnome.org/browse/gnome-common/commit/?id=101362218645db3f0fbb55e1e6ea80c4bd70f97d --- macros/mate-autogen | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/macros/mate-autogen b/macros/mate-autogen index 63bf691..6907f6e 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -18,23 +18,23 @@ # along with this program. If not, see . #name of package -PKG_NAME=${PKG_NAME:-Package} -srcdir=${srcdir:-.} +test "PKG_NAME" || PKG_NAME=Package +test "$srcdir" || srcdir=. # default version requirements ... -REQUIRED_AUTOCONF_VERSION=${REQUIRED_AUTOCONF_VERSION:-2.53} -REQUIRED_AUTOMAKE_VERSION=${REQUIRED_AUTOMAKE_VERSION:-1.9} -REQUIRED_LIBTOOL_VERSION=${REQUIRED_LIBTOOL_VERSION:-1.4.3} -REQUIRED_GETTEXT_VERSION=${REQUIRED_GETTEXT_VERSION:-0.10.40} -REQUIRED_GLIB_GETTEXT_VERSION=${REQUIRED_GLIB_GETTEXT_VERSION:-2.2.0} -REQUIRED_INTLTOOL_VERSION=${REQUIRED_INTLTOOL_VERSION:-0.25} -REQUIRED_PKG_CONFIG_VERSION=${REQUIRED_PKG_CONFIG_VERSION:-0.14.0} -REQUIRED_GTK_DOC_VERSION=${REQUIRED_GTK_DOC_VERSION:-1.0} -REQUIRED_DOC_COMMON_VERSION=${REQUIRED_DOC_COMMON_VERSION:-1.1.0} +test "$REQUIRED_AUTOCONF_VERSION" || REQUIRED_AUTOCONF_VERSION=2.53 +test "$REQUIRED_AUTOMAKE_VERSION" || REQUIRED_AUTOMAKE_VERSION=1.9 +test "$REQUIRED_LIBTOOL_VERSION" || REQUIRED_LIBTOOL_VERSION=1.4.3 +test "$REQUIRED_GETTEXT_VERSION" || REQUIRED_GETTEXT_VERSION=0.10.40 +test "$REQUIRED_GLIB_GETTEXT_VERSION" || REQUIRED_GLIB_GETTEXT_VERSION=2.2.0 +test "$REQUIRED_INTLTOOL_VERSION" || REQUIRED_INTLTOOL_VERSION=0.25 +test "$REQUIRED_PKG_CONFIG_VERSION" || REQUIRED_PKG_CONFIG_VERSION=0.14.0 +test "$REQUIRED_GTK_DOC_VERSION" || REQUIRED_GTK_DOC_VERSION=1.0 +test "$REQUIRED_DOC_COMMON_VERSION" || REQUIRED_DOC_COMMON_VERSION=1.1.0 # a list of required m4 macros. Package can set an initial value -REQUIRED_M4MACROS=${REQUIRED_M4MACROS:-} -FORBIDDEN_M4MACROS=${FORBIDDEN_M4MACROS:-} +test "$REQUIRED_M4MACROS" || REQUIRED_M4MACROS= +test "$FORBIDDEN_M4MACROS" || FORBIDDEN_M4MACROS= # Not all echo versions allow -n, so we check what is possible. This test is # based on the one in autoconf. @@ -184,7 +184,8 @@ check_m4macros() { # but it contains only Automake's own macros, so we can ignore it. # Read the dirlist file, supported by Automake >= 1.7. - if compare_versions 1.7 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then + # If AUTOMAKE was defined, no version was detected. + if [ -z "$AUTOMAKE_VERSION" ] || compare_versions 1.7 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then cm_dirlist=`sed 's/[ ]*#.*//;/^$/d' $cm_macrodirs/dirlist` if [ -n "$cm_dirlist" ] ; then for cm_dir in $cm_dirlist; do -- cgit v1.2.1 From 4c625cd5209062aaba6eecdb95b47a219ae7c746 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 15:00:52 +0100 Subject: mate-autogen: Don't print terminal codes if stdin isn't a tty Otherwise this shows up as garbage in log files. Based on GNOME commit: https://git.gnome.org/browse/gnome-common/commit/?id=7f977b0214623142819c8b7a08839949fb9f3ec0 --- macros/mate-autogen | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/macros/mate-autogen b/macros/mate-autogen index 6907f6e..de3ddb6 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -51,8 +51,13 @@ case `echo -n x` in esac # some terminal codes ... -boldface="`tput bold 2>/dev/null`" -normal="`tput sgr0 2>/dev/null`" +if tty < /dev/null 1>/dev/null 2>&1; then + boldface="`tput bold 2>/dev/null`" + normal="`tput sgr0 2>/dev/null`" +else + boldface= + normal= +fi printbold() { echo $ECHO_N "$boldface" $ECHO_C echo "$@" -- cgit v1.2.1 From 0c346cec8d4c1eb6c668fcd4134151d2460b4e49 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 15:17:29 +0100 Subject: Fix srcdir!=builddir for Scrollkeeper Gnome BUGS urls: http://bugzilla.gnome.org/show_bug.cgi?id=315320 http://bugzilla.gnome.org/show_bug.cgi?id=409060 http://bugzilla.gnome.org/show_bug.cgi?id=685388 Based on GNOME commits: https://git.gnome.org/browse/gnome-common/commit/?id=1b2fb3fb47405908eb53d0db46329a64a1697a59 https://git.gnome.org/browse/gnome-common/commit/?id=960b1bde8d156f61340500a260402264c5320603 https://git.gnome.org/browse/gnome-common/commit/?id=ee12b92340223bb33b9da232132c44cacecc7968 --- doc-build/omf.make | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/doc-build/omf.make b/doc-build/omf.make index cb7acba..35dec24 100644 --- a/doc-build/omf.make +++ b/doc-build/omf.make @@ -36,19 +36,23 @@ omf: omf_timestamp omf_timestamp: $(omffile) -for file in $(omffile); do \ - scrollkeeper-preinstall $(docdir)/$(docname).xml $(srcdir)/$$file $$file.out; \ + absfile=$(srcdir)/$$file; \ + test -r $$file && absfile=$$file; \ + scrollkeeper-preinstall $(docdir)/$(docname).xml $$absfile $$file.out; \ done; \ touch omf_timestamp install-data-hook-omf: $(mkinstalldirs) $(DESTDIR)$(omf_dest_dir) for file in $(omffile); do \ - $(INSTALL_DATA) $$file.out $(DESTDIR)$(omf_dest_dir)/$$file; \ + absfile=$(srcdir)/$$file.out; \ + test -r $$file.out && absfile=$$file.out; \ + $(INSTALL_DATA) $$absfile $(DESTDIR)$(omf_dest_dir)/$$file; \ done -scrollkeeper-update -p $(DESTDIR)$(scrollkeeper_localstate_dir) -o $(DESTDIR)$(omf_dest_dir) uninstall-local-omf: - -for file in $(srcdir)/*.omf; do \ + -for file in $(omffile); do \ basefile=`basename $$file`; \ rm -f $(DESTDIR)$(omf_dest_dir)/$$basefile; \ done -- cgit v1.2.1 From ab26b36ea5a8c3afccd13e60165f89678b73c7f3 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 15:19:41 +0100 Subject: Check for glibtoolize in gnome-autogen.sh Gnome BUG url: http://bugzilla.gnome.org/show_bug.cgi?id=564558 Based on GNOME commit: https://git.gnome.org/browse/gnome-common/commit/?id=70422b555f881acc7523818bdea22dea84dd5901 --- macros/mate-autogen | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macros/mate-autogen b/macros/mate-autogen index de3ddb6..255cdc9 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -356,7 +356,7 @@ version_check automake AUTOMAKE "$automake_progs" $REQUIRED_AUTOMAKE_VERSION \ ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/` if $want_libtool; then - version_check libtool LIBTOOLIZE libtoolize $REQUIRED_LIBTOOL_VERSION \ + version_check libtool LIBTOOLIZE "libtoolize glibtoolize" $REQUIRED_LIBTOOL_VERSION \ "http://ftp.gnu.org/pub/gnu/libtool/libtool-$REQUIRED_LIBTOOL_VERSION.tar.gz" require_m4macro libtool.m4 fi -- cgit v1.2.1 From 2c0c0cc3954d08542d41a796926a29307076a154 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 15:22:38 +0100 Subject: Trace AC_CONFIG_SUBDIRS with autoconf Find configure.ac and configure.in files using the trace functionality of autoconf in order to skip build directories from incomplete make distcheck runs. GNOME bug url: http://bugzilla.gnome.org/show_bug.cgi?id=510713 Based on GNOME commit: https://git.gnome.org/browse/gnome-common/commit/?id=4668cc8250c15119dc7bdbbf842da53f4fe478fe --- macros/mate-autogen | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/macros/mate-autogen b/macros/mate-autogen index 255cdc9..f2c0910 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -280,7 +280,24 @@ want_gtk_doc=false want_yelp_tools=false want_maintainer_mode=false -configure_files="`find $srcdir -name '{arch}' -prune -o -name '_darcs' -prune -o -name '.??*' -prune -o -name configure.ac -print -o -name configure.in -print`" +find_configure_files() { + configure_ac= + if test -f "$1/configure.ac"; then + configure_ac="$1/configure.ac" + elif test -f "$1/configure.in"; then + configure_ac="$1/configure.in" + fi + if test "x$configure_ac" != x; then + echo "$configure_ac" + # TODO We have not detected the right autoconf yet! + autoconf -t 'AC_CONFIG_SUBDIRS:$1' "$configure_ac" | while read dir; do + find_configure_files "$1/$dir" + done + fi +} + +configure_files="`find_configure_files .`" + for configure_ac in $configure_files; do dirname=`dirname $configure_ac` if [ -f $dirname/NO-AUTO-GEN ]; then -- cgit v1.2.1 From a1bbc3ba85d9f62c759ff9168fce150868c29dc9 Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 15:32:14 +0100 Subject: Better support of using AUTOCONF environment variable Gnome bug url: http://bugzilla.gnome.org/show_bug.cgi?id=510713 Based on GNOME commit: https://git.gnome.org/browse/gnome-common/commit/?id=4bb2a2450f67550ae761c75cb7ff2325bad54c8b --- macros/mate-autogen | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/macros/mate-autogen b/macros/mate-autogen index f2c0910..caf390f 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -280,6 +280,13 @@ want_gtk_doc=false want_yelp_tools=false want_maintainer_mode=false +#tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13 +WANT_AUTOCONF_2_5=1 +export WANT_AUTOCONF_2_5 +version_check autoconf AUTOCONF 'autoconf2.50 autoconf autoconf-2.53' $REQUIRED_AUTOCONF_VERSION \ + "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz" +AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/` + find_configure_files() { configure_ac= if test -f "$1/configure.ac"; then @@ -289,8 +296,7 @@ find_configure_files() { fi if test "x$configure_ac" != x; then echo "$configure_ac" - # TODO We have not detected the right autoconf yet! - autoconf -t 'AC_CONFIG_SUBDIRS:$1' "$configure_ac" | while read dir; do + $AUTOCONF -t 'AC_CONFIG_SUBDIRS:$1' "$configure_ac" | while read dir; do find_configure_files "$1/$dir" done fi @@ -348,13 +354,6 @@ for configure_ac in $configure_files; do fi done -#tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13 -WANT_AUTOCONF_2_5=1 -export WANT_AUTOCONF_2_5 -version_check autoconf AUTOCONF 'autoconf2.50 autoconf autoconf-2.53' $REQUIRED_AUTOCONF_VERSION \ - "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz" -AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/` - case $REQUIRED_AUTOMAKE_VERSION in 1.4*) automake_progs="automake-1.4" ;; 1.5*) automake_progs="automake-1.14 automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8 automake-1.7 automake-1.6 automake-1.5" ;; -- cgit v1.2.1 From ee67cdc2cd7c65318d21faed1056160f8355990e Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 3 Jan 2014 15:36:05 +0100 Subject: Read the dirlist file unconditionally Based on GNOME commit: https://git.gnome.org/browse/gnome-common/commit/?id=799ae3eaebd82f961cbca82325351c3b5db7494c --- macros/mate-autogen | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/macros/mate-autogen b/macros/mate-autogen index caf390f..cda8d3a 100644 --- a/macros/mate-autogen +++ b/macros/mate-autogen @@ -188,9 +188,8 @@ check_m4macros() { # aclocal also searches a version specific dir, eg. /usr/share/aclocal-1.9 # but it contains only Automake's own macros, so we can ignore it. - # Read the dirlist file, supported by Automake >= 1.7. - # If AUTOMAKE was defined, no version was detected. - if [ -z "$AUTOMAKE_VERSION" ] || compare_versions 1.7 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then + # Read the dirlist file + if [ -s $cm_macrodirs/dirlist ]; then cm_dirlist=`sed 's/[ ]*#.*//;/^$/d' $cm_macrodirs/dirlist` if [ -n "$cm_dirlist" ] ; then for cm_dir in $cm_dirlist; do -- cgit v1.2.1