mirror of
https://github.com/php/php-src.git
synced 2024-12-05 07:46:06 +08:00
657b00d7c0
1. one **hybrid** solution of register usage After the discussion with Dmitry, we may want to propose one hybrid solution of register usage. 1) Following the x86 implementation, we define REG0/1/2 to be the scratch registers. Clever tricks are utilized in x86 implementation for better register allocation. Note that we define REG0/1/2 as x8/9/10. One reason is that R0 and FCARG1 should be distinguished. 2) Temporary registers are also reserved(i.e. they are excluded from the candidates of register allocator), and they would be used due to the different addressing modes in AArch64. 2. update the 'make clean' target. 3. remove the unnecessary AArch64 related macros in zend_jit_internal.h. [ci skip] Change-Id: I627157b88b2344530d705751eb7f73a223ed83e5 CustomizedGitHooks: yes
156 lines
6.7 KiB
Makefile
156 lines
6.7 KiB
Makefile
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
|
|
INSTALL = $(top_srcdir)/build/shtool install -c
|
|
INSTALL_DATA = $(INSTALL) -m 644
|
|
|
|
DEFS = -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
|
|
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
|
|
|
|
all: $(all_targets)
|
|
@echo
|
|
@echo "Build complete."
|
|
@echo "Don't forget to run 'make test'."
|
|
@echo
|
|
|
|
build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
|
|
|
|
build-binaries: $(PHP_BINARIES)
|
|
|
|
libphp.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
|
|
$(LIBTOOL) --mode=link $(CC) $(LIBPHP_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
|
|
-@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1
|
|
|
|
libs/libphp.bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
|
|
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp.so
|
|
|
|
install: $(all_targets) $(install_targets)
|
|
|
|
install-sapi: $(OVERALL_TARGET)
|
|
@echo "Installing PHP SAPI module: $(PHP_SAPI)"
|
|
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
|
|
-@if test ! -r $(phptempdir)/libphp.$(SHLIB_DL_SUFFIX_NAME); then \
|
|
for i in 0.0.0 0.0 0; do \
|
|
if test -r $(phptempdir)/libphp.$(SHLIB_DL_SUFFIX_NAME).$$i; then \
|
|
$(LN_S) $(phptempdir)/libphp.$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp.$(SHLIB_DL_SUFFIX_NAME); \
|
|
break; \
|
|
fi; \
|
|
done; \
|
|
fi
|
|
@$(INSTALL_IT)
|
|
|
|
install-binaries: build-binaries $(install_binary_targets)
|
|
|
|
install-modules: build-modules
|
|
@test -d modules && \
|
|
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
|
|
@echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/"
|
|
@rm -f modules/*.la >/dev/null 2>&1
|
|
@$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
|
|
|
|
install-headers:
|
|
-@if test "$(INSTALL_HEADERS)"; then \
|
|
for i in `echo $(INSTALL_HEADERS)`; do \
|
|
i=`$(top_srcdir)/build/shtool path -d $$i`; \
|
|
paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
|
|
done; \
|
|
$(mkinstalldirs) $$paths && \
|
|
echo "Installing header files: $(INSTALL_ROOT)$(phpincludedir)/" && \
|
|
for i in `echo $(INSTALL_HEADERS)`; do \
|
|
if test "$(PHP_PECL_EXTENSION)"; then \
|
|
src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \
|
|
else \
|
|
src=$$i; \
|
|
fi; \
|
|
if test -f "$(top_srcdir)/$$src"; then \
|
|
$(INSTALL_DATA) $(top_srcdir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
|
|
elif test -f "$(top_builddir)/$$src"; then \
|
|
$(INSTALL_DATA) $(top_builddir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
|
|
else \
|
|
(cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \
|
|
cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \
|
|
fi \
|
|
done; \
|
|
fi
|
|
|
|
PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1'
|
|
PHP_TEST_SHARED_EXTENSIONS = ` \
|
|
if test "x$(PHP_MODULES)" != "x"; then \
|
|
for i in $(PHP_MODULES)""; do \
|
|
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
|
|
done; \
|
|
fi; \
|
|
if test "x$(PHP_ZEND_EX)" != "x"; then \
|
|
for i in $(PHP_ZEND_EX)""; do \
|
|
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d zend_extension=$(top_builddir)/modules/$$dlname"; \
|
|
done; \
|
|
fi`
|
|
PHP_DEPRECATED_DIRECTIVES_REGEX = '^(magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*='
|
|
|
|
test: all
|
|
@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
|
|
INI_FILE=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \
|
|
if test "$$INI_FILE"; then \
|
|
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
|
|
else \
|
|
echo > $(top_builddir)/tmp-php.ini; \
|
|
fi; \
|
|
INI_SCANNED_PATH=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \
|
|
if test "$$INI_SCANNED_PATH"; then \
|
|
INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \
|
|
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \
|
|
fi; \
|
|
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
|
|
TEST_PHP_SRCDIR=$(top_srcdir) \
|
|
CC="$(CC)" \
|
|
$(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
|
|
TEST_RESULT_EXIT_CODE=$$?; \
|
|
rm $(top_builddir)/tmp-php.ini; \
|
|
exit $$TEST_RESULT_EXIT_CODE; \
|
|
else \
|
|
echo "ERROR: Cannot run tests without CLI sapi."; \
|
|
fi
|
|
|
|
clean:
|
|
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
|
|
find . -name \*.lo -o -name \*.o -o -name \*.dep | xargs rm -f
|
|
find . -name \*.la -o -name \*.a | xargs rm -f
|
|
find . -name \*.so | xargs rm -f
|
|
find . -name .libs -a -type d|xargs rm -rf
|
|
rm -f libphp.la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
|
|
rm -f ext/opcache/jit/zend_jit_x86.c
|
|
rm -f ext/opcache/jit/zend_jit_arm64.c
|
|
|
|
distclean: clean
|
|
rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h main/internal_functions_cli.c main/internal_functions.c Zend/zend_dtrace_gen.h Zend/zend_dtrace_gen.h.bak Zend/zend_config.h
|
|
rm -f main/build-defs.h scripts/phpize
|
|
rm -f ext/date/lib/timelib_config.h ext/mbstring/libmbfl/config.h ext/oci8/oci8_dtrace_gen.h ext/oci8/oci8_dtrace_gen.h.bak
|
|
rm -f scripts/man1/phpize.1 scripts/php-config scripts/man1/php-config.1 sapi/cli/php.1 sapi/cgi/php-cgi.1 sapi/phpdbg/phpdbg.1 ext/phar/phar.1 ext/phar/phar.phar.1
|
|
rm -f sapi/fpm/php-fpm.conf sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html
|
|
rm -f ext/phar/phar.phar ext/phar/phar.php
|
|
if test "$(srcdir)" != "$(builddir)"; then \
|
|
rm -f ext/phar/phar/phar.inc; \
|
|
fi
|
|
$(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f
|
|
|
|
prof-gen:
|
|
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-generate all
|
|
|
|
prof-clean:
|
|
find . -name \*.lo -o -name \*.o | xargs rm -f
|
|
find . -name \*.la -o -name \*.a | xargs rm -f
|
|
find . -name \*.so | xargs rm -f
|
|
rm -f libphp.la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
|
|
|
|
prof-use:
|
|
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-use all
|
|
|
|
%_arginfo.h: %.stub.php
|
|
@if test -e "$(top_srcdir)/build/gen_stub.php"; then \
|
|
if test ! -z "$(PHP)"; then \
|
|
echo Parse $< to generate $@;\
|
|
$(PHP) $(top_srcdir)/build/gen_stub.php $<; \
|
|
fi; \
|
|
fi;
|
|
|
|
.PHONY: all clean install distclean test prof-gen prof-clean prof-use
|
|
.NOEXPORT:
|