source: trunk/devel/run @ 1014

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

typo

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