Add cmake variable to adjust the value of NN_MAX_SOCKETS define
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 80276c0..a165387 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -101,6 +101,7 @@
 option (NN_TESTS "Build and run nanomsg tests" ON)
 option (NN_TOOLS "Build nanomsg tools" ON)
 option (NN_ENABLE_NANOCAT "Enable building nanocat utility." ${NN_TOOLS})
+set (NN_MAX_SOCKETS 512 CACHE STRING "max number of nanomsg sockets that can be created")
 
 #  Platform checks.
 
@@ -237,6 +238,8 @@
     add_definitions (-DNN_HAVE_GCC_ATOMIC_BUILTINS)
 endif ()
 
+add_definitions(-DNN_MAX_SOCKETS=${NN_MAX_SOCKETS})
+
 add_subdirectory (src)
 
 #  Build the tools
diff --git a/src/core/global.c b/src/core/global.c
index 12b1506..8fc13c2 100644
--- a/src/core/global.c
+++ b/src/core/global.c
@@ -59,8 +59,10 @@
 #include <unistd.h>
 #endif
 
-/*  Max number of concurrent SP sockets. */
+/*  Max number of concurrent SP sockets. Configureable at build time */
+#ifndef NN_MAX_SOCKETS
 #define NN_MAX_SOCKETS 512
+#endif
 
 /*  To save some space, list of unused socket slots uses uint16_t integers to
     refer to individual sockets. If there's a need to more that 0x10000 sockets,