forked from ethteck/PaperMarioDecompilation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
64 lines (50 loc) · 1.53 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
FROM ubuntu:18.04 as build
RUN apt-get update && \
apt-get install -y \
binutils-mips-linux-gnu \
build-essential \
pkg-config \
python3 \
python3-pip \
wget \
git \
unzip \
nano \
libcapstone-dev \
libyaml-dev \
zlib1g-dev \
vbindiff \
bison \
flex \
texinfo
# Install qemu-irix
RUN wget \
https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb \
-O qemu.deb && \
echo 8170f37cf03a08cc2d7c1c58f10d650ea0d158f711f6916da9364f6d8c85f741 qemu.deb | sha256sum --check && \
dpkg -i qemu.deb && \
rm qemu.deb
# Build binutils
RUN wget https://ftp.gnu.org/gnu/binutils/binutils-2.34.tar.bz2 -O binutils.tar.bz2
RUN tar xjf binutils.tar.bz2
RUN mkdir -p /opt/cross
# mips-linux-gnu
RUN mkdir build-binutils && cd build-binutils
RUN /binutils-2.34/configure --target=mips-linux-gnu --prefix=/opt/cross --disable-gprof --disable-gdb --disable-werror
RUN make && make install
# mips-sgi-irix5
RUN make distclean
RUN /binutils-2.34/configure --target=mips-sgi-irix5 --prefix=/opt/cross --disable-gprof --disable-gdb --disable-werror
RUN make && make install
RUN rm binutils.tar.bz2
ENV PATH="/opt/cross/bin:${PATH}"
# Install python dependencies
RUN python3 -m pip install --user colorama ansiwrap attrs watchdog python-Levenshtein
# Build capstone
RUN git clone https://github.com/aquynh/capstone.git && \
cd capstone && \
git checkout tags/4.0 && \
./make.sh && \
./make.sh install
RUN mkdir /pm
WORKDIR /pm