Merge pull request #378 from asarhaddon/test-macro-not-changing-function
[jackhill/mal.git] / objc / Dockerfile
CommitLineData
57350ed7
JM
1FROM ubuntu:vivid
2MAINTAINER Joel Martin <github@martintribe.org>
3
4##########################################################
5# General requirements for testing or common across many
6# implementations
7##########################################################
8
9RUN apt-get -y update
10
11# Required for running tests
12RUN apt-get -y install make python
13
14# Some typical implementation and test requirements
15RUN apt-get -y install curl libreadline-dev libedit-dev
16
17RUN mkdir -p /mal
18WORKDIR /mal
19
20##########################################################
21# Specific implementation requirements
22##########################################################
23
24# Based on:
25# https://blog.tlensing.org/2013/02/24/objective-c-on-linux-setting-up-gnustep-clang-llvm-objective-c-2-0-blocks-runtime-gcd-on-ubuntu-12-04/
26
27RUN apt-get -y install build-essential clang libblocksruntime-dev \
28 libkqueue-dev libpthread-workqueue-dev gobjc libxml2-dev \
29 libjpeg-dev libtiff-dev libpng12-dev libcups2-dev \
30 libfreetype6-dev libcairo2-dev libxt-dev libgl1-mesa-dev
31
32RUN mkdir -p /root/gnustep-dev
33RUN cd /root/gnustep-dev && \
34 curl http://download.gna.org/gnustep/libobjc2-1.7.tar.bz2 \
35 | tar xjf -
36RUN cd /root/gnustep-dev && \
37 curl ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.7.tar.gz \
38 | tar xzf -
39RUN cd /root/gnustep-dev && \
40 curl ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.8.tar.gz \
41 | tar xzf -
42RUN cd /root/gnustep-dev && \
43 curl ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.24.1.tar.gz \
44 | tar xzf -
45RUN cd /root/gnustep-dev && \
46 curl ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-0.24.1.tar.gz \
47 | tar xzf -
48
49
50# TODO move up
51RUN apt-get -y install gnutls-dev libxslt-dev libffi-dev openssl
52
53ENV CC clang
54RUN cd /root/gnustep-dev/libobjc2-1.7 && make && make install
55RUN cd /root/gnustep-dev/gnustep-make-2.6.7 && ./configure && make && make install
56RUN cd /root/gnustep-dev/gnustep-base-1.24.8 && ./configure && make && make install && ldconfig
57RUN cd /root/gnustep-dev/gnustep-gui-0.24.1 && ./configure && make && make install
58RUN cd /root/gnustep-dev/gnustep-back-0.24.1 && ./configure && make && make install
59
60RUN apt-get -y install libdispatch-dev
61
62ENV HOME /mal