summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile2
-rw-r--r--meson.build50
3 files changed, 53 insertions, 0 deletions
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)