]> Kevux Git Server - fll/commitdiff
Update: featureless make should not autp-prepend "-D".
authorKevin Day <thekevinday@gmail.com>
Sat, 5 Sep 2020 02:10:47 +0000 (21:10 -0500)
committerKevin Day <thekevinday@gmail.com>
Sat, 5 Sep 2020 02:33:39 +0000 (21:33 -0500)
Having this does simplify the configuration.
The downside is that it limits the flexibility and requires compiler-specific code to be added and potentially added.

Removing the auto-prepend "-D" will reduce the amount of language or compiler specific code in featureless make.
If another C compiler exists but uses something other than "-D" for defines, then only the settings file need be updated.

build/scripts/bootstrap.sh
level_3/fake/c/private-build.c
level_3/fake/c/private-build.h
level_3/fake/data/build/settings-example-bzip2
level_3/fake/data/build/settings-example-bzip2recover
level_3/fake/documents/settings.txt
level_3/fake/specifications/defines.txt
level_3/firewall/data/build/settings

index 931e7184ac08655dd49f63ff6c84dd29b85ec3e4..613b2668c5af044e610a86d67c6ddfd21e849627 100644 (file)
@@ -667,21 +667,21 @@ bootstrap_operation_build() {
   if [[ $defines != "" ]] ; then
     flags_all="$flags_all "
     for i in $defines ; do
-      flags_all="${flags_all}-D$i "
+      flags_all="${flags_all}$i "
     done
   fi
 
   if [[ $defines_shared != "" ]] ; then
     flags_shared="$flags_shared "
     for i in $defines_shared ; do
-      flags_shared="${flags_shared}-D$i "
+      flags_shared="${flags_shared}$i "
     done
   fi
 
   if [[ $defines_static != "" ]] ; then
     flags_static="$flags_static "
     for i in $defines_static ; do
-      flags_static="${flags_static}-D$i "
+      flags_static="${flags_static}$i "
     done
   fi
 
index d8bd9e370edb8b79e1ed8ac75c8931fb53e0f653..67b518d1942f78f75bebac5acecd469c5e82cb1b 100644 (file)
@@ -125,16 +125,7 @@ extern "C" {
       f_array_length_t i = 0;
 
       for (; i < data.define.used && F_status_is_fine(*status); i++) {
-        length = fake_build_parameter_define_prefix_length + data.define.array[i].used;
-
-        char string[length + 1];
-
-        memcpy(string, fake_build_parameter_define_prefix, fake_build_parameter_define_prefix_length);
-        memcpy(string + fake_build_parameter_define_prefix_length, data.define.array[i].string, data.define.array[i].used);
-
-        string[length] = 0;
-
-        *status = fll_execute_arguments_add(string, length, arguments);
+        *status = fll_execute_arguments_add(data.define.array[i].string, data.define.array[i].used, arguments);
         if (F_status_is_error(*status)) break;
       } // for
     }
@@ -143,46 +134,19 @@ extern "C" {
       f_array_length_t i = 0;
 
       for (; i < data_build.setting.defines_all.used && F_status_is_fine(*status); i++) {
-        length = fake_build_parameter_define_prefix_length + data_build.setting.defines_all.array[i].used;
-
-        char string[length + 1];
-
-        memcpy(string, fake_build_parameter_define_prefix, fake_build_parameter_define_prefix_length);
-        memcpy(string + fake_build_parameter_define_prefix_length, data_build.setting.defines_all.array[i].string, data_build.setting.defines_all.array[i].used);
-
-        string[length] = 0;
-
-        *status = fll_execute_arguments_add(string, length, arguments);
+        *status = fll_execute_arguments_add(data_build.setting.defines_all.array[i].string, data_build.setting.defines_all.array[i].used, arguments);
         if (F_status_is_error(*status)) break;
       } // for
 
       if (is_shared) {
         for (i = 0; i < data_build.setting.defines_shared.used && F_status_is_fine(*status); i++) {
-          length = fake_build_parameter_define_prefix_length + data_build.setting.defines_shared.array[i].used;
-
-          char string[length + 1];
-
-          memcpy(string, fake_build_parameter_define_prefix, fake_build_parameter_define_prefix_length);
-          memcpy(string + fake_build_parameter_define_prefix_length, data_build.setting.defines_shared.array[i].string, data_build.setting.defines_shared.array[i].used);
-
-          string[length] = 0;
-
-          *status = fll_execute_arguments_add(string, length, arguments);
+          *status = fll_execute_arguments_add(data_build.setting.defines_shared.array[i].string, data_build.setting.defines_shared.array[i].used, arguments);
           if (F_status_is_error(*status)) break;
         } // for
       }
       else {
         for (i = 0; i < data_build.setting.defines_static.used && F_status_is_fine(*status); i++) {
-          length = fake_build_parameter_define_prefix_length + data_build.setting.defines_static.array[i].used;
-
-          char string[length + 1];
-
-          memcpy(string, fake_build_parameter_define_prefix, fake_build_parameter_define_prefix_length);
-          memcpy(string + fake_build_parameter_define_prefix_length, data_build.setting.defines_static.array[i].string, data_build.setting.defines_static.array[i].used);
-
-          string[length] = 0;
-
-          *status = fll_execute_arguments_add(string, length, arguments);
+          *status = fll_execute_arguments_add(data_build.setting.defines_static.array[i].string, data_build.setting.defines_static.array[i].used, arguments);
           if (F_status_is_error(*status)) break;
         } // for
       }
index d4e8e53aaf08bb9114b8f731ffc0048bd0bb3355..db78e22aa3a0f30137759163cae496cb1683a1b8 100644 (file)
@@ -328,11 +328,6 @@ extern "C" {
 #endif // _di_fake_build_data_t_
 
 #ifndef _di_fake_build_parameter_
-
-  #define fake_build_parameter_define_prefix "-D"
-
-  #define fake_build_parameter_define_prefix_length 2
-
   #define fake_build_parameter_library_include            "-I"
   #define fake_build_parameter_library_link_file          "-l"
   #define fake_build_parameter_library_link_path          "-L"
index 92ff391812c75fae3856d724f692a7591bf0b266..d11ca78f4c0a9ab790e9d74d4be91321870b7042 100644 (file)
@@ -4,7 +4,6 @@
 # 1) need to be able to build -m bzip2recover without libbzip2.a.
 # 2) need to provide a way to designate path prefixes (instead of just hardcoded sources/c/, etc...
 # 3) need to be able to build shared program without library (add a 'build_library' setting).
-# 4) need to remove the auto-appending of the -D in the defines.
 
 project_name bzip2
 
@@ -46,7 +45,7 @@ search_exclusive yes
 search_shared yes
 search_static yes
 
-defines_all _FILE_OFFSET_BITS=64
+defines_all -D_FILE_OFFSET_BITS=64
 defines_static
 defines_shared
 
index 97914c06c855fe4b4d4281f4f0c942445e863711..95e831e5367a79a375810bc9d0e85c44b4f9dc0d 100644 (file)
@@ -4,7 +4,6 @@
 # 1) need to be able to build -m bzip2recover without libbzip2.a.
 # 2) need to provide a way to designate path prefixes (instead of just hardcoded sources/c/, etc...
 # 3) need to be able to build shared program without library (add a 'build_library' setting).
-# 4) need to remove the auto-appending of the -D in the defines.
 
 project_name bzip2recover
 
@@ -46,7 +45,7 @@ search_exclusive yes
 search_shared yes
 search_static yes
 
-defines_all _FILE_OFFSET_BITS=64
+defines_all -D_FILE_OFFSET_BITS=64
 defines_static
 defines_shared
 
index eee74d852f79adf722134396d3196c668b8084c2..a232b32618418ba4b77da14bfe66a61edbde816e 100644 (file)
@@ -68,19 +68,16 @@ Settings Documentation:
   defines_all\:
     A collection of macro names.
     These will be appended to the compiler for compiled languages such as C and C++.
-    These will automatically have "-D" prepended to them.
     These are applied to both shared and static builds.
 
   defines_shared\:
     A collection of macro names.
     These will be appended to the compiler for compiled languages such as C and C++.
-    These will automatically have "-D" prepended to them.
     These are applied to only shared builds.
 
   defines_static\:
     A collection of macro names.
     These will be appended to the compiler for compiled languages such as C and C++.
-    These will automatically have "-D" prepended to them.
     These are applied to only static builds.
 
   environment\:
index 08b1890eb27ec8fc527bda944c2a9f8f50914f24..d5bfc78821ebf4a36638b71a53262f03aa63af84 100644 (file)
@@ -9,7 +9,3 @@ Defines Specification:
   The Object name has further restrictions than FSS-0000 requires.
   These restrictions are that the Object must only evaluate to a valid C/C++ macro name.
   This is essentially means only Word characters.
-
-  It is recommended that each define begin and end with an underscore.
-  The Featureless Make program will convert the define as follows when compiling\:
-    - Object name = "_en_my_macro_" will become "-D_en_my_macro_".
index 96f2a2b377d1fc942986c7f1df0c21841cd19e38..7755289e173f36be6c9a8838c3ef6b6ca8637a15 100644 (file)
@@ -43,7 +43,7 @@ search_exclusive yes
 search_shared yes
 search_static yes
 
-defines_all _en_firewall_debug_
+defines_all -D_en_firewall_debug_
 defines_static
 defines_shared