source: trunk/devel/run @ 1102

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

htdocs: updated translation using po

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