summaryrefslogtreecommitdiff
path: root/buildconf
blob: c921275fc9274874fba1edaadb4efc2e5f2b0525 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/bin/sh

supplied_flag=$1

# do some version checking for the tools we use
if test "$1" = "--force"; then
    shift
# this is a posix correct "test -nt"
elif test "`ls -t buildconf buildconf.stamp 2>/dev/null |head -1`" != "buildconf"; then
    :
else
    echo "buildconf: checking installation..."

    # autoconf 2.13 or newer
    ac_version=`autoconf --version 2>/dev/null|head -1|sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
    if test "$ac_version" = ""; then
	echo "buildconf: autoconf not found."
	echo "           You need autoconf version 2.13 or newer installed"
	echo "           to build PHP from CVS."
	exit 1
    fi
    IFS=.; set $ac_version; IFS=' '
    if test "$1" = "2" -a "$2" -lt "13" || test "$1" -lt "2"; then
	echo "buildconf: autoconf version $ac_version found."
	echo "           You need autoconf version 2.13 or newer installed"
	echo "           to build PHP from CVS."
	exit 1
    else
	echo "buildconf: autoconf version $ac_version (ok)"
    fi

    # automake 1.4 or newer
    am_version=`automake --version 2>/dev/null|head -1|sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
    if test "$am_version" = ""; then
	echo "buildconf: automake not found."
	echo "           You need automake version 1.4 or newer installed"
	echo "           to build PHP from CVS."
	exit 1
    fi
    IFS=.; set $am_version; IFS=' '
    if test "$1" = "1" -a "$2" -lt "4" || test "$1" -lt "1"; then
	echo "buildconf: automake version $am_version found."
	echo "           You need automake version 1.4 or newer installed"
	echo "           to build PHP from CVS."
	exit 1
    else
	echo "buildconf: automake version $am_version (ok)"
    fi

    # libtool 1.3.3 or newer
    lt_pversion=`libtool --version 2>/dev/null|sed -e 's/^[^0-9]*//' -e 's/[- ].*//'`
    if test "$lt_pversion" = ""; then
	echo "buildconf: libtool not found."
	echo "           You need libtool version 1.3 or newer installed"
	echo "           to build PHP from CVS."
	exit 1
    fi
    lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'`
    IFS=.; set $lt_version; IFS=' '
    if test "$1" -gt "1" || test "$2" -gt "3" || test "$2" = "3" -a "$3" -ge "3"
    then
	echo "buildconf: libtool version $lt_pversion (ok)"
    else
	echo "buildconf: libtool version $lt_pversion found."
	echo "           You need libtool version 1.3.3 or newer installed"
	echo "           to build PHP from CVS."
	exit 1
    fi
    touch buildconf.stamp
fi

am_prefix=`which automake | sed -e 's#/[^/]*/[^/]*$##'`
lt_prefix=`which libtool | sed -e 's#/[^/]*/[^/]*$##'`
if test "$am_prefix" != "$lt_prefix"; then
    echo "buildconf: WARNING: automake and libtool are installed in different"
    echo "           directories.  This may cause aclocal to fail."
    echo "buildconf: continuing anyway"
fi

if test "$supplied_flag" = "--copy"; then
    automake_flags=--copy
fi

if test ! -d libzend; then
    if test -d ../libzend; then
	echo "buildconf: linking ../libzend to ./libzend"
        ln -s ../libzend .
    else
        echo "buildconf: can not find libzend"
        echo "           libzend should be installed in . or .., how to fetch:"
	echo ""
	echo "             cvs -d :pserver:cvsread@cvs.zend.com:/repository login"
	echo "             (password \"zend\")"
	echo "             cvs -d :pserver:cvsread@cvs.zend.com:/repository co libzend"
	echo ""
	exit 1
    fi
fi
if test ! -d TSRM; then
    if test -d ../TSRM; then
	echo "buildconf: linking ../TSRM to ./TSRM"
        ln -s ../TSRM .
    else
        echo "buildconf: can not find TSRM"
        echo "           TSRM should be installed in . or .., how to fetch:"
	echo ""
	echo "             cvs -d :pserver:cvsread@cvs.zend.com:/repository login"
	echo "             (password \"zend\")"
	echo "             cvs -d :pserver:cvsread@cvs.zend.com:/repository co TSRM"
	echo ""
	exit 1
    fi
fi

./scripts/preconfig

rm -f ltmain.sh ltconfig
libtoolize --automake --copy --force
cat patch-?? | patch

mv aclocal.m4 aclocal.m4.old 2>/dev/null
aclocal
if test "$?" != "0" -a "$am_prefix" != "$lt_prefix"; then
    echo "buildconf: ERROR: aclocal failed, probably because automake and"
    echo "           libtool are installed with different prefixes;"
    echo "           automake is installed in $am_prefix, but libtool in $lt_prefix."
    echo "           Please re-install automake and/or libtool with a common prefix"
    echo "           and try again."
    exit 1
fi

if cmp aclocal.m4.old aclocal.m4 > /dev/null 2>&1; then
    echo "buildconf: keeping aclocal.m4"
    mv aclocal.m4.old aclocal.m4
else
    echo "buildconf: created or modified aclocal.m4"
fi

autoheader

# find all Makefile.ams
files=`find . -name Makefile.am | sed 's#\.am##' | tr '\n' ' '`

# suppress stupid automake warning
automake --add-missing --include-deps $automake_flags $files  2>&1 | grep -v \$PHP_OUTPUT_FILES >&2


mv configure configure.old 2>/dev/null
autoconf
if cmp configure.old configure > /dev/null 2>&1; then
    echo "buildconf: keeping configure"
    mv configure.old configure
else
    echo "buildconf: created or modified configure"
fi

if test "$supplied_flag" != "--local"; then
  (cd libzend; ./buildconf $automake_flags libzend/)
  (cd TSRM; ./buildconf $automake_flags TSRM/)
fi