autogen.sh

Sun, 18 Aug 2002 09:26:36 +0000

author
Christian Hammond <chipx86@chipx86.com>
date
Sun, 18 Aug 2002 09:26:36 +0000
changeset 3402
88b3bc58bb66
parent 3388
aade8b732a63
child 3403
6671513f114a
permissions
-rwxr-xr-x

[gaim-migrate @ 3421]
Okay, rant time. Anybody who has experienced this problem will appreciate
this.

Gettext 0.11.x is, as we all know, evil. People have been complaining
that, now that 0.11.x actually works, they're getting the following
message:

"Press Return to acknowledge the previous ___."

It had been assumed that the previous paragraphs were the reasons for the
pause. However, you always get at least one error. It's hard-coded in.
It's more of a "friendly reminder," really. On top of that, even if
there were no errors, the pause after the message is also hard-coded in
outside of any conditionals. You CANNOT get rid of it by "fixing" anything
in the tree. It's always there.

On top of that, take a look at these lines:

echo "Press Return to acknowledge the previous $count."
# Read from /dev/tty, not stdin, so that gettextize cannot be abused by
# non-interactive tools.
read < /dev/tty

See that? They specifically coded it so you cannot bypass it.

This commit bypasses it.

We're copying gettextize to gaim-gettextize and removing that read line,
running it, removing gaim-gettextize. Nasty hack, but it works.

You can all thank me when I wake up tomorrow. :)

#!/bin/sh

abort() {
	# Don't break the tree if something goes wrong.
	if [ -e m4~ ]; then
		rm -rf m4
		mv m4~ m4
	fi

	exit 1
}

(gettextize --version) < /dev/null > /dev/null 2>&1 || {
	echo;
	echo "You must have gettext installed to compile Gaim";
	echo;
	exit;
}

(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
	echo;
	echo "You must have libtool installed to compile Gaim";
	echo;
	exit;
}

(automake --version) < /dev/null > /dev/null 2>&1 || {
	echo;
	echo "You must have automake installed to compile Gaim";
	echo;
	exit;
}

(autoconf --version) < /dev/null > /dev/null 2>&1 || {
	echo;
	echo "You must have autoconf installed to compile Gaim";
	echo;
	exit;
}

# Thanks decklin
if test -f configure.ac ; then
	if autoconf --version | grep '2\.[01]' > /dev/null 2>&1 ; then
		mv configure.ac configure.2.1x;
		echo "configure.ac has been moved to configure.2.1x to retain compatibility with autoconf 2.1x"
		echo "Future versions of Gaim will not support autoconf versions older than 2.50"

	fi
fi

echo "Generating configuration files for Gaim, please wait...."
echo;

echo "Running gettextize, please ignore non-fatal messages...."

# Get the major version of gettext.
GETTEXT_VER=`gettextize --version | sed -n 's/^.*[0-9]\+\.\([0-9]\+\)\..*$/\1/p'`

# Decide how we want to run gettext.
if [ $GETTEXT_VER -eq 11 ]; then
	mv -f m4 m4~

	# Gettext is pure evil. It DEMANDS that we press Return no matter
	# what. This gets rid of their happy "feature" of doom.
	sed 's:read < /dev/tty::' `which gettextize` > gaim-gettextize
	chmod +x gaim-gettextize
	echo n | ./gaim-gettextize --copy --force --intl --no-changelog || abort
	rm gaim-gettextize

	# Now restore the things that brain-dead gettext modified.
	[ -e configure.in~ ] && mv -f configure.in~ configure.in
	[ -e Makefile.am~ ]  && mv -f Makefile.am~  Makefile.am
	rm -rf m4
	mv -f m4~ m4

	mv -f po/Makevars.template po/Makevars
else
	echo n | gettextize --copy --force || exit;
fi
echo "Running libtoolize, please ignore non-fatal messages...."
echo n | libtoolize --copy --force || exit;

aclocal -I m4 $ACLOCAL_FLAGS || exit;
autoheader || exit;
automake --add-missing --copy;
autoconf || exit;
automake || exit;
./configure $@

mercurial