about summary refs log tree commit diff homepage
path: root/scripts/build/p-uclibc.inc
diff options
context:
space:
mode:
authorMartin Nowack <m.nowack@imperial.ac.uk>2019-02-28 11:56:19 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2019-03-10 20:10:32 +0000
commitcf930214e12b49e89be4674043d9f461d667baae (patch)
tree90de5ea1c643d0d7ad2c5cf55e862d309e605d48 /scripts/build/p-uclibc.inc
parentb4d8fe0301b82e8abff0336bf6d1347dff11a853 (diff)
downloadklee-cf930214e12b49e89be4674043d9f461d667baae.tar.gz
Updated dependency build system for KLEE
Provide a single `scripts/build/build.sh` file to build KLEE and its
dependencies.
Diffstat (limited to 'scripts/build/p-uclibc.inc')
-rw-r--r--scripts/build/p-uclibc.inc49
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/build/p-uclibc.inc b/scripts/build/p-uclibc.inc
new file mode 100644
index 00000000..95af9751
--- /dev/null
+++ b/scripts/build/p-uclibc.inc
@@ -0,0 +1,49 @@
+# Build scripts for uclibc
+setup_build_variables_uclibc() {
+  UCLIBC_PATH="${BASE}/klee-uclibc-${LLVM_VERSION_SHORT}"
+  uclibc_url="https://github.com/klee/klee-uclibc.git"
+}
+
+download_uclibc() {
+  source "${DIR}/common-functions"
+  git_clone_or_update "${uclibc_url}" "${UCLIBC_PATH}" "${UCLIBC_VERSION}"
+}
+
+build_uclibc() { 
+  cd "${UCLIBC_PATH}" || return 1
+  ./configure --make-llvm-lib --with-cc "${BITCODE_CC}" --with-llvm-config "${LLVM_CONFIG}"
+  make || return 1
+  touch .is_installed
+}
+
+install_uclibc() {
+  return 0  
+}
+
+# Check if the binary artifact is installed
+is_installed_uclibc() {
+  (
+    setup_build_variables_uclibc
+    [[ -f "${UCLIBC_PATH}"/.is_installed ]]
+  ) || return 1
+}
+
+get_docker_config_id_uclibc() {
+  (
+    source "${DIR}/common-functions"
+    setup_build_variables_uclibc
+    uclibc_remote_commit="$(get_git_hash "${uclibc_url}" "${UCLIBC_VERSION}")"
+    echo "${uclibc_remote_commit}_${LLVM_VERSION_SHORT}"
+  )
+}
+
+get_build_artifacts_uclibc() {
+  (
+    setup_build_variables_uclibc
+    echo "${UCLIBC_PATH}"
+  )
+}
+
+setup_artifact_variables_uclibc() {
+  setup_build_variables_uclibc
+}
\ No newline at end of file