source: trunk/devel/run @ 1096

Last change on this file since 1096 was 1096, checked in by moo, 21 months ago

updated dependency

  • Property svn:executable set to *
File size: 4.6 KB
RevLine 
[977]1#!/bin/bash
2# this script is for developers only
[998]3set -e
[1095]4MAKE=/usr/bin/make
[977]5
[998]6. devel/run.cfg
7if [[ ! -z $1 ]]; then
8    type=$1
9fi
10
11case "$type" in
[988]12prep*)
[1095]13    shift
14    exec $MAKE -f devel/prepare.mak "$@"
[988]15    ;;
[1095]16tags)
17    rm -f tags
18    shift
19    exec $MAKE -f devel/prepare.mak tags "$@"
20    ;;
[1011]21dep*)
22    pwd=$(readlink -f "$(pwd)")
[1096]23    builddir=$(readlink -f ../trunk-php5-debug-zts)
[1011]24    if [[ -z $builddir ]]; then
[1096]25        echo required ../trunk-php5-debug-zts not found
[1011]26        return 1
27    fi
[1018]28    find . -iname \*.c | sort | while read -r sourceFile; do
[1011]29        sourceFile=${sourceFile#./}
[1015]30        case "$sourceFile" in
31        includes.c)
32            echo -n "\$(XCACHE_INCLUDES_I) "
33            ;;
34        esac
[1011]35        echo -n "\$(builddir)/${sourceFile%.c}.lo:"
[1096]36        for dependency in $(gcc -M $sourceFile -I$HOME/test/php5-debug-zts/include/php/{,main,Zend,TSRM} -I. -I${builddir} -MG | sed 's#.*:##g' | sed 's#\\##g'); do
[1011]37            dependency=$(readlink -f "$dependency")
38            case "$dependency" in
39            $pwd/*)
40                dependency=${dependency#$pwd/}
41                ;;
42            $builddir/*)
43                dependency="\$(builddir)/"${dependency#$builddir/}
44                ;;
45            esac
46
47            case "$dependency" in
48            /*) ;;
49            $sourceFile) ;;
50            \$\(builddir\)/xc_processor.h)
51                echo -n " \$(XCACHE_PROC_H)"
52                ;;
53            \$\(builddir\)/xc_processor.c.h)
54                echo -n " \$(XCACHE_PROC_C)"
55                ;;
56            *)
57                if [[ -r $dependency ]]; then
58                    echo -n " \$(srcdir)/$dependency"
59                else
60                    echo "$dependency not found" >&2
61                fi
62            esac
63        done
64        echo
65    done > Makefile.frag.deps
66    exit
67    ;;
[998]68xtest)
[1095]69    exec $MAKE -f devel/test.mak
[998]70    ;;
[988]71esac
72
[977]73basename=$(basename $(pwd))
74if echo $basename | grep -- - >/dev/null; then :; else
[998]75    svn propget svn:ignore . > .svnignore
76
[1096]77    dirs=${dirs:-php5-debug-zts}
[977]78    for dir in $dirs; do
[998]79        mkdir -p ../${basename}-${dir}
[977]80        cd ../${basename}-${dir} || exit
[998]81        lndir ../${basename} > /dev/null
[982]82
[977]83        pwd
84        $0 "$@"
85    done
86    exit
87fi
[995]88
[982]89phpbasename=${basename#*-}
90xcachebasename=${basename%%-*}
[995]91xcachesrcdir=../$xcachebasename
[977]92
[1019]93if [[ $# -gt 0 ]]; then
[977]94    type=$1
95    shift
[1025]96    if [[ $# -gt 0 ]]; then
97        args=("$@")
98    fi
[977]99fi
100
[1002]101if [[ -z ${args[0]} ]]; then
[1025]102    args=(devel.php)
[1002]103fi
104
[988]105case "$type" in
[1013]106phpize)
[998]107    if [[ -r Makefile ]]; then
[1095]108        $MAKE xcachesvnclean || true
[998]109    fi
110    ;;
111esac
112
113rm -f php-src
114find -L . -type l | xargs rm -f
115lndir "$xcachesrcdir" >/dev/null
116find . -iname .\*.swp | xargs rm -f
117ln -sf ~/src/php/$phpbasename php-src
118for i in ~/src/php/$phpbasename/sapi/cgi/php{,-cgi}; do
119    if [[ -r $i ]]; then
120        ln -sf "$i" php-cgi
121    fi
122done
123ln -sf ~/src/php/$phpbasename/sapi/cli/php php-cli
[1048]124ln -sf ~/src/php/$phpbasename/sapi/fpm/php-fpm php-fpm
[998]125
126case "$type" in
[1013]127phpize)
[982]128    PHPDIRS=${PHPDIRS:-$HOME/test}
129    if [[ ! -x $PHPDIRS/$phpbasename/bin/phpize ]]; then
130        echo $PHPDIRS/$phpbasename/bin/phpize not found
131        exit
132    fi
133    export PATH=$PHPDIRS/$phpbasename/bin:$PATH
134    phpize --clean \
135    && phpize \
[1044]136    && CFLAGS="-g -O0 -Wall -Wno-unused -W -Wshadow -Werror=implicit-function-declaration -std=c89 -D_GNU_SOURCE -D_POSIX_SOURCE -Dinline=" ./configure \
[1003]137        --enable-xcache-cacher \
138        --enable-xcache-optimizer \
139        --enable-xcache-encoder \
140        --enable-xcache-decoder \
141        --enable-xcache-disassembler \
[1006]142        --enable-xcache-coverager \
[1022]143        --enable-xcache-test \
144        --enable-xcache-constant
[982]145    exit
146    ;;
147make)
[980]148    MAKEARGS=("$@")
[982]149    ;;
150esac
[980]151
[1095]152LANG=C $MAKE $MAKEOPTS "${MAKEARGS[@]}" 2>&1 \
[1062]153| sed -ur \
154    -e 's#Werror=implicit-function-declaration#We/rror=i/mplicit-function-declaration#' \
155    -e 's#\./xc_processor\.h#'$PWD'/xc_processor.h#' \
156    -e 's#\./xc_processor\.c\.h#'$PWD'/xc_processor.c.h#' \
[1022]157| hi error implicit warn FAIL
[980]158ret=${PIPESTATUS[0]}
159if [[ $ret -ne 0 || $type = make ]]; then
160    exit $ret
161fi
162
[977]163cmd=()
164tracer=()
165case "$basename" in
166*-apache1*)
167    cmd=($HOME/apache1/bin/httpd -X)
168    ;;
169*-apache*)
170    exit 1
171    ;;
172*)
[1048]173    case "${args[0]}" in
174    fcgi)
175        cmd=(./php-cgi -q -c devel.ini)
176        args=(-b 1026)
177        ;;
178    fpm)
179        cmd=(./php-fpm -c devel.ini)
180        args=(-y devel.fpm)
181        ;;
182    *)
183        cmd=(./php-cgi -q -c devel.ini)
184        ;;
185    esac
186
[1024]187    "${cmd[@]}" -v || true
[977]188esac
189
190case "$type" in
191ltr*)
192    export USE_ZEND_ALLOC=0
193    tracer=(ltrace -s1024 -e malloc,realloc,free,write)
194    ;;
195str*)
[1028]196    tracer=(strace -s1024 -T)
[977]197    ;;
198gdb)
199    #USE_ZEND_ALLOC=0
200    tracer=(gdb --args)
201    ;;
202val*)
203    export USE_ZEND_ALLOC=0
204    tracer=(valgrind --gen-suppressions=all)
205    ;;
206dc)
[1053]207    exec ./php-cli -c devel.ini ./bin/phpdc.phpr "${args[@]}" | tee decompiled.php
[977]208    ;;
209dop)
[1053]210    exec ./php-cli -c devel.ini ./bin/phpdop.phpr "${args[@]}"
[977]211    ;;
212retest)
[1095]213    exec $MAKE xcachetest "$@" TESTS="`grep '^/.*\.phpt$' php_test_results_*.txt | uniq | xargs`"
[977]214    ;;
215test)
216    case "${args[0]}" in
217    *.phpt)
[1095]218        exec $MAKE xcachetest TEST_ARGS=-v TESTS="${args[*]}"
[977]219        ;;
220    */)
[1095]221        exec $MAKE xcachetest TESTS="${args[@]}"
[977]222        ;;
223    *)
[1095]224        exec $MAKE xcachetest
[977]225        ;;
226    esac
227    ;;
228esac
229
230export XCACHE_SKIP_FCGI_WARNING=1
231echo "${tracer[@]}" "${cmd[@]}" "${args[@]}"
232exec "${tracer[@]}" "${cmd[@]}" "${args[@]}"
Note: See TracBrowser for help on using the repository browser.