]> Kevux Git Server - fll/commitdiff
Update: Bootstrap script, changing the switch to loops and fixing static object build...
authorKevin Day <Kevin@kevux.org>
Thu, 11 Dec 2025 05:27:28 +0000 (23:27 -0600)
committerKevin Day <Kevin@kevux.org>
Thu, 11 Dec 2025 05:27:28 +0000 (23:27 -0600)
Using a loop with a counter allows for avoiding the need to manually specify each count.
This makes updating easier in that regard.

The number of values would make one huge loop so break it apart into multiple loops.

The object building for static objects is incorrectly using shared variables when it should instead use static variables.

build/scripts/bootstrap.sh

index 18491e1f4a7e727dab346d99737d1ed44c6a4b00..55047bbbcd5f0f98005e8d34e9b5b018b46fc509 100644 (file)
@@ -534,254 +534,38 @@ bootstrap_copyright() {
 }
 
 bootstrap_id() {
+  local match=${1}
+  local name=
 
-  case ${1} in
-    "build_compiler") let key=0;;
-    "build_indexer") let key=1;;
-    "build_indexer_arguments") let key=2;;
-    "build_language") let key=3;;
-    "build_libraries") let key=4;;
-    "build_libraries_shared") let key=5;;
-    "build_libraries_static") let key=6;;
-    "build_name") let key=7;;
-    "build_objects_library") let key=8;;
-    "build_objects_library_shared") let key=9;;
-    "build_objects_library_static") let key=10;;
-    "build_objects_program") let key=11;;
-    "build_objects_program_shared") let key=12;;
-    "build_objects_program_static") let key=13;;
-    "build_script") let key=14;;
-    "build_shared") let key=15;;
-    "build_sources_documentation") let key=16;;
-    "build_sources_headers") let key=17;;
-    "build_sources_headers_shared") let key=18;;
-    "build_sources_headers_static") let key=19;;
-    "build_sources_library") let key=20;;
-    "build_sources_library_shared") let key=21;;
-    "build_sources_library_static") let key=22;;
-    "build_sources_object") let key=23;;
-    "build_sources_object_shared") let key=24;;
-    "build_sources_object_static") let key=25;;
-    "build_sources_program") let key=26;;
-    "build_sources_program_shared") let key=27;;
-    "build_sources_program_static") let key=28;;
-    "build_sources_script") let key=29;;
-    "build_sources_setting") let key=30;;
-    "build_static") let key=31;;
-    "defines") let key=32;;
-    "defines_library") let key=33;;
-    "defines_library_shared") let key=34;;
-    "defines_library_static") let key=35;;
-    "defines_object") let key=36;;
-    "defines_object_shared") let key=37;;
-    "defines_object_static") let key=38;;
-    "defines_program") let key=39;;
-    "defines_program_shared") let key=40;;
-    "defines_program_static") let key=41;;
-    "defines_shared") let key=42;;
-    "defines_static") let key=43;;
-    "environment") let key=44;;
-    "flags") let key=45;;
-    "flags_library") let key=46;;
-    "flags_library_shared") let key=47;;
-    "flags_library_static") let key=48;;
-    "flags_object") let key=49;;
-    "flags_object_shared") let key=50;;
-    "flags_object_static") let key=51;;
-    "flags_program") let key=52;;
-    "flags_program_shared") let key=53;;
-    "flags_program_static") let key=54;;
-    "flags_shared") let key=55;;
-    "flags_static") let key=56;;
-    "has_path_standard") let key=57;;
-    "modes") let key=58;;
-    "modes_default") let key=59;;
-    "path_headers") let key=60;;
-    "path_language") let key=61;;
-    "path_library_script") let key=62;;
-    "path_library_shared") let key=63;;
-    "path_library_static") let key=64;;
-    "path_object_script") let key=65;;
-    "path_object_shared") let key=66;;
-    "path_object_static") let key=67;;
-    "path_program_script") let key=68;;
-    "path_program_shared") let key=69;;
-    "path_program_static") let key=70;;
-    "path_sources") let key=71;;
-    "path_sources_headers") let key=72;;
-    "path_sources_library") let key=73;;
-    "path_sources_object") let key=74;;
-    "path_sources_program") let key=75;;
-    "path_sources_script") let key=76;;
-    "preserve_path_headers") let key=77;;
-    "process_post") let key=78;;
-    "process_pre") let key=79;;
-    "search_exclusive") let key=80;;
-    "search_shared") let key=81;;
-    "search_static") let key=82;;
-    "stage") let key=83;;
-    "version_file") let key=84;;
-    "version_major") let key=85;;
-    "version_major_prefix") let key=86;;
-    "version_micro") let key=87;;
-    "version_micro_prefix") let key=88;;
-    "version_minor") let key=89;;
-    "version_minor_prefix") let key=90;;
-    "version_nano") let key=91;;
-    "version_nano_prefix") let key=92;;
-    "version_target") let key=93;;
-
-    "build_compiler-mode") let key=94;;
-    "build_indexer-mode") let key=95;;
-    "build_indexer_arguments-mode") let key=96;;
-    "build_language-mode") let key=97;;
-    "build_libraries-mode") let key=98;;
-    "build_libraries_shared-mode") let key=99;;
-    "build_libraries_static-mode") let key=100;;
-    "build_name-mode") let key=101;;
-    "build_objects_library-mode") let key=102;;
-    "build_objects_library_shared-mode") let key=103;;
-    "build_objects_library_static-mode") let key=104;;
-    "build_objects_program-mode") let key=105;;
-    "build_objects_program_shared-mode") let key=106;;
-    "build_objects_program_static-mode") let key=107;;
-    "build_script-mode") let key=108;;
-    "build_shared-mode") let key=109;;
-    "build_sources_documentation-mode") let key=110;;
-    "build_sources_headers-mode") let key=111;;
-    "build_sources_headers_shared-mode") let key=112;;
-    "build_sources_headers_static-mode") let key=113;;
-    "build_sources_library-mode") let key=114;;
-    "build_sources_library_shared-mode") let key=115;;
-    "build_sources_library_static-mode") let key=116;;
-    "build_sources_object-mode") let key=117;;
-    "build_sources_object_shared-mode") let key=118;;
-    "build_sources_object_static-mode") let key=119;;
-    "build_sources_program-mode") let key=120;;
-    "build_sources_program_shared-mode") let key=121;;
-    "build_sources_program_static-mode") let key=122;;
-    "build_sources_script-mode") let key=123;;
-    "build_sources_setting-mode") let key=124;;
-    "build_static-mode") let key=125;;
-    "defines-mode") let key=126;;
-    "defines_library-mode") let key=127;;
-    "defines_library_shared-mode") let key=128;;
-    "defines_library_static-mode") let key=129;;
-    "defines_object-mode") let key=130;;
-    "defines_object_shared-mode") let key=131;;
-    "defines_object_static-mode") let key=132;;
-    "defines_program-mode") let key=133;;
-    "defines_program_shared-mode") let key=134;;
-    "defines_program_static-mode") let key=135;;
-    "defines_shared-mode") let key=136;;
-    "defines_static-mode") let key=137;;
-    "environment-mode") let key=138;;
-    "flags-mode") let key=139;;
-    "flags_library-mode") let key=140;;
-    "flags_library_shared-mode") let key=141;;
-    "flags_library_static-mode") let key=142;;
-    "flags_object-mode") let key=143;;
-    "flags_object_shared-mode") let key=144;;
-    "flags_object_static-mode") let key=145;;
-    "flags_program-mode") let key=146;;
-    "flags_program_shared-mode") let key=147;;
-    "flags_program_static-mode") let key=148;;
-    "flags_shared-mode") let key=149;;
-    "flags_static-mode") let key=150;;
-    "has_path_standard-mode") let key=151;;
-    "path_headers-mode") let key=152;;
-    "path_language-mode") let key=153;;
-    "path_library_script-mode") let key=154;;
-    "path_library_shared-mode") let key=155;;
-    "path_library_static-mode") let key=156;;
-    "path_object_script-mode") let key=157;;
-    "path_object_shared-mode") let key=158;;
-    "path_object_static-mode") let key=159;;
-    "path_program_script-mode") let key=160;;
-    "path_program_shared-mode") let key=161;;
-    "path_program_static-mode") let key=162;;
-    "path_sources-mode") let key=163;;
-    "path_sources_headers-mode") let key=164;;
-    "path_sources_library-mode") let key=165;;
-    "path_sources_object-mode") let key=166;;
-    "path_sources_program-mode") let key=167;;
-    "path_sources_script-mode") let key=168;;
-    "preserve_path_headers-mode") let key=169;;
-    "process_post-mode") let key=170;;
-    "process_pre-mode") let key=171;;
-    "search_exclusive-mode") let key=172;;
-    "search_shared-mode") let key=173;;
-    "search_static-mode") let key=174;;
-    "stage-mode") let key=175;;
-    "version_file-mode") let key=176;;
-    "version_major-mode") let key=177;;
-    "version_major_prefix-mode") let key=178;;
-    "version_micro-mode") let key=179;;
-    "version_micro_prefix-mode") let key=180;;
-    "version_minor-mode") let key=181;;
-    "version_minor_prefix-mode") let key=182;;
-    "version_nano-mode") let key=183;;
-    "version_nano_prefix-mode") let key=184;;
-    "version_target-mode") let key=185;;
-
-    "has-build_compiler") let key=186;;
-    "has-build_indexer") let key=187;;
-    "has-build_indexer_arguments") let key=188;;
-    "has-build_name") let key=189;;
-    "has-has_path_standard") let key=190;;
-    "has-path_library_script") let key=191;;
-    "has-path_library_shared") let key=192;;
-    "has-path_library_static") let key=193;;
-    "has-path_object_script") let key=194;;
-    "has-path_object_shared") let key=195;;
-    "has-path_object_static") let key=196;;
-    "has-path_program_script") let key=197;;
-    "has-path_program_shared") let key=198;;
-    "has-path_program_static") let key=199;;
-    "has-path_sources") let key=200;;
-    "has-path_sources_headers") let key=201;;
-    "has-path_sources_library") let key=202;;
-    "has-path_sources_object") let key=203;;
-    "has-path_sources_program") let key=204;;
-    "has-path_sources_script") let key=205;;
-    "has-search_exclusive") let key=206;;
-    "has-search_shared") let key=207;;
-    "has-search_static") let key=208;;
-    "has-stage") let key=209;;
-    "has-version_major_prefix") let key=210;;
-    "has-version_micro_prefix") let key=211;;
-    "has-version_minor_prefix") let key=212;;
-    "has-version_nano_prefix") let key=213;;
-
-    "has-build_compiler-mode") let key=214;;
-    "has-build_indexer-mode") let key=215;;
-    "has-build_indexer_arguments-mode") let key=216;;
-    "has-build_name-mode") let key=217;;
-    "has-has_path_standard-mode") let key=218;;
-    "has-path_library_script-mode") let key=219;;
-    "has-path_library_shared-mode") let key=220;;
-    "has-path_library_static-mode") let key=221;;
-    "has-path_object_script-mode") let key=222;;
-    "has-path_object_shared-mode") let key=223;;
-    "has-path_object_static-mode") let key=224;;
-    "has-path_program_script-mode") let key=225;;
-    "has-path_program_shared-mode") let key=226;;
-    "has-path_program_static-mode") let key=227;;
-    "has-path_sources-mode") let key=228;;
-    "has-path_sources_headers-mode") let key=229;;
-    "has-path_sources_library-mode") let key=230;;
-    "has-path_sources_object-mode") let key=231;;
-    "has-path_sources_program-mode") let key=232;;
-    "has-path_sources_script-mode") let key=233;;
-    "has-search_exclusive-mode") let key=234;;
-    "has-search_shared-mode") let key=235;;
-    "has-search_static-mode") let key=236;;
-    "has-stage-mode") let key=237;;
-    "has-version_major_prefix-mode") let key=238;;
-    "has-version_micro_prefix-mode") let key=239;;
-    "has-version_minor_prefix-mode") let key=240;;
-    "has-version_nano_prefix-mode") let key=241;;
-  esac
+  let key=0
+
+  for name in build_compiler build_indexer build_indexer_arguments build_language build_libraries build_libraries_shared build_libraries_static build_name build_objects_library build_objects_library_shared build_objects_library_static build_objects_program build_objects_program_shared build_objects_program_static build_script build_shared 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_object build_sources_object_shared build_sources_object_static build_sources_program build_sources_program_shared build_sources_program_static build_sources_script build_sources_setting build_static 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 has_path_standard modes modes_default 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_headers path_sources_library path_sources_object path_sources_program path_sources_script preserve_path_headers process_post process_pre search_exclusive search_shared search_static stage 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
+
+    if [[ ${name} == ${match} ]] ; then return ; fi
+
+    let key++
+  done
+
+  for name in build_compiler-mode build_indexer-mode build_indexer_arguments-mode build_language-mode build_libraries-mode build_libraries_shared-mode build_libraries_static-mode build_name-mode build_objects_library-mode build_objects_library_shared-mode build_objects_library_static-mode build_objects_program-mode build_objects_program_shared-mode build_objects_program_static-mode build_script-mode build_shared-mode build_sources_documentation-mode build_sources_headers-mode build_sources_headers_shared-mode build_sources_headers_static-mode build_sources_library-mode build_sources_library_shared-mode build_sources_library_static-mode build_sources_object-mode  build_sources_object_shared-mode build_sources_object_static-mode build_sources_program-mode build_sources_program_shared-mode build_sources_program_static-mode build_sources_script-mode build_sources_setting-mode build_static-mode defines-mode defines_library-mode defines_library_shared-mode defines_library_static-mode defines_object-mode defines_object_shared-mode defines_object_static-mode defines_program-mode defines_program_shared-mode defines_program_static-mode defines_shared-mode defines_static-mode environment-mode flags-mode flags_library-mode flags_library_shared-mode flags_library_static-mode flags_object-mode flags_object_shared-mode flags_object_static-mode flags_program-mode flags_program_shared-mode flags_program_static-mode flags_shared-mode flags_static-mode has_path_standard-mode path_headers-mode path_language-mode path_library_script-mode path_library_shared-mode path_library_static-mode path_object_script-mode path_object_shared-mode path_object_static-mode path_program_script-mode path_program_shared-mode path_program_static-mode path_sources-mode path_sources_headers-mode path_sources_library-mode path_sources_object-mode path_sources_program-mode path_sources_script-mode preserve_path_headers-mode process_post-mode process_pre-mode search_exclusive-mode search_shared-mode search_static-mode stage-mode version_file-mode version_major-mode version_major_prefix-mode version_micro-mode version_micro_prefix-mode version_minor-mode version_minor_prefix-mode version_nano-mode version_nano_prefix-mode version_target-mode ; do
+
+    if [[ ${name} == ${match} ]] ; then return ; fi
+
+    let key++
+  done
+
+  for name in has-build_compiler has-build_indexer has-build_indexer_arguments has-build_name has-has_path_standard has-path_library_script has-path_library_shared has-path_library_static has-path_object_script has-path_object_shared has-path_object_static has-path_program_script has-path_program_shared has-path_program_static has-path_sources has-path_sources_headers has-path_sources_library has-path_sources_object has-path_sources_program has-path_sources_script has-search_exclusive has-search_shared has-search_static has-stage has-version_major_prefix has-version_micro_prefix has-version_minor_prefix has-version_nano_prefix; do
+
+    if [[ ${name} == ${match} ]] ; then return ; fi
+
+    let key++
+  done
+
+  for name in has-build_compiler-mode has-build_indexer-mode has-build_indexer_arguments-mode has-build_name-mode has-has_path_standard-mode has-path_library_script-mode has-path_library_shared-mode has-path_library_static-mode has-path_object_script-mode has-path_object_shared-mode has-path_object_static-mode has-path_program_script-mode has-path_program_shared-mode has-path_program_static-mode has-path_sources-mode has-path_sources_headers-mode has-path_sources_library-mode has-path_sources_object-mode has-path_sources_program-mode has-path_sources_script-mode has-search_exclusive-mode has-search_shared-mode has-search_static-mode has-stage-mode has-version_major_prefix-mode has-version_micro_prefix-mode has-version_minor_prefix-mode has-version_nano_prefix-mode; do
+
+    if [[ ${name} == ${match} ]] ; then return ; fi
+
+    let key++
+  done
 }
 
 bootstrap_load_settings() {
@@ -1108,13 +892,13 @@ bootstrap_prepare_build() {
 }
 
 bootstrap_operation_build() {
+  local alt=${1}
+  local directory=
   local i=
+  local key=
   local n=
   local version_file=
   local version_target=
-  local alt=${1}
-  local directory=
-  local key=
 
   bootstrap_id "build_compiler"
   local build_compiler=${variables[${key}]}
@@ -1607,8 +1391,8 @@ bootstrap_operation_build() {
           directory="${directory}/"
         fi
 
-        if [[ ! -d ${path_build}objects/${path_object_shared}${directory} ]] ; then
-          mkdir ${verbose_common} -p ${path_build}objects/${path_object_shared}${directory} || failure=1
+        if [[ ! -d ${path_build}objects/${path_object_static}${directory} ]] ; then
+          mkdir ${verbose_common} -p ${path_build}objects/${path_object_static}${directory} || failure=1
         fi
 
         sources="${path_sources_object}${path_language}${i} "