about summary refs log tree commit diff homepage
path: root/Dockerfile
diff options
context:
space:
mode:
authorDan Liew <daniel.liew@imperial.ac.uk>2017-07-21 16:30:41 +0100
committerDan Liew <delcypher@gmail.com>2017-10-04 22:27:29 +0100
commitbe4260c83711fa4efe6588a7dfe43fa721ca9b8b (patch)
treecde35c1ba810602bd6f55f7bfcc11b50e45cb484 /Dockerfile
parentafb9326f7437c9eeaa2617c589312263bc7a14ba (diff)
downloadklee-be4260c83711fa4efe6588a7dfe43fa721ca9b8b.tar.gz
Remove Autoconf/Makefile build system and adjust the TravisCI
configuration, TravisCI scripts and Dockerfile build appropriately.

There are a bunch of clean ups this enables but this commit doesn't
attempt them. We can do that in future commits.
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile44
1 files changed, 5 insertions, 39 deletions
diff --git a/Dockerfile b/Dockerfile
index 11174e6c..066d5571 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -14,7 +14,6 @@ ENV LLVM_VERSION=3.4 \
     KLEE_SRC=/home/klee/klee_src \
     COVERAGE=0 \
     BUILD_DIR=/home/klee/klee_build \
-    USE_CMAKE=1 \
     ASAN_BUILD=0 \
     UBSAN_BUILD=0 \
     TRAVIS_OS_NAME=linux
@@ -76,35 +75,6 @@ RUN cd ${BUILD_DIR} && ${KLEE_SRC}/.travis/solvers.sh
 RUN cd ${BUILD_DIR} && mkdir test-utils && cd test-utils && \
     ${KLEE_SRC}/.travis/testing-utils.sh
 
-# FIXME: All these hacks need to be removed. Once we no longer
-# need to support KLEE's old build system they can be removed.
-
-# FIXME: This is a nasty hack so KLEE's configure and build finds
-# LLVM's headers file, libraries and tools
-RUN sudo mkdir -p /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin && \
-    sudo ln -s /usr/bin/llvm-config /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin/llvm-config && \
-    sudo ln -s /usr/bin/llvm-dis /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin/llvm-dis && \
-    sudo ln -s /usr/bin/llvm-as /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin/llvm-as && \
-    sudo ln -s /usr/bin/llvm-link /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin/llvm-link && \
-    sudo ln -s /usr/bin/llvm-ar /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin/llvm-ar && \
-    sudo ln -s /usr/bin/opt /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin/opt && \
-    sudo ln -s /usr/bin/lli /usr/lib/llvm-${LLVM_VERSION}/build/Release/bin/lli && \
-    sudo mkdir -p /usr/lib/llvm-${LLVM_VERSION}/build/include && \
-    sudo ln -s /usr/include/llvm-${LLVM_VERSION}/llvm /usr/lib/llvm-${LLVM_VERSION}/build/include/llvm && \
-    sudo ln -s /usr/include/llvm-c-${LLVM_VERSION}/llvm-c /usr/lib/llvm-${LLVM_VERSION}/build/include/llvm-c && \
-    for static_lib in /usr/lib/llvm-${LLVM_VERSION}/lib/*.a ; do sudo ln -s ${static_lib} /usr/lib/`basename ${static_lib}`; done
-
-# FIXME: This is **really gross**. The Official Ubuntu LLVM packages don't ship
-# with ``FileCheck`` or the ``not`` tools so we have to hack building these
-# into KLEE's build system in order for the tests to pass
-RUN [ "X${USE_CMAKE}" != "X1" ] && ( cd ${KLEE_SRC}/tools && \
-    for tool in FileCheck not; do \
-        svn export \
-        http://llvm.org/svn/llvm-project/llvm/branches/release_34/utils/${tool} ${tool} ; \
-        sed -i 's/^USEDLIBS.*$/LINK_COMPONENTS = support/' ${tool}/Makefile; \
-    done && \
-    sed -i '0,/^PARALLEL_DIRS/a PARALLEL_DIRS += FileCheck not' Makefile ) || echo "Skipping hack"
-
 # FIXME: The current TravisCI script expects clang-${LLVM_VERSION} to exist
 RUN sudo ln -s /usr/bin/clang /usr/bin/clang-${LLVM_VERSION} && \
     sudo ln -s /usr/bin/clang++ /usr/bin/clang++-${LLVM_VERSION}
@@ -119,17 +89,13 @@ RUN mv /etc/sudoers.bak /etc/sudoers && \
     echo 'klee  ALL=(root) ALL' >> /etc/sudoers
 USER klee
 
+# FIXME: Shouldn't we just invoke the `install` target? This will
+# duplicate some files but the Docker image is already pretty bloated
+# so this probably doesn't matter.
 # Add KLEE binary directory to PATH
-RUN [ "X${USE_CMAKE}" != "X1" ] && \
-  (echo 'export PATH=$PATH:'${BUILD_DIR}'/klee/Release+Asserts/bin' >> /home/klee/.bashrc) || \
-  (echo 'export PATH=$PATH:'${BUILD_DIR}'/klee/bin' >> /home/klee/.bashrc)
+RUN echo 'export PATH=$PATH:'${BUILD_DIR}'/klee/bin' >> /home/klee/.bashrc
 
 # Link klee to /usr/bin so that it can be used by docker run
 USER root
-RUN [ "X${USE_CMAKE}" != "X1" ] && \
-  (for executable in ${BUILD_DIR}/klee/Release+Asserts/bin/* ; do ln -s ${executable} /usr/bin/`basename ${executable}`; done) || \
-  (for executable in ${BUILD_DIR}/klee/bin/* ; do ln -s ${executable} /usr/bin/`basename ${executable}`; done)
-
-# Link klee to the libkleeRuntest library needed by docker run
-RUN [ "X${USE_CMAKE}" != "X1" ] && (ln -s ${BUILD_DIR}/klee/Release+Asserts/lib/libkleeRuntest.so /usr/lib/libkleeRuntest.so.1.0) || echo "Skipping hack"
+RUN for executable in ${BUILD_DIR}/klee/bin/* ; do ln -s ${executable} /usr/bin/`basename ${executable}`; done
 USER klee