internals:cmake:status
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
internals:cmake:status [2008/07/05 23:47] – added some php macros defined in acinclude.m4 part II gloob | internals:cmake:status [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 6: | Line 6: | ||
===== TODO ===== | ===== TODO ===== | ||
- | * Tests in differents platforms | ||
* Extensions | * Extensions | ||
* Libraries detections for extensions | * Libraries detections for extensions | ||
+ | * Resolve internal_functions.* relations with extensions. | ||
* User selection | * User selection | ||
+ | * Using option() cmake feature. We need to provide user selection like autotools (--enable-[ext]) with a script. | ||
+ | * phpize support. | ||
* Win32 support | * Win32 support | ||
* CDash hook | * CDash hook | ||
* CTest | * CTest | ||
* CPack | * CPack | ||
+ | * Tests in differents platforms | ||
===== Milestone ===== | ===== Milestone ===== | ||
* ~ May 21 | * ~ May 21 | ||
- | Analysis and information gathering. Investigate PHP project dependencies with autotools. Analysis of CMake. Use and analysis of am2cmake/ | + | ~~Analysis and information gathering. Investigate PHP project dependencies with autotools. Analysis of CMake. Use and analysis of am2cmake/ |
* ~ July 15 | * ~ July 15 | ||
Line 25: | Line 28: | ||
* ~ August 15 | * ~ August 15 | ||
Export and test of CMake project for PHP to other operative system like Windows, MacOS. | Export and test of CMake project for PHP to other operative system like Windows, MacOS. | ||
- | |||
- | |||
- | ===== Notes ===== | ||
- | |||
- | ==== Linux buildchain ==== | ||
- | |||
- | |||
- | * buildconf | ||
- | Shell script to recreate user tarball, two options --force and --debug, if --$force regenerate anyway, if debug only add SUPPRESS_WARNINGS="" | ||
- | |||
- | * build/ | ||
- | * ($STAMP) - call buildcheck.sh (check autoconf version > 2.13 and inform) | ||
- | * ($ALWAYS) == generated_lists - makefile_am_files, | ||
- | * (action) call build/ | ||
- | * touch mkinstalldirs install-sh missing | ||
- | * cat acinclude.m4 ./ | ||
- | * autoconf (to regenerate ./ | ||
- | * autoheader (to regenerate acconfig.h) | ||
- | * Ready to configure. | ||
- | |||
- | At this step generated files are: | ||
- | < | ||
- | ? acconfig.h | ||
- | ? aclocal.m4 | ||
- | ? autom4te.cache/ | ||
- | ? autom4te.cache/ | ||
- | ? autom4te.cache/ | ||
- | ? configure | ||
- | ? generated_lists | ||
- | ? install-sh | ||
- | ? main/ | ||
- | ? missing | ||
- | ? mkinstalldirs | ||
- | </ | ||
- | |||
- | * ./configure | ||
- | |||
- | < | ||
- | ? Makefile | ||
- | ? Makefile.fragments | ||
- | ? Makefile.objects | ||
- | ? TSRM/ | ||
- | ? Zend/ | ||
- | ? config.log | ||
- | ? config.nice | ||
- | ? config.status | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? ext/ | ||
- | ? libtool | ||
- | ? main/ | ||
- | ? main/ | ||
- | ? main/ | ||
- | ? main/ | ||
- | ? php5.spec | ||
- | ? sapi/ | ||
- | ? scripts/ | ||
- | ? scripts/ | ||
- | ? scripts/ | ||
- | ? scripts/ | ||
- | </ | ||
- | |||
- | ==== Windows buildchain ==== | ||
- | |||
- | * Windows side: buildconf.bat execute -> cscript /nologo win32\build\buildconf.js %*, Javascript script that build the configure.js. | ||
- | |||
- | ===== Components ===== | ||
- | |||
- | ==== Zend ==== | ||
- | |||
- | * Zend/ | ||
- | * Zend/ | ||
- | * 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/ | ||
- | checking for sys/ | ||
- | 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/ | ||
- | 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("/ | ||
- | checking for mremap... yes | ||
- | </ | ||
- | |||
- | Generated post-configued: | ||
- | * zend_config.h | ||
- | |||
- | |||
- | ==== configure.in ==== | ||
- | |||
- | * [[.: | ||
- | * PHP_CONFIG_NICE(config.nice) - ?? | ||
- | * PHP_CANONICAL_HOST_TARGET | ||
- | * AC_CONFIG_HEADER(main/ | ||
- | |||
- | * PHP_MAJOR_VERSION=5 | ||
- | * PHP_MINOR_VERSION=3 | ||
- | * PHP_RELEASE_VERSION=0 | ||
- | * PHP_EXTRA_VERSION=" | ||
- | * PHP_VERSION=" | ||
- | * PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` | ||
- | |||
- | |||
- | ==== Extension PHP Macros ==== | ||
- | |||
- | * PHP_ARG_WITH() | ||
- | * PHP_ARG_ENABLE() | ||
- | * PHP_ADD_INCLUDE() | ||
- | * PHP_CHECK_LIBRARY() | ||
- | * PHP_ADD_LIBRARY_WITH_PATH() | ||
- | * PHP_SUBST() | ||
- | * PHP_NEW_EXTENSION() | ||
- | * PHP_ADD_BUILD_DIR() | ||
- | * PHP_ADD_MAKEFILE_FRAGMENT() | ||
- | |||
- | ==== acinclude.m4 Macros ==== | ||
- | |||
- | === Output stylize macros for configure (help/ | ||
- | |||
- | * < | ||
- | * < | ||
- | |||
- | === Build system helper macros === | ||
- | |||
- | * PHP_DEF_HAVE(what) - Generates ' | ||
- | * PHP_RUN_ONCE(namespace, | ||
- | * < | ||
- | * PHP_DEFINE(WHAT [, value[, directory]]) - Creates builddir/ | ||
- | * PHP_SUBST(varname) - Adds variable with it's value into Makefile, e.g.: CC = gcc | ||
- | * PHP_SUBST_OLD(varname) - Same as PHP_SUBST() but also substitutes all @VARNAME@ instances in every file passed to AC_OUTPUT() | ||
- | * PHP_OUTPUT(file) - Adds " | ||
- | |||
- | === Build system base macros === | ||
- | |||
- | * < | ||
- | * < | ||
- | * PHP_GEN_GLOBAL_MAKEFILE | ||
- | * PHP_ADD_MAKEFILE_FRAGMENT([srcfile [, ext_srcdir [, ext_builddir]]]) | ||
- | * PHP_ADD_SOURCES(source-path, | ||
- | | ||
- | === Compiler characteristics checks === | ||
- | |||
- | * PHP_TARGET_RDYNAMIC - Checks whether -rdynamic is supported by the compiler. | ||
- | * PHP_RUNPATH_SWITCH - Checks for -R, etc. switch. | ||
- | * PHP_CHECK_GCC_ARG(arg, | ||
- | * PHP_LIBGCC_LIBPATH(gcc) - Stores the location of libgcc in libgcc_libpath | ||
- | |||
- | === Macros to modify LIBS, INCLUDES, etc. variables === | ||
- | |||
- | * PHP_REMOVE_USR_LIB(NAME) - Removes all -L/ | ||
- | * PHP_EVAL_LIBLINE(libline, | ||
- | * PHP_EVAL_INCLINE(headerline) - Use this macro, if you need to add header search paths to the PHP build system which are only given in compiler notation. | ||
- | * PHP_ADD_LIBPATH(path [, SHARED-LIBADD]) - Adds a path to linkpath/ | ||
- | * PHP_UTILIZE_RPATHS() - builds RPATHS/ | ||
- | * PHP_ADD_INCLUDE(path [,before]) - add an include path. if before is 1, add in the beginning of INCLUDES. | ||
- | * PHP_ADD_LIBRARY(library[, | ||
- | * PHP_ADD_LIBRARY_DEFER(library[, | ||
- | * PHP_ADD_LIBRARY_WITH_PATH(library, | ||
- | * PHP_ADD_LIBRARY_DEFER_WITH_PATH(library, | ||
- | * PHP_ADD_FRAMEWORK(framework [,before]) - add a (Darwin / Mac OS X) framework to the link line. if before is 1, the framework is added to the beginning of the line. | ||
- | * PHP_ADD_FRAMEWORKPATH(path [,before]) - add a (Darwin / Mac OS X) framework path to the link and include lines. default paths include (but are not limited to) / | ||
- | * PHP_ADD_FRAMEWORK_WITH_PATH(framework, | ||
- | * PHP_SET_LIBTOOL_VARIABLE(var) - Set libtool variable. | ||
- | |||
- | === Wrapper macros for AC_ARG_WITH / AC_ARG_ENABLE === | ||
- | |||
- | * PHP_ARG_WITH(arg-name, | ||
- | * PHP_ARG_ENABLE(arg-name, | ||
- | |||
- | === Build macros === | ||
- | |||
- | * PHP_BUILD_THREAD_SAFE | ||
- | * PHP_REQUIRE_CXX | ||
- | * PHP_BUILD_SHARED | ||
- | * PHP_BUILD_STATIC | ||
- | * PHP_BUILD_BUNDLE | ||
- | * PHP_BUILD_PROGRAM | ||
- | * PHP_SHARED_MODULE(module-name, | ||
- | * PHP_SELECT_SAPI(name, | ||
- | * PHP_NEW_EXTENSION(extname, | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | * PHP_WITH_SHARED - Checks whether $withval is " | ||
- | * PHP_ADD_EXTENSION_DEP(extname, | ||
- | $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. === | ||
- | |||
- | * _PHP_CHECK_SIZEOF(type, | ||
- | * PHP_CHECK_SIZEOF(type, | ||
- | * PHP_CHECK_TYPES(type-list, | ||
- | * PHP_CHECK_IN_ADDR_T | ||
- | * PHP_TIME_R_TYPE - Check type of reentrant time-related functions Type can be: irix, hpux or POSIX | ||
- | * PHP_PWRITE_TEST | ||
- | * PHP_PREAD_TEST | ||
- | * PHP_MISSING_TIME_R_DECL | ||
- | * PHP_READDIR_R_TYPE | ||
- | * PHP_TM_GMTOFF | ||
- | * PHP_STRUCT_FLOCK | ||
- | * PHP_SOCKLEN_T | ||
- | * PHP_MISSING_FCLOSE_DECL - See if we have broken header files like SunOS has. | ||
- | * PHP_AC_BROKEN_SPRINTF - Check for broken sprintf(), C99 conformance | ||
- | * PHP_AC_BROKEN_SNPRINTF - Check for broken snprintf(), C99 conformance | ||
- | * PHP_SOLARIS_PIC_WEIRDNESS - Solaris requires main code to be position independent in order to let shared objects find symbols. | ||
- | Must be run after all --with-NN options that let the user choose dynamic extensions, and after the gcc test. | ||
- | * PHP_SYS_LFS - dnl The problem is that the default compilation flags in Solaris 2.6 won't let programs access large files; | ||
- | * PHP_SOCKADDR_CHECKS | ||
- | * PHP_DECLARED_TIMEZONE | ||
- | * PHP_EBCDIC | ||
- | * PHP_BROKEN_GETCWD - Some systems, notably Solaris, cause getcwd() or realpath to fail if a component of the path has execute but not read permissions | ||
- | * PHP_BROKEN_GLIBC_FOPEN_APPEND | ||
- | * PHP_FOPENCOOKIE | ||
- | |||
- | === Library/ | ||
- | |||
- | * PHP_CHECK_LIBRARY(library, | ||
- | * PHP_CHECK_FRAMEWORK(framework, | ||
- | * PHP_CHECK_FUNC_LIB(func, | ||
- | * PHP_CHECK_FUNC(func, | ||
- | * PHP_TEST_BUILD(function, | ||
- | |||
- | |||
- | |||
- | |||
internals/cmake/status.1215301653.txt.gz · Last modified: 2017/09/22 13:28 (external edit)