source: trunk/devel/run @ 1103

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

htdocs: fixed po2php. add translation for diagnosis

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