xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-devtools/bison/bison_3.8.2.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "GNU Project parser generator (yacc replacement)"
2*4882a593SmuzhiyunDESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \
3*4882a593Smuzhiyunan LALR(1) or GLR parser for that grammar.  Bison is upward compatible with Yacc: all properly-written Yacc \
4*4882a593Smuzhiyungrammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \
5*4882a593Smuzhiyunlittle trouble."
6*4882a593SmuzhiyunHOMEPAGE = "http://www.gnu.org/software/bison/"
7*4882a593SmuzhiyunLICENSE = "GPL-3.0-only"
8*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
9*4882a593SmuzhiyunSECTION = "devel"
10*4882a593SmuzhiyunDEPENDS = "bison-native flex-native"
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunSRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
13*4882a593Smuzhiyun           file://add-with-bisonlocaledir.patch \
14*4882a593Smuzhiyun           "
15*4882a593SmuzhiyunSRC_URI[sha256sum] = "9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2"
16*4882a593Smuzhiyun
17*4882a593Smuzhiyuninherit autotools gettext texinfo
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun# No point in hardcoding path to m4, just use PATH
20*4882a593SmuzhiyunCACHED_CONFIGUREVARS = "ac_cv_path_M4=m4"
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunPACKAGECONFIG ??= "readline ${@ 'textstyle' if d.getVar('USE_NLS') == 'yes' else ''}"
23*4882a593SmuzhiyunPACKAGECONFIG:class-native ??= ""
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun# Make readline and textstyle optional. There are recipie for these, but leave them
26*4882a593Smuzhiyun# disabled for the native recipe. This prevents host contamination of the native tool.
27*4882a593SmuzhiyunPACKAGECONFIG[readline] = "--with-libreadline-prefix,--without-libreadline-prefix,readline"
28*4882a593SmuzhiyunPACKAGECONFIG[textstyle] = "--with-libtextstyle-prefix,--without-libtextstyle-prefix,gettext"
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun# Include the cached configure variables, configure is really good at finding
31*4882a593Smuzhiyun# libreadline, even if we don't want it.
32*4882a593SmuzhiyunCACHED_CONFIGUREVARS += "${@bb.utils.contains('PACKAGECONFIG', 'readline', '', ' \
33*4882a593Smuzhiyun                           ac_cv_header_readline_history_h=no \
34*4882a593Smuzhiyun                           ac_cv_header_readline_readline_h=no \
35*4882a593Smuzhiyun                           gl_cv_lib_readline=no', d)} \
36*4882a593Smuzhiyun                         ${@bb.utils.contains('PACKAGECONFIG', 'textstyle', '', ' \
37*4882a593Smuzhiyun                           ac_cv_libtextstyle=no', d)}"
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun# The automatic m4 path detection gets confused, so force the right value
40*4882a593Smuzhiyunacpaths = "-I ./m4"
41*4882a593Smuzhiyun
42*4882a593Smuzhiyundo_compile:prepend() {
43*4882a593Smuzhiyun	for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done
44*4882a593Smuzhiyun}
45*4882a593Smuzhiyun
46*4882a593Smuzhiyundo_install:append:class-native() {
47*4882a593Smuzhiyun	create_wrapper ${D}/${bindir}/bison \
48*4882a593Smuzhiyun		BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison
49*4882a593Smuzhiyun}
50*4882a593Smuzhiyundo_install:append:class-nativesdk() {
51*4882a593Smuzhiyun	create_wrapper ${D}/${bindir}/bison \
52*4882a593Smuzhiyun		BISON_PKGDATADIR=${datadir}/bison
53*4882a593Smuzhiyun}
54*4882a593SmuzhiyunBBCLASSEXTEND = "native nativesdk"
55