]> Kevux Git Server - fll/commitdiff
Feature: Add -U/--under parameter to Featureless Make.
authorKevin Day <thekevinday@gmail.com>
Mon, 28 Aug 2023 02:59:03 +0000 (21:59 -0500)
committerKevin Day <thekevinday@gmail.com>
Mon, 28 Aug 2023 03:57:39 +0000 (22:57 -0500)
I discovered that the data build directory customization is incomplete while working on the Kevux Tools TacocaT program.

A new parameter to specify a sub-directory within the data directory, called "under", represented by -U and --under is now added.
This provides the ability to change the "build" part of the "data/build" directory.
This can even be an empty string.

The fakefile documentation and specification is updated because this parameter must now be reserved and exposed to IKI expansion.
I have not yet done a thorough test of this feature and I will hopefully do this before the next release.
I have performed a basic test and I can now compile the TacocaT program easily using this parameter.

16 files changed:
level_3/fake/c/main/build.c
level_3/fake/c/main/common.c
level_3/fake/c/main/common/enumeration.h
level_3/fake/c/main/common/string.c
level_3/fake/c/main/common/string.h
level_3/fake/c/main/common/type.c
level_3/fake/c/main/common/type.h
level_3/fake/c/main/fake/path_generate.c
level_3/fake/c/main/make/load_parameters.c
level_3/fake/c/main/make/operate.c
level_3/fake/c/main/make/operate_process_type.c
level_3/fake/c/main/make/operate_validate_type.c
level_3/fake/c/main/print/message.c
level_3/fake/data/documentation/man/man1/fake.1
level_3/fake/documents/fakefile.txt
level_3/fake/specifications/fakefile.txt

index c8066fde0b4a14c5b031299fa2e757cbf7100b1f..ca7aa35abe1d008f849f102eb82e639e9e150aa8 100644 (file)
@@ -427,6 +427,7 @@ extern "C" {
         f_console_symbol_short_normal_s, // fake_short_process_s
         f_console_symbol_short_normal_s, // fake_short_settings_s
         f_console_symbol_short_normal_s, // fake_short_sources_s
+        f_console_symbol_short_normal_s, // fake_short_under_s
         f_console_symbol_short_normal_s, // fake_short_work_s
       };
 
@@ -439,6 +440,7 @@ extern "C" {
         fake_short_process_s,
         fake_short_settings_s,
         fake_short_sources_s,
+        fake_short_under_s,
         fake_short_work_s,
       };
 
@@ -451,10 +453,11 @@ extern "C" {
         main->setting.process,
         main->setting.settings,
         data_build->setting.path_sources,
+        main->setting.under,
         main->setting.work,
       };
 
-      main->setting.state.status = fll_execute_arguments_add_parameter_set(prefixs, names, values, 9, &main->cache_arguments);
+      main->setting.state.status = fll_execute_arguments_add_parameter_set(prefixs, names, values, 10, &main->cache_arguments);
 
       f_memory_array_resize(0, sizeof(f_char_t), (void **) &defines.string, &defines.used, &defines.size);
 
index 05f0d3e250ee2e5567b77feba30dbf6ce333891d..6ac9d2af8de45e07d7b4390049ad216872118ac8 100644 (file)
@@ -155,6 +155,7 @@ extern "C" {
           fake_parameter_process_e,
           fake_parameter_settings_e,
           fake_parameter_sources_e,
+          fake_parameter_under_e,
           fake_parameter_work_e,
         };
 
@@ -167,6 +168,7 @@ extern "C" {
           fake_long_process_s,
           fake_long_settings_s,
           fake_long_sources_s,
+          fake_long_under_s,
           fake_long_work_s,
         };
 
@@ -179,6 +181,7 @@ extern "C" {
           &main->setting.process,
           &main->setting.settings,
           &main->setting.sources,
+          &main->setting.under,
           &main->setting.work,
         };
 
@@ -190,6 +193,7 @@ extern "C" {
         main->setting.process.used = 0;
         main->setting.settings.used = 0;
         main->setting.sources.used = 0;
+        main->setting.under.used = 0;
         main->setting.work.used = 0;
 
         const f_string_static_t defaults[] = {
@@ -201,6 +205,7 @@ extern "C" {
           fake_default_process_s,
           fake_default_settings_s,
           fake_default_sources_s,
+          fake_path_part_build_s,
           fake_default_work_s,
         };
 
@@ -213,10 +218,11 @@ extern "C" {
           F_false, // fake_parameter_process_e
           F_false, // fake_parameter_settings_e
           F_false, // fake_parameter_sources_e
+          F_false, // fake_parameter_under_e
           F_true,  // fake_parameter_work_e
         };
 
-        for (i = 0; i < 9; ++i) {
+        for (i = 0; i < 10; ++i) {
 
           if ((main->program.parameters.array[parameters[i]].result & f_console_result_found_e) && !(main->program.parameters.array[parameters[i]].result & f_console_result_value_e)) {
             main->setting.state.status = F_status_set_error(F_parameter);
index 58aa555321013a02413d15237fa3abf2b15fca3e..97dc645e5c772a81abd09e48dc91406a46b67f42 100644 (file)
@@ -31,6 +31,7 @@ extern "C" {
     fake_parameter_process_e,
     fake_parameter_settings_e,
     fake_parameter_sources_e,
+    fake_parameter_under_e,
     fake_parameter_work_e,
 
     fake_parameter_documents_disable_e,
@@ -60,6 +61,7 @@ extern "C" {
       macro_f_console_parameter_t_initialize_3(fake_short_process_s,   fake_long_process_s,   1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fake_short_settings_s,  fake_long_settings_s,  1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fake_short_sources_s,   fake_long_sources_s,   1, f_console_flag_normal_e), \
+      macro_f_console_parameter_t_initialize_3(fake_short_under_s,     fake_long_under_s,     1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fake_short_work_s,      fake_long_work_s,      1, f_console_flag_normal_e), \
       \
       macro_f_console_parameter_t_initialize_5(fake_long_documents_disabled_s, 0, f_console_flag_normal_e), \
@@ -75,7 +77,7 @@ extern "C" {
       macro_f_console_parameter_t_initialize_6(fake_other_operation_skeleton_s, 0, f_console_flag_simple_e), \
     }
 
-  #define fake_parameter_total_d 34
+  #define fake_parameter_total_d 35
 #endif // _di_fake_parameter_e_
 
 /**
index d5ba5d84bb40cedf03415b72408786665cd7d31b..1864825010959d22cab3ac159352d19e046fac38 100644 (file)
@@ -70,6 +70,7 @@ extern "C" {
   const f_string_static_t fake_short_process_s = macro_f_string_static_t_initialize_1(FAKE_short_process_s, 0, FAKE_short_process_s_length);
   const f_string_static_t fake_short_settings_s = macro_f_string_static_t_initialize_1(FAKE_short_settings_s, 0, FAKE_short_settings_s_length);
   const f_string_static_t fake_short_sources_s = macro_f_string_static_t_initialize_1(FAKE_short_sources_s, 0, FAKE_short_sources_s_length);
+  const f_string_static_t fake_short_under_s = macro_f_string_static_t_initialize_1(FAKE_short_under_s, 0, FAKE_short_under_s_length);
   const f_string_static_t fake_short_work_s = macro_f_string_static_t_initialize_1(FAKE_short_work_s, 0, FAKE_short_work_s_length);
 
   const f_string_static_t fake_long_build_s = macro_f_string_static_t_initialize_1(FAKE_long_build_s, 0, FAKE_long_build_s_length);
@@ -82,6 +83,7 @@ extern "C" {
   const f_string_static_t fake_long_process_s = macro_f_string_static_t_initialize_1(FAKE_long_process_s, 0, FAKE_long_process_s_length);
   const f_string_static_t fake_long_settings_s = macro_f_string_static_t_initialize_1(FAKE_long_settings_s, 0, FAKE_long_settings_s_length);
   const f_string_static_t fake_long_sources_s = macro_f_string_static_t_initialize_1(FAKE_long_sources_s, 0, FAKE_long_sources_s_length);
+  const f_string_static_t fake_long_under_s = macro_f_string_static_t_initialize_1(FAKE_long_under_s, 0, FAKE_long_under_s_length);
   const f_string_static_t fake_long_work_s = macro_f_string_static_t_initialize_1(FAKE_long_work_s, 0, FAKE_long_work_s_length);
 
   const f_string_static_t fake_long_documents_disabled_s = macro_f_string_static_t_initialize_1(FAKE_long_documents_disabled_s, 0, FAKE_long_documents_disabled_s_length);
@@ -221,6 +223,7 @@ extern "C" {
   const f_string_static_t fake_make_parameter_variable_settings_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_settings_s, 0, FAKE_make_parameter_variable_settings_s_length);
   const f_string_static_t fake_make_parameter_variable_sources_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_sources_s, 0, FAKE_make_parameter_variable_sources_s_length);
   const f_string_static_t fake_make_parameter_variable_top_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_top_s, 0, FAKE_make_parameter_variable_top_s_length);
+  const f_string_static_t fake_make_parameter_variable_under_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_under_s, 0, FAKE_make_parameter_variable_under_s_length);
   const f_string_static_t fake_make_parameter_variable_verbosity_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_verbosity_s, 0, FAKE_make_parameter_variable_verbosity_s_length);
   const f_string_static_t fake_make_parameter_variable_work_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_work_s, 0, FAKE_make_parameter_variable_work_s_length);
 
@@ -235,6 +238,7 @@ extern "C" {
   const f_string_static_t fake_make_parameter_variable_option_process_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_option_process_s, 0, FAKE_make_parameter_variable_option_process_s_length);
   const f_string_static_t fake_make_parameter_variable_option_settings_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_option_settings_s, 0, FAKE_make_parameter_variable_option_settings_s_length);
   const f_string_static_t fake_make_parameter_variable_option_sources_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_option_sources_s, 0, FAKE_make_parameter_variable_option_sources_s_length);
+  const f_string_static_t fake_make_parameter_variable_option_under_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_option_under_s, 0, FAKE_make_parameter_variable_option_under_s_length);
   const f_string_static_t fake_make_parameter_variable_option_verbosity_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_option_verbosity_s, 0, FAKE_make_parameter_variable_option_verbosity_s_length);
   const f_string_static_t fake_make_parameter_variable_option_work_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_option_work_s, 0, FAKE_make_parameter_variable_option_work_s_length);
 
@@ -249,6 +253,7 @@ extern "C" {
   const f_string_static_t fake_make_parameter_variable_value_process_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_value_process_s, 0, FAKE_make_parameter_variable_value_process_s_length);
   const f_string_static_t fake_make_parameter_variable_value_settings_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_value_settings_s, 0, FAKE_make_parameter_variable_value_settings_s_length);
   const f_string_static_t fake_make_parameter_variable_value_sources_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_value_sources_s, 0, FAKE_make_parameter_variable_value_sources_s_length);
+  const f_string_static_t fake_make_parameter_variable_value_under_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_value_under_s, 0, FAKE_make_parameter_variable_value_under_s_length);
   const f_string_static_t fake_make_parameter_variable_value_verbosity_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_value_verbosity_s, 0, FAKE_make_parameter_variable_value_verbosity_s_length);
   const f_string_static_t fake_make_parameter_variable_value_work_s = macro_f_string_static_t_initialize_1(FAKE_make_parameter_variable_value_work_s, 0, FAKE_make_parameter_variable_value_work_s_length);
 #endif // _di_fake_make_parameter_t_
index b05d1ca5e4dcaa7c9c12eed986e31164110ba6bd..d6661fa2b35ae3f5cc65585a000a550ecd7c769e 100644 (file)
@@ -208,6 +208,7 @@ extern "C" {
   #define FAKE_short_process_s   "p"
   #define FAKE_short_settings_s  "s"
   #define FAKE_short_sources_s   "S"
+  #define FAKE_short_under_s     "U"
   #define FAKE_short_work_s      "w"
 
   #define FAKE_long_build_s     "build"
@@ -220,6 +221,7 @@ extern "C" {
   #define FAKE_long_process_s   "process"
   #define FAKE_long_settings_s  "settings"
   #define FAKE_long_sources_s   "sources"
+  #define FAKE_long_under_s     "under"
   #define FAKE_long_work_s      "work"
 
   // These special parameters are provided in such a way that they mimic the traditional ./configure script.
@@ -245,6 +247,7 @@ extern "C" {
   #define FAKE_short_process_s_length   1
   #define FAKE_short_settings_s_length  1
   #define FAKE_short_sources_s_length   1
+  #define FAKE_short_under_s_length     1
   #define FAKE_short_work_s_length      1
 
   #define FAKE_long_build_s_length     5
@@ -257,6 +260,7 @@ extern "C" {
   #define FAKE_long_process_s_length   7
   #define FAKE_long_settings_s_length  8
   #define FAKE_long_sources_s_length   7
+  #define FAKE_long_under_s_length     5
   #define FAKE_long_work_s_length      4
 
   #define FAKE_long_documents_disabled_s_length 11
@@ -281,6 +285,7 @@ extern "C" {
   extern const f_string_static_t fake_short_process_s;
   extern const f_string_static_t fake_short_settings_s;
   extern const f_string_static_t fake_short_sources_s;
+  extern const f_string_static_t fake_short_under_s;
   extern const f_string_static_t fake_short_work_s;
 
   extern const f_string_static_t fake_long_build_s;
@@ -293,6 +298,7 @@ extern "C" {
   extern const f_string_static_t fake_long_process_s;
   extern const f_string_static_t fake_long_settings_s;
   extern const f_string_static_t fake_long_sources_s;
+  extern const f_string_static_t fake_long_under_s;
   extern const f_string_static_t fake_long_work_s;
 
   extern const f_string_static_t fake_long_documents_disabled_s;
@@ -628,6 +634,7 @@ extern "C" {
   #define FAKE_make_parameter_variable_settings_s  "settings"
   #define FAKE_make_parameter_variable_sources_s   "sources"
   #define FAKE_make_parameter_variable_top_s       "top"
+  #define FAKE_make_parameter_variable_under_s     "under"
   #define FAKE_make_parameter_variable_verbosity_s "verbosity"
   #define FAKE_make_parameter_variable_work_s      "work"
 
@@ -642,6 +649,7 @@ extern "C" {
   #define FAKE_make_parameter_variable_option_process_s   FAKE_make_parameter_variable_process_s FAKE_make_parameter_iki_option_s
   #define FAKE_make_parameter_variable_option_settings_s  FAKE_make_parameter_variable_settings_s FAKE_make_parameter_iki_option_s
   #define FAKE_make_parameter_variable_option_sources_s   FAKE_make_parameter_variable_sources_s FAKE_make_parameter_iki_option_s
+  #define FAKE_make_parameter_variable_option_under_s     FAKE_make_parameter_variable_under_s FAKE_make_parameter_iki_option_s
   #define FAKE_make_parameter_variable_option_verbosity_s FAKE_make_parameter_variable_verbosity_s FAKE_make_parameter_iki_option_s
   #define FAKE_make_parameter_variable_option_work_s      FAKE_make_parameter_variable_work_s FAKE_make_parameter_iki_option_s
 
@@ -656,6 +664,7 @@ extern "C" {
   #define FAKE_make_parameter_variable_value_process_s   FAKE_make_parameter_variable_process_s FAKE_make_parameter_iki_value_s
   #define FAKE_make_parameter_variable_value_settings_s  FAKE_make_parameter_variable_settings_s FAKE_make_parameter_iki_value_s
   #define FAKE_make_parameter_variable_value_sources_s   FAKE_make_parameter_variable_sources_s FAKE_make_parameter_iki_value_s
+  #define FAKE_make_parameter_variable_value_under_s     FAKE_make_parameter_variable_under_s FAKE_make_parameter_iki_value_s
   #define FAKE_make_parameter_variable_value_verbosity_s FAKE_make_parameter_variable_verbosity_s FAKE_make_parameter_iki_value_s
   #define FAKE_make_parameter_variable_value_work_s      FAKE_make_parameter_variable_work_s FAKE_make_parameter_iki_value_s
 
@@ -677,6 +686,7 @@ extern "C" {
   #define FAKE_make_parameter_variable_settings_s_length  8
   #define FAKE_make_parameter_variable_sources_s_length   7
   #define FAKE_make_parameter_variable_top_s_length       3
+  #define FAKE_make_parameter_variable_under_s_length     5
   #define FAKE_make_parameter_variable_verbosity_s_length 9
   #define FAKE_make_parameter_variable_work_s_length      4
 
@@ -691,6 +701,7 @@ extern "C" {
   #define FAKE_make_parameter_variable_option_process_s_length   FAKE_make_parameter_variable_process_s_length + FAKE_make_parameter_iki_option_s_length
   #define FAKE_make_parameter_variable_option_settings_s_length  FAKE_make_parameter_variable_settings_s_length + FAKE_make_parameter_iki_option_s_length
   #define FAKE_make_parameter_variable_option_sources_s_length   FAKE_make_parameter_variable_sources_s_length + FAKE_make_parameter_iki_option_s_length
+  #define FAKE_make_parameter_variable_option_under_s_length     FAKE_make_parameter_variable_under_s_length + FAKE_make_parameter_iki_option_s_length
   #define FAKE_make_parameter_variable_option_verbosity_s_length FAKE_make_parameter_variable_verbosity_s_length + FAKE_make_parameter_iki_option_s_length
   #define FAKE_make_parameter_variable_option_work_s_length      FAKE_make_parameter_variable_work_s_length + FAKE_make_parameter_iki_option_s_length
 
@@ -705,6 +716,7 @@ extern "C" {
   #define FAKE_make_parameter_variable_value_process_s_length   FAKE_make_parameter_variable_process_s_length + FAKE_make_parameter_iki_value_s_length
   #define FAKE_make_parameter_variable_value_settings_s_length  FAKE_make_parameter_variable_settings_s_length + FAKE_make_parameter_iki_value_s_length
   #define FAKE_make_parameter_variable_value_sources_s_length   FAKE_make_parameter_variable_sources_s_length + FAKE_make_parameter_iki_value_s_length
+  #define FAKE_make_parameter_variable_value_under_s_length     FAKE_make_parameter_variable_under_s_length + FAKE_make_parameter_iki_value_s_length
   #define FAKE_make_parameter_variable_value_verbosity_s_length FAKE_make_parameter_variable_verbosity_s_length + FAKE_make_parameter_iki_value_s_length
   #define FAKE_make_parameter_variable_value_work_s_length      FAKE_make_parameter_variable_work_s_length + FAKE_make_parameter_iki_value_s_length
 
@@ -725,6 +737,7 @@ extern "C" {
   extern const f_string_static_t fake_make_parameter_variable_settings_s;
   extern const f_string_static_t fake_make_parameter_variable_sources_s;
   extern const f_string_static_t fake_make_parameter_variable_top_s;
+  extern const f_string_static_t fake_make_parameter_variable_under_s;
   extern const f_string_static_t fake_make_parameter_variable_verbosity_s;
   extern const f_string_static_t fake_make_parameter_variable_work_s;
 
@@ -739,6 +752,7 @@ extern "C" {
   extern const f_string_static_t fake_make_parameter_variable_option_process_s;
   extern const f_string_static_t fake_make_parameter_variable_option_settings_s;
   extern const f_string_static_t fake_make_parameter_variable_option_sources_s;
+  extern const f_string_static_t fake_make_parameter_variable_option_under_s;
   extern const f_string_static_t fake_make_parameter_variable_option_verbosity_s;
   extern const f_string_static_t fake_make_parameter_variable_option_work_s;
 
@@ -753,6 +767,7 @@ extern "C" {
   extern const f_string_static_t fake_make_parameter_variable_value_process_s;
   extern const f_string_static_t fake_make_parameter_variable_value_settings_s;
   extern const f_string_static_t fake_make_parameter_variable_value_sources_s;
+  extern const f_string_static_t fake_make_parameter_variable_value_under_s;
   extern const f_string_static_t fake_make_parameter_variable_value_verbosity_s;
   extern const f_string_static_t fake_make_parameter_variable_value_work_s;
 #endif // _di_fake_make_parameter_s_
index 554f96d1f83cf02564b7d3d2b0d611c3ff93c543..652467542b59359e160cce869386d73a93da59ba 100644 (file)
@@ -225,6 +225,7 @@ extern "C" {
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter.process.array, &data_make->parameter.process.used, &data_make->parameter.process.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter.settings.array, &data_make->parameter.settings.used, &data_make->parameter.settings.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter.sources.array, &data_make->parameter.sources.used, &data_make->parameter.sources.size, &f_string_dynamics_delete_callback);
+    f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter.under.array, &data_make->parameter.under.used, &data_make->parameter.under.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter.verbosity.array, &data_make->parameter.verbosity.used, &data_make->parameter.verbosity.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter.work.array, &data_make->parameter.work.used, &data_make->parameter.work.size, &f_string_dynamics_delete_callback);
 
@@ -239,6 +240,7 @@ extern "C" {
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_option.process.array, &data_make->parameter_option.process.used, &data_make->parameter_option.process.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_option.settings.array, &data_make->parameter_option.settings.used, &data_make->parameter_option.settings.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_option.sources.array, &data_make->parameter_option.sources.used, &data_make->parameter_option.sources.size, &f_string_dynamics_delete_callback);
+    f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_option.under.array, &data_make->parameter_option.under.used, &data_make->parameter_option.under.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_option.verbosity.array, &data_make->parameter_option.verbosity.used, &data_make->parameter_option.verbosity.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_option.work.array, &data_make->parameter_option.work.used, &data_make->parameter_option.work.size, &f_string_dynamics_delete_callback);
 
@@ -253,6 +255,7 @@ extern "C" {
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_value.process.array, &data_make->parameter_value.process.used, &data_make->parameter_value.process.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_value.settings.array, &data_make->parameter_value.settings.used, &data_make->parameter_value.settings.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_value.sources.array, &data_make->parameter_value.sources.used, &data_make->parameter_value.sources.size, &f_string_dynamics_delete_callback);
+    f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_value.under.array, &data_make->parameter_value.under.used, &data_make->parameter_value.under.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_value.verbosity.array, &data_make->parameter_value.verbosity.used, &data_make->parameter_value.verbosity.size, &f_string_dynamics_delete_callback);
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &data_make->parameter_value.work.array, &data_make->parameter_value.work.used, &data_make->parameter_value.work.size, &f_string_dynamics_delete_callback);
 
@@ -282,6 +285,7 @@ extern "C" {
     f_memory_array_resize(0, sizeof(f_char_t), (void **) &setting->process.string, &setting->process.used, &setting->process.size);
     f_memory_array_resize(0, sizeof(f_char_t), (void **) &setting->settings.string, &setting->settings.used, &setting->settings.size);
     f_memory_array_resize(0, sizeof(f_char_t), (void **) &setting->sources.string, &setting->sources.used, &setting->sources.size);
+    f_memory_array_resize(0, sizeof(f_char_t), (void **) &setting->under.string, &setting->under.used, &setting->under.size);
     f_memory_array_resize(0, sizeof(f_char_t), (void **) &setting->work.string, &setting->work.used, &setting->work.size);
 
     f_memory_arrays_resize(0, sizeof(f_string_dynamic_t), (void **) &setting->defines.array, &setting->defines.used, &setting->defines.size, &f_string_dynamics_delete_callback);
index c605b75be6f982b1fe8023e6d57ea411623acea3..c85fa66a7757e3a438a4db8bc2e9eb505efecac3 100644 (file)
@@ -71,6 +71,7 @@ extern "C" {
  *   - process:  The process name.
  *   - settings: The settings file path.
  *   - sources:  The sources directory.
+ *   - under:    The under directory.
  *   - work:     The work directory.
 
  *   - defines: The define data.
@@ -93,6 +94,7 @@ extern "C" {
     f_string_dynamic_t process;
     f_string_dynamic_t settings;
     f_string_dynamic_t sources;
+    f_string_dynamic_t under;
     f_string_dynamic_t work;
 
     f_string_dynamics_t defines;
@@ -115,6 +117,7 @@ extern "C" {
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
+      f_string_dynamic_t_initialize, \
       f_string_dynamics_t_initialize, \
       f_string_dynamics_t_initialize, \
       f_uint8s_t_initialize, \
@@ -774,6 +777,7 @@ extern "C" {
  *   - process:   The process parameters.
  *   - settings:  The setting parameters.
  *   - sources:   The source parameters.
+ *   - under:     The under parameters.
  *   - verbosity: The verbosity parameters.
  *   - work:      The work parameters.
  */
@@ -790,6 +794,7 @@ extern "C" {
     f_string_dynamics_t process;
     f_string_dynamics_t settings;
     f_string_dynamics_t sources;
+    f_string_dynamics_t under;
     f_string_dynamics_t verbosity;
     f_string_dynamics_t work;
   } fake_make_parameter_t;
@@ -808,6 +813,7 @@ extern "C" {
     f_string_dynamics_t_initialize, \
     f_string_dynamics_t_initialize, \
     f_string_dynamics_t_initialize, \
+    f_string_dynamics_t_initialize, \
   }
 #endif // _di_fake_make_parameter_t_
 
index c3352e7a37b7b3afba7770889d227680a61500f1..cdbcca70c774791721a52d138c1103ebf29a3ebb 100644 (file)
@@ -77,7 +77,7 @@ extern "C" {
         fake_path_part_programs_s,
         fake_path_part_settings_s,
         fake_path_part_stage_s,
-        fake_path_part_build_s,
+        main->setting.under,
         fake_path_part_documentation_s,
         fake_path_part_settings_s,
         fake_path_part_documents_s,
index bcf8e83d9579707759cbf5c286bd3df75486b7fd..cbdde78734ed4f83004628fb45d80c9e2bf2343b 100644 (file)
@@ -273,6 +273,7 @@ extern "C" {
         fake_short_process_s,
         fake_short_settings_s,
         fake_short_sources_s,
+        fake_short_under_s,
         fake_short_work_s,
       };
 
@@ -285,6 +286,7 @@ extern "C" {
         &main->program.parameters.array[fake_parameter_process_e],
         &main->program.parameters.array[fake_parameter_settings_e],
         &main->program.parameters.array[fake_parameter_sources_e],
+        &main->program.parameters.array[fake_parameter_under_e],
         &main->program.parameters.array[fake_parameter_work_e],
       };
 
@@ -297,6 +299,7 @@ extern "C" {
         data_make->data->main->setting.process,
         data_make->data->main->setting.settings,
         data_make->data->main->setting.sources,
+        data_make->data->main->setting.under,
         data_make->data->main->setting.work,
       };
 
@@ -309,6 +312,7 @@ extern "C" {
         &data_make->parameter.process,
         &data_make->parameter.settings,
         &data_make->parameter.sources,
+        &data_make->parameter.under,
         &data_make->parameter.work,
       };
 
@@ -321,6 +325,7 @@ extern "C" {
         &data_make->parameter_option.process,
         &data_make->parameter_option.settings,
         &data_make->parameter_option.sources,
+        &data_make->parameter_option.under,
         &data_make->parameter_option.work,
       };
 
@@ -333,10 +338,11 @@ extern "C" {
         &data_make->parameter_value.process,
         &data_make->parameter_value.settings,
         &data_make->parameter_value.sources,
+        &data_make->parameter_value.under,
         &data_make->parameter_value.work,
       };
 
-      for (uint8_t i = 0; i < 9; ++i) {
+      for (uint8_t i = 0; i < 10; ++i) {
 
         if (!(console[i]->result & f_console_result_found_e)) continue;
 
index dd9b7ddbf1d7adf7502ab6d1f0bab672e59f20b8..46701c79c81c0db2b1bfc5641294839cc6716dea 100644 (file)
@@ -271,6 +271,7 @@ extern "C" {
       fake_make_parameter_variable_process_s,
       fake_make_parameter_variable_settings_s,
       fake_make_parameter_variable_sources_s,
+      fake_make_parameter_variable_under_s,
       fake_make_parameter_variable_verbosity_s,
       fake_make_parameter_variable_work_s,
       fake_make_parameter_variable_option_build_s,
@@ -284,6 +285,7 @@ extern "C" {
       fake_make_parameter_variable_option_process_s,
       fake_make_parameter_variable_option_settings_s,
       fake_make_parameter_variable_option_sources_s,
+      fake_make_parameter_variable_option_under_s,
       fake_make_parameter_variable_option_verbosity_s,
       fake_make_parameter_variable_option_work_s,
       fake_make_parameter_variable_value_build_s,
@@ -297,6 +299,7 @@ extern "C" {
       fake_make_parameter_variable_value_process_s,
       fake_make_parameter_variable_value_settings_s,
       fake_make_parameter_variable_value_sources_s,
+      fake_make_parameter_variable_value_under_s,
       fake_make_parameter_variable_value_verbosity_s,
       fake_make_parameter_variable_value_work_s,
     };
@@ -313,6 +316,7 @@ extern "C" {
       &data_make->parameter.process,
       &data_make->parameter.settings,
       &data_make->parameter.sources,
+      &data_make->parameter.under,
       &data_make->parameter.verbosity,
       &data_make->parameter.work,
       &data_make->parameter_option.build,
@@ -326,6 +330,7 @@ extern "C" {
       &data_make->parameter_option.process,
       &data_make->parameter_option.settings,
       &data_make->parameter_option.sources,
+      &data_make->parameter_option.under,
       &data_make->parameter_option.verbosity,
       &data_make->parameter_option.work,
       &data_make->parameter_value.build,
@@ -339,6 +344,7 @@ extern "C" {
       &data_make->parameter_value.process,
       &data_make->parameter_value.settings,
       &data_make->parameter_value.sources,
+      &data_make->parameter_value.under,
       &data_make->parameter_value.verbosity,
       &data_make->parameter_value.work,
     };
@@ -538,7 +544,7 @@ extern "C" {
               unmatched = F_false;
             }
             else {
-              for (k = 0; k < 39; ++k) {
+              for (k = 0; k < 42; ++k) {
 
                 if (f_compare_dynamic_partial_string(reserved_name[k].string, main->buffer, reserved_name[k].used, iki_data->content.array[j]) != F_equal_to) {
                   continue;
index a8e6925e8ec654cc9ad7d792636168fc9dfa7089..42084a46f504b34a4406c019aec922caa4faaf94 100644 (file)
@@ -1199,6 +1199,7 @@ extern "C" {
       fake_make_parameter_variable_process_s,
       fake_make_parameter_variable_settings_s,
       fake_make_parameter_variable_sources_s,
+      fake_make_parameter_variable_under_s,
       fake_make_parameter_variable_verbosity_s,
       fake_make_parameter_variable_work_s,
       fake_make_parameter_variable_option_build_s,
@@ -1210,6 +1211,7 @@ extern "C" {
       fake_make_parameter_variable_option_process_s,
       fake_make_parameter_variable_option_settings_s,
       fake_make_parameter_variable_option_sources_s,
+      fake_make_parameter_variable_option_under_s,
       fake_make_parameter_variable_option_verbosity_s,
       fake_make_parameter_variable_option_work_s,
       fake_make_parameter_variable_value_build_s,
@@ -1221,6 +1223,7 @@ extern "C" {
       fake_make_parameter_variable_value_process_s,
       fake_make_parameter_variable_value_settings_s,
       fake_make_parameter_variable_value_sources_s,
+      fake_make_parameter_variable_value_under_s,
       fake_make_parameter_variable_value_verbosity_s,
       fake_make_parameter_variable_value_work_s,
     };
@@ -1235,6 +1238,7 @@ extern "C" {
       main->setting.process.used,
       main->setting.settings.used,
       main->setting.sources.used,
+      main->setting.under.used,
       F_true,
       main->setting.work.used,
       main->program.parameters.array[fake_parameter_build_e].result & f_console_result_value_e,
@@ -1246,6 +1250,7 @@ extern "C" {
       main->program.parameters.array[fake_parameter_process_e].result & f_console_result_value_e,
       main->program.parameters.array[fake_parameter_settings_e].result & f_console_result_value_e,
       main->program.parameters.array[fake_parameter_sources_e].result & f_console_result_value_e,
+      main->program.parameters.array[fake_parameter_under_e].result & f_console_result_value_e,
       (main->program.parameters.array[f_console_standard_parameter_verbosity_quiet_e].result & f_console_result_found_e) || (main->program.parameters.array[f_console_standard_parameter_verbosity_normal_e].result & f_console_result_found_e) || (main->program.parameters.array[f_console_standard_parameter_verbosity_verbose_e].result & f_console_result_found_e) || (main->program.parameters.array[f_console_standard_parameter_verbosity_debug_e].result & f_console_result_found_e),
       main->program.parameters.array[fake_parameter_work_e].result & f_console_result_value_e,
       data_make->parameter_value.build.used,
@@ -1257,6 +1262,7 @@ extern "C" {
       data_make->parameter_value.process.used,
       data_make->parameter_value.settings.used,
       data_make->parameter_value.sources.used,
+      data_make->parameter_value.under.used,
       data_make->parameter_value.verbosity.used,
       data_make->parameter_value.work.used,
     };
@@ -1272,7 +1278,7 @@ extern "C" {
     // Multiple properties may pass and so if any of them fail, then they all fail.
     for (; i < main->cache_arguments.used && !result; ++i) {
 
-      for (j = 0; j < 33; ++j) {
+      for (j = 0; j < 36; ++j) {
 
         if (f_compare_dynamic(reserved_name[j], main->cache_arguments.array[i]) == F_equal_to) {
           result = reserved_parameter[j] ? 2 : 1;
index 16611845a6e411ce357aad4d6d99d97b24c707e9..1f6f083c2b7d55f6e9f06f3eff36d4cb0212b9c8 100644 (file)
@@ -1249,6 +1249,7 @@ extern "C" {
         fake_make_parameter_variable_process_s,
         fake_make_parameter_variable_settings_s,
         fake_make_parameter_variable_sources_s,
+        fake_make_parameter_variable_under_s,
         fake_make_parameter_variable_verbosity_s,
         fake_make_parameter_variable_work_s,
         fake_make_parameter_variable_option_build_s,
@@ -1260,6 +1261,7 @@ extern "C" {
         fake_make_parameter_variable_option_process_s,
         fake_make_parameter_variable_option_settings_s,
         fake_make_parameter_variable_option_sources_s,
+        fake_make_parameter_variable_option_under_s,
         fake_make_parameter_variable_option_verbosity_s,
         fake_make_parameter_variable_option_work_s,
         fake_make_parameter_variable_value_build_s,
@@ -1271,13 +1273,14 @@ extern "C" {
         fake_make_parameter_variable_value_process_s,
         fake_make_parameter_variable_value_settings_s,
         fake_make_parameter_variable_value_sources_s,
+        fake_make_parameter_variable_value_under_s,
         fake_make_parameter_variable_value_verbosity_s,
         fake_make_parameter_variable_value_work_s,
       };
 
       f_status_t status = F_okay;
 
-      for (f_number_unsigned_t i = 0; i < 33; ++i) {
+      for (f_number_unsigned_t i = 0; i < 36; ++i) {
 
         if (f_compare_dynamic(reserved_name[i], main->cache_arguments.array[0]) == F_equal_to) {
           fake_make_print_error_reserved_parameter_name(&main->program.error, reserved_name[i]);
index b57e2cb9cd42089d4bda0ea71baea98c6522a5e9..60b1d31f73623e3433daecfa54ad4bbb5b1eb43e 100644 (file)
@@ -97,6 +97,7 @@ extern "C" {
     fll_program_print_help_option(print, fake_short_documents_s, fake_long_documents_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Specify a custom path to the documents files.");
     fll_program_print_help_option(print, fake_short_licenses_s, fake_long_licenses_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Specify a custom path to the licenses files.");
     fll_program_print_help_option(print, fake_short_sources_s, fake_long_sources_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "  Specify a custom path to the source files.");
+    fll_program_print_help_option(print, fake_short_under_s, fake_long_under_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Specify a custom path the data build files are under.");
     fll_program_print_help_option(print, fake_short_work_s, fake_long_work_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     Use includes/libraries/programs from this directory instead of system.");
 
     fl_print_format("%r %[Special Options:%]%r", print->to, f_string_eol_s, print->set->important, print->set->important, f_string_eol_s);
index 7b0ff962831f70c3f57468b8124110c03382d20b..3190cfe518959fa869a14f7ef61df75b4fdd5453 100644 (file)
@@ -1,4 +1,4 @@
-.TH FAKE "1" "March 2023" "FLL - Featureless Make 0.7.0" "User Commands"
+.TH FAKE "1" "August 2023" "FLL - Featureless Make 0.7.0" "User Commands"
 .SH NAME
 fake \- Build or compile software similar to GNU Make.
 .SH SYNOPSIS
@@ -92,6 +92,9 @@ Specify a custom path to the data files.
 \fB\-S, \-\-sources\fR
 Specify a custom path to the source files.
 .TP
+\fB\-U, \-\-under\fR
+Specify a custom path the data build files are under.
+.TP
 \fB\-w, \-\-work\fR
 Use includes/libraries/programs from this directory instead of system.
 .TP
index 7d813020e2dfa0153800f1b44bec552efe7fb52a..0ba10982da468ff326ea28b5975abd69d056f1ec 100644 (file)
@@ -345,6 +345,7 @@ Fakefile Documentation:
             - code:"settings": Associated with code:"-s/--settings" parameter.
             - code:"sources": Associated with code:"-S/--sources" parameter.
             - code:"top": The absolute path to the code:"top" directory, which is the base project directory (Always has a trailing forward slash).
+            - code:"under": Associated with code:"-U/--under" parameter.
             - code:"verbosity": Associated with code:"+Q/++quiet", code:"+E/++error", code:"+N/++normal", code:"+V/++verbose", and code:"+D/++debug" parameters.
             - code:"work": Associated with code:"-w/--work" parameter.
 
@@ -611,6 +612,10 @@ Fakefile Documentation:
       This variable holds the code:"sources" program parameters, such as code:"-S sources/".
       This supports both code:":option" and code:":value".
 
+    - code:"under"\:
+      This variable holds the code:"under" program parameters, such as code:"-U under/".
+      This supports both code:":option" and code:":value".
+
     - code:"verbosity"\:
       This variable holds the verbosity related program parameters, such as code:"+V".
       This supports both code:":option" and code:":value" (value is always an empty string).
index 2e27422da8a01b4be1e656b6797ccb490fd16aa9..ccfb860f37614599adaf924592cd98c044c05168 100644 (file)
@@ -124,5 +124,5 @@ Fakefile Specification:
       - code:"<="
 
   The code:"if" bold:"Section Operation" condition code:"parameter"\:
-    The following reserved words are available for parameter names: code:"build", code:"color", code:"current", code:"data", code:"documents", code:"define", code:"fakefile", code:"licenses", code:"mode", code:"process", code:"return", code:"settings", code:"sources", code:"top", code:"verbosity", and code:"work".
+    The following reserved words are available for parameter names: code:"build", code:"color", code:"current", code:"data", code:"documents", code:"define", code:"fakefile", code:"licenses", code:"mode", code:"process", code:"return", code:"settings", code:"sources", code:"top", code:"under", code:"verbosity", and code:"work".
     Each of the reserved words supports having code:":option" and code:":value" appended, such as: code:"work:value".