5172
|
1 |
#!/bin/sh
|
|
2 |
|
|
3 |
# Copyright 2005, 2006, 2007, 2008, 2009, 2010 by
|
|
4 |
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
5 |
#
|
|
6 |
# This file is part of the FreeType project, and may only be used, modified,
|
|
7 |
# and distributed under the terms of the FreeType project license,
|
|
8 |
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
9 |
# indicate that you have read the license and understand and accept it
|
|
10 |
# fully.
|
|
11 |
|
|
12 |
run ()
|
|
13 |
{
|
|
14 |
echo "running \`$*'"
|
|
15 |
eval $*
|
|
16 |
|
|
17 |
if test $? != 0 ; then
|
|
18 |
echo "error while running \`$*'"
|
|
19 |
exit 1
|
|
20 |
fi
|
|
21 |
}
|
|
22 |
|
|
23 |
get_major_version ()
|
|
24 |
{
|
|
25 |
echo $1 | sed -e 's/\([0-9][0-9]*\)\..*/\1/g'
|
|
26 |
}
|
|
27 |
|
|
28 |
get_minor_version ()
|
|
29 |
{
|
|
30 |
echo $1 | sed -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g'
|
|
31 |
}
|
|
32 |
|
|
33 |
get_patch_version ()
|
|
34 |
{
|
|
35 |
# tricky: some version numbers don't include a patch
|
|
36 |
# separated with a point, but something like 1.4-p6
|
|
37 |
patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/g'`
|
|
38 |
if test "$patch" = "$1"; then
|
|
39 |
patch=`echo $1 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\-p\([0-9][0-9]*\).*/\1/g'`
|
|
40 |
# if there isn't any patch number, default to 0
|
|
41 |
if test "$patch" = "$1"; then
|
|
42 |
patch=0
|
|
43 |
fi
|
|
44 |
fi
|
|
45 |
echo $patch
|
|
46 |
}
|
|
47 |
|
|
48 |
# $1: version to check
|
|
49 |
# $2: minimum version
|
|
50 |
|
|
51 |
compare_to_minimum_version ()
|
|
52 |
{
|
|
53 |
MAJOR1=`get_major_version $1`
|
|
54 |
MAJOR2=`get_major_version $2`
|
|
55 |
if test $MAJOR1 -lt $MAJOR2; then
|
|
56 |
echo 0
|
|
57 |
return
|
|
58 |
else
|
|
59 |
if test $MAJOR1 -gt $MAJOR2; then
|
|
60 |
echo 1
|
|
61 |
return
|
|
62 |
fi
|
|
63 |
fi
|
|
64 |
|
|
65 |
MINOR1=`get_minor_version $1`
|
|
66 |
MINOR2=`get_minor_version $2`
|
|
67 |
if test $MINOR1 -lt $MINOR2; then
|
|
68 |
echo 0
|
|
69 |
return
|
|
70 |
else
|
|
71 |
if test $MINOR1 -gt $MINOR2; then
|
|
72 |
echo 1
|
|
73 |
return
|
|
74 |
fi
|
|
75 |
fi
|
|
76 |
|
|
77 |
PATCH1=`get_patch_version $1`
|
|
78 |
PATCH2=`get_patch_version $2`
|
|
79 |
if test $PATCH1 -lt $PATCH2; then
|
|
80 |
echo 0
|
|
81 |
else
|
|
82 |
echo 1
|
|
83 |
fi
|
|
84 |
}
|
|
85 |
|
|
86 |
# check the version of a given tool against a minimum version number
|
|
87 |
#
|
|
88 |
# $1: tool path
|
|
89 |
# $2: tool usual name (e.g. `aclocal')
|
|
90 |
# $3: tool variable (e.g. `ACLOCAL')
|
|
91 |
# $4: minimum version to check against
|
|
92 |
# $5: option field index used to extract the tool version from the
|
|
93 |
# output of --version
|
|
94 |
|
|
95 |
check_tool_version ()
|
|
96 |
{
|
|
97 |
field=$5
|
|
98 |
# assume the output of "[TOOL] --version" is "toolname (GNU toolname foo bar) version"
|
|
99 |
if test "$field"x = x; then
|
|
100 |
field=3 # default to 3 for all GNU autotools, after filtering enclosed string
|
|
101 |
fi
|
|
102 |
version=`$1 --version | head -1 | sed 's/([^)]*)/()/g' | cut -d ' ' -f $field`
|
|
103 |
version_check=`compare_to_minimum_version $version $4`
|
|
104 |
if test "$version_check"x = 0x; then
|
|
105 |
echo "ERROR: Your version of the \`$2' tool is too old."
|
|
106 |
echo " Minimum version $4 is required (yours is version $version)."
|
|
107 |
echo " Please upgrade or use the $3 variable to point to a more recent one."
|
|
108 |
echo ""
|
|
109 |
exit 1
|
|
110 |
fi
|
|
111 |
}
|
|
112 |
|
|
113 |
if test ! -f ./builds/unix/configure.raw; then
|
|
114 |
echo "You must be in the same directory as \`autogen.sh'."
|
|
115 |
echo "Bootstrapping doesn't work if srcdir != builddir."
|
|
116 |
exit 1
|
|
117 |
fi
|
|
118 |
|
|
119 |
# On MacOS X, the GNU libtool is named `glibtool'.
|
|
120 |
HOSTOS=`uname`
|
|
121 |
LIBTOOLIZE=libtoolize
|
|
122 |
if test "$HOSTOS"x = Darwinx; then
|
|
123 |
LIBTOOLIZE=glibtoolize
|
|
124 |
fi
|
|
125 |
|
|
126 |
if test "$ACLOCAL"x = x; then
|
|
127 |
ACLOCAL=aclocal
|
|
128 |
fi
|
|
129 |
|
|
130 |
if test "$AUTOCONF"x = x; then
|
|
131 |
AUTOCONF=autoconf
|
|
132 |
fi
|
|
133 |
|
|
134 |
check_tool_version $ACLOCAL aclocal ACLOCAL 1.10.1
|
|
135 |
check_tool_version $LIBTOOLIZE libtoolize LIBTOOLIZE 2.2.4
|
|
136 |
check_tool_version $AUTOCONF autoconf AUTOCONF 2.62
|
|
137 |
|
|
138 |
# This sets freetype_major, freetype_minor, and freetype_patch.
|
|
139 |
eval `sed -nf version.sed include/freetype/freetype.h`
|
|
140 |
|
|
141 |
# We set freetype-patch to an empty value if it is zero.
|
|
142 |
if test "$freetype_patch" = ".0"; then
|
|
143 |
freetype_patch=
|
|
144 |
fi
|
|
145 |
|
|
146 |
cd builds/unix
|
|
147 |
|
|
148 |
echo "generating \`configure.ac'"
|
|
149 |
sed -e "s;@VERSION@;$freetype_major$freetype_minor$freetype_patch;" \
|
|
150 |
< configure.raw > configure.ac
|
|
151 |
|
|
152 |
run aclocal -I . --force
|
|
153 |
run $LIBTOOLIZE --force --copy --install
|
|
154 |
run autoconf --force
|
|
155 |
|
|
156 |
chmod +x mkinstalldirs
|
|
157 |
chmod +x install-sh
|
|
158 |
|
|
159 |
cd ../..
|
|
160 |
|
|
161 |
chmod +x ./configure
|
|
162 |
|
|
163 |
# EOF
|