summaryrefslogtreecommitdiff
path: root/scripts/build/libc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/libc.sh')
-rw-r--r--scripts/build/libc.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/build/libc.sh b/scripts/build/libc.sh
new file mode 100644
index 0000000..5f5aa6f
--- /dev/null
+++ b/scripts/build/libc.sh
@@ -0,0 +1,39 @@
+# C library build routines. We don't invoke the corresponding functions directly
+# because some of them build on top of another. E.g. moxiebox runtime requires
+# newlib as a prerequisite.
+
+# Define default hooks - download/unpack just the main package; no-op build hooks.
+# The actual implementation can override just what it needs then.
+eval "${CT_LIBC//[^A-Za-z0-9]/_}_get() { CT_Fetch \"\${CT_LIBC_${CT_LIBC_CHOICE_KSYM}_PKG_KSYM}\"; }"
+eval "${CT_LIBC//[^A-Za-z0-9]/_}_extract() { CT_ExtractPatch \"\${CT_LIBC_${CT_LIBC_CHOICE_KSYM}_PKG_KSYM}\"; }"
+for _m in headers main post_cc; do
+ eval "${CT_LIBC//[^A-Za-z0-9]/_}_${_m}() { :; }"
+done
+
+# Source the selected libc.
+. "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh"
+
+do_libc_get()
+{
+ eval "${CT_LIBC//[^A-Za-z0-9]/_}_get"
+}
+
+do_libc_extract()
+{
+ eval "${CT_LIBC//[^A-Za-z0-9]/_}_extract"
+}
+
+do_libc_headers()
+{
+ eval "${CT_LIBC//[^A-Za-z0-9]/_}_headers"
+}
+
+do_libc_main()
+{
+ eval "${CT_LIBC//[^A-Za-z0-9]/_}_main"
+}
+
+do_libc_post_cc()
+{
+ eval "${CT_LIBC//[^A-Za-z0-9]/_}_post_cc"
+}