]> granicus.if.org Git - php/commitdiff
improve extension skeleton generator
authorPedro Magalhães <mail@pmmaga.net>
Wed, 21 Feb 2018 22:44:06 +0000 (22:44 +0000)
committerJoe Watkins <krakjoe@php.net>
Thu, 22 Feb 2018 07:04:33 +0000 (08:04 +0100)
ext/ext_skel.php
ext/skeleton/.gitignore.in [new file with mode: 0644]
ext/skeleton/config.m4.in

index b5e3aad0a9b18ce9098c1903789b8446b0095fd1..adfe76d39c96d2cc5a0318268310df5248cd7b82 100644 (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;
diff --git a/ext/skeleton/.gitignore.in b/ext/skeleton/.gitignore.in
new file mode 100644 (file)
index 0000000..912ca92
--- /dev/null
@@ -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
index fe2a1c48ededb660fc05142e074cda0f82ad01bd..3cea301e01e383cdb7014f155df2e8137e448066 100644 (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