From: Pedro Magalhães Date: Wed, 21 Feb 2018 22:44:06 +0000 (+0000) Subject: improve extension skeleton generator X-Git-Tag: php-7.3.0alpha1~316^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=230ef2d94774939f92128bcbbc54ffc046c2000e;p=php improve extension skeleton generator --- diff --git a/ext/ext_skel.php b/ext/ext_skel.php index b5e3aad0a9..adfe76d39c 100644 --- a/ext/ext_skel.php +++ b/ext/ext_skel.php @@ -140,7 +140,7 @@ function process_args($argv, $argc) { continue; } - $options[$opt] = ($opt == 'dir' ? realpath($argv[$i + 1]) : $argv[$i + 1]); + $options[$opt] = ($opt == 'dir' ? realpath($argv[$i + 1]) . DIRECTORY_SEPARATOR : $argv[$i + 1]); } break; default: { @@ -249,9 +249,7 @@ function copy_config_scripts() { $files[] = 'config.w32'; } - if (!$files) { - return; - } + $files[] = '.gitignore'; foreach($files as $config_script) { $new_config_script = $options['dir'] . $options['ext'] . DIRECTORY_SEPARATOR . $config_script; diff --git a/ext/skeleton/.gitignore.in b/ext/skeleton/.gitignore.in new file mode 100644 index 0000000000..912ca92c74 --- /dev/null +++ b/ext/skeleton/.gitignore.in @@ -0,0 +1,36 @@ +.deps +*.lo +*.la +.libs +acinclude.m4 +aclocal.m4 +autom4te.cache +build +config.guess +config.h +config.h.in +config.log +config.nice +config.status +config.sub +configure +configure.ac +configure.in +include +install-sh +libtool +ltmain.sh +Makefile +Makefile.fragments +Makefile.global +Makefile.objects +missing +mkinstalldirs +modules +run-tests.php +tests/*/*.diff +tests/*/*.out +tests/*/*.php +tests/*/*.exp +tests/*/*.log +tests/*/*.sh diff --git a/ext/skeleton/config.m4.in b/ext/skeleton/config.m4.in index fe2a1c48ed..3cea301e01 100644 --- a/ext/skeleton/config.m4.in +++ b/ext/skeleton/config.m4.in @@ -1,7 +1,83 @@ +dnl $Id$ +dnl config.m4 for extension %EXTNAME% + +dnl Comments in this file start with the string 'dnl'. +dnl Remove where necessary. + +dnl If your extension references something external, use with: + +dnl PHP_ARG_WITH(%EXTNAME%, for %EXTNAME% support, +dnl Make sure that the comment is aligned: +dnl [ --with-%EXTNAME% Include %EXTNAME% support]) + +dnl Otherwise use enable: + PHP_ARG_ENABLE(%EXTNAME%, whether to enable %EXTNAME% support, +dnl Make sure that the comment is aligned: [ --enable-%EXTNAME% Enable %EXTNAME% support], no) if test "$PHP_%EXTNAMECAPS%" != "no"; then + dnl Write more examples of tests here... + + dnl # get library FOO build options from pkg-config output + dnl AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + dnl AC_MSG_CHECKING(for libfoo) + dnl if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists foo; then + dnl if $PKG_CONFIG foo --atleast-version 1.2.3; then + dnl LIBFOO_CFLAGS=\`$PKG_CONFIG foo --cflags\` + dnl LIBFOO_LIBDIR=\`$PKG_CONFIG foo --libs\` + dnl LIBFOO_VERSON=\`$PKG_CONFIG foo --modversion\` + dnl AC_MSG_RESULT(from pkgconfig: version $LIBFOO_VERSON) + dnl else + dnl AC_MSG_ERROR(system libfoo is too old: version 1.2.3 required) + dnl fi + dnl else + dnl AC_MSG_ERROR(pkg-config not found) + dnl fi + dnl PHP_EVAL_LIBLINE($LIBFOO_LIBDIR, %EXTNAMECAPS%_SHARED_LIBADD) + dnl PHP_EVAL_INCLINE($LIBFOO_CFLAGS) + + dnl # --with-%EXTNAME% -> check with-path + dnl SEARCH_PATH="/usr/local /usr" # you might want to change this + dnl SEARCH_FOR="/include/%EXTNAME%.h" # you most likely want to change this + dnl if test -r $PHP_%EXTNAMECAPS%/$SEARCH_FOR; then # path given as parameter + dnl %EXTNAMECAPS%_DIR=$PHP_%EXTNAMECAPS% + dnl else # search default path list + dnl AC_MSG_CHECKING([for %EXTNAME% files in default path]) + dnl for i in $SEARCH_PATH ; do + dnl if test -r $i/$SEARCH_FOR; then + dnl %EXTNAMECAPS%_DIR=$i + dnl AC_MSG_RESULT(found in $i) + dnl fi + dnl done + dnl fi + dnl + dnl if test -z "$%EXTNAMECAPS%_DIR"; then + dnl AC_MSG_RESULT([not found]) + dnl AC_MSG_ERROR([Please reinstall the %EXTNAME% distribution]) + dnl fi + + dnl # --with-%EXTNAME% -> add include path + dnl PHP_ADD_INCLUDE($%EXTNAMECAPS%_DIR/include) + + dnl # --with-%EXTNAME% -> check for lib and symbol presence + dnl LIBNAME=%EXTNAMECAPS% # you may want to change this + dnl LIBSYMBOL=%EXTNAMECAPS% # you most likely want to change this + + dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL, + dnl [ + dnl PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $%EXTNAMECAPS%_DIR/$PHP_LIBDIR, %EXTNAMECAPS%_SHARED_LIBADD) + dnl AC_DEFINE(HAVE_%EXTNAMECAPS%LIB,1,[ ]) + dnl ],[ + dnl AC_MSG_ERROR([wrong %EXTNAME% lib version or lib not found]) + dnl ],[ + dnl -L$%EXTNAMECAPS%_DIR/$PHP_LIBDIR -lm + dnl ]) + dnl + dnl PHP_SUBST(%EXTNAMECAPS%_SHARED_LIBADD) + + dnl # In case of no dependencies AC_DEFINE(HAVE_%EXTNAMECAPS%, 1, [ Have %EXTNAME% support ]) + PHP_NEW_EXTENSION(%EXTNAME%, %EXTNAME%.c, $ext_shared) fi