--- /dev/null
+++ b/conf.h.meson
@@ -0,0 +1 @@
+#mesondefine HAVE_ALGORITHM
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,73 @@
+project('bonnie++', 'cpp',
+  version : '2.00a',
+  default_options : [ 'cpp_std=c++11' ])
+
+cxx = meson.get_compiler('cpp')
+cdata = configuration_data()
+
+cdata.set('HAVE_ALGORITHM', cxx.has_header('algorithm'))
+
+configure_file(input : 'conf.h.meson',
+  output : 'conf.h',
+  configuration : cdata)
+
+bonniepp_incdir = include_directories('.')
+thread_dep = dependency('threads')
+
+add_global_arguments('-DHAVE_CONFIG_H', language : 'cpp')
+
+executable('bonnie++',
+  'bonnie++.cpp',
+  'bon_io.cpp',
+  'bon_file.cpp',
+  'bon_time.cpp',
+  'semaphore.cpp',
+  'sync.cpp',
+  'thread.cpp',
+  'bon_suid.cpp',
+  'duration.cpp',
+  'util.cpp',
+  'rand.cpp',
+  install: true,
+  include_directories : bonniepp_incdir,
+  dependencies : thread_dep,
+)
+
+executable('bon_csv2html',
+  'bon_csv2html.cpp',
+  install: true,
+  include_directories : bonniepp_incdir,
+)
+
+executable('zcav',
+  'zcav.cpp',
+  'thread.cpp',
+  'zcav_io.cpp',
+  'bon_suid.cpp',
+  'duration.cpp',
+  install: true,
+  include_directories : bonniepp_incdir,
+  dependencies : [ thread_dep ]
+)
+
+executable('getc_putc',
+  'getc_putc.cpp',
+  'bon_suid.cpp',
+  'duration.cpp',
+  'util.cpp',
+  install: true,
+  include_directories : bonniepp_incdir,
+)
+
+executable('getc_putc_helper',
+  'getc_putc_helper.cpp',
+  'duration.cpp',
+  install: true,
+  include_directories : bonniepp_incdir,
+)
+
+executable('generate_randfile',
+  'generate_randfile.cpp',
+  install: true,
+  include_directories : bonniepp_incdir,
+)
