webfpga / icestorm-server

IceStorm Synthesis Server (Node.js) and Command-Line Client (Python)
MIT License
7 stars 2 forks source link

yosys not installed on the docker image #2

Open silky opened 4 years ago

silky commented 4 years ago

running the docker, then running the client, i receive the following error:

yosys -p "synth_ice40 -top fpga_top -json /tmp/icestorm-server_Ix8q3g/out.json" /tmp/icestorm-server_Ix8q3g/*.v
/bin/sh: 1: yosys: not found
make: *** [Makefile:8: all] Error 127
make exit code = 2
synthesis failed
error: unable to synthesize synthesis failed

it seems yosys isn't in the docker image. i'm assuming it should be, right?

silky commented 4 years ago

i hacked together one that works:

FROM ubuntu:16.04

# yosys
RUN apt-get update && apt-get install -y build-essential clang bison flex \
    libreadline-dev gawk tcl-dev libffi-dev git \
    graphviz xdot pkg-config python3 libboost-system-dev \
    libboost-python-dev libboost-filesystem-dev zlib1g-dev nodejs npm

RUN git clone https://github.com/YosysHQ/yosys.git

WORKDIR yosys

RUN make
RUN make install

# icestorm - http://www.clifford.at/icestorm/
# TODO: Pin to commit - d12308775684cf43ab923227235b4ad43060015e
RUN apt-get update && apt-get -y install build-essential clang bison flex libreadline-dev \
                     gawk tcl-dev libffi-dev git mercurial \
                     xdot pkg-config python python3 libftdi-dev \
                     python3-dev libboost-all-dev cmake libeigen3-dev
WORKDIR /
RUN git clone https://github.com/cliffordwolf/icestorm.git icestorm
WORKDIR icestorm
RUN make -j$(nproc)
RUN make install

# nextpnr  - https://github.com/YosysHQ/nextpnr
# TODO: Pin to commit - be607c10a860c1043dc7554463a8e788759809d8
WORKDIR /
RUN git clone https://github.com/YosysHQ/nextpnr.git
WORKDIR nextpnr
RUN echo "ENABLE_LANGUAGE(C)">foo.txt
RUN cat CMakeLists.txt>>foo.txt
RUN mv foo.txt CMakeLists.txt
RUN cmake . -DARCH=ice40 -DBUILD_GUI=OFF
RUN make
RUN make install

# Node.js for the web server
RUN apt-get update && apt-get install -y curl

# Install NPM dependencies
WORKDIR /app
COPY ./server/package*.json ./

# Get the right version of node
RUN npm install
RUN npm install -g n
RUN n 12.18.3

# Copy Node.js application source
COPY ./server/app.js .
COPY ./server/synthesis/ ./synthesis

# Start Node.js app
CMD ["node", "app.js"]

it needs significant clean-up; but at least it has the essentials (and it works!)

silky commented 4 years ago

ah ...........

i should've looked in toolchain ...