XCache is a fast, stable PHP opcode cacher that has been proven and is now running on production servers under high load. https://xcache.lighttpd.net/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

105 lines
2.9 KiB

#! /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