Hi all, The attached patch adds an "--enable-httpd-websocket" configure option to enable WebSocket (see http://www.websocket.org , http://en.wikipedia.org/wiki/WebSocket ) in the Mongoose HTTP server.
This was my first-time "having fun" (*ahem*) with autotools, so hopefully I haven't stuffed it up! -- Nick Withers Embedded Systems Programmer Room 2.26, Building 57 Department of Nuclear Physics Research School of Physics and Engineering The Australian National University (CRICOS: 00120C) eMail: nick.with...@anu.edu.au Phone: +61 2 6125 2091 Mobile: +61 414 397 446
>From 00e483742d4c3d3d5da816b7af4ccc52eb52021d Mon Sep 17 00:00:00 2001 From: Nick Withers <nick.with...@anu.edu.au> Date: Thu, 19 Dec 2013 15:31:51 +1100 Subject: [PATCH] Add an "--enable-httpd-websocket" option which, when specified, builds the Mongoose HTTP server with WebSocket support --- aclocal/enable-httpd-websocket.m4 | 11 +++++++++++ configure.ac | 1 + cpukit/aclocal/check-httpd-websocket.m4 | 18 ++++++++++++++++++ cpukit/aclocal/enable-httpd-websocket.m4 | 10 ++++++++++ cpukit/configure.ac | 8 ++++++++ cpukit/mghttpd/Makefile.am | 4 ++++ 6 files changed, 52 insertions(+) create mode 100644 aclocal/enable-httpd-websocket.m4 create mode 100644 cpukit/aclocal/check-httpd-websocket.m4 create mode 100644 cpukit/aclocal/enable-httpd-websocket.m4 diff --git a/aclocal/enable-httpd-websocket.m4 b/aclocal/enable-httpd-websocket.m4 new file mode 100644 index 0000000..4cd5cc0 --- /dev/null +++ b/aclocal/enable-httpd-websocket.m4 @@ -0,0 +1,11 @@ +AC_DEFUN([RTEMS_ENABLE_HTTPD_WEBSOCKET], +[ +AC_ARG_ENABLE(httpd-websocket, +[AS_HELP_STRING([--enable-httpd-websocket],[enable WebSocket for the HTTP server])], +[case "${enableval}" in + yes) RTEMS_HAS_HTTPD_WEBSOCKET=yes ;; + no) RTEMS_HAS_HTTPD_WEBSOCKET=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for enable-httpd-websocket option) ;; +esac],[RTEMS_HAS_HTTPD_WEBSOCKET=no]) +AC_SUBST(RTEMS_HAS_HTTPD_WEBSOCKET)dnl +]) diff --git a/configure.ac b/configure.ac index b6798f7..d719417 100644 --- a/configure.ac +++ b/configure.ac @@ -22,6 +22,7 @@ AM_MAINTAINER_MODE RTEMS_ENABLE_MULTIPROCESSING RTEMS_ENABLE_POSIX RTEMS_ENABLE_NETWORKING +RTEMS_ENABLE_HTTPD_WEBSOCKET RTEMS_ENABLE_CXX RTEMS_ENABLE_TESTS RTEMS_ENABLE_RTEMS_DEBUG diff --git a/cpukit/aclocal/check-httpd-websocket.m4 b/cpukit/aclocal/check-httpd-websocket.m4 new file mode 100644 index 0000000..8f66215 --- /dev/null +++ b/cpukit/aclocal/check-httpd-websocket.m4 @@ -0,0 +1,18 @@ +dnl +AC_DEFUN([RTEMS_CHECK_HTTPD_WEBSOCKET], +[dnl +AC_REQUIRE([RTEMS_ENABLE_HTTPD_WEBSOCKET])dnl + +AC_CACHE_CHECK([whether CPU supports HTTPd WebSocket], + rtems_cv_HAS_HTTPD_WEBSOCKET, + [dnl + case "$RTEMS_CPU" in + *) + if test "${RTEMS_HAS_HTTPD_WEBSOCKET}" = "yes"; then + rtems_cv_HAS_HTTPD_WEBSOCKET="yes"; + else + rtems_cv_HAS_HTTPD_WEBSOCKET="no"; + fi + ;; + esac]) +]) diff --git a/cpukit/aclocal/enable-httpd-websocket.m4 b/cpukit/aclocal/enable-httpd-websocket.m4 new file mode 100644 index 0000000..eda6cce --- /dev/null +++ b/cpukit/aclocal/enable-httpd-websocket.m4 @@ -0,0 +1,10 @@ +AC_DEFUN([RTEMS_ENABLE_HTTPD_WEBSOCKET], +[ +AC_ARG_ENABLE(httpd-websocket, +AS_HELP_STRING(--enable-httpd-websocket,enable WebSocket for the HTTP server), +[case "${enableval}" in + yes) RTEMS_HAS_HTTPD_WEBSOCKET=yes ;; + no) RTEMS_HAS_HTTPD_WEBSOCKET=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for enable-httpd-websocket option) ;; +esac],[RTEMS_HAS_HTTPD_WEBSOCKET=no]) +]) diff --git a/cpukit/configure.ac b/cpukit/configure.ac index 211f527..837f043 100644 --- a/cpukit/configure.ac +++ b/cpukit/configure.ac @@ -15,6 +15,7 @@ RTEMS_ENABLE_MULTIPROCESSING RTEMS_ENABLE_POSIX RTEMS_ENABLE_RTEMS_DEBUG RTEMS_ENABLE_NETWORKING +RTEMS_ENABLE_HTTPD_WEBSOCKET RTEMS_ENABLE_PARAVIRT RTEMS_ENV_RTEMSCPU @@ -158,6 +159,7 @@ AC_CHECK_HEADER([signal.h],[ RTEMS_CHECK_MULTIPROCESSING RTEMS_CHECK_POSIX_API RTEMS_CHECK_NETWORKING +RTEMS_CHECK_HTTPD_WEBSOCKET RTEMS_CHECK_SMP RTEMS_CHECK_ATOMIC @@ -202,6 +204,11 @@ RTEMS_CPUOPT([RTEMS_NETWORKING], [1], [if networking is enabled]) +RTEMS_CPUOPT([RTEMS_HTTPD_WEBSOCKET], + [test x"$rtems_cv_HAS_HTTPD_WEBSOCKET" = xyes], + [1], + [if HTTPd WebSocket is enabled]) + RTEMS_CPUOPT([RTEMS_ATOMIC], [test x"$rtems_cv_ATOMIC" = xyes], [1], @@ -327,6 +334,7 @@ AM_CONDITIONAL(HAS_SMP,[test "$RTEMS_HAS_SMP" = "yes"]) AM_CONDITIONAL(HAS_PTHREADS,test x"$rtems_cv_HAS_POSIX_API" = x"yes") AM_CONDITIONAL(LIBNETWORKING,test x"$rtems_cv_HAS_NETWORKING" = x"yes") +AM_CONDITIONAL(HTTPD_WEBSOCKET,test x"$rtems_cv_HAS_HTTPD_WEBSOCKET" = x"yes") AM_CONDITIONAL([ATOMIC],[test x"$rtems_cv_ATOMIC" = x"yes"]) AM_CONDITIONAL([LIBSHELL],[test x"$HAVE_ASSIGNABLE_STDIO" = x"yes"]) diff --git a/cpukit/mghttpd/Makefile.am b/cpukit/mghttpd/Makefile.am index 78af78d..b500873 100644 --- a/cpukit/mghttpd/Makefile.am +++ b/cpukit/mghttpd/Makefile.am @@ -9,6 +9,10 @@ libmghttpd_a_CPPFLAGS = $(AM_CPPFLAGS) # libmghttpd_a_CPPFLAGS += -DHAVE_MD5 libmghttpd_a_CPPFLAGS += -DNO_SSL -DNO_POPEN -DNO_CGI +if HTTPD_WEBSOCKET +libmghttpd_a_CPPFLAGS += -DUSE_WEBSOCKET +endif + libmghttpd_a_SOURCES = mongoose.c mongoose.h include_mghttpd_HEADERS = mongoose.h endif -- 1.8.4.3
_______________________________________________ rtems-devel mailing list rtems-devel@rtems.org http://www.rtems.org/mailman/listinfo/rtems-devel