diff --git a/c++/examples/meson.build b/c++/examples/meson.build new file mode 100644 index 00000000..95984d37 --- /dev/null +++ b/c++/examples/meson.build @@ -0,0 +1,38 @@ +executable( + 'mdns', + 'mdns.cc', + link_with: [ + libgensiomdnscpp, + libgensiooshcpp, + libgensioosh, + libgensio, + ], + include_directories: [top_inc, inc_inc, cpp_inc], + install: false, +) + +executable( + 'telnet_client', + 'telnet_client.cc', + link_with: [ + libgensiooshcpp, + libgensioosh, + libgensiocpp, + libgensio, + ], + include_directories: [top_inc, inc_inc, cpp_inc], + install: false, +) + +executable( + 'telnet_server', + 'telnet_server.cc', + link_with: [ + libgensiooshcpp, + libgensioosh, + libgensiocpp, + libgensio, + ], + include_directories: [top_inc, inc_inc, cpp_inc], + install: false, +) diff --git a/c++/include/gensio/meson.build b/c++/include/gensio/meson.build new file mode 100644 index 00000000..36c952d9 --- /dev/null +++ b/c++/include/gensio/meson.build @@ -0,0 +1,8 @@ +install_headers( + 'gensio', + 'gensio_dllvisibility', + 'gensiomdns', + 'gensioosh', + 'gensioosh_dllvisibility', + subdir: meson.project_name() +) diff --git a/c++/lib/meson.build b/c++/lib/meson.build new file mode 100644 index 00000000..fe77e04c --- /dev/null +++ b/c++/lib/meson.build @@ -0,0 +1,52 @@ +libgensiooshcpp = library( + 'gensiooshcpp', + sources: ['gensioosh.cc'], + include_directories: [top_inc, inc_inc, cplusplus_inc], + cpp_args: [ + '-DBUILDING_GENSIOOSHCPP_DLL', + ], + install: true, + soversion: soversion, + link_with: [libgensioosh], +) + +pkg.generate( + libgensiooshcpp, + name: 'libgensiooshcpp', + description: 'A C++ wrapper for the gensio library', +) + +libgensiocpp = library( + 'gensiocpp', + sources: ['gensio.cc'], + include_directories: [top_inc, inc_inc, cplusplus_inc], + cpp_args: [ + '-DBUILDING_GENSIOCPP_DLL', + ], + install: true, + soversion: soversion, + link_with: [libgensiooshcpp, libgensioosh, libgensio], +) + +pkg.generate( + libgensiocpp, + name: 'libgensiocpp', + description: 'A C++ wrapper for the OS handler library for gensio', +) + +libgensiomdnscpp = library( + 'gensiomdnscpp', + sources: ['gensiomdns.cc'], + include_directories: [top_inc, inc_inc, cplusplus_inc], + cpp_args: [ + '-DBUILDING_GENSIOMDNSCPP_DLL', + ], + install: true, + soversion: soversion, + link_with: [libgensiomdns, libgensiooshcpp, libgensioosh, libgensiocpp], +) +pkg.generate( + libgensiomdnscpp, + name: 'libgensiomdnscpp', + description: 'A C++ wrapper for the gensiolibrary to abstract MDNS interfaces', +) diff --git a/c++/meson.build b/c++/meson.build new file mode 100644 index 00000000..fe5e1ab6 --- /dev/null +++ b/c++/meson.build @@ -0,0 +1,8 @@ +add_languages('cpp') + +cpp_inc = include_directories('include') + +subdir('lib') +subdir('examples') +subdir('tests') +subdir('include/gensio') \ No newline at end of file diff --git a/c++/tests/meson.build b/c++/tests/meson.build new file mode 100644 index 00000000..5c24735c --- /dev/null +++ b/c++/tests/meson.build @@ -0,0 +1,25 @@ +executable( + 'basic_cpp_test', + 'basic_cpp_test.cc', + link_with: [ + libgensiooshcpp, + libgensiocpp, + libgensioosh, + libgensio, + ], + include_directories: [top_inc, inc_inc, cpp_inc], + install: false, +) + +executable( + 'serial_test', + 'serial_test.cc', + link_with: [ + libgensiooshcpp, + libgensiocpp, + libgensioosh, + libgensio, + ], + include_directories: [top_inc, inc_inc, cpp_inc], + install: false, +) \ No newline at end of file diff --git a/examples/meson.build b/examples/meson.build new file mode 100644 index 00000000..e69de29b diff --git a/glib/include/gensio/meson.build b/glib/include/gensio/meson.build new file mode 100644 index 00000000..6bfde053 --- /dev/null +++ b/glib/include/gensio/meson.build @@ -0,0 +1,4 @@ +install_headers( + 'gensio_glib_dllvisibility.h', + 'gensio_glib.h', +) diff --git a/glib/meson.build b/glib/meson.build new file mode 100644 index 00000000..3c74d912 --- /dev/null +++ b/glib/meson.build @@ -0,0 +1,19 @@ +libgensioglib = library( + 'gensioglib', + sources: ['gensio_glib.c'], + include_directories: [top_inc, glib_inc, inc_inc], + link_with: [libgensioosh, libgensio], + dependencies: [found_deps['glib-2.0'], found_deps['openssl']], + install: true, + soversion: soversion, +) + +pkg.generate( + libgensioglib, + name: 'libgensioglib', + description: 'Glib bindings for gensio', +) + +install_man('gensio_glib_funcs_alloc.3') + +subdir('include/gensio') diff --git a/include/gensio/meson.build b/include/gensio/meson.build new file mode 100644 index 00000000..feb1ce82 --- /dev/null +++ b/include/gensio/meson.build @@ -0,0 +1,42 @@ +configure_file(input : 'gensio_version.h.in', + output : 'gensio_version.h', + configuration : version_conf, + install : true, + install_dir : gensio_includedir) + +install_headers( + 'argvutils.h', + 'gensio_acc_gensio.h', + 'gensio_addr.h', + 'gensio_ax25_addr.h', + 'gensio_base.h', + 'gensio_buffer.h', + 'gensio_circbuf.h', + 'gensio_class.h', + 'gensio_control.h', + 'gensio_deprecated.h', + 'gensio_dllvisibility.h', + 'gensio_err.h', + 'gensio_list.h', + 'gensio_ll_fd.h', + 'gensio_ll_gensio.h', + 'gensio_mdns.h', + 'gensio_os_funcs_public.h', + 'gensio_os_funcs.h', + 'gensio_osops_addrinfo.h', + 'gensio_osops_env.h', + 'gensio_osops_stdsock.h', + 'gensio_osops.h', + 'gensio_selector.h', + 'gensio_time.h', + 'gensio_types.h', + 'gensio_unix.h', + 'gensio_utils.h', + 'gensio_win.h', + 'gensio.h', + 'gensioosh_dllvisibility.h', + 'netif.h', + 'selector.h', + 'sergensio_class.h', + 'sergensio.h', +) diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 00000000..60a318d5 --- /dev/null +++ b/include/meson.build @@ -0,0 +1 @@ +subdir('gensio') \ No newline at end of file diff --git a/lib/meson.build b/lib/meson.build new file mode 100644 index 00000000..218c1326 --- /dev/null +++ b/lib/meson.build @@ -0,0 +1,198 @@ +builtin_gensios = [] +builtin_gensios_str = '/* Do not edit, created by meson */\n' +foreach g : builtin_gensios + builtin_gensios_str += '\nINIT_GENSIO(@0@);'.format(g) +endforeach +builtin_gensios_h = custom_target( + 'builtin_gensios.h', + output: 'builtin_gensios.h', + capture: true, + command: ['echo', builtin_gensios_str], +) + +libgensioosh_src = files( + 'gensio_addr.c', + 'gensio_addrinfo.c', + 'gensio_ax25_addr.c', + 'gensio_circbuf.c', + 'gensio_osops.c', + 'gensio_osops_env.c', + 'gensio_stdsock.c', + 'utils.c', +) +if target_machine.system() == 'linux' + libgensioosh_src += files('gensio_unix.c', 'selector.c') +endif +if target_machine.system() == 'windows' + libgensioosh_src += files('gensio_win.c') +endif + +libgensioosh = library( + 'gensioosh', + sources: libgensioosh_src, + include_directories: [top_inc, inc_inc], + c_args: [ + '-DBUILDING_GENSIOOSH_DLL', + '-DPKG_LIBEXEC="@0@"'.format(gensio_libexec), + ], + install: true, + soversion: soversion, + dependencies: [found_deps['libsctp'], found_deps['threads'], found_deps['wrap']], +) + +pkg.generate( + libgensioosh, + name: 'libgensioosh', + description: 'OS handler library for gensio', +) + +libgensiomdns_src = files('avahi_watcher.c', 'mdns.c') +libgensiomdns = library( + 'gensiomdns', + sources: libgensiomdns_src, + include_directories: [top_inc, inc_inc], + c_args: ['-DBUILDING_GENSIOMDNS_DLL'], + link_with: [libgensioosh], + dependencies: [found_deps['avahi-client']], + install: true, + soversion: soversion, +) +pkg.generate( + libgensiomdns, + name: 'libgensiomdns', + description: 'A gensiolibrary to abstract MDNS interfaces', +) + +libgensio_src = files( + 'buffer.c', + 'gensio.c', + 'gensio_acc.c', + 'gensio_acc_gensio.c', + 'gensio_base.c', + 'gensio_ll_fd.c', + 'gensio_ll_gensio.c', + 'sergensio.c', +) + +libgensio = library( + 'gensio', + sources: libgensio_src + [builtin_gensios_h], + include_directories: [top_inc, inc_inc], + c_args: ['-DBUILDING_GENSIO_DLL'], + link_with: [libgensioosh], + install: true, + soversion: soversion, +) +pkg.generate( + libgensio, + name: 'libgensiomdns', + description: 'A library to abstract stream I/O like serial port, TCP, telnet, UDP, SSL, IPMI SOL, etc.', +) + + +dynamic_gensio_rpath = '-rpath "@0@"'.format(gensio_libexec) +dynamic_gensio_ldflags = [ + '-module', + dynamic_gensio_rpath, + '-avoid-version', +] + +gensios = [ + {'name': 'net', 'enable': gensio_net_enable}, + {'name': 'udp', 'enable': gensio_udp_enable}, + {'name': 'sctp', 'enable': gensio_sctp_enable, 'deps': [found_deps['libsctp']]}, + # {'name': 'stdio'}, + # {'name': 'pty'}, + # {'name': 'dummy'}, + # {'name': 'conacc'}, + # {'name': 'serialdev', 'src': ['sergensio_serialdev.c', 'seriallock.c']}, + # {'name': 'echo'}, + # {'name': 'file'}, + # { + # 'name': 'ipmisol', + # 'src': ['gensio_ll_ipmisol.c', 'sergensio_ipmisol.c'], + # 'deps': [found_deps['OpenIPMI']], + # }, + # {'name': 'mdns', 'link': [libgensiomdns]}, + # { + # 'name': 'sound', + # 'src': ['gensio_ll_sound.c', 'gensio_sound.c'], + # 'deps': [found_deps['alsa']], + # }, + # {'name': 'cm108gpio', 'deps': [found_deps['libudev']]}, + # { + # 'name': 'ssl', + # 'src': ['gensio_ssl.c', 'gensio_filter_ssl.c'], + # 'deps': [found_deps['openssl']], + # }, + # { + # 'name': 'certauth', + # 'src': ['gensio_certauth.c', 'gensio_filter_certauth.c'], + # 'deps': [found_deps['openssl']], + # }, + # {'name': 'mux'}, + # { + # 'name': 'telnet', + # 'src': ['sergensio_telnet.c', 'gensio_filter_telnet.c', 'telnet.c'], + # }, + # { + # 'name': 'msgdelim', + # 'src': ['gensio_filter_msgdelim.c', 'gensio_msgdelim.c'], + # }, + # {'name': 'relpkt', 'src': ['gensio_filter_relpkt.c', 'gensio_relpkt.c']}, + # {'name': 'trace', 'src': ['gensio_filter_trace.c', 'gensio_trace.c']}, + # {'name': 'perf', 'src': ['gensio_filter_perf.c', 'gensio_perf.c']}, + # {'name': 'kiss', 'src': ['gensio_filter_kiss.c', 'gensio_kiss.c']}, + # {'name': 'ax25'}, + # {'name': 'xlt', 'src': ['gensio_filter_xlt.c', 'gensio_xlt.c']}, + # {'name': 'keepopen'}, + # {'name': 'script', 'src': ['gensio_filter_script.c', 'gensio_script.c']}, + # { +# 'name': 'ratelimit', +# 'src': ['gensio_filter_ratelimit.c', 'gensio_ratelimit.c'], +# }, +# { +# 'name': 'afskmdm', +# 'src': ['gensio_filter_afskmdm.c', 'gensio_afskmdm.c'], +# 'deps': [libm_dep], +# }, +] + + +foreach gensio : gensios + enable_gensio = gensio.get('enable') + if gensio_all_enable != 'no' + enable_gensio = gensio_all_enable + endif + if enable_gensio == 'no' + continue + endif + name = gensio.get('name') + src = gensio.get('src', 'gensio_@0@.c'.format(name)) + deps = gensio.get('deps', []) + link = gensio.get('link', []) + link_args = gensio.get('link-args', []) + if enable_gensio == 'yes' + static_library( + 'gensio_' + name, + src, + include_directories: [top_inc, inc_inc], + dependencies: [deps], + link_with: [libgensio, libgensioosh] + link, + link_args: link_args, + install: true, + install_dir: gensio_libexec, + ) + else + shared_library( + 'gensio_' + name, + src, + include_directories: [top_inc, inc_inc], + dependencies: [deps], + link_with: [libgensio, libgensioosh] + link, + link_args: link_args, + install: true, + install_dir: gensio_libexec, + ) + endif +endforeach diff --git a/man/meson.build b/man/meson.build new file mode 100644 index 00000000..10e5e918 --- /dev/null +++ b/man/meson.build @@ -0,0 +1,33 @@ +install_man( + 'gensio.5', + 'gensio_acc_accept_s.3', + 'gensio_acc_control.3', + 'gensio_accepter_event.3', + 'gensio_acc_get_type.3', + 'gensio_acc_set_accept_callback_enable.3', + 'gensio_acc_set_callback.3', + 'gensio_acc_shutdown.3', + 'gensio_acc_startup.3', + 'gensio_add_default.3', + 'gensio_alloc_channel.3', + 'gensio_close.3', + 'gensio_control.3', + 'gensio_err.3', + 'gensio_event.3', + 'gensio_get_type.3', + 'gensio_mdns.3', + 'gensio_open.3', + 'gensio_os_funcs.3', + 'gensio_set_callback.3', + 'gensio_set_log_mask.3', + 'gensio_set_read_callback_enable.3', + 'gensio_set_sync.3', + 'gensio_to_sergensio.3', + 'gensio_write.3', + 'sergensio.5', + 'sergensio_b_alloc.3', + 'sergensio_baud.3', + 'sergensio_event.3', + 'str_to_gensio.3', + 'str_to_gensio_accepter.3', +) diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..d4a5cbac --- /dev/null +++ b/meson.build @@ -0,0 +1,179 @@ +project( + 'gensio', 'c', + version: '2.8.5', + default_options: [ + 'warning_level=2' # value "2" will add "-Wall" and "-Wextra" to the compiler flags + ], +) +soversion = '4.1.0' +conf = configuration_data() +cc = meson.get_compiler('c') +pkg = import('pkgconfig') +gensio_version = meson.project_version() +version_array = gensio_version.split('.') +gensio_major_version = version_array[0].to_int() +gensio_minor_version = version_array[1].to_int() +gensio_micro_version = version_array[2].to_int() + +top_inc = include_directories('.') +inc_inc = include_directories('./include') +glib_inc = include_directories('./glib/include') +tcl_inc = include_directories('./tcl/include') +cplusplus_inc = include_directories('./c++/include') + +conf.set10('HAVE_UNIX', cc.has_header('sys/un.h')) +conf.set( + 'HAVE_TCPD_H', + cc.has_header('tcpd.h', required: get_option('tcp-wrappers')), + description : 'Define if you have the header file.' +) + +# configure version related variables +version_conf = configuration_data() +version_conf.set('gensio_VERSION_MAJOR', gensio_major_version) +version_conf.set('gensio_VERSION_MINOR', gensio_minor_version) +version_conf.set('gensio_VERSION_PATCH', gensio_micro_version) +version_conf.set('gensio_VERSION_STRING', gensio_version) + +# check token ['HAVE_SCTP_SENDV', ] +# AC_CHECK_LIB(sctp, sctp_sendv, [HAVE_SCTP_SENDV=1]) +# check token ['HAVE_RAND_SET_DRBG_TYPE'] +#AC_CHECK_LIB(crypto, RAND_set_DRBG_type, HAVE_RAND_SET_DRBG_TYPE=1) +check_functions = [ + ['HAVE_CFMAKERAW', 'cfmakeraw', '#include'], + ['HAVE_EPOLL_PWAIT', 'epoll_pwait', '#include'], + ['HAVE_FNMATCH', 'fnmatch', '#include'], + ['HAVE_GETRANDOM_FUNC', 'getrandom', '#include'], + ['HAVE_ISATTY', 'isatty', '#include'], + ['HAVE_PRCTL', 'prctl', '#include'], + ['HAVE_PTSNAME_R', 'ptsname_r', ''], + ['HAVE_RECVMSG', 'recvmsg', '#include'], + ['HAVE_REGEXEC', 'regexec', '#include'], + ['HAVE_SENDMSG', 'sendmsg', '#include'], + ['HAVE_SETUTXENT', 'setutxent', '#include'], + ['HAVE_SIGTIMEDWAIT', 'sigtimedwait', '#include'], + ['HAVE_STRCASECMP', 'strcasecmp', '#include'], + ['HAVE_STRNCASECMP', 'strncasecmp', '#include'], +] + +foreach f : check_functions + if cc.has_function(f.get(1), prefix: f.get(2)) + conf.set(f.get(0), 1) + endif +endforeach + +check_decl = [ + ['HAVE_DECL_SIGWINCH', 'SIGWINCH', '#include'], + ['HAVE_DECL_TIOCSRS485', 'TIOCSRS485', '#include'], +] + +foreach f : check_decl + if cc.get_define(f.get(1), prefix: f.get(2)) != '' + conf.set(f.get(0), 1) + endif +endforeach + +conf.set10( + 'HAVE_TERMIOS2', + cc.has_member( + 'struct termios2', + 'c_ispeed', + prefix: '#include', + ), +) + +conf.set10( + 'HAVE_GCC_ATOMICS', + cc.links( + ''' + static int counter = 0; + int val; + + __atomic_load(&counter, &val, __ATOMIC_SEQ_CST); + return val; + ''', + ), +) + +if target_machine.system() == 'windows' + conf.set('HAVE_PTY', 1) +else + conf.set10('HAVE_PTY', cc.has_function('posix_openpt')) +endif + + + +golang = find_program('go', required: false) +conf.set10('HAVE_GO', golang.found()) + +swig = find_program('swig', required: false) +conf.set10('HAVE_SWIG', swig.found()) + +python = import('python').find_installation('python3') +conf.set_quoted('HAVE_PYTHON', python.language_version()) + + +if target_machine.system() == 'linux' + conf.set('HAVE_WORKING_PORT0', 1) +endif + +# Deps + +found_deps = {} + +deps = [ + ['HAVE_ALSA', 'alsa'], + ['HAVE_AVAHI', 'avahi-client'], + ['HAVE_LIBSCTP', 'libsctp'], + #['HAVE_LIBPAM', 'pam'], + ['HAVE_OPENIPMI', 'OpenIPMI'], + ['HAVE_OPENSSL', 'openssl'], + ['HAVE_GLIB', 'glib-2.0'], + ['HAVE_TCL', 'tcl'], + ['HAVE_UDEV', 'libudev'], +] + +foreach d : deps + dep = dependency(d.get(1)) + if dep.found() + conf.set(d.get(0), 1) + found_deps += {d.get(1): dep} + endif +endforeach + +libpam_dep = cc.find_library('pam', required: true) +conf.set('HAVE_LIBPAM', 1) +libm_dep = cc.find_library('m', required: true) +thread_dep = dependency('threads') +libwrap_dep = cc.find_library('wrap', required : get_option('tcp-wrappers')) + +found_deps += {'pam' : libpam_dep} +found_deps += {'threads' : thread_dep} +found_deps += {'wrap' : libwrap_dep} + +conf.set('USE_LOGIN_PROGRAM', 0, description : 'Set to 1 to use login, 0 to directly execute the shell on login') +conf.set('USE_PTHREADS', 1) + +gensio_libexec = ( + get_option('prefix') / get_option('libexecdir') / 'gensio' / meson.project_version() +) + +gensio_includedir = get_option('includedir') + +# gensios +gensio_all_enable = get_option('all-gensios') +gensio_net_enable = get_option('net') +gensio_udp_enable = get_option('udp') +gensio_sctp_enable = get_option('sctp') + +subdir('lib') # Done +if get_option('cplusplus') + subdir('c++') +endif +subdir('glib') +subdir('include') # Done +subdir('man') # Done +subdir('tcl') +subdir('tools') + +configure_file(output: 'config.h', configuration: conf) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 00000000..a9494360 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,114 @@ + +option( + 'uucp-locking', + type: 'string', + description: 'Enable UUCP-style locking with yes/no, or set the uucp lock directory otherwise', +) +option( + 'module-install-dir', + type: 'string', + description: 'path to install modules to', +) +option( + 'broken-pselect', + type: 'boolean', + value: false, + description: 'pselect is not atomic, work around it', +) + +option( + 'tcp-wrappers', + type: 'feature', + description: 'enable TCP Wrappers', +) + +option( + 'docs', + type: 'boolean', + value: true, + description: 'build and install documentation', +) + +option( + 'pthread', + type: 'feature', + description: 'enable Threading', +) + +option( + 'cplusplus', + type: 'boolean', + value: true, + description: 'Enable or disable C++ support', +) + +option( + 'cplusplus-ver', + type: 'string', + description: 'Set the C++ version, same as the value of __cplusplus', +) + +option( + 'glib', + type: 'feature', + description: 'enable glib', +) + +#glibcflags +#gliblibflags + +option( + 'tcl', + type: 'feature', + description: 'enable Tcl', +) + +option( + 'openipmi', + type: 'feature', + description: 'enable OpenIPMI', +) + +option( + 'avahi', + type: 'feature', + description: 'enable Avahi mDNS', +) +option( + 'alsa', + type: 'feature', + description: 'enable ALSA', +) + +# gensios +option( + 'all-gensios', + type : 'combo', + choices : ['yes', 'dynamic', 'no'], + value : 'no', + description: 'default setting for all gensios', +) + +option( + 'net', + type : 'combo', + choices : ['yes', 'dynamic', 'no'], + value : 'no', + description: 'enable tcp/unix gensio', +) + +option( + 'udp', + type : 'combo', + choices : ['yes', 'dynamic', 'no'], + value : 'no', + description: 'enable udp/unix gensio', +) + +option( + 'sctp', + type : 'combo', + choices : ['yes', 'dynamic', 'no'], + value : 'no', + description: 'enable tcp/unix gensio', +) diff --git a/tcl/meson.build b/tcl/meson.build new file mode 100644 index 00000000..af623f29 --- /dev/null +++ b/tcl/meson.build @@ -0,0 +1,15 @@ +libgensiotcl = library( + 'gensiotcl', + sources: ['gensio_tcl.c'], + include_directories: [top_inc, inc_inc, tcl_inc], + link_with: [libgensioosh, libgensio], + dependencies: [found_deps['tcl'], found_deps['openssl']], + install: true, + soversion: soversion, +) + +pkg.generate( + libgensiotcl, + name: 'libgensiotcl', + description: 'Tcl bindings for gensio', +) diff --git a/tools/meson.build b/tools/meson.build new file mode 100644 index 00000000..372f5470 --- /dev/null +++ b/tools/meson.build @@ -0,0 +1,85 @@ +libgensiotool = static_library( + 'gensiotool', + sources: ['ioinfo.c', 'ser_ioinfo.c', 'utils.c', 'localports.c'], + include_directories: [top_inc, inc_inc], + link_with: [libgensioosh, libgensio], +) +libgtlssh = static_library( + 'gtlssh', + c_args: ['-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir'))], + sources: ['gtlssh-shared.c', 'run_get_output.c', 'file_utils.c'], + include_directories: [top_inc, inc_inc], + link_with: [libgensiotool, libgensioosh, libgensio], +) + +executable( + 'gensiot', + 'gensiotool.c', + link_with: [ + libgensiotcl, + libgensioglib, + libgensiotool, + libgensioosh, + libgensio, + ], + include_directories: [top_inc, inc_inc, glib_inc, tcl_inc], + dependencies: [ + found_deps['glib-2.0'], + found_deps['openssl'], + found_deps['tcl'], + ], + install: true, +) +install_man('gensiot.1') + +executable( + 'gmdns', + 'gensiomdns.c', + link_with: [libgensiomdns, libgensiotool, libgensioosh], + include_directories: [top_inc, inc_inc], + install: true, +) +install_man('gmdns.1') +#python script +install_man('greflector.1') + +executable( + 'gsound', + 'gensiosound.c', + link_with: [libgensiotool, libgensioosh], + include_directories: [top_inc, inc_inc], + install: true, +) +install_man('gsound.1') + +executable( + 'gtlssh-keygen', + 'gtlssh-keygen.c', + link_with: [libgtlssh, libgensiotool, libgensioosh], + include_directories: [top_inc, inc_inc], + dependencies: [found_deps['openssl']], + install: true, +) +install_man('gtlssh-keygen.1') + +executable( + 'gtlssh', + 'gtlssh.c', + link_with: [libgtlssh, libgensiomdns, libgensiotool, libgensioosh], + include_directories: [top_inc, inc_inc], + dependencies: [found_deps['openssl']], + install: true, +) +install_man('gtlssh.1') + +executable( + 'gtlsshd', + 'gtlsshd.c', + link_with: [libgtlssh, libgensiotool, libgensioosh], + include_directories: [top_inc, inc_inc], + dependencies: [found_deps['openssl'], found_deps['pam']], + install: true, +) +install_man('gtlsshd.8') +# shellscript +install_man('gtlssync.1')