#! /bin/bash SELF="$0" if test -e prepare.devel.inc ; then . prepare.devel.inc else echo prepare.devel.inc is required, see prepare.devel.inc.example >&2 exit fi CTAGS=`which ctags 2>/dev/null || which exuberant-ctags 2>/dev/null ` AWK=`which gawk 2>/dev/null || which awk 2>/dev/null ` make_all() { make_opcode_spec_def.h make_const_string test -e tags && echo tags exists, skipping. use \""$0" tags\" to rebuild || make_tags } make_clean() { make_clean_const_string echo "*" rm -f tags opcode_spec_def.h rm -f tags opcode_spec_def.h } make_const_string() { make_const_string_opcodes_php4.x.h make_const_string_opcodes_php5.0.h make_const_string_opcodes_php5.1.h make_const_string_opcodes_php6.x.h } make_clean_const_string() { echo "*" rm -f const_string_opcodes_php*.h{,.tmp} rm -f const_string_opcodes_php*.h } make_const_string_opcodes_php4.x.h() { precheck const_string_opcodes_php4.x.h "${PHP4_x_DIR}/Zend/zend_compile.h" && "$AWK" -f ./mkopcode.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O" } make_const_string_opcodes_php5.0.h() { precheck const_string_opcodes_php5.0.h "${PHP5_0_DIR}/Zend/zend_compile.h" && "$AWK" -f ./mkopcode.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O" } make_const_string_opcodes_php5.1.h() { precheck const_string_opcodes_php5.1.h "${PHP5_1_DIR}/Zend/zend_vm_def.h" && "$AWK" -f ./mkopcode.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O" } make_const_string_opcodes_php6.x.h() { precheck const_string_opcodes_php6.x.h "${PHP6_x_DIR}/Zend/zend_vm_def.h" && "$AWK" -f ./mkopcode.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O" } make_opcode_spec_def.h() { precheck "opcode_spec_def.h" "${EA_DIR}/opcodes.c" && "$AWK" -f ./mkopcode_spec.awk < "$I" > "$O" } make_tags() { if test -z "$CTAGS" ; then echo tool ctags not found, skip building tags >&2 return fi if test -d "${PHP_DEVEL_DIR}" ; then echo "* Making tags with ${PHP_DEVEL_DIR}" "$CTAGS" -R . "${PHP_DEVEL_DIR}/main" "${PHP_DEVEL_DIR}/Zend" "${PHP_DEVEL_DIR}/TSRM" "${PHP_DEVEL_DIR}/ext/standard" else echo "* Making tags without php source files" "$CTAGS" -R . fi } error() { echo "$@" >&2 } precheck() { if test -e "$2" ; then :; else error X skipping "$1" because "$2" not found return 1 fi if test "$1" -ot "$2" ; then :; else echo O "$1" is up to date. return 1 fi O="$1" I="$2" echo "* Making $1 from $2" return 0 } if test -z "$1" ; then make_all else while ! test -z "$1" ; do eval "make_$1" shift done fi