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