From 583bedefc2a247d2cfd32d1b4a0abbe3e2015c70 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Fri, 5 Mar 2021 17:47:33 +0200 Subject: Move to meson build Meson makes it much easier to handle cross builds compared to manually written makefiles. The makefile is kept to avoid build breakages, with a message now printed to warn that is is deprecated. Signed-off-by: Laurent Pinchart --- .gitignore | 1 + Makefile | 2 ++ meson.build | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 meson.build diff --git a/.gitignore b/.gitignore index ddc1ad6..26aa4f2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.o +build/ yavta diff --git a/Makefile b/Makefile index 827c8b0..8965ad7 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,8 @@ CFLAGS ?= -O2 -W -Wall -Iinclude LDFLAGS ?= LIBS := -lrt +$(warning WARNING: Makefile support is deprecated, please switch to meson) + %.o : %.c $(CC) $(CFLAGS) -c -o $@ $< diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..e07659d --- /dev/null +++ b/meson.build @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: CC0-1.0 + +project('yavta', 'c', + meson_version : '>= 0.40', + version : '0.0.0', + default_options : [ + 'werror=true', + 'warning_level=2', + ], + license : 'GPL 2.0+') + +# +# Configure the build environment +# +cc = meson.get_compiler('c') + +cc_arguments = [ + '-Wshadow', +] + +if cc.get_id() == 'clang' + # Turn _FORTIFY_SOURCE by default on optimised builds (as it requires -O1 + # or higher). This is needed on clang only as gcc enables it by default. + if get_option('optimization') != '0' + cc_arguments += [ + '-D_FORTIFY_SOURCE=2', + ] + endif +endif + +add_project_arguments(cc_arguments, language : 'c') + +# +# yavta +# +yavta_dependencies = [] + +if not cc.has_function('clock_gettime') + # On glibc older than 2.17, clock_gettime is provided by time.h and -lrt + yavta_dependencies += [cc.find_library('rt')] +endif + +yavta_sources = files([ + 'yavta.c', +]) + +yavta = executable('yavta', yavta_sources, + include_directories : include_directories('include'), + dependencies : yavta_dependencies, + install : true) -- cgit v1.2.3