|
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 |