source: trunk/devel/run @ 1101

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

devel: use gettext to scan translate string

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