The linker program 'ar' creates an archive which is essentially an index.
By switching the words from linker and archiver to indexer, I believe that I can avoid terminology conflicts.
This avoids conflicting the 'linker' in terms of 'ar' and the 'linker' in terms of 'ln'.
This avoids conflicting the 'archiver' in terms of 'ar' and the 'archiver' in terms of 'bzip2'.
Use "return" instead of "exit" in bootstrap.sh.
modes_default level
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-level
build_sources_library account.c console.c conversion.c directory.c private-directory.c environment.c private-environment.c file.c private-file.c fss.c iki.c memory.c path.c private-path.c pipe.c print.c serialize.c private-serialize.c socket.c utf.c private-utf.c
modes_default level
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-level -lfll_0
build_sources_library color.c console.c conversion.c directory.c private-directory.c environment.c private-fss.c fss_basic.c fss_basic_list.c fss_extended.c fss_extended_list.c iki.c print.c status.c string.c private-string.c utf.c private-utf.c utf_file.c private-utf_file.c
modes_default level
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-level -lfll_1 -lfll_0
build_sources_library execute.c private-execute.c file.c fss.c private-fss.c fss_basic.c fss_basic_list.c fss_extended.c fss_extended_list.c fss_status.c path.c program.c status.c
modes_default monolithic
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-monolithic
build_sources_library level_0/account.c level_0/console.c level_0/conversion.c level_0/directory.c level_0/private-directory.c level_0/environment.c level_0/private-environment.c level_0/file.c level_0/private-file.c level_0/fss.c level_0/iki.c level_0/memory.c level_0/path.c level_0/private-path.c level_0/pipe.c level_0/print.c level_0/serialize.c level_0/private-serialize.c level_0/socket.c level_0/utf.c level_0/private-utf.c level_1/color.c level_1/console.c level_1/conversion.c level_1/directory.c level_1/private-directory.c level_1/environment.c level_1/private-fss.c level_1/fss_basic.c level_1/fss_basic_list.c level_1/fss_extended.c level_1/fss_extended_list.c level_1/iki.c level_1/print.c level_1/status.c level_1/string.c level_1/private-string.c level_1/utf.c level_1/private-utf.c level_1/utf_file.c level_1/private-utf_file.c level_2/execute.c level_2/private-execute.c level_2/file.c level_2/fss.c level_2/private-fss.c level_2/fss_basic.c level_2/fss_basic_list.c level_2/fss_extended.c level_2/fss_extended_list.c level_2/fss_status.c level_2/path.c level_2/program.c level_2/status.c
bootstrap_load_settings
+ if [[ $? -ne 0 ]] ; then
+ bootstrap_cleanup
+ return 1
+ fi
+
if [[ $mode == "" ]] ; then
mode=${variables[$(bootstrap_id modes_default)]}
bootstrap_load_settings_mode
+ if [[ $? -ne 0 ]] ; then
+ bootstrap_cleanup
+ return 1
+ fi
+
project_built="${path_build_stage}${variables[$(bootstrap_id project_name)]}"
if [[ $process != "" ]] ; then
project_built="${project_built}-$process"
else
if [[ ! -f ${project_built}.prepared ]] ; then
bootstrap_prepare_build
+
+ if [[ $? -ne 0 ]] ; then
+ bootstrap_cleanup
+ return 1
+ fi
fi
bootstrap_operation_build
+
+ if [[ $? -ne 0 ]] ; then
+ bootstrap_cleanup
+ return 1
+ fi
fi
elif [[ $operation == "clean" ]] ; then
if [[ $verbosity != "quiet" ]] ; then
case $name in
"build_compiler") echo -n 0;;
- "build_language") echo -n 1;;
- "build_libraries") echo -n 2;;
- "build_linker") echo -n 3;;
+ "build_indexer") echo -n 1;;
+ "build_language") echo -n 2;;
+ "build_libraries") echo -n 3;;
"build_script") echo -n 4;;
"build_shared") echo -n 5;;
"build_sources_headers") echo -n 6;;
fi
if [[ $failure != "" ]] ; then
- bootstrap_cleanup
- exit $failure
+ return 1
fi
- for i in build_compiler build_language build_libraries build_linker build_script build_shared build_sources_headers build_sources_library build_sources_program build_sources_setting build_sources_script build_static defines_all defines_shared defines_static environment flags_all flags_library flags_program flags_shared flags_static modes modes_default path_language path_headers path_library_script path_library_shared path_library_static path_program_script path_program_shared path_program_static path_sources path_standard process_post process_pre project_name search_exclusive search_shared search_static version_major version_micro version_minor ; do
+ for i in build_compiler build_indexer build_language build_libraries build_script build_shared build_sources_headers build_sources_library build_sources_program build_sources_setting build_sources_script build_static defines_all defines_shared defines_static environment flags_all flags_library flags_program flags_shared flags_static modes modes_default path_language path_headers path_library_script path_library_shared path_library_static path_program_script path_program_shared path_program_static path_sources path_standard process_post process_pre project_name search_exclusive search_shared search_static version_major version_micro version_minor ; do
variables[$(bootstrap_id $i)]=$(grep -s -o "^[[:space:]]*$i[[:space:]].*\$" $settings_file | sed -e "s|^[[:space:]]*$i\>||" -e 's|^[[:space:]]*||')
done
}
fi
if [[ $failure != "" ]] ; then
- bootstrap_cleanup
- exit $failure
+ return $failure
fi
touch ${project_built}.prepared
local micro=${variables[$(bootstrap_id version_micro)]}
local target=${variables[$(bootstrap_id version_target)]}
local compiler=${variables[$(bootstrap_id build_compiler)]}
- local linker=${variables[$(bootstrap_id build_linker)]}
+ local indexer=${variables[$(bootstrap_id build_indexer)]}
local arguments_include="-I${path_build}includes"
local arguments_shared="-L${path_build}libraries/shared"
local arguments_static="-L${path_build}libraries/static"
echo -e "${c_error}ERROR: Cannot Build, either build_shared or build_static must be set to 'yes'.$c_reset"
fi
- bootstrap_cleanup
- exit -1
+ return 1
fi
if [[ $search_shared != "yes" && $search_static != "yes" ]] ; then
echo -e "${c_error}ERROR: Cannot Build, either search_shared or search_static must be set to 'yes'.$c_reset"
fi
- bootstrap_cleanup
- exit -1
+ return 1
fi
for i in $sources_library ; do
echo -e "${c_error}ERROR: Cannot Build, invalid source_library path provided: '$i'.$c_reset"
fi
- bootstrap_cleanup
- exit -1
+ return 1
fi
done
echo -e "${c_error}ERROR: Cannot Build, invalid sources_program path provided: '$i'.$c_reset"
fi
- bootstrap_cleanup
- exit -1
+ return 1
fi
done
echo -e "${c_error}ERROR: Cannot Build, invalid sources_headers path provided: '$i'.$c_reset"
fi
- bootstrap_cleanup
- exit -1
+ return 1
fi
done
echo -e "${c_error}ERROR: Cannot Build, invalid sources_bash path provided: '$i'.$c_reset"
fi
- bootstrap_cleanup
- exit -1
+ return 1
fi
done
echo -e "${c_error}ERROR: Cannot Build, invalid sources_setting path provided: '$i'.$c_reset"
fi
- bootstrap_cleanup
- exit -1
+ return 1
fi
done
arguments_shared="$arguments_shared $arguments_static"
fi
+ if [[ $compiler == "" ]] ; then
+ echo -e "${c_error}ERROR: Cannot Build, no '${c_notice}build_compiler${c_error}' specified, such as '${c_notice}gcc${c_error}'.$c_reset"
+ return 1
+ fi
+
+ if [[ $indexer == "" ]] ; then
+ echo -e "${c_error}ERROR: Cannot Build, no '${c_notice}build_indexer${c_error}' specified, such as '${c_notice}ar${c_error}'.$c_reset"
+ failure=1
+ fi
+
if [[ $sources_setting != "" ]] ; then
for i in $sources_setting ; do
directory=$(dirname $i)
done
if [[ $failure == "" && $sources_library != "" ]] ; then
+
if [[ $verbosity == "verbose" ]] ; then
- echo $linker rcs ${path_build}libraries/static/lib$name.a $sources
+ echo $indexer rcs ${path_build}libraries/static/lib$name.a $sources
fi
- $linker rcs ${path_build}libraries/static/lib$name.a $sources || failure=1
+ $indexer rcs ${path_build}libraries/static/lib$name.a $sources || failure=1
fi
fi
echo -e "${c_error}ERROR: failed to build.$c_reset"
fi
- bootstrap_cleanup
- exit $failure
+ return 1
fi
touch ${project_built}.built
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual
build_sources_library account.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual
build_sources_library
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library console.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library conversion.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library directory.c private-directory.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library environment.c private-environment.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library file.c private-file.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library fss.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library iki.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual
build_sources_library memory.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library path.c private-path.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual
build_sources_library pipe.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library print.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library serialize.c private-serialize.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library socket.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual
build_sources_library
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual
build_sources_library
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_memory
build_sources_library utf.c private-utf.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_print -lf_file -lf_memory
build_sources_library color.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_conversion -lf_console -lf_utf -lf_memory
build_sources_library console.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_conversion -lf_utf -lf_memory
build_sources_library conversion.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_path -lf_file -lf_directory -lf_utf -lf_memory
build_sources_library directory.c private-directory.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_path -lf_environment -lf_utf -lf_memory
build_sources_library environment.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_fss -lf_file -lf_utf -lf_memory
build_sources_library private-fss.c fss_basic.c fss_basic_list.c fss_extended.c fss_extended_list.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_iki -lf_utf -lf_memory
build_sources_library iki.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_print -lf_conversion -lf_utf -lf_memory
build_sources_library print.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library status.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library string.c private-string.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_utf -lf_memory
build_sources_library utf.c private-utf.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lf_file -lf_utf -lf_memory
build_sources_library utf_file.c private-utf_file.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfl_string -lfl_environment -lf_utf -lf_path -lf_file -lf_environment -lf_memory
build_sources_library execute.c private-execute.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfl_color -lf_print -lf_file -lf_memory
build_sources_library file.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfl_string -lfl_status -lfl_fss -lfl_conversion -lf_file -lf_fss -lf_conversion -lf_utf -lf_memory
build_sources_library fss.c private-fss.c fss_basic.c fss_basic_list.c fss_extended.c fss_extended_list.c fss_status.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfl_string -lf_utf -lf_path -lf_memory
build_sources_library path.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfl_string -lfl_color -lf_print -lf_file -lf_console -lf_utf -lf_memory
build_sources_library program.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfl_string -lfl_status -lf_conversion -lf_utf -lf_memory
build_sources_library status.c
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfl_utf -lfl_string -lfl_conversion -lfl_console -lfl_color -lf_print -lf_pipe -lf_file -lf_conversion -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
}
}
- fake_execute(data, data_build.environment, data_build.setting.build_linker, arguments, status);
+ fake_execute(data, data_build.environment, data_build.setting.build_indexer, arguments, status);
f_macro_string_dynamic_t_delete_simple(file_name);
f_macro_string_dynamic_t_delete_simple(source_path);
const f_string_t settings_name[] = {
fake_build_setting_name_build_compiler,
+ fake_build_setting_name_build_indexer,
fake_build_setting_name_build_language,
fake_build_setting_name_build_libraries,
- fake_build_setting_name_build_linker,
fake_build_setting_name_build_script,
fake_build_setting_name_build_shared,
fake_build_setting_name_build_sources_headers,
const f_string_length_t settings_length[] = {
fake_build_setting_name_build_compiler_length,
+ fake_build_setting_name_build_indexer_length,
fake_build_setting_name_build_language_length,
fake_build_setting_name_build_libraries_length,
- fake_build_setting_name_build_linker_length,
fake_build_setting_name_build_script_length,
fake_build_setting_name_build_shared_length,
fake_build_setting_name_build_sources_headers_length,
};
f_string_dynamics_t build_compiler = f_string_dynamics_t_initialize;
+ f_string_dynamics_t build_indexer = f_string_dynamics_t_initialize;
f_string_dynamics_t build_language = f_string_dynamics_t_initialize;
- f_string_dynamics_t build_linker = f_string_dynamics_t_initialize;
f_string_dynamics_t build_script = f_string_dynamics_t_initialize;
f_string_dynamics_t build_shared = f_string_dynamics_t_initialize;
f_string_dynamics_t build_static = f_string_dynamics_t_initialize;
f_string_dynamics_t *settings_value[] = {
&build_compiler,
+ &build_indexer,
&build_language,
&setting->build_libraries,
- &build_linker,
&build_script,
&build_shared,
&setting->build_sources_headers,
else {
const f_string_t settings_single_name[] = {
fake_build_setting_name_build_compiler,
+ fake_build_setting_name_build_indexer,
fake_build_setting_name_build_language,
- fake_build_setting_name_build_linker,
fake_build_setting_name_build_script,
fake_build_setting_name_build_shared,
fake_build_setting_name_build_static,
const f_string_statics_t *settings_single_source[] = {
&build_compiler,
+ &build_indexer,
&build_language,
- &build_linker,
&build_script,
&build_shared,
&build_static,
f_string_dynamic_t *settings_single_destination[] = {
&setting->build_compiler,
+ &setting->build_indexer,
0,
- &setting->build_linker,
0,
0,
0,
uint8_t *settings_single_language[] = {
0,
+ 0,
&setting->build_language,
};
// 1 = "yes" or "no", 2 = path/, 3 = literal, 4 = "bash", "c", or "c++", 5 = "major", "minor", or "micro".
uint8_t settings_single_type[] = {
3,
- 4,
3,
+ 4,
1,
1,
1,
}
f_macro_string_dynamics_t_delete_simple(build_compiler);
+ f_macro_string_dynamics_t_delete_simple(build_indexer);
f_macro_string_dynamics_t_delete_simple(build_language);
- f_macro_string_dynamics_t_delete_simple(build_linker);
f_macro_string_dynamics_t_delete_simple(build_script);
f_macro_string_dynamics_t_delete_simple(build_shared);
f_macro_string_dynamics_t_delete_simple(build_static);
bool search_static;
f_string_dynamic_t build_compiler;
- f_string_dynamic_t build_linker;
+ f_string_dynamic_t build_indexer;
f_string_dynamic_t path_headers;
f_string_dynamic_t path_language;
f_string_dynamic_t path_library_script;
#define fake_macro_build_setting_t_delete_simple(setting) \
f_macro_string_dynamic_t_delete_simple(setting.build_compiler) \
- f_macro_string_dynamic_t_delete_simple(setting.build_linker) \
+ f_macro_string_dynamic_t_delete_simple(setting.build_indexer) \
f_macro_string_dynamic_t_delete_simple(setting.path_headers) \
f_macro_string_dynamic_t_delete_simple(setting.path_language) \
f_macro_string_dynamic_t_delete_simple(setting.path_library_script) \
#define fake_build_setting_name_build_compiler "build_compiler"
#define fake_build_setting_name_build_language "build_language"
#define fake_build_setting_name_build_libraries "build_libraries"
- #define fake_build_setting_name_build_linker "build_linker"
+ #define fake_build_setting_name_build_indexer "build_indexer"
#define fake_build_setting_name_build_script "build_script"
#define fake_build_setting_name_build_shared "build_shared"
#define fake_build_setting_name_build_sources_headers "build_sources_headers"
#define fake_build_setting_name_build_compiler_length 14
#define fake_build_setting_name_build_language_length 14
#define fake_build_setting_name_build_libraries_length 15
- #define fake_build_setting_name_build_linker_length 12
+ #define fake_build_setting_name_build_indexer_length 13
#define fake_build_setting_name_build_script_length 12
#define fake_build_setting_name_build_shared_length 12
#define fake_build_setting_name_build_sources_headers_length 21
}
}
- // if either compiler or linker is specified, each will replace any existing build_compiler or build_linker, respectively.
+ // if either compiler or linker is specified, each will replace any existing build_compiler or build_indexer, respectively.
if (range_compiler) {
data_make->setting_build.build_compiler.used = 0;
*status = fl_string_dynamic_partial_append(data_make->buffer, *range_compiler, &data_make->setting_build.build_compiler);
}
if (F_status_is_fine(*status) && range_linker) {
- data_make->setting_build.build_linker.used = 0;
- *status = fl_string_dynamic_partial_append(data_make->buffer, *range_linker, &data_make->setting_build.build_linker);
+ data_make->setting_build.build_indexer.used = 0;
+ *status = fl_string_dynamic_partial_append(data_make->buffer, *range_linker, &data_make->setting_build.build_indexer);
}
if (F_status_is_error(*status)) {
if (unmatched) {
const f_string_t dynamic_name[] = {
fake_build_setting_name_build_compiler,
- fake_build_setting_name_build_linker,
+ fake_build_setting_name_build_indexer,
fake_build_setting_name_path_headers,
fake_build_setting_name_path_language,
fake_build_setting_name_path_library_script,
const f_string_length_t dynamic_length[] = {
fake_build_setting_name_build_compiler_length,
- fake_build_setting_name_build_linker_length,
+ fake_build_setting_name_build_indexer_length,
fake_build_setting_name_path_headers_length,
fake_build_setting_name_path_language_length,
fake_build_setting_name_path_library_script_length,
const f_string_dynamic_t dynamic_value[] = {
data_make->setting_build.build_compiler,
- data_make->setting_build.build_linker,
+ data_make->setting_build.build_indexer,
data_make->setting_build.path_headers,
data_make->setting_build.path_language,
data_make->setting_build.path_library_script,
}
const f_string_static_t operations_name[] = {
- f_macro_string_static_t_initialize(fake_make_operation_archive, fake_make_operation_archive_length),
f_macro_string_static_t_initialize(fake_make_operation_break, fake_make_operation_break_length),
f_macro_string_static_t_initialize(fake_make_operation_build, fake_make_operation_build_length),
f_macro_string_static_t_initialize(fake_make_operation_clean, fake_make_operation_clean_length),
f_macro_string_static_t_initialize(fake_make_operation_group, fake_make_operation_group_length),
f_macro_string_static_t_initialize(fake_make_operation_groups, fake_make_operation_groups_length),
f_macro_string_static_t_initialize(fake_make_operation_if, fake_make_operation_if_length),
+ f_macro_string_static_t_initialize(fake_make_operation_index, fake_make_operation_index_length),
f_macro_string_static_t_initialize(fake_make_operation_link, fake_make_operation_link_length),
f_macro_string_static_t_initialize(fake_make_operation_mode, fake_make_operation_mode_length),
f_macro_string_static_t_initialize(fake_make_operation_modes, fake_make_operation_modes_length),
};
const f_string_range_t operations_range[] = {
- f_macro_string_range_initialize(fake_make_operation_archive_length),
f_macro_string_range_initialize(fake_make_operation_break_length),
f_macro_string_range_initialize(fake_make_operation_build_length),
f_macro_string_range_initialize(fake_make_operation_clean_length),
f_macro_string_range_initialize(fake_make_operation_group_length),
f_macro_string_range_initialize(fake_make_operation_groups_length),
f_macro_string_range_initialize(fake_make_operation_if_length),
+ f_macro_string_range_initialize(fake_make_operation_index_length),
f_macro_string_range_initialize(fake_make_operation_link_length),
f_macro_string_range_initialize(fake_make_operation_mode_length),
f_macro_string_range_initialize(fake_make_operation_modes_length),
};
const uint8_t operations_type[] = {
- fake_make_operation_type_archive,
fake_make_operation_type_break,
fake_make_operation_type_build,
fake_make_operation_type_clean,
fake_make_operation_type_group,
fake_make_operation_type_groups,
fake_make_operation_type_if,
+ fake_make_operation_type_index,
fake_make_operation_type_link,
fake_make_operation_type_mode,
fake_make_operation_type_modes,
#ifndef _di_fake_make_operate_process_
void fake_make_operate_process(const fake_data_t data, const f_string_range_t section_name, const uint8_t operation, const f_string_static_t operation_name, const f_string_dynamics_t arguments, const bool success, uint8_t *operation_if, fake_make_data_t *data_make, f_string_lengths_t *section_stack, f_status_t *status) {
- if (operation == fake_make_operation_type_archive) {
- int return_code = fake_execute(data, data_make->environment, data_make->setting_build.build_linker, arguments, status);
+ if (operation == fake_make_operation_type_index) {
+ int return_code = fake_execute(data, data_make->environment, data_make->setting_build.build_indexer, arguments, status);
if (F_status_is_error(*status)) {
fake_print_message(data, F_status_set_fine(*status), "fake_execute", F_true, data_make->print);
void fake_make_operate_validate(const fake_data_t data, const f_string_range_t section_name, const f_array_length_t operation, const f_string_static_t operation_name, const f_string_dynamics_t arguments, uint8_t *operation_if, fake_make_data_t *data_make, f_string_lengths_t *section_stack, f_status_t *status) {
if (F_status_is_error(*status)) return;
- if (operation == fake_make_operation_type_archive || operation == fake_make_operation_type_run || operation == fake_make_operation_type_shell) {
+ if (operation == fake_make_operation_type_index || operation == fake_make_operation_type_run || operation == fake_make_operation_type_shell) {
if (arguments.used == 0) {
if (data.verbosity != fake_verbosity_quiet && data_make->print.to) {
printf("%c", f_string_eol[0]);
*status = F_status_set_error(F_failure);
}
- else if (operation == fake_make_operation_type_archive) {
- if (!data_make->setting_build.build_linker.used) {
+ else if (operation == fake_make_operation_type_index) {
+ if (!data_make->setting_build.build_indexer.used) {
if (data.verbosity != fake_verbosity_quiet && data_make->print.to) {
fprintf(data_make->print.to, "%c", f_string_eol[0]);
- fl_color_print(data_make->print.to, data_make->print.context, data.context.reset, "%s: No linker has been specified, cannot perform '", data_make->print.prefix);
- fl_color_print(data_make->print.to, data.context.notable, data.context.reset, fake_make_operation_archive);
+ fl_color_print(data_make->print.to, data_make->print.context, data.context.reset, "%s: No indexer has been specified, cannot perform '", data_make->print.prefix);
+ fl_color_print(data_make->print.to, data.context.notable, data.context.reset, fake_make_operation_index);
fl_color_print_line(data_make->print.to, data_make->print.context, data.context.reset, "' section operation.");
}
#endif // _di_fake_make_setting_t_
#ifndef _di_fake_make_operation_
- #define fake_make_operation_archive "archive"
#define fake_make_operation_build "build"
#define fake_make_operation_break "break"
#define fake_make_operation_clean "clean"
#define fake_make_operation_group "group"
#define fake_make_operation_groups "groups"
#define fake_make_operation_if "if"
+ #define fake_make_operation_index "index"
#define fake_make_operation_link "link"
#define fake_make_operation_mode "mode"
#define fake_make_operation_modes "modes"
#define fake_make_operation_top "top"
#define fake_make_operation_touch "touch"
- #define fake_make_operation_archive_length 7
+ #define fake_make_operation_index_length 5
#define fake_make_operation_break_length 5
#define fake_make_operation_build_length 5
#define fake_make_operation_clean_length 5
#define fake_make_operation_touch_length 5
enum {
- fake_make_operation_type_archive = 1,
- fake_make_operation_type_break,
+ fake_make_operation_type_break = 1,
fake_make_operation_type_build,
fake_make_operation_type_clean,
fake_make_operation_type_compile,
fake_make_operation_type_group,
fake_make_operation_type_groups,
fake_make_operation_type_if,
+ fake_make_operation_type_index,
fake_make_operation_type_link,
fake_make_operation_type_mode,
fake_make_operation_type_modes,
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_path -lfll_execute -lfl_environment -lfll_fss -lfl_utf -lfl_string -lfl_status -lfl_iki -lfl_fss -lfl_directory -lfl_conversion -lfl_console -lfl_color -lf_account -lf_print -lf_path -lf_iki -lf_file -lf_fss -lf_environment -lf_directory -lf_conversion -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
version_target major
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_sources_program blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c bzip2.c
build_sources_headers bzlib.h
version_target major
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_sources_program bzip2recover.c
build_script no
The build settings may also be specified in the Settings Section.
The following settings are available (in addition to the build settings)\:
- - archiver\:
- This represents the name of the linker program to use, such as "ar".
-
- When specified and "load_build" is "true", then this will override the "build_linker" specified in the loaded build settings.
-
- compiler\:
This represents the name of the compiler program to use, such as "gcc".
The return code for programs can still be retrieved through using the reserved iki vaiable "return".
+ - index\:
+ This represents the name of the indexer program to use, such as "ar".
+
+ When specified and "load_build" is "true", then this will override the "build_indexer" specified in the loaded build settings.
+
- load_build\:
This represents whether or not to load the load the build settings file.
The first Content value may be "true" to load the build settings and "false" to not load the build settings file.
All of the arguments assume the GCC, so if a non-GCC executable is provided supports the GCC argument structure, then that is by effect supported.
Many of the parameters in the settings file can be changed if using a non-GCC, but there is certain hard-coded functionality that may still need changing.
+ build_indexer\:
+ Exactly like build_compiler, except for the linker, aka indexer.
+ The default behavior is to support the GNU ar program.
+ As with build_compiler, anything linker that supports the "ar" program parameters is effectively supported.
+
build_language\:
The language to build with.
The only currently supported languages are: bash, c, and c++.
The "bash" language is not currently implemented and needs some consideration because there is nothing to compile.
The "bash" language will likely build a set of individual scripts, and perhaps script dependencies, into a single bash script.
- build_linker\:
- Exactly like build_compiler, except for the linker.
- Currently only supports the GNU ar program.
- As with build_compiler, anything linker that supports the "ar" program parameters is effectively supported.
-
build_libraries\:
A collection of libraries to be linked against.
The should contain the compiler specific parameter parts, such as the "-l" prefix.
When "no", the search path during compile time for shared libraries will include shared library paths followed by static library paths.
Setting this to "yes" helps prevent static libraries from ended up in shared libraries (very useful when bootstrapping a system).
Setting this to "no" allows for including static libraries if no shared libraries are found but static are.
- This does not alter search paths introduced automatically by the "build_compiler" or "build_linker", so it is still possible for static libraries to end up even when this is set to "yes".
+ This does not alter search paths introduced automatically by the "build_compiler" or "build_indexer", so it is still possible for static libraries to end up even when this is set to "yes".
search_shared\:
When "yes", shared library paths are searched during compile.
The build settings may also be specified in the Settings Section.
The Section Operation Objects are\:
- - archive: One or more Content.
- break: Zero or One Content. If specified, First content must be one of "success" or "failure".
- build: Zero or One Content. First Content represents file name of the settings file to use.
- clean: Zero Content.
- group: Two or more Content. First Content is group name or number, remaining Content are paths to files.
- groups: Two or more Content. First Content is group name or number, remaining Content are paths to files.
- if: One or more Content. First Content is the condition, remaining Content are specific to the condition.
+ - index: One or more Content.
- link: Two Content. First Content is the link target file and second Content is the pointer file (the link).
- mode: Two or more Content. First Content is the mode, remaining Content are paths to files.
- modes: Two or more Content. First Content is the mode, remaining Content are paths to files.
Object Names and their respective Content purpose/restrictions\:
"build_compiler": Must only be a valid filename.
+ "build_indexer": Must only be a valid filename.
"build_language": Must only be one of: "bash", "c", or "c++".
- "build_linker": Must only be a valid filename.
"build_libraries": Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" Object.
"build_script": Must only one of: "yes" or "no".
"build_shared": Must only one of: "yes" or "no".
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_execute -lfl_environment -lfl_string -lfl_status -lfl_fss -lfl_conversion -lfl_console -lf_conversion -lfl_color -lf_print -lf_pipe -lf_path -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_print -lfl_fss -lfl_conversion -lfl_console -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_fss -lfl_conversion -lfl_console -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_print -lfl_fss -lfl_conversion -lfl_console -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_fss -lfl_conversion -lfl_console -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_print -lfl_fss -lfl_conversion -lfl_console -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_print -lfl_fss -lfl_console -lfl_conversion -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_fss -lfl_conversion -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_status -lfll_program -lfll_fss -lfll_file -lfll_execute -lfl_environment -lf_path -lfl_utf -lfl_string -lfl_status -lfl_fss -lfl_conversion -lfl_console -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_conversion -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_file -lfl_utf -lfl_string -lfl_iki -lfl_conversion -lfl_console -lfl_color -lf_print -lf_pipe -lf_iki -lf_file -lf_conversion -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_program -lfll_fss -lfl_conversion -lfll_execute -lfl_environment -lf_path -lfl_string -lfl_status -lfl_fss -lfl_console -lf_conversion -lfl_color -lf_print -lf_pipe -lf_fss -lf_file -lf_environment -lf_directory -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0
modes_default individual
build_compiler gcc
+build_indexer ar
build_language c
-build_linker ar
build_libraries -lc
build_libraries-individual -lfll_status -lfll_program -lfl_utf -lfl_string -lfl_status -lfl_conversion -lfl_console -lfl_color -lf_print -lf_pipe -lf_file -lf_conversion -lf_console -lf_utf -lf_memory
build_libraries-level -lfll_2 -lfll_1 -lfll_0