Skip to content

Instantly share code, notes, and snippets.

@vxe
Created June 29, 2017 04:29
Show Gist options
  • Save vxe/2394377d3a2edbfdebd438b0d2619ba3 to your computer and use it in GitHub Desktop.
Save vxe/2394377d3a2edbfdebd438b0d2619ba3 to your computer and use it in GitHub Desktop.
rather ugly docker image for running clasp
FROM ubuntu:xenial
MAINTAINER Vijay Edwin
WORKDIR /root
# add LLVM repo
RUN apt-get -y update && apt-get -y install wget && apt-get clean
RUN wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key| apt-key add -
RUN echo 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main'\
>/etc/apt/sources.list.d/llvm4.list
# Copied from the original dependencies
# RUN apt-get update && apt-get upgrade -y && apt-get install -y \
# libgc-dev libgmp-dev binutils-gold binutils-dev \
# zlib1g-dev libbz2-dev libexpat-dev
# maybe need these...
# libncurses-dev libboost-filesystem-dev libboost-regex-dev \
# libboost-date-time-dev libboost-program-options-dev libboost-system-dev \
# libboost-iostreams-dev csh flex gfortran \
# clang-4.0 libclang-common-4.0-dev libclang-4.0-dev libclang1-4.0 clang1-4.0-dbg \
# libllvm4.0 libllvm4.0-dbg lldb-4.0 llvm-4.0 llvm-4.0-dev llvm-4.0-doc \
# llvm-4.0-runtime clang-format-4.0 python-clang-4.0 lld-4.0
# install clasp runtime dependencies
RUN apt-get -y update && apt-get -y install \
libboost-filesystem1.58.0 libboost-date-time1.58.0 libboost-program-options1.58.0 \
libboost-iostreams1.58.0 libgc1c2 llvm-4.0-runtime libgmpxx4ldbl \
clang-4.0 binutils python-clang-4.0 lld-4.0 libzmq3-dev \
&& apt-get clean
# from wiki
RUN apt-get -y install gcc g++ llvm clang cmake libgc-dev libgmp-dev binutils-gold binutils-dev zlib1g-dev libncurses-dev libboost-filesystem-dev libboost-regex-dev libboost-date-time-dev libboost-program-options-dev libboost-system-dev libboost-iostreams-dev
# system dependences
RUN apt-get -y install git build-essential cmake sbcl python
# slime
RUN git clone https://github.com/slime/slime.git
# clasp
RUN git clone https://github.com/drmeister/externals-clasp.git; cd externals-clasp; echo "export TARGET_OS = Linux" >> local.confg; make
RUN git clone https://github.com/drmeister/clasp.git; cd clasp; git checkout origin/testing; echo "EXTERNALS_CLASP_DIR = '$HOME/externals-clasp'" >> wscript.config; ./waf configure update_submodules build_cboehm
# swank
RUN echo '(load "/root/slime/swank-loader.lisp")\n\
(swank-loader:init)\n \
(setf swank::*loopback-interface* "0.0.0.0") \n \
(swank:create-server :port 4005 :style swank:*communication-style* :dont-close t)' \
>> /root/clasp/load-swank.lisp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment