#!/bin/sh # # $Id$ # # Copyright (c) 2002-2010 # 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@" ## ## a few portability tests ## if test -z "$EGREP"; then if type egrep >/dev/null 2>&1; then EGREP=egrep else EGREP="grep -E" fi fi awk_tests="gawk mawk nawk awk" if test -z "$AWK"; then for a in $awk_tests; do if type $a >/dev/null 2>&1; then AWK=$a break fi done else if ! type $AWK >/dev/null 2>/dev/null; then unset AWK fi fi if test -z "$AWK"; then echo "xdt-autogen: The 'awk' program (one of $awk_tests) is" >&2 echo " required, but cannot be found." >&2 exit 1 fi ## ## figures out any subdirs that should be configured as a part ## of recursive configure. ## parse_configure_subdirs() { test -f "$1" && cat "$1" | tr '\\n\\t\\\\' ' ' | sed -ne 's|.*AC_CONFIG_SUBDIRS(\[\{0,1\}\([[:alnum:]_ @/-]\{1,\}\).*|\1|p' } ## ## Helper function to look up configure.{in,ac} files recursively. ## lookup_configure_ac_files() { configure_ac_file="" if test -f "$1/configure.ac"; then configure_ac_file="$1/configure.ac"; elif test -f "$1/configure.in"; then configure_ac_file="$1/configure.in"; else cat >&2 <&2 echo " If you experience problems, upgrade xfce4-dev-tools." >&2 fi fi return 0 } if ! do_version_check; then cat >&2 <&2 <&2 </dev/null || git svn find-rev origin/trunk 2>/dev/null || git svn find-rev HEAD 2>/dev/null || git svn find-rev master 2>/dev/null` elif test -d .git; then revision=`git rev-parse --short HEAD` elif test -d .svn; then revision=`LC_ALL=C svn info $0 | $AWK '/^Revision: / {printf "%05d\n", $2}'` fi if test "x$revision" = "x"; then revision="UNKNOWN" fi # find out what languages we support conf_dir=`dirname $configure_ac_file` linguas=`cd "$conf_dir/po" 2>/dev/null && ls *.po 2>/dev/null | $AWK 'BEGIN { FS="."; ORS=" " } { print $1 }'` # and do the substitution tmp=`basename ${configure_ac_in_file}` cat >"$configure_ac_file" <> "$configure_ac_file" done ## ## Search for the configure.{ac,in} files ## CONFIGURE_AC_FILES=`lookup_configure_ac_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}..." # determine the output files used in this package directory output_files=`tr '\\n\\t\\\\' ' ' < ${configure_ac_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 (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 ; if test -f configure.ac.in -a -f configure.ac; then rm -f configure.ac elif test -f configure.in.in -a -f configure.in; then rm -f configure.in fi) # determine translations used in this package directory # translations=`tr '\\n\\\\' ' ' < ${configure_ac_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 || { cat >&2 </dev/null 2>&1; then XDT_PROG_LIBTOOLIZE="glibtoolize" elif type libtoolize >/dev/null 2>&1; then XDT_PROG_LIBTOOLIZE="libtoolize" fi fi for configure_ac_file in $CONFIGURE_AC_FILES; do if grep -q "^AC_PROG_LIBTOOL" "${configure_ac_file}"; then (${XDT_PROG_LIBTOOLIZE} --version) /dev/null 2>&0 || { cat >&2 </dev/null 2>&1 || { cat >&2 </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 && 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 $EGREP -q "^(AC|IT)_PROG_INTLTOOL" "${configure_ac_file}"; 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 -q "^AC_PROG_LIBTOOL" "${configure_ac_file}"; then (echo "Running ${XDT_PROG_LIBTOOLIZE} --force --copy..." && cd "${source_dir}" && ${XDT_PROG_LIBTOOLIZE} --force --copy) || exit 1 fi if grep -q "^GTK_DOC_CHECK" "${configure_ac_file}"; 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 $EGREP -q "^A(M|C)_CONFIG_HEADER" "${configure_ac_file}"; 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: