source: trunk/devel/run @ 1113

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

refactor: kill unused label

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