| 1 | #!/bin/sh |
|---|
| 2 | # |
|---|
| 3 | # setup-gettext - Provides compatibility with versions of gettext |
|---|
| 4 | # from the 0.10.x series and 0.11.x. |
|---|
| 5 | # |
|---|
| 6 | # Copyright (C) 2002 Christian Hammond. |
|---|
| 7 | # |
|---|
| 8 | # This program is free software; you can redistribute it and/or |
|---|
| 9 | # modify it under the terms of the GNU General Public License as |
|---|
| 10 | # published by the Free Software Foundation; either version 2 of |
|---|
| 11 | # the License, or (at your option) any later version. |
|---|
| 12 | # |
|---|
| 13 | # This program is distributed in the hope that it will be useful, |
|---|
| 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 16 | # GNU General Public License for more details. |
|---|
| 17 | # |
|---|
| 18 | # You should have received a copy of the GNU General Public |
|---|
| 19 | # License along with this program; if not, write to the Free |
|---|
| 20 | # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
|---|
| 21 | # MA 02111-1307 USA |
|---|
| 22 | # |
|---|
| 23 | |
|---|
| 24 | VERSION=0.1.3 |
|---|
| 25 | |
|---|
| 26 | VERBOSE=1 |
|---|
| 27 | |
|---|
| 28 | parse_gettext_version() { |
|---|
| 29 | GETTEXT_VERSION=`$GETTEXT_TOOL --version | sed -n 's/^.*\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\).*$/\1.\2.\3/p'` |
|---|
| 30 | GETTEXT_MAJOR_VERSION=`echo $GETTEXT_VERSION | sed -n 's/^\([0-9]\+\).*/\1/p'` |
|---|
| 31 | GETTEXT_MINOR_VERSION=`echo $GETTEXT_VERSION | sed -n 's/^[0-9]\+\.\([0-9]\+\).*/\1/p'` |
|---|
| 32 | GETTEXT_MICRO_VERSION=`echo $GETTEXT_VERSION | sed -n 's/^[0-9]\+\.[0-9]\+\.\([0-9]\+\).*/\1/p'` |
|---|
| 33 | } |
|---|
| 34 | |
|---|
| 35 | find_gettext() { |
|---|
| 36 | GETTEXT_TOOL=autopoint |
|---|
| 37 | |
|---|
| 38 | (autopoint --version) < /dev/null > /dev/null 2>&1 || { |
|---|
| 39 | GETTEXT_TOOL=gettextize |
|---|
| 40 | |
|---|
| 41 | (gettextize --version) < /dev/null > /dev/null 2>&1 || { |
|---|
| 42 | GETTEXT_TOOL= |
|---|
| 43 | } |
|---|
| 44 | } |
|---|
| 45 | } |
|---|
| 46 | |
|---|
| 47 | install() { |
|---|
| 48 | [ -f configure.in ] && { |
|---|
| 49 | cp configure.in .tmp-configure.in |
|---|
| 50 | sed -e 's/^AM_GNU_GETTEXT\(.*\)$/AM_GNU_GETTEXT\1\ |
|---|
| 51 | AM_GNU_GETTEXT_VERSION(0.10.40)/' < .tmp-configure.in > configure.in |
|---|
| 52 | rm .tmp-configure.in |
|---|
| 53 | } |
|---|
| 54 | |
|---|
| 55 | [ -f configure.ac ] && { |
|---|
| 56 | cp configure.ac .tmp-configure.ac |
|---|
| 57 | sed -e 's/^AM_GNU_GETTEXT\(.*\)$/AM_GNU_GETTEXT\1\ |
|---|
| 58 | AM_GNU_GETTEXT_VERSION(0.10.40)/' < .tmp-configure.ac > configure.ac |
|---|
| 59 | rm .tmp-configure.ac |
|---|
| 60 | } |
|---|
| 61 | |
|---|
| 62 | [ -f autogen.sh ] && { |
|---|
| 63 | cp autogen.sh .tmp-autogen.sh |
|---|
| 64 | sed -e 's/\(gettextize\|autopoint\) --version/.\/setup-gettext --gettext-tool/1' -e 's/^\(echo.*|[\t ]*\)\?\(gettextize\|autopoint\) -.*$/.\/setup-gettext/1' < .tmp-autogen.sh > autogen.sh |
|---|
| 65 | rm .tmp-autogen.sh |
|---|
| 66 | } |
|---|
| 67 | |
|---|
| 68 | echo 'AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])' >> acinclude.m4 |
|---|
| 69 | } |
|---|
| 70 | |
|---|
| 71 | backup_m4() { |
|---|
| 72 | [ -d m4 ] && mv m4 m4~ |
|---|
| 73 | } |
|---|
| 74 | |
|---|
| 75 | restore_m4() { |
|---|
| 76 | [ -d m4~ ] && { |
|---|
| 77 | rm -rf m4 |
|---|
| 78 | mv m4~ m4 |
|---|
| 79 | } |
|---|
| 80 | } |
|---|
| 81 | |
|---|
| 82 | restore_files() { |
|---|
| 83 | [ -f configure.in~ ] && mv -f configure.in~ configure.in |
|---|
| 84 | [ -f configure.ac~ ] && mv -f configure.ac~ configure.ac |
|---|
| 85 | [ -f Makefile.am~ ] && mv -f Makefile.am~ Makefile.am |
|---|
| 86 | } |
|---|
| 87 | |
|---|
| 88 | abort() { |
|---|
| 89 | restore_files |
|---|
| 90 | restore_m4 |
|---|
| 91 | |
|---|
| 92 | exit 1 |
|---|
| 93 | } |
|---|
| 94 | |
|---|
| 95 | # Main code |
|---|
| 96 | |
|---|
| 97 | find_gettext |
|---|
| 98 | |
|---|
| 99 | # See if a version of gettext and its tools are installed. |
|---|
| 100 | if [ x$GETTEXT_TOOL = x ]; then |
|---|
| 101 | echo |
|---|
| 102 | echo "You do not have a version of gettext installed." |
|---|
| 103 | echo "Please download one from your local package repository or" |
|---|
| 104 | echo "from ftp://ftp.gnu.org/pub/gnu/gettext/" |
|---|
| 105 | echo |
|---|
| 106 | exit 1 |
|---|
| 107 | fi |
|---|
| 108 | |
|---|
| 109 | parse_gettext_version |
|---|
| 110 | |
|---|
| 111 | NUMVAR=$# |
|---|
| 112 | |
|---|
| 113 | if [ $NUMVAR -gt 0 ]; then |
|---|
| 114 | if [ $NUMVAR -gt 1 ]; then |
|---|
| 115 | echo "Only one option at a time!" |
|---|
| 116 | exit 1 |
|---|
| 117 | |
|---|
| 118 | elif [ $1 = "--gettext-tool" ]; then |
|---|
| 119 | echo $GETTEXT_TOOL |
|---|
| 120 | exit 0 |
|---|
| 121 | |
|---|
| 122 | elif [ $1 = "--help" ]; then |
|---|
| 123 | echo "setup-gettext v$VERSION" |
|---|
| 124 | echo "Usage:" |
|---|
| 125 | echo " --gettext-tool Returns gettextize or autopoint, depending" |
|---|
| 126 | echo " on the version of gettext installed." |
|---|
| 127 | echo " --gettext-version Returns the version of gettext installed." |
|---|
| 128 | echo " --gettext-major-version Returns the major version of gettext installed." |
|---|
| 129 | echo " --gettext-minor-version Returns the minor version of gettext installed." |
|---|
| 130 | echo " --gettext-micro-version Returns the micro version of gettext installed." |
|---|
| 131 | echo " --help Displays this help screen." |
|---|
| 132 | echo |
|---|
| 133 | exit 0 |
|---|
| 134 | |
|---|
| 135 | elif [ $1 = "--version" ]; then |
|---|
| 136 | echo $VERSION |
|---|
| 137 | exit 0 |
|---|
| 138 | |
|---|
| 139 | elif [ $1 = "--gettext-version" ]; then |
|---|
| 140 | echo $GETTEXT_VERSION |
|---|
| 141 | exit 0 |
|---|
| 142 | |
|---|
| 143 | elif [ $1 = "--gettext-major-version" ]; then |
|---|
| 144 | echo $GETTEXT_MAJOR_VERSION |
|---|
| 145 | exit 0 |
|---|
| 146 | |
|---|
| 147 | elif [ $1 = "--gettext-minor-version" ]; then |
|---|
| 148 | echo $GETTEXT_MINOR_VERSION |
|---|
| 149 | exit 0 |
|---|
| 150 | |
|---|
| 151 | elif [ $1 = "--gettext-micro-version" ]; then |
|---|
| 152 | echo $GETTEXT_MICRO_VERSION |
|---|
| 153 | exit 0 |
|---|
| 154 | |
|---|
| 155 | elif [ $1 = "--install" ]; then |
|---|
| 156 | install |
|---|
| 157 | echo "setup-gettext installed." |
|---|
| 158 | exit 0 |
|---|
| 159 | |
|---|
| 160 | elif [ $1 = "--happy-url" ]; then |
|---|
| 161 | echo http://gaim.sf.net/forkgettext.jpg |
|---|
| 162 | exit 0 |
|---|
| 163 | |
|---|
| 164 | elif [ $1 = "--verbose" ]; then |
|---|
| 165 | VERBOSE=1 |
|---|
| 166 | |
|---|
| 167 | else |
|---|
| 168 | echo "Invalid option '$1'" |
|---|
| 169 | exit 1 |
|---|
| 170 | fi |
|---|
| 171 | fi |
|---|
| 172 | |
|---|
| 173 | # Okay, run the main stuff |
|---|
| 174 | if [ "$GETTEXT_TOOL" = "autopoint" ]; then |
|---|
| 175 | backup_m4 |
|---|
| 176 | [ $VERBOSE -eq 1 ] && echo " autopoint --force" |
|---|
| 177 | echo n | autopoint --force || abort |
|---|
| 178 | restore_m4 |
|---|
| 179 | else |
|---|
| 180 | if [ $GETTEXT_MINOR_VERSION -eq 11 ]; then |
|---|
| 181 | backup_m4 |
|---|
| 182 | |
|---|
| 183 | # Gettext is pure evil. It DEMANDS that we press Return no matter |
|---|
| 184 | # what. This gets rid of their happy "feature" of doom. |
|---|
| 185 | [ $VERBOSE -eq 1 ] && \ |
|---|
| 186 | echo " gettextize --copy --force --intl --no-changelog" |
|---|
| 187 | |
|---|
| 188 | sed 's:read .*< /dev/tty::' `which gettextize` > .temp-gettextize |
|---|
| 189 | chmod +x .temp-gettextize |
|---|
| 190 | echo n | ./.temp-gettextize --copy --force --intl --no-changelog || abort |
|---|
| 191 | rm .temp-gettextize |
|---|
| 192 | |
|---|
| 193 | restore_files |
|---|
| 194 | restore_m4 |
|---|
| 195 | |
|---|
| 196 | [ -f po/Makevars.template ] && mv po/Makevars.template po/Makevars |
|---|
| 197 | else |
|---|
| 198 | [ $VERBOSE -eq 1 ] && echo " gettextize --copy --force --intl" |
|---|
| 199 | echo n | gettextize --copy --force --intl || exit; |
|---|
| 200 | fi |
|---|
| 201 | fi |
|---|