ECHO_C='\c'
fi
-ECHO_E="echo -e" # Any portability problems? If, how to test.
-
echo "Creating directory"
mkdir $extname || givup "Cannot create directory $extname"
-cd $extname
-chmod 755 .
-
if [ ! -z $functions ]; then
- cat $functions | awk -f ../skeleton/create_stubs
+ echo $functions
+ cat $functions | awk -v extname=$extname -f ./skeleton/create_stubs
fi
+cd $extname
+chmod 755 .
+
$ECHO_N "Creating basic files:$ECHO_C"
$ECHO_N " config.m4$ECHO_C"
rm function_entries
rm function_declarations
rm function_stubs
+ if [ -f function_warning ]; then
+ rm function_warning
+ warning="
+NOTE! Because some arguments to functions were resources, the code generated
+cannot yet be compiled without editing. Please consider this to be step 4.5
+in the instructions above.
+"
+ fi
fi
chmod 644 *
Repeat steps 3-6 until you are satisfied with ext/$extname/config.m4 and
step 6 confirms that your module is compiled in PHP. Then, start writing
code and repeat the last two steps as often as necessary.
-
+$warning
eof
useswitch = maxargs[i] - minargs[i]
funcvals = resources = handleargs = ""
- proto = "/* {{{ #proto " types[i] " " funcs[i] "("
+ proto = "/* {{{ proto " types[i] " " funcs[i] "("
if (maxargs[i]) {
zvals = "\tzval "
if (useswitch) {
if (j > minargs[i]-1) {
- handleargs = "\t\tcase " j+1 ";\n\t\t\t" convert(argtypes[i,j], argnames[i,j]) "\t\t\t/* Fall-through. */\n" handleargs
+ handleargs = "\t\tcase " j+1 ":\n\t\t\t" convert(argtypes[i,j], argnames[i,j]) "\t\t\t/* Fall-through. */\n" handleargs
} else if (j >= minargs[i]-1) {
- handleargs = "\t\tcase " j+1 ";\n\t\t\t" convert(argtypes[i,j], argnames[i,j]) handleargs
+ handleargs = "\t\tcase " j+1 ":\n\t\t\t" convert(argtypes[i,j], argnames[i,j]) handleargs
} else {
handleargs = "\t\t\t" convert(argtypes[i,j], argnames[i,j]) handleargs
}
proto = proto closeopts ")\n */\nPHP_FUNCTION(" funcs[i] ")\n{"
if (maxargs[i]) {
zvals = zvals ";"
- fetchargs = fetchargs ") == FAILURE) {\n\t\tWRONG_PARAM_COUNT();\n\t}\n"
+ fetchargs = fetchargs ") == FAILURE) {\n\t\tWRONG_PARAM_COUNT;\n\t}\n"
}
if (resources ) funcvals = funcvals "\t???LS_FETCH();\n"
- if (useswitch) handleargs = "\tswitch (argc) {\n" handleargs "\t\t\tbreak;\n\t}"
-
- print proto > "function_stubs"
- if (zvals) print zvals > "function_stubs"
- if (funcvals) print funcvals > "function_stubs"
- if (fetchargs) print fetchargs > "function_stubs"
- if (resources) print resources > "function_stubs"
- if (handleargs) print handleargs > "function_stubs"
- print "\n\tphp_error(E_WARNING, \"" funcs[i] ": not yet implemented\");" > "function_stubs"
- print "}\n/* }}} */\n" > "function_stubs"
- print "PHP_FUNCTION(" funcs[i] ");" > "function_declarations"
- print "\tPHP_FE(" funcs[i] ",\tNULL)" > "function_entries"
+ if (useswitch) handleargs = "\tswitch (argc) {\n" handleargs "\t\t\tbreak;\n\t\tdefault:\n\t\t\tWRONG_PARAM_COUNT;\n\t}"
+
+ print proto > extname "/function_stubs"
+ if (zvals) print zvals > extname "/function_stubs"
+ if (funcvals) print funcvals > extname "/function_stubs"
+ if (fetchargs) print fetchargs > extname "/function_stubs"
+ if (resources) {
+ print resources > extname "/function_stubs"
+ print "" > extname "/function_warning"
+ }
+ if (handleargs) print handleargs > extname "/function_stubs"
+ print "\n\tphp_error(E_WARNING, \"" funcs[i] ": not yet implemented\");" > extname "/function_stubs"
+ print "}\n/* }}} */\n" > extname "/function_stubs"
+ print "PHP_FUNCTION(" funcs[i] ");" > extname "/function_declarations"
+ print "\tPHP_FE(" funcs[i] ",\tNULL)" > extname "/function_entries"
}
}