If sigaction is not available just stub out the set_signal_handler()
function.
   include_directories(${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS})
   include_directories(${FFMPEG_LIBSWSCALE_INCLUDE_DIRS})
 
+  set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_SOURCE)
+  check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION)
+  if (HAVE_SIGACTION)
+    add_definitions("-DHAVE_SIGACTION")
+  endif()
+  set(CMAKE_REQUIRED_DEFINITIONS)
+
   # xcb is used to retrieve the full screen dimensions when using x11grab
   # as input format
   find_package(XCB)
 
        run = 0;
 }
 
+#ifdef HAVE_SIGACTION
 static int set_signal_handler(void (*signal_handler)(int))
 {
        struct sigaction new_action;
 out:
        return ret;
 }
+#else
+static int set_signal_handler(void (*signal_handler)(int))
+{
+       (void)signal_handler;
+       fprintf(stderr, "set_signal_handler() not implemented, sigaction not available\n");
+       return 0;
+}
+#endif
+
 
 static void usage(char *name)
 {