From: Christian Brauner Date: Fri, 3 Sep 2021 14:35:55 +0000 (+0200) Subject: build: add tools to meson X-Git-Tag: lxc-5.0.0~92^2~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=297e5f969380377f07e62cdd5c320b88bd164f06;p=thirdparty%2Flxc.git build: add tools to meson Signed-off-by: Christian Brauner --- diff --git a/meson.build b/meson.build index 8d898e736..16f94bc31 100644 --- a/meson.build +++ b/meson.build @@ -16,6 +16,8 @@ conf = configuration_data() conf.set_quoted('PROJECT_URL', 'https://linuxcontainers.org/lxc/introduction/') conf.set('PROJECT_VERSION', meson.project_version(), description : 'Numerical project version (used where a simple number is expected)') +conf.set('_GNU_SOURCE', true) +conf.set('__STDC_FORMAT_MACROS', true) version_data = configuration_data() version_data.set('LXC_VERSION_MAJOR', '4') @@ -304,6 +306,7 @@ add_project_arguments('-include', 'config.h', language : 'c') subdir('src/include') subdir('src/lxc') +subdir('src/lxc/tools') config_h = configure_file( output : 'config.h', @@ -312,7 +315,7 @@ config_h = configure_file( liblxc = shared_library( 'lxc', version : liblxc_version, - include_directories : liblxc_includes, + include_directories : tools_liblxc_includes, link_args : ['-shared', '-fPIC', '-DPIC'], link_whole : [liblxc_static], dependencies : [threads, @@ -323,3 +326,299 @@ liblxc = shared_library( libapparmor], install : true, install_dir : libdir) + +public_programs = [] + +public_programs += executable( + 'lxc-autostart', + tools_lxc_autostart_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-cgroup', + tools_lxc_cgroup_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-checkpoint', + tools_lxc_checkpoint_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-config', + tools_lxc_config_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-console', + tools_lxc_console_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-copy', + tools_lxc_copy_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-create', + tools_lxc_create_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-destroy', + tools_lxc_destroy_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-device', + tools_lxc_device_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-execute', + tools_lxc_execute_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-freeze', + tools_lxc_freeze_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-info', + tools_lxc_info_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-ls', + tools_lxc_ls_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-monitor', + tools_lxc_monitor_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-snapshot', + tools_lxc_snapshot_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-start', + tools_lxc_start_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-stop', + tools_lxc_stop_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-top', + tools_lxc_top_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-unfreeze', + tools_lxc_unfreeze_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-unshare', + tools_lxc_unshare_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) + +public_programs += executable( + 'lxc-wait', + tools_lxc_wait_sources, + include_directories : tools_liblxc_includes, + link_with : [liblxc], + dependencies : [threads, + libseccomp, + libcap, + libopenssl, + libselinux, + libapparmor], + install : true, + install_dir : bindir) diff --git a/src/lxc/tools/meson.build b/src/lxc/tools/meson.build new file mode 100644 index 000000000..1e91cdfae --- /dev/null +++ b/src/lxc/tools/meson.build @@ -0,0 +1,191 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +tools_liblxc_includes = include_directories( + '.', + '../', + '../cgroups', + '../lsm', + '../storage', + '../../include') + +tools_basic_source = files( + 'arguments.c', + 'arguments.h', + '../compiler.h', + '../initutils.c', + '../initutils.h', + '../macro.h', + '../string_utils.c', + '../string_utils.h', + '../lxc.h') + include_sources + +tools_common_sources = files( + 'arguments.c', + 'arguments.h', + '../af_unix.c', + '../af_unix.h', + '../attach_options.h', + '../caps.c', + '../caps.h', + '../commands.c', + '../commands.h', + '../commands_utils.c', + '../commands_utils.h', + '../compiler.h', + '../conf.c', + '../conf.h', + '../confile.c', + '../confile.h', + '../confile_utils.c', + '../confile_utils.h', + '../cgroups/cgfsng.c', + '../cgroups/cgroup.c', + '../cgroups/cgroup.h', + '../cgroups/cgroup2_devices.c', + '../cgroups/cgroup2_devices.h', + '../cgroups/cgroup_utils.c', + '../cgroups/cgroup_utils.h', + '../error.c', + '../error.h', + '../initutils.c', + '../initutils.h', + '../file_utils.c', + '../file_utils.h', + '../lsm/apparmor.c', + '../lsm/lsm.c', + '../lsm/lsm.h', + '../lsm/nop.c', + '../lsm/selinux.c', + '../lxcseccomp.h', + '../lxclock.c', + '../lxclock.h', + '../macro.h', + '../mainloop.c', + '../mainloop.h', + '../memory_utils.h', + '../monitor.c', + '../monitor.h', + '../mount_utils.c', + '../mount_utils.h', + '../namespace.c', + '../namespace.h', + '../network.c', + '../network.h', + '../nl.c', + '../nl.h', + '../parse.c', + '../parse.h', + '../process_utils.c', + '../process_utils.h', + '../ringbuf.c', + '../ringbuf.h', + '../seccomp.c', + '../start.c', + '../start.h', + '../state.c', + '../state.h', + '../storage/btrfs.c', + '../storage/btrfs.h', + '../storage/dir.c', + '../storage/dir.h', + '../storage/loop.c', + '../storage/loop.h', + '../storage/lvm.c', + '../storage/lvm.h', + '../storage/nbd.c', + '../storage/nbd.h', + '../storage/overlay.c', + '../storage/overlay.h', + '../storage/rbd.c', + '../storage/rbd.h', + '../storage/rsync.c', + '../storage/rsync.h', + '../storage/storage.c', + '../storage/storage.h', + '../storage/storage_utils.c', + '../storage/storage_utils.h', + '../storage/zfs.c', + '../storage/zfs.h', + '../string_utils.c', + '../string_utils.h', + '../sync.c', + '../sync.h', + '../terminal.c', + '../terminal.h', + '../utils.c', + '../utils.h', + '../uuid.c', + '../uuid.h', + '../log.h', + '../log.c') + include_sources + +tools_lxc_autostart_sources = files( + 'lxc_autostart.c') + tools_basic_source + +tools_lxc_cgroup_sources = files( + 'lxc_cgroup.c') + tools_basic_source + +tools_lxc_checkpoint_sources = files( + 'lxc_checkpoint.c') + tools_common_sources + +tools_lxc_config_sources = files( + 'lxc_config.c') + tools_basic_source + +tools_lxc_console_sources = files( + 'lxc_console.c') + tools_common_sources + +if cc.has_function('getsubopt', prefix : '#include ', args : '-D_GNU_SOURCE') + conf.set10('HAVE_GETSUBOPT', have) +else + include_sources += files( + 'tools/include/getsubopt.c', + 'tools/include/getsubopt.h') +endif + +tools_lxc_copy_sources = files( + 'lxc_copy.c') + tools_common_sources + +tools_lxc_create_sources = files( + 'lxc_create.c') + tools_common_sources + +tools_lxc_destroy_sources = files( + 'lxc_destroy.c') + tools_common_sources + +tools_lxc_device_sources = files( + 'lxc_device.c') + tools_common_sources + +tools_lxc_execute_sources = files( + 'lxc_execute.c') + tools_common_sources + +tools_lxc_freeze_sources = files( + 'lxc_freeze.c') + tools_common_sources + +tools_lxc_info_sources = files( + 'lxc_info.c') + tools_common_sources + +tools_lxc_ls_sources = files( + 'lxc_ls.c') + tools_common_sources + +tools_lxc_monitor_sources = files( + 'lxc_monitor.c') + tools_common_sources + +tools_lxc_snapshot_sources = files( + 'lxc_snapshot.c') + tools_basic_source + +tools_lxc_start_sources = files( + 'lxc_start.c') + tools_common_sources + +tools_lxc_stop_sources = files( + 'lxc_stop.c') + tools_basic_source + +tools_lxc_top_sources = files( + 'lxc_top.c') + tools_common_sources + +tools_lxc_unfreeze_sources = files( + 'lxc_unfreeze.c') + tools_common_sources + +tools_lxc_unshare_sources = files( + 'lxc_unshare.c') + tools_common_sources + +tools_lxc_wait_sources = files( + 'lxc_wait.c') + tools_basic_source