summaryrefslogtreecommitdiff
path: root/ext/skeleton/create_module
diff options
context:
space:
mode:
Diffstat (limited to 'ext/skeleton/create_module')
-rwxr-xr-xext/skeleton/create_module122
1 files changed, 122 insertions, 0 deletions
diff --git a/ext/skeleton/create_module b/ext/skeleton/create_module
new file mode 100755
index 0000000000..b5b18c66e0
--- /dev/null
+++ b/ext/skeleton/create_module
@@ -0,0 +1,122 @@
+#!/bin/sh
+
+extname="$1"
+EXTNAME=`echo $1|tr a-z A-Z`
+
+cd ..
+
+givup() {
+ echo $*
+ exit 1
+}
+
+if test "$extname" = ""; then
+ givup "usage: $0 extension-name"
+fi
+
+if test -d "$extname" ; then
+ givup "Directory $extname already exists."
+fi
+
+test -f ext_skel || givup "ext_skel must be in the current directory"
+
+if echo '\c' | grep -s c >/dev/null 2>&1
+then
+ ECHO_N="echo -n"
+ ECHO_C=""
+else
+ ECHO_N="echo"
+ ECHO_C='\c'
+fi
+
+echo "Creating directory"
+
+mkdir $extname || givup "Cannot create directory $extname"
+
+cd $extname
+chmod 755 .
+
+$ECHO_N "Creating basic files:$ECHO_C"
+
+$ECHO_N " config.m4$ECHO_C"
+cat >config.m4 <<eof
+dnl \$Id\$
+dnl config.m4 for extension $extname
+dnl don't forget to call PHP_EXTENSION($extname)
+
+dnl Comments in this file start with the string 'dnl'.
+dnl Remove where necessary. This file will not work
+dnl without editing.
+
+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:
+
+dnl PHP_ARG_ENABLE($extname, whether to enable $extname support,
+dnl Make sure that the comment is aligned:
+dnl [ --enable-$extname Enable $extname support])
+
+if test "\$PHP_$EXTNAME" != "no"; then
+ dnl If you will not be testing anything external, like existence of
+ dnl headers, libraries or functions in them, just uncomment the
+ dnl following line and you are ready to go.
+ dnl AC_DEFINE(HAVE_$EXTNAME, 1, [ ])
+ dnl Write more examples of tests here...
+ PHP_EXTENSION($extname, \$ext_shared)
+fi
+eof
+
+$ECHO_N " Makefile.in$ECHO_C"
+cat >Makefile.in <<eof
+# \$Id\$
+
+LTLIBRARY_NAME = lib$extname.la
+LTLIBRARY_SOURCES = $extname.c
+LTLIBRARY_SHARED_NAME = $extname.la
+
+include \$(top_srcdir)/build/dynlib.mk
+eof
+
+
+$ECHO_N " .cvsignore$ECHO_C"
+cat >.cvsignore <<eof
+.deps
+Makefile
+*.o
+*.lo
+*.la
+.libs
+libs.mk
+eof
+
+$ECHO_N " $extname.c$ECHO_C"
+cat ../skeleton/skeleton.c | sed -e "s/_extname_/$extname/g" | sed -e "s/_EXTNAME_/$EXTNAME/g" > $extname.c
+
+$ECHO_N " php_$extname.h$ECHO_C"
+cat ../skeleton/php_skeleton.h | sed -e "s/_extname_/$extname/g" | sed -e "s/_EXTNAME_/$EXTNAME/g" > php_$extname.h
+
+$ECHO_N " $extname.php$ECHO_C"
+cat ../skeleton/skeleton.php | sed -e "s/_extname_/$extname/g" | sed -e "s/_EXTNAME_/$EXTNAME/g" > $extname.php
+
+chmod 644 *
+
+echo " [done]."
+
+cat <<eof
+
+To use your new extension, you will have to execute the following steps:
+
+ $ cd ../..
+ $ vi ext/$extname/config.m4
+ $ ./buildconf
+ $ ./configure --[with|enable]-$extname
+ $ make
+ $ vi ext/$extname/$extname.c
+
+Repeat the last two steps as often as necessary.
+
+eof