Extract filesystem-related functions into fs.c
[tinc] / src / meson.build
index 1d195cf..6a9fb29 100644 (file)
@@ -62,6 +62,7 @@ check_headers = [
   'sys/ioctl.h',
   'sys/mman.h',
   'sys/param.h',
+  'sys/random.h',
   'sys/resource.h',
   'sys/socket.h',
   'sys/stat.h',
@@ -85,6 +86,7 @@ check_functions = [
   'explicit_bzero',
   'explicit_memset',
   'fchmod',
+  'getentropy',
   'gettimeofday',
   'memset_s',
   'mlockall',
@@ -117,6 +119,7 @@ src_lib_common = [
   'conf.c',
   'console.c',
   'dropin.c',
+  'fs.c',
   'keys.c',
   'list.c',
   'logger.c',
@@ -172,6 +175,13 @@ src_tincd = [
   'subnet.c',
 ]
 
+src_event_select = files('event_select.c')
+
+if os_name != 'windows'
+  src_tincd += 'signal.c'
+endif
+
+cc_flags_tinc = cc_flags
 cc_flags_tincd = cc_flags
 
 deps_common = []
@@ -267,6 +277,9 @@ if not opt_curses.disabled()
   if dep_curses.found()
     cdata.set('HAVE_CURSES', 1)
     deps_tinc += dep_curses
+    if static
+      cc_flags_tinc += '-DNCURSES_STATIC'
+    endif
   endif
 endif
 
@@ -278,6 +291,9 @@ else
   if not dep_readline.found()
     dep_readline = cc.find_library('readline', required: opt_readline, static: static)
   endif
+  if not dep_readline.found()
+    dep_readline = cc.find_library('libedit', required: opt_readline, static: static)
+  endif
   if dep_readline.found() and \
      cc.has_header('readline/readline.h', dependencies: dep_readline) and \
      cc.has_header('readline/history.h', dependencies: dep_readline)
@@ -349,16 +365,17 @@ endif
 
 subdir(opt_crypto)
 
-if opt_crypto != 'openssl'
-  src_lib_crypto += 'crypto.c'
-endif
-
 if opt_crypto != 'nolegacy'
   src_lib_crypto += ['cipher.c', 'digest.c']
 endif
 
 subdir('include')
 
+have_sandbox = cdata.has('HAVE_SANDBOX')
+if not have_sandbox
+  src_lib_common += 'sandbox.c'
+endif
+
 lib_crypto = static_library(
   'tinc_crypto',
   sources: src_lib_crypto,
@@ -387,6 +404,7 @@ lib_tinc = static_library(
   sources: src_tinc,
   dependencies: deps_tinc,
   link_with: lib_common,
+  c_args: cc_flags_tinc,
   implicit_include_directories: false,
   include_directories: inc_conf,
   build_by_default: false,