aboutsummaryrefslogtreecommitdiff
path: root/cad/verilator/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'cad/verilator/Makefile')
-rw-r--r--cad/verilator/Makefile52
1 files changed, 38 insertions, 14 deletions
diff --git a/cad/verilator/Makefile b/cad/verilator/Makefile
index 9db8ae1b8b26..ba58ca97f31e 100644
--- a/cad/verilator/Makefile
+++ b/cad/verilator/Makefile
@@ -1,10 +1,11 @@
PORTNAME= verilator
DISTVERSIONPREFIX= v
-DISTVERSION= 4.216
+DISTVERSION= 5.024
CATEGORIES= cad
MAINTAINER= yuri@FreeBSD.org
COMMENT= Synthesizable Verilog to C++ compiler
+WWW= https://www.veripool.org/projects/verilator/wiki/Intro
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
@@ -13,23 +14,37 @@ BROKEN_i386= see https://github.com/verilator/verilator/issues/3037
BUILD_DEPENDS= autoconf>0:devel/autoconf \
bash:shells/bash \
- ${LOCALBASE}/bin/ar:devel/binutils
-LIB_DEPENDS= libsystemc.so:devel/systemc
-RUN_DEPENDS= gmake:devel/gmake # verilator runs gmake for the --hierarchical option when the 'gmake' method is chosen
-
-USES= bison compiler:c++14-lang gmake localbase:ldflags pathfix perl5 python:build,run,test shebangfix tar:tgz
+ ${LOCALBASE}/bin/ar:devel/binutils \
+ help2man:misc/help2man
+LIB_DEPENDS= libsystemc.so:devel/systemc # systemc is only added to share/verilator/include/verilated.mk for use during verilation, verilator's own binaries aren't linked with systemc
+RUN_DEPENDS= ${LOCALBASE}/bin/ar:devel/binutils \
+ gmake:devel/gmake # verilator runs gmake for the --hierarchical option when the 'gmake' method is chosen
+
+USES= bison compiler:c++17-lang gmake localbase:ldflags pathfix perl5 python:build,run,test shebangfix tar:tgz
+USE_CXXSTD= c++17 # needs to match that of devel/systemc to avoid mismatches like https://github.com/verilator/verilator/issues/4499
USE_GITHUB= yes
-SHEBANG_FILES= bin/verilator_ccache_report bin/verilator_profcfunc bin/verilator_gantt
+SHEBANG_FILES= bin/verilator_ccache_report \
+ bin/verilator_difftree \
+ bin/verilator_gantt \
+ bin/verilator_includer \
+ bin/verilator_includer \
+ bin/verilator_profcfunc
GNU_CONFIGURE= yes
+GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
CONFIGURE_ENV= INSTALL_PROGRAM="${INSTALL_SCRIPT}"
-CONFIGURE_ARGS= AR=${LOCALBASE}/bin/ar
+CONFIGURE_ARGS= AR=${LOCALBASE}/bin/ar \
+ PYTHON3=${PYTHON_CMD}
CONFIGURE_SHELL= ${LOCALBASE}/bin/bash # see https://github.com/verilator/verilator/issues/3132
TEST_TARGET= test
-BINARY_ALIAS= make=${GMAKE} python3=${PYTHON_CMD} # aliasas are only for tests
+BINARY_ALIAS= make=${GMAKE} \
+ python3=${PYTHON_CMD} \
+ git=false
+
+MAKE_JOBS_UNSAFE= yes # build on 1 CPU because many compile jobs are over 10GB and they can likely cause out-of-memory issues
OPTIONS_DEFINE= INSTALL_DBG_EXECUTABLES LEAK_CHECKS
OPTIONS_SUB= yes
@@ -41,17 +56,26 @@ LEAK_CHECKS_CXXFLAGS= -DVL_LEAK_CHECKS
LEAK_CHECKS_BROKEN= compilation will be fixed in the next release
post-patch:
- ${REINPLACE_CMD} -e 's|@pkgconfigdir@|${PREFIX}/libdata/pkgconfig|' \
- ${WRKSRC}/Makefile.in
+ @${REINPLACE_CMD} -e 's|@pkgconfigdir@|${PREFIX}/libdata/pkgconfig|' \
+ ${WRKSRC}/Makefile.in
pre-configure:
cd ${WRKSRC} && \
autoconf
-post-build:
- @${STRIP_CMD} ${WRKSRC}/bin/verilator_bin
+post-install:
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/share/verilator/bin/verilator_bin
+
+post-install-INSTALL_DBG_EXECUTABLES-on:
+ @${STRIP_CMD} \
+ ${STAGEDIR}${PREFIX}/share/verilator/bin/verilator_bin_dbg \
+ ${STAGEDIR}${PREFIX}/share/verilator/bin/verilator_coverage_bin_dbg
post-install-INSTALL_DBG_EXECUTABLES-off:
- @${RM} ${STAGEDIR}${PREFIX}/bin/verilator_bin_dbg ${STAGEDIR}${PREFIX}/bin/verilator_coverage_bin_dbg
+ @${RM} \
+ ${STAGEDIR}${PREFIX}/bin/verilator_bin_dbg \
+ ${STAGEDIR}${PREFIX}/bin/verilator_coverage_bin_dbg \
+ ${STAGEDIR}${PREFIX}/share/verilator/bin/verilator_bin_dbg \
+ ${STAGEDIR}${PREFIX}/share/verilator/bin/verilator_coverage_bin_dbg
.include <bsd.port.mk>