#!/bin/sh## +----------------------------------------------------------------------+# | Copyright (c) The PHP Group |# +----------------------------------------------------------------------+# | This source file is subject to version 3.01 of the PHP license, |# | that is bundled with this package in the file LICENSE, and is |# | available through the world-wide-web at the following url: |# | https://php.net/license/3_01.txt |# | If you did not receive a copy of the PHP license and are unable to |# | obtain it through the world-wide-web, please send a note to |# | license@php.net so we can mail you a copy immediately. |# +----------------------------------------------------------------------+# | Authors: Sascha Schumann <sascha@schumann.cx> |# +----------------------------------------------------------------------+## This script generates PHP lexer and parser files required to build PHP. The# generated files are ignored in the Git repository and packaged during the PHP# release process into the release installation archive download. This way the# bison and re2c dependencies are not required to build PHP when downloading# release archive.## Usage: genfiles## Environment:# The following environment variables can override default generators paths.## YACC Parser generator program, default bison# RE2C Lexer generator program, default re2c# SED Path to sed program, default sed# MAKE Path to make program, default make## For example:# YACC=/path/to/bison ./genfilesYACC=${YACC:-bison}YACC="$YACC -l"RE2C=${RE2C:-re2c}RE2C_FLAGS="-i"SED=${SED:-sed}MAKE=${MAKE:-make}# Go to project root.cd $(CDPATH= cd -- "$(dirname -- "0ドル")/../../" && pwd -P)# Check required bison version from the configure.ac file.required_bison_version=$($SED -n 's/PHP_PROG_BISON(\[\([0-9\.]*\)\].*/1円/p' configure.ac)set -f; IFS='.'; set -- $required_bison_version; set +f; IFS=' 'required_bison_num="$(expr ${1:-0} \* 10000 + ${2:-0} \* 100 + ${3:-0})"current_version=$($YACC --version 2> /dev/null | grep 'GNU Bison' | cut -d ' ' -f 4 | tr -d a-z)set -f; IFS='.'; set -- $current_version; set +f; IFS=' 'current_bison_num="$(expr ${1:-0} \* 10000 + ${2:-0} \* 100 + ${3:-0})"if test -z "$current_version"; thenecho "genfiles: bison not found." >&2echo " You need bison version $required_bison_version or newer installed" >&2echo " to regenerate parser files." >&2exit 1fiif test "$current_bison_num" -lt "$required_bison_num"; thenecho "genfiles: bison version $current_version found." >&2echo " You need bison version $required_bison_version or newer installed" >&2echo " to build parser files." >&2exit 1elseecho "genfiles: bison version $current_version (ok)"fi# Check required re2c version from the configure.ac file.required_re2c_version=$($SED -n 's/PHP_PROG_RE2C(\[\(.*\)\])/1円/p' configure.ac)set -f; IFS='.'; set -- $required_re2c_version; set +f; IFS=' 'required_re2c_num="$(expr ${1:-0} \* 10000 + ${2:-0} \* 100 + ${3:-0})"current_version="$($RE2C --version | cut -d ' ' -f 2 2>/dev/null)"set -f; IFS='.'; set -- $current_version; set +f; IFS=' 'current_re2c_num="$(expr ${1:-0} \* 10000 + ${2:-0} \* 100 + ${3:-0})"if test -z "$current_version"; thenecho "genfiles: re2c not found." >&2echo " You need re2c version $required_re2c_version or newer installed" >&2echo " to regenerate lexer files." >&2exit 1fiif test "$current_re2c_num" -lt "$required_re2c_num"; thenecho "genfiles: re2c version $current_version found." >&2echo " You need re2c version $required_re2c_version or newer installed" >&2echo " to build lexer files." >&2exit 1elseecho "genfiles: re2c version $current_version (ok)"fi# Check if make exists.if ! test -x "$(command -v $MAKE)"; thenecho "genfiles: make not found. Please install make to generate files." >&2exit 1fiecho "genfiles: Generating Zend parser and lexer files"$MAKE RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" YACC="$YACC" SED="$SED" srcdir=Zend builddir=Zend top_srcdir=. \-f Zend/Makefile.frag \Zend/zend_language_parser.c \Zend/zend_language_scanner.c \Zend/zend_ini_parser.c \Zend/zend_ini_scanner.cecho "genfiles: Generating phpdbg parser and lexer files"$MAKE RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" YACC="$YACC" srcdir=sapi/phpdbg builddir=sapi/phpdbg top_srcdir=. \-f sapi/phpdbg/Makefile.frag \sapi/phpdbg/phpdbg_parser.c \sapi/phpdbg/phpdbg_lexer.cecho "genfiles: enerating json extension parser and lexer files"$MAKE RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" YACC="$YACC" srcdir=ext/json builddir=ext/json top_srcdir=. \-f ext/json/Makefile.frag \ext/json/json_parser.tab.c \ext/json/json_scanner.cecho "genfiles: Generating PDO lexer file"$MAKE RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" srcdir=ext/pdo builddir=ext/pdo top_srcdir=. \-f ext/pdo/Makefile.frag \ext/pdo/pdo_sql_parser.cecho "genfiles: Generating standard extension lexer files"$MAKE RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" srcdir=ext/standard builddir=ext/standard top_srcdir=. \-f ext/standard/Makefile.frag \ext/standard/var_unserializer.c \ext/standard/url_scanner_ex.cecho "genfiles: Generating phar extension lexer file"$MAKE RE2C="$RE2C" RE2C_FLAGS="$RE2C_FLAGS" srcdir=ext/phar builddir=ext/phar top_srcdir=. \-f ext/phar/Makefile.frag \ext/phar/phar_path_check.c
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。