source: trunk/devel/run @ 1021

Last change on this file since 1021 was 1021, checked in by moo, 2 years ago

devel: fix run fcgi

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