#!/bin/sh # Built on TCL v3.3 # Required extensions: # compiletc # binutils # base-dev # bison # diffutils # file # findutils # flex # gawk # gcc # gcc_libs # cloog # ppl # gmp # mpfr # gperf # grep # m4 # make # patch # pkg-config # sed # squashfs-tools-4.0 # mysql-dev # mysql # perl5 # bsddb-dev # bsddb # curl-dev # curl # openssl-0.9.8 # openssl-0.9.8-dev # libgdbm # libxslt # libxml2 # libxml2-dev # libxml2-bin # pcre-dev # pcre # mcrypt # libmhash # libmcrypt # gettext # ncurses # ncurses-common # ncurses-dev # expat2-dev # expat2 # libiconv-dev # libiconv # bzip2-dev # bzip2-lib # bzip2 # coreutils # acl # libattr # attr # libcap # libtool-dev # libtool # libltdl # re2c getTime.sh installExtension() { if [ ! -e /usr/local/tce.installed/$1 ]; then echo "Installing "$1" ..." if [ -e $TCEDIR/optional/$1.tcz ]; then tce-load -i $1 else tce-load -wi $1 fi [ ! -e /usr/local/tce.installed/$1 ] && echo "Error: Extension "$1" not installed! Aborting" && exit fi } # Install these extensions automagically EXTS="compiletc squashfs-tools-4.x tar mysql-dev bsddb-dev curl-dev curl openssl-0.9.8-dev libgdbm libxslt libxml2-dev pcre-dev pcre mcrypt gettext ncurses-dev expat2-dev expat2 libiconv-dev bzip2-dev coreutils libtool-dev re2c" TCEDIR=`cat /opt/.tce_dir` export CFLAGS="-march=i486 -mtune=i686 -Os -pipe" export CXXFLAGS=$CFLAGS" -fno-exceptions -fno-rtti" export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig EXTNAME="php5" VER="-5.3.3" export DESTDIR=`pwd`/$EXTNAME PKGNAME=php$VER mkdir -p $DESTDIR/usr/local/share/doc/License $DESTDIR/usr/local/lib $DESTDIR-doc/usr/local/lib/php/.channels/.alias $DESTDIR-dev/usr/local/lib/php $DESTDIR-pear/usr/local/lib $DESTDIR-pear/usr/local/bin for f in $EXTS; do installExtension $f done #unpack source if [ -e $PKGNAME.tar.bz2 ]; then tar -jxf $PKGNAME.tar.bz2 elif [ -e $PKGNAME.tb2 ]; then tar -jxf $PKGNAME.tb2 elif [ -e $PKGNAME.tbz ]; then tar -jxf $PKGNAME.tbz elif [ -e $PKGNAME.tar.gz ]; then tar -zxf $PKGNAME.tar.gz elif [ -e $PKGNAME.tgz ]; then tar -zxf $PKGNAME.tgz elif [ -e $PKGNAME.tar.xz ]; then tar -Jxf $PKGNAME.tar.xz elif [ -e $PKGNAME.txz ]; then tar -Jxf $PKGNAME.txz elif [ -e $PKGNAME.tar.lzma ]; then tar -xf $PKGNAME.tar.lzma --lzma elif [ -e $PKGNAME.tlz ]; then tar -xf $PKGNAME.tlz --lzma else echo "Source tarball not found! Aborting" && exit fi cd $PKGNAME # make work with db 5.1 sed -i '31402,31407d' configure sed -i '31396,31397d' configure sed -i '31079,31084d' configure sed -i '31073,31074d' configure sed -i '30756,30761d' configure sed -i '30750,30751d' configure ./configure --enable-calendar --enable-bcmath --with-bz2 --with-xsl --with-openssl --with-curl --with-mhash --with-mcrypt --with-gdbm --with-gmp --with-gd --with-mysql --with-db4=/usr/local --with-gettext --enable-mbstring --enable-shared --enable-sockets --with-iconv=/usr/local/lib && make && make test 2>&1 | tee ../php5.test || exit # does not follow DESTDIR touch ../mark sudo make install || exit cp php.ini-production $DESTDIR/usr/local/lib/php.ini.orig cp LICENSE $DESTDIR/usr/local/share/doc/License/$EXTNAME.txt cd .. find /usr/local -newer mark -not -type d > filelist tar czf temp.tce -T filelist tar zxvf temp.tce -C $EXTNAME cd $DESTDIR sudo strip --strip-unneeded usr/local/bin/* mv usr/local/include $DESTDIR-dev/usr/local mv usr/local/lib/php/build $DESTDIR-dev/usr/local/lib/php mv usr/local/lib/php/test $DESTDIR-dev/usr/local/lib/php mv usr/local/man $DESTDIR-doc/usr/local mv usr/local/lib/php/doc $DESTDIR-doc/usr/local/lib/php mv usr/local/lib/php/.channels/.alias/phpdocs.txt $DESTDIR-doc/usr/local/lib/php/.channels/.alias mv usr/local/lib/php/.channels/doc.php.net.reg $DESTDIR-doc/usr/local/lib/php/.channels/doc.php.net.reg mv usr/local/lib/php $DESTDIR-pear/usr/local/lib mkdir -p usr/local/lib/php/.registry mv $DESTDIR-pear/usr/local/lib/php/XML usr/local/lib/php mv usr/local/bin/pe* $DESTDIR-pear/usr/local/bin mv usr/local/etc $DESTDIR-pear/usr/local mkdir usr/local/tce.installed echo '#!/bin/sh [ -e /usr/local/lib/php.ini ] || cp -p /usr/local/lib/php.ini.orig /usr/local/lib/php.ini' > usr/local/tce.installed/$EXTNAME sudo chown root:staff -R usr/local/tce* sudo chmod 775 -R usr/local/tce* find usr -not -type d > ../$EXTNAME.tcz.list cd $DESTDIR-dev find usr -not -type d > ../$EXTNAME-dev.tcz.list cd $DESTDIR-doc find usr -not -type d > ../$EXTNAME-doc.tcz.list cd $DESTDIR-pear mv usr/local/etc/pear.conf usr/local/etc/pear.conf.orig mkdir usr/local/tce.installed echo '#!/bin/sh [ -e /usr/local/etc/pear.conf ] || cp -p /usr/local/etc/pear.conf.orig /usr/local/etc/pear.conf' > usr/local/tce.installed/$EXTNAME-pear sudo chown root:staff -R usr/local/tce* sudo chmod 775 -R usr/local/tce* find usr -not -type d > ../$EXTNAME-pear.tcz.list cd .. mksquashfs $EXTNAME $EXTNAME.tcz -noappend md5sum $EXTNAME.tcz > $EXTNAME.tcz.md5.txt mksquashfs $EXTNAME-dev $EXTNAME-dev.tcz -noappend md5sum $EXTNAME-dev.tcz > $EXTNAME-dev.tcz.md5.txt mksquashfs $EXTNAME-doc $EXTNAME-doc.tcz -noappend md5sum $EXTNAME-doc.tcz > $EXTNAME-doc.tcz.md5.txt mksquashfs $EXTNAME-pear $EXTNAME-pear.tcz -noappend md5sum $EXTNAME-pear.tcz > $EXTNAME-pear.tcz.md5.txt rm -rf mark filelist temp.tce $EXTNAME $EXTNAME-dev $EXTNAME-doc $EXTNAME-pear $PKGNAME