Table of Contents

CMake Work Notes

Linux buildchain

Shell script to recreate user tarball, two options --force and --debug, if --$force regenerate anyway, if debug only add SUPPRESS_WARNINGS=“” to make invocation. Extract version from `grep '^PHP_EXTRA_VERSION=' configure.in` to check if is dev, and check Zend directory to check if is Zend v1 or Zend v2 (this is deprecated?) At end call make -s -f build/build.mk ZENDDIR=Zend

At this step generated files are:

? acconfig.h
? aclocal.m4
? autom4te.cache/output.0
? autom4te.cache/requests
? autom4te.cache/traces.0
? configure
? generated_lists
? install-sh
? main/php_config.h.in
? missing
? mkinstalldirs
? Makefile
? Makefile.fragments
? Makefile.objects
? TSRM/tsrm_config.h
? Zend/zend_config.h
? config.log
? config.nice
? config.status
? ext/date/lib/timelib_config.h
? ext/iconv/php_have_bsd_iconv.h
? ext/iconv/php_have_glibc_iconv.h
? ext/iconv/php_have_ibm_iconv.h
? ext/iconv/php_have_iconv.h
? ext/iconv/php_have_libiconv.h
? ext/iconv/php_iconv_supports_errno.h
? ext/iconv/php_php_iconv_h_path.h
? ext/iconv/php_php_iconv_impl.h
? ext/pdo_sqlite/sqlite/src/config.h
? ext/pdo_sqlite/sqlite/src/sqlite3.h
? ext/sqlite/libsqlite/src/config.h
? ext/sqlite/libsqlite/src/sqlite.h
? libtool
? main/build-defs.h
? main/internal_functions.c
? main/internal_functions_cli.c
? main/php_config.h
? php5.spec
? sapi/cli/php.1
? scripts/man1/php-config.1
? scripts/man1/phpize.1
? scripts/php-config
? scripts/phpize

Windows buildchain

Components

Zend

Configuring Zend
checking for bison version... (cached) 2.3 (ok)
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for limits.h... (cached) yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for stdarg.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for signal.h... (cached) yes
checking for unix.h... (cached) no
checking for stdlib.h... (cached) yes
checking for dlfcn.h... (cached) yes
checking for mach-o/dyld.h... (cached) no
checking for size_t... (cached) yes
checking return type of signal handlers... void
checking for uint... yes
checking for ulong... yes
checking for int32_t... yes
checking for uint32_t... yes
checking for vprintf... (cached) yes
checking for _doprnt... (cached) no
checking for working memcmp... yes
checking for working alloca.h... (cached) yes
checking for alloca... (cached) yes
checking for memcpy... (cached) yes
checking for strdup... (cached) yes
checking for getpid... yes
checking for kill... yes
checking for strtod... yes
checking for strtol... yes
checking for finite... yes
checking for fpclass... (cached) no
checking for sigsetjmp... no
checking whether sprintf is broken... no
checking for finite... (cached) yes
checking for isfinite... no
checking for isinf... (cached) yes
checking for isnan... (cached) yes
checking whether fp_except is defined... no
checking for dlfcn.h... (cached) yes
checking whether dlsym() requires a leading underscore in symbol names... no
checking virtual machine dispatch method... CALL
checking whether to enable thread-safety... no
checking whether to enable inline optimization for GCC... yes
checking whether to enable Zend debugging... no
checking for inline... inline
checking target system is Darwin... no
checking for MM alignment and log values... done
checking for memory allocation using mmap(MAP_ANON)... yes
checking for memory allocation using mmap("/dev/zero")... yes
checking for mremap... yes

Generated post-configued:

configure.in

Extension PHP Macros

acinclude.m4 Macros

Output stylize macros for configure (help/runtime)

Build system helper macros

Build system base macros

Compiler characteristics checks

Macros to modify LIBS, INCLUDES, etc. variables

Wrapper macros for AC_ARG_WITH / AC_ARG_ENABLE

Build macros

“extname” is the name of the ext/ subdir where the extension resides. “sources” is a list of files relative to the subdir which are used to build the extension. “shared” can be set to “shared” or “yes” to build the extension as a dynamically loadable library. Optional parameter “sapi_class” can be set to “cli” to mark extension build only with CLI or CGI sapi's. “extra-cflags” are passed to the compiler, with @ext_srcdir@ and @ext_builddir@ being substituted.

$1 = name of extension, $2 = extension upon which it depends $3 = optional: if true, it's ok for $2 to have not been configured default is false and should halt the build.

Checks for structures, typedefs, broken functions, etc.

Must be run after all --with-NN options that let the user choose dynamic extensions, and after the gcc test.

Library/function existance and build sanity checks