mbed3 build support
authorAndy Green <andy.green@linaro.org>
Mon, 2 Nov 2015 00:21:08 +0000 (08:21 +0800)
committerAndy Green <andy.green@linaro.org>
Sat, 14 Nov 2015 07:01:37 +0000 (15:01 +0800)
Signed-off-by: Andy Green <andy.green@linaro.org>
CMakeLists.txt
lib/libwebsockets.h
lib/private-libwebsockets.h

index 3661c81..75691e5 100644 (file)
@@ -67,6 +67,32 @@ option(LWS_WITH_LATENCY "Build latency measuring code into the library" OFF)
 option(LWS_WITHOUT_DAEMONIZE "Don't build the daemonization api" ON)
 option(LWS_IPV6 "Compile with support for ipv6" OFF)
 option(LWS_WITH_HTTP2 "Compile with support for http2" OFF)
+option(LWS_MBED3 "Platform is MBED3" OFF)
+
+if (DEFINED YOTTA_WEBSOCKETS_VERSION_STRING)
+
+set(LWS_WITH_SHARED OFF)
+set(LWS_WITH_SSL OFF)
+set(LWS_WITH_ZLIB OFF)
+set(LWS_WITHOUT_CLIENT ON)
+set(LWS_WITHOUT_TESTAPPS ON)
+set(LWS_WITHOUT_EXTENSIONS ON)
+set(LWS_MBED3 ON)
+
+endif()
+
+if (DEFINED YOTTA_WEBSOCKETS_VERSION_STRING)
+
+set(LWS_WITH_SHARED OFF)
+set(LWS_WITH_SSL OFF)
+set(LWS_WITH_ZLIB OFF)
+set(LWS_WITHOUT_CLIENT ON)
+set(LWS_WITHOUT_TESTAPPS ON)
+set(LWS_WITHOUT_EXTENSIONS ON)
+set(LWS_MBED3 ON)
+
+endif()
+
 
 # Allow the user to override installation directories.
 set(LWS_INSTALL_LIB_DIR       lib CACHE PATH "Installation directory for libraries")
@@ -213,6 +239,10 @@ if (LWS_WITH_HTTP2)
        set(LWS_USE_HTTP2 1)
 endif()
 
+if (LWS_MBED3)
+       set(CMAKE_C_FLAGS "-D_DEBUG ${CMAKE_C_FLAGS}")
+endif()
+
 if (MINGW)
        set(LWS_MINGW_SUPPORT 1)
        set(CMAKE_C_FLAGS "-D__USE_MINGW_ANSI_STDIO ${CMAKE_C_FLAGS}")
@@ -295,7 +325,10 @@ CHECK_INCLUDE_FILE(sys/stat.h LWS_HAVE_SYS_STAT_H)
 CHECK_INCLUDE_FILE(sys/types.h LWS_HAVE_SYS_TYPES_H)
 CHECK_INCLUDE_FILE(unistd.h LWS_HAVE_UNISTD_H)
 CHECK_INCLUDE_FILE(vfork.h LWS_HAVE_VFORK_H)
-CHECK_INCLUDE_FILE(zlib.h LWS_HAVE_ZLIB_H)
+
+if (LWS_WITH_ZLIB AND NOT LWS_USE_BUNDLED_ZLIB)
+       CHECK_INCLUDE_FILE(zlib.h LWS_HAVE_ZLIB_H)
+endif()
 
 # TODO: These can also be tested to see whether they actually work...
 set(LWS_HAVE_WORKING_FORK LWS_HAVE_FORK)
@@ -303,9 +336,10 @@ set(LWS_HAVE_WORKING_VFORK LWS_HAVE_VFORK)
 
 CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
 
-CHECK_TYPE_SIZE(pid_t PID_T_SIZE)
-CHECK_TYPE_SIZE(size_t SIZE_T_SIZE)
-CHECK_TYPE_SIZE("void *" LWS_SIZEOFPTR LANGUAGE C)
+# These don't work Cross...
+#CHECK_TYPE_SIZE(pid_t PID_T_SIZE)
+#CHECK_TYPE_SIZE(size_t SIZE_T_SIZE)
+#CHECK_TYPE_SIZE("void *" LWS_SIZEOFPTR LANGUAGE C)
 
 if (NOT PID_T_SIZE)
        set(pid_t int)
@@ -390,8 +424,14 @@ if (WIN32)
        list(APPEND SOURCES
                lib/lws-plat-win.c)
 else()
-       list(APPEND SOURCES
-               lib/lws-plat-unix.c)
+       if (LWS_MBED3)
+               list(APPEND SOURCES
+                       lib/lws-plat-mbed3.cpp
+                       lib/lws-plat-mbed3.c)
+       else()
+               list(APPEND SOURCES
+                       lib/lws-plat-unix.c)
+       endif()
 endif()
 
 if (NOT LWS_WITHOUT_SERVER)
@@ -499,7 +539,6 @@ if (LWS_WITH_SHARED)
        endif()
 endif()
 
-
 # Set the so version of the lib.
 # Equivalent to LDFLAGS=-version-info x:x:x
 if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
@@ -1021,6 +1060,7 @@ message(" LWS_WITHOUT_DAEMONIZE = ${LWS_WITHOUT_DAEMONIZE}")
 message(" LWS_USE_LIBEV = ${LWS_USE_LIBEV}")
 message(" LWS_IPV6 = ${LWS_IPV6}")
 message(" LWS_WITH_HTTP2 = ${LWS_WITH_HTTP2}")
+message(" LWS_MBED3 = ${LWS_MBED3}")
 message("---------------------------------------------------------------------")
 
 # These will be available to parent projects including libwebsockets using add_subdirectory()
index 3d7b469..3c0f185 100644 (file)
@@ -64,10 +64,12 @@ extern "C" {
 #endif
 
 #else // NOT WIN32
+#include <unistd.h>
 
+#ifndef MBED_OPERATORS
 #include <poll.h>
-#include <unistd.h>
 #include <netdb.h>
+#endif
 
 #if defined(__GNUC__)
 #define LWS_VISIBLE __attribute__((visibility("default")))
index 6a31dca..5b1238e 100644 (file)
 #else /* not windows --> */
 #include <errno.h>
 #include <fcntl.h>
-#include <netdb.h>
-#include <signal.h>
 #include <strings.h>
 #include <unistd.h>
 #include <sys/types.h>
+#ifndef MBED_OPERATORS
+#include <netdb.h>
+#include <signal.h>
 #include <sys/socket.h>
 #ifdef LWS_BUILTIN_GETIFADDRS
  #include <getifaddrs.h>
 #include <sys/un.h>
 #include <sys/socket.h>
 #include <netdb.h>
-#ifndef LWS_NO_FORK
-#ifdef LWS_HAVE_SYS_PRCTL_H
-#include <sys/prctl.h>
-#endif
-#endif
 #include <netinet/in.h>
 #include <netinet/tcp.h>
 #include <arpa/inet.h>
 #ifdef LWS_USE_LIBEV
 #include <ev.h>
 #endif /* LWS_USE_LIBEV */
-
 #include <sys/mman.h>
+
+#endif /* MBED */
+
+#ifndef LWS_NO_FORK
+#ifdef LWS_HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#endif
+#endif
+
 #include <sys/time.h>
 
 #define LWS_ERRNO errno