Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mgdm committed Sep 12, 2013
0 parents commit f44e97f
Show file tree
Hide file tree
Showing 3 changed files with 204 additions and 0 deletions.
55 changes: 55 additions & 0 deletions config.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
dnl $Id$
dnl config.m4 for extension libmosquitto

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

PHP_ARG_WITH(libmosquitto, for libmosquitto support,
[ --with-libmosquitto Include libmosquitto support])


if test "$PHP_LIBMOSQUITTO" != "no"; then
dnl Write more examples of tests here...

# --with-libmosquitto -> check with-path
SEARCH_PATH="/usr/local /usr" # you might want to change this
SEARCH_FOR="/include/libmosquitto.h" # you most likely want to change this
if test -r $PHP_LIBMOSQUITTO/$SEARCH_FOR; then # path given as parameter
LIBMOSQUITTO_DIR=$PHP_LIBMOSQUITTO
else # search default path list
AC_MSG_CHECKING([for libmosquitto files in default path])
for i in $SEARCH_PATH ; do
if test -r $i/$SEARCH_FOR; then
LIBMOSQUITTO_DIR=$i
AC_MSG_RESULT(found in $i)
fi
done
fi

if test -z "$LIBMOSQUITTO_DIR"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([Please reinstall the libmosquitto distribution])
fi

# --with-libmosquitto -> add include path
PHP_ADD_INCLUDE($LIBMOSQUITTO_DIR/include)

# --with-libmosquitto -> check for lib and symbol presence
LIBNAME=libmosquitto # you may want to change this
LIBSYMBOL=mosquitto_init # you most likely want to change this

PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
[
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $LIBMOSQUITTO_DIR/lib, LIBMOSQUITTO_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBMOSQUITTOLIB,1,[ ])
],[
AC_MSG_ERROR([wrong libmosquitto lib version or lib not found])
],[
-L$LIBMOSQUITTO_DIR/lib -lm
])

PHP_SUBST(LIBMOSQUITTO_SHARED_LIBADD)

PHP_NEW_EXTENSION(libmosquitto, libmosquitto.c, $ext_shared)
fi
122 changes: 122 additions & 0 deletions libmosquitto.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_libmosquitto.h"

/* {{{ libmosquitto_functions[] */
const zend_function_entry libmosquitto_functions[] = {
PHP_FE_END /* Must be the last line in libmosquitto_functions[] */
};
/* }}} */

/* {{{ libmosquitto_module_entry */
zend_module_entry libmosquitto_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
"libmosquitto",
libmosquitto_functions,
PHP_MINIT(libmosquitto),
PHP_MSHUTDOWN(libmosquitto),
PHP_RINIT(libmosquitto), /* Replace with NULL if there's nothing to do at request start */
PHP_RSHUTDOWN(libmosquitto), /* Replace with NULL if there's nothing to do at request end */
PHP_MINFO(libmosquitto),
#if ZEND_MODULE_API_NO >= 20010901
"0.1", /* Replace with version number for your extension */
#endif
STANDARD_MODULE_PROPERTIES
};
/* }}} */

#ifdef COMPILE_DL_LIBMOSQUITTO
ZEND_GET_MODULE(libmosquitto)
#endif

/* {{{ PHP_INI
*/
/* Remove comments and fill if you need to have entries in php.ini
PHP_INI_BEGIN()
STD_PHP_INI_ENTRY("libmosquitto.global_value", "42", PHP_INI_ALL, OnUpdateLong, global_value, zend_libmosquitto_globals, libmosquitto_globals)
STD_PHP_INI_ENTRY("libmosquitto.global_string", "foobar", PHP_INI_ALL, OnUpdateString, global_string, zend_libmosquitto_globals, libmosquitto_globals)
PHP_INI_END()
*/
/* }}} */

/* {{{ php_libmosquitto_init_globals
*/
/* Uncomment this function if you have INI entries
static void php_libmosquitto_init_globals(zend_libmosquitto_globals *libmosquitto_globals)
{
libmosquitto_globals->global_value = 0;
libmosquitto_globals->global_string = NULL;
}
*/
/* }}} */

/* {{{ PHP_MINIT_FUNCTION
*/
PHP_MINIT_FUNCTION(libmosquitto)
{
/* If you have INI entries, uncomment these lines
REGISTER_INI_ENTRIES();
*/
return SUCCESS;
}
/* }}} */

/* {{{ PHP_MSHUTDOWN_FUNCTION
*/
PHP_MSHUTDOWN_FUNCTION(libmosquitto)
{
/* uncomment this line if you have INI entries
UNREGISTER_INI_ENTRIES();
*/
return SUCCESS;
}
/* }}} */

/* Remove if there's nothing to do at request start */
/* {{{ PHP_RINIT_FUNCTION
*/
PHP_RINIT_FUNCTION(libmosquitto)
{
return SUCCESS;
}
/* }}} */

/* Remove if there's nothing to do at request end */
/* {{{ PHP_RSHUTDOWN_FUNCTION
*/
PHP_RSHUTDOWN_FUNCTION(libmosquitto)
{
return SUCCESS;
}
/* }}} */

/* {{{ PHP_MINFO_FUNCTION
*/
PHP_MINFO_FUNCTION(libmosquitto)
{
php_info_print_table_start();
php_info_print_table_header(2, "libmosquitto support", "enabled");
php_info_print_table_end();

/* Remove comments if you have entries in php.ini
DISPLAY_INI_ENTRIES();
*/
}
/* }}} */


/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/
27 changes: 27 additions & 0 deletions php_libmosquitto.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#ifndef PHP_LIBMOSQUITTO_H
#define PHP_LIBMOSQUITTO_H

extern zend_module_entry libmosquitto_module_entry;
#define phpext_libmosquitto_ptr &libmosquitto_module_entry

#ifdef PHP_WIN32
# define PHP_LIBMOSQUITTO_API __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
# define PHP_LIBMOSQUITTO_API __attribute__ ((visibility("default")))
#else
# define PHP_LIBMOSQUITTO_API
#endif

#ifdef ZTS
#include "TSRM.h"
#endif

PHP_MINIT_FUNCTION(libmosquitto);
PHP_MSHUTDOWN_FUNCTION(libmosquitto);
PHP_RINIT_FUNCTION(libmosquitto);
PHP_RSHUTDOWN_FUNCTION(libmosquitto);
PHP_MINFO_FUNCTION(libmosquitto);

#endif /* PHP_LIBMOSQUITTO_H */

/* __footer_here__ */

0 comments on commit f44e97f

Please sign in to comment.