Hi Stuart, On 08/03/18 17:56, Alessandro DE LAURENZIS wrote:
Hi Stuart,On 08/03/18 13:21, Stuart Henderson wrote:On 2018/08/03 12:23, Alessandro DE LAURENZIS wrote:I think we need the line: FAKE_FLAGS = PREFIX="${LOCALBASE}" since PREFIX is explicitly set to /usr/local in upstream Makefile when undefined.That should probably be PREFIX="${TRUEPREFIX}"FixedFinally, portcheck gives the following message: Python module without compiled version, consider using ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py: share/yosys/python3/smtio.py cad/yosys I don't know if it's acceptable (and, if not, how to remove it...)Python normally creates pyc files for imported modules if the directory is writable. We pre-create these so that if e.g. someone runs the program as root, we don't get stray pyc files left behind after uninstall. You can remove it by using ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py to create the pyc file.Added it in post-install target: post-install: ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \ ${PREFIX}/share/yosys/python3- compiler name forced to eg++;Don't hardcode this, use MAKE_FLAGS= CXX="${CXX}" etc.FixedDifferent story for kernel/yosys.cc: - we need to include sys/wait.h;- code requires the process executable base path; Linux has /proc/self/exe and I see that there are solutions for APPLE and WIN32 too; OpenBSD doesn'thave a ready-to-use function; this is the closest thing that comes to my mind: std::string proc_self_dirname() { // No direct way to get the process executable base path char path[PATH_MAX]; ssize_t buflen = sizeof(path); char *res = realpath(getenv("_"), path); if (!res) { log_error("getenv(\"_\") failed: %s\n",strerror(errno)); } *(strrchr(path, '/')+1) = '\0'; while (buflen > 0 && path[buflen-1] != '/') buflen--; return std::string(path, buflen); } If you think that's acceptable, I'll submit the patch upstream.IMO hardcoding the path is the most sensible way for ports.As discussed (thanks for your explanation), I patched to use ${PREFIX} and then added:pre-build: ${SUBST_CMD} ${WRKSRC}/kernel/yosys.ccpdflatex is used to compile manual, application notes and presentationsduring build; it's part of print/texlive_base, which is a large port; shouldwe stay with it or do you have alternatives to suggest?That's not really a problem. If it needs pdflatex, list the dependency.>> pdflatex is used to compile manual, application notes and presentationsduring build; it's part of print/texlive_base, which is a large port; shouldwe stay with it or do you have alternatives to suggest?That's not really a problem. If it needs pdflatex, list the dependency.Actually I noticed that the corresponding target isn't run by default. Should I force it? I mean, is the extra documentation normally installed in other ports?New tarball attached.
There is a local copy of MiniSat in ./libs, so I tweaked a bit the license markers:
# ISC (yosys), MIT (MiniSat) New tarball attached. -- Alessandro DE LAURENZIS [mailto:[email protected]] Web: http://www.atlantide.t28.net LinkedIn: http://it.linkedin.com/in/delaurenzis
yosys.tar.gz
Description: application/gzip
