diff --git a/project/config/cfgdefs.in b/project/config/cfgdefs.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/project/config/cfgdefs.in diff --git a/project/config/cfgdefs.sh b/project/config/cfgdefs.sh index 8400b6a..22b94c3 100644 --- a/project/config/cfgdefs.sh +++ b/project/config/cfgdefs.sh @@ -10,6 +10,11 @@ # finally, cfgdefs.sh may update the contents of the # config-time generated cfgdefs.mk. + +# sofort's config test framework +. "$mb_project_dir/sofort/cfgtest/cfgtest.sh" + + for arg ; do case "$arg" in *) @@ -81,8 +86,100 @@ cfgdefs_bootstrap() cfgdefs_bootstrap_done='yes' } + +cfgdefs_output_custom_defs() +{ + cat "$mb_project_dir/project/config/cfgdefs.in" > cfgdefs.mk +} + + +cfgdefs_perform_utility_tests() +{ + # utility settings + cfgtest_comment 'utility settings' + + mb_cfgtest_makevar='SYS_MK_DIR' + cfgtest_makevar_append '$(DATADIR)/mk' + cfgtest_cflags_append '-D_PATH_DEFSYSPATH=\"$(SYS_MK_DIR)\"' + + cfgtest_newline +} + + +cfgdefs_perform_common_tests() +{ + # interfaces + mb_cfgtest_headers='stdio.h' + cfgtest_interface_presence 'vsnprintf' + + mb_cfgtest_headers='string.h' + cfgtest_interface_presence 'strerror' + + mb_cfgtest_headers='sys/types.h unistd.h' + cfgtest_interface_presence 'setpgid' + + mb_cfgtest_headers='sys/time.h sys/resource.h' + cfgtest_interface_presence 'setrlimit' + + mb_cfgtest_headers='stdlib.h' + cfgtest_interface_presence 'setenv' + + cfgtest_newline +} + + +cfgdefs_perform_native_tests() +{ + # init + cfgtest_newline + cfgtest_native_section + + # common tests + cfgdefs_perform_common_tests + + # pretty cfgdefs.mk + cfgtest_newline +} + +cfgdefs_perform_target_tests() +{ + # init + cfgtest_newline + cfgtest_host_section + + # common tests + cfgdefs_perform_common_tests + + # utility tests + cfgdefs_perform_utility_tests + + # pretty cfgdefs.mk + cfgtest_newline +} + +# cfgdefs.in --> cfgdefs.mk +cfgdefs_output_custom_defs + +# strict: some tests might fail +set +e + +# bootstrapping cflags +cfgdefs_perform_native_tests + +# strict: restore mode +set -e + # bootstrap cfgdefs_bootstrap +# strict: some tests might fail +set +e + +# target-specific tests +cfgdefs_perform_target_tests + +# strict: restore mode +set -e + # all done return 0