mirror of
https://github.com/verilator/verilator.git
synced 2025-01-06 06:37:45 +00:00
58 lines
1.7 KiB
Docker
58 lines
1.7 KiB
Docker
# DESCRIPTION: Dockerfile for image to run Verilator inside
|
|
#
|
|
# Copyright 2020 by Stefan Wallentowitz. This program is free software; you
|
|
# can redistribute it and/or modify it under the terms of either the GNU
|
|
# Lesser General Public License Version 3 or the Perl Artistic License
|
|
# Version 2.0.
|
|
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
FROM ubuntu:22.04
|
|
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive \
|
|
&& apt-get install --no-install-recommends -y \
|
|
autoconf \
|
|
bc \
|
|
bison \
|
|
build-essential \
|
|
ca-certificates \
|
|
ccache \
|
|
flex \
|
|
git \
|
|
help2man \
|
|
libfl2 \
|
|
libfl-dev \
|
|
libgoogle-perftools-dev \
|
|
numactl \
|
|
perl \
|
|
perl-doc \
|
|
python3 \
|
|
zlib1g \
|
|
zlib1g-dev \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ARG REPO=https://github.com/verilator/verilator
|
|
ARG SOURCE_COMMIT=master
|
|
|
|
WORKDIR /tmp
|
|
|
|
# Add an exception for the linter, we want to cd here in one layer
|
|
# to reduce the number of layers (and thereby size).
|
|
# hadolint ignore=DL3003
|
|
RUN git clone "${REPO}" verilator && \
|
|
cd verilator && \
|
|
git checkout "${SOURCE_COMMIT}" && \
|
|
autoconf && \
|
|
./configure && \
|
|
make && \
|
|
make install && \
|
|
cd .. && \
|
|
rm -r verilator
|
|
|
|
COPY verilator-wrap.sh /usr/local/bin/verilator-wrap.sh
|
|
|
|
WORKDIR /work
|
|
|
|
ENTRYPOINT [ "/usr/local/bin/verilator-wrap.sh" ]
|