1
0
Fork 0

prepare is now a Makefile

git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1095 c26eb9a1-5813-0410-bd6c-c2e55f420ca7
This commit is contained in:
Xuefer 2012-07-31 16:21:50 +00:00
parent 6e1125988f
commit 802a40252d
8 changed files with 280 additions and 126 deletions

View File

@ -1,105 +0,0 @@
#! /bin/bash
SELF="$0"
if test -e devel/prepare.cfg ; then
. devel/prepare.cfg
else
echo devel/prepare.cfg is required, see devel/prepare.cfg >&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_xc_opcode_spec_def.h
make_xc_const_string
test -e tags && echo tags exists, skipping. use \""$0" tags\" to rebuild || make_tags
}
make_clean() {
make_clean_xc_const_string
echo "*" rm -f tags xc_opcode_spec_def.h
rm -f tags xc_opcode_spec_def.h
}
make_xc_const_string() {
make_xc_const_string_opcodes_php4.x.h
make_xc_const_string_opcodes_php5.0.h
make_xc_const_string_opcodes_php5.1.h
make_xc_const_string_opcodes_php5.4.h
make_xc_const_string_opcodes_php6.x.h
}
make_clean_xc_const_string() {
echo "*" rm -f xcache/xc_const_string_opcodes_php*.h{,.tmp}
rm -f xcache/xc_const_string_opcodes_php*.h
}
make_xc_const_string_opcodes_php4.x.h() {
precheck xcache/xc_const_string_opcodes_php4.x.h "${PHP4_x_DIR}/Zend/zend_compile.h" && "$AWK" -f ./devel/gen_const_string_opcodes.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O"
}
make_xc_const_string_opcodes_php5.0.h() {
precheck xcache/xc_const_string_opcodes_php5.0.h "${PHP5_0_DIR}/Zend/zend_compile.h" && "$AWK" -f ./devel/gen_const_string_opcodes.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O"
}
make_xc_const_string_opcodes_php5.1.h() {
precheck xcache/xc_const_string_opcodes_php5.1.h "${PHP5_1_DIR}/Zend/zend_vm_def.h" && "$AWK" -f ./devel/gen_const_string_opcodes.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O"
}
make_xc_const_string_opcodes_php5.4.h() {
precheck xcache/xc_const_string_opcodes_php5.4.h "${PHP5_4_DIR}/Zend/zend_vm_def.h" && "$AWK" -f ./devel/gen_const_string_opcodes.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O"
}
make_xc_const_string_opcodes_php6.x.h() {
precheck xcache/xc_const_string_opcodes_php6.x.h "${PHP6_x_DIR}/Zend/zend_vm_def.h" && "$AWK" -f ./devel/gen_const_string_opcodes.awk < "$I" > "$O.tmp" && mv "$O.tmp" "$O"
}
make_xc_opcode_spec_def.h() {
precheck xcache/xc_opcode_spec_def.h "${EA_DIR}/opcodes.c" && "$AWK" -f ./devel/gen_xc_opcode_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

View File

@ -3,6 +3,7 @@ PHP4_x_DIR=
PHP5_0_DIR=
PHP5_1_DIR=
PHP5_3_DIR=
PHP5_4_DIR=
PHP6_x_DIR=
PHP_DEVEL_DIR=

98
devel/prepare.mak Normal file
View File

@ -0,0 +1,98 @@
CTAGS=$(shell which ctags 2>/dev/null || which exuberant-ctags 2>/dev/null)
AWK=$(shell which gawk 2>/dev/null || which awk 2>/dev/null)
include devel/prepare.cfg
.PHONY: dummy
.PHONY: all
all: xcache/xc_opcode_spec_def.h xc_const_string tags
.PHONY: clean
clean: clean_xc_const_string
rm -f tags xcache/xc_opcode_spec_def.h
.PHONY: clean_xc_const_string
clean_xc_const_string:
rm -f xcache/xc_const_string_opcodes_php*.h
.PHONY: xc_const_string
xc_const_string: \
xcache/xc_const_string_opcodes_php4.x.h \
xcache/xc_const_string_opcodes_php5.0.h \
xcache/xc_const_string_opcodes_php5.1.h \
xcache/xc_const_string_opcodes_php5.3.h \
xcache/xc_const_string_opcodes_php5.4.h \
xcache/xc_const_string_opcodes_php6.x.h
ifeq (${EA_DIR},)
xcache/xc_opcode_spec_def.h: dummy
@echo "Skipped $@: EA_DIR not set"
else
xcache/xc_opcode_spec_def.h: ${EA_DIR}/opcodes.c
$(AWK) -f ./devel/gen_xc_opcode_spec.awk < "$<" > "$@".tmp
mv "$@".tmp "$@"
endif
ifeq (${PHP4_x_DIR},)
xcache/xc_const_string_opcodes_php4.x.h: dummy
@echo "Skipped $@: PHP_4_x_DIR not set"
else
xcache/xc_const_string_opcodes_php4.x.h: ${PHP4_x_DIR}/Zend/zend_compile.h
$(AWK) -f ./devel/gen_const_string_opcodes.awk < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
endif
ifeq (${PHP5_0_DIR},)
xcache/xc_const_string_opcodes_php5.0.h: dummy
@echo "Skipped $@: PHP_5_0_DIR not set"
else
xcache/xc_const_string_opcodes_php5.0.h: ${PHP5_0_DIR}/Zend/zend_compile.h
$(AWK) -f ./devel/gen_const_string_opcodes.awk < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
endif
ifeq (${PHP5_1_DIR},)
xcache/xc_const_string_opcodes_php5.1.h: dummy
@echo "Skipped $@: PHP_5_1_DIR not set"
else
xcache/xc_const_string_opcodes_php5.1.h: ${PHP5_1_DIR}/Zend/zend_vm_def.h
$(AWK) -f ./devel/gen_const_string_opcodes.awk < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
endif
ifeq (${PHP5_3_DIR},)
xcache/xc_const_string_opcodes_php5.3.h: dummy
@echo "Skipped $@: PHP_5_3_DIR not set"
else
xcache/xc_const_string_opcodes_php5.3.h: ${PHP5_3_DIR}/Zend/zend_vm_def.h
$(AWK) -f ./devel/gen_const_string_opcodes.awk < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
endif
ifeq (${PHP5_4_DIR},)
xcache/xc_const_string_opcodes_php5.4.h: dummy
@echo "Skipped $@: PHP_5_4_DIR not set"
else
xcache/xc_const_string_opcodes_php5.4.h: ${PHP5_4_DIR}/Zend/zend_vm_def.h
$(AWK) -f ./devel/gen_const_string_opcodes.awk < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
endif
ifeq (${PHP6_x_DIR},)
xcache/xc_const_string_opcodes_php6.x.h: dummy
@echo "Skipped $@: PHP_6_x_DIR not set"
else
xcache/xc_const_string_opcodes_php6.x.h: ${PHP6_x_DIR}/Zend/zend_vm_def.h
$(AWK) -f ./devel/gen_const_string_opcodes.awk < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
endif
ifeq (${PHP_DEVEL_DIR},)
tags:
echo "* Making tags without php source files"
"$(CTAGS)" -R .
else
tags:
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"
endif

View File

@ -1,6 +1,7 @@
#!/bin/bash
# this script is for developers only
set -e
MAKE=/usr/bin/make
. devel/run.cfg
if [[ ! -z $1 ]]; then
@ -9,7 +10,13 @@ fi
case "$type" in
prep*)
exec ./devel/prepare
shift
exec $MAKE -f devel/prepare.mak "$@"
;;
tags)
rm -f tags
shift
exec $MAKE -f devel/prepare.mak tags "$@"
;;
dep*)
pwd=$(readlink -f "$(pwd)")
@ -59,10 +66,7 @@ dep*)
exit
;;
xtest)
exec /usr/bin/make -f devel/test.mak
;;
tags)
exec ./devel/prepare tags
exec $MAKE -f devel/test.mak
;;
esac
@ -101,7 +105,7 @@ fi
case "$type" in
phpize)
if [[ -r Makefile ]]; then
make xcachesvnclean || true
$MAKE xcachesvnclean || true
fi
;;
esac
@ -145,7 +149,7 @@ make)
;;
esac
LANG=C /usr/bin/make $MAKEOPTS "${MAKEARGS[@]}" 2>&1 \
LANG=C $MAKE $MAKEOPTS "${MAKEARGS[@]}" 2>&1 \
| sed -ur \
-e 's#Werror=implicit-function-declaration#We/rror=i/mplicit-function-declaration#' \
-e 's#\./xc_processor\.h#'$PWD'/xc_processor.h#' \
@ -206,18 +210,18 @@ dop)
exec ./php-cli -c devel.ini ./bin/phpdop.phpr "${args[@]}"
;;
retest)
exec make xcachetest "$@" TESTS="`grep '^/.*\.phpt$' php_test_results_*.txt | uniq | xargs`"
exec $MAKE xcachetest "$@" TESTS="`grep '^/.*\.phpt$' php_test_results_*.txt | uniq | xargs`"
;;
test)
case "${args[0]}" in
*.phpt)
exec make xcachetest TEST_ARGS=-v TESTS="${args[*]}"
exec $MAKE xcachetest TEST_ARGS=-v TESTS="${args[*]}"
;;
*/)
exec make xcachetest TESTS="${args[@]}"
exec $MAKE xcachetest TESTS="${args[@]}"
;;
*)
exec make xcachetest
exec $MAKE xcachetest
;;
esac
;;

View File

@ -65,6 +65,8 @@ const char *xc_get_data_type(zend_uchar data_type)
# include "xc_const_string_opcodes_php6.x.h"
#elif defined(ZEND_ENGINE_2_4)
# include "xc_const_string_opcodes_php5.4.h"
#elif defined(ZEND_ENGINE_2_3)
# include "xc_const_string_opcodes_php5.3.h"
#elif defined(ZEND_ENGINE_2_1)
# include "xc_const_string_opcodes_php5.1.h"
#elif defined(ZEND_ENGINE_2)

View File

@ -1,4 +1,4 @@
/* size = 149 */
/* size = 150 */
static const char *const xc_opcode_names[] = {
/* 0 */ "NOP",
/* 1 */ "ADD",

View File

@ -1,4 +1,4 @@
/* size = 154 */
/* size = 151 */
static const char *const xc_opcode_names[] = {
/* 0 */ "NOP",
/* 1 */ "ADD",
@ -69,7 +69,7 @@ static const char *const xc_opcode_names[] = {
/* 66 */ "SEND_VAR",
/* 67 */ "SEND_REF",
/* 68 */ "NEW",
/* 69 */ "INIT_NS_FCALL_BY_NAME",
/* 69 */ "UNDEF",
/* 70 */ "FREE",
/* 71 */ "INIT_ARRAY",
/* 72 */ "ADD_ARRAY_ELEMENT",
@ -100,7 +100,7 @@ static const char *const xc_opcode_names[] = {
/* 97 */ "FETCH_OBJ_UNSET",
/* 98 */ "FETCH_DIM_TMP_VAR",
/* 99 */ "FETCH_CONSTANT",
/* 100 */ "GOTO",
/* 100 */ "UNDEF",
/* 101 */ "EXT_STMT",
/* 102 */ "EXT_FCALL_BEGIN",
/* 103 */ "EXT_FCALL_END",
@ -143,15 +143,12 @@ static const char *const xc_opcode_names[] = {
/* 140 */ "DECLARE_INHERITED_CLASS",
/* 141 */ "DECLARE_FUNCTION",
/* 142 */ "RAISE_ABSTRACT_ERROR",
/* 143 */ "DECLARE_CONST",
/* 143 */ "UNDEF",
/* 144 */ "ADD_INTERFACE",
/* 145 */ "DECLARE_INHERITED_CLASS_DELAYED",
/* 145 */ "UNDEF",
/* 146 */ "VERIFY_ABSTRACT_CLASS",
/* 147 */ "ASSIGN_DIM",
/* 148 */ "ISSET_ISEMPTY_PROP_OBJ",
/* 149 */ "HANDLE_EXCEPTION",
/* 150 */ "USER_OPCODE",
/* 151 */ "UNDEF",
/* 152 */ "JMP_SET",
/* 153 */ "DECLARE_LAMBDA_FUNCTION"
/* 150 */ "USER_OPCODE"
};

View File

@ -0,0 +1,157 @@
/* size = 154 */
static const char *const xc_opcode_names[] = {
/* 0 */ "NOP",
/* 1 */ "ADD",
/* 2 */ "SUB",
/* 3 */ "MUL",
/* 4 */ "DIV",
/* 5 */ "MOD",
/* 6 */ "SL",
/* 7 */ "SR",
/* 8 */ "CONCAT",
/* 9 */ "BW_OR",
/* 10 */ "BW_AND",
/* 11 */ "BW_XOR",
/* 12 */ "BW_NOT",
/* 13 */ "BOOL_NOT",
/* 14 */ "BOOL_XOR",
/* 15 */ "IS_IDENTICAL",
/* 16 */ "IS_NOT_IDENTICAL",
/* 17 */ "IS_EQUAL",
/* 18 */ "IS_NOT_EQUAL",
/* 19 */ "IS_SMALLER",
/* 20 */ "IS_SMALLER_OR_EQUAL",
/* 21 */ "CAST",
/* 22 */ "QM_ASSIGN",
/* 23 */ "ASSIGN_ADD",
/* 24 */ "ASSIGN_SUB",
/* 25 */ "ASSIGN_MUL",
/* 26 */ "ASSIGN_DIV",
/* 27 */ "ASSIGN_MOD",
/* 28 */ "ASSIGN_SL",
/* 29 */ "ASSIGN_SR",
/* 30 */ "ASSIGN_CONCAT",
/* 31 */ "ASSIGN_BW_OR",
/* 32 */ "ASSIGN_BW_AND",
/* 33 */ "ASSIGN_BW_XOR",
/* 34 */ "PRE_INC",
/* 35 */ "PRE_DEC",
/* 36 */ "POST_INC",
/* 37 */ "POST_DEC",
/* 38 */ "ASSIGN",
/* 39 */ "ASSIGN_REF",
/* 40 */ "ECHO",
/* 41 */ "PRINT",
/* 42 */ "JMP",
/* 43 */ "JMPZ",
/* 44 */ "JMPNZ",
/* 45 */ "JMPZNZ",
/* 46 */ "JMPZ_EX",
/* 47 */ "JMPNZ_EX",
/* 48 */ "CASE",
/* 49 */ "SWITCH_FREE",
/* 50 */ "BRK",
/* 51 */ "CONT",
/* 52 */ "BOOL",
/* 53 */ "INIT_STRING",
/* 54 */ "ADD_CHAR",
/* 55 */ "ADD_STRING",
/* 56 */ "ADD_VAR",
/* 57 */ "BEGIN_SILENCE",
/* 58 */ "END_SILENCE",
/* 59 */ "INIT_FCALL_BY_NAME",
/* 60 */ "DO_FCALL",
/* 61 */ "DO_FCALL_BY_NAME",
/* 62 */ "RETURN",
/* 63 */ "RECV",
/* 64 */ "RECV_INIT",
/* 65 */ "SEND_VAL",
/* 66 */ "SEND_VAR",
/* 67 */ "SEND_REF",
/* 68 */ "NEW",
/* 69 */ "INIT_NS_FCALL_BY_NAME",
/* 70 */ "FREE",
/* 71 */ "INIT_ARRAY",
/* 72 */ "ADD_ARRAY_ELEMENT",
/* 73 */ "INCLUDE_OR_EVAL",
/* 74 */ "UNSET_VAR",
/* 75 */ "UNSET_DIM",
/* 76 */ "UNSET_OBJ",
/* 77 */ "FE_RESET",
/* 78 */ "FE_FETCH",
/* 79 */ "EXIT",
/* 80 */ "FETCH_R",
/* 81 */ "FETCH_DIM_R",
/* 82 */ "FETCH_OBJ_R",
/* 83 */ "FETCH_W",
/* 84 */ "FETCH_DIM_W",
/* 85 */ "FETCH_OBJ_W",
/* 86 */ "FETCH_RW",
/* 87 */ "FETCH_DIM_RW",
/* 88 */ "FETCH_OBJ_RW",
/* 89 */ "FETCH_IS",
/* 90 */ "FETCH_DIM_IS",
/* 91 */ "FETCH_OBJ_IS",
/* 92 */ "FETCH_FUNC_ARG",
/* 93 */ "FETCH_DIM_FUNC_ARG",
/* 94 */ "FETCH_OBJ_FUNC_ARG",
/* 95 */ "FETCH_UNSET",
/* 96 */ "FETCH_DIM_UNSET",
/* 97 */ "FETCH_OBJ_UNSET",
/* 98 */ "FETCH_DIM_TMP_VAR",
/* 99 */ "FETCH_CONSTANT",
/* 100 */ "GOTO",
/* 101 */ "EXT_STMT",
/* 102 */ "EXT_FCALL_BEGIN",
/* 103 */ "EXT_FCALL_END",
/* 104 */ "EXT_NOP",
/* 105 */ "TICKS",
/* 106 */ "SEND_VAR_NO_REF",
/* 107 */ "CATCH",
/* 108 */ "THROW",
/* 109 */ "FETCH_CLASS",
/* 110 */ "CLONE",
/* 111 */ "UNDEF",
/* 112 */ "INIT_METHOD_CALL",
/* 113 */ "INIT_STATIC_METHOD_CALL",
/* 114 */ "ISSET_ISEMPTY_VAR",
/* 115 */ "ISSET_ISEMPTY_DIM_OBJ",
/* 116 */ "UNDEF",
/* 117 */ "UNDEF",
/* 118 */ "UNDEF",
/* 119 */ "UNDEF",
/* 120 */ "UNDEF",
/* 121 */ "UNDEF",
/* 122 */ "UNDEF",
/* 123 */ "UNDEF",
/* 124 */ "UNDEF",
/* 125 */ "UNDEF",
/* 126 */ "UNDEF",
/* 127 */ "UNDEF",
/* 128 */ "UNDEF",
/* 129 */ "UNDEF",
/* 130 */ "UNDEF",
/* 131 */ "UNDEF",
/* 132 */ "PRE_INC_OBJ",
/* 133 */ "PRE_DEC_OBJ",
/* 134 */ "POST_INC_OBJ",
/* 135 */ "POST_DEC_OBJ",
/* 136 */ "ASSIGN_OBJ",
/* 137 */ "OP_DATA",
/* 138 */ "INSTANCEOF",
/* 139 */ "DECLARE_CLASS",
/* 140 */ "DECLARE_INHERITED_CLASS",
/* 141 */ "DECLARE_FUNCTION",
/* 142 */ "RAISE_ABSTRACT_ERROR",
/* 143 */ "DECLARE_CONST",
/* 144 */ "ADD_INTERFACE",
/* 145 */ "DECLARE_INHERITED_CLASS_DELAYED",
/* 146 */ "VERIFY_ABSTRACT_CLASS",
/* 147 */ "ASSIGN_DIM",
/* 148 */ "ISSET_ISEMPTY_PROP_OBJ",
/* 149 */ "HANDLE_EXCEPTION",
/* 150 */ "USER_OPCODE",
/* 151 */ "UNDEF",
/* 152 */ "JMP_SET",
/* 153 */ "DECLARE_LAMBDA_FUNCTION"
};