From f03b6d77c4a2bcf7bdf4855a61ff6501e83021b6 Mon Sep 17 00:00:00 2001 From: Brian Tarricone Date: Tue, 28 Jul 2009 22:10:06 +0000 Subject: add --version and -V options, add required minimum version check. users who wish to require a minimum version of xdt-autogen should export XDT_AUTOGEN_REQUIRED_VERSION, set to the minimum required version that is supported. (Old svn revision: 30414) --- scripts/Makefile.am | 4 +- scripts/xdt-autogen.in | 423 -------------------------------------- scripts/xdt-autogen.in.in | 506 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 509 insertions(+), 424 deletions(-) delete mode 100644 scripts/xdt-autogen.in create mode 100644 scripts/xdt-autogen.in.in (limited to 'scripts') diff --git a/scripts/Makefile.am b/scripts/Makefile.am index a3ecd01..28fe7e1 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -20,8 +20,10 @@ xdt-autogen: Makefile $(srcdir)/xdt-autogen.in CLEANFILES = \ xdt-autogen +DISTCLEANFILES = \ + xdt-autogen.in + EXTRA_DIST = \ - xdt-autogen.in \ xdt-commit # vi:set ts=8 sw=8 noet ai: diff --git a/scripts/xdt-autogen.in b/scripts/xdt-autogen.in deleted file mode 100644 index d842a12..0000000 --- a/scripts/xdt-autogen.in +++ /dev/null @@ -1,423 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# Copyright (c) 2002-2006 -# The Xfce development team. All rights reserved. -# -# Written for Xfce by Benedikt Meurer . -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the Free -# Software Foundation; either version 2 of the License, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 59 Temple -# Place, Suite 330, Boston, MA 02111-1307 USA -# -# xdt-autogen - Part of the Xfce developer tools. -# - - -## -## Helper function to lookup configure.{in,ac} files recursively. -## Sets $CONFIGURE_FILES to the list of configure files found. -## -lookup_configure_files() -{ - if test -f "$1/configure.ac"; then - configure_file="$1/configure.ac"; - elif test -f "$1/configure.in"; then - configure_file="$1/configure.in"; - else - cat >&2 </dev/null 2>/dev/null; then - MAKE="gmake" - elif (type make) >/dev/null 2>/dev/null; then - MAKE="make" - else - cat >&2 </dev/null 2>&1 - - echo "Cleaning generated files in ${directory}..." - - (cd ${directory} ; - rm -f config.* configure configure.lineno aclocal.m4 ; - rm -f compile depcomp ltmain.sh missing install-sh ; - rm -f po/Makefile.in.in ; - rm -f stamp-h1 *.spec ; - rm -f mkinstalldirs libtool ; - rm -rf autom4te.cache ; - rm -f intltool-* gtk-doc.make) - - # determine the output files used in this package directory - output_files=`tr '\\n\\t\\\\' ' ' < ${configure_file} | sed -ne 's|.*AC_OUTPUT(\[\{0,1\}\([[:alnum:]_@/\. -]\{1,\}\).*|\1|p'`; - for output_file in $output_files; do - if test x`basename $output_file` = x"Makefile"; then - rm -f "${directory}/${output_file}.in"; - rm -f "${directory}/${output_file}.in.in"; - fi - rm -f "${directory}/${output_file}"; - done - - # determine translations used in this package directory -# translations=`tr '\\n\\\\' ' ' < ${configure_file} | sed -ne 's/.*XDT_I18N(\[\{0,1\}\([a-zA-Z_@ ]\{1,\}\).*/\1/p'`; -# for translation in $translations; do -# rm -f "${directory}/po/${translation}.gmo"; -# done - rm -f ${directory}/po/*.gmo; - done - - exit 0 -fi - - -## -## Check for autoconf, first trying autoconf-2.59, then autoconf-2.58, then -## autoconf-2.57, then autoconf-2.53, and finally simply autoconf. -## -test -z "${XDT_PROG_AUTOCONF}" && -for i in autoconf-2.61 autoconf-2.60 autoconf-2.59 autoconf-2.58 autoconf-2.57 autoconf-2.53 autoconf; do - (${i} --version) /dev/null 2>&1 && - XDT_PROG_AUTOCONF=${i} && break -done - -test -z "${XDT_PROG_AUTOCONF}" && { - cat >&2 </dev/null 2>&1; then - (${XDT_PROG_INTLTOOLIZE} --version) /dev/null 2>&1 || { - cat >&2 </dev/null 2>&1; then - (${XDT_PROG_LIBTOOLIZE} --version) /dev/null 2>&0 || { - cat >&2 </dev/null 2>&1 || { - cat >&2 </dev/null 2>&1; then - (${XDT_PROG_GTKDOCIZE} --version) /dev/null 2>&1 || { - cat >&2 </dev/null 2>&1 && - XDT_PROG_ACLOCAL=${i} && break -done - -test -z "${XDT_PROG_ACLOCAL}" && { - cat >&2 </dev/null 2>&1; then - for i in autoheader-2.61 autoheader-2.60 autoheader-2.59 autoheader-2.58 autoheader-2.57 autoheader-2.53 autoheader; do - (${i} --version) /dev/null 2>&1 && - XDT_PROG_AUTOHEADER=${i} && break - done - test -z "${XDT_PROG_AUTOHEADER}" && { - cat >&2 </dev/null 2>&1 && - XDT_PROG_AUTOMAKE=${i} && break -done - -test -z "${XDT_PROG_AUTOMAKE}" && { - cat >&2 < "${source_dir}/aclocal.m4") || exit 1 - fi - (echo "Running ${XDT_PROG_GLIB_GETTEXTIZE} --force --copy..." && - ${XDT_PROG_GLIB_GETTEXTIZE} --force --copy) || exit 1 - if test -f "${source_dir}/aclocal.m4" -a ! -w "${source_dir}/aclocal.m4"; then - (echo "Making ${source_dir}/aclocal.m4 writable..." && - chmod u+w "${source_dir}/aclocal.m4") || exit 1 - fi - fi - - if grep -E "^(AC|IT)_PROG_INTLTOOL" "${configure_file}" >/dev/null 2>&1; then - (echo "Running ${XDT_PROG_INTLTOOLIZE} --automake --copy --force" && - cd "${source_dir}" && - ${XDT_PROG_INTLTOOLIZE} --automake --copy --force) || exit 1 - fi - - # patch the po/Makefile.in.in to take into account the setting of - # XGETTEXT_ARGS properly - if test -f "${source_dir}/po/Makefile.in.in"; then - grep -q '^XGETTEXT_ARGS[ ]*=[ ]*@XGETTEXT_ARGS@$' \ - "${source_dir}/po/Makefile.in.in" 2> /dev/null - if test $? -ne 0; then - echo "Patching file 'po/Makefile.in.in'" - sed \ - -e 's/^\(XGETTEXT[ ]*=[ ]*@XGETTEXT@\)[ ]*$/\1 $(XGETTEXT_ARGS)/' \ - -e 's/^\(MSGMERGE[ ]*=\)[ ]*\(INTLTOOL_EXTRACT=\)/\1 XGETTEXT_ARGS="$(XGETTEXT_ARGS)" \2/' \ - -e 's/^\(GENPOT[ ]*=\)[ ]*\(INTLTOOL_EXTRACT=\)/\1 XGETTEXT_ARGS="$(XGETTEXT_ARGS)" \2/' \ - -e "/^XGETTEXT = @XGETTEXT@/{ -i\\ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -}" < "${source_dir}/po/Makefile.in.in" > "${source_dir}/po/Makefile.in.in.tmp" - if test $? -eq 0; then - mv -f "${source_dir}/po/Makefile.in.in.tmp" \ - "${source_dir}/po/Makefile.in.in" || exit 1 - fi - fi - fi - - if grep "^AC_PROG_LIBTOOL" "${configure_file}" >/dev/null 2>&1; then - (echo "Running ${XDT_PROG_LIBTOOLIZE} --force --copy..." && - cd "${source_dir}" && - ${XDT_PROG_LIBTOOLIZE} --force --copy) || exit 1 - fi - - if grep "^GTK_DOC_CHECK" "${configure_file}" >/dev/null 2>&1; then - (echo "Running ${XDT_PROG_GTKDOCIZE} --copy..." && - cd ${source_dir} && - ${XDT_PROG_GTKDOCIZE} --copy) || exit 1 - fi - - (echo "Running ${XDT_PROG_ACLOCAL} ${ACLOCAL_FLAGS}..." && - cd ${source_dir} && - ${XDT_PROG_ACLOCAL} ${ACLOCAL_FLAGS}) || exit 1 - - if grep "^AM_CONFIG_HEADER" "${configure_file}" >/dev/null 2>&1; then - (echo "Running ${XDT_PROG_AUTOHEADER}..." && - cd ${source_dir} && - ${XDT_PROG_AUTOHEADER}) || exit 1 - fi - - (echo "Running ${XDT_PROG_AUTOMAKE} --force-missing --add-missing --copy --gnu..." && - cd ${source_dir} && - ${XDT_PROG_AUTOMAKE} --force-missing --add-missing --copy --gnu) || exit 1 - - (echo "Running ${XDT_PROG_AUTOCONF}..." && - cd ${source_dir} && - ${XDT_PROG_AUTOCONF}) || exit 1 - - echo -done - - -## -## Run configure -## -if test x"${NOCONFIGURE}" = x""; then - (echo "Running ${MASTER_DIR}/configure ${CONFIGURE_FLAGS}..." && - cd "${MASTER_DIR}" && - ./configure ${CONFIGURE_FLAGS} && - echo "Now type \"make\" to compile.") || exit 1 -else - echo "Skipping configure process." -fi - - -# vi:set ts=2 sw=2 et ai: diff --git a/scripts/xdt-autogen.in.in b/scripts/xdt-autogen.in.in new file mode 100644 index 0000000..c3b9f77 --- /dev/null +++ b/scripts/xdt-autogen.in.in @@ -0,0 +1,506 @@ +#!/bin/sh +# +# $Id$ +# +# Copyright (c) 2002-2006 +# The Xfce development team. All rights reserved. +# +# Written for Xfce by Benedikt Meurer . +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA +# +# xdt-autogen - Part of the Xfce developer tools. +# + +VERSION="@VERSION@" + +XDT_AUTOGEN_VERSION_MAJOR="@VERSION_MAJOR@" +XDT_AUTOGEN_VERSION_MINOR="@VERSION_MINOR@" +XDT_AUTOGEN_VERSION_MICRO="@VERSION_MICRO@" +XDT_AUTOGEN_VERSION_NANO="@VERSION_NANO@" +XDT_AUTOGEN_VERSION_REVISION="@VERSION_REVISION@" + +## +## Helper function to lookup configure.{in,ac} files recursively. +## Sets $CONFIGURE_FILES to the list of configure files found. +## +lookup_configure_files() +{ + if test -f "$1/configure.ac"; then + configure_file="$1/configure.ac"; + elif test -f "$1/configure.in"; then + configure_file="$1/configure.in"; + else + cat >&2 <&2 + echo "$XDT_AUTOGEN_REQUIRED_VERSION or greater is required." >&2 + exit 1 +fi + +## +## Determine XDG data dirs +## +test -z "${XDG_DATA_HOME}" && XDG_DATA_HOME="${HOME}/.local/share" +test -z "${XDG_DATA_DIRS}" && XDG_DATA_DIRS="/usr/local/share:/usr/share" +test -d "@DATADIR@" && XDG_DATA_DIRS="@DATADIR@:${XDG_DATA_DIRS}" +XDG_DATA_DIRS="${XDG_DATA_HOME}:${XDG_DATA_DIRS}" +export XDG_DATA_DIRS XDG_DATA_HOME + + +## +## Search for the configure.{ac,in} files +## +CONFIGURE_FILES="" +MASTER_DIR=`pwd`; test -z "${MASTER_DIR}" && MASTER_DIR="." +lookup_configure_files "$MASTER_DIR" + + +## +## Check for a suitable make +## +if test x"${MAKE}" = x""; then + if (type gmake) >/dev/null 2>/dev/null; then + MAKE="gmake" + elif (type make) >/dev/null 2>/dev/null; then + MAKE="make" + else + cat >&2 </dev/null 2>&1 + + echo "Cleaning generated files in ${directory}..." + + (cd ${directory} ; + rm -f config.* configure configure.lineno aclocal.m4 ; + rm -f compile depcomp ltmain.sh missing install-sh ; + rm -f po/Makefile.in.in ; + rm -f stamp-h1 *.spec ; + rm -f mkinstalldirs libtool ; + rm -rf autom4te.cache ; + rm -f intltool-* gtk-doc.make) + + # determine the output files used in this package directory + output_files=`tr '\\n\\t\\\\' ' ' < ${configure_file} | sed -ne 's|.*AC_OUTPUT(\[\{0,1\}\([[:alnum:]_@/\. -]\{1,\}\).*|\1|p'`; + for output_file in $output_files; do + if test x`basename $output_file` = x"Makefile"; then + rm -f "${directory}/${output_file}.in"; + rm -f "${directory}/${output_file}.in.in"; + fi + rm -f "${directory}/${output_file}"; + done + + # determine translations used in this package directory +# translations=`tr '\\n\\\\' ' ' < ${configure_file} | sed -ne 's/.*XDT_I18N(\[\{0,1\}\([a-zA-Z_@ ]\{1,\}\).*/\1/p'`; +# for translation in $translations; do +# rm -f "${directory}/po/${translation}.gmo"; +# done + rm -f ${directory}/po/*.gmo; + done + + exit 0 +fi + + +## +## Check for autoconf, first trying autoconf-2.59, then autoconf-2.58, then +## autoconf-2.57, then autoconf-2.53, and finally simply autoconf. +## +test -z "${XDT_PROG_AUTOCONF}" && +for i in autoconf-2.61 autoconf-2.60 autoconf-2.59 autoconf-2.58 autoconf-2.57 autoconf-2.53 autoconf; do + (${i} --version) /dev/null 2>&1 && + XDT_PROG_AUTOCONF=${i} && break +done + +test -z "${XDT_PROG_AUTOCONF}" && { + cat >&2 </dev/null 2>&1; then + (${XDT_PROG_INTLTOOLIZE} --version) /dev/null 2>&1 || { + cat >&2 </dev/null 2>&1; then + (${XDT_PROG_LIBTOOLIZE} --version) /dev/null 2>&0 || { + cat >&2 </dev/null 2>&1 || { + cat >&2 </dev/null 2>&1; then + (${XDT_PROG_GTKDOCIZE} --version) /dev/null 2>&1 || { + cat >&2 </dev/null 2>&1 && + XDT_PROG_ACLOCAL=${i} && break +done + +test -z "${XDT_PROG_ACLOCAL}" && { + cat >&2 </dev/null 2>&1; then + for i in autoheader-2.61 autoheader-2.60 autoheader-2.59 autoheader-2.58 autoheader-2.57 autoheader-2.53 autoheader; do + (${i} --version) /dev/null 2>&1 && + XDT_PROG_AUTOHEADER=${i} && break + done + test -z "${XDT_PROG_AUTOHEADER}" && { + cat >&2 </dev/null 2>&1 && + XDT_PROG_AUTOMAKE=${i} && break +done + +test -z "${XDT_PROG_AUTOMAKE}" && { + cat >&2 < "${source_dir}/aclocal.m4") || exit 1 + fi + (echo "Running ${XDT_PROG_GLIB_GETTEXTIZE} --force --copy..." && + ${XDT_PROG_GLIB_GETTEXTIZE} --force --copy) || exit 1 + if test -f "${source_dir}/aclocal.m4" -a ! -w "${source_dir}/aclocal.m4"; then + (echo "Making ${source_dir}/aclocal.m4 writable..." && + chmod u+w "${source_dir}/aclocal.m4") || exit 1 + fi + fi + + if grep -E "^(AC|IT)_PROG_INTLTOOL" "${configure_file}" >/dev/null 2>&1; then + (echo "Running ${XDT_PROG_INTLTOOLIZE} --automake --copy --force" && + cd "${source_dir}" && + ${XDT_PROG_INTLTOOLIZE} --automake --copy --force) || exit 1 + fi + + # patch the po/Makefile.in.in to take into account the setting of + # XGETTEXT_ARGS properly + if test -f "${source_dir}/po/Makefile.in.in"; then + grep -q '^XGETTEXT_ARGS[ ]*=[ ]*@XGETTEXT_ARGS@$' \ + "${source_dir}/po/Makefile.in.in" 2> /dev/null + if test $? -ne 0; then + echo "Patching file 'po/Makefile.in.in'" + sed \ + -e 's/^\(XGETTEXT[ ]*=[ ]*@XGETTEXT@\)[ ]*$/\1 $(XGETTEXT_ARGS)/' \ + -e 's/^\(MSGMERGE[ ]*=\)[ ]*\(INTLTOOL_EXTRACT=\)/\1 XGETTEXT_ARGS="$(XGETTEXT_ARGS)" \2/' \ + -e 's/^\(GENPOT[ ]*=\)[ ]*\(INTLTOOL_EXTRACT=\)/\1 XGETTEXT_ARGS="$(XGETTEXT_ARGS)" \2/' \ + -e "/^XGETTEXT = @XGETTEXT@/{ +i\\ +XGETTEXT_ARGS = @XGETTEXT_ARGS@ +}" < "${source_dir}/po/Makefile.in.in" > "${source_dir}/po/Makefile.in.in.tmp" + if test $? -eq 0; then + mv -f "${source_dir}/po/Makefile.in.in.tmp" \ + "${source_dir}/po/Makefile.in.in" || exit 1 + fi + fi + fi + + if grep "^AC_PROG_LIBTOOL" "${configure_file}" >/dev/null 2>&1; then + (echo "Running ${XDT_PROG_LIBTOOLIZE} --force --copy..." && + cd "${source_dir}" && + ${XDT_PROG_LIBTOOLIZE} --force --copy) || exit 1 + fi + + if grep "^GTK_DOC_CHECK" "${configure_file}" >/dev/null 2>&1; then + (echo "Running ${XDT_PROG_GTKDOCIZE} --copy..." && + cd ${source_dir} && + ${XDT_PROG_GTKDOCIZE} --copy) || exit 1 + fi + + (echo "Running ${XDT_PROG_ACLOCAL} ${ACLOCAL_FLAGS}..." && + cd ${source_dir} && + ${XDT_PROG_ACLOCAL} ${ACLOCAL_FLAGS}) || exit 1 + + if grep "^AM_CONFIG_HEADER" "${configure_file}" >/dev/null 2>&1; then + (echo "Running ${XDT_PROG_AUTOHEADER}..." && + cd ${source_dir} && + ${XDT_PROG_AUTOHEADER}) || exit 1 + fi + + (echo "Running ${XDT_PROG_AUTOMAKE} --force-missing --add-missing --copy --gnu..." && + cd ${source_dir} && + ${XDT_PROG_AUTOMAKE} --force-missing --add-missing --copy --gnu) || exit 1 + + (echo "Running ${XDT_PROG_AUTOCONF}..." && + cd ${source_dir} && + ${XDT_PROG_AUTOCONF}) || exit 1 + + echo +done + + +## +## Run configure +## +if test x"${NOCONFIGURE}" = x""; then + (echo "Running ${MASTER_DIR}/configure ${CONFIGURE_FLAGS}..." && + cd "${MASTER_DIR}" && + ./configure ${CONFIGURE_FLAGS} && + echo "Now type \"make\" to compile.") || exit 1 +else + echo "Skipping configure process." +fi + + +# vi:set ts=2 sw=2 et ai: -- cgit v1.2.1