improve extension skeleton generator

This commit is contained in:
Pedro Magalhães 2018-02-21 22:44:06 +00:00 committed by Joe Watkins
parent 927748b271
commit 230ef2d947
No known key found for this signature in database
GPG Key ID: F9BA0ADA31CBD89E
3 changed files with 114 additions and 4 deletions

View File

@ -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;

View File

@ -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

View File

@ -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