On 2018/08/10 08:41, Alessandro DE LAURENZIS wrote:
> Hi Brian,
> 
> On 08/10/18 06:20, Brian Callahan wrote:
> > 
> > 
> > On 8/10/2018 12:05 AM, Alessandro DE LAURENZIS wrote:
> > > Hi Brian,
> > > 
> > > [...]
> > > > Could you explain why ports-gcc is needed? Is there a reason that
> > > > gcc-4.9.4 would be preferred over clang-6.0.0?
> > > > Usually, if you have a COMPILER line, you have a comment above it
> > > > with a reason why. I don't know if it's true for this port, but
> > > > something like:
> > > > # C++11
> > > > COMPILER = base-clang ports-gcc
> > > > 
> > > > is usually what is wanted here.
> > > 
> > > Actually, when compiled with base-clang, I was observing some
> > > segmentation faults during tests (the first in test/fsm no. 43).
> > > 
> > > After the upgrade to a more recent snapshot (I'm currently using the
> > > one dated 4th Aug), the test suite completes without errors even using
> > > clang. So, I agree with your suggestion.
> > > 
> > 
> > Regardless, if you have a COMPILER line, you should leave a comment
> > saying why. There's no way someone would know there were problems unless
> > you tell us.
> > 
> > > Please also note that we need a pre-build "conditional", since the
> > > "config-" target in upstream Makefile is different for clang
> > > (config-clang) and gcc (config-gcc-4.8); I defined the variable
> > > CONFIG_TARGET and set it after the ".include <bsd.port.mk>", according
> > > to the value of CHOSEN_COMPILER:
> > > 
> > > [... snip ...]
> > > pre-build:
> > >      ${SUBST_CMD} ${WRKSRC}/kernel/yosys.cc
> > >      @cd ${WRKBUILD} && exec ${MAKE_PROGRAM} config-$(CONFIG_TARGET)
> > > 
> > > [...]
> > > 
> > > .include <bsd.port.mk>
> > > 
> > > .if ${CHOSEN_COMPILER} == "base-clang"
> > > CONFIG_TARGET = clang
> > > .else
> > > CONFIG_TARGET = gcc-4.8
> > > .endif
> > > [... snip ...]
> > > 
> > > Please confirm that this is acceptable (or suggest any wiser
> > > alternatives).
> > > 
> > 
> > It's late, so I'll have to revisit this bit in the morning, but there
> > are examples where we simply just pick one single config target (I think
> > in my stuff I always pick clang and massage it to also work with gcc).
> > I'll find you a more concrete example of this tomorrow.
> > 
> > > 
> > > [...]
> > > > Some other notes:
> > > > 
> > > > As I understand Makefile.template, you should prefer the GH_*
> > > > variables for this port, since everything is auto-generated anyway.
> > > > It will also let you get rid of your VERSION variable, since the GH_*
> > > > variables will take care of it.
> > > 
> > > I was following the comment in Makefile.template:
> > > 
> > > [... snip ...]
> > > #
> > > # github:
> > > # /releases/ -> preferred. ignore GH_*, just use MASTER_SITES and
> > > DISTNAME.
> > > # /archive/ ->  GH_ACCOUNT and GH_PROJECT, plus either GH_TAGNAME or
> > > GH_COMMIT.
> > > #
> > > [... snip ...]
> > > 
> > > (in this case we have a release). I see a bunch of other ports doing
> > > similar things (e.g., games/minetest, textproc/py-rdflib, ...).
> > > 
> > 
> > Huh? You don't have a release. Your MASTER_SITES line clearly has
> > /archive/ in it. Github is needlessly confusing, and it is possible that
> > comment could be worded better because I can see where the confusion
> > comes from.
> > 
> > > Should I use GH_TAGNAME instead?
> > > 
> > 
> > In this case, yes.
> 
> Got it. Please see the attached tarball.
> 
> Waiting for your further feedback.
> 
> > 
> > > > Your LDFLAGS line might be better located as a part of your
> > > > MAKE_FLAGS line.
> > > 
> > > Done.
> > > 
> > > Updated tarball enclosed.
> > > 
> > 
> > Thanks. I'll take a closer look at this tomorrow. But at a quick glance,
> > if we decide to keep it, that conditional at the very bottom is going to
> > have to be pulled up above pre-build.
> 
> I'm not a make expert at all, but it seems I can't:
> 
> [... snip ...]
> *** Parse error in /usr/ports/mystuff/cad/yosys: Malformed conditional
> (${CHOSEN_COMPILER} == "base-clang") (Makefile:54)
> *** Parse error: Need an operator in '"base-clang"' (Makefile:54)
> [... snip ...]
> 
> I found x11/vlc where a similar conditional is done after the .include

Save trouble, it's not needed. These config options don't do anything useful.
Still building but here's a diff on top of your last tar which fixes a few
little issues (one of which was failure to fetch the tarball from MASTER_SITES 
:)


diff --git a/Makefile b/Makefile
index 06e33f6..e596518 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,12 @@
 # $OpenBSD$
 
 COMMENT =      framework for Verilog RTL synthesis
+
+GH_ACCOUNT =   YosysHQ
+GH_PROJECT =   yosys
+GH_TAGNAME =   yosys-0.7
+DISTNAME =     ${GH_TAGNAME}
+
 CATEGORIES =   cad
 
 HOMEPAGE =     http://www.clifford.at/yosys/
@@ -9,35 +15,30 @@ MAINTAINER = Alessandro De Laurenzis 
<jus...@atlantide.t28.net>
 # ISC (yosys), MIT (MiniSat)
 PERMIT_PACKAGE_CDROM = Yes
 
-WANTLIB +=     ${COMPILER_LIBCXX} c curses m readline tcl85 ffi
-
-GH_ACCOUNT =   YosysHQ
-GH_PROJECT =   yosys
-GH_TAGNAME =   0.7
+WANTLIB +=     ${COMPILER_LIBCXX} ${MODTCL_WANTLIB} c curses m readline ffi
 
 # C++11
 COMPILER =     base-clang ports-gcc
 
-MODULES =      lang/tcl lang/python
+MODULES =      lang/python \
+               lang/tcl
 MODPY_VERSION =        ${MODPY_DEFAULT_VERSION_3}
+CONFIGURE_STYLE = none
 
-BUILD_DEPENDS =        ${MODTCL_BUILD_DEPENDS} \
-               devel/bison \
+BUILD_DEPENDS =        devel/bison \
                shells/bash
 
-RUN_DEPENDS =  ${MODTCL_RUN_DEPENDS} \
+RUN_DEPENDS =  cad/abc \
                math/graphviz \
-               cad/abc \
                shells/bash
 
-LIB_DEPENDS =  devel/libffi
+LIB_DEPENDS =  ${MODTCL_LIB_DEPENDS} \
+               devel/libffi
 
-TEST_DEPENDS = lang/iverilog \
-               cad/abc \
+TEST_DEPENDS = cad/abc \
+               lang/iverilog \
                shells/bash
 
-CONFIGURE_STYLE =      none
-
 USE_GMAKE =    Yes
 MAKE_FLAGS =   CXX="${CXX}" LD="${CXX} -L${LOCALBASE}/lib"
 
@@ -49,20 +50,12 @@ TEST_ENV =  MAKE=${MAKE_PROGRAM}
 
 FAKE_FLAGS =   PREFIX="${TRUEPREFIX}"
 
-WRKDIST =      ${WRKDIR}/yosys-yosys-${GH_TAGNAME}
-
-pre-build:
-       ${SUBST_CMD} ${WRKSRC}/kernel/yosys.cc
-       @cd ${WRKBUILD} && exec ${MAKE_PROGRAM} config-$(CONFIG_TARGET)
+do-configure:
+       @${SUBST_CMD} ${WRKSRC}/kernel/yosys.cc
+       @cd ${WRKBUILD} && exec ${MAKE_PROGRAM} config-gcc
 
 post-install:
        ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \
            ${PREFIX}/share/yosys/python3
 
 .include <bsd.port.mk>
-
-.if ${CHOSEN_COMPILER} == "base-clang"
-CONFIG_TARGET = clang
-.else
-CONFIG_TARGET = gcc-4.8
-.endif

Reply via email to