]> Kevux Git Server - fll/commitdiff
Update: Improve thread configuration, document modes in build settings files, and...
authorKevin Day <kevin@kevux.org>
Tue, 4 Apr 2023 23:48:45 +0000 (18:48 -0500)
committerKevin Day <kevin@kevux.org>
Tue, 4 Apr 2023 23:48:45 +0000 (18:48 -0500)
Improve the thread configuration to make it easier to enable or disable thread support.

Add documentation regarding the build modes supported in each of the build settings files.

Update the build scripts to better handle the now additional build modes.
The build scripts now use braces everywhere.
Doing this should make it easier to be compatible with other scripting engines such as ZSH.

91 files changed:
build/level_0/settings
build/level_1/settings
build/level_2/settings
build/monolithic/settings
build/scripts/bootstrap-example.sh
build/scripts/bootstrap.sh
build/scripts/install.sh
build/scripts/test.sh
build/stand_alone/byte_dump.settings
build/stand_alone/controller.settings
build/stand_alone/fake.settings
build/stand_alone/firewall.settings
build/stand_alone/fss_identify.settings
build/stand_alone/fss_status_code.settings
build/stand_alone/iki_read.settings
build/stand_alone/iki_write.settings
build/stand_alone/status_code.settings
build/stand_alone/utf8.settings
level_0/f_account/data/build/settings
level_0/f_capability/data/build/settings
level_0/f_color/data/build/settings
level_0/f_console/data/build/settings
level_0/f_control_group/data/build/settings
level_0/f_conversion/data/build/settings
level_0/f_directory/data/build/settings
level_0/f_environment/data/build/settings
level_0/f_execute/data/build/settings
level_0/f_file/data/build/settings
level_0/f_fss/data/build/settings
level_0/f_iki/data/build/settings
level_0/f_limit/data/build/settings
level_0/f_memory/data/build/settings
level_0/f_path/data/build/settings
level_0/f_pipe/data/build/settings
level_0/f_print/data/build/settings
level_0/f_serialize/data/build/settings
level_0/f_signal/data/build/settings
level_0/f_socket/data/build/settings
level_0/f_status/data/build/settings
level_0/f_status_string/data/build/settings
level_0/f_string/data/build/settings
level_0/f_thread/data/build/settings
level_0/f_type/data/build/settings
level_0/f_type_array/data/build/settings
level_0/f_utf/data/build/settings
level_1/fl_control_group/data/build/settings
level_1/fl_conversion/data/build/settings
level_1/fl_directory/data/build/settings
level_1/fl_environment/data/build/settings
level_1/fl_execute/data/build/settings
level_1/fl_fss/data/build/settings
level_1/fl_iki/data/build/settings
level_1/fl_print/data/build/settings
level_1/fl_signal/data/build/settings
level_1/fl_string/data/build/settings
level_1/fl_utf/data/build/settings
level_1/fl_utf_file/data/build/settings
level_2/fll_control_group/data/build/settings
level_2/fll_error/data/build/settings
level_2/fll_execute/data/build/settings
level_2/fll_file/data/build/settings
level_2/fll_fss/data/build/settings
level_2/fll_fss_status_string/data/build/settings
level_2/fll_iki/data/build/settings
level_2/fll_path/data/build/settings
level_2/fll_print/data/build/settings
level_2/fll_program/data/build/settings
level_2/fll_status_string/data/build/settings
level_3/byte_dump/data/build/settings
level_3/control/data/build/settings
level_3/controller/data/build/settings
level_3/fake/data/build/settings
level_3/firewall/data/build/settings
level_3/fss_basic_list_read/data/build/settings
level_3/fss_basic_list_write/data/build/settings
level_3/fss_basic_read/data/build/settings
level_3/fss_basic_write/data/build/settings
level_3/fss_embedded_list_read/data/build/settings
level_3/fss_embedded_list_write/data/build/settings
level_3/fss_extended_list_read/data/build/settings
level_3/fss_extended_list_write/data/build/settings
level_3/fss_extended_read/data/build/settings
level_3/fss_extended_write/data/build/settings
level_3/fss_identify/data/build/settings
level_3/fss_payload_read/data/build/settings
level_3/fss_payload_write/data/build/settings
level_3/fss_status_code/data/build/settings
level_3/iki_read/data/build/settings
level_3/iki_write/data/build/settings
level_3/status_code/data/build/settings
level_3/utf8/data/build/settings

index 9888db1a2974af7afaa538ab40165a51441dcec6..639ea29077ebd138e59b1534ec8515c6f962b4d9 100644 (file)
@@ -1,4 +1,18 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
+# Note: This adds "individual" and "monolithic" for consistency reasons. This should never use "individual" or "monolithic".
+#
 
 build_name fll_0
 
@@ -8,8 +22,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes level level_threadless clang test fanalyzer
-modes_default level
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default level thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -46,7 +60,7 @@ build_sources_library type_array/private-array_length.c type_array/private-cell.
 build_sources_library utf.c private-utf.c private-utf_alphabetic.c private-utf_combining.c private-utf_control.c private-utf_digit.c private-utf_emoji.c private-utf_numeric.c private-utf_phonetic.c private-utf_private.c private-utf_punctuation.c private-utf_subscript.c private-utf_superscript.c private-utf_symbol.c private-utf_unassigned.c private-utf_valid.c private-utf_whitespace.c private-utf_wide.c private-utf_word.c private-utf_zero_width.c
 build_sources_library utf/common.c utf/convert.c utf/dynamic.c utf/is.c utf/is_character.c utf/map.c utf/private-dynamic.c utf/private-map.c utf/private-map_multi.c utf/private-triple.c utf/private-string.c utf/static.c utf/string.c utf/triple.c
 
-build_sources_library-level thread.c private-thread.c thread/attribute.c thread/barrier.c thread/barrier_attribute.c thread/condition.c thread/condition_attribute.c thread/id.c thread/key.c thread/lock.c thread/lock_attribute.c thread/mutex.c thread/mutex_attribute.c thread/once.c thread/semaphore.c thread/set.c thread/spin.c
+build_sources_library-thread thread.c private-thread.c thread/attribute.c thread/barrier.c thread/barrier_attribute.c thread/condition.c thread/condition_attribute.c thread/id.c thread/key.c thread/lock.c thread/lock_attribute.c thread/mutex.c thread/mutex_attribute.c thread/once.c thread/semaphore.c thread/set.c thread/spin.c
 
 build_sources_headers account.h account/common.h
 build_sources_headers capability.h capability/common.h
@@ -76,7 +90,7 @@ build_sources_headers type_array.h type_array/common.h
 build_sources_headers type_array/array_length.h type_array/cell.h type_array/fll_id.h type_array/int8.h type_array/int16.h type_array/int32.h type_array/int64.h type_array/int128.h type_array/state.h type_array/status.h type_array/uint8.h type_array/uint16.h type_array/uint32.h type_array/uint64.h type_array/uint128.h
 build_sources_headers utf.h utf/common.h utf/convert.h utf/dynamic.h utf/is.h utf/is_character.h utf/map.h utf/map_multi.h utf/static.h utf/string.h utf/triple.h
 
-build_sources_headers-level thread.h thread/attribute.h thread/barrier.h thread/barrier_attribute.h thread/condition.h thread/condition_attribute.h thread/id.h thread/key.h thread/lock.h thread/lock_attribute.h thread/mutex.h thread/mutex_attribute.h thread/once.h thread/semaphore.h thread/set.h thread/spin.h
+build_sources_headers-thread thread.h thread/attribute.h thread/barrier.h thread/barrier_attribute.h thread/condition.h thread/condition_attribute.h thread/id.h thread/key.h thread/lock.h thread/lock_attribute.h thread/mutex.h thread/mutex_attribute.h thread/once.h thread/semaphore.h thread/set.h thread/spin.h
 
 build_script yes
 build_shared yes
@@ -107,13 +121,14 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L
 #defines -D_f_file_rename_use_renameat2_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
-defines-level_threadless -D_di_pthread_support_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
-flags-level -pthread
 
 flags_library -fPIC
 flags_object -fPIC
index b3cd3ca07efeebf2c24506bf19a65bd25d5347bd..c64392e0b6fb22d2706765dd716c384b78d05e1c 100644 (file)
@@ -1,4 +1,18 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
+# Note: This adds "individual" and "monolithic" for consistency reasons. This should never use "individual" or "monolithic".
+#
 
 build_name fll_1
 
@@ -8,8 +22,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes level level_threadless clang test fanalyzer
-modes_default level
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default level thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -19,7 +33,6 @@ build_language c
 
 build_libraries -lc -lcap
 build_libraries-level -lfll_0
-build_libraries-level_threadless -lfll_0
 
 build_sources_library control_group.c
 build_sources_library conversion.c private-conversion.c conversion/common.c
@@ -73,13 +86,14 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L
 
 #defines -D_di_libcap_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
-defines-level_threadless -D_di_pthread_support_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
-flags-level -pthread
 
 flags_library -fPIC
 flags_object -fPIC
index fe9df7273f59d1689c0dc1b3bfad26df8f65cfb5..a6f1644fd5ce046663541200265851ace80df377 100644 (file)
@@ -1,4 +1,18 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
+# Note: This adds "individual" and "monolithic" for consistency reasons. This should never use "individual" or "monolithic".
+#
 
 build_name fll_2
 
@@ -8,8 +22,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes level level_threadless clang test fanalyzer
-modes_default level
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default level thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -19,7 +33,6 @@ build_language c
 
 build_libraries -lc -lcap
 build_libraries-level -lfll_1 -lfll_0
-build_libraries-level_threadless -lfll_1 -lfll_0
 
 build_sources_library control_group.c
 build_sources_library error.c private-error.c error/common.c
@@ -72,13 +85,14 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L
 
 #defines -D_di_libcap_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
-defines-level_threadless -D_di_pthread_support_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
-flags-level -pthread
 
 flags_library -fPIC
 flags_object -fPIC
index 4afb32de9db966d6d589335f855e336150c2b4e2..66412d78d6a7c31126026fecd205970d6d325968 100644 (file)
@@ -1,4 +1,18 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
+# Note: This adds "individual" and "monolithic" for consistency reasons. This should never use "individual" or "monolithic".
+#
 
 build_name fll
 
@@ -8,8 +22,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes monolithic monolithic_threadless clang test fanalyzer
-modes_default monolithic
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default monolithic thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -70,7 +84,7 @@ build_sources_library level_2/print.c
 build_sources_library level_2/program.c level_2/program/common.c level_2/private-program.c
 build_sources_library level_2/status_string.c
 
-build_sources_library-monolithic level_0/thread.c level_0/private-thread.c level_0/thread/attribute.c level_0/thread/barrier.c level_0/thread/barrier_attribute.c level_0/thread/condition.c level_0/thread/condition_attribute.c level_0/thread/id.c level_0/thread/key.c level_0/thread/lock.c level_0/thread/lock_attribute.c level_0/thread/mutex.c level_0/thread/mutex_attribute.c level_0/thread/once.c level_0/thread/semaphore.c level_0/thread/set.c level_0/thread/spin.c
+build_sources_library-thread level_0/thread.c level_0/private-thread.c level_0/thread/attribute.c level_0/thread/barrier.c level_0/thread/barrier_attribute.c level_0/thread/condition.c level_0/thread/condition_attribute.c level_0/thread/id.c level_0/thread/key.c level_0/thread/lock.c level_0/thread/lock_attribute.c level_0/thread/mutex.c level_0/thread/mutex_attribute.c level_0/thread/once.c level_0/thread/semaphore.c level_0/thread/set.c level_0/thread/spin.c
 
 build_sources_headers level_0/account.h level_0/account/common.h
 build_sources_headers level_0/capability.h level_0/capability/common.h
@@ -125,7 +139,7 @@ build_sources_headers level_2/print.h
 build_sources_headers level_2/program.h level_2/program/common.h
 build_sources_headers level_2/status_string.h
 
-build_sources_headers-monolithic level_0/thread.h level_0/thread/attribute.h level_0/thread/barrier.h level_0/thread/barrier_attribute.h level_0/thread/condition.h level_0/thread/condition_attribute.h level_0/thread/id.h level_0/thread/key.h level_0/thread/lock.h level_0/thread/lock_attribute.h level_0/thread/mutex.h level_0/thread/mutex_attribute.h level_0/thread/once.h level_0/thread/semaphore.h level_0/thread/set.h level_0/thread/spin.h
+build_sources_headers-thread level_0/thread.h level_0/thread/attribute.h level_0/thread/barrier.h level_0/thread/barrier_attribute.h level_0/thread/condition.h level_0/thread/condition_attribute.h level_0/thread/id.h level_0/thread/key.h level_0/thread/lock.h level_0/thread/lock_attribute.h level_0/thread/mutex.h level_0/thread/mutex_attribute.h level_0/thread/once.h level_0/thread/semaphore.h level_0/thread/set.h level_0/thread/spin.h
 
 build_script yes
 build_shared yes
@@ -154,15 +168,16 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L
 
 #defines -D_di_libcap_
 #defines -D_f_file_rename_use_renameat2_
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
-defines-monolithic_threadless -D_di_pthread_support_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
-flags-monolithic -pthread
 
 flags_library -fPIC
 flags_object -fPIC
index 38c3d0bca4897a9e07496fd05621eb828262da20..7785060a592ebe17ef0ecf1f7cc99dd9397849a3 100644 (file)
 #   SHELL_ENGINE="zsh" zsh ./bootstrap-example.sh --help
 #
 
-if [[ $SHELL_ENGINE == "zsh" ]] ; then
+if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
   emulate ksh
 fi
 
-path_original="$PWD/"
+path_original="${PWD}/"
 path_work="${path_original}fll/"
 
 verbose=
@@ -57,196 +57,226 @@ mode_part=
 mode_parameter=
 mode_path=
 mode_value=
+build_mode=
+build_mode_extra_param_1=
+build_mode_extra_value_1=
+build_mode_extra_param_2=
+build_mode_extra_value_2=
 shell_command=bash
 suppress_first=""
 
-if [[ $SHELL_ENGINE == "zsh" ]] ; then
+if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
   shell_command=zsh
 fi
 
 let i=2
 p=
 
-while [[ $i -le $# ]] ; do
+while [[ ${i} -le $# ]] ; do
 
-  if [[ $SHELL_ENGINE == "zsh" ]] ; then
+  if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
     p=${(P)i}
   else
     p=${!i}
   fi
 
-  if [[ $p == "+d" ]] ; then
+  if [[ ${p} == "+d" ]] ; then
     color="+d"
-  elif [[ $p == "+l" ]] ; then
+  elif [[ ${p} == "+l" ]] ; then
     color="+l"
-  elif [[ $p == "+n" ]] ; then
+  elif [[ ${p} == "+n" ]] ; then
     color="+n"
-  elif [[ $p == "+Q" ]] ; then
+  elif [[ ${p} == "+Q" ]] ; then
     verbose="+Q"
     verbose_common=
-  elif [[ $p == "+E" ]] ; then
+  elif [[ ${p} == "+E" ]] ; then
     verbose="+E"
     verbose_common=
-  elif [[ $p == "+N" ]] ; then
+  elif [[ ${p} == "+N" ]] ; then
     verbose="+N"
     verbose_common=
-  elif [[ $p == "+V" ]] ; then
+  elif [[ ${p} == "+V" ]] ; then
     verbose="+V"
     verbose_common="-v"
-  elif [[ $p == "+D" ]] ; then
+  elif [[ ${p} == "+D" ]] ; then
     verbose="+D"
     verbose_common="-v"
-  elif [[ $p == "--enable-static" ]] ; then
+  elif [[ ${p} == "--enable-static" ]] ; then
     static="--enable-static"
-  elif [[ $p == "--disable-static" ]] ; then
+  elif [[ ${p} == "--disable-static" ]] ; then
     static="--disable-static"
-  elif [[ $p == "--enable-shared" ]] ; then
+  elif [[ ${p} == "--enable-shared" ]] ; then
     shared="--enable-shared"
-  elif [[ $p == "--disable-shared" ]] ; then
+  elif [[ ${p} == "--disable-shared" ]] ; then
     shared="--disable-shared"
-  elif [[ $p == "clang" ]] ; then
+  elif [[ ${p} == "clang" ]] ; then
     clang="-m clang"
-  elif [[ $p == "-w" || $p == "--work" ]] ; then
+  elif [[ ${p} == "-w" || ${p} == "--work" ]] ; then
     let i++
 
-    if [[ $i -le $# ]] ; then
-      path_work=$p
+    if [[ ${i} -le $# ]] ; then
+      path_work=${p}
     fi
   fi
 
   let i++
 done
 
-if [[ ! -d $path_work ]] ; then
-  mkdir $verbose_common -p $path_work
+if [[ ! -d ${path_work} ]] ; then
+  mkdir ${verbose_common} -p ${path_work}
 fi
 
-if [[ $1 == "individual" ]] ; then
-  $shell_command build/scripts/package.sh $verbose $color rebuild -i
+if [[ ${1} == "individual" ]] ; then
+  ${shell_command} build/scripts/package.sh ${verbose} ${color} rebuild -i
 
-  if [[ $? -eq 0 ]] ; then
+  if [[ ${?} -eq 0 ]] ; then
     for i in f_type f_status f_memory f_type_array f_string f_utf f_account f_capability f_color f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_path f_pipe f_print f_status_string f_serialize f_signal f_socket f_thread fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_print fl_signal fl_string fl_utf fl_utf_file fll_control_group fll_error fll_execute fll_file fll_fss fll_fss_status_string fll_iki fll_path fll_print fll_program fll_status_string ; do
-      echo && echo "Processing $i." &&
+      echo && echo "Processing ${i}." &&
 
-      cd package/individual/$i-$version/ &&
+      cd package/individual/${i}-${version}/ &&
 
-      $shell_command ./bootstrap.sh clean $verbose $color $suppress_first &&
+      ${shell_command} ./bootstrap.sh clean ${verbose} ${color} ${suppress_first} &&
 
-      $shell_command ./bootstrap.sh build $verbose $color $suppress_first $shared $static -w $path_work -m individual $clang &&
+      ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} -m individual -m individual_thread -m thread ${clang} &&
 
-      $shell_command ./install.sh $verbose $color $suppress_first $shared $static -w $path_work &&
+      ${shell_command} ./install.sh ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} &&
 
-      cd $path_original || break
+      cd ${path_original} || break
     done
   fi
 fi
 
-if [[ $1 == "level" ]] ; then
-  $shell_command build/scripts/package.sh $verbose $color rebuild -l &&
+if [[ ${1} == "level" ]] ; then
+  ${shell_command} build/scripts/package.sh ${verbose} ${color} rebuild -l &&
 
-  cd package/level/fll-level_0-$version/ &&
+  cd package/level/fll-level_0-${version}/ &&
 
-  $shell_command ./bootstrap.sh clean $verbose $color $suppress_first &&
+  ${shell_command} ./bootstrap.sh clean ${verbose} ${color} ${suppress_first} &&
 
-  $shell_command ./bootstrap.sh build $verbose $color $suppress_first $shared $static -w $path_work -m level $clang &&
+  ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} -m level -m thread ${clang} &&
 
-  $shell_command ./install.sh $verbose $color $suppress_first $shared $static -w $path_work &&
+  ${shell_command} ./install.sh ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} &&
 
-  cd $path_original &&
+  cd ${path_original} &&
 
-  cd package/level/fll-level_1-$version/ &&
+  cd package/level/fll-level_1-${version}/ &&
 
-  $shell_command ./bootstrap.sh clean $verbose $color $suppress_first &&
+  ${shell_command} ./bootstrap.sh clean ${verbose} ${color} ${suppress_first} &&
 
-  $shell_command ./bootstrap.sh build $verbose $color $suppress_first $shared $static -w $path_work -m level &&
+  ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} -m level -m thread &&
 
-  $shell_command ./install.sh $verbose $color $suppress_first $shared $static -w $path_work &&
+  ${shell_command} ./install.sh ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} &&
 
-  cd $path_original &&
+  cd ${path_original} &&
 
-  cd package/level/fll-level_2-$version/ &&
+  cd package/level/fll-level_2-${version}/ &&
 
-  $shell_command ./bootstrap.sh clean $verbose $color $suppress_first &&
+  ${shell_command} ./bootstrap.sh clean ${verbose} ${color} ${suppress_first} &&
 
-  $shell_command ./bootstrap.sh build $verbose $color $suppress_first $shared $static -w $path_work -m level &&
+  ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} -m level -m thread &&
 
-  $shell_command ./install.sh $verbose $color $suppress_first $shared $static -w $path_work
+  ${shell_command} ./install.sh ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work}
 fi
 
-if [[ $1 == "monolithic" ]] ; then
-  $shell_command build/scripts/package.sh $verbose $color rebuild -m &&
+if [[ ${1} == "monolithic" ]] ; then
+  ${shell_command} build/scripts/package.sh ${verbose} ${color} rebuild -m &&
 
-  cd package/monolithic/fll-$version/ &&
+  cd package/monolithic/fll-${version}/ &&
 
-  $shell_command ./bootstrap.sh clean $verbose $color $suppress_first &&
+  ${shell_command} ./bootstrap.sh clean ${verbose} ${color} ${suppress_first} &&
 
-  $shell_command ./bootstrap.sh build $verbose $color $suppress_first $shared $static -w $path_work -m monolithic $clang &&
+  ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} -m monolithic -m thread ${clang} &&
 
-  $shell_command ./install.sh $verbose $color $shared $suppress_first $static -w $path_work
+  ${shell_command} ./install.sh ${verbose} ${color} ${shared} ${suppress_first} ${static} -w ${path_work}
 fi
 
 # The following in an example on building individual projects.
 for mode_part in fake utf8 ; do
-  if [[ $1 == "$mode_part-individual" || $1 == "$mode_part-level" || $1 == "$mode_part-monolithic" || $1 == "$mode_part-stand_alone" ]] ; then
+  if [[ ${1} == "${mode_part}-individual" || ${1} == "${mode_part}-level" || ${1} == "${mode_part}-monolithic" || ${1} == "${mode_part}-stand_alone" ]] ; then
     break;
   fi
 
   mode_part=
 done
 
-if [[ $mode_part != "" ]] ; then
+if [[ ${mode_part} != "" ]] ; then
   mode_parameter="-p"
   mode_path="program"
   mode_value=
+  build_mode_extra_param_1=
+  build_mode_extra_value_1=
+  build_mode_extra_param_2=
+  build_mode_extra_value_2=
 
-  if [[ $1 == "$mode_part-individual" ]] ; then
+  if [[ ${1} == "${mode_part}-individual" ]] ; then
     build_mode="individual"
-  elif [[ $1 == "$mode_part-level" ]] ; then
+    build_mode_extra_param_1="-m"
+    build_mode_extra_value_1="individual_thread"
+    build_mode_extra_param_2="-m"
+    build_mode_extra_value_2="thread"
+  elif [[ ${1} == "${mode_part}-level" ]] ; then
     build_mode="level"
-  elif [[ $1 == "$mode_part-monolithic" ]] ; then
+    build_mode_extra_param_1="-m"
+    build_mode_extra_value_1="thread"
+  elif [[ ${1} == "${mode_part}-monolithic" ]] ; then
     build_mode="monolithic"
-  elif [[ $1 == "$mode_part-stand_alone" ]] ; then
+    build_mode_extra_param_1="-m"
+    build_mode_extra_value_1="thread"
+  elif [[ ${1} == "${mode_part}-stand_alone" ]] ; then
     build_mode="stand_alone"
     mode_path="stand_alone"
     mode_parameter="-S"
-    mode_value="$mode_part"
+    mode_value="${mode_part}"
+    build_mode_extra_param_1="-m"
+    build_mode_extra_value_1="thread"
   fi
 
-  $shell_command build/scripts/package.sh $verbose $color rebuild $mode_parameter $mode_value &&
+  ${shell_command} build/scripts/package.sh ${verbose} ${color} rebuild ${mode_parameter} ${mode_value} &&
 
-  cd package/$mode_path/$mode_part-$version/ &&
+  cd package/${mode_path}/${mode_part}-${version}/ &&
 
-  $shell_command ./bootstrap.sh clean $verbose $color $suppress_first &&
+  ${shell_command} ./bootstrap.sh clean ${verbose} ${color} ${suppress_first} &&
 
-  $shell_command ./bootstrap.sh build $verbose $color $suppress_first $shared $static -w $path_work -m $build_mode &&
+  ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} -m ${build_mode} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} &&
 
-  $shell_command ./install.sh $verbose $color $suppress_first $shared $static -w $path_work
+  ${shell_command} ./install.sh ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work}
 
 # The following in an example on building all FLL program projects using the project bootstrapped from above.
-elif [[ $1 == "programs-individual" || $1 == "programs-level" || $1 == "programs-monolithic" ]] ; then
-  if [[ $1 == "programs-individual" ]] ; then
+elif [[ ${1} == "programs-individual" || ${1} == "programs-level" || ${1} == "programs-monolithic" ]] ; then
+  build_mode_extra_param_1=
+  build_mode_extra_value_1=
+  build_mode_extra_param_2=
+  build_mode_extra_value_2=
+
+  if [[ ${1} == "programs-individual" ]] ; then
     build_mode="individual"
-  elif [[ $1 == "programs-level" ]] ; then
+    build_mode_extra_param_1="-m"
+    build_mode_extra_value_1="individual_thread"
+    build_mode_extra_param_2="-m"
+    build_mode_extra_value_2="thread"
+  elif [[ ${1} == "programs-level" ]] ; then
     build_mode="level"
-  elif [[ $1 == "programs-monolithic" ]] ; then
+  elif [[ ${1} == "programs-monolithic" ]] ; then
     build_mode="monolithic"
+    build_mode_extra_param_1="-m"
+    build_mode_extra_value_1="thread"
   fi
 
-  $shell_command build/scripts/package.sh $verbose $color rebuild -p &&
+  ${shell_command} build/scripts/package.sh ${verbose} ${color} rebuild -p &&
 
   cd package/program
 
-  if [[ $? -eq 0 ]] ; then
+  if [[ ${?} -eq 0 ]] ; then
 
     for i in * ; do
 
-      cd ${path_original}package/program/$i &&
+      cd ${path_original}package/program/${i} &&
 
-      $shell_command ./bootstrap.sh clean $verbose $color $suppress_first &&
+      ${shell_command} ./bootstrap.sh clean ${verbose} ${color} ${suppress_first} &&
 
-      $shell_command ./bootstrap.sh build $verbose $color $suppress_first $shared $static -w $path_work -m $build_mode &&
+      ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} -m ${build_mode} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} &&
 
-      $shell_command ./install.sh $verbose $color $suppress_first $shared $static -w $path_work ||
+      ${shell_command} ./install.sh ${verbose} ${color} ${suppress_first} ${shared} ${static} -w ${path_work} ||
 
       break
     done
@@ -255,11 +285,11 @@ elif [[ $1 == "programs-individual" || $1 == "programs-level" || $1 == "programs
     echo "ERROR: failed to change directory to 'package/program'."
     echo
   fi
-elif [[ $1 != "individual" && $1 != "level" && $1 != "monolithic" ]] ; then
+elif [[ ${1} != "individual" && ${1} != "level" && ${1} != "monolithic" ]] ; then
   echo
-  echo "ERROR: '$1' is not a supported build mode."
+  echo "ERROR: '${1}' is not a supported build mode."
   echo
 fi
 
 # Regardless of what happens always return to the starting directory.
-cd $path_original
+cd ${path_original}
index 7110b139cd33053e7a8100bf2873a55ec5a74a8f..0f79dbce989b6b2d21073a6c644a8df575c9bafc 100644 (file)
 
 bootstrap_main() {
 
-  if [[ $SHELL_ENGINE == "zsh" ]] ; then
+  if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
     emulate ksh
   fi
 
   local public_name="Simple FLL Bootstrap Script"
   local system_name=bootstrap
-  local called_name=$(basename $0)
+  local called_name=$(basename ${0})
   local version=0.6.5
 
   local grab_next=
@@ -84,105 +84,105 @@ bootstrap_main() {
   if [[ $# -gt 0 ]] ; then
     t=$#
 
-    while [[ $i -lt $t ]] ; do
-      let i=$i+1
+    while [[ ${i} -lt ${t} ]] ; do
+      let i=${i}+1
 
-      if [[ $SHELL_ENGINE == "zsh" ]] ; then
+      if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
         p=${(P)i}
       else
         p=${!i}
       fi
 
-      if [[ $grab_next == "" ]] ; then
-        if [[ $p == "-h" || $p == "--help" ]] ; then
+      if [[ ${grab_next} == "" ]] ; then
+        if [[ ${p} == "-h" || ${p} == "--help" ]] ; then
           do_help=yes
-        elif [[ $p == "+C" || $p == "++copyright" ]] ; then
+        elif [[ ${p} == "+C" || ${p} == "++copyright" ]] ; then
           do_copyright="yes"
-        elif [[ $p == "+d" || $p == "++dark" ]] ; then
+        elif [[ ${p} == "+d" || ${p} == "++dark" ]] ; then
           do_color=dark
           context="+d"
-        elif [[ $p == "+l" || $p == "++light" ]] ; then
+        elif [[ ${p} == "+l" || ${p} == "++light" ]] ; then
           do_color=light
           context="+l"
-        elif [[ $p == "+n" || $p == "++no_color" ]] ; then
+        elif [[ ${p} == "+n" || ${p} == "++no_color" ]] ; then
           do_color=none
           context="+n"
-        elif [[ $p == "+Q" || $p == "++quiet" ]] ; then
+        elif [[ ${p} == "+Q" || ${p} == "++quiet" ]] ; then
           verbosity="quiet"
           verbose="+Q"
           verbose_common=
-        elif [[ $p == "+E" || $p == "++error" ]] ; then
+        elif [[ ${p} == "+E" || ${p} == "++error" ]] ; then
           verbosity="error"
           verbose="+E"
           verbose_common=
-        elif [[ $p == "+N" || $p == "++normal" ]] ; then
+        elif [[ ${p} == "+N" || ${p} == "++normal" ]] ; then
           verbosity=
           verbose="+N"
           verbose_common=
-        elif [[ $p == "+V" || $p == "++verbose" ]] ; then
+        elif [[ ${p} == "+V" || ${p} == "++verbose" ]] ; then
           verbosity="verbose"
           verbose="+V"
           verbose_common="-v"
-        elif [[ $p == "+D" || $p == "++debug" ]] ; then
+        elif [[ ${p} == "+D" || ${p} == "++debug" ]] ; then
           verbosity="debug"
           verbose="+D"
           verbose_common="-v"
-        elif [[ $p == "+v" || $p == "++version" ]] ; then
-          echo $version
+        elif [[ ${p} == "+v" || ${p} == "++version" ]] ; then
+          echo ${version}
           return 0
-        elif [[ $p == "-d" || $p == "--define" ]] ; then
+        elif [[ ${p} == "-d" || ${p} == "--define" ]] ; then
           grab_next=define_extra
-        elif [[ $p == "-m" || $p == "--mode" ]] ; then
+        elif [[ ${p} == "-m" || ${p} == "--mode" ]] ; then
           grab_next="mode"
-        elif [[ $p == "-p" || $p == "--process" ]] ; then
+        elif [[ ${p} == "-p" || ${p} == "--process" ]] ; then
           grab_next="process"
-        elif [[ $p == "-s" || $p == "--settings" ]] ; then
+        elif [[ ${p} == "-s" || ${p} == "--settings" ]] ; then
           grab_next=settings_name
-        elif [[ $p == "-b" || $p == "--build" ]] ; then
+        elif [[ ${p} == "-b" || ${p} == "--build" ]] ; then
           grab_next=path_build
-        elif [[ $p == "-d" || $p == "--data" ]] ; then
+        elif [[ ${p} == "-d" || ${p} == "--data" ]] ; then
           grab_next=path_data
-        elif [[ $p == "-S" || $p == "--sources" ]] ; then
+        elif [[ ${p} == "-S" || ${p} == "--sources" ]] ; then
           grab_next=path_sources
-        elif [[ $p == "-w" || $p == "--work" ]] ; then
+        elif [[ ${p} == "-w" || ${p} == "--work" ]] ; then
           grab_next=path_work
-        elif [[ $p == "--enable-doc" ]] ; then
+        elif [[ ${p} == "--enable-doc" ]] ; then
           enable_documentation="yes"
-        elif [[ $p == "--disable-doc" ]] ; then
+        elif [[ ${p} == "--disable-doc" ]] ; then
           enable_documentation="no"
-        elif [[ $p == "--enable-shared" ]] ; then
+        elif [[ ${p} == "--enable-shared" ]] ; then
           enable_shared="yes"
-        elif [[ $p == "--disable-shared" ]] ; then
+        elif [[ ${p} == "--disable-shared" ]] ; then
           enable_shared="no"
-        elif [[ $p == "--enable-static" ]] ; then
+        elif [[ ${p} == "--enable-static" ]] ; then
           enable_static="yes"
-        elif [[ $p == "--disable-static" ]] ; then
+        elif [[ ${p} == "--disable-static" ]] ; then
           enable_static="no"
-        elif [[ $operation == "" ]] ; then
-          operation="$p"
-        elif [[ $operation_failure == "" ]] ; then
+        elif [[ ${operation} == "" ]] ; then
+          operation="${p}"
+        elif [[ ${operation_failure} == "" ]] ; then
           operation_failure=fail-multiple
         fi
       else
-        if [[ $grab_next == "define_extra" ]] ; then
+        if [[ ${grab_next} == "define_extra" ]] ; then
           define_extra="${define_extra}${p} "
-        elif [[ $grab_next == "mode" ]] ; then
-          modes="$modes$p "
-        elif [[ $grab_next == "process" ]] ; then
-          process="$p"
-        elif [[ $grab_next == "settings_name" ]] ; then
-          settings_name="$p"
-        elif [[ $grab_next == "path_build" ]] ; then
-          path_build=$(echo $p | sed -e 's|//*|/|g' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "mode" ]] ; then
+          modes="${modes}${p} "
+        elif [[ ${grab_next} == "process" ]] ; then
+          process="${p}"
+        elif [[ ${grab_next} == "settings_name" ]] ; then
+          settings_name="${p}"
+        elif [[ ${grab_next} == "path_build" ]] ; then
+          path_build=$(echo ${p} | sed -e 's|//*|/|g' -e 's|/*$|/|')
           override_path_build="y"
-        elif [[ $grab_next == "path_data" ]] ; then
-          path_data=$(echo $p | sed -e 's|//*|/|g' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "path_data" ]] ; then
+          path_data=$(echo ${p} | sed -e 's|//*|/|g' -e 's|/*$|/|')
           override_path_data="y"
-        elif [[ $grab_next == "path_sources" ]] ; then
-          path_sources=$(echo $p | sed -e 's|//*|/|g' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "path_sources" ]] ; then
+          path_sources=$(echo ${p} | sed -e 's|//*|/|g' -e 's|/*$|/|')
           override_path_sources="y"
-        elif [[ $grab_next == "path_work" ]] ; then
-          path_work=$(echo $p | sed -e 's|//*|/|g' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "path_work" ]] ; then
+          path_work=$(echo ${p} | sed -e 's|//*|/|g' -e 's|/*$|/|')
           override_path_work="y"
         fi
 
@@ -193,19 +193,19 @@ bootstrap_main() {
     p=
   fi
 
-  if [[ $verbosity == "quiet" ]] ; then
+  if [[ ${verbosity} == "quiet" ]] ; then
     print_line_first="no"
     print_line_last="no"
   fi
 
   # If the settings_name has a directory separator, then assume it is a path to the settings file.
-  if [[ $(echo $settings_name | grep -s -o '/') == "" ]] ; then
-    settings_file="${path_data}build/$settings_name"
+  if [[ $(echo ${settings_name} | grep -s -o '/') == "" ]] ; then
+    settings_file="${path_data}build/${settings_name}"
   else
-    settings_file="$settings_name"
+    settings_file="${settings_name}"
 
     # Extract the settings name from the path.
-    settings_name=$(basename $settings_name)
+    settings_name=$(basename ${settings_name})
   fi
 
   settings_defines="${path_data}build/defines"
@@ -215,14 +215,14 @@ bootstrap_main() {
 
   bootstrap_handle_colors
 
-  if [[ $do_help == "yes" ]] ; then
+  if [[ ${do_help} == "yes" ]] ; then
     bootstrap_help
     bootstrap_cleanup
 
     return 0
   fi
 
-  if [[ $do_copyright == "yes" ]] ; then
+  if [[ ${do_copyright} == "yes" ]] ; then
     bootstrap_copyright
     bootstrap_cleanup
 
@@ -232,10 +232,10 @@ bootstrap_main() {
   bootstrap_load_settings
 
   # FSS and Featurless Make supports more flexible mode names, but for the purpose of this bootstrap script and avoiding potential problems, keep it simple.
-  if [[ $modes != "" ]] ; then
-    for mode in $modes ; do
-      if [[ $(echo "$mode" | grep -s -o "[^_[:alnum:]+-]") != "" ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${modes} != "" ]] ; then
+    for mode in ${modes} ; do
+      if [[ $(echo "${mode}" | grep -s -o "[^_[:alnum:]+-]") != "" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           bootstrap_print_first
 
           echo -e "${c_error}ERROR: The mode ${c_notice}${mode}${c_error} includes invalid characters, only alphanumeric, underscore, minus, and plus are allowed.${c_reset}"
@@ -265,17 +265,17 @@ bootstrap_main() {
   fi
 
   bootstrap_id "build_name"
-  project_built="${path_build_stage}${variables[$key]}"
-  if [[ $process != "" ]] ; then
-    project_built="${project_built}-$process"
+  project_built="${path_build_stage}${variables[${key}]}"
+  if [[ ${process} != "" ]] ; then
+    project_built="${project_built}-${process}"
   fi
 
   project_built_shared="${project_built}.shared"
   project_built_static="${project_built}.static"
 
-  if [[ $modes_available == "" ]] ; then
-    if [[ $modes != "" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${modes_available} == "" ]] ; then
+    if [[ ${modes} != "" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: The mode(s) ${c_notice}${modes}${c_error} are not a valid modes, there are no available modes.${c_error}${c_reset}"
@@ -289,25 +289,25 @@ bootstrap_main() {
     fi
   else
     let i=0
-    for m in $modes_available ; do
+    for m in ${modes_available} ; do
 
-      for mode in $modes ; do
+      for mode in ${modes} ; do
 
-        if [[ "$mode" == "$m" ]] ; then
+        if [[ "${mode}" == "${m}" ]] ; then
           let i=1
 
           break
         fi
       done
 
-      if [[ $i -eq 1 ]] ; then break ; fi
+      if [[ ${i} -eq 1 ]] ; then break ; fi
     done
 
-    if [[ $i -eq 0 ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${i} -eq 0 ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
-        echo -e "${c_error}ERROR: The mode(s) ${c_notice}${modes}${c_error} are not valid modes, they must be one of: ${c_notice}$modes_available${c_error}.${c_reset}"
+        echo -e "${c_error}ERROR: The mode(s) ${c_notice}${modes}${c_error} are not valid modes, they must be one of: ${c_notice}${modes_available}${c_error}.${c_reset}"
 
         bootstrap_print_last
       fi
@@ -319,8 +319,8 @@ bootstrap_main() {
   fi
 
   bootstrap_id "build_name"
-  if [[ ${variables[$key]} == "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${variables[${key}]} == "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The required setting '${c_notice}build_name${c_error}' is not specified in the build settings file '${c_notice}${settings_file}${c_error}'.${c_reset}"
@@ -334,8 +334,8 @@ bootstrap_main() {
   fi
 
   bootstrap_id "version_major"
-  if [[ ${variables[$key]} == "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${variables[${key}]} == "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The required setting '${c_notice}version_major${c_error}' is not specified in the build settings file '${c_notice}${settings_file}${c_error}'.${c_reset}"
@@ -349,8 +349,8 @@ bootstrap_main() {
   fi
 
   bootstrap_id "version_minor"
-  if [[ ${variables[$key]} == "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${variables[${key}]} == "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The required setting '${c_notice}version_minor${c_error}' is not specified in the build settings file '${c_notice}${settings_file}${c_error}'.${c_reset}"
@@ -364,8 +364,8 @@ bootstrap_main() {
   fi
 
   bootstrap_id "version_micro"
-  if [[ ${variables[$key]} == "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${variables[${key}]} == "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The required setting '${c_notice}version_micro${c_error}' is not specified in the build settings file '${c_notice}${settings_file}${c_error}'.${c_reset}"
@@ -378,8 +378,8 @@ bootstrap_main() {
     return 1
   fi
 
-  if [[ $path_data == "" || ! -d $path_data ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${path_data} == "" || ! -d ${path_data} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The data directory ${c_notice}${path_data}${c_error} is not a valid directory.${c_reset}"
@@ -392,8 +392,8 @@ bootstrap_main() {
     return 1
   fi
 
-  if [[ $path_sources == "" || ! -d $path_sources ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${path_sources} == "" || ! -d ${path_sources} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The sources directory ${c_notice}${path_sources}${c_error} is not a valid directory.${c_reset}"
@@ -406,8 +406,8 @@ bootstrap_main() {
     return 1
   fi
 
-  if [[ $path_work != "" && ! -d $path_work ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${path_work} != "" && ! -d ${path_work} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The work directory ${c_notice}${path_work}${c_error} is not a valid directory.${c_reset}"
@@ -421,25 +421,25 @@ bootstrap_main() {
   fi
 
   bootstrap_id "build_name"
-  project_label="${variables[$key]}"
+  project_label="${variables[${key}]}"
 
   bootstrap_id "version_major"
-  if [[ "${variables[$key]}" != "" ]] ; then
-    project_label="${project_label}-${variables[$key]}"
+  if [[ "${variables[${key}]}" != "" ]] ; then
+    project_label="${project_label}-${variables[${key}]}"
 
     bootstrap_id "version_minor"
-    if [[ "${variables[$key]}" != "" ]] ; then
-      project_label="${project_label}.${variables[$key]}"
+    if [[ "${variables[${key}]}" != "" ]] ; then
+      project_label="${project_label}.${variables[${key}]}"
 
       bootstrap_id "version_micro"
-      if [[ "${variables[$key]}" != "" ]] ; then
-        project_label="${project_label}.${variables[$key]}"
+      if [[ "${variables[${key}]}" != "" ]] ; then
+        project_label="${project_label}.${variables[${key}]}"
       fi
     fi
   fi
 
-  if [[ $operation_failure == "fail-multiple" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${operation_failure} == "fail-multiple" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: Only one operation may be specified at a time.${c_reset}"
@@ -450,11 +450,11 @@ bootstrap_main() {
     bootstrap_cleanup
 
     return 1
-  elif [[ $operation == "build" ]] ; then
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  elif [[ ${operation} == "build" ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       bootstrap_print_first
 
-      echo -e "${c_highlight}Building:${c_reset} ${c_notice}${project_label}${c_highlight}.${c_reset}"
+      echo -e "${c_highlight}Building:${c_reset} ${c_notice}${project_label}${c_highlight} with modes: ${c_notice}${modes}${c_highlight}.${c_reset}"
     fi
 
     if [[ ! -f ${project_built}.prepared ]] ; then
@@ -474,16 +474,16 @@ bootstrap_main() {
 
       return 1
     fi
-  elif [[ $operation == "clean" ]] ; then
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  elif [[ ${operation} == "clean" ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_highlight}Cleaning Project:${c_reset} ${c_notice}${project_label}${c_highlight}.${c_reset}"
     fi
 
     bootstrap_operation_clean
-  elif [[ $operation == "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  elif [[ ${operation} == "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: No operation was given.${c_reset}"
@@ -493,7 +493,7 @@ bootstrap_main() {
 
     return 1
   else
-    if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The operation ${c_notice}${operation}${c_error} was not recognized.${c_reset}"
@@ -506,8 +506,8 @@ bootstrap_main() {
     return 1
   fi
 
-  if [[ $verbosity != "quiet" ]] ; then
-    if [[ $failure != "" || $verbosity != "error" ]] ; then
+  if [[ ${verbosity} != "quiet" ]] ; then
+    if [[ ${failure} != "" || ${verbosity} != "error" ]] ; then
       bootstrap_print_last
     fi
   fi
@@ -519,14 +519,14 @@ bootstrap_main() {
 
 bootstrap_handle_colors() {
 
-  if [[ $do_color == "light" ]] ; then
+  if [[ ${do_color} == "light" ]] ; then
     c_error="\\033[1;31m"
     c_warning="\\033[0;31m"
     c_title="\\033[1;34m"
     c_highlight="\\033[0;34m"
     c_notice="\\033[0;01m"
     c_important="\\033[0;35m"
-  elif [[ $do_color == "none" ]] ; then
+  elif [[ ${do_color} == "none" ]] ; then
     c_reset=
     c_title=
     c_error=
@@ -600,7 +600,7 @@ bootstrap_copyright() {
 
 bootstrap_id() {
 
-  case $1 in
+  case ${1} in
     "build_compiler") let key=0;;
     "build_indexer") let key=1;;
     "build_indexer_arguments") let key=2;;
@@ -835,15 +835,15 @@ bootstrap_load_settings() {
   local value=
 
   if [[ ! -d ${path_data}build/ ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: No build settings directory '${c_notice}${path_data}build/${c_error}' could not be found or is not a valid directory.${c_reset}"
     fi
 
     let failure=1
-  elif [[ ! -f $settings_file ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  elif [[ ! -f ${settings_file} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: No settings file ${c_notice}${settings_file}${c_error} could not be found or is not a valid file.${c_reset}"
@@ -852,61 +852,61 @@ bootstrap_load_settings() {
     let failure=1
   fi
 
-  if [[ $failure != "" ]] ; then
+  if [[ ${failure} != "" ]] ; then
     return 1
   fi
 
   # Get available modes.
-  if [[ $modes_available == "" ]] ; then
-    modes_available=$(grep -s -o "^[[:space:]]*modes[[:space:]].*\$" $settings_file | sed -e "s|^[[:space:]]*modes\>||" -e 's|^[[:space:]]*||')
+  if [[ ${modes_available} == "" ]] ; then
+    modes_available=$(grep -s -o "^[[:space:]]*modes[[:space:]].*\$" ${settings_file} | sed -e "s|^[[:space:]]*modes\>||" -e 's|^[[:space:]]*||')
   fi
 
   # Get default modes.
-  modes_default=$(grep -s -o "^[[:space:]]*modes_default[[:space:]].*\$" $settings_file | sed -e "s|^[[:space:]]*modes_default\>||" -e 's|^[[:space:]]*||')
+  modes_default=$(grep -s -o "^[[:space:]]*modes_default[[:space:]].*\$" ${settings_file} | sed -e "s|^[[:space:]]*modes_default\>||" -e 's|^[[:space:]]*||')
 
   # Use default modes if no mode is explicitly provided.
-  if [[ $modes == "" ]] ; then
-    modes=$modes_default
+  if [[ ${modes} == "" ]] ; then
+    modes=${modes_default}
   fi
 
   # Single value Objects.
   for i in build_compiler build_indexer build_language build_name build_script build_shared build_sources_object build_sources_object_shared build_sources_object_static build_static has_path_standard path_headers path_language path_library_script path_library_shared path_library_static path_object_script path_object_shared path_object_static path_program_script path_program_shared path_program_static path_sources path_sources_object preserve_path_headers process_post process_pre search_exclusive search_shared search_static version_file version_major version_major_prefix version_micro version_micro_prefix version_minor version_minor_prefix version_nano version_nano_prefix version_target ; do
 
-    bootstrap_id "$i"
+    bootstrap_id "${i}"
 
-    if [[ $key == "" ]] ; then
-      if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+    if [[ ${key} == "" ]] ; then
+      if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
         echo -e "${c_warning}WARNING: Failed to find index for '${c_notice}${i}${c_warning}' when calling ${c_notice}bootstrap_id()${c_warning}.${c_reset}"
       fi
 
       key=
       bootstrap_id "has-${i}"
-      if [[ $key != "" ]] ; then
-        variables[$key]="no"
+      if [[ ${key} != "" ]] ; then
+        variables[${key}]="no"
       fi
     else
-      if [[ $(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" $settings_file) != "" ]] ; then
-        value=$(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" $settings_file | sed -e "s|^[[:space:]]*${i}\>||" -e 's|^[[:space:]]*||')
-        variables[$key]="$value"
+      if [[ $(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" ${settings_file}) != "" ]] ; then
+        value=$(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" ${settings_file} | sed -e "s|^[[:space:]]*${i}\>||" -e 's|^[[:space:]]*||')
+        variables[${key}]="${value}"
 
         key=
         bootstrap_id "has-${i}"
-        if [[ $key != "" ]] ; then
-          variables[$key]="yes"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="yes"
         fi
-      elif [[ $(grep -s -o "^[[:space:]]*${i}\$" $settings_file) != "" ]] ; then
-        variables[$key]=""
+      elif [[ $(grep -s -o "^[[:space:]]*${i}\$" ${settings_file}) != "" ]] ; then
+        variables[${key}]=""
 
         key=
         bootstrap_id "has-${i}"
-        if [[ $key != "" ]] ; then
-          variables[$key]="yes"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="yes"
         fi
       else
         key=
         bootstrap_id "has-${i}"
-        if [[ $key != "" ]] ; then
-          variables[$key]="no"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="no"
         fi
       fi
     fi
@@ -915,41 +915,41 @@ bootstrap_load_settings() {
   # Multi value Objects.
   for i in build_indexer_arguments build_libraries build_libraries_shared build_libraries_static build_objects_library build_objects_library_shared build_objects_library_static build_objects_program build_objects_program_shared build_objects_program_static build_sources_documentation build_sources_headers build_sources_headers_shared build_sources_headers_static build_sources_library build_sources_library_shared build_sources_library_static build_sources_program build_sources_program_shared build_sources_program_static build_sources_script build_sources_setting defines defines_library defines_library_shared defines_library_static defines_object defines_object_shared defines_object_static defines_program defines_program_shared defines_program_static defines_shared defines_static environment flags flags_library flags_library_shared flags_library_static flags_object flags_object_shared flags_object_static flags_program flags_program_shared flags_program_static flags_shared flags_static ; do
 
-    bootstrap_id "$i"
+    bootstrap_id "${i}"
 
-    if [[ $key == "" ]] ; then
-      if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+    if [[ ${key} == "" ]] ; then
+      if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
         echo -e "${c_warning}WARNING: Failed to find index for '${c_notice}${i}${c_warning}' when calling ${c_notice}bootstrap_id()${c_warning}.${c_reset}"
       fi
 
       key=
       bootstrap_id "has-${i}"
-      if [[ $key != "" ]] ; then
-        variables[$key]="no"
+      if [[ ${key} != "" ]] ; then
+        variables[${key}]="no"
       fi
     else
-      if [[ $(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" $settings_file) != "" ]] ; then
-        value=$(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" $settings_file | sed -e "s|^[[:space:]]*${i}\>||" -e 's|^[[:space:]]*||')
-        variables[$key]="$value"
+      if [[ $(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" ${settings_file}) != "" ]] ; then
+        value=$(grep -s -o "^[[:space:]]*${i}[[:space:]].*\$" ${settings_file} | sed -e "s|^[[:space:]]*${i}\>||" -e 's|^[[:space:]]*||')
+        variables[${key}]="${variables[${key}]}${value} "
 
         key=
         bootstrap_id "has-${i}"
-        if [[ $key != "" ]] ; then
-          variables[$key]="yes"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="yes"
         fi
-      elif [[ $(grep -s -o "^[[:space:]]*${i}\$" $settings_file) != "" ]] ; then
-        variables[$key]=""
+      elif [[ $(grep -s -o "^[[:space:]]*${i}\$" ${settings_file}) != "" ]] ; then
+        variables[${key}]=""
 
         key=
         bootstrap_id "has-${i}"
-        if [[ $key != "" ]] ; then
-          variables[$key]="yes"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="yes"
         fi
       else
         key=
         bootstrap_id "has-${i}"
-        if [[ $key != "" ]] ; then
-          variables[$key]="no"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="no"
         fi
       fi
     fi
@@ -962,46 +962,47 @@ bootstrap_load_settings_mode() {
   local m=
   local value=
 
-  for m in $modes ; do
+  for m in ${modes} ; do
 
     # Single value Objects.
     for i in build_compiler build_indexer build_language build_name build_script build_shared build_sources_object build_sources_object_shared build_sources_object_static build_static has_path_standard path_headers path_language path_library_script path_library_shared path_library_static path_object_script path_object_shared path_object_static path_program_script path_program_shared path_program_static path_sources path_sources_object preserve_path_headers process_post process_pre search_exclusive search_shared search_static version_file version_major version_major_prefix version_micro version_micro_prefix version_minor version_minor_prefix version_nano version_nano_prefix version_target ; do
 
       bootstrap_id "${i}-mode"
 
-      if [[ $key == "" ]] ; then
-        if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
-          echo -e "${c_warning}WARNING: Failed to find index for '${c_notice}$i-$m${c_warning}' when calling ${c_notice}bootstrap_id()${c_warning}.${c_reset}"
+      if [[ ${key} == "" ]] ; then
+        if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
+          echo -e "${c_warning}WARNING: Failed to find index for '${c_notice}${i}-${m}${c_warning}' when calling ${c_notice}bootstrap_id()${c_warning}.${c_reset}"
         fi
 
         key=
         bootstrap_id "has-${i}-mode"
-        if [[ $key != "" ]] ; then
-          variables[$key]="no"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="no"
         fi
       else
-        if [[ $(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" $settings_file) != "" ]] ; then
-          value=$(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" $settings_file | sed -e "H;/${i}-${m}/h;\$!d;x" | sed -e "s|^[[:space:]]*${i}-${m}\>||" -e 's|^[[:space:]]*||')
-          variables[$key]="$value"
+
+        if [[ $(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" ${settings_file}) != "" ]] ; then
+          value=$(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" ${settings_file} | sed -e "H;/${i}-${m}/h;\$!d;x" | sed -e "s|^[[:space:]]*${i}-${m}\>||" -e 's|^[[:space:]]*||')
+          variables[${key}]="${value}"
 
           key=
           bootstrap_id "has-${i}-mode"
-          if [[ $key != "" ]] ; then
-            variables[$key]="yes"
+          if [[ ${key} != "" ]] ; then
+            variables[${key}]="yes"
           fi
-        elif [[ $(grep -s -o "^[[:space:]]*${i}-${m}\$" $settings_file) != "" ]] ; then
-          variables[$key]=""
+        elif [[ $(grep -s -o "^[[:space:]]*${i}-${m}\$" ${settings_file}) != "" ]] ; then
+          variables[${key}]=""
 
           key=
           bootstrap_id "has-${i}-mode"
-          if [[ $key != "" ]] ; then
-            variables[$key]="yes"
+          if [[ ${key} != "" ]] ; then
+            variables[${key}]="yes"
           fi
         else
           key=
           bootstrap_id "has-${i}-mode"
-          if [[ $key != "" ]] ; then
-            variables[$key]="no"
+          if [[ ${key} != "" ]] ; then
+            variables[${key}]="no"
           fi
         fi
       fi
@@ -1012,39 +1013,39 @@ bootstrap_load_settings_mode() {
 
       bootstrap_id "${i}-mode"
 
-      if [[ $key == "" ]] ; then
-        if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+      if [[ ${key} == "" ]] ; then
+        if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
           echo -e "${c_warning}WARNING: Failed to find index for '${c_notice}${i}-${m}${c_warning}' when calling ${c_notice}bootstrap_id()${c_warning}.${c_reset}"
         fi
 
         key=
         bootstrap_id "has-${i}-mode"
-        if [[ $key != "" ]] ; then
-          variables[$key]="no"
+        if [[ ${key} != "" ]] ; then
+          variables[${key}]="no"
         fi
       else
-        if [[ $(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" $settings_file) != "" ]] ; then
-          value=$(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" $settings_file | sed -e "s|^[[:space:]]*${i}-${m}\>||" -e 's|^[[:space:]]*||')
-          variables[$key]="$value"
+        if [[ $(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" ${settings_file}) != "" ]] ; then
+          value=$(grep -s -o "^[[:space:]]*${i}-${m}[[:space:]].*\$" ${settings_file} | sed -e "s|^[[:space:]]*${i}-${m}\>||" -e 's|^[[:space:]]*||')
+          variables[${key}]="${variables[${key}]}${value} "
 
           key=
           bootstrap_id "has-${i}"
-          if [[ $key != "" ]] ; then
-            variables[$key]="yes"
+          if [[ ${key} != "" ]] ; then
+            variables[${key}]="yes"
           fi
-        elif [[ $(grep -s -o "^[[:space:]]*${i}-${m}\$" $settings_file) != "" ]] ; then
-          variables[$key]=""
+        elif [[ $(grep -s -o "^[[:space:]]*${i}-${m}\$" ${settings_file}) != "" ]] ; then
+          variables[${key}]=""
 
           key=
           bootstrap_id "has-${i}"
-          if [[ $key != "" ]] ; then
-            variables[$key]="yes"
+          if [[ ${key} != "" ]] ; then
+            variables[${key}]="yes"
           fi
         else
           key=
           bootstrap_id "has-${i}-mode"
-          if [[ $key != "" ]] ; then
-            variables[$key]="no"
+          if [[ ${key} != "" && ${variables[${key}]} != "yes" ]] ; then
+            variables[${key}]="no"
           fi
         fi
       fi
@@ -1053,13 +1054,13 @@ bootstrap_load_settings_mode() {
 }
 
 bootstrap_prepare_build() {
-  local alt=$1
+  local alt=${1}
   local i=
 
-  mkdir $verbose_common -p ${path_build}{documents,includes,libraries/{script,shared,static},objects/{script,shared,static},programs/{script,shared,static},settings,stage} || failure=1
+  mkdir ${verbose_common} -p ${path_build}{documents,includes,libraries/{script,shared,static},objects/{script,shared,static},programs/{script,shared,static},settings,stage} || failure=1
 
-  if [[ $failure != "" ]] ; then
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ ${failure} != "" ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       echo -e "${c_warning}WARNING: Failed to create build directories in '${c_notice}${path_build}${c_error}'.${c_reset}"
     fi
 
@@ -1067,18 +1068,18 @@ bootstrap_prepare_build() {
   fi
 
   bootstrap_id "path_headers-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    mkdir $verbose_common -p ${path_build}includes/${variables[$key]} || failure=1
+  if [[ ${variables[${key}]} != "" ]] ; then
+    mkdir ${verbose_common} -p ${path_build}includes/${variables[${key}]} || failure=1
   else
     bootstrap_id "path_headers"
 
-    if [[ ${variables[$key]} != "" ]] ; then
-      mkdir $verbose_common -p ${path_build}includes/${variables[$key]} || failure=1
+    if [[ ${variables[${key}]} != "" ]] ; then
+      mkdir ${verbose_common} -p ${path_build}includes/${variables[${key}]} || failure=1
     fi
   fi
 
-  if [[ $failure != "" ]] ; then
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ ${failure} != "" ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       echo -e "${c_warning}WARNING: Failed to create ${c_notice}path_heades${c_error} build directories in '${c_notice}${path_build}${c_error}'.${c_reset}"
     fi
 
@@ -1087,7 +1088,7 @@ bootstrap_prepare_build() {
 
   touch ${project_built}-${settings_name}.prepared
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -1099,240 +1100,240 @@ bootstrap_operation_build() {
   local n=
   local version_file=
   local version_target=
-  local alt=$1
+  local alt=${1}
   local directory=
   local key=
 
   bootstrap_id "build_compiler"
-  local build_compiler=${variables[$key]}
+  local build_compiler=${variables[${key}]}
 
   bootstrap_id "build_indexer"
-  local build_indexer=${variables[$key]}
+  local build_indexer=${variables[${key}]}
 
   bootstrap_id "build_indexer_arguments"
-  local build_indexer_arguments=${variables[$key]}
+  local build_indexer_arguments=${variables[${key}]}
 
   bootstrap_id "build_name"
-  local build_name=${variables[$key]}
+  local build_name=${variables[${key}]}
 
   bootstrap_id "build_shared"
-  local build_shared=${variables[$key]}
+  local build_shared=${variables[${key}]}
 
   bootstrap_id "build_static"
-  local build_static=${variables[$key]}
+  local build_static=${variables[${key}]}
 
   bootstrap_id "defines"
-  local defines=${variables[$key]}
+  local defines=${variables[${key}]}
 
   bootstrap_id "defines_library"
-  local defines_library=${variables[$key]}
+  local defines_library=${variables[${key}]}
 
   bootstrap_id "defines_library_shared"
-  local defines_library_shared=${variables[$key]}
+  local defines_library_shared=${variables[${key}]}
 
   bootstrap_id "defines_library_static"
-  local defines_library_static=${variables[$key]}
+  local defines_library_static=${variables[${key}]}
 
   bootstrap_id "defines_object"
-  local defines_object=${variables[$key]}
+  local defines_object=${variables[${key}]}
 
   bootstrap_id "defines_object_shared"
-  local defines_object_shared=${variables[$key]}
+  local defines_object_shared=${variables[${key}]}
 
   bootstrap_id "defines_object_static"
-  local defines_object_static=${variables[$key]}
+  local defines_object_static=${variables[${key}]}
 
   bootstrap_id "defines_program"
-  local defines_program=${variables[$key]}
+  local defines_program=${variables[${key}]}
 
   bootstrap_id "defines_program_shared"
-  local defines_program_shared=${variables[$key]}
+  local defines_program_shared=${variables[${key}]}
 
   bootstrap_id "defines_program_static"
-  local defines_program_static=${variables[$key]}
+  local defines_program_static=${variables[${key}]}
 
   bootstrap_id "defines_shared"
-  local defines_shared=${variables[$key]}
+  local defines_shared=${variables[${key}]}
 
   bootstrap_id "defines_static"
-  local defines_static=${variables[$key]}
+  local defines_static=${variables[${key}]}
 
   bootstrap_id "flags"
-  local flags=${variables[$key]}
+  local flags=${variables[${key}]}
 
   bootstrap_id "flags_library"
-  local flags_library=${variables[$key]}
+  local flags_library=${variables[${key}]}
 
   bootstrap_id "flags_library_shared"
-  local flags_library_shared=${variables[$key]}
+  local flags_library_shared=${variables[${key}]}
 
   bootstrap_id "flags_library_static"
-  local flags_library_static=${variables[$key]}
+  local flags_library_static=${variables[${key}]}
 
   bootstrap_id "flags_object"
-  local flags_object=${variables[$key]}
+  local flags_object=${variables[${key}]}
 
   bootstrap_id "flags_object_shared"
-  local flags_object_shared=${variables[$key]}
+  local flags_object_shared=${variables[${key}]}
 
   bootstrap_id "flags_object_static"
-  local flags_object_static=${variables[$key]}
+  local flags_object_static=${variables[${key}]}
 
   bootstrap_id "flags_program"
-  local flags_program=${variables[$key]}
+  local flags_program=${variables[${key}]}
 
   bootstrap_id "flags_program_shared"
-  local flags_program_shared=${variables[$key]}
+  local flags_program_shared=${variables[${key}]}
 
   bootstrap_id "flags_program_static"
-  local flags_program_static=${variables[$key]}
+  local flags_program_static=${variables[${key}]}
 
   bootstrap_id "flags_shared"
-  local flags_shared=${variables[$key]}
+  local flags_shared=${variables[${key}]}
 
   bootstrap_id "flags_static"
-  local flags_static=${variables[$key]}
+  local flags_static=${variables[${key}]}
 
   bootstrap_id "build_libraries"
-  local libraries=${variables[$key]}
+  local libraries=${variables[${key}]}
 
   bootstrap_id "build_libraries_shared"
-  local libraries_shared=${variables[$key]}
+  local libraries_shared=${variables[${key}]}
 
   bootstrap_id "build_libraries_static"
-  local libraries_static=${variables[$key]}
+  local libraries_static=${variables[${key}]}
 
   bootstrap_id "build_objects_library"
-  local objects_library=${variables[$key]}
+  local objects_library=${variables[${key}]}
 
   bootstrap_id "build_objects_library_shared"
-  local objects_library_shared=${variables[$key]}
+  local objects_library_shared=${variables[${key}]}
 
   bootstrap_id "build_objects_library_static"
-  local objects_library_static=${variables[$key]}
+  local objects_library_static=${variables[${key}]}
 
   bootstrap_id "build_objects_program"
-  local objects_program=${variables[$key]}
+  local objects_program=${variables[${key}]}
 
   bootstrap_id "build_objects_program_shared"
-  local objects_program_shared=${variables[$key]}
+  local objects_program_shared=${variables[${key}]}
 
   bootstrap_id "build_objects_program_static"
-  local objects_program_static=${variables[$key]}
+  local objects_program_static=${variables[${key}]}
 
   bootstrap_id "path_headers"
-  local path_headers=${variables[$key]}
+  local path_headers=${variables[${key}]}
 
   bootstrap_id "preserve_path_headers"
-  local preserve_path_headers=${variables[$key]}
+  local preserve_path_headers=${variables[${key}]}
 
   bootstrap_id "path_library_script"
-  local path_library_script=${variables[$key]}
+  local path_library_script=${variables[${key}]}
 
   bootstrap_id "path_library_shared"
-  local path_library_shared=${variables[$key]}
+  local path_library_shared=${variables[${key}]}
 
   bootstrap_id "path_library_static"
-  local path_library_static=${variables[$key]}
+  local path_library_static=${variables[${key}]}
 
   bootstrap_id "path_object_script"
-  local path_object_script=${variables[$key]}
+  local path_object_script=${variables[${key}]}
 
   bootstrap_id "path_object_shared"
-  local path_object_shared=${variables[$key]}
+  local path_object_shared=${variables[${key}]}
 
   bootstrap_id "path_object_static"
-  local path_object_static=${variables[$key]}
+  local path_object_static=${variables[${key}]}
 
   bootstrap_id "path_program_script"
-  local path_program_script=${variables[$key]}
+  local path_program_script=${variables[${key}]}
 
   bootstrap_id "path_program_shared"
-  local path_program_shared=${variables[$key]}
+  local path_program_shared=${variables[${key}]}
 
   bootstrap_id "path_program_static"
-  local path_program_static=${variables[$key]}
+  local path_program_static=${variables[${key}]}
 
   bootstrap_id "has_path_standard"
-  local has_path_standard=${variables[$key]}
+  local has_path_standard=${variables[${key}]}
 
   bootstrap_id "search_exclusive"
-  local search_exclusive=${variables[$key]}
+  local search_exclusive=${variables[${key}]}
 
   bootstrap_id "search_shared"
-  local search_shared=${variables[$key]}
+  local search_shared=${variables[${key}]}
 
   bootstrap_id "search_static"
-  local search_static=${variables[$key]}
+  local search_static=${variables[${key}]}
 
   bootstrap_id "build_sources_documentation"
-  local sources_documentation=${variables[$key]}
+  local sources_documentation=${variables[${key}]}
 
   bootstrap_id "build_sources_headers"
-  local sources_headers=${variables[$key]}
+  local sources_headers=${variables[${key}]}
 
   bootstrap_id "build_sources_library"
-  local sources_library=${variables[$key]}
+  local sources_library=${variables[${key}]}
 
   bootstrap_id "build_sources_library_shared"
-  local sources_library_shared=${variables[$key]}
+  local sources_library_shared=${variables[${key}]}
 
   bootstrap_id "build_sources_library_static"
-  local sources_library_static=${variables[$key]}
+  local sources_library_static=${variables[${key}]}
 
   bootstrap_id "build_sources_object"
-  local sources_object=${variables[$key]}
+  local sources_object=${variables[${key}]}
 
   bootstrap_id "build_sources_object_shared"
-  local sources_object_shared=${variables[$key]}
+  local sources_object_shared=${variables[${key}]}
 
   bootstrap_id "build_sources_object_static"
-  local sources_object_static=${variables[$key]}
+  local sources_object_static=${variables[${key}]}
 
   bootstrap_id "build_sources_program"
-  local sources_program=${variables[$key]}
+  local sources_program=${variables[${key}]}
 
   bootstrap_id "build_sources_program_shared"
-  local sources_program_shared=${variables[$key]}
+  local sources_program_shared=${variables[${key}]}
 
   bootstrap_id "build_sources_program_static"
-  local sources_program_static=${variables[$key]}
+  local sources_program_static=${variables[${key}]}
 
   bootstrap_id "build_sources_script"
-  local sources_script=${variables[$key]}
+  local sources_script=${variables[${key}]}
 
   bootstrap_id "build_sources_setting"
-  local sources_setting=${variables[$key]}
+  local sources_setting=${variables[${key}]}
 
   bootstrap_id "version_file"
-  local version_file_value=${variables[$key]}
+  local version_file_value=${variables[${key}]}
 
   bootstrap_id "version_major"
-  local version_major=${variables[$key]}
+  local version_major=${variables[${key}]}
 
   bootstrap_id "version_major_prefix"
-  local version_major_prefix=${variables[$key]}
+  local version_major_prefix=${variables[${key}]}
 
   bootstrap_id "version_minor"
-  local version_minor=${variables[$key]}
+  local version_minor=${variables[${key}]}
 
   bootstrap_id "version_minor_prefix"
-  local version_minor_prefix=${variables[$key]}
+  local version_minor_prefix=${variables[${key}]}
 
   bootstrap_id "version_micro"
-  local version_micro=${variables[$key]}
+  local version_micro=${variables[${key}]}
 
   bootstrap_id "version_micro_prefix"
-  local version_micro_prefix=${variables[$key]}
+  local version_micro_prefix=${variables[${key}]}
 
   bootstrap_id "version_nano"
-  local version_nano=${variables[$key]}
+  local version_nano=${variables[${key}]}
 
   bootstrap_id "version_nano_prefix"
-  local version_nano_prefix=${variables[$key]}
+  local version_nano_prefix=${variables[${key}]}
 
   bootstrap_id "version_target"
-  local version_target_value=${variables[$key]}
+  local version_target_value=${variables[${key}]}
 
   local links=
   local sources=
@@ -1363,8 +1364,8 @@ bootstrap_operation_build() {
 
   bootstrap_operation_build_prepare_remaining
 
-  if [[ $build_shared == "yes" && -f ${project_built_shared}.built || $build_static == "yes" && -f ${project_built_static}.built ]] ; then
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ ${build_shared} == "yes" && -f ${project_built_shared}.built || ${build_static} == "yes" && -f ${project_built_static}.built ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       echo -e "${c_warning}WARNING: This project has already been built.${c_reset}"
     fi
 
@@ -1375,10 +1376,10 @@ bootstrap_operation_build() {
   local arguments_shared="-L${path_build}libraries/${path_library_shared}"
   local arguments_static="-L${path_build}libraries/${path_library_static}"
 
-  if [[ $path_work != "" ]] ; then
-    arguments_include="$arguments_include -I${path_work}includes/"
-    arguments_shared="$arguments_shared -L${path_work}libraries/${path_library_shared}"
-    arguments_static="$arguments_static -L${path_work}libraries/${path_library_static}"
+  if [[ ${path_work} != "" ]] ; then
+    arguments_include="${arguments_include} -I${path_work}includes/"
+    arguments_shared="${arguments_shared} -L${path_work}libraries/${path_library_shared}"
+    arguments_static="${arguments_static} -L${path_work}libraries/${path_library_static}"
   fi
 
   bootstrap_operation_build_validate_paths
@@ -1391,250 +1392,250 @@ bootstrap_operation_build() {
 
   bootstrap_operation_build_validate_build
 
-  if [[ $failure != "" ]] ; then
+  if [[ ${failure} != "" ]] ; then
     return 1
   fi
 
-  if [[ $sources_documentation != "" ]] ; then
-    for i in $sources_documentation ; do
-      directory=$(dirname $i)
+  if [[ ${sources_documentation} != "" ]] ; then
+    for i in ${sources_documentation} ; do
+      directory=$(dirname ${i})
 
-      if [[ $directory == "." ]] ; then
-        cp $verbose_common -R ${path_documentation}${i} ${path_build}documentation/ || failure=1
+      if [[ ${directory} == "." ]] ; then
+        cp ${verbose_common} -R ${path_documentation}${i} ${path_build}documentation/ || failure=1
       else
-        mkdir $verbose_common -p ${path_build}documentation/${directory} || failure=1
+        mkdir ${verbose_common} -p ${path_build}documentation/${directory} || failure=1
 
-        if [[ $failure == "" ]] ; then
-          cp $verbose_common -R ${path_documentation}${i} ${path_build}documentation/${directory}/ || failure=1
+        if [[ ${failure} == "" ]] ; then
+          cp ${verbose_common} -R ${path_documentation}${i} ${path_build}documentation/${directory}/ || failure=1
         fi
       fi
     done
   fi
 
-  if [[ $sources_setting != "" ]] ; then
-    for i in $sources_setting ; do
-      directory=$(dirname $i)
+  if [[ ${sources_setting} != "" ]] ; then
+    for i in ${sources_setting} ; do
+      directory=$(dirname ${i})
 
-      if [[ $directory == "." ]] ; then
-        cp $verbose_common -R ${path_settings}${i} ${path_build}settings/ || failure=1
+      if [[ ${directory} == "." ]] ; then
+        cp ${verbose_common} -R ${path_settings}${i} ${path_build}settings/ || failure=1
       else
-        mkdir $verbose_common -p ${path_build}settings/${directory} || failure=1
+        mkdir ${verbose_common} -p ${path_build}settings/${directory} || failure=1
 
-        if [[ $failure == "" ]] ; then
-          cp $verbose_common -R ${path_settings}${i} ${path_build}settings/${directory}/ || failure=1
+        if [[ ${failure} == "" ]] ; then
+          cp ${verbose_common} -R ${path_settings}${i} ${path_build}settings/${directory}/ || failure=1
         fi
       fi
     done
   fi
 
-  if [[ $failure == "" && $sources_headers != "" ]] ; then
-    if [[ $preserve_path_headers == "yes" ]] ; then
-      for i in $sources_headers ; do
-        directory=$(dirname $i)
+  if [[ ${failure} == "" && ${sources_headers} != "" ]] ; then
+    if [[ ${preserve_path_headers} == "yes" ]] ; then
+      for i in ${sources_headers} ; do
+        directory=$(dirname ${i})
 
-        if [[ $directory == "." ]] ; then
-          cp $verbose_common -f ${path_sources}${path_language}${i} ${path_build}includes/${path_headers} || failure=1
+        if [[ ${directory} == "." ]] ; then
+          cp ${verbose_common} -f ${path_sources}${path_language}${i} ${path_build}includes/${path_headers} || failure=1
         else
           if [[ ! -d ${path_build}includes/${path_headers}${directory} ]] ; then
-            mkdir $verbose_common -p ${path_build}includes/${path_headers}${directory} || failure=1
+            mkdir ${verbose_common} -p ${path_build}includes/${path_headers}${directory} || failure=1
           fi
 
-          if [[ $failure == "" ]] ; then
-            cp $verbose_common -f ${path_sources}${path_language}${i} ${path_build}includes/${path_headers}${i} || failure=1
+          if [[ ${failure} == "" ]] ; then
+            cp ${verbose_common} -f ${path_sources}${path_language}${i} ${path_build}includes/${path_headers}${i} || failure=1
           fi
         fi
       done
     else
-      for i in $sources_headers ; do
-        cp $verbose_common -f ${path_sources}${path_language}${i} ${path_build}includes/${path_headers} || failure=1
+      for i in ${sources_headers} ; do
+        cp ${verbose_common} -f ${path_sources}${path_language}${i} ${path_build}includes/${path_headers} || failure=1
       done
     fi
   fi
 
-  if [[ $failure == "" && $build_shared == "yes" && ! -f ${project_built_shared}.built ]] ; then
-    if [[ $sources_object != "" || $sources_object_shared != "" ]] ; then
+  if [[ ${failure} == "" && ${build_shared} == "yes" && ! -f ${project_built_shared}.built ]] ; then
+    if [[ ${sources_object} != "" || ${sources_object_shared} != "" ]] ; then
       sources=
       let count=0
 
       # Sources object only allows for a single value.
-      if [[ $sources_object_shared != "" ]] ; then
-        for i in $sources_object_shared ; do
+      if [[ ${sources_object_shared} != "" ]] ; then
+        for i in ${sources_object_shared} ; do
           let count++
         done
 
-        if [[ $count -gt 1 ]] ; then
-          if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+        if [[ ${count} -gt 1 ]] ; then
+          if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
             echo -e "${c_warning}WARNING: Multiple '${c_notice}sources_object_shared${c_warning}' found, only using the first one found is going to be used.${c_reset}"
           fi
         fi
 
-        for i in $sources_object_shared ; do
+        for i in ${sources_object_shared} ; do
           sources="${path_sources_object}${path_language}${i} "
 
           break
         done
       else
-        for i in $sources_object ; do
+        for i in ${sources_object} ; do
           let count++
         done
 
-        if [[ $count -gt 1 ]] ; then
-          if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+        if [[ ${count} -gt 1 ]] ; then
+          if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
             echo -e "${c_warning}WARNING: Multiple '${c_notice}sources_object${c_warning}' found, only using the first one found is going to be used.${c_reset}"
           fi
         fi
 
-        for i in $sources_object ; do
+        for i in ${sources_object} ; do
           sources="${path_sources_object}${path_language}${i} "
 
           break
         done
       fi
 
-      if [[ $verbosity == "verbose" ]] ; then
-        echo $build_compiler $sources -c -o ${path_build}objects/${path_object_shared}${build_name}.o $arguments_shared $arguments_include $libraries $libraries_shared $flags $flags_shared $flags_object $flags_object_shared $defines $defines_shared $defines_object $defines_object_shared $define_extra
+      if [[ ${verbosity} == "verbose" ]] ; then
+        echo ${build_compiler} ${sources} -c -o ${path_build}objects/${path_object_shared}${build_name}.o ${arguments_shared} ${arguments_include} ${libraries} ${libraries_shared} ${flags} ${flags_shared} ${flags_object} ${flags_object_shared} ${defines} ${defines_shared} ${defines_object} ${defines_object_shared} ${define_extra}
       fi
 
-      $build_compiler $sources -c -o ${path_build}objects/${path_object_shared}${build_name}.o $arguments_shared $arguments_include $libraries $libraries_shared $flags $flags_shared $flags_object $flags_object_shared $defines $defines_shared $defines_object $defines_object_shared $define_extra || failure=1
+      ${build_compiler} ${sources} -c -o ${path_build}objects/${path_object_shared}${build_name}.o ${arguments_shared} ${arguments_include} ${libraries} ${libraries_shared} ${flags} ${flags_shared} ${flags_object} ${flags_object_shared} ${defines} ${defines_shared} ${defines_object} ${defines_object_shared} ${define_extra} || failure=1
     fi
 
-    if [[ $sources_library != "" || $sources_library_shared != "" ]] ; then
+    if [[ ${sources_library} != "" || ${sources_library_shared} != "" ]] ; then
       sources=
 
-      if [[ $objects_library != "" || $objects_library_shared != "" ]] ; then
-        for i in $objects_library $objects_library_shared ; do
+      if [[ ${objects_library} != "" || ${objects_library_shared} != "" ]] ; then
+        for i in ${objects_library} ${objects_library_shared} ; do
           sources="${sources}${path_build}objects/${path_object_shared}${i} "
         done
       fi
 
-      for i in $sources_library $sources_library_shared ; do
+      for i in ${sources_library} ${sources_library_shared} ; do
         sources="${sources}${path_sources}${path_language}${i} "
       done
 
-      if [[ $verbosity == "verbose" ]] ; then
-        echo $build_compiler $sources -shared -Wl,-soname,lib${build_name}.so${version_target} -o ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_file} $arguments_shared $arguments_include $libraries $libraries_shared $flags $flags_shared $flags_library $flags_library_shared $defines $defines_shared $defines_library $defines_library_shared $define_extra
+      if [[ ${verbosity} == "verbose" ]] ; then
+        echo ${build_compiler} ${sources} -shared -Wl,-soname,lib${build_name}.so${version_target} -o ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_file} ${arguments_shared} ${arguments_include} ${libraries} ${libraries_shared} ${flags} ${flags_shared} ${flags_library} ${flags_library_shared} ${defines} ${defines_shared} ${defines_library} ${defines_library_shared} ${define_extra}
       fi
 
-      $build_compiler $sources -shared -Wl,-soname,lib${build_name}.so${version_target} -o ${path_build}libraries/${path_library_shared}lib${build_name}.so$version_file $arguments_shared $arguments_include $libraries $libraries_shared $flags $flags_shared $flags_library $flags_library_shared $defines $defines_shared $defines_library $defines_library_shared $define_extra || failure=1
+      ${build_compiler} ${sources} -shared -Wl,-soname,lib${build_name}.so${version_target} -o ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_file} ${arguments_shared} ${arguments_include} ${libraries} ${libraries_shared} ${flags} ${flags_shared} ${flags_library} ${flags_library_shared} ${defines} ${defines_shared} ${defines_library} ${defines_library_shared} ${define_extra} || failure=1
 
-      if [[ $failure == "" ]] ; then
-        if [[ $version_file_value != "major" ]] ; then
-          if [[ $version_file_value == "minor" ]] ; then
-            ln $verbose_common -sf lib${build_name}.so${version_file} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major} || failure=1
+      if [[ ${failure} == "" ]] ; then
+        if [[ ${version_file_value} != "major" ]] ; then
+          if [[ ${version_file_value} == "minor" ]] ; then
+            ln ${verbose_common} -sf lib${build_name}.so${version_file} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major} || failure=1
           else
-            ln $verbose_common -sf lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major} || failure=1
+            ln ${verbose_common} -sf lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major} || failure=1
 
-            if [[ $failure == "" ]] ; then
-              if [[ $version_file_value == "micro" ]] ; then
-                ln $verbose_common -sf lib$build_name.so$version_file ${path_build}libraries/${path_library_shared}lib$build_name.so$version_major_prefix$version_major$version_minor_prefix$version_minor || failure=1
+            if [[ ${failure} == "" ]] ; then
+              if [[ ${version_file_value} == "micro" ]] ; then
+                ln ${verbose_common} -sf lib${build_name}.so${version_file} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor} || failure=1
               else
-                ln $verbose_common -sf lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor} || failure=1
+                ln ${verbose_common} -sf lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor} || failure=1
 
-                if [[ $failure == "" ]] ; then
-                  ln $verbose_common -sf lib${build_name}.so${version_file} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro} || failure=1
+                if [[ ${failure} == "" ]] ; then
+                  ln ${verbose_common} -sf lib${build_name}.so${version_file} ${path_build}libraries/${path_library_shared}lib${build_name}.so${version_major_prefix}${version_major}${version_minor_prefix}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro} || failure=1
                 fi
               fi
             fi
           fi
         fi
 
-        if [[ $failure == "" ]] ; then
+        if [[ ${failure} == "" ]] ; then
           ln ${verbose_common} -sf lib${build_name}.so${version_major_prefix}${version_major} ${path_build}libraries/${path_library_shared}lib${build_name}.so || failure=1
         fi
       fi
     fi
 
-    if [[ $failure == "" && $sources_program != "" ]] ; then
+    if [[ ${failure} == "" && ${sources_program} != "" ]] ; then
       sources=
       links=
 
-      if [[ $sources_library != "" || $sources_library_shared != "" ]] ; then
-        links="-l$build_name "
+      if [[ ${sources_library} != "" || ${sources_library_shared} != "" ]] ; then
+        links="-l${build_name} "
       fi
 
-      if [[ $objects_program != "" || $objects_program_shared != "" ]] ; then
-        for i in $objects_program $objects_program_shared ; do
+      if [[ ${objects_program} != "" || ${objects_program_shared} != "" ]] ; then
+        for i in ${objects_program} ${objects_program_shared} ; do
           sources="${sources}${path_build}objects/${path_object_shared}${i} "
         done
       fi
 
-      for i in $sources_program $sources_program_shared ; do
+      for i in ${sources_program} ${sources_program_shared} ; do
         sources="${sources}${path_sources}${path_language}${i} "
       done
 
-      if [[ $verbosity == "verbose" ]] ; then
-        echo $build_compiler $sources -o ${path_build}programs/${path_program_shared}${build_name} $arguments_shared $arguments_include $links $libraries $libraries_shared $flags $flags_shared $flags_program $flags_program_shared $defines $defines_shared $defines_program $defines_program_shared $define_extra
+      if [[ ${verbosity} == "verbose" ]] ; then
+        echo ${build_compiler} ${sources} -o ${path_build}programs/${path_program_shared}${build_name} ${arguments_shared} ${arguments_include} ${links} ${libraries} ${libraries_shared} ${flags} ${flags_shared} ${flags_program} ${flags_program_shared} ${defines} ${defines_shared} ${defines_program} ${defines_program_shared} ${define_extra}
       fi
 
-      $build_compiler $sources -o ${path_build}programs/${path_program_shared}${build_name} $arguments_shared $arguments_include $links $libraries $libraries_shared $flags $flags_shared $flags_program $flags_program_shared $defines $defines_shared $defines_program $defines_program_shared $define_extra || failure=1
+      ${build_compiler} ${sources} -o ${path_build}programs/${path_program_shared}${build_name} ${arguments_shared} ${arguments_include} ${links} ${libraries} ${libraries_shared} ${flags} ${flags_shared} ${flags_program} ${flags_program_shared} ${defines} ${defines_shared} ${defines_program} ${defines_program_shared} ${define_extra} || failure=1
     fi
 
-    if [[ $failure == "" ]] ; then
+    if [[ ${failure} == "" ]] ; then
       touch ${project_built_shared}-${settings_name}.built
     fi
   fi
 
-  if [[ $failure == "" && $build_static == "yes" && ! -f ${project_built_static}.built ]] ; then
-    if [[ $sources_object != "" || $sources_object_static != "" ]] ; then
+  if [[ ${failure} == "" && ${build_static} == "yes" && ! -f ${project_built_static}.built ]] ; then
+    if [[ ${sources_object} != "" || ${sources_object_static} != "" ]] ; then
       let count=0
 
       # Sources object only allows for a single value.
-      if [[ $sources_object_static != "" ]] ; then
-        for i in $sources_object_static ; do
+      if [[ ${sources_object_static} != "" ]] ; then
+        for i in ${sources_object_static} ; do
           let count++
         done
 
-        if [[ $count -gt 1 ]] ; then
-          if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+        if [[ ${count} -gt 1 ]] ; then
+          if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
             echo -e "${c_warning}WARNING: Multiple '${c_notice}sources_object_static${c_warning}' found, only using the first one found is going to be used.${c_reset}"
           fi
         fi
 
-        for i in $sources_object_static ; do
+        for i in ${sources_object_static} ; do
           sources="${path_sources_object}${path_language}${i} "
 
           break
         done
       else
-        for i in $sources_object ; do
+        for i in ${sources_object} ; do
           let count++
         done
 
-        if [[ $count -gt 1 ]] ; then
-          if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+        if [[ ${count} -gt 1 ]] ; then
+          if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
             echo -e "${c_warning}WARNING: Multiple '${c_notice}sources_object${c_warning}' found, only using the first one found is going to be used.${c_reset}"
           fi
         fi
 
-        for i in $sources_object ; do
+        for i in ${sources_object} ; do
           sources="${path_sources_object}${path_language}${i} "
 
           break
         done
       fi
 
-      if [[ $verbosity == "verbose" ]] ; then
-        echo $build_compiler $sources -c -o ${path_build}objects/${path_object_static}${build_name}.o $arguments_static $arguments_include $libraries $libraries_static $flags $flags_static $flags_object $flags_object_static $defines $defines_static $defines_object $defines_object_static $define_extra
+      if [[ ${verbosity} == "verbose" ]] ; then
+        echo ${build_compiler} ${sources} -c -o ${path_build}objects/${path_object_static}${build_name}.o ${arguments_static} ${arguments_include} ${libraries} ${libraries_static} ${flags} ${flags_static} ${flags_object} ${flags_object_static} ${defines} ${defines_static} ${defines_object} ${defines_object_static} ${define_extra}
       fi
 
-      $build_compiler $sources -c -o ${path_build}objects/${path_object_static}${build_name}.o $arguments_static $arguments_include $libraries $libraries_static $flags $flags_static $flags_object $flags_object_static $defines $defines_static $defines_object $defines_object_static $define_extra || failure=1
+      ${build_compiler} ${sources} -c -o ${path_build}objects/${path_object_static}${build_name}.o ${arguments_static} ${arguments_include} ${libraries} ${libraries_static} ${flags} ${flags_static} ${flags_object} ${flags_object_static} ${defines} ${defines_static} ${defines_object} ${defines_object_static} ${define_extra} || failure=1
     fi
 
-    if [[ $sources_library != "" || $sources_library_static != "" ]] ; then
+    if [[ ${sources_library} != "" || ${sources_library_static} != "" ]] ; then
       sources=
 
-      if [[ $objects_library != "" || $objects_library_static != "" ]] ; then
-        for i in $objects_library $objects_library_static ; do
+      if [[ ${objects_library} != "" || ${objects_library_static} != "" ]] ; then
+        for i in ${objects_library} ${objects_library_static} ; do
           sources="${sources}${path_build}objects/${path_object_static}${i} "
         done
       fi
 
-      for i in $sources_library $sources_library_static ; do
-        directory=$(dirname $i)
-        n=$(basename $i | sed -e 's|\.c$||')
+      for i in ${sources_library} ${sources_library_static} ; do
+        directory=$(dirname ${i})
+        n=$(basename ${i} | sed -e 's|\.c$||')
 
-        if [[ $directory != "." && ! -d ${path_build}objects/${directory} ]] ; then
-          mkdir $verbose_common -p ${path_build}objects/${directory}
+        if [[ ${directory} != "." && ! -d ${path_build}objects/${directory} ]] ; then
+          mkdir ${verbose_common} -p ${path_build}objects/${directory}
 
           if [[ $? -ne 0 ]] ; then
             let failure=1
@@ -1644,61 +1645,61 @@ bootstrap_operation_build() {
         fi
 
         # These are objects created by the static build step rather than objects created by the object build step.
-        sources="${sources}${path_build}objects/$directory/$n.o "
+        sources="${sources}${path_build}objects/${directory}/${n}.o "
 
-        if [[ $verbosity == "verbose" ]] ; then
-          echo $build_compiler ${path_sources}${path_language}${i} -c -static -o ${path_build}objects/${directory}/${n}.o $arguments_static $arguments_include $libraries $libraries_static $flags $flags_static $flags_library $flags_library_static $defines $defines_static $defines_library $defines_library_static $define_extra
+        if [[ ${verbosity} == "verbose" ]] ; then
+          echo ${build_compiler} ${path_sources}${path_language}${i} -c -static -o ${path_build}objects/${directory}/${n}.o ${arguments_static} ${arguments_include} ${libraries} ${libraries_static} ${flags} ${flags_static} ${flags_library} ${flags_library_static} ${defines} ${defines_static} ${defines_library} ${defines_library_static} ${define_extra}
         fi
 
-        $build_compiler ${path_sources}${path_language}${i} -c -static -o ${path_build}objects/${directory}/${n}.o $arguments_static $arguments_include $libraries $libraries_static $flags $flags_static $flags_library $flags_library_static $defines $defines_static $defines_library $defines_library_static $define_extra || failure=1
+        ${build_compiler} ${path_sources}${path_language}${i} -c -static -o ${path_build}objects/${directory}/${n}.o ${arguments_static} ${arguments_include} ${libraries} ${libraries_static} ${flags} ${flags_static} ${flags_library} ${flags_library_static} ${defines} ${defines_static} ${defines_library} ${defines_library_static} ${define_extra} || failure=1
 
-        if [[ $failure != "" ]] ; then
+        if [[ ${failure} != "" ]] ; then
           break;
         fi
       done
 
-      if [[ $failure == "" && ( $sources_library != "" || $sources_library_static != "" ) ]] ; then
+      if [[ ${failure} == "" && ( ${sources_library} != "" || ${sources_library_static} != "" ) ]] ; then
 
-        if [[ $verbosity == "verbose" ]] ; then
-          echo $build_indexer $build_indexer_arguments ${path_build}libraries/${path_library_static}lib${build_name}.a $sources
+        if [[ ${verbosity} == "verbose" ]] ; then
+          echo ${build_indexer} ${build_indexer_arguments} ${path_build}libraries/${path_library_static}lib${build_name}.a ${sources}
         fi
 
-        $build_indexer $build_indexer_arguments ${path_build}libraries/${path_library_static}lib${build_name}.a $sources || failure=1
+        ${build_indexer} ${build_indexer_arguments} ${path_build}libraries/${path_library_static}lib${build_name}.a ${sources} || failure=1
       fi
     fi
 
-    if [[ $failure == "" && $sources_program != "" ]] ; then
+    if [[ ${failure} == "" && ${sources_program} != "" ]] ; then
       sources=
       links=
 
-      if [[ $sources_library != "" || $sources_library_static != "" ]] ; then
+      if [[ ${sources_library} != "" || ${sources_library_static} != "" ]] ; then
         links="-l${build_name} "
       fi
 
-      if [[ $objects_program != "" || $objects_program_static != "" ]] ; then
-        for i in $objects_program $objects_program_static ; do
+      if [[ ${objects_program} != "" || ${objects_program_static} != "" ]] ; then
+        for i in ${objects_program} ${objects_program_static} ; do
           sources="${sources}${path_build}objects/${path_object_static}${i} "
         done
       fi
 
-      for i in $sources_program $sources_program_static ; do
+      for i in ${sources_program} ${sources_program_static} ; do
         sources="${sources}${path_sources}${path_language}${i} "
       done
 
-      if [[ $verbosity == "verbose" ]] ; then
-        echo $build_compiler $sources -static -o ${path_build}programs/${path_program_static}${build_name} $arguments_static $arguments_include $links $libraries $libraries_static $flags $flags_static $flags_program $flags_program_static $defines $defines_static $defines_program $defines_program_static $define_extra
+      if [[ ${verbosity} == "verbose" ]] ; then
+        echo ${build_compiler} ${sources} -static -o ${path_build}programs/${path_program_static}${build_name} ${arguments_static} ${arguments_include} ${links} ${libraries} ${libraries_static} ${flags} ${flags_static} ${flags_program} ${flags_program_static} ${defines} ${defines_static} ${defines_program} ${defines_program_static} ${define_extra}
       fi
 
-      $build_compiler $sources -static -o ${path_build}programs/${path_program_static}${build_name} $arguments_static $arguments_include $links $libraries $libraries_static $flags $flags_static $flags_program $flags_program_static $defines $defines_static $defines_program $defines_program_static $define_extra || failure=1
+      ${build_compiler} ${sources} -static -o ${path_build}programs/${path_program_static}${build_name} ${arguments_static} ${arguments_include} ${links} ${libraries} ${libraries_static} ${flags} ${flags_static} ${flags_program} ${flags_program_static} ${defines} ${defines_static} ${defines_program} ${defines_program_static} ${define_extra} || failure=1
     fi
 
-    if [[ $failure == "" ]] ; then
+    if [[ ${failure} == "" ]] ; then
       touch ${project_built_static}-${settings_name}.built
     fi
   fi
 
-  if [[ $failure != "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${failure} != "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: Failed to build.${c_reset}"
@@ -1709,7 +1710,7 @@ bootstrap_operation_build() {
     return 1
   fi
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -1720,181 +1721,181 @@ bootstrap_operation_build_prepare_defaults() {
   local key=
 
   bootstrap_id "has-version_major_prefix-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-version_major_prefix"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       version_major_prefix="."
     fi
   fi
 
   bootstrap_id "has-version_minor_prefix-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-version_minor_prefix"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       version_minor_prefix="."
     fi
   fi
 
   bootstrap_id "has-version_micro_prefix-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-version_micro_prefix"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       version_micro_prefix="."
     fi
   fi
 
   bootstrap_id "has-version_nano_prefix-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-version_nano_prefix"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       version_nano_prefix="."
     fi
   fi
 
   bootstrap_id "has-build_compiler-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-build_compiler"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       build_compiler="gcc"
     fi
   fi
 
   bootstrap_id "has-build_indexer-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-build_indexer"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       build_indexer="ar"
     fi
   fi
 
   bootstrap_id "has-path_library_script-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_library_script"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_library_script="script/"
     fi
   fi
 
   bootstrap_id "has-path_library_shared-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_library_shared"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_library_shared="shared/"
     fi
   fi
 
   bootstrap_id "has-path_library_static-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_library_static"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_library_static="static/"
     fi
   fi
 
   bootstrap_id "has-path_object_script-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_object_script"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_object_script="script/"
     fi
   fi
 
   bootstrap_id "has-path_object_shared-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_object_shared"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_object_shared="shared/"
     fi
   fi
 
   bootstrap_id "has-path_object_static-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_object_static"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_object_static="static/"
     fi
   fi
 
   bootstrap_id "has-path_program_script-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_program_script"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_program_script="script/"
     fi
   fi
 
   bootstrap_id "has-path_program_shared-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_program_shared"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_program_shared="shared/"
     fi
   fi
 
   bootstrap_id "has-path_program_static-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_program_static"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_program_static="static/"
     fi
   fi
 
   bootstrap_id "has-path_sources-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_sources"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_sources="sources/"
     fi
   fi
 
   bootstrap_id "has-path_sources_object-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-path_sources_object"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       path_sources_object="sources/"
     fi
   fi
 
   bootstrap_id "has-has_path_standard-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-has_path_standard"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       has_path_standard="yes"
     fi
   fi
 
   bootstrap_id "has-search_shared-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-search_shared"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       search_shared="yes"
     fi
   fi
 
   bootstrap_id "has-build_shared-mode"
-  if [[ ${variables[$key]} != "yes" ]] ; then
+  if [[ ${variables[${key}]} != "yes" ]] ; then
 
     bootstrap_id "has-build_shared"
-    if [[ ${variables[$key]} != "yes" ]] ; then
+    if [[ ${variables[${key}]} != "yes" ]] ; then
       build_shared="yes"
     fi
   fi
@@ -1904,108 +1905,108 @@ bootstrap_operation_build_prepare_defines() {
   local key=
 
   bootstrap_id "defines-mode"
-  if [[ $defines == "" ]] ; then
-    defines=${variables[$key]}
+  if [[ ${defines} == "" ]] ; then
+    defines=${variables[${key}]}
   else
-    defines="$defines ${variables[$key]}"
+    defines="${defines} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_library-mode"
-  if [[ $defines_library == "" ]] ; then
-    defines_library=${variables[$key]}
+  if [[ ${defines_library} == "" ]] ; then
+    defines_library=${variables[${key}]}
   else
-    defines_library="$defines_library ${variables[$key]}"
+    defines_library="${defines_library} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_library_shared-mode"
-  if [[ $defines_library_shared == "" ]] ; then
-    defines_library_shared=${variables[$key]}
+  if [[ ${defines_library_shared} == "" ]] ; then
+    defines_library_shared=${variables[${key}]}
   else
-    defines_library_shared="$defines_library_shared ${variables[$key]}"
+    defines_library_shared="${defines_library_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_library_static-mode"
-  if [[ $defines_library_static == "" ]] ; then
-    defines_library_static=${variables[$key]}
+  if [[ ${defines_library_static} == "" ]] ; then
+    defines_library_static=${variables[${key}]}
   else
-    defines_library_static="$defines_library_static ${variables[$key]}"
+    defines_library_static="${defines_library_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_object_library-mode"
-  if [[ $defines_object_library == "" ]] ; then
-    defines_object_library=${variables[$key]}
+  if [[ ${defines_object_library} == "" ]] ; then
+    defines_object_library=${variables[${key}]}
   else
-    defines_object_library="$defines_object_library ${variables[$key]}"
+    defines_object_library="${defines_object_library} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_object_library_shared-mode"
-  if [[ $defines_object_library_shared == "" ]] ; then
-    defines_object_library_shared=${variables[$key]}
+  if [[ ${defines_object_library_shared} == "" ]] ; then
+    defines_object_library_shared=${variables[${key}]}
   else
-    defines_object_library_shared="$defines_object_library_shared ${variables[$key]}"
+    defines_object_library_shared="${defines_object_library_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_object_library_static-mode"
-  if [[ $defines_object_library_static == "" ]] ; then
-    defines_object_library_static=${variables[$key]}
+  if [[ ${defines_object_library_static} == "" ]] ; then
+    defines_object_library_static=${variables[${key}]}
   else
-    defines_object_library_static="$defines_object_library_static ${variables[$key]}"
+    defines_object_library_static="${defines_object_library_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_object_program-mode"
-  if [[ $defines_object_program == "" ]] ; then
-    defines_object_program=${variables[$key]}
+  if [[ ${defines_object_program} == "" ]] ; then
+    defines_object_program=${variables[${key}]}
   else
-    defines_object_program="$defines_object_program ${variables[$key]}"
+    defines_object_program="${defines_object_program} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_object_program_shared-mode"
-  if [[ $defines_object_program_shared == "" ]] ; then
-    defines_object_program_shared=${variables[$key]}
+  if [[ ${defines_object_program_shared} == "" ]] ; then
+    defines_object_program_shared=${variables[${key}]}
   else
-    defines_object_program_shared="$defines_object_program_shared ${variables[$key]}"
+    defines_object_program_shared="${defines_object_program_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_object_program_static-mode"
-  if [[ $defines_object_program_static == "" ]] ; then
-    defines_object_program_static=${variables[$key]}
+  if [[ ${defines_object_program_static} == "" ]] ; then
+    defines_object_program_static=${variables[${key}]}
   else
-    defines_object_program_static="$defines_object_program_static ${variables[$key]}"
+    defines_object_program_static="${defines_object_program_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_program-mode"
-  if [[ $defines_program == "" ]] ; then
-    defines_program=${variables[$key]}
+  if [[ ${defines_program} == "" ]] ; then
+    defines_program=${variables[${key}]}
   else
-    defines_program="$defines_program ${variables[$key]}"
+    defines_program="${defines_program} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_program_shared-mode"
-  if [[ $defines_program_shared == "" ]] ; then
-    defines_program_shared=${variables[$key]}
+  if [[ ${defines_program_shared} == "" ]] ; then
+    defines_program_shared=${variables[${key}]}
   else
-    defines_program_shared="$defines_program_shared ${variables[$key]}"
+    defines_program_shared="${defines_program_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_program_static-mode"
-  if [[ $defines_program_static == "" ]] ; then
-    defines_program_static=${variables[$key]}
+  if [[ ${defines_program_static} == "" ]] ; then
+    defines_program_static=${variables[${key}]}
   else
-    defines_program_static="$defines_program_static ${variables[$key]}"
+    defines_program_static="${defines_program_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_shared-mode"
-  if [[ $defines_shared == "" ]] ; then
-    defines_shared=${variables[$key]}
+  if [[ ${defines_shared} == "" ]] ; then
+    defines_shared=${variables[${key}]}
   else
-    defines_shared="$defines_shared ${variables[$key]}"
+    defines_shared="${defines_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "defines_static-mode"
-  if [[ $defines_static == "" ]] ; then
-    defines_static=${variables[$key]}
+  if [[ ${defines_static} == "" ]] ; then
+    defines_static=${variables[${key}]}
   else
-    defines_static="$defines_static ${variables[$key]}"
+    defines_static="${defines_static} ${variables[${key}]}"
   fi
 }
 
@@ -2013,10 +2014,10 @@ bootstrap_operation_build_prepare_documentation() {
   local key=
 
   bootstrap_id "build_sources_documentation-mode"
-  if [[ $sources_documentation == "" ]] ; then
-    sources_documentation=${variables[$key]}
+  if [[ ${sources_documentation} == "" ]] ; then
+    sources_documentation=${variables[${key}]}
   else
-    sources_documentation="$sources_documentation ${variables[$key]}"
+    sources_documentation="${sources_documentation} ${variables[${key}]}"
   fi
 }
 
@@ -2024,108 +2025,108 @@ bootstrap_operation_build_prepare_flags() {
   local key=
 
   bootstrap_id "flags-mode"
-  if [[ $flags == "" ]] ; then
-    flags=${variables[$key]}
+  if [[ ${flags} == "" ]] ; then
+    flags=${variables[${key}]}
   else
-    flags="$flags ${variables[$key]}"
+    flags="${flags} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_library-mode"
-  if [[ $flags_library == "" ]] ; then
-    flags_library=${variables[$key]}
+  if [[ ${flags_library} == "" ]] ; then
+    flags_library=${variables[${key}]}
   else
-    flags_library="$flags_library ${variables[$key]}"
+    flags_library="${flags_library} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_library_shared-mode"
-  if [[ $flags_library_shared == "" ]] ; then
-    flags_library_shared=${variables[$key]}
+  if [[ ${flags_library_shared} == "" ]] ; then
+    flags_library_shared=${variables[${key}]}
   else
-    flags_library_shared="$flags_library_shared ${variables[$key]}"
+    flags_library_shared="${flags_library_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_library_static-mode"
-  if [[ $flags_library_static == "" ]] ; then
-    flags_library_static=${variables[$key]}
+  if [[ ${flags_library_static} == "" ]] ; then
+    flags_library_static=${variables[${key}]}
   else
-    flags_library_static="$flags_library_static ${variables[$key]}"
+    flags_library_static="${flags_library_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_object_library-mode"
-  if [[ $flags_object_library == "" ]] ; then
-    flags_object_library=${variables[$key]}
+  if [[ ${flags_object_library} == "" ]] ; then
+    flags_object_library=${variables[${key}]}
   else
-    flags_object_library="$flags_object_library ${variables[$key]}"
+    flags_object_library="${flags_object_library} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_object_library_shared-mode"
-  if [[ $flags_object_library_shared == "" ]] ; then
-    flags_object_library_shared=${variables[$key]}
+  if [[ ${flags_object_library_shared} == "" ]] ; then
+    flags_object_library_shared=${variables[${key}]}
   else
-    flags_object_library_shared="$flags_object_library_shared ${variables[$key]}"
+    flags_object_library_shared="${flags_object_library_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_object_library_static-mode"
-  if [[ $flags_object_library_static == "" ]] ; then
-    flags_object_library_static=${variables[$key]}
+  if [[ ${flags_object_library_static} == "" ]] ; then
+    flags_object_library_static=${variables[${key}]}
   else
-    flags_object_library_static="$flags_object_library_static ${variables[$key]}"
+    flags_object_library_static="${flags_object_library_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_object_program-mode"
-  if [[ $flags_object_program == "" ]] ; then
-    flags_object_program=${variables[$key]}
+  if [[ ${flags_object_program} == "" ]] ; then
+    flags_object_program=${variables[${key}]}
   else
-    flags_object_program="$flags_object_program ${variables[$key]}"
+    flags_object_program="${flags_object_program} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_object_program_shared-mode"
-  if [[ $flags_object_program_shared == "" ]] ; then
-    flags_object_program_shared=${variables[$key]}
+  if [[ ${flags_object_program_shared} == "" ]] ; then
+    flags_object_program_shared=${variables[${key}]}
   else
-    flags_object_program_shared="$flags_object_program_shared ${variables[$key]}"
+    flags_object_program_shared="${flags_object_program_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_object_program_static-mode"
-  if [[ $flags_object_program_static == "" ]] ; then
-    flags_object_program_static=${variables[$key]}
+  if [[ ${flags_object_program_static} == "" ]] ; then
+    flags_object_program_static=${variables[${key}]}
   else
-    flags_object_program_static="$flags_object_program_static ${variables[$key]}"
+    flags_object_program_static="${flags_object_program_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_program-mode"
-  if [[ $flags_program == "" ]] ; then
-    flags_program=${variables[$key]}
+  if [[ ${flags_program} == "" ]] ; then
+    flags_program=${variables[${key}]}
   else
-    flags_program="$flags_program ${variables[$key]}"
+    flags_program="${flags_program} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_program_shared-mode"
-  if [[ $flags_program_shared == "" ]] ; then
-    flags_program_shared=${variables[$key]}
+  if [[ ${flags_program_shared} == "" ]] ; then
+    flags_program_shared=${variables[${key}]}
   else
-    flags_program_shared="$flags_program_shared ${variables[$key]}"
+    flags_program_shared="${flags_program_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_program_static-mode"
-  if [[ $flags_program_static == "" ]] ; then
-    flags_program_static=${variables[$key]}
+  if [[ ${flags_program_static} == "" ]] ; then
+    flags_program_static=${variables[${key}]}
   else
-    flags_program_static="$flags_program_static ${variables[$key]}"
+    flags_program_static="${flags_program_static} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_shared-mode"
-  if [[ $flags_shared == "" ]] ; then
-    flags_shared=${variables[$key]}
+  if [[ ${flags_shared} == "" ]] ; then
+    flags_shared=${variables[${key}]}
   else
-    flags_shared="$flags_shared ${variables[$key]}"
+    flags_shared="${flags_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "flags_static-mode"
-  if [[ $flags_static == "" ]] ; then
-    flags_static=${variables[$key]}
+  if [[ ${flags_static} == "" ]] ; then
+    flags_static=${variables[${key}]}
   else
-    flags_static="$flags_static ${variables[$key]}"
+    flags_static="${flags_static} ${variables[${key}]}"
   fi
 }
 
@@ -2133,56 +2134,56 @@ bootstrap_operation_build_prepare_headers() {
   local key=
 
   bootstrap_id "build_sources_headers-mode"
-  if [[ $sources_headers == "" ]] ; then
-    sources_headers=${variables[$key]}
+  if [[ ${sources_headers} == "" ]] ; then
+    sources_headers=${variables[${key}]}
   else
-    sources_headers="$sources_headers ${variables[$key]}"
+    sources_headers="${sources_headers} ${variables[${key}]}"
   fi
 
-  if [[ $build_shared == "yes" ]] ; then
+  if [[ ${build_shared} == "yes" ]] ; then
     bootstrap_id "build_sources_headers_shared"
-    if [[ $sources_headers == "" ]] ; then
-      sources_headers=${variables[$key]}
+    if [[ ${sources_headers} == "" ]] ; then
+      sources_headers=${variables[${key}]}
     else
-      sources_headers="$sources_headers ${variables[$key]}"
+      sources_headers="${sources_headers} ${variables[${key}]}"
     fi
 
     bootstrap_id "build_sources_headers_static"
-    if [[ $sources_headers == "" ]] ; then
-      sources_headers=${variables[$key]}
+    if [[ ${sources_headers} == "" ]] ; then
+      sources_headers=${variables[${key}]}
     else
-      sources_headers="$sources_headers ${variables[$key]}"
+      sources_headers="${sources_headers} ${variables[${key}]}"
     fi
   fi
 
-  if [[ $build_static == "yes" ]] ; then
+  if [[ ${build_static} == "yes" ]] ; then
     bootstrap_id "build_sources_headers_shared-mode"
-    if [[ $sources_headers == "" ]] ; then
-      sources_headers=${variables[$key]}
+    if [[ ${sources_headers} == "" ]] ; then
+      sources_headers=${variables[${key}]}
     else
-      sources_headers="$sources_headers ${variables[$key]}"
+      sources_headers="${sources_headers} ${variables[${key}]}"
     fi
 
     bootstrap_id "build_sources_headers_static-mode"
-    if [[ $sources_headers == "" ]] ; then
-      sources_headers=${variables[$key]}
+    if [[ ${sources_headers} == "" ]] ; then
+      sources_headers=${variables[${key}]}
     else
-      sources_headers="$sources_headers ${variables[$key]}"
+      sources_headers="${sources_headers} ${variables[${key}]}"
     fi
   fi
 
   bootstrap_id "path_headers-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_headers=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_headers=${variables[${key}]}
   else
     bootstrap_id "path_headers"
-    if [[ ${variables[$key]} != "" ]] ; then
-      path_headers=${variables[$key]}
+    if [[ ${variables[${key}]} != "" ]] ; then
+      path_headers=${variables[${key}]}
     fi
   fi
 
-  if [[ $path_headers != "" ]] ; then
-    path_headers=$(echo $path_headers | sed -e 's|/*$|/|')
+  if [[ ${path_headers} != "" ]] ; then
+    path_headers=$(echo ${path_headers} | sed -e 's|/*$|/|')
   fi
 }
 
@@ -2190,45 +2191,45 @@ bootstrap_operation_build_prepare_libraries() {
   local key=
 
   bootstrap_id "build_libraries-mode"
-  if [[ $libraries == "" ]] ; then
-    libraries=${variables[$key]}
+  if [[ ${libraries} == "" ]] ; then
+    libraries=${variables[${key}]}
   else
-    libraries="${variables[$key]} $libraries"
+    libraries="${variables[${key}]} ${libraries}"
   fi
 
   bootstrap_id "build_libraries_shared-mode"
-  if [[ $libraries_shared == "" ]] ; then
-    libraries_shared=${variables[$key]}
+  if [[ ${libraries_shared} == "" ]] ; then
+    libraries_shared=${variables[${key}]}
   else
-    libraries_shared="${variables[$key]} $libraries_shared"
+    libraries_shared="${variables[${key}]} ${libraries_shared}"
   fi
 
   bootstrap_id "build_libraries_static-mode"
-  if [[ $libraries_static == "" ]] ; then
-    libraries_static=${variables[$key]}
+  if [[ ${libraries_static} == "" ]] ; then
+    libraries_static=${variables[${key}]}
   else
-    libraries_static="${variables[$key]} $libraries_static"
+    libraries_static="${variables[${key}]} ${libraries_static}"
   fi
 
   bootstrap_id "build_sources_library-mode"
-  if [[ $sources_library == "" ]] ; then
-    sources_library=${variables[$key]}
+  if [[ ${sources_library} == "" ]] ; then
+    sources_library=${variables[${key}]}
   else
-    sources_library="$sources_library ${variables[$key]}"
+    sources_library="${sources_library} ${variables[${key}]}"
   fi
 
   bootstrap_id "build_sources_library_shared-mode"
-  if [[ $sources_library_shared == "" ]] ; then
-    sources_library_shared=${variables[$key]}
+  if [[ ${sources_library_shared} == "" ]] ; then
+    sources_library_shared=${variables[${key}]}
   else
-    sources_library_shared="$build_sources_library_shared ${variables[$key]}"
+    sources_library_shared="${build_sources_library_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "build_sources_library_static-mode"
-  if [[ $sources_library_static == "" ]] ; then
-    sources_library_static=${variables[$key]}
+  if [[ ${sources_library_static} == "" ]] ; then
+    sources_library_static=${variables[${key}]}
   else
-    sources_library_static="$build_sources_library_static ${variables[$key]}"
+    sources_library_static="${build_sources_library_static} ${variables[${key}]}"
   fi
 }
 
@@ -2236,287 +2237,287 @@ bootstrap_operation_build_prepare_objects() {
   local key=
 
   bootstrap_id "build_objects_library-mode"
-  if [[ $objects_library == "" ]] ; then
-    objects_library=${variables[$key]}
+  if [[ ${objects_library} == "" ]] ; then
+    objects_library=${variables[${key}]}
   else
-    objects_library="${variables[$key]} $objects_library"
+    objects_library="${variables[${key}]} ${objects_library}"
   fi
 
   bootstrap_id "build_objects_library_shared-mode"
-  if [[ $objects_library_shared == "" ]] ; then
-    objects_library_shared=${variables[$key]}
+  if [[ ${objects_library_shared} == "" ]] ; then
+    objects_library_shared=${variables[${key}]}
   else
-    objects_library_shared="${variables[$key]} $objects_library_shared"
+    objects_library_shared="${variables[${key}]} ${objects_library_shared}"
   fi
 
   bootstrap_id "build_objects_library_static-mode"
-  if [[ $objects_library_static == "" ]] ; then
-    objects_library_static=${variables[$key]}
+  if [[ ${objects_library_static} == "" ]] ; then
+    objects_library_static=${variables[${key}]}
   else
-    objects_library_static="${variables[$key]} $objects_library_static"
+    objects_library_static="${variables[${key}]} ${objects_library_static}"
   fi
 
   bootstrap_id "build_objects_program-mode"
-  if [[ $objects_program == "" ]] ; then
-    objects_program=${variables[$key]}
+  if [[ ${objects_program} == "" ]] ; then
+    objects_program=${variables[${key}]}
   else
-    objects_program="${variables[$key]} $objects_program"
+    objects_program="${variables[${key}]} ${objects_program}"
   fi
 
   bootstrap_id "build_objects_program_shared-mode"
-  if [[ $objects_program_shared == "" ]] ; then
-    objects_program_shared=${variables[$key]}
+  if [[ ${objects_program_shared} == "" ]] ; then
+    objects_program_shared=${variables[${key}]}
   else
-    objects_program_shared="${variables[$key]} $objects_program_shared"
+    objects_program_shared="${variables[${key}]} ${objects_program_shared}"
   fi
 
   bootstrap_id "build_objects_program_static-mode"
-  if [[ $objects_program_static == "" ]] ; then
-    objects_program_static=${variables[$key]}
+  if [[ ${objects_program_static} == "" ]] ; then
+    objects_program_static=${variables[${key}]}
   else
-    objects_program_static="${variables[$key]} $objects_program_static"
+    objects_program_static="${variables[${key}]} ${objects_program_static}"
   fi
 
-  if [[ $sources_object == "" ]] ; then
+  if [[ ${sources_object} == "" ]] ; then
     bootstrap_id "build_sources_object-mode"
-    sources_object=${variables[$key]}
+    sources_object=${variables[${key}]}
   fi
 
-  if [[ $sources_object_shared == "" ]] ; then
+  if [[ ${sources_object_shared} == "" ]] ; then
     bootstrap_id "build_sources_object_shared-mode"
-    sources_object_shared=${variables[$key]}
+    sources_object_shared=${variables[${key}]}
   fi
 
-  if [[ $sources_object_static == "" ]] ; then
+  if [[ ${sources_object_static} == "" ]] ; then
     bootstrap_id "build_sources_object_static-mode"
-    sources_object_static=${variables[$key]}
+    sources_object_static=${variables[${key}]}
   fi
 }
 
 bootstrap_operation_build_prepare_paths() {
   local key=
 
-  if [[ $override_path_sources == "" ]] ; then
+  if [[ ${override_path_sources} == "" ]] ; then
     bootstrap_id "path_sources-mode"
-    if [[ ${variables[$key]} != "" ]] ; then
-      path_sources=${variables[$key]}
+    if [[ ${variables[${key}]} != "" ]] ; then
+      path_sources=${variables[${key}]}
     else
       bootstrap_id "path_sources"
-      if [[ ${variables[$key]} != "" ]] ; then
-        path_sources=${variables[$key]}
+      if [[ ${variables[${key}]} != "" ]] ; then
+        path_sources=${variables[${key}]}
       fi
     fi
   fi
 
-  if [[ $path_sources != "" ]] ; then
-    path_sources=$(echo $path_sources | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_sources} != "" ]] ; then
+    path_sources=$(echo ${path_sources} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_sources_object-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_sources_object=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_sources_object=${variables[${key}]}
   else
     bootstrap_id "path_sources_object"
-    if [[ ${variables[$key]} != "" ]] ; then
-      path_sources_object=${variables[$key]}
+    if [[ ${variables[${key}]} != "" ]] ; then
+      path_sources_object=${variables[${key}]}
     fi
   fi
 
-  if [[ $path_sources_object != "" ]] ; then
-    path_sources_object=$(echo $path_sources_object | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_sources_object} != "" ]] ; then
+    path_sources_object=$(echo ${path_sources_object} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_headers-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_headers=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_headers=${variables[${key}]}
   fi
 
-  if [[ $path_headers != "" ]] ; then
-    path_headers=$(echo $path_headers | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_headers} != "" ]] ; then
+    path_headers=$(echo ${path_headers} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "has_path_standard-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    has_path_standard=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    has_path_standard=${variables[${key}]}
   fi
 
-  if [[ $has_path_standard == "no" ]] ; then
+  if [[ ${has_path_standard} == "no" ]] ; then
     path_language=
   else
     bootstrap_id "path_language-mode"
-    if [[ ${variables[$key]} != "" ]] ; then
-      path_language=${variables[$key]}
+    if [[ ${variables[${key}]} != "" ]] ; then
+      path_language=${variables[${key}]}
     else
       bootstrap_id "path_language"
-      if [[ ${variables[$key]} != "" ]] ; then
-        path_language=${variables[$key]}
+      if [[ ${variables[${key}]} != "" ]] ; then
+        path_language=${variables[${key}]}
       fi
     fi
 
-    if [[ $path_language != "" ]] ; then
-      path_language=$(echo $path_language | sed -e 's|//*|/|g' -e 's|/*$|/|')
+    if [[ ${path_language} != "" ]] ; then
+      path_language=$(echo ${path_language} | sed -e 's|//*|/|g' -e 's|/*$|/|')
     fi
   fi
 
   bootstrap_id "path_object_library-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_library=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_library=${variables[${key}]}
   fi
 
-  if [[ $path_object_library != "" ]] ; then
-    path_object_library=$(echo $path_object_library | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_library} != "" ]] ; then
+    path_object_library=$(echo ${path_object_library} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_program-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_program=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_program=${variables[${key}]}
   fi
 
-  if [[ $path_object_program != "" ]] ; then
-    path_object_program=$(echo $path_object_program | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_program} != "" ]] ; then
+    path_object_program=$(echo ${path_object_program} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_library_script-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_library_script=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_library_script=${variables[${key}]}
   fi
 
-  if [[ $path_library_script != "" ]] ; then
-    path_library_script=$(echo $path_library_script | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_library_script} != "" ]] ; then
+    path_library_script=$(echo ${path_library_script} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_library_shared-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_library_shared=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_library_shared=${variables[${key}]}
   fi
 
-  if [[ $path_library_shared != "" ]] ; then
-    path_library_shared=$(echo $path_library_shared | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_library_shared} != "" ]] ; then
+    path_library_shared=$(echo ${path_library_shared} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_library_static-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_library_static=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_library_static=${variables[${key}]}
   fi
 
-  if [[ $path_library_static != "" ]] ; then
-    path_library_static=$(echo $path_library_static | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_library_static} != "" ]] ; then
+    path_library_static=$(echo ${path_library_static} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_library_script-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_library_script=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_library_script=${variables[${key}]}
   fi
 
-  if [[ $path_object_library_script != "" ]] ; then
-    path_object_library_script=$(echo $path_object_library_script | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_library_script} != "" ]] ; then
+    path_object_library_script=$(echo ${path_object_library_script} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_library_shared-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_library_shared=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_library_shared=${variables[${key}]}
   fi
 
-  if [[ $path_object_library_shared != "" ]] ; then
-    path_object_library_shared=$(echo $path_object_library_shared | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_library_shared} != "" ]] ; then
+    path_object_library_shared=$(echo ${path_object_library_shared} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_library_static-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_library_static=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_library_static=${variables[${key}]}
   fi
 
-  if [[ $path_object_library_static != "" ]] ; then
-    path_object_library_static=$(echo $path_object_library_static | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_library_static} != "" ]] ; then
+    path_object_library_static=$(echo ${path_object_library_static} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_program_script-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_program_script=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_program_script=${variables[${key}]}
   fi
 
-  if [[ $path_object_program_script != "" ]] ; then
-    path_object_program_script=$(echo $path_object_program_script | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_program_script} != "" ]] ; then
+    path_object_program_script=$(echo ${path_object_program_script} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_program_shared-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_program_shared=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_program_shared=${variables[${key}]}
   fi
 
-  if [[ $path_object_program_shared != "" ]] ; then
-    path_object_program_shared=$(echo $path_object_program_shared | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_program_shared} != "" ]] ; then
+    path_object_program_shared=$(echo ${path_object_program_shared} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_program_static-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_program_static=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_program_static=${variables[${key}]}
   fi
 
-  if [[ $path_object_program_static != "" ]] ; then
-    path_object_program_static=$(echo $path_object_program_static | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_program_static} != "" ]] ; then
+    path_object_program_static=$(echo ${path_object_program_static} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_script-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_script=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_script=${variables[${key}]}
   fi
 
-  if [[ $path_object_script != "" ]] ; then
-    path_object_script=$(echo $path_object_script | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_script} != "" ]] ; then
+    path_object_script=$(echo ${path_object_script} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_shared-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_shared=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_shared=${variables[${key}]}
   fi
 
-  if [[ $path_object_shared != "" ]] ; then
-    path_object_shared=$(echo $path_object_shared | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_shared} != "" ]] ; then
+    path_object_shared=$(echo ${path_object_shared} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_object_static-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_object_static=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_object_static=${variables[${key}]}
   fi
 
-  if [[ $path_object_static != "" ]] ; then
-    path_object_static=$(echo $path_object_static | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_static} != "" ]] ; then
+    path_object_static=$(echo ${path_object_static} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
-  if [[ $path_object_static != "" ]] ; then
-    path_object_static=$(echo $path_object_static | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_object_static} != "" ]] ; then
+    path_object_static=$(echo ${path_object_static} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_program_script-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_program_script=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_program_script=${variables[${key}]}
   fi
 
-  if [[ $path_program_script != "" ]] ; then
-    path_program_script=$(echo $path_program_script | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_program_script} != "" ]] ; then
+    path_program_script=$(echo ${path_program_script} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_program_shared-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_program_shared=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_program_shared=${variables[${key}]}
   fi
 
-  if [[ $path_program_shared != "" ]] ; then
-    path_program_shared=$(echo $path_program_shared | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_program_shared} != "" ]] ; then
+    path_program_shared=$(echo ${path_program_shared} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
   bootstrap_id "path_program_static-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    path_program_static=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    path_program_static=${variables[${key}]}
   fi
 
-  if [[ $path_program_static != "" ]] ; then
-    path_program_static=$(echo $path_program_static | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_program_static} != "" ]] ; then
+    path_program_static=$(echo ${path_program_static} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 
-  if [[ $path_program_static != "" ]] ; then
-    path_program_static=$(echo $path_program_static | sed -e 's|//*|/|g' -e 's|/*$|/|')
+  if [[ ${path_program_static} != "" ]] ; then
+    path_program_static=$(echo ${path_program_static} | sed -e 's|//*|/|g' -e 's|/*$|/|')
   fi
 }
 
@@ -2524,24 +2525,24 @@ bootstrap_operation_build_prepare_programs() {
   local key=
 
   bootstrap_id "build_sources_program-mode"
-  if [[ $sources_program == "" ]] ; then
-    sources_program=${variables[$key]}
+  if [[ ${sources_program} == "" ]] ; then
+    sources_program=${variables[${key}]}
   else
-    sources_program="$sources_program ${variables[$key]}"
+    sources_program="${sources_program} ${variables[${key}]}"
   fi
 
   bootstrap_id "build_sources_program_shared-mode"
-  if [[ $sources_program_shared == "" ]] ; then
-    sources_program_shared=${variables[$key]}
+  if [[ ${sources_program_shared} == "" ]] ; then
+    sources_program_shared=${variables[${key}]}
   else
-    sources_program_shared="$sources_program_shared ${variables[$key]}"
+    sources_program_shared="${sources_program_shared} ${variables[${key}]}"
   fi
 
   bootstrap_id "build_sources_program_static-mode"
-  if [[ $sources_program_static == "" ]] ; then
-    sources_program_static=${variables[$key]}
+  if [[ ${sources_program_static} == "" ]] ; then
+    sources_program_static=${variables[${key}]}
   else
-    sources_program_static="$sources_program_static ${variables[$key]}"
+    sources_program_static="${sources_program_static} ${variables[${key}]}"
   fi
 }
 
@@ -2549,165 +2550,165 @@ bootstrap_operation_build_prepare_remaining() {
   local key=
 
   bootstrap_id "has-build_compiler-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "build_compiler-mode"
-    build_compiler=${variables[$key]}
+    build_compiler=${variables[${key}]}
   fi
 
   bootstrap_id "has-build_indexer-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "build_indexer-mode"
-    build_indexer=${variables[$key]}
+    build_indexer=${variables[${key}]}
   fi
 
   bootstrap_id "has-build_indexer_arguments-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "build_indexer_arguments-mode"
-    build_indexer_arguments=${variables[$key]}
+    build_indexer_arguments=${variables[${key}]}
   fi
 
   bootstrap_id "has-build_name-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "build_name-mode"
-    build_name=${variables[$key]}
+    build_name=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_major-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_major-mode"
-    version_major=${variables[$key]}
+    version_major=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_major_prefix-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_major_prefix-mode"
-    version_major_prefix=${variables[$key]}
+    version_major_prefix=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_minor-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_minor-mode"
-    version_minor=${variables[$key]}
+    version_minor=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_minor_prefix-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_minor_prefix-mode"
-    version_minor_prefix=${variables[$key]}
+    version_minor_prefix=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_micro-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_micro-mode"
-    version_micro=${variables[$key]}
+    version_micro=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_micro_prefix-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_micro_prefix-mode"
-    version_micro_prefix=${variables[$key]}
+    version_micro_prefix=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_nano-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_nano-mode"
-    version_nano=${variables[$key]}
+    version_nano=${variables[${key}]}
   fi
 
   bootstrap_id "has-version_nano_prefix-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "version_nano_prefix-mode"
-    version_nano_prefix=${variables[$key]}
+    version_nano_prefix=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_headers-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_headers-mode"
-    path_headers=${variables[$key]}
+    path_headers=${variables[${key}]}
   fi
 
   bootstrap_id "has-preserve_path_headers-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "preserve_path_headers-mode"
-    preserve_path_headers=${variables[$key]}
+    preserve_path_headers=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_library_script-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_library_script-mode"
-    path_library_script=${variables[$key]}
+    path_library_script=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_library_shared-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_library_shared-mode"
-    path_library_shared=${variables[$key]}
+    path_library_shared=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_library_static-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_library_static-mode"
-    path_library_static=${variables[$key]}
+    path_library_static=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_object_script-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_object_script-mode"
-    path_object_script=${variables[$key]}
+    path_object_script=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_object_shared-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_object_shared-mode"
-    path_object_shared=${variables[$key]}
+    path_object_shared=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_object_static-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_object_static-mode"
-    path_object_static=${variables[$key]}
+    path_object_static=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_program_script-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_program_script-mode"
-    path_program_script=${variables[$key]}
+    path_program_script=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_program_shared-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_program_shared-mode"
-    path_program_shared=${variables[$key]}
+    path_program_shared=${variables[${key}]}
   fi
 
   bootstrap_id "has-path_program_static-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "path_program_static-mode"
-    path_program_static=${variables[$key]}
+    path_program_static=${variables[${key}]}
   fi
 
   bootstrap_id "has-has_path_standard-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "has_path_standard-mode"
-    has_path_standard=${variables[$key]}
+    has_path_standard=${variables[${key}]}
   fi
 
   bootstrap_id "has-search_exclusive-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "search_exclusive-mode"
-    search_exclusive=${variables[$key]}
+    search_exclusive=${variables[${key}]}
   fi
 
   bootstrap_id "has-search_shared-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "search_shared-mode"
-    search_shared=${variables[$key]}
+    search_shared=${variables[${key}]}
   fi
 
   bootstrap_id "has-search_static-mode"
-  if [[ ${variables[$key]} == "yes" ]] ; then
+  if [[ ${variables[${key}]} == "yes" ]] ; then
     bootstrap_id "search_static-mode"
-    search_static=${variables[$key]}
+    search_static=${variables[${key}]}
   fi
 }
 
@@ -2715,10 +2716,10 @@ bootstrap_operation_build_prepare_settings() {
   local key=
 
   bootstrap_id "build_sources_setting-mode"
-  if [[ $sources_setting == "" ]] ; then
-    sources_setting=${variables[$key]}
+  if [[ ${sources_setting} == "" ]] ; then
+    sources_setting=${variables[${key}]}
   else
-    sources_setting="$sources_setting ${variables[$key]}"
+    sources_setting="${sources_setting} ${variables[${key}]}"
   fi
 }
 
@@ -2726,44 +2727,44 @@ bootstrap_operation_build_prepare_shared_static() {
   local key=
 
   bootstrap_id "build_shared-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    build_shared=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    build_shared=${variables[${key}]}
   fi
 
   bootstrap_id "build_static-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    build_static=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    build_static=${variables[${key}]}
   fi
 
-  if [[ $enable_shared == "yes" ]] ; then
+  if [[ ${enable_shared} == "yes" ]] ; then
     build_shared="yes"
     search_shared="yes"
-  elif [[ $enable_shared == "no" ]] ; then
+  elif [[ ${enable_shared} == "no" ]] ; then
     build_shared="no"
     search_shared="no"
   fi
 
-  if [[ $enable_static == "yes" ]] ; then
+  if [[ ${enable_static} == "yes" ]] ; then
     build_static="yes"
     search_static="yes"
-  elif [[ $enable_static == "no" ]] ; then
+  elif [[ ${enable_static} == "no" ]] ; then
     build_static="no"
     search_static="no"
   fi
 
-  if [[ $search_shared == "no" ]] ; then
+  if [[ ${search_shared} == "no" ]] ; then
     arguments_shared=
   fi
 
-  if [[ $search_static == "no" ]] ; then
+  if [[ ${search_static} == "no" ]] ; then
     arguments_static=
   fi
 }
 
 bootstrap_operation_build_validate_build() {
 
-  if [[ $build_compiler == "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${build_compiler} == "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: Cannot Build, no '${c_notice}build_compiler${c_error}' specified, such as '${c_notice}gcc${c_error}'.${c_reset}"
@@ -2772,8 +2773,8 @@ bootstrap_operation_build_validate_build() {
     let failure=1
   fi
 
-  if [[ $build_indexer == "" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${build_indexer} == "" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: Cannot Build, no '${c_notice}build_indexer${c_error}' specified, such as '${c_notice}ar${c_error}'.${c_reset}"
@@ -2782,7 +2783,7 @@ bootstrap_operation_build_validate_build() {
     let failure=1
   fi
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -2791,8 +2792,8 @@ bootstrap_operation_build_validate_build() {
 
 bootstrap_operation_build_validate_paths() {
 
-  if [[ $path_sources == "" || ! -d $path_sources ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${path_sources} == "" || ! -d ${path_sources} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The sources directory ${c_notice}${path_sources}${c_error} is not a valid directory.${c_reset}"
@@ -2801,8 +2802,8 @@ bootstrap_operation_build_validate_paths() {
     let failure=1
   fi
 
-  if [[ $failure == "" && $path_sources_object != "" && ! -d $path_sources_object ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${failure} == "" && ${path_sources_object} != "" && ! -d ${path_sources_object} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: The sources object directory ${c_notice}${path_sources_object}${c_error} is not a valid directory.${c_reset}"
@@ -2811,7 +2812,7 @@ bootstrap_operation_build_validate_paths() {
     let failure=1
   fi
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -2821,15 +2822,15 @@ bootstrap_operation_build_validate_paths() {
 bootstrap_operation_build_validate_search() {
 
   # When not in search exclusive mode, allow static libraries to be linked into shared libraries if the shared library is not found first.
-  if [[ $search_exclusive == "no" ]] ; then
-    arguments_shared="$arguments_shared $arguments_static"
+  if [[ ${search_exclusive} == "no" ]] ; then
+    arguments_shared="${arguments_shared} ${arguments_static}"
   fi
 }
 
 bootstrap_operation_build_validate_shared_static() {
 
-  if [[ $build_shared != "yes" && $build_static != "yes" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${build_shared} != "yes" && ${build_static} != "yes" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: Cannot Build, either build_shared or build_static must be set to 'yes'.${c_reset}"
@@ -2838,8 +2839,8 @@ bootstrap_operation_build_validate_shared_static() {
     let failure=1
   fi
 
-  if [[ $search_shared != "yes" && $search_static != "yes" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${search_shared} != "yes" && ${search_static} != "yes" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       bootstrap_print_first
 
       echo -e "${c_error}ERROR: Cannot Build, either search_shared or search_static must be set to 'yes'.${c_reset}"
@@ -2848,7 +2849,7 @@ bootstrap_operation_build_validate_shared_static() {
     let failure=1
   fi
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -2857,9 +2858,9 @@ bootstrap_operation_build_validate_shared_static() {
 
 bootstrap_operation_build_validate_sources() {
 
-  for i in $sources_script ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_script} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_script path provided: '${i}'.${c_reset}"
@@ -2869,9 +2870,9 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  for i in $sources_headers ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_headers} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_headers path provided: '${i}'.${c_reset}"
@@ -2881,9 +2882,9 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  for i in $sources_library ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_library} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_library path provided: '${i}'.${c_reset}"
@@ -2893,9 +2894,9 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  for i in $sources_library_object ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_library_object} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_library_object path provided: '${i}'.${c_reset}"
@@ -2905,9 +2906,9 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  for i in $sources_program_object ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_program_object} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_program_object path provided: '${i}'.${c_reset}"
@@ -2917,9 +2918,9 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  for i in $sources_program ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_program} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_program path provided: '${i}'.${c_reset}"
@@ -2929,9 +2930,9 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  for i in $sources_documentation ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_documentation} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_documentation path provided: '${i}'.${c_reset}"
@@ -2941,9 +2942,9 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  for i in $sources_setting ; do
-    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+  for i in ${sources_setting} ; do
+    if [[ ${i} != "$(echo ${i} | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         bootstrap_print_first
 
         echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_setting path provided: '${i}'.${c_reset}"
@@ -2953,7 +2954,7 @@ bootstrap_operation_build_validate_sources() {
     fi
   done
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -2964,57 +2965,57 @@ bootstrap_operation_build_prepare_versions() {
   local key=
 
   bootstrap_id "version_file-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    version_file_value=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    version_file_value=${variables[${key}]}
   fi
 
   bootstrap_id "version_target-mode"
-  if [[ ${variables[$key]} != "" ]] ; then
-    version_target_value=${variables[$key]}
+  if [[ ${variables[${key}]} != "" ]] ; then
+    version_target_value=${variables[${key}]}
   fi
 
-  if [[ $version_file_value == "" ]] ; then
+  if [[ ${version_file_value} == "" ]] ; then
     version_file_value="micro"
   fi
 
-  if [[ $version_target_value == "" ]] ; then
+  if [[ ${version_target_value} == "" ]] ; then
     version_target_value="major"
   fi
 
-  if [[ $version_major == "" ]] ; then
+  if [[ ${version_major} == "" ]] ; then
     version_major_prefix=
   fi
 
-  if [[ $version_minor == "" ]] ; then
+  if [[ ${version_minor} == "" ]] ; then
     version_minor_prefix=
   fi
 
-  if [[ $version_micro == "" ]] ; then
+  if [[ ${version_micro} == "" ]] ; then
     version_micro_prefix=
   fi
 
-  if [[ $version_nano == "" ]] ; then
+  if [[ ${version_nano} == "" ]] ; then
     version_nano_prefix=
   fi
 
-  if [[ $version_file_value == "major" ]] ; then
-    version_file="$version_major_prefix$version_major"
-  elif [[ $version_file_value == "minor" ]] ; then
-    version_file="$version_major_prefix$version_major$version_minor_prefix$version_minor"
-  elif [[ $version_file_value == "micro" ]] ; then
-    version_file="$version_major_prefix$version_major$version_minor_prefix$version_minor$version_micro_prefix$version_micro"
-  elif [[ $version_file_value == "nano" ]] ; then
-    version_file="$version_major_prefix$version_major$version_minor_prefix$version_minor$version_micro_prefix$version_micro$version_nano_prefix$version_nano"
+  if [[ ${version_file_value} == "major" ]] ; then
+    version_file="${version_major_prefix}${version_major}"
+  elif [[ ${version_file_value} == "minor" ]] ; then
+    version_file="${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}"
+  elif [[ ${version_file_value} == "micro" ]] ; then
+    version_file="${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro}"
+  elif [[ ${version_file_value} == "nano" ]] ; then
+    version_file="${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro}${version_nano_prefix}${version_nano}"
   fi
 
-  if [[ $version_target_value == "major" ]] ; then
-    version_target="$version_major_prefix$version_major"
-  elif [[ $version_target_value == "minor" ]] ; then
-    version_target="$version_major_prefix$version_major$version_minor_prefix$version_minor"
-  elif [[ $version_target_value == "micro" ]] ; then
-    version_target="$version_major_prefix$version_major$version_minor_prefix$version_minor$version_micro_prefix$version_micro"
-  elif [[ $version_target_value == "nano" ]] ; then
-    version_target="$version_major_prefix$version_major$version_minor_prefix$version_minor$version_micro_prefix$version_micro$version_nano_prefix$version_nano"
+  if [[ ${version_target_value} == "major" ]] ; then
+    version_target="${version_major_prefix}${version_major}"
+  elif [[ ${version_target_value} == "minor" ]] ; then
+    version_target="${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}"
+  elif [[ ${version_target_value} == "micro" ]] ; then
+    version_target="${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro}"
+  elif [[ ${version_target_value} == "nano" ]] ; then
+    version_target="${version_major_prefix}${version_major}${version_minor_prefix}${version_minor}${version_micro_prefix}${version_micro}${version_nano_prefix}${version_nano}"
   fi
 }
 
@@ -3023,27 +3024,27 @@ bootstrap_operation_clean() {
   local i=
 
   for i in ${path_build}{documents,includes,libraries,objects,programs,settings,stage} ; do
-    if [[ -e $i ]] ; then
-      rm $verbose_common -Rf $i
+    if [[ -e ${i} ]] ; then
+      rm ${verbose_common} -Rf ${i}
     fi
   done
 
   if [[ -f ${project_built}.prepared ]] ; then
-    rm $verbose_common -f ${project_built}-${settings_name}.prepared
+    rm ${verbose_common} -f ${project_built}-${settings_name}.prepared
   fi
 
   if [[ -f ${project_built_shared}-${settings_name}.built ]] ; then
-    rm $verbose_common -f ${project_built_shared}-${settings_name}.built
+    rm ${verbose_common} -f ${project_built_shared}-${settings_name}.built
   fi
 
   if [[ -f ${project_built_static}-${settings_name}.built ]] ; then
-    rm $verbose_common -f ${project_built_static}-${settings_name}.built
+    rm ${verbose_common} -f ${project_built_static}-${settings_name}.built
   fi
 }
 
 bootstrap_print_first() {
 
-  if [[ $print_line_first == "yes" ]] ; then
+  if [[ ${print_line_first} == "yes" ]] ; then
     echo
 
     print_line_first=
@@ -3052,7 +3053,7 @@ bootstrap_print_first() {
 
 bootstrap_print_last() {
 
-  if [[ $print_line_last == "yes" ]] ; then
+  if [[ ${print_line_last} == "yes" ]] ; then
     echo
   fi
 }
index 1ec62f1007baf1bdcb21c4efc85c248e8775ec2a..5527ace9390d20af43d39b64dc9a99ae86b0c870 100644 (file)
 
 install_main() {
 
-  if [[ $SHELL_ENGINE == "zsh" ]] ; then
+  if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
     emulate ksh
   fi
 
   local public_name="Simple FLL Project Install Script"
   local system_name=install
-  local called_name=$(basename $0)
+  local called_name=$(basename ${0})
   local version=0.6.5
 
   local grab_next=
@@ -87,133 +87,133 @@ install_main() {
   if [[ $# -gt 0 ]] ; then
     t=$#
 
-    while [[ $i -lt $t ]] ; do
-      let i=$i+1
+    while [[ ${i} -lt ${t} ]] ; do
+      let i=${i}+1
 
-      if [[ $SHELL_ENGINE == "zsh" ]] ; then
+      if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
         p=${(P)i}
       else
         p=${!i}
       fi
 
-      if [[ $grab_next == "" ]] ; then
-        if [[ $p == "-h" || $p == "--help" ]] ; then
+      if [[ ${grab_next} == "" ]] ; then
+        if [[ ${p} == "-h" || ${p} == "--help" ]] ; then
           do_help=yes
-        elif [[ $p == "+C" || $p == "++copyright" ]] ; then
+        elif [[ ${p} == "+C" || ${p} == "++copyright" ]] ; then
           do_copyright="yes"
-        elif [[ $p == "+d" || $p == "++dark" ]] ; then
+        elif [[ ${p} == "+d" || ${p} == "++dark" ]] ; then
           do_color="dark"
           context="+d"
-        elif [[ $p == "+l" || $p == "++light" ]] ; then
+        elif [[ ${p} == "+l" || ${p} == "++light" ]] ; then
           do_color="light"
           context="+l"
-        elif [[ $p == "+n" || $p == "++no_color" ]] ; then
+        elif [[ ${p} == "+n" || ${p} == "++no_color" ]] ; then
           do_color=none
           context="+n"
-        elif [[ $p == "+Q" || $p == "++quiet" ]] ; then
+        elif [[ ${p} == "+Q" || ${p} == "++quiet" ]] ; then
           verbosity="quiet"
           verbose="+Q"
           verbose_common=
-        elif [[ $p == "+N" || $p == "++normal" ]] ; then
+        elif [[ ${p} == "+N" || ${p} == "++normal" ]] ; then
           verbosity=
           verbose="+N"
           verbose_common=
-        elif [[ $p == "+E" || $p == "++error" ]] ; then
+        elif [[ ${p} == "+E" || ${p} == "++error" ]] ; then
           verbosity="error"
           verbose="+E"
           verbose_common=
-        elif [[ $p == "+V" || $p == "++verbose" ]] ; then
+        elif [[ ${p} == "+V" || ${p} == "++verbose" ]] ; then
           verbosity="verbose"
           verbose="+V"
           verbose_common="-v"
-        elif [[ $p == "+D" || $p == "++debug" ]] ; then
+        elif [[ ${p} == "+D" || ${p} == "++debug" ]] ; then
           verbosity="debug"
           verbose="+D"
           verbose_common="-v"
-        elif [[ $p == "+v" || $p == "++version" ]] ; then
-          echo $version
+        elif [[ ${p} == "+v" || ${p} == "++version" ]] ; then
+          echo ${version}
           return 0
-        elif [[ $p == "-b" || $p == "--build" ]] ; then
+        elif [[ ${p} == "-b" || ${p} == "--build" ]] ; then
           grab_next=path_build
-        elif [[ $p == "-P" || $p == "--prefix" ]] ; then
+        elif [[ ${p} == "-P" || ${p} == "--prefix" ]] ; then
           grab_next=prefix
-        elif [[ $p == "-B" || $p == "--bindir" ]] ; then
+        elif [[ ${p} == "-B" || ${p} == "--bindir" ]] ; then
           grab_next=bindir
-        elif [[ $p == "-D" || $p == "--docdir" ]] ; then
+        elif [[ ${p} == "-D" || ${p} == "--docdir" ]] ; then
           grab_next=docdir
-        elif [[ $p == "-E" || $p == "--etcdir" ]] ; then
+        elif [[ ${p} == "-E" || ${p} == "--etcdir" ]] ; then
           grab_next=etcdir
-        elif [[ $p == "-I" || $p == "--includedir" ]] ; then
+        elif [[ ${p} == "-I" || ${p} == "--includedir" ]] ; then
           grab_next=includedir
-        elif [[ $p == "-L" || $p == "--libdir" ]] ; then
+        elif [[ ${p} == "-L" || ${p} == "--libdir" ]] ; then
           grab_next=libdir
-        elif [[ $p == "-w" || $p == "--work" ]] ; then
+        elif [[ ${p} == "-w" || ${p} == "--work" ]] ; then
           grab_next=work
-        elif [[ $p == "--enable-doc" ]] ; then
+        elif [[ ${p} == "--enable-doc" ]] ; then
           enable_documentation="yes"
-        elif [[ $p == "--disable-doc" ]] ; then
+        elif [[ ${p} == "--disable-doc" ]] ; then
           enable_documentation="no"
-        elif [[ $p == "--enable-settings" ]] ; then
+        elif [[ ${p} == "--enable-settings" ]] ; then
           enable_settings="yes"
-        elif [[ $p == "--disable-settings" ]] ; then
+        elif [[ ${p} == "--disable-settings" ]] ; then
           enable_settings="no"
-        elif [[ $p == "--enable-shared" ]] ; then
+        elif [[ ${p} == "--enable-shared" ]] ; then
           enable_shared="yes"
-        elif [[ $p == "--disable-shared" ]] ; then
+        elif [[ ${p} == "--disable-shared" ]] ; then
           enable_shared="no"
-        elif [[ $p == "--disable-shared-programs" ]] ; then
+        elif [[ ${p} == "--disable-shared-programs" ]] ; then
           enable_shared_programs="no"
-        elif [[ $p == "--disable-shared-libraries" ]] ; then
+        elif [[ ${p} == "--disable-shared-libraries" ]] ; then
           enable_shared_libraries="no"
-        elif [[ $p == "--disable-static-programs" ]] ; then
+        elif [[ ${p} == "--disable-static-programs" ]] ; then
           enable_static_programs="no"
-        elif [[ $p == "--disable-static-libraries" ]] ; then
+        elif [[ ${p} == "--disable-static-libraries" ]] ; then
           enable_static_libraries="no"
-        elif [[ $p == "--enable-static" ]] ; then
+        elif [[ ${p} == "--enable-static" ]] ; then
           enable_static="yes"
-        elif [[ $p == "--disable-static" ]] ; then
+        elif [[ ${p} == "--disable-static" ]] ; then
           enable_static="no"
-        elif [[ $p == "--enable-includes" ]] ; then
+        elif [[ ${p} == "--enable-includes" ]] ; then
           enable_includes="yes"
-        elif [[ $p == "--disable-includes" ]] ; then
+        elif [[ ${p} == "--disable-includes" ]] ; then
           enable_includes="no"
-        elif [[ $p == "--libraries-static" ]] ; then
+        elif [[ ${p} == "--libraries-static" ]] ; then
           grab_next="destination_libraries_static"
-        elif [[ $p == "--libraries-shared" ]] ; then
+        elif [[ ${p} == "--libraries-shared" ]] ; then
           grab_next="destination_libraries_shared"
-        elif [[ $p == "--programs-static" ]] ; then
+        elif [[ ${p} == "--programs-static" ]] ; then
           grab_next="destination_programs_static"
-        elif [[ $p == "--programs-shared" ]] ; then
+        elif [[ ${p} == "--programs-shared" ]] ; then
           grab_next="destination_programs_shared"
-        elif [[ $operation_failure == "" ]] ; then
-          operation="$p"
+        elif [[ ${operation_failure} == "" ]] ; then
+          operation="${p}"
           operation_failure=fail-unsupported
         fi
       else
-        if [[ $grab_next == "path_build" ]] ; then
-          path_build=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "prefix" ]] ; then
-          destination_prefix=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "bindir" ]] ; then
-          destination_programs=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "docdir" ]] ; then
-          destination_documentation=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "etcdir" ]] ; then
-          destination_settings=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "includedir" ]] ; then
-          destination_includes=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "libdir" ]] ; then
-          destination_libraries=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "work" ]] ; then
-          work=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "destination_libraries_static" ]] ; then
-          destination_libraries_static=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "destination_libraries_shared" ]] ; then
-          destination_libraries_shared=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "destination_programs_static" ]] ; then
-          destination_programs_static=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
-        elif [[ $grab_next == "destination_programs_shared" ]] ; then
-          destination_programs_shared=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        if [[ ${grab_next} == "path_build" ]] ; then
+          path_build=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "prefix" ]] ; then
+          destination_prefix=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "bindir" ]] ; then
+          destination_programs=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "docdir" ]] ; then
+          destination_documentation=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "etcdir" ]] ; then
+          destination_settings=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "includedir" ]] ; then
+          destination_includes=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "libdir" ]] ; then
+          destination_libraries=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "work" ]] ; then
+          work=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "destination_libraries_static" ]] ; then
+          destination_libraries_static=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "destination_libraries_shared" ]] ; then
+          destination_libraries_shared=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "destination_programs_static" ]] ; then
+          destination_programs_static=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "destination_programs_shared" ]] ; then
+          destination_programs_shared=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
         fi
 
         grab_next=
@@ -223,32 +223,32 @@ install_main() {
     p=
   fi
 
-  if [[ $verbosity == "quiet" ]] ; then
+  if [[ ${verbosity} == "quiet" ]] ; then
     print_line_first="no"
     print_line_last="no"
   fi
 
   install_handle_colors
 
-  if [[ $do_help == "yes" ]] ; then
+  if [[ ${do_help} == "yes" ]] ; then
     install_help
     install_cleanup
 
     return 0
   fi
 
-  if [[ $do_copyright == "yes" ]] ; then
+  if [[ ${do_copyright} == "yes" ]] ; then
     install_copyright
     install_cleanup
 
     return 0
   fi
 
-  if [[ $operation_failure == "fail-unsupported" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${operation_failure} == "fail-unsupported" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The operation ${c_notice}$operation${c_error} was not recognized.${c_reset}"
+      echo -e "${c_error}ERROR: The operation ${c_notice}${operation}${c_error} was not recognized.${c_reset}"
 
       install_print_last
     fi
@@ -258,11 +258,11 @@ install_main() {
     return 1
   fi
 
-  if [[ ! -d $path_build ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ! -d ${path_build} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The build path ${c_notice}$path_build${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The build path ${c_notice}${path_build}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -272,11 +272,11 @@ install_main() {
     return 1
   fi
 
-  if [[ $work == "" && $destination_prefix != "" && ! -d $destination_prefix ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} == "" && ${destination_prefix} != "" && ! -d ${destination_prefix} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The destination prefix ${c_notice}$destination_prefix${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The destination prefix ${c_notice}${destination_prefix}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -286,65 +286,65 @@ install_main() {
     return 1
   fi
 
-  if [[ $destination_prefix != "" ]] ; then
-    if [[ $(echo $destination_documentation | grep -o '^/') == "" ]] ; then
-      destination_documentation="$destination_prefix$destination_documentation"
+  if [[ ${destination_prefix} != "" ]] ; then
+    if [[ $(echo ${destination_documentation} | grep -o '^/') == "" ]] ; then
+      destination_documentation="${destination_prefix}${destination_documentation}"
     fi
 
-    if [[ $(echo $destination_programs | grep -o '^/') == "" ]] ; then
-      destination_programs="$destination_prefix$destination_programs"
+    if [[ $(echo ${destination_programs} | grep -o '^/') == "" ]] ; then
+      destination_programs="${destination_prefix}${destination_programs}"
     fi
 
-    if [[ $(echo $destination_includes | grep -o '^/') == "" ]] ; then
-      destination_includes="$destination_prefix$destination_includes"
+    if [[ $(echo ${destination_includes} | grep -o '^/') == "" ]] ; then
+      destination_includes="${destination_prefix}${destination_includes}"
     fi
 
-    if [[ $(echo $destination_libraries | grep -o '^/') == "" ]] ; then
-      destination_libraries="$destination_prefix$destination_libraries"
+    if [[ $(echo ${destination_libraries} | grep -o '^/') == "" ]] ; then
+      destination_libraries="${destination_prefix}${destination_libraries}"
     fi
 
-    if [[ $(echo $destination_settings | grep -o '^/') == "" ]] ; then
-      destination_settings="$destination_prefix$destination_settings"
+    if [[ $(echo ${destination_settings} | grep -o '^/') == "" ]] ; then
+      destination_settings="${destination_prefix}${destination_settings}"
     fi
   fi
 
-  if [[ $destination_libraries_static != "" ]] ; then
-    if [[ $(echo $destination_libraries_static | grep -o '^/') == "" ]] ; then
-      destination_libraries_static=$destination_libraries$destination_libraries_static
+  if [[ ${destination_libraries_static} != "" ]] ; then
+    if [[ $(echo ${destination_libraries_static} | grep -o '^/') == "" ]] ; then
+      destination_libraries_static=${destination_libraries}${destination_libraries_static}
     fi
   else
-    destination_libraries_static=$destination_libraries
+    destination_libraries_static=${destination_libraries}
   fi
 
-  if [[ $destination_libraries_shared != "" ]] ; then
-    if [[ $(echo $destination_libraries_shared | grep -o '^/') == "" ]] ; then
-      destination_libraries_shared=$destination_libraries$destination_libraries_shared
+  if [[ ${destination_libraries_shared} != "" ]] ; then
+    if [[ $(echo ${destination_libraries_shared} | grep -o '^/') == "" ]] ; then
+      destination_libraries_shared=${destination_libraries}${destination_libraries_shared}
     fi
   else
-    destination_libraries_shared=$destination_libraries
+    destination_libraries_shared=${destination_libraries}
   fi
 
-  if [[ $destination_programs_static != "" ]] ; then
-    if [[ $(echo $destination_programs_static | grep -o '^/') == "" ]] ; then
-      destination_programs_static=$destination_programs$destination_programs_static
+  if [[ ${destination_programs_static} != "" ]] ; then
+    if [[ $(echo ${destination_programs_static} | grep -o '^/') == "" ]] ; then
+      destination_programs_static=${destination_programs}${destination_programs_static}
     fi
   else
-    destination_programs_static=$destination_programs
+    destination_programs_static=${destination_programs}
   fi
 
-  if [[ $destination_programs_shared != "" ]] ; then
-    if [[ $(echo $destination_programs_shared | grep -o '^/') == "" ]] ; then
-      destination_programs_shared=$destination_programs$destination_programs_shared
+  if [[ ${destination_programs_shared} != "" ]] ; then
+    if [[ $(echo ${destination_programs_shared} | grep -o '^/') == "" ]] ; then
+      destination_programs_shared=${destination_programs}${destination_programs_shared}
     fi
   else
-    destination_programs_shared=$destination_programs
+    destination_programs_shared=${destination_programs}
   fi
 
-  if [[ $work != "" && ! -d $work ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} != "" && ! -d ${work} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The work directory ${c_notice}$work${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The work directory ${c_notice}${work}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -354,11 +354,11 @@ install_main() {
     return 1
   fi
 
-  if [[ $work == "" && -e $destination_programs && ! -d $destination_programs ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} == "" && -e ${destination_programs} && ! -d ${destination_programs} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The destination bindir ${c_notice}$destination_programs${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The destination bindir ${c_notice}${destination_programs}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -368,11 +368,11 @@ install_main() {
     return 1
   fi
 
-  if [[ $work == "" && -e $destination_programs_static && ! -d $destination_programs_static ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} == "" && -e ${destination_programs_static} && ! -d ${destination_programs_static} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The destination (${c_notice}static${c_error}) bindir ${c_notice}$destination_programs_static${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The destination (${c_notice}static${c_error}) bindir ${c_notice}${destination_programs_static}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -382,11 +382,11 @@ install_main() {
     return 1
   fi
 
-  if [[ $work == "" && -e $destination_programs_shared && ! -d $destination_programs_shared ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} == "" && -e ${destination_programs_shared} && ! -d ${destination_programs_shared} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The destination (${c_notice}shared${c_error}) bindir ${c_notice}$destination_programs_shared${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The destination (${c_notice}shared${c_error}) bindir ${c_notice}${destination_programs_shared}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -396,11 +396,11 @@ install_main() {
     return 1
   fi
 
-  if [[ $work == "" && -e $destination_includes && ! -d $destination_includes ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} == "" && -e ${destination_includes} && ! -d ${destination_includes} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The destination incluedir ${c_notice}$destination_includes${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The destination incluedir ${c_notice}${destination_includes}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -410,11 +410,11 @@ install_main() {
     return 1
   fi
 
-  if [[ $work == "" && -e $destination_libraries_static && ! -d $destination_libraries_static ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} == "" && -e ${destination_libraries_static} && ! -d ${destination_libraries_static} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The destination (${c_notice}static${c_error}) libdir ${c_notice}$destination_libraries_static${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The destination (${c_notice}static${c_error}) libdir ${c_notice}${destination_libraries_static}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -424,11 +424,11 @@ install_main() {
     return 1
   fi
 
-  if [[ $work == "" && -e $destination_libraries_shared && ! -d $destination_libraries_shared ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${work} == "" && -e ${destination_libraries_shared} && ! -d ${destination_libraries_shared} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       install_print_first
 
-      echo -e "${c_error}ERROR: The destination (${c_notice}shared${c_error}) libdir ${c_notice}$destination_libraries_shared${c_error} is not a valid directory.${c_reset}"
+      echo -e "${c_error}ERROR: The destination (${c_notice}shared${c_error}) libdir ${c_notice}${destination_libraries_shared}${c_error} is not a valid directory.${c_reset}"
 
       install_print_last
     fi
@@ -440,15 +440,15 @@ install_main() {
 
   install_perform_install
 
-  if [[ $verbosity != "quiet" ]] ; then
-    if [[ $failure != "" || $verbosity != "error" ]] ; then
+  if [[ ${verbosity} != "quiet" ]] ; then
+    if [[ ${failure} != "" || ${verbosity} != "error" ]] ; then
       install_print_last
     fi
   fi
 
   install_cleanup
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -457,14 +457,14 @@ install_main() {
 
 install_handle_colors() {
 
-  if [[ $do_color == "light" ]] ; then
+  if [[ ${do_color} == "light" ]] ; then
     c_error="\\033[1;31m"
     c_warning="\\033[0;31m"
     c_title="\\033[1;34m"
     c_highlight="\\033[0;34m"
     c_notice="\\033[0;01m"
     c_important="\\033[0;35m"
-  elif [[ $do_color == "none" ]] ; then
+  elif [[ ${do_color} == "none" ]] ; then
     c_reset=
     c_title=
     c_error=
@@ -551,17 +551,17 @@ install_perform_install() {
   local path=
   local message=
 
-  if [[ $enable_shared == "no" ]] ; then
+  if [[ ${enable_shared} == "no" ]] ; then
     enable_shared_programs="no"
     enable_shared_libraries="no"
   fi
 
-  if [[ $enable_static == "no" ]] ; then
+  if [[ ${enable_static} == "no" ]] ; then
     enable_static_programs="no"
     enable_static_libraries="no"
   fi
 
-  if [[ $work == "" ]] ; then
+  if [[ ${work} == "" ]] ; then
     message="install destination directory"
   else
     message="work directory"
@@ -578,10 +578,10 @@ install_perform_install() {
   fi
 
   if [[ ! -d ${destination_prefix} ]] ; then
-    mkdir $verbose_common ${destination_prefix}
+    mkdir ${verbose_common} ${destination_prefix}
 
     if [[ $? -ne 0 ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         install_print_first
 
         echo -e "${c_error}ERROR: Failed to create install ${message} ${c_notice}${destination_prefix}${c_error}.${c_reset}"
@@ -591,12 +591,12 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $enable_shared_programs == "yes" || $enable_static_programs == "yes" ]] ; then
+  if [[ ${enable_shared_programs} == "yes" || ${enable_static_programs} == "yes" ]] ; then
     if [[ -d ${path_build}${path_programs} && ! -d ${destination_programs} ]] ; then
-      mkdir $verbose_common ${destination_programs}
+      mkdir ${verbose_common} ${destination_programs}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create install ${message} ${c_notice}${destination_programs}${c_error}.${c_reset}"
@@ -606,11 +606,11 @@ install_perform_install() {
       fi
     fi
 
-    if [[ $enable_shared_programs == "yes" && -d ${path_build}${path_programs}${path_shared} && ! -d ${destination_programs_shared} ]] ; then
-      mkdir $verbose_common ${destination_programs_shared}
+    if [[ ${enable_shared_programs} == "yes" && -d ${path_build}${path_programs}${path_shared} && ! -d ${destination_programs_shared} ]] ; then
+      mkdir ${verbose_common} ${destination_programs_shared}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create install ${message} ${c_notice}${destination_programs_shared}${c_error}.${c_reset}"
@@ -620,11 +620,11 @@ install_perform_install() {
       fi
     fi
 
-    if [[ $enable_static_programs == "yes" && -d ${path_build}${path_programs}${path_static} && ! -d ${destination_programs_static} ]] ; then
-      mkdir $verbose_common ${destination_programs_static}
+    if [[ ${enable_static_programs} == "yes" && -d ${path_build}${path_programs}${path_static} && ! -d ${destination_programs_static} ]] ; then
+      mkdir ${verbose_common} ${destination_programs_static}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create install ${message} ${c_notice}${destination_programs_static}${c_error}.${c_reset}"
@@ -635,12 +635,12 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $enable_shared_libraries == "yes" || $enable_static_libraries == "yes" ]] ; then
+  if [[ ${enable_shared_libraries} == "yes" || ${enable_static_libraries} == "yes" ]] ; then
     if [[ -d ${path_build}${path_libraries} && ! -d ${destination_libraries} ]] ; then
-      mkdir $verbose_common ${destination_libraries}
+      mkdir ${verbose_common} ${destination_libraries}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create install ${message} ${c_notice}${destination_libraries}${c_error}.${c_reset}"
@@ -650,11 +650,11 @@ install_perform_install() {
       fi
     fi
 
-    if [[ $enable_shared_libraries == "yes" && -d ${path_build}${path_libraries}${path_shared} && ! -d ${destination_libraries_shared} ]] ; then
-      mkdir $verbose_common ${destination_libraries_shared}
+    if [[ ${enable_shared_libraries} == "yes" && -d ${path_build}${path_libraries}${path_shared} && ! -d ${destination_libraries_shared} ]] ; then
+      mkdir ${verbose_common} ${destination_libraries_shared}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create ${message} ${c_notice}${destination_libraries_shared}${c_error}.${c_reset}"
@@ -664,11 +664,11 @@ install_perform_install() {
       fi
     fi
 
-    if [[ $enable_static_libraries == "yes" && -d ${path_build}${path_libraries}${path_static} && ! -d ${destination_libraries_static} ]] ; then
-      mkdir $verbose_common ${destination_libraries_static}
+    if [[ ${enable_static_libraries} == "yes" && -d ${path_build}${path_libraries}${path_static} && ! -d ${destination_libraries_static} ]] ; then
+      mkdir ${verbose_common} ${destination_libraries_static}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create ${message} ${c_notice}${destination_libraries_static}${c_error}.${c_reset}"
@@ -679,12 +679,12 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $enable_includes == "yes" ]] ; then
+  if [[ ${enable_includes} == "yes" ]] ; then
     if [[ -d ${path_build}${path_includes} && ! -d ${destination_includes} ]] ; then
-      mkdir $verbose_common ${destination_includes}
+      mkdir ${verbose_common} ${destination_includes}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create ${message} ${c_notice}${destination_includes}${c_error}.${c_reset}"
@@ -695,12 +695,12 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $enable_documentation == "yes" ]] ; then
+  if [[ ${enable_documentation} == "yes" ]] ; then
     if [[ -d ${path_build}${path_documentation} && ! -d ${destination_documentation} ]] ; then
-      mkdir $verbose_common ${destination_documentation}
+      mkdir ${verbose_common} ${destination_documentation}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create ${message} ${c_notice}${destination_documentation}${c_error}.${c_reset}"
@@ -711,12 +711,12 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $enable_settings == "yes" ]] ; then
+  if [[ ${enable_settings} == "yes" ]] ; then
     if [[ -d ${path_build}${path_settings} && ! -d ${destination_settings} ]] ; then
-      mkdir $verbose_common ${destination_settings}
+      mkdir ${verbose_common} ${destination_settings}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to create ${message} ${c_notice}${destination_settings}${c_error}.${c_reset}"
@@ -727,29 +727,29 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $failure == "" && -d ${path_build}${path_includes} && $enable_includes == "yes" ]] ; then
+  if [[ ${failure} == "" && -d ${path_build}${path_includes} && ${enable_includes} == "yes" ]] ; then
     for i in ${path_build}${path_includes}* ; do
 
-      file=$(echo $i | sed -e "s|^${path_build}${path_includes}||")
+      file=$(echo ${i} | sed -e "s|^${path_build}${path_includes}||")
 
       break
     done
 
-    if [[ $file == "*" && ! -f "${path_build}${path_includes}*" ]] ; then
+    if [[ ${file} == "*" && ! -f "${path_build}${path_includes}*" ]] ; then
       file=
     fi
 
-    if [[ $file != "" ]] ; then
-      if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+    if [[ ${file} != "" ]] ; then
+      if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
         install_print_first_or_always
 
         echo -e "${c_highlight}Installing Includes to: ${c_reset}${c_notice}${destination_includes}${c_reset}${c_highlight}.${c_reset}"
       fi
 
-      cp $verbose_common -R ${path_build}${path_includes}* ${destination_includes}
+      cp ${verbose_common} -R ${path_build}${path_includes}* ${destination_includes}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: Failed to copy include files from ${c_notice}${path_build}${path_includes}${c_error} to ${c_notice}${destination_includes}${c_error}.${c_reset}"
@@ -760,30 +760,30 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $failure == "" && -d ${path_build}${path_libraries} && ( $enable_shared_libraries == "yes" || $enable_static_libraries == "yes" ) ]] ; then
-    if [[ -d ${path_build}${path_libraries}${path_static} && $enable_static_libraries == "yes" ]] ; then
+  if [[ ${failure} == "" && -d ${path_build}${path_libraries} && ( ${enable_shared_libraries} == "yes" || ${enable_static_libraries} == "yes" ) ]] ; then
+    if [[ -d ${path_build}${path_libraries}${path_static} && ${enable_static_libraries} == "yes" ]] ; then
       for i in ${path_build}${path_libraries}${path_static}* ; do
 
-        file=$(echo $i | sed -e "s|^${path_build}${path_libraries}${path_static}||")
+        file=$(echo ${i} | sed -e "s|^${path_build}${path_libraries}${path_static}||")
 
         break
       done
 
-      if [[ $file == "*" && ! -f "${path_build}${path_libraries}${path_static}*" ]] ; then
+      if [[ ${file} == "*" && ! -f "${path_build}${path_libraries}${path_static}*" ]] ; then
         file=
       fi
 
-      if [[ $file != "" ]] ; then
-        if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+      if [[ ${file} != "" ]] ; then
+        if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
           install_print_first_or_always
 
           echo -e "${c_highlight}Installing (${c_notice}static${c_highlight}) Libraries to: ${c_reset}${c_notice}${destination_libraries_static}${c_reset}${c_highlight}.${c_reset}"
         fi
 
-        cp $verbose_common -R ${path_build}${path_libraries}${path_static}* ${destination_libraries_static}
+        cp ${verbose_common} -R ${path_build}${path_libraries}${path_static}* ${destination_libraries_static}
 
         if [[ $? -ne 0 ]] ; then
-          if [[ $verbosity != "quiet" ]] ; then
+          if [[ ${verbosity} != "quiet" ]] ; then
             install_print_first
 
             echo -e "${c_error}ERROR: Failed to copy (${c_notice}static${c_error}) library files from ${c_notice}${path_build}${path_libraries}${path_static}${c_error} to ${c_notice}${destination_libraries_static}${c_error}.${c_reset}"
@@ -794,29 +794,29 @@ install_perform_install() {
       fi
     fi
 
-    if [[ $failure == "" && -d ${path_build}${path_libraries}${path_shared} && $enable_shared_libraries == "yes" ]] ; then
+    if [[ ${failure} == "" && -d ${path_build}${path_libraries}${path_shared} && ${enable_shared_libraries} == "yes" ]] ; then
       for i in ${path_build}${path_libraries}${path_shared}* ; do
 
-        file=$(echo $i | sed -e "s|^${path_build}${path_libraries}${path_shared}||")
+        file=$(echo ${i} | sed -e "s|^${path_build}${path_libraries}${path_shared}||")
 
         break
       done
 
-      if [[ $file == "*" && ! -f "${path_build}${path_libraries}${path_shared}*" ]] ; then
+      if [[ ${file} == "*" && ! -f "${path_build}${path_libraries}${path_shared}*" ]] ; then
         file=
       fi
 
-      if [[ $file != "" ]] ; then
-        if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+      if [[ ${file} != "" ]] ; then
+        if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
           install_print_first_or_always
 
           echo -e "${c_highlight}Installing (${c_notice}shared${c_highlight}) Libraries to: ${c_reset}${c_notice}${destination_libraries_shared}${c_reset}${c_highlight}.${c_reset}"
         fi
 
-        cp $verbose_common -R ${path_build}${path_libraries}${path_shared}* ${destination_libraries_shared}
+        cp ${verbose_common} -R ${path_build}${path_libraries}${path_shared}* ${destination_libraries_shared}
 
         if [[ $? -ne 0 ]] ; then
-          if [[ $verbosity != "quiet" ]] ; then
+          if [[ ${verbosity} != "quiet" ]] ; then
             install_print_first
 
             echo -e "${c_error}ERROR: Failed to copy (${c_notice}shared${c_error}) library files from ${c_notice}${path_build}${path_libraries}${path_shared}${c_error} to ${c_notice}${destination_libraries_shared}${c_error}.${c_reset}"
@@ -828,30 +828,30 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $failure == "" && -d ${path_build}${path_programs} && ( $enable_shared_programs == "yes" || $enable_static_programs == "yes" ) ]] ; then
-    if [[ -d ${path_build}${path_programs}${path_static} && $enable_static_programs == "yes" ]] ; then
+  if [[ ${failure} == "" && -d ${path_build}${path_programs} && ( ${enable_shared_programs} == "yes" || ${enable_static_programs} == "yes" ) ]] ; then
+    if [[ -d ${path_build}${path_programs}${path_static} && ${enable_static_programs} == "yes" ]] ; then
       for i in ${path_build}${path_programs}${path_static}* ; do
 
-        file=$(echo $i | sed -e "s|^${path_build}${path_programs}${path_static}||")
+        file=$(echo ${i} | sed -e "s|^${path_build}${path_programs}${path_static}||")
 
         break
       done
 
-      if [[ $file == "*" && ! -f "${path_build}${path_programs}${path_static}*" ]] ; then
+      if [[ ${file} == "*" && ! -f "${path_build}${path_programs}${path_static}*" ]] ; then
         file=
       fi
 
-      if [[ $file != "" && $enable_static_programs == "yes" ]] ; then
-        if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+      if [[ ${file} != "" && ${enable_static_programs} == "yes" ]] ; then
+        if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
           install_print_first_or_always
 
           echo -e "${c_highlight}Installing (${c_notice}static${c_highlight}) Programs to: ${c_reset}${c_notice}${destination_programs_static}${c_reset}${c_highlight}.${c_reset}"
         fi
 
-        cp $verbose_common -R ${path_build}${path_programs}${path_static}* ${destination_programs_static}
+        cp ${verbose_common} -R ${path_build}${path_programs}${path_static}* ${destination_programs_static}
 
         if [[ $? -ne 0 ]] ; then
-          if [[ $verbosity != "quiet" ]] ; then
+          if [[ ${verbosity} != "quiet" ]] ; then
             install_print_first
 
             echo -e "${c_error}ERROR: failed to copy (${c_notice}static${c_error}) program files from ${c_notice}${path_build}${path_programs}${path_static}${c_error} to ${c_notice}${destination_programs_static}${c_error}.${c_reset}"
@@ -862,29 +862,29 @@ install_perform_install() {
       fi
     fi
 
-    if [[ $failure == "" && -d ${path_build}${path_programs}${path_shared} && $enable_shared_programs == "yes" ]] ; then
+    if [[ ${failure} == "" && -d ${path_build}${path_programs}${path_shared} && ${enable_shared_programs} == "yes" ]] ; then
       for i in ${path_build}${path_programs}${path_shared}* ; do
 
-        file=$(echo $i | sed -e "s|^${path_build}${path_programs}${path_shared}||")
+        file=$(echo ${i} | sed -e "s|^${path_build}${path_programs}${path_shared}||")
 
         break
       done
 
-      if [[ $file == "*" && ! -f "${path_build}${path_programs}${path_shared}*" ]] ; then
+      if [[ ${file} == "*" && ! -f "${path_build}${path_programs}${path_shared}*" ]] ; then
         file=
       fi
 
-      if [[ $file != "" ]] ; then
-        if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+      if [[ ${file} != "" ]] ; then
+        if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
           install_print_first_or_always
 
           echo -e "${c_highlight}Installing (${c_notice}shared${c_highlight}) Programs to: ${c_reset}${c_notice}${destination_programs_shared}${c_reset}${c_highlight}.${c_reset}"
         fi
 
-        cp $verbose_common -R ${path_build}${path_programs}${path_shared}* ${destination_programs_shared}
+        cp ${verbose_common} -R ${path_build}${path_programs}${path_shared}* ${destination_programs_shared}
 
         if [[ $? -ne 0 ]] ; then
-          if [[ $verbosity != "quiet" ]] ; then
+          if [[ ${verbosity} != "quiet" ]] ; then
             install_print_first
 
             echo -e "${c_error}ERROR: failed to copy (${c_notice}shared${c_error}) program files from ${c_notice}${path_build}${path_programs}${path_shared}${c_error} to ${c_notice}${destination_programs_shared}${c_error}.${c_reset}"
@@ -896,29 +896,29 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $failure == "" && -d ${path_build}${path_settings} && $enable_settings == "yes" ]] ; then
+  if [[ ${failure} == "" && -d ${path_build}${path_settings} && ${enable_settings} == "yes" ]] ; then
     for i in ${path_build}${path_settings}* ; do
 
-      file=$(echo $i | sed -e "s|^${path_build}${path_settings}||")
+      file=$(echo ${i} | sed -e "s|^${path_build}${path_settings}||")
 
       break
     done
 
-    if [[ $file == "*" && ! -f "${path_build}${path_settings}*" ]] ; then
+    if [[ ${file} == "*" && ! -f "${path_build}${path_settings}*" ]] ; then
       file=
     fi
 
-    if [[ $file != "" ]] ; then
-      if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+    if [[ ${file} != "" ]] ; then
+      if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
         install_print_first_or_always
 
         echo -e "${c_highlight}Installing Settings to: ${c_reset}${c_notice}${destination_settings}${c_reset}${c_highlight}.${c_reset}"
       fi
 
-      cp $verbose_common -R ${path_build}${path_settings}* ${destination_settings}
+      cp ${verbose_common} -R ${path_build}${path_settings}* ${destination_settings}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: failed to copy settings files from ${c_notice}${path_build}${path_settings}${c_error} to ${c_notice}${destination_settings}${c_error}.${c_reset}"
@@ -929,29 +929,29 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $failure == "" && -d ${path_build}${path_documentation} && $enable_documentation == "yes" ]] ; then
+  if [[ ${failure} == "" && -d ${path_build}${path_documentation} && ${enable_documentation} == "yes" ]] ; then
     for i in ${path_build}${path_documentation}* ; do
 
-      file=$(echo $i | sed -e "s|^${path_build}${path_documentation}||")
+      file=$(echo ${i} | sed -e "s|^${path_build}${path_documentation}||")
 
       break
     done
 
-    if [[ $file == "*" && ! -f "${path_build}${path_documentation}*" ]] ; then
+    if [[ ${file} == "*" && ! -f "${path_build}${path_documentation}*" ]] ; then
       file=
     fi
 
-    if [[ $file != "" ]] ; then
-      if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+    if [[ ${file} != "" ]] ; then
+      if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
         install_print_first_or_always
 
         echo -e "${c_highlight}Installing Documentation to: ${c_reset}${c_notice}${destination_documentation}${c_reset}${c_highlight}.${c_reset}"
       fi
 
-      cp $verbose_common -R ${path_build}${path_documentation}* ${destination_documentation}
+      cp ${verbose_common} -R ${path_build}${path_documentation}* ${destination_documentation}
 
       if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           install_print_first
 
           echo -e "${c_error}ERROR: failed to copy documentation files from ${c_notice}${path_build}${path_documentation}${c_error} to ${c_notice}${destination_documentation}${c_error}.${c_reset}"
@@ -962,7 +962,7 @@ install_perform_install() {
     fi
   fi
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -971,7 +971,7 @@ install_perform_install() {
 
 install_print_first() {
 
-  if [[ $print_line_first == "yes" ]] ; then
+  if [[ ${print_line_first} == "yes" ]] ; then
     echo
 
     print_line_first=
@@ -980,11 +980,11 @@ install_print_first() {
 
 install_print_first_or_always() {
 
-  if [[ $print_line_first == "yes" ]] ; then
+  if [[ ${print_line_first} == "yes" ]] ; then
     echo
 
     print_line_first=
-  elif [[ $print_line_first == "no" ]] ; then
+  elif [[ ${print_line_first} == "no" ]] ; then
     print_line_first=
   else
     echo
@@ -993,7 +993,7 @@ install_print_first_or_always() {
 
 install_print_last() {
 
-  if [[ $print_line_last == "yes" ]] ; then
+  if [[ ${print_line_last} == "yes" ]] ; then
     echo
   fi
 }
index 81e855fb2333e21a615d0af21899cef58a76b81a..f99c46f786eafb9a404f820c2505dcfe15e5fffd 100644 (file)
@@ -16,7 +16,7 @@
 test_main() {
   local shell_command=bash
 
-  if [[ $SHELL_ENGINE == "zsh" ]] ; then
+  if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
     shell_command=zsh
 
     emulate ksh
@@ -24,7 +24,7 @@ test_main() {
 
   local public_name="FLL Project Mass Test Script"
   local system_name=install
-  local called_name=$(basename $0)
+  local called_name=$(basename ${0})
   local version=0.6.5
 
   local grab_next=
@@ -47,9 +47,10 @@ test_main() {
 
   local build_compiler=
   local build_project=no
-  local path_scripts=$PWD/build/scripts/
+  local build_project_thread="thread"
+  local path_scripts=${PWD}/build/scripts/
   local path_scripts_package=${path_scripts}package.sh
-  local path_test=$PWD/test/
+  local path_test=${PWD}/test/
   local path_test_package=${path_test}package/
   local path_test_project=${path_test}project/
   local path_test_work=${path_test}work/
@@ -58,6 +59,8 @@ test_main() {
   local print_line_first="yes"
   local print_line_last="yes"
   local test_system=
+  local test_thread="thread"
+  local test_thread_individual="thread_individual"
 
   local context=
   local failure=
@@ -73,77 +76,83 @@ test_main() {
   if [[ $# -gt 0 ]] ; then
     t=$#
 
-    while [[ $i -lt $t ]] ; do
+    while [[ ${i} -lt ${t} ]] ; do
 
-      let i=$i+1
+      let i=${i}+1
 
-      if [[ $SHELL_ENGINE == "zsh" ]] ; then
+      if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
         p=${(P)i}
       else
         p=${!i}
       fi
 
-      if [[ $grab_next == "" ]] ; then
-        if [[ $p == "-h" || $p == "--help" ]] ; then
+      if [[ ${grab_next} == "" ]] ; then
+        if [[ ${p} == "-h" || ${p} == "--help" ]] ; then
           do_help=yes
-        elif [[ $p == "+C" || $p == "++copyright" ]] ; then
+        elif [[ ${p} == "+C" || ${p} == "++copyright" ]] ; then
           do_copyright="yes"
-        elif [[ $p == "+d" || $p == "++dark" ]] ; then
+        elif [[ ${p} == "+d" || ${p} == "++dark" ]] ; then
           do_color=dark
           context="+d"
-        elif [[ $p == "+l" || $p == "++light" ]] ; then
+        elif [[ ${p} == "+l" || ${p} == "++light" ]] ; then
           do_color=light
           context="+l"
-        elif [[ $p == "+n" || $p == "++no_color" ]] ; then
+        elif [[ ${p} == "+n" || ${p} == "++no_color" ]] ; then
           do_color=none
           context="+n"
-        elif [[ $p == "+Q" || $p == "++quiet" ]] ; then
+        elif [[ ${p} == "+Q" || ${p} == "++quiet" ]] ; then
           verbosity="quiet"
           verbose="+Q"
           verbose_common=
-        elif [[ $p == "+E" || $p == "++error" ]] ; then
+        elif [[ ${p} == "+E" || ${p} == "++error" ]] ; then
           verbosity="error"
           verbose="+E"
           verbose_common=
-        elif [[ $p == "+N" || $p == "++normal" ]] ; then
+        elif [[ ${p} == "+N" || ${p} == "++normal" ]] ; then
           verbosity=
           verbose="+N"
           verbose_common=
-        elif [[ $p == "+V" || $p == "++verbose" ]] ; then
+        elif [[ ${p} == "+V" || ${p} == "++verbose" ]] ; then
           verbosity="verbose"
           verbose="+V"
           verbose_common="-v"
-        elif [[ $p == "+D" || $p == "++debug" ]] ; then
+        elif [[ ${p} == "+D" || ${p} == "++debug" ]] ; then
           verbosity="debug"
           verbose="+D"
           verbose_common="-v"
-        elif [[ $p == "+v" || $p == "++version" ]] ; then
-          echo $version
+        elif [[ ${p} == "+v" || ${p} == "++version" ]] ; then
+          echo ${version}
           return 0
-        elif [[ $p == "-c" || $p == "--compiler" ]] ; then
+        elif [[ ${p} == "-c" || ${p} == "--compiler" ]] ; then
           grab_next=build_compiler
-        elif [[ $p == "-p" || $p == "--project" ]] ; then
+        elif [[ ${p} == "-p" || ${p} == "--project" ]] ; then
           build_project=yes
-        elif [[ $p == "-s" || $p == "--path_scripts" ]] ; then
+        elif [[ ${p} == "-s" || ${p} == "--path_scripts" ]] ; then
           grab_next=path_scripts
           path_scripts=
-        elif [[ $p == "-t" || $p == "--path_test" ]] ; then
+        elif [[ ${p} == "-t" || ${p} == "--path_test" ]] ; then
           grab_next=path_test
           path_test=
-        elif [[ $test_system == "" ]] ; then
-          test_system="$p"
+        elif [[ ${p} == "-T" || ${p} == "--thread" ]] ; then
+          test_thread="thread"
+          test_thread_individual="thread_individual"
+        elif [[ ${p} == "-L" || ${p} == "--threadless" ]] ; then
+          test_thread="threadless"
+          test_thread_individual=""
+        elif [[ ${test_system} == "" ]] ; then
+          test_system="${p}"
         else
-          operation="$operation "
+          operation="${operation} "
           operation_failure=fail-too_many
         fi
       else
-        if [[ $grab_next == "build_compiler" ]] ; then
-          build_compiler=$p
-        elif [[ $grab_next == "path_scripts" ]] ; then
-          path_scripts=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        if [[ ${grab_next} == "build_compiler" ]] ; then
+          build_compiler=${p}
+        elif [[ ${grab_next} == "path_scripts" ]] ; then
+          path_scripts=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
           path_scripts_package=${path_scripts}package.sh
-        elif [[ $grab_next == "path_test" ]] ; then
-          path_test=$(echo $p | sed -e 's|^//*|/|' -e 's|/*$|/|')
+        elif [[ ${grab_next} == "path_test" ]] ; then
+          path_test=$(echo ${p} | sed -e 's|^//*|/|' -e 's|/*$|/|')
           path_test_package=${path_test}package/
           path_test_package_individual=${path_test_package}individual/
           path_test_package_stand_alone=${path_test_package}stand_alone/
@@ -158,29 +167,29 @@ test_main() {
     p=
   fi
 
-  if [[ $verbosity == "quiet" ]] ; then
+  if [[ ${verbosity} == "quiet" ]] ; then
     print_line_first="no"
     print_line_last="no"
   fi
 
   test_handle_colors
 
-  if [[ $do_help == "yes" ]] ; then
+  if [[ ${do_help} == "yes" ]] ; then
     test_help
     test_cleanup
 
     return 0
   fi
 
-  if [[ $do_copyright == "yes" ]] ; then
+  if [[ ${do_copyright} == "yes" ]] ; then
     test_copyright
     test_cleanup
 
     return 0
   fi
 
-  if [[ $operation_failure == "fail-too_many" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${operation_failure} == "fail-too_many" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Only a single build system is supported, received the following test systems ${c_notice}${test_system} ${operation}${c_error} was not recognized.${c_reset}"
@@ -189,16 +198,16 @@ test_main() {
     let failure=1
   fi
 
-  if [[ $test_system == "" ]] ; then
+  if [[ ${test_system} == "" ]] ; then
     test_system=normal
   fi
 
-  if [[ $grab_next != "build_compiler" && $build_compiler == "" ]] ; then
+  if [[ ${grab_next} != "build_compiler" && ${build_compiler} == "" ]] ; then
     build_compiler=gcc
   fi
 
-  if [[ $failure -eq 0 && $test_system != "normal" && $test_system != "github" && $test_system != "gitlab" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${failure} -eq 0 && ${test_system} != "normal" && ${test_system} != "github" && ${test_system} != "gitlab" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: The test system must be one of ${c_notice}normal${c_error}, ${c_notice}github${c_error}, or  ${c_notice}gitlab${c_error}.${c_reset}"
@@ -207,8 +216,8 @@ test_main() {
     let failure=1
   fi
 
-  if [[ $failure -eq 0 && $build_compiler != "gcc" && $build_compiler != "clang" ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${failure} -eq 0 && ${build_compiler} != "gcc" && ${build_compiler} != "clang" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: The build compiler ${c_notice}${build_compiler}${c_error} is not currently directly supported.${c_reset}"
@@ -217,8 +226,8 @@ test_main() {
     let failure=1
   fi
 
-  if [[ $failure -eq 0 && ! -d $path_scripts ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${failure} -eq 0 && ! -d ${path_scripts} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: The build scripts path ${c_notice}${path_scripts}${c_error} is not a valid directory.${c_reset}"
@@ -227,8 +236,8 @@ test_main() {
     let failure=1
   fi
 
-  if [[ $failure -eq 0 && ! -f $path_scripts_package ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${failure} -eq 0 && ! -f ${path_scripts_package} ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Unable to find the package build script file under the build scripts path at ${c_notice}${path_scripts_package}${c_error}.${c_reset}"
@@ -237,11 +246,11 @@ test_main() {
     let failure=1
   fi
 
-  if [[ $failure -eq 0 && ! -d $path_test ]] ; then
-    mkdir $verbose_common -p $path_test
+  if [[ ${failure} -eq 0 && ! -d ${path_test} ]] ; then
+    mkdir ${verbose_common} -p ${path_test}
 
-    if [[ $? -ne 0 ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         test_print_first
 
         echo -e "${c_error}ERROR: The test path ${c_notice}${path_test}${c_error}, does not exist and could not be created or exists and is not a valid directory.${c_reset}"
@@ -251,11 +260,11 @@ test_main() {
     fi
   fi
 
-  if [[ $failure -eq 0 && ! -d $path_test_package ]] ; then
-    mkdir $verbose_common $path_test_package
+  if [[ ${failure} -eq 0 && ! -d ${path_test_package} ]] ; then
+    mkdir ${verbose_common} ${path_test_package}
 
-    if [[ $? -ne 0 ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         test_print_first
 
         echo -e "${c_error}ERROR: The package path ${c_notice}${path_test_package}${c_error}, does not exist and could not be created or exists and is not a valid directory.${c_reset}"
@@ -265,11 +274,11 @@ test_main() {
     fi
   fi
 
-  if [[ $failure -eq 0 && ! -d $path_test_project ]] ; then
-    mkdir $verbose_common $path_test_project
+  if [[ ${failure} -eq 0 && ! -d ${path_test_project} ]] ; then
+    mkdir ${verbose_common} ${path_test_project}
 
-    if [[ $? -ne 0 ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         test_print_first
 
         echo -e "${c_error}ERROR: The test project path ${c_notice}${path_test_project}${c_error}, does not exist and could not be created or exists and is not a valid directory.${c_reset}"
@@ -279,11 +288,11 @@ test_main() {
     fi
   fi
 
-  if [[ $failure -eq 0 && ! -d $path_test_work ]] ; then
-    mkdir $verbose_common $path_test_work
+  if [[ ${failure} -eq 0 && ! -d ${path_test_work} ]] ; then
+    mkdir ${verbose_common} ${path_test_work}
 
-    if [[ $? -ne 0 ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         test_print_first
 
         echo -e "${c_error}ERROR: The test work path ${c_notice}${path_test_work}${c_error}, does not exist and could not be created or exists and is not a valid directory.${c_reset}"
@@ -293,20 +302,20 @@ test_main() {
     fi
   fi
 
-  if [[ $failure -eq 0 ]] ; then
+  if [[ ${failure} -eq 0 ]] ; then
     test_operate
     let failure=$?
   fi
 
-  if [[ $verbosity != "quiet" ]] ; then
-    if [[ $failure != "" || $verbosity != "error" ]] ; then
+  if [[ ${verbosity} != "quiet" ]] ; then
+    if [[ ${failure} != "" || ${verbosity} != "error" ]] ; then
       test_print_last
     fi
   fi
 
   test_cleanup
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -315,14 +324,14 @@ test_main() {
 
 test_handle_colors() {
 
-  if [[ $do_color == "light" ]] ; then
+  if [[ ${do_color} == "light" ]] ; then
     c_error="\\033[1;31m"
     c_warning="\\033[0;31m"
     c_title="\\033[1;34m"
     c_highlight="\\033[0;34m"
     c_notice="\\033[0;01m"
     c_important="\\033[0;35m"
-  elif [[ $do_color == "none" ]] ; then
+  elif [[ ${do_color} == "none" ]] ; then
     c_reset=
     c_title=
     c_error=
@@ -347,7 +356,7 @@ test_help() {
   echo -e " ${c_important}github${c_reset}  Perform a test meant to be used within Github."
   echo -e " ${c_important}gitlab${c_reset}  Perform a test meant to be used within Gitlab (not yet supported)."
   echo
-  echo -e "${c_highlight}Options:${c_reset}"
+  echo -e "${c_highlight}Available Options:${c_reset}"
   echo -e " -${c_important}h${c_reset}, --${c_important}help${c_reset}       Print this help message."
   echo -e " +${c_important}C${c_reset}, ++${c_important}copyright${c_reset}  Print the copyright."
   echo -e " +${c_important}d${c_reset}, ++${c_important}dark${c_reset}       Output using colors that show up better on dark backgrounds."
@@ -360,11 +369,12 @@ test_help() {
   echo -e " +${c_important}D${c_reset}, ++${c_important}debug${c_reset}      Enable debugging, significantly increasing verbosity beyond normal print.to."
   echo -e " +${c_important}v${c_reset}, ++${c_important}version${c_reset}    Print only the version number."
   echo
-  echo -e "${c_highlight}Install Options:${c_reset}"
   echo -e " -${c_important}c${c_reset}, --${c_important}compiler${c_reset}      Specify the compiler, either gcc (default) or clang."
   echo -e " -${c_important}p${c_reset}, --${c_important}project${c_reset}       Designate that the project files must also be built."
   echo -e " -${c_important}s${c_reset}, --${c_important}path_scripts${c_reset}  Specify a custom directory where the build scripts are found."
   echo -e " -${c_important}t${c_reset}, --${c_important}path_test${c_reset}     Specify a custom directory where the test environment is found."
+  echo -e " -${c_important}T${c_reset}, --${c_important}thread${c_reset}        Compile code being tested with threads enabled."
+  echo -e " -${c_important}L${c_reset}, --${c_important}threadless${c_reset}    Compile code being tested with threads disabled."
 
   test_print_last
 }
@@ -390,30 +400,30 @@ test_operate() {
   local libraries_path="${work_path}libraries/shared/"
   local ci_arguments=
 
-  if [[ $PATH != "" ]] ; then
+  if [[ ${PATH} != "" ]] ; then
     env_path="${env_path}:${PATH}"
   fi
 
-  if [[ $LD_LIBRARY_PATH != "" ]] ; then
+  if [[ ${LD_LIBRARY_PATH} != "" ]] ; then
     env_libs="${env_libs}:${LD_LIBRARY_PATH}"
   fi
 
-  if [[ $test_system == "github" || $test_system == "gitlab" ]] ; then
+  if [[ ${test_system} == "github" || ${test_system} == "gitlab" ]] ; then
     ci_arguments="-d -I${includes_path} -d -L${libraries_path}"
 
     test_operate_ci_prebuild
 
-    if [[ $? -ne 0 ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
       let failure=1
 
       return 1
     fi
   fi
 
-  if [[ $build_project == "yes" ]] ; then
+  if [[ ${build_project} == "yes" ]] ; then
     test_operate_build_tools
 
-    if [[ $? -ne 0 ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
       let failure=1
 
       return 1
@@ -422,16 +432,16 @@ test_operate() {
 
   test_operate_build_individual
 
-  if [[ $? -ne 0 ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
     let failure=1
 
     return 1
   fi
 
-  if [[ $test_system == "github" || $test_system == "gitlab" ]] ; then
+  if [[ ${test_system} == "github" || ${test_system} == "gitlab" ]] ; then
     test_operate_ci_pretest
 
-    if [[ $? -ne 0 ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
       let failure=1
 
       return 1
@@ -445,25 +455,26 @@ test_operate() {
 
 test_operate_build_individual() {
   local project=
-  local path_original="$PWD/"
+  local path_original="${PWD}/"
 
-  if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
     test_print_first_or_always
 
     echo -e "${c_highlight}Cleaning and building package.${c_reset}"
     echo -e "${c_title}------------------------------${c_reset}"
+    echo
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "$shell_command ${path_scripts_package} $verbose $context -d $path_test_package -i rebuild"
+    echo "${shell_command} ${path_scripts_package} ${verbose} ${context} -d ${path_test_package} -i rebuild"
   fi
 
-  $shell_command ${path_scripts_package} $verbose $context -d $path_test_package -i rebuild
+  ${shell_command} ${path_scripts_package} ${verbose} ${context} -d ${path_test_package} -i rebuild
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Failed to clean and build the individual packages.${c_reset}"
@@ -472,22 +483,22 @@ test_operate_build_individual() {
     return 1
   fi
 
-  for project in $projects ; do
+  for project in ${projects} ; do
 
-    test_operate_build_project "$path_test_package_individual" "$path_test_work" "$project" individual
+    test_operate_build_project "${path_test_package_individual}" "${path_test_work}" "${project}" individual ${test_thread} ${test_thread_individual}
 
-    if [[ $? -ne 0 ]] ; then
+    if [[ ${?} -ne 0 ]] ; then
       let failure=1
 
-      cd $path_original
+      cd ${path_original}
 
       break;
     fi
 
-    cd $path_original
+    cd ${path_original}
   done
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -495,14 +506,28 @@ test_operate_build_individual() {
 }
 
 test_operate_build_project() {
-  local path_="$1"
-  local destination="$2"
-  local project="$3"
-  local mode="$4"
-  local bootstrap="$5"
+  local path_="${1}"
+  local destination="${2}"
+  local project="${3}"
+  local mode="${4}"
+  local bootstrap="${5}"
+  local mode_thread_param=
+  local mode_thread_value=
+  local mode_thread_individual_param=
+  local mode_thread_individual_value=
+
+  if [[ ${6} != "" ]] ; then
+    local mode_thread_param="-m"
+    local mode_thread_value="${6}"
+  fi
+
+  if [[ ${7} != "" ]] ; then
+    local mode_thread_individual_param="-m"
+    local mode_thread_individual_value="${7}"
+  fi
 
   if [[ ! -d ${path_}${project}-${version}/ ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Package directory '${c_notice}${path_}${project}-${version}${c_error}' is invalid or missing.${c_reset}"
@@ -511,7 +536,7 @@ test_operate_build_project() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
     echo -e "Running '${c_notice}cd ${path_}${project}-${version}/${c_reset}'."
@@ -519,8 +544,8 @@ test_operate_build_project() {
 
   cd ${path_}${project}-${version}/
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Failed to change into directory '${c_notice}${path_}${project}-${version}${c_error}'.${c_reset}"
@@ -531,63 +556,63 @@ test_operate_build_project() {
     return 1
   fi
 
-  if [[ $bootstrap == "" ]] ; then
-    if [[ $verbosity == "debug" ]] ; then
+  if [[ ${bootstrap} == "" ]] ; then
+    if [[ ${verbosity} == "debug" ]] ; then
       test_print_first_or_always
 
-      if [[ $build_compiler == "gcc" ]] ; then
-        echo "PATH=\"$env_path\" LD_LIBRARY_PATH=\"$env_libs\" fake $verbose $context -w \"$destination\" -m $mode clean build $ci_arguments"
+      if [[ ${build_compiler} == "gcc" ]] ; then
+        echo "PATH=\"${env_path}\" LD_LIBRARY_PATH=\"${env_libs}\" fake ${verbose} ${context} -w \"${destination}\" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} clean build ${ci_arguments}"
       else
-        echo "PATH=\"$env_path\" LD_LIBRARY_PATH=\"$env_libs\" fake $verbose $context -w \"$destination\" -m $mode -m $build_compiler clean make -f testfile $ci_arguments"
+        echo "PATH=\"${env_path}\" LD_LIBRARY_PATH=\"${env_libs}\" fake ${verbose} ${context} -w \"${destination}\" -m ${mode} ${mode_thread_param} ${mode_thread_value} -m ${build_compiler} ${mode_thread_individual_param} ${mode_thread_individual_value} clean make -f testfile ${ci_arguments}"
       fi
     fi
 
-    if [[ $build_compiler == "gcc" ]] ; then
-      PATH="$env_path" LD_LIBRARY_PATH="$env_libs" fake $verbose $context -w "$destination" -m $mode -m test clean build $ci_arguments
+    if [[ ${build_compiler} == "gcc" ]] ; then
+      PATH="${env_path}" LD_LIBRARY_PATH="${env_libs}" fake ${verbose} ${context} -w "${destination}" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test clean build ${ci_arguments}
     else
-      PATH="$env_path" LD_LIBRARY_PATH="$env_libs" fake $verbose $context -w "$destination" -m $mode -m test -m $build_compiler clean build $ci_arguments
+      PATH="${env_path}" LD_LIBRARY_PATH="${env_libs}" fake ${verbose} ${context} -w "${destination}" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test -m ${build_compiler} clean build ${ci_arguments}
     fi
   else
-    if [[ $SHELL_ENGINE == "zsh" ]] ; then
-      if [[ $verbosity == "debug" ]] ; then
+    if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
+      if [[ ${verbosity} == "debug" ]] ; then
         test_print_first_or_always
 
-        if [[ $build_compiler == "gcc" ]] ; then
-          echo "zsh ./bootstrap.sh $verbose $context -w \"$destination\" -m $mode -m test build"
+        if [[ ${build_compiler} == "gcc" ]] ; then
+          echo "zsh ./bootstrap.sh ${verbose} ${context} -w \"${destination}\" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test build"
         else
-          echo "zsh ./bootstrap.sh $verbose $context -w \"$destination\" -m $mode -m test -m $build_compiler build"
+          echo "zsh ./bootstrap.sh ${verbose} ${context} -w \"${destination}\" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test -m ${build_compiler} build"
         fi
       fi
 
-      if [[ $build_compiler == "gcc" ]] ; then
-        zsh ./bootstrap.sh $verbose $context -w "$destination" -m $mode -m test build
+      if [[ ${build_compiler} == "gcc" ]] ; then
+        zsh ./bootstrap.sh ${verbose} ${context} -w "${destination}" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test build
       else
-        zsh ./bootstrap.sh $verbose $context -w "$destination" -m $mode -m test -m $build_compiler build
+        zsh ./bootstrap.sh ${verbose} ${context} -w "${destination}" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test -m ${build_compiler} build
       fi
     else
-      if [[ $verbosity == "debug" ]] ; then
+      if [[ ${verbosity} == "debug" ]] ; then
         test_print_first_or_always
 
-        if [[ $build_compiler == "gcc" ]] ; then
-          echo "./bootstrap.sh $verbose $context -w \"$destination\" -m $mode -m test build"
+        if [[ ${build_compiler} == "gcc" ]] ; then
+          echo "./bootstrap.sh ${verbose} ${context} -w \"${destination}\" -m ${mode} ${mode_thread_individual_param} ${mode_thread_individual_value} ${mode_thread_param} ${mode_thread_value} -m test build"
         else
-          echo "./bootstrap.sh $verbose $context -w \"$destination\" -m $mode -m test -m $build_compiler build"
+          echo "./bootstrap.sh ${verbose} ${context} -w \"${destination}\" -m ${mode} ${mode_thread_individual_param} ${mode_thread_individual_value} ${mode_thread_param} ${mode_thread_value} -m test -m ${build_compiler} build"
         fi
       fi
 
-      if [[ $build_compiler == "gcc" ]] ; then
-        ./bootstrap.sh $verbose $context -w "$destination" -m $mode -m test build
+      if [[ ${build_compiler} == "gcc" ]] ; then
+        ./bootstrap.sh ${verbose} ${context} -w "${destination}" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test build
       else
-        ./bootstrap.sh $verbose $context -w "$destination" -m $mode -m test -m $build_compiler build
+        ./bootstrap.sh ${verbose} ${context} -w "${destination}" -m ${mode} ${mode_thread_param} ${mode_thread_value} ${mode_thread_individual_param} ${mode_thread_individual_value} -m test -m ${build_compiler} build
       fi
     fi
   fi
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to build $mode project '${c_notice}$project${c_reset}${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to build ${mode} project '${c_notice}${project}${c_reset}${c_error}'.${c_reset}"
     fi
 
     let failure=1
@@ -595,22 +620,22 @@ test_operate_build_project() {
     return 1
   fi
 
-  if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
-    echo -e "Installing $mode project '${c_notice}$project${c_reset}'."
+  if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
+    echo -e "Installing ${mode} project '${c_notice}${project}${c_reset}'."
     echo
   fi
 
-  if [[ $SHELL_ENGINE == "zsh" ]] ; then
-    zsh ./install.sh $verbose $context -w "$destination"
+  if [[ ${SHELL_ENGINE} == "zsh" ]] ; then
+    zsh ./install.sh ${verbose} ${context} -w "${destination}"
   else
-    ./install.sh $verbose $context -w "$destination"
+    ./install.sh ${verbose} ${context} -w "${destination}"
   fi
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to install $mode project '${c_notice}$project${c_reset}${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to install ${mode} project '${c_notice}${project}${c_reset}${c_error}'.${c_reset}"
     fi
 
     let failure=1
@@ -622,25 +647,26 @@ test_operate_build_project() {
 }
 
 test_operate_build_tools() {
-  local path_original="$PWD/"
+  local path_original="${PWD}/"
 
-  if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
     test_print_first_or_always
 
     echo -e "${c_highlight}Building project build tools.${c_reset}"
     echo -e "${c_title}-----------------------------${c_reset}"
+    echo
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "$shell_command ${path_scripts_package} $verbose $context -d $path_test_package -S fake rebuild"
+    echo "${shell_command} ${path_scripts_package} ${verbose} ${context} -d ${path_test_package} -S fake rebuild"
   fi
 
-  $shell_command ${path_scripts_package} $verbose $context -d $path_test_package -S fake rebuild
+  ${shell_command} ${path_scripts_package} ${verbose} ${context} -d ${path_test_package} -S fake rebuild
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Failed to clean and build the stand_alone fake package.${c_reset}"
@@ -649,15 +675,15 @@ test_operate_build_tools() {
     return 1
   fi
 
-  test_operate_build_project "$path_test_package_stand_alone" "$path_test_project" fake stand_alone bootstrap
+  test_operate_build_project "${path_test_package_stand_alone}" "${path_test_project}" fake stand_alone bootstrap ${build_project_thread}
 
-  if [[ $? -ne 0 ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
     let failure=1
   fi
 
-  cd $path_original
+  cd ${path_original}
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -666,29 +692,30 @@ test_operate_build_tools() {
 
 test_operate_ci_prebuild() {
   local clone_quiet=
-  local path_original="$PWD/"
+  local path_original="${PWD}/"
   local result=
 
-  if [[ $verbosity == "quiet" ]] ; then
+  if [[ ${verbosity} == "quiet" ]] ; then
     clone_quiet="-q"
   fi
 
-  if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
     test_print_first_or_always
 
     echo -e "${c_highlight}Performing Github Specific Pre-Build Operations.${c_reset}"
     echo -e "${c_title}------------------------------------------------${c_reset}"
+    echo
   fi
 
   test_operate_ci_prebuild_libcap
 
-  if [[ $? -ne 0 ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
     let failure=1
   fi
 
   cd ${path_original}
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -697,29 +724,30 @@ test_operate_ci_prebuild() {
 
 test_operate_ci_pretest() {
   local clone_quiet=
-  local path_original="$PWD/"
+  local path_original="${PWD}/"
   local result=
 
-  if [[ $verbosity == "quiet" ]] ; then
+  if [[ ${verbosity} == "quiet" ]] ; then
     clone_quiet="-q"
   fi
 
-  if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
     test_print_first_or_always
 
     echo -e "${c_highlight}Performing Github Specific Pre-Test Operations.${c_reset}"
     echo -e "${c_title}-----------------------------------------------${c_reset}"
+    echo
   fi
 
   test_operate_ci_pretest_cmocka
 
-  if [[ $? -ne 0 ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
     let failure=1
   fi
 
   cd ${path_original}
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -734,29 +762,29 @@ test_operate_ci_pretest_cmocka() {
   local cmocka_uri="https://github.com/coreboot/cmocka.git"
   local cmocka_branch="cmocka-1.1.5"
 
-  if [[ -d $cmocka_path ]] ; then
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ -d ${cmocka_path} ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       test_print_first_or_always
 
-      echo -e "Detected existing cmocka repository at \"${c_notice}$cmocka_path${c_reset}\", skipping the cmocka process."
+      echo -e "Detected existing cmocka repository at \"${c_notice}${cmocka_path}${c_reset}\", skipping the cmocka process."
     fi
 
     return 0
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "git clone $clone_quiet --single-branch -b $cmocka_branch \"$cmocka_uri\" $cmocka_path"
+    echo "git clone ${clone_quiet} --single-branch -b ${cmocka_branch} \"${cmocka_uri}\" ${cmocka_path}"
   fi
 
-  git clone $clone_quiet --single-branch -b $cmocka_branch "$cmocka_uri" $cmocka_path
+  git clone ${clone_quiet} --single-branch -b ${cmocka_branch} "${cmocka_uri}" ${cmocka_path}
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to git clone '${c_notice}$cmocka_uri${c_error}' onto  '${c_notice}$cmocka_path${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to git clone '${c_notice}${cmocka_uri}${c_error}' onto  '${c_notice}${cmocka_path}${c_error}'.${c_reset}"
     fi
 
     let failure=1
@@ -764,19 +792,19 @@ test_operate_ci_pretest_cmocka() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "mkdir $verbose_common -p $cmocka_data"
+    echo "mkdir ${verbose_common} -p ${cmocka_data}"
   fi
 
-  mkdir $verbose_common -p $cmocka_data
+  mkdir ${verbose_common} -p ${cmocka_data}
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to create cmocka build data directory '${c_notice}$cmocka_data${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to create cmocka build data directory '${c_notice}${cmocka_data}${c_error}'.${c_reset}"
     fi
 
     let failure=1
@@ -784,19 +812,19 @@ test_operate_ci_pretest_cmocka() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "cp $verbose_common $cmocka_settings $cmocka_data"
+    echo "cp ${verbose_common} ${cmocka_settings} ${cmocka_data}"
   fi
 
-  cp $verbose_common $cmocka_settings $cmocka_data
+  cp ${verbose_common} ${cmocka_settings} ${cmocka_data}
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to copy cmocka build settings: '${c_notice}$cmocka_settings${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to copy cmocka build settings: '${c_notice}${cmocka_settings}${c_error}'.${c_reset}"
     fi
 
     let failure=1
@@ -804,19 +832,19 @@ test_operate_ci_pretest_cmocka() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "cd $cmocka_path"
+    echo "cd ${cmocka_path}"
   fi
 
-  cd $cmocka_path
+  cd ${cmocka_path}
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to change cmocka source directory '${c_notice}$cmocka_path${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to change cmocka source directory '${c_notice}${cmocka_path}${c_error}'.${c_reset}"
     fi
 
     let failure=1
@@ -824,16 +852,16 @@ test_operate_ci_pretest_cmocka() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "PATH=\"$env_path\" LD_LIBRARY_PATH=\"$env_libs\" fake $verbose $context -w \"$path_test_work\" -m $build_compiler clean build $ci_arguments"
+    echo "PATH=\"${env_path}\" LD_LIBRARY_PATH=\"${env_libs}\" fake ${verbose} ${context} -w \"${path_test_work}\" -m ${build_compiler} -m ${test_thread} clean build ${ci_arguments}"
   fi
 
-  PATH="$env_path" LD_LIBRARY_PATH="$env_libs" fake $verbose $context -w "$path_test_work" -m $build_compiler clean build $ci_arguments
+  PATH="${env_path}" LD_LIBRARY_PATH="${env_libs}" fake ${verbose} ${context} -w "${path_test_work}" -m ${build_compiler} -m ${test_thread} clean build ${ci_arguments}
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Failed to build '${c_notice}cmocka${c_error}'.${c_reset}"
@@ -844,16 +872,16 @@ test_operate_ci_pretest_cmocka() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "cp $verbose_common -R ${cmocka_build}includes/* ${work_path}includes/"
+    echo "cp ${verbose_common} -R ${cmocka_build}includes/* ${work_path}includes/"
   fi
 
-  cp $verbose_common -R ${cmocka_build}includes/* ${work_path}includes/
+  cp ${verbose_common} -R ${cmocka_build}includes/* ${work_path}includes/
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Failed to install cmocka headers to '${c_notice}${work_path}includes/${c_error}'.${c_reset}"
@@ -864,16 +892,16 @@ test_operate_ci_pretest_cmocka() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "cp $verbose_common -R ${cmocka_build}libraries/shared/* ${work_path}libraries/shared/"
+    echo "cp ${verbose_common} -R ${cmocka_build}libraries/shared/* ${work_path}libraries/shared/"
   fi
 
-  cp $verbose_common -R ${cmocka_build}libraries/shared/* ${work_path}libraries/shared/
+  cp ${verbose_common} -R ${cmocka_build}libraries/shared/* ${work_path}libraries/shared/
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Failed to install cmocka libraries to '${c_notice}${work_path}libraries/shared/${c_error}'.${c_reset}"
@@ -892,29 +920,29 @@ test_operate_ci_prebuild_libcap() {
   local libcap_uri="https://github.com/thekevinday/kernel.org-libcap.git"
   local libcap_branch="master"
 
-  if [[ -d $libcap_path ]] ; then
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+  if [[ -d ${libcap_path} ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       test_print_first_or_always
 
-      echo -e "Detected existing libcap repository at \"${c_notice}$libcap_path${c_reset}\", skipping the libcap process."
+      echo -e "Detected existing libcap repository at \"${c_notice}${libcap_path}${c_reset}\", skipping the libcap process."
     fi
 
     return 0
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "git clone $clone_quiet --single-branch -b $libcap_branch \"$libcap_uri\" $libcap_path"
+    echo "git clone ${clone_quiet} --single-branch -b ${libcap_branch} \"${libcap_uri}\" ${libcap_path}"
   fi
 
-  git clone $clone_quiet --single-branch -b $libcap_branch "$libcap_uri" $libcap_path
+  git clone ${clone_quiet} --single-branch -b ${libcap_branch} "${libcap_uri}" ${libcap_path}
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to git clone '${c_notice}$libcap_uri${c_error}' onto  '${c_notice}$libcap_path${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to git clone '${c_notice}${libcap_uri}${c_error}' onto  '${c_notice}${libcap_path}${c_error}'.${c_reset}"
     fi
 
     let failure=1
@@ -922,19 +950,19 @@ test_operate_ci_prebuild_libcap() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
-    echo "cd $libcap_path"
+    echo "cd ${libcap_path}"
   fi
 
-  cd $libcap_path
+  cd ${libcap_path}
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
-      echo -e "${c_error}ERROR: Failed to change libcap source directory '${c_notice}$libcap_path${c_error}'.${c_reset}"
+      echo -e "${c_error}ERROR: Failed to change libcap source directory '${c_notice}${libcap_path}${c_error}'.${c_reset}"
 
       test_print_last
     fi
@@ -944,7 +972,7 @@ test_operate_ci_prebuild_libcap() {
     return 1
   fi
 
-  if [[ $verbosity == "debug" ]] ; then
+  if [[ ${verbosity} == "debug" ]] ; then
     test_print_first_or_always
 
     echo "make MANDIR=${work_path}fake/ SBINDIR=${work_path}fake/ INCDIR=${work_path}includes/ LIBDIR=${work_path}libraries/shared/ PKGCONFIGDIR=${work_path}fake/ install"
@@ -952,8 +980,8 @@ test_operate_ci_prebuild_libcap() {
 
   make MANDIR=${work_path}fake/ SBINDIR=${work_path}fake/ INCDIR=${work_path}includes/ LIBDIR=${work_path}libraries/shared/ PKGCONFIGDIR=${work_path}fake/ install
 
-  if [[ $? -ne 0 ]] ; then
-    if [[ $verbosity != "quiet" ]] ; then
+  if [[ ${?} -ne 0 ]] ; then
+    if [[ ${verbosity} != "quiet" ]] ; then
       test_print_first
 
       echo -e "${c_error}ERROR: Failed to build and install libcap into the work directory '${c_notice}${work_path}${c_error}'.${c_reset}"
@@ -971,23 +999,30 @@ test_operate_ci_prebuild_libcap() {
 
 test_operate_tests() {
   local project=
-  local path_original="$PWD/"
-  local destination="$path_test_work"
+  local path_original="${PWD}/"
+  local destination="${path_test_work}"
+  local thread_individual_param=
+  local thread_individual_value="${test_thread_individual}"
+
+  if [[ ${test_thread_individual} != "" ]] ; then
+    thread_individual_param="-m"
+  fi
 
-  for project in $projects ; do
+  for project in ${projects} ; do
 
-    if [[ $verbosity != "quiet" && $verbosity != "error" ]] ; then
+    if [[ ${verbosity} != "quiet" && ${verbosity} != "error" ]] ; then
       test_print_first_or_always
 
-      echo -e "${c_highlight}Testing Project $project.${c_reset}"
+      echo -e "${c_highlight}Testing Project ${project}.${c_reset}"
       echo -e "${c_title}--------------------------------------${c_reset}"
+      echo
     fi
 
-    if [[ ! -d $path_test_package_individual$project-$version/ ]] ; then
-      if [[ $verbosity != "quiet" ]] ; then
+    if [[ ! -d ${path_test_package_individual}${project}-${version}/ ]] ; then
+      if [[ ${verbosity} != "quiet" ]] ; then
         test_print_first
 
-        echo -e "${c_error}ERROR: Package directory '${c_notice}$path_test_package_individual$project-$version${c_error}' is invalid or missing.${c_reset}"
+        echo -e "${c_error}ERROR: Package directory '${c_notice}${path_test_package_individual}${project}-${version}${c_error}' is invalid or missing.${c_reset}"
 
         test_print_last
       fi
@@ -995,38 +1030,38 @@ test_operate_tests() {
       let failure=1
     fi
 
-    if [[ $failure == "" ]] ; then
-      if [[ ! -f $path_test_package_individual$project-$version/data/build/testfile ]] ; then
-        if [[ $(echo $projects_no_tests | grep -o "\<$project\>") == "" ]] ; then
-          if [[ $verbosity == "verbose" || $verbosity == "debug" ]] ; then
+    if [[ ${failure} == "" ]] ; then
+      if [[ ! -f ${path_test_package_individual}${project}-${version}/data/build/testfile ]] ; then
+        if [[ $(echo ${projects_no_tests} | grep -o "\<${project}\>") == "" ]] ; then
+          if [[ ${verbosity} == "verbose" || ${verbosity} == "debug" ]] ; then
             test_print_first_or_always
 
-            echo -e "${c_warning}WARNING: Project '${c_notice}$project${c_warning}' does not have a testfile.${c_reset}"
+            echo -e "${c_warning}WARNING: Project '${c_notice}${project}${c_warning}' does not have a testfile.${c_reset}"
           fi
         else
           test_print_first_or_always
 
-          echo -e "Project '${c_notice}$project${c_reset}' has no tests and is not expected to.${c_reset}"
+          echo -e "Project '${c_notice}${project}${c_reset}' has no tests and is not expected to.${c_reset}"
         fi
 
         continue
       fi
     fi
 
-    if [[ $failure == "" ]] ; then
-      if [[ $verbosity == "debug" ]] ; then
+    if [[ ${failure} == "" ]] ; then
+      if [[ ${verbosity} == "debug" ]] ; then
         test_print_first_or_always
 
-        echo -e "Running '${c_notice}cd $path_test_package_individual$project-$version/${c_reset}'."
+        echo -e "Running '${c_notice}cd ${path_test_package_individual}${project}-${version}/${c_reset}'."
       fi
 
-      cd $path_test_package_individual$project-$version/
+      cd ${path_test_package_individual}${project}-${version}/
 
-      if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+      if [[ ${?} -ne 0 ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           test_print_first
 
-          echo -e "${c_error}ERROR: Failed to change into directory '${c_notice}$path_test_package_individual$project-$version${c_error}'.${c_reset}"
+          echo -e "${c_error}ERROR: Failed to change into directory '${c_notice}${path_test_package_individual}${project}-${version}${c_error}'.${c_reset}"
 
           test_print_last
         fi
@@ -1035,28 +1070,28 @@ test_operate_tests() {
       fi
     fi
 
-    if [[ $failure == "" ]] ; then
-      if [[ $verbosity == "debug" ]] ; then
+    if [[ ${failure} == "" ]] ; then
+      if [[ ${verbosity} == "debug" ]] ; then
         test_print_first_or_always
 
-        if [[ $build_compiler == "gcc" ]] ; then
-          echo "PATH=\"$env_path\" LD_LIBRARY_PATH=\"$env_libs\" fake $verbose $context -w \"$destination\" -m individual -m test clean make -f testfile $ci_arguments"
+        if [[ ${build_compiler} == "gcc" ]] ; then
+          echo "PATH=\"${env_path}\" LD_LIBRARY_PATH=\"${env_libs}\" fake ${verbose} ${context} -w \"${destination}\" -m individual -m ${test_thread} ${thread_individual_param} ${thread_individual_value} -m test clean make -f testfile ${ci_arguments}"
         else
-          echo "PATH=\"$env_path\" LD_LIBRARY_PATH=\"$env_libs\" fake $verbose $context -w \"$destination\" -m individual -m test -m $build_compiler clean make -f testfile $ci_arguments"
+          echo "PATH=\"${env_path}\" LD_LIBRARY_PATH=\"${env_libs}\" fake ${verbose} ${context} -w \"${destination}\" -m individual -m ${test_thread} ${thread_individual_param} ${thread_individual_value} -m test -m ${build_compiler} clean make -f testfile ${ci_arguments}"
         fi
       fi
 
-      if [[ $build_compiler == "gcc" ]] ; then
-        PATH="$env_path" LD_LIBRARY_PATH="$env_libs" fake $verbose $context -w "$destination" -m individual -m test clean make -f testfile $ci_arguments
+      if [[ ${build_compiler} == "gcc" ]] ; then
+        PATH="${env_path}" LD_LIBRARY_PATH="${env_libs}" fake ${verbose} ${context} -w "${destination}" -m individual -m ${test_thread} ${thread_individual_param} ${thread_individual_value} -m test clean make -f testfile ${ci_arguments}
       else
-        PATH="$env_path" LD_LIBRARY_PATH="$env_libs" fake $verbose $context -w "$destination" -m individual -m test -m $build_compiler clean make -f testfile $ci_arguments
+        PATH="${env_path}" LD_LIBRARY_PATH="${env_libs}" fake ${verbose} ${context} -w "${destination}" -m individual -m ${test_thread} ${thread_individual_param} ${thread_individual_value} -m test -m ${build_compiler} clean make -f testfile ${ci_arguments}
       fi
 
-      if [[ $? -ne 0 ]] ; then
-        if [[ $verbosity != "quiet" ]] ; then
+      if [[ ${?} -ne 0 ]] ; then
+        if [[ ${verbosity} != "quiet" ]] ; then
           test_print_first
 
-          echo -e "${c_error}ERROR: Failure while testing project '${c_notice}$project${c_reset}${c_error}'.${c_reset}"
+          echo -e "${c_error}ERROR: Failure while testing project '${c_notice}${project}${c_reset}${c_error}'.${c_reset}"
 
           test_print_last
         fi
@@ -1065,14 +1100,14 @@ test_operate_tests() {
       fi
     fi
 
-    cd $path_original
+    cd ${path_original}
 
-    if [[ $failure != "" ]] ; then
+    if [[ ${failure} != "" ]] ; then
       break;
     fi
   done
 
-  if [[ $failure == "" ]] ; then
+  if [[ ${failure} == "" ]] ; then
     return 0
   fi
 
@@ -1081,7 +1116,7 @@ test_operate_tests() {
 
 test_print_first() {
 
-  if [[ $print_line_first == "yes" ]] ; then
+  if [[ ${print_line_first} == "yes" ]] ; then
     echo
 
     print_line_first=
@@ -1090,11 +1125,11 @@ test_print_first() {
 
 test_print_first_or_always() {
 
-  if [[ $print_line_first == "yes" ]] ; then
+  if [[ ${print_line_first} == "yes" ]] ; then
     echo
 
     print_line_first=
-  elif [[ $print_line_first == "no" ]] ; then
+  elif [[ ${print_line_first} == "no" ]] ; then
     print_line_first=
   else
     echo
@@ -1103,7 +1138,7 @@ test_print_first_or_always() {
 
 test_print_last() {
 
-  if [[ $print_line_last == "yes" ]] ; then
+  if [[ ${print_line_last} == "yes" ]] ; then
     echo
   fi
 }
index 1f4a406af6af9c1e47b3a9996edfd4a42acece5c..4c4073a60e6a9c2a0659894386a4f351e874c928 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling byte_dump as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libbyte_dump.so library.
+# This will compile a program that does not have a libbyte_dump.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name byte_dump
@@ -12,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
+modes stand_alone clang test fanalyzer thread threadless
 modes_default stand_alone
 
 build_compiler gcc
@@ -75,10 +83,12 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_f_file_rename_use_renameat2_
 defines -include sources/c/config.h -I sources/c/
-defines -D_di_libcap_ -D_di_pthread_support_
+#defines -D_f_file_rename_use_renameat2_
+defines -D_di_libcap_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index 333ec5d2311d247286dcecd27e0b54e4bf2b8249..e167a361ed6f8f54a0d3937d4b71ace3ac2ccab9 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling controller as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libcontroller.so library.
+# This will compile a program that does not have a libcontroller.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name controller
@@ -12,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang as_init fanalyzer
-modes_default stand_alone
+modes stand_alone clang test fanalyzer thread threadless as_init
+modes_default stand_alone thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -44,12 +52,13 @@ build_sources_program fll/level_0/status_string.c
 build_sources_program fll/level_0/signal.c
 build_sources_program fll/level_0/string.c fll/level_0/private-string.c fll/level_0/string/common.c fll/level_0/string/dynamic.c fll/level_0/string/map.c fll/level_0/string/map_multi.c fll/level_0/string/private-dynamic.c fll/level_0/string/private-map.c fll/level_0/string/private-map_multi.c fll/level_0/string/private-quantity.c fll/level_0/string/private-range.c fll/level_0/string/private-triple.c fll/level_0/string/quantity.c fll/level_0/string/range.c fll/level_0/string/static.c fll/level_0/string/triple.c
 build_sources_program fll/level_0/socket.c
-build_sources_program fll/level_0/thread.c fll/level_0/private-thread.c fll/level_0/thread/attribute.c fll/level_0/thread/barrier.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/condition.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/id.c fll/level_0/thread/key.c fll/level_0/thread/lock.c fll/level_0/thread/lock_attribute.c fll/level_0/thread/mutex.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/once.c fll/level_0/thread/semaphore.c fll/level_0/thread/set.c fll/level_0/thread/spin.c
 build_sources_program fll/level_0/type_array/array_length.c fll/level_0/type_array/cell.c fll/level_0/type_array/fll_id.c fll/level_0/type_array/int8.c fll/level_0/type_array/int16.c fll/level_0/type_array/int32.c fll/level_0/type_array/int64.c fll/level_0/type_array/int128.c fll/level_0/type_array/state.c fll/level_0/type_array/status.c fll/level_0/type_array/uint8.c fll/level_0/type_array/uint16.c fll/level_0/type_array/uint32.c fll/level_0/type_array/uint64.c fll/level_0/type_array/uint128.c
 build_sources_program fll/level_0/type_array/private-array_length.c fll/level_0/type_array/private-cell.c fll/level_0/type_array/private-fll_id.c fll/level_0/type_array/private-int8.c fll/level_0/type_array/private-int16.c fll/level_0/type_array/private-int32.c fll/level_0/type_array/private-int64.c fll/level_0/type_array/private-int128.c fll/level_0/type_array/private-state.c fll/level_0/type_array/private-status.c fll/level_0/type_array/private-uint8.c fll/level_0/type_array/private-uint16.c fll/level_0/type_array/private-uint32.c fll/level_0/type_array/private-uint64.c fll/level_0/type_array/private-uint128.c
 build_sources_program fll/level_0/utf.c fll/level_0/private-utf.c fll/level_0/private-utf_alphabetic.c fll/level_0/private-utf_combining.c fll/level_0/private-utf_control.c fll/level_0/private-utf_digit.c fll/level_0/private-utf_emoji.c fll/level_0/private-utf_numeric.c fll/level_0/private-utf_phonetic.c fll/level_0/private-utf_private.c fll/level_0/private-utf_punctuation.c fll/level_0/private-utf_subscript.c fll/level_0/private-utf_superscript.c fll/level_0/private-utf_symbol.c fll/level_0/private-utf_unassigned.c fll/level_0/private-utf_valid.c fll/level_0/private-utf_whitespace.c fll/level_0/private-utf_wide.c fll/level_0/private-utf_word.c fll/level_0/private-utf_zero_width.c
 build_sources_program fll/level_0/utf/common.c fll/level_0/utf/convert.c fll/level_0/utf/dynamic.c fll/level_0/utf/is.c fll/level_0/utf/is_character.c fll/level_0/utf/map.c fll/level_0/utf/map_multi.c fll/level_0/utf/static.c fll/level_0/utf/string.c fll/level_0/utf/triple.c fll/level_0/utf/private-dynamic.c fll/level_0/utf/private-map.c fll/level_0/utf/private-map_multi.c fll/level_0/utf/private-triple.c fll/level_0/utf/private-string.c
 
+build_sources_program-thread fll/level_0/thread.c fll/level_0/private-thread.c fll/level_0/thread/attribute.c fll/level_0/thread/barrier.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/condition.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/id.c fll/level_0/thread/key.c fll/level_0/thread/lock.c fll/level_0/thread/lock_attribute.c fll/level_0/thread/mutex.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/once.c fll/level_0/thread/semaphore.c fll/level_0/thread/set.c fll/level_0/thread/spin.c
+
 build_sources_program fll/level_1/control_group.c
 build_sources_program fll/level_1/conversion.c fll/level_1/private-conversion.c fll/level_1/conversion/common.c
 build_sources_program fll/level_1/directory.c fll/level_1/private-directory.c
@@ -109,10 +118,12 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_di_libcap_ -D_di_thread_support_
 defines -include sources/c/config.h -I sources/c/
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+#defines -D_di_libcap_
+defines -D_libcap_legacy_only_
 defines-as_init -D_controller_as_init_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -pthread -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index 0c998d80d3e239be26337eb1ee535a71e0f4e5b7..8c1a06ed8a92b117559753b5e0f7fdbdc4f6338e 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling fake as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libfake.so library.
+# This will compile a program that does not have a libfake.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name fake
@@ -12,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
-modes_default stand_alone
+modes stand_alone clang test fanalyzer thread threadless
+modes_default stand_alone thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -42,12 +50,13 @@ build_sources_program fll/level_0/pipe.c
 build_sources_program fll/level_0/print.c fll/level_0/private-print.c fll/level_0/print/common.c fll/level_0/print/to.c fll/level_0/print/private-to.c
 build_sources_program fll/level_0/signal.c
 build_sources_program fll/level_0/string.c fll/level_0/private-string.c fll/level_0/string/common.c fll/level_0/string/dynamic.c fll/level_0/string/map.c fll/level_0/string/map_multi.c fll/level_0/string/private-dynamic.c fll/level_0/string/private-map.c fll/level_0/string/private-map_multi.c fll/level_0/string/private-quantity.c fll/level_0/string/private-range.c fll/level_0/string/private-triple.c fll/level_0/string/quantity.c fll/level_0/string/range.c fll/level_0/string/static.c fll/level_0/string/triple.c
-build_sources_program fll/level_0/thread.c fll/level_0/private-thread.c fll/level_0/thread/attribute.c fll/level_0/thread/barrier.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/condition.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/id.c fll/level_0/thread/key.c fll/level_0/thread/lock.c fll/level_0/thread/lock_attribute.c fll/level_0/thread/mutex.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/once.c fll/level_0/thread/semaphore.c fll/level_0/thread/set.c fll/level_0/thread/spin.c
 build_sources_program fll/level_0/type_array/array_length.c fll/level_0/type_array/cell.c fll/level_0/type_array/fll_id.c fll/level_0/type_array/int8.c fll/level_0/type_array/int16.c fll/level_0/type_array/int32.c fll/level_0/type_array/int64.c fll/level_0/type_array/int128.c fll/level_0/type_array/state.c fll/level_0/type_array/status.c fll/level_0/type_array/uint8.c fll/level_0/type_array/uint16.c fll/level_0/type_array/uint32.c fll/level_0/type_array/uint64.c fll/level_0/type_array/uint128.c
 build_sources_program fll/level_0/type_array/private-array_length.c fll/level_0/type_array/private-cell.c fll/level_0/type_array/private-fll_id.c fll/level_0/type_array/private-int8.c fll/level_0/type_array/private-int16.c fll/level_0/type_array/private-int32.c fll/level_0/type_array/private-int64.c fll/level_0/type_array/private-int128.c fll/level_0/type_array/private-state.c fll/level_0/type_array/private-status.c fll/level_0/type_array/private-uint8.c fll/level_0/type_array/private-uint16.c fll/level_0/type_array/private-uint32.c fll/level_0/type_array/private-uint64.c fll/level_0/type_array/private-uint128.c
 build_sources_program fll/level_0/utf.c fll/level_0/private-utf.c fll/level_0/private-utf_alphabetic.c fll/level_0/private-utf_combining.c fll/level_0/private-utf_control.c fll/level_0/private-utf_digit.c fll/level_0/private-utf_emoji.c fll/level_0/private-utf_numeric.c fll/level_0/private-utf_phonetic.c fll/level_0/private-utf_private.c fll/level_0/private-utf_punctuation.c fll/level_0/private-utf_subscript.c fll/level_0/private-utf_superscript.c fll/level_0/private-utf_symbol.c fll/level_0/private-utf_unassigned.c fll/level_0/private-utf_valid.c fll/level_0/private-utf_whitespace.c fll/level_0/private-utf_wide.c fll/level_0/private-utf_word.c fll/level_0/private-utf_zero_width.c
 build_sources_program fll/level_0/utf/common.c fll/level_0/utf/convert.c fll/level_0/utf/dynamic.c fll/level_0/utf/is.c fll/level_0/utf/is_character.c fll/level_0/utf/map.c fll/level_0/utf/map_multi.c fll/level_0/utf/static.c fll/level_0/utf/string.c fll/level_0/utf/triple.c fll/level_0/utf/private-dynamic.c fll/level_0/utf/private-map.c fll/level_0/utf/private-map_multi.c fll/level_0/utf/private-triple.c fll/level_0/utf/private-string.c
 
+build_sources_program-thread fll/level_0/thread.c fll/level_0/private-thread.c fll/level_0/thread/attribute.c fll/level_0/thread/barrier.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/condition.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/id.c fll/level_0/thread/key.c fll/level_0/thread/lock.c fll/level_0/thread/lock_attribute.c fll/level_0/thread/mutex.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/once.c fll/level_0/thread/semaphore.c fll/level_0/thread/set.c fll/level_0/thread/spin.c
+
 build_sources_program fll/level_1/control_group.c
 build_sources_program fll/level_1/conversion.c fll/level_1/private-conversion.c fll/level_1/conversion/common.c
 build_sources_program fll/level_1/directory.c fll/level_1/private-directory.c
@@ -101,12 +110,13 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_di_libcap_
-#defines -D_f_file_rename_use_renameat2_
 defines -include sources/c/config.h -I sources/c/
-#defines -D_libcap_legacy_only_ -D_di_pthread_support_
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+#defines -D_f_file_rename_use_renameat2_
+#defines -D_di_libcap_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -pthread -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
 flags-clang -Wno-logical-op-parentheses
index 44721dd18d9586211d59f061b4bba2971f26db01..a7bff7c2fc7af80ed205f72b2925814e92f7d22f 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling firewall as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libfirewall.so library.
+# This will compile a program that does not have a libfirewall.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name firewall
@@ -12,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
-modes_default stand_alone
+modes stand_alone clang test fanalyzer thread threadless
+modes_default stand_alone thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -40,12 +48,13 @@ build_sources_program fll/level_0/pipe.c
 build_sources_program fll/level_0/print.c fll/level_0/private-print.c fll/level_0/print/common.c fll/level_0/print/to.c fll/level_0/print/private-to.c
 build_sources_program fll/level_0/signal.c
 build_sources_program fll/level_0/string.c fll/level_0/private-string.c fll/level_0/string/common.c fll/level_0/string/dynamic.c fll/level_0/string/map.c fll/level_0/string/map_multi.c fll/level_0/string/private-dynamic.c fll/level_0/string/private-map.c fll/level_0/string/private-map_multi.c fll/level_0/string/private-quantity.c fll/level_0/string/private-range.c fll/level_0/string/private-triple.c fll/level_0/string/quantity.c fll/level_0/string/range.c fll/level_0/string/static.c fll/level_0/string/triple.c
-build_sources_program fll/level_0/thread.c fll/level_0/private-thread.c fll/level_0/thread/attribute.c fll/level_0/thread/barrier.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/condition.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/id.c fll/level_0/thread/key.c fll/level_0/thread/lock.c fll/level_0/thread/lock_attribute.c fll/level_0/thread/mutex.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/once.c fll/level_0/thread/semaphore.c fll/level_0/thread/set.c fll/level_0/thread/spin.c
 build_sources_program fll/level_0/type_array/array_length.c fll/level_0/type_array/cell.c fll/level_0/type_array/fll_id.c fll/level_0/type_array/int8.c fll/level_0/type_array/int16.c fll/level_0/type_array/int32.c fll/level_0/type_array/int64.c fll/level_0/type_array/int128.c fll/level_0/type_array/state.c fll/level_0/type_array/status.c fll/level_0/type_array/uint8.c fll/level_0/type_array/uint16.c fll/level_0/type_array/uint32.c fll/level_0/type_array/uint64.c fll/level_0/type_array/uint128.c
 build_sources_program fll/level_0/type_array/private-array_length.c fll/level_0/type_array/private-cell.c fll/level_0/type_array/private-fll_id.c fll/level_0/type_array/private-int8.c fll/level_0/type_array/private-int16.c fll/level_0/type_array/private-int32.c fll/level_0/type_array/private-int64.c fll/level_0/type_array/private-int128.c fll/level_0/type_array/private-state.c fll/level_0/type_array/private-status.c fll/level_0/type_array/private-uint8.c fll/level_0/type_array/private-uint16.c fll/level_0/type_array/private-uint32.c fll/level_0/type_array/private-uint64.c fll/level_0/type_array/private-uint128.c
 build_sources_program fll/level_0/utf.c fll/level_0/private-utf.c fll/level_0/private-utf_alphabetic.c fll/level_0/private-utf_combining.c fll/level_0/private-utf_control.c fll/level_0/private-utf_digit.c fll/level_0/private-utf_emoji.c fll/level_0/private-utf_numeric.c fll/level_0/private-utf_phonetic.c fll/level_0/private-utf_private.c fll/level_0/private-utf_punctuation.c fll/level_0/private-utf_subscript.c fll/level_0/private-utf_superscript.c fll/level_0/private-utf_symbol.c fll/level_0/private-utf_unassigned.c fll/level_0/private-utf_valid.c fll/level_0/private-utf_whitespace.c fll/level_0/private-utf_wide.c fll/level_0/private-utf_word.c fll/level_0/private-utf_zero_width.c
 build_sources_program fll/level_0/utf/common.c fll/level_0/utf/convert.c fll/level_0/utf/dynamic.c fll/level_0/utf/is.c fll/level_0/utf/is_character.c fll/level_0/utf/map.c fll/level_0/utf/map_multi.c fll/level_0/utf/static.c fll/level_0/utf/string.c fll/level_0/utf/triple.c fll/level_0/utf/private-dynamic.c fll/level_0/utf/private-map.c fll/level_0/utf/private-map_multi.c fll/level_0/utf/private-triple.c fll/level_0/utf/private-string.c
 
+build_sources_program-thread fll/level_0/thread.c fll/level_0/private-thread.c fll/level_0/thread/attribute.c fll/level_0/thread/barrier.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/condition.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/id.c fll/level_0/thread/key.c fll/level_0/thread/lock.c fll/level_0/thread/lock_attribute.c fll/level_0/thread/mutex.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/once.c fll/level_0/thread/semaphore.c fll/level_0/thread/set.c fll/level_0/thread/spin.c
+
 build_sources_program fll/level_1/control_group.c
 build_sources_program fll/level_1/conversion.c fll/level_1/private-conversion.c fll/level_1/conversion/common.c
 build_sources_program fll/level_1/environment.c
@@ -92,9 +101,11 @@ environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 defines -include sources/c/config.h -I sources/c/
-#defines -D_di_libcap_ -D_di_thread_support_
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+#defines -D_di_libcap_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -pthread -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index 7c845c61470ac27719e3afec85e412f4a86efa00..00d205d497d6f10e9b6144e50f9660cf788c9249 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling fss_identify as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libfss_identify.so library.
+# This will compile a program that does not have a libfss_identify.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name fss_identify
@@ -12,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
+modes stand_alone clang test fanalyzer thread threadless
 modes_default stand_alone
 
 build_compiler gcc
@@ -79,10 +87,12 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_di_libcap_ -D_di_thread_support_
 defines -include sources/c/config.h -I sources/c/
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+#defines -D_di_libcap_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index 0db8761a032198412b6f34e6b0088657d59acda1..0c551f1bf4682a00d65f0f6662092cd2edb76c02 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling fss_status_code as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libfss_status_code.so library.
+# This will compile a program that does not have a libfss_status_code.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name fss_status_code
@@ -12,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
+modes stand_alone clang test fanalyzer thread threadless
 modes_default stand_alone
 
 build_compiler gcc
@@ -81,11 +89,13 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_f_file_rename_use_renameat2_
 defines -include sources/c/config.h -I sources/c/
-#defines -D_di_libcap_ -D_di_thread_support_
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+#defines -D_f_file_rename_use_renameat2_
+#defines -D_di_libcap_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index b46617e26686680fe75c1809c44bbb0d90b23380..fb3069cac28a62b2898e03f5cb032633c7529f5c 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling iki_read as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libiki_read.so library.
+# This will compile a program that does not have a libiki_read.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name iki_read
@@ -12,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
+modes stand_alone clang test fanalyzer thread threadless
 modes_default stand_alone
 
 build_compiler gcc
@@ -78,10 +86,12 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_di_libcap_ -D_di_thread_support_
 defines -include sources/c/config.h -I sources/c/
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+#defines -D_di_libcap_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index e0f46a89280c63e41689b61672ae1eae486feff8..0ebb8578065c00ee67ebe2aa5cbd5045affc3ddd 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling iki_write as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libiki_write.so library.
+# This will compile a program that does not have a libiki_write.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name iki_write
@@ -12,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
+modes stand_alone clang test fanalyzer thread threadless
 modes_default stand_alone
 
 build_compiler gcc
@@ -78,10 +86,12 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_di_libcap_ -D_di_thread_support_
 defines -include sources/c/config.h -I sources/c/
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+#defines -D_di_libcap_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index a08b01e7a09a7e748219bb4d1514ae4ca58df4ca..1349bd05bffe77c0fddcaadee2c072a4a399c975 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling status_code as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libstatus_code.so library.
+# This will compile a program that does not have a libstatus_code.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name status_code
@@ -12,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
+modes stand_alone clang test fanalyzer thread threadless
 modes_default stand_alone
 
 build_compiler gcc
@@ -78,11 +86,13 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_f_file_rename_use_renameat2_
 defines -include sources/c/config.h -I sources/c/
+#defines -D_f_file_rename_use_renameat2_
 #defines -D_di_libcap_ -D_di_thread_support_
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines -D_libcap_legacy_only_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
 flags-clang -Wno-logical-op-parentheses
index eb348726932c849ec5e50af89e8cfba69563a310..f1ac89b4d8fc5a3d9c41460c685c23233823e771 100644 (file)
@@ -1,7 +1,15 @@
 # fss-0001
 #
 # A custom build for compiling utf8 as a stand alone binary building in all of the FLL dependencies.
-# This will compile a program that does not have a libutf8.so library.
+# This will compile a program that does not have a libutf8.so library and builds all of the FLL dependencies into the resulting program.
+#
+# Modes:
+#   - stand_alone: The stand alone build mode, which in general should always be used.
+#   - clang:       Use clang rather than the default, which is generally gcc.
+#   - test:        Compile for a test, such as unit testing.
+#   - fanalyzer:   Compile using GCC's -fanalyzer compile time option.
+#   - thread:      Compile with thread support.
+#   - threadless:  Compile without thread support.
 #
 
 build_name utf8
@@ -12,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes stand_alone clang fanalyzer
+modes stand_alone clang test fanalyzer thread threadless
 modes_default stand_alone
 
 build_compiler gcc
@@ -76,10 +84,12 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
-#defines -D_f_file_rename_use_renameat2_
 defines -include sources/c/config.h -I sources/c/
-defines -D_di_libcap_ -D_di_pthread_support_
+#defines -D_f_file_rename_use_renameat2_
+defines -D_di_libcap_
 defines-clang -D_clang_not_a_compile_time_constant_workaround_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
 flags-clang -Wno-logical-op-parentheses
index c19a975802557b18fe607628e7b7f97aebb5d7ab..d2735f1f2c8a24c768923fb8af2c2a3e1d6c472f 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_account
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 778a2b06c9c3a9e813786d6302059948d63edc95..8f5a93c0832fbc51f9c68d7751684ab36ee0ad4c 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_capability
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 2d050ee57ebe068522dff07ca1f7a1a9fb99f94a..949988ce6d8b460182727a766648f2866ecb966b 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_color
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index e02c67476942d0ae1be2ccda0bd617aca299f6b9..2530a4f8e958bc57824945e1a85616203b9bf693 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_console
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index cc1bb4b5d80d977f530412c79b55d4c215d6eb01..a7f5fb344f287f5892df290ecdbf003326d079a3 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_control_group
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 9d984e24898ebe730ade5c10f2dd64d9de133ae6..5b7afc2219a06d4d7151f402d0a9e1f473dba7d1 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_conversion
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 6f16317f50517dfeff5ed38f22e1650ce33d556f..a1f0d4ece3360cc61356387df7be53d6bbd169a1 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_directory
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 6ce3c6aaf6b0d2faf21c04d9c62633a3d10e5ed9..c6e07e01b5a0564adfd7a7791024dfec0aa1aa31 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_environment
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 2df7ee519948c580134348e1acfbe2f900f5f93a..e73873430ccfb15573a0944ab52cacafa3d046e6 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_execute
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 3bdb135f0063d8950089acf6dcf2e7691c46632f..7bbb0543cb6c732941662a7e25254baff75ac769 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_file
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 4f1bdd61cc00472aa5f06944096916b1808f3c5f..b1751669d1a5a5b875b6250f1bcfb64552ab9f73 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_fss
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 01605b2aa4585346629165faaed75223e2ef2678..619cdd296cb4298c89ee060ffb447c42a01f15e9 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_iki
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 647a556f1fee523370a1ed9e9b617aa890359346..11455363dd7ed561f29030cb1edd28d1bca2469d 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_limit
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index d4fe6ba2a94dd496db90c40648f41a49e9b91347..82eb6eb7f512370da47da6e87128955d880fbc3c 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_memory
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 5cb8f50ebfda8f160f7034bcd5fed7ab65b4f137..1985798713931134fa3541844ef33b1f78e3cfcf 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_path
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 3337c9188950d52176ccd5aa28067a9a7a1786c9..9ddf7986d319392fb6fc908a0dd289b9f5e10605 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_pipe
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index faef9557bec50a2c81a13de68f042a656dea677f..b272e7d994619afb3c9297d4dd0c43c5b0beddfe 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_print
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 66a97665fe93af2d3703180c0c09f29d02501df3..96acca708567941030f02c74bfa8f0653f4aa64a 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_serialize
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index d4a32181148925c56ac573565e979d1b5a8a2f6a..83a3128ba06c7c5c14c8910e474f77f705d169d9 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_signal
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index b9bd17e6965f18373d76f958b75eb24c2c7ba132..8d0bbb74b4a30b8c502587d2a62ad5dc81560758 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_socket
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 16bdaae3339e7996dc543a6ef2664529229ac23c..8732b14ac7d2352f79c20243708c2fe68b67cf3d 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_status
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 73845ca5f084ffc676c26a6b59e819469f755aad..64d290c871551dec3cecc67cf498a63660524685 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_status_string
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index d78f07621d449234475db94e117d79eed890b5b1..a14eae1ebafb3848b0ee279791022842f69a72a4 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_string
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 7db0d18cd64037da69e52d5ccb2c46699987eaed..e0dc4bf08b1c52b6f7924d25f0cfcfa18132f4c3 100644 (file)
@@ -1,4 +1,18 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
+# Note: This adds "threadless" and "thread" for consistency reasons. This should never use "threadless" and using "thread" is redundant.
+#
 
 build_name f_thread
 
@@ -8,8 +22,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -17,7 +31,7 @@ build_indexer ar
 build_indexer_arguments rcs
 build_language c
 
-build_libraries -pthread -lc
+build_libraries -lc
 build_libraries-individual -lf_memory -lf_string
 
 build_sources_library thread.c private-thread.c thread/attribute.c thread/barrier.c thread/barrier_attribute.c thread/condition.c thread/condition_attribute.c thread/id.c thread/key.c thread/lock.c thread/lock_attribute.c thread/mutex.c thread/mutex_attribute.c thread/once.c thread/semaphore.c thread/set.c thread/spin.c
@@ -52,6 +66,7 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L
 defines -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/
index c0a1cb5d7a789d864268cb8c543d3c0c0791c89e..a6db2ac620a9a081e3b2db50b84e2e22224a8c43 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_type
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 5b12b31c0a9421a0fb88797f7796ae78bc8c3ae3..9b605ede711516e56c18b478a2e0acc01a354167 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_type_array
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index cf077774016b17f632508ba498232835664a3669..f161b53a9492be4bd47b33ec1a4ee3abc0d98315 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name f_utf
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 0417a2a5bddf6f59bb4ce42e63611b101bd744ce..089c048c7f074084a61ea83476c49e1af759947e 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_control_group
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 3372118b935baf8cf32b155a5497f4c4628086f9..c91a464259eca143cb65f505ed7451b52efb4bc0 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_conversion
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 6a2103710bab221f23dc2e40d8b6db748880b846..df50076d5a360497040f9a8622768280ab6c355b 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_directory
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 784972975ad4651788f4a81503bbf9a1793914fc..00e4f0831d93a6472537685391a5cee3122ed267 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_environment
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index ac8bdfc0c501adb4ae211dad71fc9567f86e5d75..73c7c3fcb60b1f308f2e9e699011ef28980eb1c7 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_execute
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc -lcap
 build_libraries-individual -lf_capability -lf_execute -lf_limit -lf_memory -lf_signal -lf_string -lf_type_array
+build_libraries-individual_thread -lf_thread
 
 build_sources_headers execute.h execute/common.h
 
@@ -49,8 +62,11 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L
 
 #defines -D_di_libcap_
 defines -D_libcap_legacy_only_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/
index fd997d39de2472ebaaba5074a930199fb8dc9f95..9bc55a43a92b6b43a79010752c340b85d49057b2 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_fss
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 582e87ec730e9b466c2490c81581b3112262b938..d3f52be68ff8b69785b484363b9882012ec5651a 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_iki
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index e7cfc8805355e510eb2695eda68dfc6c8792bbc9..08feb966288b97dea6e98cb097e7fe8dfc5b3fbd 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_print
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index e52804fca00b0e0123bcc1a7c2430d53011fa249..d72ebb3a57de2641b625a420e4df396c75d30b39 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_signal
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 2106a60f4bc49ed89267f613dde706c8b1ae054c..c9d1f01eb96ebd6148208c3ae2ef04c85f3095c2 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_string
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index fcf55d84df0d1f98865f2c459fd650a86e32cd6b..f834a62a3e90a0d1caba9f97ec534d4132b251b9 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_utf
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index dd74c603763c17c5f7af770bd63c53b07150e35d..9ff4e06f74b5b3f7ff9f3d3f8c3b0e3557755832 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fl_utf_file
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index abe9dc2b5225fe71306e47b0f436a4585a381ed8..41f28300022dd9793211b5cfe099b72885c8edb2 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_control_group
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 09de414f56a7ab88b1929607bb8544ccc09b26c4..7724c5a46e0768617d96065f6f1ed71d64e50951 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_error
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index ad96a61733f27c2123fdc7afc0ac355140a00ec4..99a984eab27e3061b49c3584a429cd9733b4b20f 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_execute
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual individual_threadless clang test
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -18,8 +30,8 @@ build_indexer_arguments rcs
 build_language c
 
 build_libraries -lc -lcap
-build_libraries-individual -lfl_control_group -lfl_environment -lf_account -lf_capability -lf_control_group -lf_environment -lf_execute -lf_file -lf_limit -lf_memory -lf_path -lf_signal -lf_string -lf_thread -lf_type_array -lf_utf
-build_libraries-individual_threadless -lfl_control_group -lfl_environment -lf_account -lf_capability -lf_control_group -lf_environment -lf_execute -lf_file -lf_limit -lf_memory -lf_path -lf_signal -lf_string -lf_type_array -lf_utf
+build_libraries-individual -lfl_control_group -lfl_environment -lf_account -lf_capability -lf_control_group -lf_environment -lf_execute -lf_file -lf_limit -lf_memory -lf_path -lf_signal -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 
 build_sources_library execute.c private-execute.c
 
@@ -51,14 +63,15 @@ environment PATH LD_LIBRARY_PATH
 environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
-defines-individual_threadless -D_di_thread_support_
+defines -D_libcap_legacy_only_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/
-flags-individual -pthread
 
 flags_library -fPIC
 flags_object -fPIC
index 2ed10cb4c652f7a420e34c66e061c46e485ab284..c6aea60fdea8c2cdacc63f618d6f61e1183e189f 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_file
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 63c6da43af305c0166b1bc26690f968ea4bb54c4..dadf89fbb0258c5b5f6678502d69effec29a1193 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_fss
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index d3d5038dd29bf0c41338c43f3b84cab70eb6155a..1252ac5cf3329d5031116df18b4d00d52cc21102 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_fss_status_string
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index f7eb7bb1bba2313ee0c6ef932a8324ca39a84262..d951c55d507bc43b69cc3d7a99e34da1e5fabd4e 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_iki
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 20faa8217318245e12998abbf2ce3bd1d1e46cc9..f749c0ce0413abb4fcc7de5d56bdca9cd6089d64 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_path
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 2de841eba88259d7e71e0f75bb2d1c74c01d2120..cb06df82016337a42ac359b1a85cabeea1188ca8 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_print
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 4775b143ac3cd39f00b8a370575f90814f0c1151..16b9c2e4c1bd6cdfae67acbce26d3054601e2d5a 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_program
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index 068230085fe8e7c30cb079e2b63e5565e031cea3..3f5dbc7106b3bf6aa68459cc745ef9fcd71281dc 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fll_status_string
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual clang test coverage
-modes_default individual
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default individual individual_thread thread
 
 build_compiler gcc
 build_compiler-clang clang
index ba2382498232c8a0195066162440d27101706d3d..5a8dfcab3e17ccefaa91f369ae7156839f323d9b 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name byte_dump
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -55,9 +68,12 @@ search_static yes
 environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
-defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines -D_libcap_legacy_only_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index f461ed9e8581a850f51e92004eb79ccb37c002e6..6b6aa46d0c621055f09e5ca7755e1ff500fb7f74 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name control
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_fss -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_socket -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 8c8d46024c2d65795aebd479f2785a0e9ff9bb98..b8556ff78b7ba349a115d7da96a0f7969318ed0d 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name controller
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer as_init
-modes_default monolithic
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default monolithic thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -20,7 +32,8 @@ build_language c
 build_libraries -lc -lcap
 build_libraries-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_path -lfll_print -lfll_program -lfll_status_string
 build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_print -lfl_string
-build_libraries-individual -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_socket -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf
+build_libraries-individual -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_socket -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -68,9 +81,12 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 defines-as_init -D_controller_as_init_
 
-flags -O2 -z now -g -pthread -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index ffa3007d86012a77eba4b6a6c918e6b3e9fd40da..437a3a9faa2aa8c6311332e198c924eb9f333817 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fake
 
@@ -11,8 +23,8 @@ version_target minor
 process_pre process_pre.sh
 process_post process_post.sh
 
-modes individual level monolithic clang test fanalyzer
-modes_default monolithic
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default monolithic thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -23,7 +35,8 @@ build_language c
 build_libraries -lc -lcap
 build_libraries-individual -lfll_error -lfll_execute -lfll_file -lfll_fss -lfll_path -lfll_print -lfll_program
 build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_print -lfl_string
-build_libraries-individual -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf
+build_libraries-individual -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -66,8 +79,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
-flags -O2 -z now -g -pthread -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index c41f0f4d7c0dddce70621fa20010cb55c7ae63fa..e02d17cd8b5a52a1b7dce0fbd7c74effd1c759b0 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name firewall
 
@@ -8,8 +20,8 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
-modes_default monolithic
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes_default monolithic thread
 
 build_compiler gcc
 build_compiler-clang clang
@@ -18,7 +30,8 @@ build_indexer_arguments rcs
 build_language c
 
 build_libraries -lc -lcap
-build_libraries-individual -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program -lfl_control_group -lfl_conversion -lfl_environment -lfl_fss -lfl_print -lfl_string -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf
+build_libraries-individual -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program -lfl_control_group -lfl_conversion -lfl_environment -lfl_fss -lfl_print -lfl_string -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -58,8 +71,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
-flags -O2 -z now -g -pthread -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 94571ac818020f0ce1a0cb70ea2e56af5004094b..293bfdb0238e757dfbe453faa8a410de82c92412 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_basic_list_read
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 943ba9c028f67ff8513d9af2f93ed1ae964fb6a4..ca480bbd1aecde15098d6dcfd5f25b067ab9fe5e 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_basic_list_write
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index e3ea60ddf939bf40e40977ffb2a3c43121b7c16d..9cefd7ebfa72eb1ffd3a5b629be0d6176dd12ed9 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_basic_read
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 338a551d4f235f93bd9f638ac10a47b89a6be525..9850ffc7edadfc3cca6872f49262ee1eb188b878 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_basic_write
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 764b976cd4ada5a9ef44b750f332f0fdddb96d88..f9855aaad6250d4b10daf2f4939cac77a35499f4 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_embedded_list_read
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -47,8 +60,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index b3f347cec722657be524b4e697c4abce1bc80208..34c1551fcb99612fa2b036ea6aa2a7155f8598ea 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_embedded_list_write
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 48fb89c2ed44a9620b767ed28907bfe8cb2d2906..4e5a4b211f9e2cccf3383410c8b2ef431ab2f0fd 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_extended_list_read
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -47,8 +60,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index d2dce36f5c5bf7765fbb0290cd2659b5397363c8..43ff858fa2e42473c9f1bf6c83f75ed8cbb656c9 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_extended_list_write
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -47,8 +60,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index d25c4178d7da942ce388f145cc5082fc45ba0d4a..cb64a2b86fada6a1bba71624b14c92e1a6be4d2b 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_extended_read
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index ed62902d4c3a53b99216c36d4061053ab912e92d..e87ef69b9110c272a35bfc6254b74d3263fb52b0 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_extended_write
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index b011e50b5d454b01552628bb8a72e29358ce88a9..acbe3589f1ad1612d82f564ffa36fbe860eaa49f 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_identify
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_fss -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 18b6dcf6037487db08ef10799b2e89cd2badf3d1..ea2e30d1a296fafd134ae48f278831bd7b706ca2 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_payload_read
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 2418cc7f015da519a886320b2a7518604d62d152..9a634515a2855582b9fcffc90e050ff4030cf861 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_payload_write
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -47,8 +60,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index f62d9d29644b220895d122538822b2b5d64d02c9..397285865e4fc377d63b1ecfa4f9394c0be83af8 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name fss_status_code
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_fss_status_string -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index f9e83759504f0b1fa4507702659fa3dd8abc08e0..0fcf69ea61caf9fe17a1ff185b6b013c89a789c1 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name iki_read
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_iki -lfl_print -lfl_signal -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_iki -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 4ca5f912ff4bcb4ea19bddb1e4f34c56e7d5bd3f..bb97e5f7494d29a492e45139095fe0a72b63b8ed 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name iki_write
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_iki -lfll_print -lfll_program -lfl_iki -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_iki -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index 4094e7f5d8703fcf1b48c64d50f2c19473121097..ad3ad6d8ea29a3ef8b2675146df5e1648b02c966 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name status_code
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_file -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer
index b03b4ffdc76ce859b7a9872bb5d5c59d8ddb90c6..27e67eda27c699162c7b94abbee900ff03a93155 100644 (file)
@@ -1,4 +1,16 @@
 # fss-0001
+#
+# Modes:
+#   - individual:        Compile using per project (individual) libraries, does not handle thread or threadless cases.
+#   - individual_thread: This is required when compiling in individual mode with "thread" mode.
+#   - level:             Compile using per level libraries.
+#   - monolithic:        Compile using per monolithic libraries.
+#   - clang:             Use clang rather than the default, which is generally gcc.
+#   - test:              Compile for a test, such as unit testing.
+#   - fanalyzer:         Compile using GCC's -fanalyzer compile time option.
+#   - thread:            Compile with thread support.
+#   - threadless:        Compile without thread support.
+#
 
 build_name utf8
 
@@ -8,7 +20,7 @@ version_micro 5
 version_file micro
 version_target minor
 
-modes individual level monolithic clang test fanalyzer
+modes individual individual_thread level monolithic clang test fanalyzer thread threadless
 modes_default monolithic
 
 build_compiler gcc
@@ -19,6 +31,7 @@ build_language c
 
 build_libraries -lc
 build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf
+build_libraries-individual_thread -lf_thread
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
@@ -56,8 +69,11 @@ environment PATH LD_LIBRARY_PATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+defines-threadless -D_di_thread_support_
+defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
 
 flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-thread -pthread
 flags-clang -Wno-logical-op-parentheses
 flags-test -O0 -fstack-protector -Wall
 flags-fanalyzer -fanalyzer