diff --git a/meson.build b/meson.build
index 55395449cc081cb833b2e7ec2758c167ec5fd9e8..d6b2eb8cf890474b855d93fd0eec39bd75047e20 100644
--- a/meson.build
+++ b/meson.build
@@ -52,6 +52,12 @@ project(
 find_program('meson',
              version: '>=0.52.0')
 
+############################################################
+# require Ninja 1.8.2 or later
+#
+find_program('ninja',
+             version: '>=1.8.2')
+
 ############################################################
 # compiler object
 #
@@ -796,14 +802,17 @@ endif
 # We put the objects in this build target so they can be 
 # shared by the executable and library builds.
 #
-# We're not really interested in the static library that
-# results, but it gets the job done.
+# We're not really interested in the static libraries that
+# result, but they are joined later into one big library.
+#
+# Note: in theory this step is not required, we could just
+# link all the .o files. The problem is that there are
+# many .o files and this makes the command line too long
+# (even in Linux) which means the linking fails.
 #
-
 binary_c_subdir_objects = []
 
 src_subdirs = run_command('meson/source_directories.sh').stdout().strip().split('\n')
-
 src_root_sourcefiles = run_command('meson/source_files.sh','./src').stdout().strip().split('\n')
 
 # build the objects from each subdir into their own static library
@@ -841,8 +850,8 @@ foreach src_subdir : src_subdirs
             target_type : 'static_library',
             sources : [
                 precompiled_headers,
-               _sources,
-               _headers,
+                _sources,
+                _headers,
             ],
             include_directories: include_directories(incdirs),
             c_args : [
@@ -854,8 +863,12 @@ foreach src_subdir : src_subdirs
     endif
 endforeach
 
-# binary_c objects references all the binary_c_subdir_objects
-# as well as the src/*.c files 
+############################################################
+#
+# binary_c objects references all the binary_c_subdir_objects,
+# as well as the src/*.c files, so makes one static library
+# with everything in it.
+#
 binary_c_objects = build_target(
     'binary_c_objects',
     build_by_default: true,
@@ -945,7 +958,7 @@ binary_c_executable = executable(
 
 ############################################################
 # install both binary_c and libbinary_c.so in their legacy
-# locations
+# locations. run: ninja binary_c_install_legacy
 #
 binary_c_install_legacy = custom_target(
     'binary_c_install_legacy',