Subject: build depends on bison or yacc?
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 07/30/2003 04:23:22
Many packages have a BUILD_DEPENDS on bison.
And some software just needs a BSD yacc to build (like flex and
openmotif).
It may be useful to have a pkgsrc/mk/yacc.mk that sets YACC.
If it can't find a yacc, then it could do the BUILD_DEPENDS on bison and
set YACC to "bison -y".
I don't think it should do a BUILD_DEPENDS if the system already has a
bison or BSD yacc (and as long as it works).
I noticed a while ago that flex needs a yacc to build (PR #20772). And I
also packaged man-db which needs a yacc. (And my XFree86 package used a
yacc too.) And now I packaged mit-krb5 that also wants a yacc.
A basic idea is here:
# $NetBSD$
#
# This Makefile fragment is included by packages that need a yacc
# at build time.
.if !defined(YACC_MK)
YACC_MK= # defined
.if exists(/usr/bin/yacc)
YACC= /usr/bin/yacc
.elif exists(/usr/bin/bison)
YACC= /usr/bin/bison -y
.else
BUILD_DEPENDS+= bison-[0-9]*:../../devel/bison
YACC= ${LOCALBASE}/bin/bison -y
.endif
.endif # YACC_MK
Also, it could have an option to choose to use byacc (I packaged it in
early April) instead of bison. Then all the packages that depend on bison
at a build time could be tested with a BSD yacc by using something like
USE_BSD_YACC=YES (in mk.conf) and
#include "../../mk/yacc.mk"
to see if they really need bison or not.
Any thoughts?
Jeremy C. Reed
http://bsd.reedmedia.net/