diff options
-rw-r--r-- | ABOUT-NLS | 1327 | ||||
-rw-r--r-- | CODE_OF_CONDUCT.md | 5 | ||||
-rw-r--r-- | ChangeLog | 9721 | ||||
-rwxr-xr-x | build-aux/config.rpath | 672 | ||||
-rw-r--r-- | build-aux/ltmain.sh | 11156 | ||||
-rwxr-xr-x | build-aux/missing | 215 | ||||
-rwxr-xr-x | build-aux/test-driver | 148 | ||||
-rwxr-xr-x | build-aux/ylwrap | 247 | ||||
-rw-r--r-- | control.ac | 1 | ||||
-rw-r--r-- | doc/.gitignore | 27 | ||||
-rw-r--r-- | lib/.gitignore | 3 | ||||
-rw-r--r-- | lib/Makefile.in | 626 | ||||
-rw-r--r-- | m4/gettext.m4 | 401 | ||||
-rw-r--r-- | m4/iconv.m4 | 268 | ||||
-rw-r--r-- | m4/intlmacosx.m4 | 56 | ||||
-rw-r--r-- | m4/lib-ld.m4 | 119 | ||||
-rw-r--r-- | m4/lib-link.m4 | 777 | ||||
-rw-r--r-- | m4/lib-prefix.m4 | 224 | ||||
-rw-r--r-- | m4/libtool.m4 | 8387 | ||||
-rw-r--r-- | m4/ltoptions.m4 | 437 | ||||
-rw-r--r-- | m4/ltsugar.m4 | 124 | ||||
-rw-r--r-- | m4/ltversion.m4 | 23 | ||||
-rw-r--r-- | m4/lt~obsolete.m4 | 99 | ||||
-rw-r--r-- | m4/nls.m4 | 32 | ||||
-rw-r--r-- | m4/po.m4 | 453 | ||||
-rw-r--r-- | m4/progtest.m4 | 91 | ||||
-rw-r--r-- | po/.gitignore | 18 | ||||
-rw-r--r-- | po/Makefile.in.in | 444 | ||||
-rw-r--r-- | po/Rules-quot | 47 | ||||
-rw-r--r-- | po/boldquot.sed | 10 | ||||
-rw-r--r-- | po/ca.gmo | bin | 0 -> 16489 bytes | |||
-rw-r--r-- | po/ca.po | 27 | ||||
-rw-r--r-- | po/da.gmo | bin | 0 -> 15334 bytes | |||
-rw-r--r-- | po/da.po | 29 | ||||
-rw-r--r-- | po/de.gmo | bin | 0 -> 16289 bytes | |||
-rw-r--r-- | po/de.po | 27 | ||||
-rw-r--r-- | po/en@boldquot.gmo | bin | 0 -> 21089 bytes | |||
-rw-r--r-- | po/en@boldquot.header | 25 | ||||
-rw-r--r-- | po/en@boldquot.po | 966 | ||||
-rw-r--r-- | po/en@quot.gmo | bin | 0 -> 20989 bytes | |||
-rw-r--r-- | po/en@quot.header | 22 | ||||
-rw-r--r-- | po/en@quot.po | 963 | ||||
-rw-r--r-- | po/eo.gmo | bin | 0 -> 15324 bytes | |||
-rw-r--r-- | po/eo.po | 27 | ||||
-rw-r--r-- | po/es.gmo | bin | 0 -> 12711 bytes | |||
-rw-r--r-- | po/es.po | 45 | ||||
-rw-r--r-- | po/fi.gmo | bin | 0 -> 16269 bytes | |||
-rw-r--r-- | po/fi.po | 29 | ||||
-rw-r--r-- | po/flex.pot | 859 | ||||
-rw-r--r-- | po/fr.gmo | bin | 0 -> 16544 bytes | |||
-rw-r--r-- | po/fr.po | 35 | ||||
-rw-r--r-- | po/ga.gmo | bin | 0 -> 15241 bytes | |||
-rw-r--r-- | po/ga.po | 27 | ||||
-rw-r--r-- | po/hr.gmo | bin | 0 -> 3452 bytes | |||
-rw-r--r-- | po/hr.po | 27 | ||||
-rw-r--r-- | po/insert-header.sin | 23 | ||||
-rw-r--r-- | po/ko.gmo | bin | 0 -> 10244 bytes | |||
-rw-r--r-- | po/ko.po | 25 | ||||
-rw-r--r-- | po/nl.gmo | bin | 0 -> 15851 bytes | |||
-rw-r--r-- | po/nl.po | 31 | ||||
-rw-r--r-- | po/pl.gmo | bin | 0 -> 15578 bytes | |||
-rw-r--r-- | po/pl.po | 27 | ||||
-rw-r--r-- | po/pt_BR.gmo | bin | 0 -> 16171 bytes | |||
-rw-r--r-- | po/pt_BR.po | 29 | ||||
-rw-r--r-- | po/quot.sed | 6 | ||||
-rw-r--r-- | po/remove-potcdate.sin | 19 | ||||
-rw-r--r-- | po/ro.gmo | bin | 0 -> 14577 bytes | |||
-rw-r--r-- | po/ro.po | 25 | ||||
-rw-r--r-- | po/ru.gmo | bin | 0 -> 20820 bytes | |||
-rw-r--r-- | po/ru.po | 29 | ||||
-rw-r--r-- | po/sr.gmo | bin | 0 -> 19894 bytes | |||
-rw-r--r-- | po/sr.po | 27 | ||||
-rw-r--r-- | po/stamp-po | 1 | ||||
-rw-r--r-- | po/sv.gmo | bin | 0 -> 14252 bytes | |||
-rw-r--r-- | po/sv.po | 31 | ||||
-rw-r--r-- | po/tr.gmo | bin | 0 -> 14461 bytes | |||
-rw-r--r-- | po/tr.po | 25 | ||||
-rw-r--r-- | po/vi.gmo | bin | 0 -> 17607 bytes | |||
-rw-r--r-- | po/vi.po | 33 | ||||
-rw-r--r-- | po/zh_CN.gmo | bin | 0 -> 14757 bytes | |||
-rw-r--r-- | po/zh_CN.po | 31 | ||||
-rw-r--r-- | po/zh_TW.gmo | bin | 0 -> 14849 bytes | |||
-rw-r--r-- | po/zh_TW.po | 29 | ||||
-rw-r--r-- | src/.gitignore | 12 | ||||
-rw-r--r-- | src/Makefile.in | 1731 | ||||
-rw-r--r-- | src/parse.c | 2942 | ||||
-rw-r--r-- | src/parse.h | 154 | ||||
-rw-r--r-- | src/scan.c | 5092 | ||||
-rw-r--r-- | src/skel.c | 3820 | ||||
-rw-r--r-- | src/stage1scan.c | 5078 | ||||
-rw-r--r-- | src/stage1scan.l | 1011 |
91 files changed, 59290 insertions, 207 deletions
diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..4f50fb5 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,1327 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +1.1 Quick configuration advice +============================== + +If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +1.2 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the included GNU +`gettext' library will be used. This library is wholly contained +within this package, usually in the `intl/' subdirectory, so prior +installation of the GNU `gettext' package is _not_ required. +Installers may use special options at configuration time for changing +the default behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will, respectively, bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might not be desirable. You should use +the more recent version of the GNU `gettext' library. I.e. if the file +`intl/VERSION' shows that the library which comes with this package is +more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.3 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. If you happen to have the `LC_ALL' or some other +`LC_xxx' environment variables set, you should unset them before +setting `LANG', otherwise the setting of `LANG' will not have the +desired effect. Here `LL' is an ISO 639 two-letter language code, and +`CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your language by running the +command `locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +1.4 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://translationproject.org/', in the "Teams" area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `coordinator@translationproject.org' to +reach the coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. + +1.5 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of May 2010. +The matrix shows, in regard of each package, for which languages PO +files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am ar as ast az be be@latin bg bn_IN bs ca crh + +---------------------------------------------------+ + a2ps | [] [] | + aegis | | + ant-phone | | + anubis | | + aspell | [] [] | + bash | | + bfd | | + bibshelf | [] | + binutils | | + bison | | + bison-runtime | [] | + bluez-pin | [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] [] | + cpio | | + cppi | | + cpplib | [] | + cryptsetup | | + dfarc | | + dialog | [] [] | + dico | | + diffutils | [] | + dink | | + doodle | | + e2fsprogs | [] | + enscript | [] | + exif | | + fetchmail | [] | + findutils | [] | + flex | [] | + freedink | | + gas | | + gawk | [] [] | + gcal | [] | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] [] | + gettext-tools | [] [] | + gip | [] | + gjay | | + gliv | [] | + glunarclock | [] [] | + gnubiff | | + gnucash | [] | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | | + gold | | + gpe-aerial | | + gpe-beam | | + gpe-bluetooth | | + gpe-calendar | | + gpe-clock | [] | + gpe-conf | | + gpe-contacts | | + gpe-edit | | + gpe-filemanager | | + gpe-go | | + gpe-login | | + gpe-ownerinfo | [] | + gpe-package | | + gpe-sketchbook | | + gpe-su | [] | + gpe-taskmanager | [] | + gpe-timesheet | [] | + gpe-today | [] | + gpe-todo | | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | [] [] | + gsasl | | + gss | | + gst-plugins-bad | [] | + gst-plugins-base | [] | + gst-plugins-good | [] | + gst-plugins-ugly | [] | + gstreamer | [] [] [] | + gtick | | + gtkam | [] | + gtkorphan | [] | + gtkspell | [] [] [] | + gutenprint | | + hello | [] | + help2man | | + hylafax | | + idutils | | + indent | [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | | + iso_639 | [] [] [] [] [] | + iso_639_3 | [] | + jwhois | | + kbd | | + keytouch | [] | + keytouch-editor | | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | | + ld | [] | + leafpad | [] [] | + libc | [] [] | + libexif | () | + libextractor | | + libgnutls | | + libgpewidget | | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | [] | + libidn | | + lifelines | | + liferea | [] [] | + lilypond | | + linkdr | [] | + lordsawar | | + lprng | | + lynx | [] | + m4 | | + mailfromd | | + mailutils | | + make | | + man-db | | + man-db-manpages | | + minicom | | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | | + psmisc | | + pspp | [] | + pwdutils | | + radius | [] | + recode | [] [] | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] | + sharutils | [] [] | + shishi | | + skencil | | + solfege | | + solfege-manual | | + soundtracker | | + sp | | + sysstat | | + tar | [] | + texinfo | | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] [] | + wyslij-po | | + xchat | [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +---------------------------------------------------+ + af am ar as ast az be be@latin bg bn_IN bs ca crh + 6 0 2 3 19 1 11 3 28 3 1 38 5 + + cs da de el en en_GB en_ZA eo es et eu fa fi + +-------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] () | + anubis | [] [] [] | + aspell | [] [] [] [] [] | + bash | [] [] [] [] | + bfd | [] [] | + bibshelf | [] [] [] [] | + binutils | [] [] | + bison | [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] | + bombono-dvd | [] [] | + buzztard | [] [] [] | + cflow | [] [] [] | + clisp | [] [] [] [] | + coreutils | [] [] [] [] | + cpio | [] | + cppi | [] | + cpplib | [] [] [] | + cryptsetup | [] | + dfarc | [] [] [] [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] [] | + dink | [] [] [] | + doodle | [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + exif | () [] [] [] | + fetchmail | [] [] () [] [] [] | + findutils | [] [] [] [] | + flex | [] [] [] | + freedink | [] [] [] [] | + gas | [] | + gawk | [] [] [] | + gcal | [] | + gcc | [] [] | + gettext-examples | [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] [] | + gip | [] [] [] [] [] | + gjay | [] [] | + gliv | [] [] [] [] | + glunarclock | [] [] [] | + gnubiff | () | + gnucash | [] () () () () () | + gnuedu | [] [] | + gnulib | [] [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] [] | + gpe-aerial | [] [] [] [] [] | + gpe-beam | [] [] [] [] [] | + gpe-bluetooth | [] [] [] | + gpe-calendar | [] [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] [] [] | + gpe-contacts | [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] [] | + gpe-go | [] [] [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] [] [] [] | + gpe-sketchbook | [] [] [] [] [] | + gpe-su | [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] | + gpe-today | [] [] [] [] [] | + gpe-todo | [] [] [] [] | + gphoto2 | [] [] () [] [] [] [] | + gprof | [] [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] [] | + grub | [] [] [] | + gsasl | [] [] | + gss | [] | + gst-plugins-bad | [] [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] [] | + gtick | [] () [] [] | + gtkam | [] [] () [] [] | + gtkorphan | [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] | + gutenprint | [] [] [] [] | + hello | [] [] [] [] [] | + help2man | [] [] | + hylafax | [] [] | + idutils | [] [] [] | + indent | [] [] [] [] [] [] [] [] | + iso_15924 | [] () [] [] [] | + iso_3166 | [] [] [] () [] [] [] () [] | + iso_3166_2 | () | + iso_4217 | [] [] [] () [] [] [] | + iso_639 | [] [] [] () [] [] [] | + iso_639_3 | | + jwhois | [] [] | + kbd | [] [] [] [] [] | + keytouch | [] [] [] | + keytouch-editor | [] [] [] | + keytouch-keyboa... | [] [] | + klavaro | [] [] [] [] | + latrine | [] () [] | + ld | [] [] [] | + leafpad | [] [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] [] () | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] () | + libgphoto2_port | [] () [] | + libgsasl | [] | + libiconv | [] [] [] [] [] [] | + libidn | [] [] [] [] | + lifelines | [] () | + liferea | [] [] [] [] [] | + lilypond | [] [] [] [] | + linkdr | [] [] [] [] | + lordsawar | [] | + lprng | | + lynx | [] [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | | + mailutils | [] | + make | [] [] [] [] | + man-db | | + man-db-manpages | | + minicom | [] [] [] [] [] | + mkisofs | [] | + myserver | | + nano | [] [] [] [] | + opcodes | [] [] [] | + parted | [] [] | + pies | | + popt | [] [] [] [] [] [] | + psmisc | [] [] [] [] | + pspp | [] | + pwdutils | [] | + radius | [] | + recode | [] [] [] [] [] [] [] | + rosegarden | () () () () | + rpm | [] [] [] | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] | + sharutils | [] [] [] [] [] | + shishi | | + skencil | [] () [] | + solfege | [] [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] [] | + sp | [] | + sysstat | [] [] [] [] | + tar | [] [] [] [] [] | + texinfo | [] [] [] | + tin | [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] [] | + vice | () () | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] [] | + wget | [] [] [] [] | + wyslij-po | [] | + xchat | [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] [] | + +-------------------------------------------------+ + cs da de el en en_GB en_ZA eo es et eu fa fi + 64 105 117 18 1 8 0 28 89 18 19 0 104 + + fr ga gl gu he hi hr hu hy id is it ja ka kn + +------------------------------------------------+ + a2ps | [] [] [] | + aegis | [] [] | + ant-phone | [] [] | + anubis | [] [] [] | + aspell | [] [] [] [] | + bash | [] [] [] | + bfd | [] [] | + bibshelf | [] [] [] [] | + binutils | [] [] | + bison | [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] | + bombono-dvd | | + buzztard | [] | + cflow | [] [] | + clisp | [] | + coreutils | [] [] [] [] [] | + cpio | [] [] [] | + cppi | [] | + cpplib | [] [] | + cryptsetup | [] [] [] | + dfarc | [] [] | + dialog | [] [] [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] [] [] | + dink | [] | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + exif | [] [] [] [] [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] | + freedink | [] [] | + gas | [] [] | + gawk | [] [] [] [] () [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] [] [] | + gip | [] [] [] [] [] | + gjay | | + gliv | () | + glunarclock | [] [] [] | + gnubiff | () [] () | + gnucash | () () () () [] | + gnuedu | [] [] | + gnulib | [] [] [] [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] | + gpe-aerial | [] [] | + gpe-beam | [] [] [] | + gpe-bluetooth | [] [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] | + gpe-conf | [] [] [] | + gpe-contacts | [] [] [] | + gpe-edit | [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] | + gpe-su | [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] [] [] | + gpe-todo | [] [] | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] | + grub | [] [] [] | + gsasl | [] [] [] [] | + gss | [] [] [] [] | + gst-plugins-bad | [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] | + gstreamer | [] [] [] [] | + gtick | [] [] [] [] | + gtkam | [] [] [] [] [] | + gtkorphan | [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] | + gutenprint | [] [] [] | + hello | [] [] | + help2man | [] | + hylafax | [] | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | () [] [] | + iso_3166 | () [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | () [] [] [] | + iso_4217 | () [] [] [] [] | + iso_639 | () [] [] [] [] [] [] [] | + iso_639_3 | () [] [] | + jwhois | [] [] [] [] | + kbd | [] [] | + keytouch | [] [] [] [] [] | + keytouch-editor | [] [] [] [] | + keytouch-keyboa... | [] [] [] [] | + klavaro | [] [] | + latrine | [] [] | + ld | [] [] [] | + leafpad | [] [] [] [] [] [] () | + libc | [] [] [] [] | + libexif | | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] [] | + libgsasl | [] [] [] [] | + libiconv | [] [] [] [] [] | + libidn | [] [] [] | + lifelines | () | + liferea | [] [] [] [] | + lilypond | [] | + linkdr | [] [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] | + man-db | [] [] | + man-db-manpages | [] | + minicom | [] [] [] [] | + mkisofs | [] [] [] | + myserver | | + nano | [] [] [] [] [] | + opcodes | [] [] [] | + parted | [] [] [] [] | + pies | | + popt | [] [] [] [] [] [] [] [] | + psmisc | [] [] | + pspp | | + pwdutils | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] | + rosegarden | () () () () | + rpm | [] [] | + rush | | + sarg | [] | + screem | [] [] | + scrollkeeper | [] [] [] | + sed | [] [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] | + shishi | [] | + skencil | [] | + solfege | [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] | + sp | [] () | + sysstat | [] [] [] [] | + tar | [] [] [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux-ng | [] [] [] [] [] | + vice | () () () | + vmm | [] | + vorbis-tools | [] | + wastesedge | () () | + wdiff | | + wget | [] [] [] [] [] [] [] | + wyslij-po | [] [] | + xchat | [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] | + +------------------------------------------------+ + fr ga gl gu he hi hr hu hy id is it ja ka kn + 121 53 20 4 8 2 5 53 2 120 5 83 66 0 4 + + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + +-----------------------------------------------+ + a2ps | [] | + aegis | | + ant-phone | | + anubis | [] [] | + aspell | [] | + bash | | + bfd | | + bibshelf | [] [] | + binutils | | + bison | [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] | + cpio | | + cppi | | + cpplib | | + cryptsetup | | + dfarc | [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] | + dink | | + doodle | | + e2fsprogs | | + enscript | | + exif | [] | + fetchmail | | + findutils | | + flex | | + freedink | [] | + gas | | + gawk | | + gcal | | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] | + gettext-tools | [] | + gip | [] [] | + gjay | | + gliv | | + glunarclock | [] | + gnubiff | | + gnucash | () () () () | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gold | | + gpe-aerial | [] | + gpe-beam | [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] | + gpe-contacts | [] [] | + gpe-edit | [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] | + gpe-login | [] | + gpe-ownerinfo | [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] | + gpe-timesheet | [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | | + gsasl | | + gss | | + gst-plugins-bad | [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] | + gst-plugins-ugly | [] [] [] [] [] | + gstreamer | | + gtick | | + gtkam | [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | | + hello | [] [] [] | + help2man | | + hylafax | | + idutils | | + indent | | + iso_15924 | [] [] | + iso_3166 | [] [] () [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] | + iso_639 | [] [] | + iso_639_3 | [] | + jwhois | [] | + kbd | | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | [] | + ld | | + leafpad | [] [] [] | + libc | [] | + libexif | | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | | + libidn | | + lifelines | | + liferea | | + lilypond | | + linkdr | | + lordsawar | | + lprng | | + lynx | | + m4 | | + mailfromd | | + mailutils | | + make | [] | + man-db | | + man-db-manpages | | + minicom | [] | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | [] [] [] | + psmisc | | + pspp | | + pwdutils | | + radius | | + recode | | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] | + sed | | + sharutils | | + shishi | | + skencil | | + solfege | [] | + solfege-manual | | + soundtracker | | + sp | | + sysstat | [] | + tar | [] | + texinfo | [] | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] | + wyslij-po | | + xchat | [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +-----------------------------------------------+ + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + 20 5 10 1 12 48 4 2 2 4 24 10 19 3 1 + + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + +---------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] [] | + anubis | [] [] [] | + aspell | [] [] [] [] [] | + bash | [] [] | + bfd | [] | + bibshelf | [] [] | + binutils | [] [] | + bison | [] [] [] | + bison-runtime | [] [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + bombono-dvd | [] () | + buzztard | [] [] | + cflow | [] | + clisp | [] [] | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cppi | [] | + cpplib | [] | + cryptsetup | [] | + dfarc | [] | + dialog | [] [] [] [] | + dico | [] | + diffutils | [] [] [] [] [] [] | + dink | () | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] [] | + exif | [] [] [] () [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] [] [] [] | + freedink | [] [] | + gas | | + gawk | [] [] [] [] | + gcal | | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] | + gip | [] [] [] [] [] | + gjay | | + gliv | [] [] [] [] [] [] | + glunarclock | [] [] [] [] [] | + gnubiff | [] () | + gnucash | [] () () () | + gnuedu | [] | + gnulib | [] [] [] [] | + gnunet | | + gnunet-gtk | | + gnutls | [] [] | + gold | | + gpe-aerial | [] [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] [] | + gpe-contacts | [] [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] [] | + gphoto2 | [] [] [] [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] | + gramadoir | [] [] | + grep | [] [] [] [] | + grub | [] [] [] | + gsasl | [] [] [] [] | + gss | [] [] [] | + gst-plugins-bad | [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] | + gtkam | [] [] [] [] [] [] | + gtkorphan | [] | + gtkspell | [] [] [] [] [] [] [] [] [] [] | + gutenprint | [] [] | + hello | [] [] [] [] | + help2man | [] [] | + hylafax | [] | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | [] [] [] [] | + iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | + iso_3166_2 | [] [] [] | + iso_4217 | [] [] [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] [] [] [] | + iso_639_3 | [] [] | + jwhois | [] [] [] [] | + kbd | [] [] [] | + keytouch | [] [] [] | + keytouch-editor | [] [] [] | + keytouch-keyboa... | [] [] [] | + klavaro | [] [] | + latrine | [] [] | + ld | | + leafpad | [] [] [] [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] () [] | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] | + libidn | [] [] | + lifelines | [] [] | + liferea | [] [] [] [] [] () () [] | + lilypond | [] | + linkdr | [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | [] | + mailutils | [] | + make | [] [] [] [] | + man-db | [] [] [] | + man-db-manpages | [] [] [] | + minicom | [] [] [] [] | + mkisofs | [] [] [] | + myserver | | + nano | [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] [] | + pies | [] | + popt | [] [] [] [] | + psmisc | [] [] [] | + pspp | [] [] | + pwdutils | [] | + radius | [] [] [] | + recode | [] [] [] [] [] [] [] [] | + rosegarden | () () | + rpm | [] [] [] | + rush | [] [] | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] | + skencil | [] [] | + solfege | [] [] [] [] | + solfege-manual | [] [] [] | + soundtracker | [] | + sp | | + sysstat | [] [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] [] | + vice | [] | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] [] [] [] [] [] | + wyslij-po | [] [] [] | + xchat | [] [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] | + +---------------------------------------------------+ + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + 135 10 4 7 105 1 29 61 47 91 3 55 47 8 37 + + sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + +---------------------------------------------------+ + a2ps | [] [] [] [] [] | 27 + aegis | [] | 9 + ant-phone | [] [] [] [] | 9 + anubis | [] [] [] [] | 15 + aspell | [] [] [] | 20 + bash | [] [] | 11 + bfd | [] | 6 + bibshelf | [] [] [] | 16 + binutils | [] [] | 8 + bison | [] [] | 12 + bison-runtime | [] [] [] [] [] [] | 29 + bluez-pin | [] [] [] [] [] [] [] [] | 37 + bombono-dvd | [] | 4 + buzztard | [] | 7 + cflow | [] [] [] | 9 + clisp | | 10 + coreutils | [] [] [] [] | 22 + cpio | [] [] [] [] [] [] | 13 + cppi | [] [] | 5 + cpplib | [] [] [] [] [] [] | 13 + cryptsetup | [] [] | 7 + dfarc | [] | 9 + dialog | [] [] [] [] [] [] [] | 30 + dico | [] | 2 + diffutils | [] [] [] [] [] [] | 30 + dink | | 4 + doodle | [] [] | 7 + e2fsprogs | [] [] [] | 11 + enscript | [] [] [] [] | 17 + exif | [] [] [] | 16 + fetchmail | [] [] [] | 17 + findutils | [] [] [] [] [] | 20 + flex | [] [] [] [] | 15 + freedink | [] | 10 + gas | [] | 4 + gawk | [] [] [] [] | 18 + gcal | [] [] | 5 + gcc | [] [] [] | 7 + gettext-examples | [] [] [] [] [] [] [] | 34 + gettext-runtime | [] [] [] [] [] [] [] | 30 + gettext-tools | [] [] [] [] [] [] | 22 + gip | [] [] [] [] | 22 + gjay | [] | 3 + gliv | [] [] [] | 14 + glunarclock | [] [] [] [] [] | 19 + gnubiff | [] [] | 4 + gnucash | () [] () () | 9 + gnuedu | [] [] | 7 + gnulib | [] [] [] [] | 16 + gnunet | [] | 1 + gnunet-gtk | [] [] [] | 5 + gnutls | [] [] [] | 10 + gold | [] | 4 + gpe-aerial | [] [] [] | 18 + gpe-beam | [] [] [] | 19 + gpe-bluetooth | [] [] [] | 13 + gpe-calendar | [] [] [] [] | 12 + gpe-clock | [] [] [] [] [] | 28 + gpe-conf | [] [] [] [] | 20 + gpe-contacts | [] [] [] | 17 + gpe-edit | [] [] [] | 12 + gpe-filemanager | [] [] [] [] | 16 + gpe-go | [] [] [] [] [] | 25 + gpe-login | [] [] [] | 11 + gpe-ownerinfo | [] [] [] [] [] | 25 + gpe-package | [] [] [] | 13 + gpe-sketchbook | [] [] [] | 20 + gpe-su | [] [] [] [] [] | 30 + gpe-taskmanager | [] [] [] [] [] | 29 + gpe-timesheet | [] [] [] [] [] | 25 + gpe-today | [] [] [] [] [] [] | 30 + gpe-todo | [] [] [] [] | 17 + gphoto2 | [] [] [] [] [] | 24 + gprof | [] [] [] | 15 + gpsdrive | [] [] [] | 11 + gramadoir | [] [] [] | 11 + grep | [] [] [] | 10 + grub | [] [] [] | 14 + gsasl | [] [] [] [] | 14 + gss | [] [] [] | 11 + gst-plugins-bad | [] [] [] [] | 22 + gst-plugins-base | [] [] [] [] [] | 24 + gst-plugins-good | [] [] [] [] [] | 25 + gst-plugins-ugly | [] [] [] [] [] | 29 + gstreamer | [] [] [] [] | 22 + gtick | [] [] [] | 13 + gtkam | [] [] [] | 20 + gtkorphan | [] [] [] | 14 + gtkspell | [] [] [] [] [] [] [] [] [] | 45 + gutenprint | [] | 10 + hello | [] [] [] [] [] [] | 21 + help2man | [] [] | 7 + hylafax | [] | 5 + idutils | [] [] [] [] | 17 + indent | [] [] [] [] [] [] | 30 + iso_15924 | () [] () [] [] | 16 + iso_3166 | [] [] () [] [] () [] [] [] () | 53 + iso_3166_2 | () [] () [] | 9 + iso_4217 | [] () [] [] () [] [] | 26 + iso_639 | [] [] [] () [] () [] [] [] [] | 38 + iso_639_3 | [] () | 8 + jwhois | [] [] [] [] [] | 16 + kbd | [] [] [] [] [] | 15 + keytouch | [] [] [] | 16 + keytouch-editor | [] [] [] | 14 + keytouch-keyboa... | [] [] [] | 14 + klavaro | [] | 11 + latrine | [] [] [] | 10 + ld | [] [] [] [] | 11 + leafpad | [] [] [] [] [] [] | 33 + libc | [] [] [] [] [] | 21 + libexif | [] () | 6 + libextractor | [] | 1 + libgnutls | [] [] [] | 9 + libgpewidget | [] [] [] | 14 + libgpg-error | [] [] [] | 9 + libgphoto2 | [] [] | 8 + libgphoto2_port | [] [] [] [] | 13 + libgsasl | [] [] [] | 13 + libiconv | [] [] [] [] | 21 + libidn | () [] [] | 11 + lifelines | [] | 4 + liferea | [] [] [] | 21 + lilypond | [] | 7 + linkdr | [] [] [] [] [] | 17 + lordsawar | | 1 + lprng | [] | 3 + lynx | [] [] [] [] | 17 + m4 | [] [] [] [] | 19 + mailfromd | [] [] | 3 + mailutils | [] | 5 + make | [] [] [] [] | 21 + man-db | [] [] [] | 8 + man-db-manpages | | 4 + minicom | [] [] | 16 + mkisofs | [] [] | 9 + myserver | | 0 + nano | [] [] [] [] | 21 + opcodes | [] [] [] | 11 + parted | [] [] [] [] [] | 15 + pies | [] [] | 3 + popt | [] [] [] [] [] [] | 27 + psmisc | [] [] | 11 + pspp | | 4 + pwdutils | [] [] | 6 + radius | [] [] | 9 + recode | [] [] [] [] | 28 + rosegarden | () | 0 + rpm | [] [] [] | 11 + rush | [] [] | 4 + sarg | | 1 + screem | [] | 3 + scrollkeeper | [] [] [] [] [] | 27 + sed | [] [] [] [] [] | 30 + sharutils | [] [] [] [] [] | 22 + shishi | [] | 3 + skencil | [] [] | 7 + solfege | [] [] [] [] | 16 + solfege-manual | [] | 8 + soundtracker | [] [] [] | 9 + sp | [] | 3 + sysstat | [] [] | 15 + tar | [] [] [] [] [] [] | 23 + texinfo | [] [] [] [] | 16 + tin | | 4 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux-ng | [] [] [] [] | 20 + vice | () () | 1 + vmm | [] | 4 + vorbis-tools | [] | 6 + wastesedge | | 2 + wdiff | [] [] | 7 + wget | [] [] [] [] [] | 26 + wyslij-po | [] [] | 8 + xchat | [] [] [] [] [] [] | 36 + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | 60 + xkeyboard-config | [] [] [] [] | 25 + +---------------------------------------------------+ + 84 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + 178 domains 119 1 3 2 0 10 66 50 155 17 97 7 41 2610 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If May 2010 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://translationproject.org/extra/matrix.html'. + +1.6 Using `gettext' in new packages +=================================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`coordinator@translationproject.org' to make the `.pot' files available +to the translation teams. + diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index a734e49..0000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,5 +0,0 @@ -# Contributor Code of Conduct - -This project adheres to No Code of Conduct. We are all adults. We accept anyone's contributions. Nothing else matters. - -For more information please visit the [No Code of Conduct](https://github.com/domgetter/NCoC) homepage. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..c6fecf8 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,9721 @@ +2016-03-01 Will Estes <westes575@gmail.com> + + * NEWS: Mention 2.6.1 release date + +2016-02-28 rlar <rlar> + + * src/gen.c: avoid warning, add (int) cast to the read() return + value For similiarity with the fread() case. + +2016-02-28 rlar <rlar> + + * src/scan.l: avoid warning, POSIX says yyless() has an `int' + argument + +2016-02-29 rlar <rlar> + + * src/filter.c: use type size_t in filter_tee_header() to avoid + warnings + +2016-02-29 rlar <rlar> + + * src/filter.c, src/misc.c, src/scanopt.c, src/tables.c: add + (size_t) casts to malloc invocations to prevent warnings + +2016-02-29 rlar <rlar> + + * src/buf.c, src/misc.c, src/scan.l, src/scanopt.c, src/tables.c: + add (int) casts to some strlen() invocations to prevent warnings + +2016-02-29 rlar <rlar> + + * src/flexdef.h, src/scan.l, src/sym.c: ndlookup(), char *, to get + rid of casts and warnings + +2016-02-28 rlar <rlar> + + * src/flexdef.h, src/scan.l, src/sym.c: ndinstal(), char *, to get + rid of casts and warnings + +2016-02-28 rlar <rlar> + + * src/flexdef.h, src/scan.l, src/sym.c: cclinstal() and ccllookup(), + char *, to get rid of casts and warnings + +2016-02-28 rlar <rlar> + + * src/gen.c: warning: redundant redeclaration of + ‘gen_next_state’ [-Wredundant-decls] + +2016-02-28 rlar <rlar> + + * src/gen.c: warning: no previous prototype for ‘mkecstbl’ + [-Wmissing-prototypes] + +2016-02-28 rlar <rlar> + + * src/main.c: warning: suggest parentheses around assignment used as + truth value [-Wparentheses] + +2016-02-28 rlar <rlar> + + * src/flexdef.h: warning: redundant redeclaration of ‘yywrap’ + [-Wredundant-decls] + +2016-02-28 rlar <rlar> + + * src/flexdef.h: warning: redundant redeclaration of ‘yylval’ + [-Wredundant-decls] + +2016-02-28 rlar <rlar> + + * src/flexdef.h: warning: redundant redeclaration of ‘yyin’ + [-Wredundant-decls] + +2016-02-28 rlar <rlar> + + * src/flexdef.h, src/main.c: warning: redundant redeclaration of + ‘yyparse’ [-Wredundant-decls] + +2016-02-28 rlar <rlar> + + * src/parse.y, src/scan.l, src/yylex.c, to.do/unicode/scan.l: + unification, rename some more rename these too for improved similiarity: OPTION_OP OPT_HEADER OPT_EXTRA_TYPE OPT_TABLES + +2016-02-28 rlar <rlar> + + * src/parse.y, src/scan.l, src/yylex.c, to.do/unicode/scan.l: fix + name clash, OPT_OUTFILE from parse.y and from options.h these collide: OPT_OUTFILE OPT_PREFIX OPT_YYCLASS rename them TOK_... in the + parser + +2016-02-28 Will Estes <westes575@gmail.com> + + * lib/reallocarray.c: Prototyped reallocarray implementation + +2016-02-28 Will Estes <westes575@gmail.com> + + * src/scanopt.c: Removed custom strcasecmp() function + +2016-02-28 rlar <rlar> + + * src/flex.skl: fwrite wants a size_t, yyleng is int per posix + +2016-02-28 rlar <rlar> + + * src/scanopt.c: Remove some unneeded casts + +2016-02-28 rlar <rlar> + + * src/flexdef.h: warning: negative integer implicitly converted to + unsigned type [-Wsign-conversion] + +2016-02-27 rlar <rlar> + + * src/dfa.c, src/parse.y: dfa.c:157:24: warning: conversion to + 'size_t' from 'int' may change the sign of the result + [-Wsign-conversion] most certainly safe cast + +2016-02-27 rlar <rlar> + + * src/ccl.c: ccl.c:86:19: warning: conversion to 'unsigned char' + from 'int' may alter its value [-Wconversion] ch seems to have been checked for proper range some lines above + +2016-02-27 rlar <rlar> + + * tests/bison_nr_parser.y: warning: deprecated directive, use + '%pure-parser' [-Wdeprecated] + +2016-02-27 rlar <rlar> + + * lib/lib.c: warning: no previous prototype for 'do_nothing' + [-Wmissing-prototypes] + +2016-02-27 rlar <rlar> + + * src/libmain.c: included stdlib.h header + +2016-02-27 Will Estes <westes575@gmail.com> + + * NEWS: Described more post v2.6.0 changes + +2016-02-27 Will Estes <westes575@gmail.com> + + * configure.ac: build: Removed bzip2 distribiution archive + +2016-02-27 Will Estes <westes575@gmail.com> + + * configure.ac: removed obsolete program check + +2016-02-27 Will Estes <westes575@gmail.com> + + * configure.ac: Made some program checks more robust + +2016-02-27 rlar <rlar> + + * src/flex.skl: Remove unneeded cast to int + +2016-02-27 Will Estes <westes575@gmail.com> + + * src/flex.skl: Fixed incorrect integer type + +2016-02-27 Will Estes <westes575@gmail.com> + + * src/flex.skl: Fix more integer types, resolves sf 184, 187 + +2016-02-26 Robert Larice <Robert.Larice@t-online.de> + + * src/flex.skl, src/gen.c: Removed some type conversion warnings + +2016-02-26 Will Estes <westes575@gmail.com> + + * src/flex.skl: Changed another buffer size to int; resolves gh#61 + +2016-02-24 Will Estes <westes575@gmail.com> + + * src/flex.skl: Changed type of yy_n_chars to int; gh#53, sf#160. The variable yy_n_chars had been of type yy_size_t which is + incorrect given its use in read(). While it might be adviseable to + look at defining a yy_ssize_t, there might be some issues doing this + and so, for now, at least, we'll punt back to int. + +2016-02-24 Will Estes <westes575@gmail.com> + + * src/buf.c: Fixed size of bufferallocation, resolved gh#54. The value of n_alloc was a count, not a size. Multiplying the value + by the element size was incorrect. That multiplication was already + being done and having it done twice was incorrect. + +2016-02-23 Tobias Klauser <tklauser@distanz.ch> + + * src/scan.l: Allow '%option noline' in flex input file, resolves + gh#56. Allow specifying '%option noline' in the input file, leading to the + same effect as calling flex with the command line option --noline. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> + +2016-02-23 Tobias Klauser <tklauser@distanz.ch> + + * src/buf.c, src/main.c: Emit no #line directives if gen_line_dirs + is false, resolves igh#55. There are two instances in the code which will print a #line + directive to the resulting lexer, regardless of the value of + gen_line_dirs. Fix them, so they also respect gen_line_dirs. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> + +2016-02-16 Tobias Klauser <tklauser@distanz.ch> + + * lib/lib.c, src/gen.c, src/misc.c, src/scan.l: Converted K&R style + function definitions to ANSI C style Consistently make use of the ANSI C function definition style + instead of the K&R style. + +2016-01-29 Tobias Klauser <tklauser@distanz.ch> + + * src/flex.skl: Used NULL constant instead of plain integer for NULL + pointer. The sparse static checker warns about using plain integer 0 as NULL + pointers in the generated lexer code. Fix this by using NULL + consistently for pointers. + +2016-01-29 Tobias Klauser <tklauser@distanz.ch> + + * src/flex.skl: Marked declaration and definition of yy_fatal_error + as noreturn. Only the declaration of yy_fatal_error is marked with + __attribute__((__noreturn__)) in case GCC >= 3 is used, but not the + definition. This leads to the sparse static checker to complain + about function declaration mismatch. Fix it by defining a macro yynoreturn and using it for both the + declaration and the definition of yy_fatal_error. + +2016-01-27 Tobias Klauser <tklauser@distanz.ch> + + * src/flex.skl: Fixed declaration mismatch in yy_fatal_error. The prototype declares yy_fatal_error parameter as "const char + msg[]" while the definition uses "const char* msg" (introduced by + commit e9d5fc713f61b) which causes the sparse static checkers to + produce an error. Fix this by adjusting the definition to use "const char* msg" as + well. Also change the C++ version accordingly so it matches the + declaration in FlexLexer.hpp. + +2016-01-23 Will Estes <westes575@gmail.com> + + * CODE_OF_CONDUCT.md: flex is for flex #NCoC + +2016-01-18 Will Estes <westes575@gmail.com> + + * doc/flex.texi: Referred to github for issue tracking, no longer sf + +2016-01-10 Egor Pugin <egor.pugin@gmail.com> + + * tests/reject.l4, tests/tableopts.l4: Opened files in binary mode + explicitly + +2016-01-08 OBATA Akio <obache@NetBSD.org> + + * src/Makefile.am: Linked flex binary against libintl, not libfl. Signed-off-by: Thomas Klausner <wiz@NetBSD.org> + +2016-01-08 Michael van Elst <mlelstv@NetBSD.org> + + * src/filter.c: Improved pipe-stdin hack behavior; resolves sf#198. Signed-off-by: Thomas <Klausner wiz@NetBSD.org> + +2015-12-27 Will Estes <westes575@gmail.com> + + * configure.ac, src/flexdef.h: Removed no longer needed header + checks + +2015-12-27 Will Estes <westes575@gmail.com> + + * configure.ac: Checked for reallocarray() with AC_REPLACE_FUNCS + +2015-12-27 Will Estes <westes575@gmail.com> + + * src/flexdef.h, src/main.c: include libgen.h from flexdef.h, not + main.c + +2015-12-25 Michael Reed <m.reed@mykolab.com> + + * src/main.c: Replace basename2() with basename(3). Given the following program: \#include <libgen.h> \#include <stdio.h> /* extracts basename from path, optionally stripping the extension + "\.*" * (same concept as /bin/sh `basename`, but different handling + of extension). */ static char *basename2 (char *path) { char *b; for (b = path; *path; path++) if (*path == '/') b = path + 1; return b; } static void basename_compare(char *path) { printf("basename: %s\n", basename(path)); printf("basename2: %s\n\n", basename2(path)); } int main (int argc, char *argv[]) { // From http://pubs.opengroup.org/onlinepubs/9699919799/ // ``Sample Input and Output Strings'' basename_compare("/usr/lib"); basename_compare("/usr/"); basename_compare("/"); basename_compare("///"); basename_compare("//usr//lib//"); return 0; } ... and the program's output: basename: lib basename2: lib basename: usr basename2: basename: / basename2: basename: / basename2: basename: lib basename2: ... we can see that basename2() behaves the same as basename(3) in + the average use case, but messes up pretty severely in others. + Besides that, basename(3) is mandated by POSIX so should be present + on modern Unix-like systems, so we shouldn't define it ourselves. Some notes: - it doesn't appear to be mentioned in POSIX, but OpenBSD's + basename(3) returns NULL if the returned path componenet is > + PATH_MAX, so add a check for that - basename(3) shouldn't return an empty string, so remove the program_name[0] != '\0' check + +2015-12-25 Michael Reed <m.reed@mykolab.com> + + * src/main.c: Simplify basename2(). It's only call site does not activate the `strip_ext` code path, so + the function can be simplified a lot. While here, remove a double + assignment. + +2015-12-25 Michael Reed <m.reed@mykolab.com> + + * src/flex.skl, src/misc.c: Cleaned up __STDC__ #ifdefs. Assuming a compiler conforming to the ISO C standard is used, i.e., + __STDC__ is defined to 1, YY_USE_CONST is always defined and can be + eliminated. + +2015-12-25 Michael Reed <m.reed@mykolab.com> + + * src/flexdef.h, src/main.c, src/scanopt.c, src/scanopt.h, + src/sym.c: Remove remaining use of PROTO + +2015-12-21 Serguey Parkhomovsky <xindigo@gmail.com> + + * src/buf.c: buf.c: use snprintf + +2015-12-19 Will Estes <westes575@gmail.com> + + * configure.ac: build: reformatted AC_CHECK_FUNCS for readability + +2015-12-17 Will Estes <westes575@gmail.com> + + * src/scanopt.c: correct function prototype + +2015-12-15 Michael Reed <m.reed@mykolab.com> + + * src/main.c, src/scanopt.c, src/sym.c, src/tblcmp.c: Remove more + instances of PROTO + +2015-12-15 Michael Reed <m.reed@mykolab.com> + + * src/main.c: Removed prototype for main(). It's not called anywhere else so the prototype is not needed. See + the C99 standard [1], section 5.1.2.2.1 for more info. [1]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf + +2015-12-13 Michael McConville <mmcco@mykolab.com> + + * src/dfa.c, src/gen.c, src/nfa.c, to.do/unicode/main.c, + to.do/unicode/tblcmp.c: Removed more instances of PROTO, ansifying. + +2015-12-13 Will Estes <westes575@gmail.com> + + * README: Noted github for issue tracking and pull requests + +2015-12-13 Michael McConville <mmcco@mykolab.com> + + * README: Reformatted README; removed sf bug tracking link. + +2015-12-13 Michael McConville <mmcco@mykolab.com> + + * src/gen.c, to.do/unicode/gen.c: Removed macros for indentation + level. Just increment or decrement the indentation counter. That's less to + remember and makes the code more readable. w# Please enter the commit message for your changes. Lines starting + +2015-12-12 Mike Frysinger <vapier@gentoo.org> + + * tests/Makefile.am, tests/testwrapper.sh: tests: fixed paths to + input files. The current test wrapper works only when the inputs are specified + using relative paths. If they're specified with absolute paths, the + driver fails to detect the inputs because it always prepends the + input dir name which itself is a relative path: $ cd tests $ + ./testwrapper.sh -d . -i $PWD/reject.txt -t ./reject_ver.table + <fails to open inputs> This normally doesn't show up because people run `./configure` or, + for out of tree builds, `../configure`. But if you happen to run + configure with an absolute path, then automake tends to generate + absolute paths as well leading to test failures. Fix all of this by dropping the implicit input directory prepending. - INPUT_NAME is often a list of files, not just a single one - the input directory is used to find the testname tables which are usually generated, so it's impossible to use files from both + source and build directories - most of the time, the full/correct path is already specified + +2015-12-12 Mike Frysinger <vapier@gentoo.org> + + * configure.ac: configure: fixed realloc test. The [] characters are used for quoting in m4, so the attempt to use + them in place of `test` fails yielding the warning at build time: .../flex/configure: line 20222: no: command not found + +2015-12-12 Michael McConville <mmcco@mykolab.com> + + * src/flexdef.h: Started removal of PROTO macro. The PROTO macro is no longer needed. Additionally, its usage is + inconsistent, so we began removing it. + +2015-12-12 Michael Reed <m.reed@mykolab.com> + + * Makefile.am, src/main.c: Removed SHORT_FILE_NAMES preprocessor + symbol. As a relic of MS-DOS, we don't need this. It's never defined; see 13b5b214f53d1c3354a7ab910bd160c126df1331. Removed additional MSDOS ifdef. + +2015-12-11 Michael McConville <mmcco@mykolab.com> + + * configure.ac, lib/reallocarray.c, src/flexdef.h: Added new + function reallocarray. This is taken from OpenSSH Portable, which in turn takes it from + OpenBSD. reallocarray wraps the stdlib's realloc function. It takes two size + arguments and checks for overflow, like calloc, but doesn't zero the + memory. Therefore, it allows us to do overflow-safe array + reallocations and overflow-safe unzeroed array allocations, which + the stdlib allocation functions don't. We have a bunch of specific array allocation macros, none of which + check for overflow. reallocarray should be able to replace them. + +2015-12-11 Michael McConville <mmcco@mykolab.com> + + * src/flexdef.h: Removed MS-DOS, VMS macros. Given the age of the MS-DOS and VMS platforms, it's likely that no + one is building flex on them any more. Additionally, the preferred + approach is to test for particular platform features rather than to + test for particular platforms. + +2015-12-12 Will Estes <westes575@gmail.com> + + * src/flexdef.h, src/main.c: Made search for m4 more explicit. + +2015-12-12 Will Estes <westes575@gmail.com> + + * src/flex.skl: Returned 0 from yywrap() instead of EOF + +2015-12-11 Will Estes <westes575@gmail.com> + + * src/libmain.c: Changed end of main() in libmain to exit(0) + +2015-12-11 Will Estes <westes575@gmail.com> + + * NEWS, configure.ac: Mentioned v2.6.1; documented some changes + since v2.6.0 + +2015-12-11 Will Estes <westes575@gmail.com> + + * README: Updated build documentation; finished sf#155. Removed version numbers for build tools. Noted that version + requirements for build tools will be noted in configure.ac. Expanded + documentation of building texinfo based docs. + +2015-12-11 Will Estes <westes575@gmail.com> + + * doc/Makefile.am: Removed flex.pdf from distribution; partially + fixed sf#155 + +2015-12-11 Will Estes <westes575@gmail.com> + + * src/flex.skl: Commented in C style in skeleton; fixed sf#195 + +2015-12-10 Will Estes <westes575@gmail.com> + + * .gitignore: Ignored autoscan files + +2015-12-09 Will Estes <westes575@gmail.com> + + * configure.ac: Checked for ranlib and strdup() at configure time + +2015-12-09 Michael McConville <mmcconville@mykolab.com> + + * src/flexdef.h, src/misc.c, src/tblcmp.c, to.do/unicode/flexdef.h, + to.do/unicode/misc.c, to.do/unicode/tblcmp.c: Replace zero_out() + with stdlib's memset. + +2015-12-09 Michael McConville <mmcconville@mykolab.com> + + * src/flex.skl: Removed memory allocation casts. + +2015-12-09 Michael McConville <mmcconville@mykolab.com> + + * src/flexdef.h: Removed alloca() configuration. Since alloca() is dangerous, depricated, we remove it. + +2015-12-09 Michael McConville <mmcconville@mykolab.com> + + * src/flexdef.h: Removed implementation of isascii(). POSIX defines isascii(), so it's likely present on anything + weactually build flex on these days. + +2015-12-09 Michael McConville <mmcconville@mykolab.com> + + * src/main.c, src/scanopt.c, src/tables.c: Removed NULL-checks + before free() + +2015-12-08 Michael McConville <mmcconville@mykolab.com> + + * src/buf.c, src/dfa.c, src/flexdef.h, src/gen.c, src/scan.l, + to.do/unicode/flexdef.h, to.do/unicode/scan.l: Removed flex_free()i, + corrected buf_destroy logic. As with flex_alloc(), replace with direct calls to free(). The function buf_destroy is now null safe and the logic was + corrected to free() correctly. + +2015-12-08 Michael McConville <mmcconville@mykolab.com> + + * src/filter.c, src/flexdef.h, src/misc.c, src/scan.l, + src/scanflags.c, to.do/unicode/flexdef.h, to.do/unicode/misc.c, + to.do/unicode/scan.l: Removed flex_realloc(). As with flex_alloc(), replace calls to flex_realloc(), which was + just a wrapper around realloc(). + +2015-12-08 Michael McConville <mmcconville@mykolab.com> + + * src/buf.c, src/filter.c, src/flexdef.h, src/main.c, src/misc.c, + src/regex.c, src/scan.l, src/scanflags.c, src/sym.c, + to.do/unicode/flexdef.h, to.do/unicode/misc.c, to.do/unicode/scan.l: + Removed flex_alloc; cleaned up style. The function flex_alloc() was just a wrapper around malloc(). Since + this only added unclarity, and the flex_alloc() function is likely a + legacy of olden times, remove it in favor of calls to malloc() + directly. Style elements cleaned up: * superfluous spacing around parentheses * non-constant initialization in variable declarations * needless casts * almost all uses of assignments as subexpressions + +2015-12-07 Michael McConville <mmcconville@mykolab.com> + + * src/dfa.c, src/flexdef.h, src/gen.c, src/main.c, src/scan.l, + src/scanopt.c, tests/bison_nr_scanner.l, + tests/bison_yylloc_scanner.l, tests/bison_yylval_scanner.l, + tests/mem_nr.l, tests/mem_r.l, tests/pthread.l, tests/string_nr.l, + tests/string_r.l, tests/yyextra.l, to.do/unicode/scan.l: Remove + allocation casts + +2015-12-07 Will Estes <westes575@gmail.com> + + * src/.gitignore, src/Makefile.am: Built flex with itself. Changes in scan.l need to be built into flex with the same version + of flex in some cases. Since this build requirement is minimal, we + simply bootstrap flex unconditionally. We intentionally exclude from version control the bootstrap + artifacts as the extra copy of the lexer, the intermediate scanner + and the bootstrap executable are not of interest. + +2015-12-05 Michael McConville <mmcconville@mykolab.com> + + * src/buf.c, src/dfa.c, src/main.c, src/nfa.c, src/parse.y, + src/scan.l, src/scanopt.c, src/sym.c, to.do/unicode/main.c, + to.do/unicode/scan.l: Use NULL rather than (type *) 0. + +2015-12-05 Michael McConville <mmcconville@mykolab.com> + + * src/flexdef.h, src/misc.c, src/sym.c, to.do/unicode/flexdef.h, + to.do/unicode/misc.c: Replace copy_unsigned_string() with xstrdup(). Like copy_string(), copy_unsigned_string() is just a clone of the + stlib's strdup(). We only use it twice. I'm pretty confident that + char signedness is irrelevant in this case. + +2015-12-04 Akim Demaille <akim@lrde.epita.fr> + + * src/FlexLexer.h: Cleaned up white space. + +2015-12-04 Akim Demaille <akim@lrde.epita.fr> + + * src/FlexLexer.h: Removed struct keyword before yy_buffer_state + +2015-12-04 Akim Demaille <akim@lrde.epita.fr> + + * examples/testxxLexer.l, src/FlexLexer.h, src/flex.skl, src/main.c: + Replaced FLEX_STD macro with std::. The std:: construct exists as of C++98, so we can simply assume it + is supported. + +2015-12-04 Akim Demaille <akim@lrde.epita.fr> + + * src/Makefile.am: Generated skel.c explicitly in srcdir. Rewrote the target for skel.c to explicitly mention the srcdir. This + should help when building flex from a directory outside the flex + tree. Spread the rule out over several lines to enhance readability. + +2015-12-04 Akim Demaille <akim@lrde.epita.fr> + + * autogen.sh: Called glibtoolize if libtoolize run fails. On Mac OS X, libtoolize is known as glibtoolize. In cases where + libtoolize is not present, then calling glibtoolize when + bootstrapping the build system gives more folks a shot at getting + flex built from the ground up. + +2015-12-02 Mightyjo <mightyjo@gmail.com> + + * configure.ac: Checked for (g)texi2dvi. Better bison, help2man + checks. Added test for presence of (g)texi2dvi program. Gave notice if + texi2dvi is unavailable and set TEXI2DVI=: to avoid giving users + headaches. Enhanced tests for bison and help2man with notices when the programs + aren't found. Set their program variables to use the missing script + in build-aux since it's compatible with them. + +2015-12-02 Michael McConville <mmcconville@mykolab.com> + + * src/flexdef.h, src/misc.c, src/parse.y, src/scan.l, src/sym.c, + src/tables.c, to.do/unicode/flexdef.h, to.do/unicode/misc.c, + to.do/unicode/scan.l: Made string copying more standard. copy_string() was a clone of the stdlib's strdup(). For safety, + simplicity, and speed, we should use that instead. We introduce + xstrdup() which wraps strdup() in a failure upon memory allocation + errors. + +2015-11-30 Serguey Parkhomovsky <sergueyparkhomovsky@gmail.com> + + * src/scan.l: Error on unbalanced parentheses in rules section. + +2015-11-29 Will Estes <westes575@gmail.com> + + * src/Makefile.am: Cleaned up BUILT_SOURCES list. Removed reference to skel.c as a built source since other make rules + cover this case. + +2015-11-29 Will Estes <westes575@gmail.com> + + * src/Makefile.am: Sorted file names in flex_SOURCES + +2015-11-27 Mightyjo <mightyjo@gmail.com> + + * src/ecs.c, src/flexdef.h, src/main.c, src/misc.c, src/scan.l, + src/scanopt.c, src/sym.c, src/tblcmp.c: Replaced CHAR macro with + unsigned char type. Thanks to Michael McConville for pointing out that the old Char + macro causes problems with static analysis. The macro has been + removed and replaced with 'unsigned char' throughout the flex + sources. The macro is not needed at best and was confusing at worst. + It was not used in any of the example files nor was it mentioned in + the manual at all. + +2015-11-21 Will Estes <westes575@gmail.com> + + * configure.ac: updated syntax of AC_INIT call as per autoupdate + +2015-11-21 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: removed extra call to a _CPPFLAGS variable + +2015-05-14 Stefan Reinauer <stefan.reinauer@coreboot.org> + + * src/buf.c, src/ccl.c, src/dfa.c, src/ecs.c, src/gen.c, + src/main.c, src/misc.c, src/nfa.c, src/parse.y, src/scan.l, + src/scanopt.c, src/sym.c, src/tblcmp.c: Switch function definitions + from mixed K&R to consistent ANSI C. flex was using K&R function definitions for some functions and ANSI + C style in others, sometimes even in the same file. Change the code + to consistently use ANSI C. Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> + +2015-11-16 Mightyjo <mightyjo@gmail.com> + + * tests/Makefile.am: Used in-tree header file for c++ tests. + +2015-11-17 Will Estes <westes575@gmail.com> + + * configure.ac: Declared version 2.6.0 + +2015-11-17 Will Estes <westes575@gmail.com> + + * NEWS: Dated, described flex release 2.6.0 + +2015-11-13 Will Estes <westes575@gmail.com> + + * NEWS, configure.ac: Declared version 2.6.0rc1 + +2015-11-13 lukeallardyce <lukeallardyce@users.sourceforge.net> + + * src/Makefile.am: Supplied versioning information in flex + libraries. Resolves sourceforge bug #182. On OSX, and possibly other platforms, + building the libfl libraries without versioning information caused a + build failures. + +2015-11-12 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: Cleaned up more precisely after make check. BUILT_SOURCES is now just the list of headers built as per the + automake manual. We provide the list of files to clean to make + rebuilding the test suite programs easier. We then use the + CLEANFILES list in a dist-hook to clean up the distribution that + automake gathers since not distributing flex generated files is + foreign to automake's mindset, but we need exactly that. Additionally, we locate inputs to the tables-related tests more + precisely. Some files are in srcdir and some are in builddir, which + the arguments to the log compiler are now made aware of. + +2015-11-11 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: Pulled out scripts in tests/Makefile.am + +2015-11-11 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: Added srcdir to tableopts.am include + +2015-11-11 Will Estes <westes575@gmail.com> + + * doc/Makefile.am: Changed man page dependencies. The man page is just the --help output as reformatted by help2man. + The --help option is most likely to change when the flex skeleton + changes or one of the option parsing files changes or the + configure.ac script itself changes. The dependencies reflect this + now. It is still necessary, under some circumstances, to rebuild flex + explicitly before building the man page. In theory, it's possible to + have automake arrange to do this all the time, but doing so works + out to be fragile, given the rest of the build system. + +2015-11-10 Will Estes <westes575@gmail.com> + + * autogen.sh: Called libtoolize directly because autoreconf fails to + pick up LT_INIT properly + +2015-11-10 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: Added tableopts.sh to EXTRA_DIST + +2015-11-08 Mightyjo <mightyjo@gmail.com> + + * tests/Makefile.am: Made tests depend on the built flex binary. + +2015-11-08 Mightyjo <mightyjo@gmail.com> + + * : commit cf6cb4dce791c26567cc506770ca96b4f4118024 Author: Mightyjo + <mightyjo@gmail.com> Date: Sat Nov 7 23:11:35 2015 -0800 + +2015-11-04 Mightyjo <mightyjo@gmail.com> + + * doc/flex.texi: Updated documentation to reflect the revisions to + FlexLexer.h + +2015-10-26 Mightyjo <mightyjo@gmail.com> + + * src/FlexLexer.h, src/flex.skl: Changed several pointers to istream + (and ostream) to references in c++-only sections of the skeleton. Patched up a variety of expected errors caused by changing istream* + to istream&. Added a stray 'make' at line 545. Oops. Changed the buffer_state struct to store std::streambuf* instead of + std::istream* for C++ mode. Changed interfaces in FlexLexer.h to + take std::istream& instead of *. Backward compatibility temporarily + broken. Patched up backward compatibility with reasonable behavior in the + presence of null pointers. Re-added backward-compatible versions of the yyFlexLexer methods + that take iostream pointers. All tests passing. + +2015-09-29 Translation Project <coordinator@translationproject.org> + + * po/zh_CN.po: new zh_CN translation from the translation project + +2015-07-27 Jaska Uimonen <jaska.uimonen@helsinki.fi> + + * src/gen.c: fix possible resource leak with yynultrans_tbl + +2015-07-27 Jaska Uimonen <jaska.uimonen@helsinki.fi> + + * src/dfa.c: fix possible uninitialized array values + +2015-08-05 Will Estes <westes575@gmail.com> + + * doc/flex.texi: add %{...%} block to example in manual + +2015-07-15 Will Estes <westes575@gmail.com> + + * configure.ac: initialize libtool earlier in build system + generation + +2015-05-08 Translation Project <translation@translationproject.org> + + * po/da.po: new da translation from the Translation Project + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/gen.c, src/scan.l, tests/bison_nr_parser.y, + tests/bison_yylloc_parser.y, tests/bison_yylval_parser.y, + tests/multiple_scanners_nr_main.c: Fix `label unused` warning + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/flex.skl: Fix two "signed/unsigned" warnings + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * tests/alloc_extra.l, tests/array_nr.l, tests/array_r.l, + tests/basic_nr.l, tests/basic_r.l, tests/bison_nr_scanner.l, + tests/bison_yylloc_scanner.l, tests/bison_yylval_scanner.l, + tests/ccl.l, tests/cxx_basic.ll, tests/debug_nr.l, tests/debug_r.l, + tests/extended.l, tests/header_nr_scanner.l, + tests/header_r_scanner.l, tests/include_by_buffer.direct.l, + tests/include_by_push.direct.l, + tests/include_by_reentrant.direct.l, tests/lineno_nr.l, + tests/lineno_r.l, tests/lineno_trailing.l, tests/mem_nr.l, + tests/mem_r.l, tests/multiple_scanners_nr_1.l, + tests/multiple_scanners_nr_2.l, tests/multiple_scanners_r_1.l, + tests/multiple_scanners_r_2.l, tests/noansi_nr.l, tests/noansi_r.l, + tests/posix.l, tests/posixly_correct.l, tests/prefix_nr.l, + tests/prefix_r.l, tests/pthread.l, tests/quotes.l, tests/reject.l4, + tests/rescan_nr.direct.l, tests/rescan_r.direct.l, + tests/string_nr.l, tests/string_r.l, tests/tableopts.l4, + tests/top.l, tests/yyextra.l: Fix `unused function` warnings in + tests + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * tests/bison_nr_parser.y, tests/bison_yylloc_parser.y, + tests/bison_yylval_parser.y: Fix `implicit function declaration` + warnings in tests + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * tests/header_r_main.c, tests/multiple_scanners_nr_main.c, + tests/reject.l4, tests/tableopts.l4, tests/top_main.c: Remove a few + `unused variable` warnings + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/filter.c: Remove unused variable from + src/filter.c:filter_fix_linedirs + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/scanopt.c: Remove unused argument and variable from + src/scanopt.c:scanopt_err + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/flex.skl, src/libmain.c, src/parse.y, tests/bison_nr_main.c, + tests/bison_yylloc_main.c, tests/bison_yylloc_parser.y, + tests/bison_yylval_main.c, tests/bison_yylval_parser.y, + tests/header_nr_main.c, tests/header_r_main.c, tests/lineno_nr.l, + tests/lineno_r.l, tests/lineno_trailing.l, tests/mem_r.l, + tests/multiple_scanners_nr_main.c, + tests/multiple_scanners_r_main.c, tests/pthread.l, + tests/rescan_nr.direct.l, tests/rescan_r.direct.l, tests/top_main.c: + Fix a few "unused parameter" warnings + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/main.c: Fix warning about redefined macro when multiple + scanners are used. + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * tests/bison_nr_parser.y: Avoid passing `const char*` argument as + `char*` in test-bison-nr + +2014-11-21 Alexis La Goutte <alexis.lagoutte@gmail.com> + + * src/misc.c, src/regex.c, src/tables.c, src/tables_shared.c: Fix + -Wdocumentation warnings + +2014-11-16 Will Estes <westes575@gmail.com> + + * tests/README: document new suite layout + +2014-11-16 Will Estes <westes575@gmail.com> + + * tests/TEMPLATE/.gitignore, tests/TEMPLATE/Makefile.am, + tests/TEMPLATE/cvsignore, tests/TEMPLATE/parser.y, + tests/TEMPLATE/scanner.l, tests/TEMPLATE/test.input, + tests/create-test, tests/descriptions: remove unused files after + test suite refactor + +2014-11-14 Will Estes <westes575@gmail.com> + + * .gitignore, doc/.gitignore: Ignore directories build-aux/, m4/ Since build-aux/ now contains a number of files previously at the + top level, we ignore build-aux/. Therefore, it's not necessary to + list any files that are now kept in it. Also, explicitly mark m4/ as + a directory to ignore. + +2014-11-14 Will Estes <westes575@gmail.com> + + * configure.ac: added back call to AC_CONFIG_AUX_DIR. In an effort to reduce top level directory clutter, reintroduced the + call to AC_CONFIG_AUX_DIR. Moved the call to LT_INIT to after that + call so configure will be able to find its files. + +2014-07-18 Will Estes <westes575@gmail.com> + + * tests/tableopts.sh, tests/testwrapper.sh: use unofficial bash + strict mode and cleanups in supporting bash scripts + +2014-07-18 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/tableopts.am, + tests/tableopts.l4, tests/tableopts.sh, tests/tableopts.txt, + tests/test-table-opts/.gitignore, + tests/test-table-opts/Makefile.am, tests/test-table-opts/scanner.l, + tests/test-table-opts/test.input: split apart table options tests + into tests per threading, table option, serialization and + verification + +2014-07-17 Will Estes <westes575@gmail.com> + + * tests/tableopts.sh: add tableopts.sh script + +2014-07-02 Will Estes <westes575@gmail.com> + + * configure.ac, tests/Makefile.am: use automake conditional around + pthread test + +2014-07-01 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/lineno_trailing.l, + tests/lineno_trailing.one.txt, + tests/test-lineno-trailing/.gitignore, + tests/test-lineno-trailing/Makefile.am, + tests/test-lineno-trailing/scanner.l, + tests/test-lineno-trailing/test.input: refactor lineno_trailing test + for new test suite layout + +2014-07-01 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/lineno_r.l, + tests/lineno_r.one.txt, tests/test-lineno-r/.gitignore, + tests/test-lineno-r/Makefile.am, tests/test-lineno-r/scanner.l, + tests/test-lineno-r/test.input: refactor lineno_r test for new test + suite layout + +2014-07-01 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/lineno_nr.l, + tests/lineno_nr.one.txt, tests/test-lineno-nr/.gitignore, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-nr/scanner.l, + tests/test-lineno-nr/test.input, tests/testwrapper.sh: refactor + lineno_nr test for new test suite layout + +2014-06-30 Will Estes <westes575@gmail.com> + + * tests/test-linedir-r/.gitignore, + tests/test-linedir-r/Makefile.am, + tests/test-linedir-r/check-lines.awk, tests/test-linedir-r/main.c, + tests/test-linedir-r/scanner.l, tests/test-linedir-r/test.input: + Remove linedir_r test. The linedir_r test tested the implementation of line number + tracking, not its results. + +2014-06-24 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/pthread.l, + tests/pthread_1.txt, tests/pthread_2.txt, tests/pthread_3.txt, + tests/pthread_4.txt, tests/pthread_5.txt, + tests/test-pthread/.gitignore, tests/test-pthread/Makefile.am, + tests/test-pthread/scanner.l, tests/test-pthread/test-1.input, + tests/test-pthread/test-2.input, tests/test-pthread/test-3.input, + tests/test-pthread/test-4.input, tests/test-pthread/test-5.input: + refactor pthread test for new test suite layout + +2014-06-24 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: build reject_[vs]er tests explicitly to pass + proper compiler flags + +2014-06-24 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/cxx_yywrap.ll, + tests/cxx_yywrap.txt, tests/test-c++-yywrap/.gitignore, + tests/test-c++-yywrap/Makefile.am, tests/test-c++-yywrap/scanner.l, + tests/test-c++-yywrap/test.input, tests/testwrapper.sh: refactor + cxx_yywrap test for new test suite layout + +2014-06-17 Will Estes <westes575@gmail.com> + + * tests/Makefile.am, tests/options.cn, + tests/test-concatenated-options/.gitignore, + tests/test-concatenated-options/Makefile.am: refactor concatenated + options test for new test suite layout + +2014-06-17 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, + tests/include_by_buffer.direct.l, + tests/include_by_buffer.direct.txt, + tests/include_by_buffer.direct_2.txt, + tests/include_by_buffer.direct_3.txt, + tests/include_by_push.direct.l, tests/include_by_push.direct.txt, + tests/include_by_push.direct_2.txt, + tests/include_by_push.direct_3.txt, + tests/include_by_reentrant.direct.l, + tests/include_by_reentrant.direct.txt, + tests/include_by_reentrant.direct_2.txt, + tests/include_by_reentrant.direct_3.txt, + tests/test-include-by-buffer/.gitignore, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-buffer/scanner.l, + tests/test-include-by-buffer/test-1.input, + tests/test-include-by-buffer/test-2.input, + tests/test-include-by-buffer/test-3.input, + tests/test-include-by-push/.gitignore, + tests/test-include-by-push/Makefile.am, + tests/test-include-by-push/scanner.l, + tests/test-include-by-push/test-1.input, + tests/test-include-by-push/test-2.input, + tests/test-include-by-push/test-3.input, + tests/test-include-by-reentrant/.gitignore, + tests/test-include-by-reentrant/Makefile.am, + tests/test-include-by-reentrant/scanner.l, + tests/test-include-by-reentrant/test-1.input, + tests/test-include-by-reentrant/test-2.input, + tests/test-include-by-reentrant/test-3.input: refactor include_by_* + tests for new test suite layout + +2014-06-16 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/rescan_nr.direct.l, + tests/rescan_nr.direct.txt, tests/rescan_nr.l, tests/rescan_nr.txt, + tests/rescan_r.direct.l, tests/rescan_r.direct.txt, + tests/test-rescan-r/.gitignore, tests/test-rescan-r/Makefile.am, + tests/test-rescan-r/scanner.l, tests/test-rescan-r/test.input, + tests/testwrapper.sh: refactor rescan_r test for new test suite + layout + +2014-06-16 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/rescan_nr.l, + tests/rescan_nr.txt, tests/test-rescan-nr/.gitignore, + tests/test-rescan-nr/Makefile.am, tests/test-rescan-nr/scanner.l, + tests/test-rescan-nr/test.input, tests/testwrapper.sh: Refactor + rescan_nr test for new test suite layout. Also add -r option to testwrapper.sh to support passing input file + as a command line argument to the test scanner without using shell + redirection. + +2014-06-16 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: correct use of objext to OBJEXT + +2014-06-16 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/quotes.l, + tests/quotes.txt, tests/test-quotes/.gitignore, + tests/test-quotes/Makefile.am, tests/test-quotes/scanner.l, + tests/test-quotes/test.input: refactor quotes test for new test + suite layout + +2014-06-16 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/reject.l4, + tests/reject.txt, tests/test-reject/.gitignore, + tests/test-reject/Makefile.am, tests/test-reject/scanner.l, + tests/test-reject/test.input, tests/testwrapper.sh: Refactor reject + test for new test suite layout. Split out reject test into its constituant tests. Add .reject tests + and .table tests for automake test log generation. Rewrite + testwrapper.sh to handle running with a tables file and specifying + optional input using command line options rather than positional + parameters. + +2014-06-15 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, + tests/multiple_scanners_r_1.l, tests/multiple_scanners_r_2.l, + tests/multiple_scanners_r_main.c, + tests/test-multiple-scanners-r/.gitignore, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-multiple-scanners-r/main.c, + tests/test-multiple-scanners-r/scanner-1.l, + tests/test-multiple-scanners-r/scanner-2.l: Refactor + multiple_scanners_r test for new test suite layout. Also, remove the use of table files from this test as that tests two + features at once and we want to be as close to testing one feature + at a time as we can be. + +2014-06-15 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, + tests/multiple_scanners_nr_1.l, tests/multiple_scanners_nr_2.l, + tests/multiple_scanners_nr_main.c, + tests/test-multiple-scanners-nr/.gitignore, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-nr/main.c, + tests/test-multiple-scanners-nr/scanner-1.l, + tests/test-multiple-scanners-nr/scanner-2.l: refactor + multiple_scanners_nr test for new test suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, + tests/cxx_multiple_scanners.txt, tests/cxx_multiple_scanners_1.ll, + tests/cxx_multiple_scanners_2.ll, + tests/cxx_multiple_scanners_main.cc, + tests/test-c++-multiple-scanners/.gitignore, + tests/test-c++-multiple-scanners/Makefile.am, + tests/test-c++-multiple-scanners/main.cpp, + tests/test-c++-multiple-scanners/scanner-1.l, + tests/test-c++-multiple-scanners/scanner-2.l, + tests/test-c++-multiple-scanners/test.input: refactor + cxx_multiple_scanners test for new test suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/c_cxx_nr.lll, + tests/c_cxx_nr.txt, tests/c_cxx_r.lll, tests/c_cxx_r.txt, + tests/test-c-cpp-nr/.gitignore, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-nr/scanner.l, tests/test-c-cpp-nr/test.input, + tests/test-c-cpp-r/.gitignore, tests/test-c-cpp-r/Makefile.am, + tests/test-c-cpp-r/scanner.l, tests/test-c-cpp-r/test.input: + refactor c_cxx_nr, c_cxx_r tests for new test suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/cxx_basic.ll, + tests/cxx_basic.txt, tests/test-c++-basic/.gitignore, + tests/test-c++-basic/Makefile.am, tests/test-c++-basic/scanner.l, + tests/test-c++-basic/test.input: refactor cxx_basic test for new + test suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/posixly_correct.l, + tests/test-posixly-correct/.gitignore, + tests/test-posixly-correct/Makefile.am, + tests/test-posixly-correct/scanner.l: refactor posixly_correct test + for new test suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, + tests/test-yyextra/.gitignore, tests/test-yyextra/Makefile.am, + tests/test-yyextra/scanner.l, tests/test-yyextra/test.input, + tests/yyextra.l, tests/yyextra.txt: refactor yyextra test for new + test suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/test-top/.gitignore, + tests/test-top/Makefile.am, tests/test-top/main.c, + tests/test-top/scanner.l, tests/test-top/test.input, tests/top.l, + tests/top.txt, tests/top_main.c: refactor top test for new test + suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/string_r.l, + tests/test-string-r/.gitignore, tests/test-string-r/Makefile.am, + tests/test-string-r/scanner.l: refactor string_r test for new test + suite layout + +2014-06-14 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/string_nr.l, + tests/test-string-nr/.gitignore, tests/test-string-nr/Makefile.am, + tests/test-string-nr/scanner.l: refactor string_nr test for new test + suite layout + +2014-06-12 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/prefix_r.l, + tests/prefix_r.txt, tests/test-prefix-r/.gitignore, + tests/test-prefix-r/Makefile.am, tests/test-prefix-r/README, + tests/test-prefix-r/scanner.l, tests/test-prefix-r/test.input: + refactor prefix_r test for new test suite layout + +2014-06-12 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/prefix_nr.l, + tests/prefix_nr.txt, tests/test-prefix-nr/.gitignore, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-nr/README, + tests/test-prefix-nr/scanner.l, tests/test-prefix-nr/test.input: + refactor prefix_nr for new test suite layout + +2014-06-12 Will Estes <westes575@gmail.com> + + * tests/testwrapper.sh: Check if test input file exists. Not all tests have input files, so check if one exists and run the + test program accordingly. + +2014-06-12 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/posix.l, + tests/test-posix/.gitignore, tests/test-posix/Makefile.am, + tests/test-posix/scanner.l: refactor posix test for new test suite + layout + +2014-06-12 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/noansi_r.l, + tests/noansi_r.txt, tests/test-noansi-r/.gitignore, + tests/test-noansi-r/Makefile.am, tests/test-noansi-r/scanner.l, + tests/test-noansi-r/test.input: refactor noansi_r test for new test + suite layout + +2014-06-12 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/noansi_nr.l, + tests/noansi_nr.txt, tests/test-noansi-nr/.gitignore, + tests/test-noansi-nr/Makefile.am, tests/test-noansi-nr/scanner.l, + tests/test-noansi-nr/test.input: refactor noansi_nr for new test + suite layout + +2014-06-05 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/mem_r.l, + tests/mem_r.txt, tests/test-mem-r/.gitignore, + tests/test-mem-r/Makefile.am, tests/test-mem-r/scanner.l, + tests/test-mem-r/test.input: refactor mem_r test for new test suite + layout + +2014-06-05 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/mem_nr.l, + tests/mem_nr.txt, tests/test-mem-nr/.gitignore, + tests/test-mem-nr/Makefile.am, tests/test-mem-nr/scanner.l, + tests/test-mem-nr/test.input: refactor mem_nr test for new test + suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/header_r.txt, + tests/header_r_main.c, tests/header_r_scanner.l, + tests/test-header-r/.gitignore, tests/test-header-r/Makefile.am, + tests/test-header-r/main.c, tests/test-header-r/scanner.l, + tests/test-header-r/test.input: refactor header_r test for new test + suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/header_nr.txt, + tests/header_nr_main.c, tests/header_nr_scanner.l, + tests/test-header-nr/.gitignore, tests/test-header-nr/Makefile.am, + tests/test-header-nr/main.c, tests/test-header-nr/scanner.l, + tests/test-header-nr/test.input: refactor header_nr test for new + test suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/extended.l, + tests/extended.txt, tests/test-extended/.gitignore, + tests/test-extended/Makefile.am, tests/test-extended/scanner.l, + tests/test-extended/test.input: refactor extended test for new test + suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/debug_r.l, + tests/debug_r.txt, tests/test-debug-r/.gitignore, + tests/test-debug-r/Makefile.am, tests/test-debug-r/scanner.l, + tests/test-debug-r/test.input: refactor debug_r test for new test + suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/debug_nr.l, + tests/debug_nr.txt, tests/test-debug-nr/.gitignore, + tests/test-debug-nr/Makefile.am, tests/test-debug-nr/scanner.l, + tests/test-debug-nr/test.input: refactor debug_nr test for new test + suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/ccl.l, tests/ccl.txt, + tests/test-ccl/.gitignore, tests/test-ccl/Makefile.am, + tests/test-ccl/scanner.l, tests/test-ccl/test.input: refactor ccl + test for new test suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/alloc-extra.l, + tests/alloc-extra.txt, tests/alloc_extra.l, tests/alloc_extra.txt, + tests/array-nr.l, tests/array-nr.txt, tests/array-r.l, + tests/array-r.txt, tests/array_nr.l, tests/array_nr.txt, + tests/array_r.l, tests/array_r.txt, tests/basic-nr.l, + tests/basic-nr.txt, tests/basic-r.l, tests/basic-r.txt, + tests/basic_nr.l, tests/basic_nr.txt, tests/basic_r.l, + tests/basic_r.txt, tests/bison-nr-main.c, tests/bison-nr-parser.y, + tests/bison-nr-scanner.l, tests/bison-nr.txt, + tests/bison-yylloc-main.c, tests/bison-yylloc-parser.y, + tests/bison-yylloc-scanner.l, tests/bison-yylloc.txt, + tests/bison-yylval-main.c, tests/bison-yylval-parser.y, + tests/bison-yylval-scanner.l, tests/bison-yylval.txt, + tests/bison_nr.txt, tests/bison_nr_main.c, tests/bison_nr_parser.y, + tests/bison_nr_scanner.l, tests/bison_yylloc.txt, + tests/bison_yylloc_main.c, tests/bison_yylloc_parser.y, + tests/bison_yylloc_scanner.l, tests/bison_yylval.txt, + tests/bison_yylval_main.c, tests/bison_yylval_parser.y, + tests/bison_yylval_scanner.l: use underscores in test file names to + silence automake warnings + +2014-06-04 Will Estes <westes575@gmail.com> + + * .gitignore, m4/.gitignore, m4/Makefile.am: do not track m4 + subdirectory any more + +2014-06-04 Will Estes <westes575@gmail.com> + + * .gitignore, configure.ac: upgrade automake version to 1.14.1 Unfortunately, automake 1.14.1 does not play nicely with + AC_CONFIG_AUX_DIR, so upgrading the used automake version required + removing the build-aux directory and letting autoconf's installed + helper files live more over the tree. + +2014-06-04 Will Estes <westes575@gmail.com> + + * doc/.gitignore: ignore more files generated by texinfo + +2014-06-04 Will Estes <westes575@gmail.com> + + * configure.ac: update gettext version to 0.19 + +2014-06-04 Will Estes <westes575@gmail.com> + + * configure.ac: call LT_INIT earlier in configure.ac + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/bison-yylval-main.c, + tests/bison-yylval-parser.y, tests/bison-yylval-scanner.l, + tests/bison-yylval.txt, tests/test-bison-yylval/.gitignore, + tests/test-bison-yylval/Makefile.am, + tests/test-bison-yylval/main.c, tests/test-bison-yylval/parser.y, + tests/test-bison-yylval/scanner.l, + tests/test-bison-yylval/test.input: refactor bison-yylval test for + new test suite layout + +2014-06-04 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/bison-yylloc-main.c, + tests/bison-yylloc-parser.y, tests/bison-yylloc-scanner.l, + tests/bison-yylloc.txt, tests/test-bison-yylloc/.gitignore, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylloc/main.c, tests/test-bison-yylloc/parser.y, + tests/test-bison-yylloc/scanner.l, + tests/test-bison-yylloc/test.input: refactor bison-yylloc test for + new test suite layout + +2014-06-03 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/bison-nr-main.c, + tests/bison-nr-parser.y, tests/bison-nr-scanner.l, + tests/bison-nr.txt, tests/test-bison-nr/.gitignore, + tests/test-bison-nr/Makefile.am, tests/test-bison-nr/main.c, + tests/test-bison-nr/parser.y, tests/test-bison-nr/scanner.l, + tests/test-bison-nr/test.input: refactor bison-nr test for new test + suite layout + +2014-06-01 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/array-r.l, + tests/array-r.txt, tests/test-array-r/.gitignore, + tests/test-array-r/Makefile.am, tests/test-array-r/scanner.l, + tests/test-array-r/test.input: refactor array-r test for new test + suite layout + +2014-06-01 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: list tests/README with other EXTRA_DIST files + in tests/ + +2014-06-01 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/array-nr.l, + tests/array-nr.txt, tests/test-array-nr/.gitignore, + tests/test-array-nr/Makefile.am, tests/test-array-nr/scanner.l, + tests/test-array-nr/test.input: refactor array-nr test for new test + suite layout + +2014-06-01 Will Estes <westes575@gmail.com> + + * tests/Makefile.am, tests/testwrapper.sh: make tests/testwrapper.sh + more verbose; find input in srcdir Since output is redirected by the automake parallel test suite + driver, turn on both -v and -x in bash for the testwrapper.sh shell + script. This helps a ton in debugging problems with the test harness + itself. In general, the input files are in automake's srcdir and the name of + the test includes the relative path to it (even though that's + supposed to be ./). Therefore, pass srcdir in AM_LOG_FLAGS and + prepend that to the test name as part of constructing the input + file's name. + +2014-06-01 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: distribute tests/testwrapper.sh + +2014-06-01 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/alloc-extra.l, + tests/alloc-extra.txt, tests/test-alloc-extra/.gitignore, + tests/test-alloc-extra/Makefile.am, + tests/test-alloc-extra/scanner.l, tests/test-alloc-extra/test.input: + refacter alloc-extra for new test suite layout + +2014-05-29 Will Estes <westes575@gmail.com> + + * tests/.gitignore, tests/Makefile.am, tests/basic-r.l, + tests/basic-r.txt, tests/test-basic-r/.gitignore, + tests/test-basic-r/Makefile.am, tests/test-basic-r/scanner.l, + tests/test-basic-r/test.input: refactor basic-r test for new test + suite layout + +2014-04-22 Will Estes <westes575@gmail.com> + + * tests/Makefile.am, tests/basic-nr.l, tests/basic-nr.txt, + tests/test-basic-nr/.gitignore, tests/test-basic-nr/Makefile.am, + tests/test-basic-nr/scanner.l, tests/test-basic-nr/test.input, + tests/testwrapper.sh: refactor basic-nr test for new test suite + layout + +2014-04-22 Will Estes <westes575@gmail.com> + + * configure.ac: remove old tests/ subdirectories from build system + +2014-04-22 Will Estes <westes575@gmail.com> + + * configure.ac: add parallel test suite option to build system + +2014-04-22 Will Estes <westes575@gmail.com> + + * tests/.gitignore: ignore files for new test suite layout + +2014-04-22 Will Estes <westes575@gmail.com> + + * tests/Makefile.am: use automake parallel test suite option to + build test suite + +2014-04-09 Manoj Srivastava <srivasta@golden-gryphon.com> + + * tests/test-bison-yylloc/parser.y, + tests/test-bison-yylval/parser.y: Do not use obsolete bison + constructs in tests. In Bison 3.0, support for YYLEX_PARAM and YYPARSE_PARAM has been + removed (deprecated in Bison 1.875): use %lex-param, %parse-param, + or %param. This commit fixes the tests so they still work. Signed-off-by: Manoj Srivastava <srivasta@golden-gryphon.com> + +2014-10-31 Christos Zoulas <christos@zoulas.com> + + * src/buf.c, src/filter.c, src/flex.skl, src/flexdef.h, src/gen.c, + src/libmain.c, src/libyywrap.c, src/main.c, src/misc.c, src/nfa.c, + src/scan.l, src/scanflags.c, src/scanopt.c, src/yylex.c: NetBSD + downstream patches. const fixes. -Wconversion fixes for the skeleton files. param namespace protection (add _ to inline function parameters). unused variable/code removal. rename warn to lwarn to avoid conflict with <err.h>. ctype.h function argument correction. merged the error functions lerrif and lerrsf -> lerr. + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/flexdef.h, src/misc.c, src/scanflags.c: Allow error reporting + routines to accept varying number of arguments in modern style + +2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/buf.c: Fix warning on assigning from `const char*` to `char*` + +2014-07-24 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/main.c: Add disambiguation braces in main.c + +2014-07-17 Yuri <yuri@tsoft.com> + + * doc/flex.texi, examples/fastwc/mywc.c, src/ccl.c, src/dfa.c, + src/ecs.c, src/flex.skl, src/flexdef.h, src/gen.c, src/misc.c, + src/nfa.c, src/parse.y, src/scan.l, src/sym.c, src/tblcmp.c: Removed + deprecated 'register' storage class specifier. clang-3.5.0 now + complains about them: warning: 'register' storage class specifier is + deprecated [-Wdeprecated-register] + +2014-06-21 Mariusz Pluciński <mplucinski@mplucinski.com> + + * src/flexdef.h, src/main.c, src/misc.c, src/options.c, + src/options.h, src/yylex.c: Change output formats from octal to + hexadecimal + +2014-06-11 Will Estes <westes575@gmail.com> + + * NEWS, configure.ac: update version number to 2.6.0-pre + +2014-05-03 Will Estes <westes575@gmail.com> + + * src/ecs.c: check limits before using array index cclp; resolves + sf-166 + +2014-04-02 Sean McBride <sean@rogue-research.com> + + * src/flex.skl: Suppress clang warning about empty @param paragraph; + resolves sf#158 Signed-off-by: Will Estes <westes575@gmail.com> + +2014-04-02 Will Estes <westes575@gmail.com> + + * doc/flex.texi: fix punction when talking about colon-bracket + delimiters; resolves sf#167 + +2014-04-02 Will Estes <westes575@gmail.com> + + * doc/flex.texi: remove proofreading comment + +2014-04-02 Will Estes <westes575@gmail.com> + + * doc/flex.texi: Put angle brackets around start condition name; + resolves bug #168. + +2014-04-02 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> + + * lib/Makefile.am, lib/realloc.c: Fix malloc/realloc replacement, + bug#151. Signed-off-by: Will Estes <westes575@gmail.com> + +2014-04-02 Will Estes <westes575@gmail.com> + + * lib/malloc.c: change crlf line ending to lf + +2014-03-26 Will Estes <westes575@gmail.com> + + * NEWS: mention flex 2.5.39 release in NEWS file + +2014-03-26 Will Estes <westes575@gmail.com> + + * control.ac: initial default control file for shipper + +2014-03-05 Cyril Brulebois <kibi@debian.org> + + * src/flex.skl: Adjust buffer sizes on ia64. From the debian change entry: > Finish fixing the ia64 buffer issue. Previous commits increased + YY_READ_BUF_SIZE (where __ia64__ is defined) but left YY_BUF_SIZE + unchanged, so that didn't fix the problem in the end. In the general + case, the latter is twice the former. Therefore set it to the same + ratio in the ia64 case. In general, this sort of architecture specific fix is not the path + we want to take, but the cleanup should be done in a more organized + way in the future and getting it working would be preferrable now. + +2014-02-18 Will Estes <westes575@gmail.com> + + * Makefile.am, src/Makefile.am: move m4 make variable to + src/Makefile.am. This prevents an error when building skel.c caused by the $(m4) make + variable not being defined. Particularly nasty since skel.c would + still be created, thus causing make to think skel.c was up to date. + +2014-02-18 Will Estes <westes575@gmail.com> + + * devel/00EXTRACT-ALL-SYMS.sh, devel/README, devel/dump-tables.pl, + devel/tables.pl: remove unused devel/ subdirectory from codebase + +2014-02-15 Will Estes <westes575@gmail.com> + + * po/Rules-getpo: Add make rule to rsync latest .po files from + translation project. The rule assumes that rsync is on the path and that there is exactly + one domain listed in the DOMAIN make variable. The intent is that + the rule will work with vpath builds. + +2014-02-14 Will Estes <westes575@gmail.com> + + * .gitignore: git ignore directories of the form flex-* + +2014-02-14 Will Estes <westes575@gmail.com> + + * po/POTFILES.in: list source files for translation as now being in + src/ + +2014-02-14 Will Estes <westes575@gmail.com> + + * Makefile.am, configure.ac, tools/Makefile.am: Add tools/ + directory. Since tools/git2cl is a dependency of ChangeLog, not distributing + tools/git2cl with flex causes the "make dist" target to fail in the + distributed tar ball. + +2014-02-14 Will Estes <westes575@gmail.com> + + * Makefile.am: removes extraneous files from EXTRA_DIST as automake + picks them up better without mentioning them + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention version 2.6.0 in release news + +2014-02-14 Will Estes <westes575@gmail.com> + + * .gitignore, FlexLexer.h, Makefile.am, buf.c, ccl.c, configure.ac, + dfa.c, doc/.gitignore, doc/Makefile.am, ecs.c, filter.c, flex.skl, + flexdef.h, flexint.h, gen.c, gettext.h, lib/.gitignore, libmain.c, + libyywrap.c, main.c, misc.c, mkskel.sh, nfa.c, options.c, + options.h, parse.y, regex.c, scan.l, scanflags.c, scanopt.c, + scanopt.h, src/.gitignore, src/FlexLexer.h, src/Makefile.am, + src/buf.c, src/ccl.c, src/dfa.c, src/ecs.c, src/filter.c, + src/flex.skl, src/flexdef.h, src/flexint.h, src/gen.c, + src/gettext.h, src/libmain.c, src/libyywrap.c, src/main.c, + src/misc.c, src/mkskel.sh, src/nfa.c, src/options.c, src/options.h, + src/parse.y, src/regex.c, src/scan.l, src/scanflags.c, + src/scanopt.c, src/scanopt.h, src/sym.c, src/tables.c, + src/tables.h, src/tables_shared.c, src/tables_shared.h, + src/tblcmp.c, src/version.h, src/yylex.c, sym.c, tables.c, + tables.h, tables_shared.c, tables_shared.h, tblcmp.c, version.h, + yylex.c: move flex program sources into src/ directory The *.[chly] sources are now in the src directory. This implies a + bunch of changes in Makefile.am and friends to account for the new + location. The .gitignore files are now more local to places where + various object files and generated source files occur. + +2014-02-13 Will Estes <westes575@gmail.com> + + * configure.ac: increment flex version to 2.6.0 + +2014-02-16 Translation Project <coordinator@translationproject.org> + + * po/ru.po: update ru translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated da translation in release news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/da.po: update da translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated es translation in release news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/es.po: update es translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated ko translation in release news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/ko.po: update ko translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated ro translation in release news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/ro.po: update ro translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated ru translation in release news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/ru.po: update ru translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated sv translation in news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/sv.po: update sv translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated tr translation in news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/tr.po: update tr translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated zh_CN in release news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/zh_CN.po: update zh_CN translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS, po/LINGUAS, po/zh_TW.po, po/zh_tw.po: rename zh_tw + translation to its proper zh_TW name + +2014-02-14 Will Estes <westes575@gmail.com> + + * NEWS: mention updated nl, vi translations in release news + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/vi.po: update vi translation from the translation project + +2014-02-14 Translation Project <coordinator@translationproject.org> + + * po/nl.po: update nl translation from the translation project + +2014-02-14 Will Estes <westes575@gmail.com> + + * TODO: remove some unneeded entries from the todo list + +2014-02-13 Will Estes <westes575@gmail.com> + + * doc/Makefile.am: list more generated files in CLEANFILES + +2014-02-13 Will Estes <westes575@gmail.com> + + * doc/flex.xml: remove unmaintained xml documentation + +2014-02-13 Will Estes <westes575@gmail.com> + + * configure.ac: bump AM_GNU_GETTEXT_VERSION to 0.18.1 + +2014-02-13 Will Estes <westes575@gmail.com> + + * README: list new location of flex git repo + +2014-02-13 Will Estes <westes575@gmail.com> + + * po/.gitignore: git ignore generated files from english quoting + variant translations + +2014-02-13 Will Estes <westes575@gmail.com> + + * po/LINGUAS: name english quoting variants correctly + +2014-02-13 Will Estes <westes575@gmail.com> + + * Makefile.am, configure.ac, tools/Makefile.am: removed tools/ + subdirectory from distribution Since it is not possible to rebuild the ChangeLog file without being + in a git working directory of flex, distributing the tools directory + is misleading. In particular, git2cl will always fail. + +2014-02-13 Will Estes <westes575@gmail.com> + + * po/LINGUAS: removed unneeded blank line from translation list + +2014-02-13 Will Estes <westes575@gmail.com> + + * po/LINGUAS: added en quoting variants to translation list + +2014-02-11 Will Estes <westes575@gmail.com> + + * configure.ac: use gnu automake option instead of gnits option + +2014-02-11 Will Estes <westes575@gmail.com> + + * README-alpha: remove README_alpha file since it is no longer + needed + +2014-02-10 Will Estes <westes575@gmail.com> + + * configure.ac: increment version to 2.5.38 + +2013-11-27 Will Estes <westes575@gmail.com> + + * NEWS: flesh out internationalization section of NEWS file; mention + pt_BR translation + +2013-11-27 Translation Project <coordinator@translationproject.org> + + * po/pt_BR.po: update pt_BR translation from the translation project + +2013-10-31 Will Estes <westes575@gmail.com> + + * NEWS: begin listing 2.5.38 version in NEWS; list new sr + translation + +2013-10-31 Will Estes <westes575@gmail.com> + + * po/LINGUAS: list new sr translation in list of translations + +2013-10-31 Will Estes <westes575@gmail.com> + + * po/sr.po: add sr translation from the translation project + +2013-07-02 Till Varoquaux <till.varoquaux@gmail.com> + + * configure.ac, flex.skl, nfa.c, tests/Makefile.am, + tests/test-lineno-trailing/.gitignore, + tests/test-lineno-trailing/Makefile.am, + tests/test-lineno-trailing/scanner.l, + tests/test-lineno-trailing/test.input: Adjust yylineno properly when + rewinding trailing contexts. + +2013-05-28 Will Estes <westes575@gmail.com> + + * Makefile.am: Remove incorrect / in install-exec-hook target + +2013-02-16 Translation Project <coordinators@translationproject.org> + + * po/LINGUAS, po/zh_tw.po: add zh_tw translation from the + translation project + +2012-12-06 Christoph Junghans <ottxor@gentoo.org> + + * Makefile.am, configure.ac: add version information to shared + library Signed-off-by: Will Estes <westes575@gmail.com> + +2012-12-04 Christoph Junghans <ottxor@gentoo.org> + + * .gitignore, Makefile.am, configure.ac, lib/Makefile.am: Build + libfl and libcompat using libtool; resolves #3586814 Signed-off-by: Will Estes <westes575@gmail.com> + +2012-12-04 Translation Project <coordinator@translationproject.org> + + * po/ca.po: update ca translation + +2012-10-31 Hugh Sasse <hgs@dmu.ac.uk> + + * tests/test-extended/Makefile.am, tests/test-quotes/Makefile.am: + use cmp instead of diff in some tests for portability reasons Signed-off-by: Will Estes <westes575@gmail.com> + +2012-10-31 Dennis Clarke <dclarke@blastwave.org> + + * tests/TEMPLATE/Makefile.am, tests/test-alloc-extra/Makefile.am, + tests/test-array-nr/Makefile.am, tests/test-array-r/Makefile.am, + tests/test-basic-nr/Makefile.am, tests/test-basic-r/Makefile.am, + tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c++-basic/Makefile.am, + tests/test-c++-multiple-scanners/Makefile.am, + tests/test-c++-yywrap/Makefile.am, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-r/Makefile.am, tests/test-ccl/Makefile.am, + tests/test-debug-nr/Makefile.am, tests/test-debug-r/Makefile.am, + tests/test-extended/Makefile.am, tests/test-header-nr/Makefile.am, + tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-push/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-linedir-r/Makefile.am, tests/test-lineno-nr/Makefile.am, + tests/test-lineno-r/Makefile.am, tests/test-mem-nr/Makefile.am, + tests/test-mem-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-noansi-nr/Makefile.am, tests/test-noansi-r/Makefile.am, + tests/test-posix/Makefile.am, + tests/test-posixly-correct/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-quotes/Makefile.am, + tests/test-reject/Makefile.am, tests/test-rescan-nr/Makefile.am, + tests/test-rescan-r/Makefile.am, tests/test-string-nr/Makefile.am, + tests/test-string-r/Makefile.am, tests/test-table-opts/Makefile.am, + tests/test-top/Makefile.am, tests/test-yyextra/Makefile.am: add + CFLAGS and CXXFLAGS options as appropriate to testsuite Makefile.am + files Signed-off-by: Will Estes <westes575@gmail.com> + +2012-10-25 Will Estes <westes575@gmail.com> + + * po/LINGUAS: add hr to list of translations + +2012-10-25 Translation Project <coordinator@translationproject.org> + + * po/hr.po: add hr translation from the translation project + +2012-10-25 Translation Project <coordinator@translationproject.org> + + * po/fr.po: new fr translation project from the translation project + +2012-09-08 Will Estes <westes575@gmail.com> + + * po/LINGUAS: update languages list to include esperanto translation + +2012-09-08 Translation Project <coordinator@translationproject.org> + + * po/eo.po: add eo translation from the translation project + +2012-08-26 Will Estes <westes575@gmail.com> + + * configure.ac: add dist-xz to automake options; resolves #3561837 + +2012-08-26 Will Estes <westes575@gmail.com> + + * autogen.sh, configure.ac: require gettext 0.18; force autoreconf + in autogen.sh; resolves #3561759 Autoconf had trouble finding the shared libraries for gettext. Using + gettext 0.18 fixes that. When updating the gettext version number, autoreconf could fail to + update files, since autopoint would assume the gettext-related files + had been locally modified. Passing --force prevents that from + happening. + +2012-08-15 Will Estes <westes575@gmail.com> + + * Makefile.am: remove README.cvs from dist_doc_DATA in Makefile.am + +2012-08-13 Will Estes <westes575@gmail.com> + + * : commit 9256a268e2a1000cb410766e95487912a7d66d61 Author: Will + Estes <westes575@gmail.com> Date: Mon Aug 13 16:23:35 2012 -0400 + +2012-08-08 Will Estes <westes575@gmail.com> + + * README, README.cvs: append README.cvs contents to README + +2012-08-08 Will Estes <westes575@gmail.com> + + * gen.c: fix m4 error when useecs and nultrans are true; resolves + #1816878 + +2012-08-08 Robert Minsk <rminsk@users.sourceforge.net> + + * flex.skl: put user code after yyguts init; resolves #1744516 Signed-off-by: Will Estes <westes575@gmail.com> + +2012-08-08 Robert Minsk <rminsk@users.sourceforge.net> + + * flex.skl, main.c: do not output yy_nxt to header with %option + full; resolves #1739922 Signed-off-by: Will Estes <westes575@gmail.com> + +2012-08-07 Will Estes <westes575@gmail.com> + + * main.c: let flex decide if yymore and reject are needed in lex + compatible mode This resolves bug #3510440. + +2012-08-06 Translation Project <coordinator@translationproject.org> + + * po/vi.po: new vi translation from the translation project + +2012-08-06 Will Estes <westes575@gmail.com> + + * .gitignore: add more patterns to .gitignore Undersome circumstances, the build process will generate conf.in~, + which we want to ignore. Also, some patch files will apply but not + cleanly and *.orig and *.rej files are generated. We want to ignore + them as well. + +2012-08-06 Will Estes <westes575@gmail.com> + + * configure.ac, configure.in: rename configure.in to configure.ac to + prep for upcoming automake changes + +2012-08-06 Elias Pipping <pipping@users.sourceforge.net> + + * tests/test-bison-yylloc/main.c, tests/test-bison-yylloc/parser.y, + tests/test-bison-yylval/main.c, tests/test-bison-yylval/parser.y: + Fix two tests to pass under bison 2.6 Given that bison is moving forward with the %parse-param instead of + YYPARSE_PARAM syntax, it makes sense to switch over to using the new + style declaration. In particular, this means that flex scanners that + use bison features will now require bison 2.6 or higher. Signed-off-by: Will Estes <westes575@gmail.com> + +2012-08-04 Will Estes <westes575@gmail.com> + + * po/nl.po: new nl translation from the translation project + +2012-08-04 Mike Frysinger <vapier@gentoo.org> + + * flexdef.h: add prototype for lerrsf_fatal to flexdef.h Signed-off-by: Will Estes <westes575@gmail.com> + +2012-08-04 nomis52 <nomis52@users.sourceforge.net> + + * flex.skl, gen.c: Change variable types to silence compiler + warnings; resolves #3552806 Signed-off-by: Will Estes <westes575@gmail.com> + +2012-08-03 Will Estes <westes575@gmail.com> + + * NEWS: update NEWS to reflect changes in 2.5.37 + +2012-08-03 Will Estes <westes575@gmail.com> + + * configure.in: update flex version to 2.5.37 + +2012-08-03 Will Estes <westes575@gmail.com> + + * po/de.po: new de translation from the translation project + +2012-08-02 Will Estes <westes575@gmail.com> + + * po/vi.po: new vi translation from the translation project + +2012-08-02 Will Estes <westes575@gmail.com> + + * po/pl.po: new pl translation from the translation project + +2012-08-02 Will Estes <westes575@gmail.com> + + * po/fi.po: new fi translation from the translation project + +2012-08-02 Will Estes <westes575@gmail.com> + + * Makefile.am: Add -f option to LN_S to create flex++ The autoconf macro LN_S needs -f to successfully install flex++ if + flex++ already exists. Fortunately, ln, ln -s and cp -p, which are + the various forms that LN_S can take all will do the right thing + with a -f argument passed. + +2012-08-02 Will Estes <westes575@gmail.com> + + * Makefile.am, tools/Makefile.am, tools/cvs2cl.pl, + tools/cvsauthors, tools/git2cl: replace cvs2cl with git2cl Add the git2cl script in tools/ and remove the (now unnecessary) + cvs2cl script. Remove tools/cvsauthors since git2cl does not need + that file. Account for all the above in Makefile.am and + tools/Makefile.am + +2012-07-29 Will Estes <wlestes@users.sourceforge.net> + + * tests/.cvsignore, tests/.gitignore, tests/TEMPLATE/.cvsignore, + tests/TEMPLATE/.gitignore, tests/test-alloc-extra/.cvsignore, + tests/test-alloc-extra/.gitignore, tests/test-array-nr/.cvsignore, + tests/test-array-nr/.gitignore, tests/test-array-r/.cvsignore, + tests/test-array-r/.gitignore, tests/test-basic-nr/.cvsignore, + tests/test-basic-nr/.gitignore, tests/test-basic-r/.cvsignore, + tests/test-basic-r/.gitignore, tests/test-bison-nr/.cvsignore, + tests/test-bison-nr/.gitignore, tests/test-bison-yylloc/.cvsignore, + tests/test-bison-yylloc/.gitignore, + tests/test-bison-yylval/.cvsignore, + tests/test-bison-yylval/.gitignore, + tests/test-c++-basic/.cvsignore, tests/test-c++-basic/.gitignore, + tests/test-c++-multiple-scanners/.cvsignore, + tests/test-c++-multiple-scanners/.gitignore, + tests/test-c++-yywrap/.cvsignore, tests/test-c++-yywrap/.gitignore, + tests/test-c-cpp-nr/.cvsignore, tests/test-c-cpp-nr/.gitignore, + tests/test-c-cpp-r/.cvsignore, tests/test-c-cpp-r/.gitignore, + tests/test-ccl/.cvsignore, tests/test-ccl/.gitignore, + tests/test-concatenated-options/.cvsignore, + tests/test-concatenated-options/.gitignore, + tests/test-debug-nr/.cvsignore, tests/test-debug-nr/.gitignore, + tests/test-debug-r/.cvsignore, tests/test-debug-r/.gitignore, + tests/test-extended/.cvsignore, tests/test-extended/.gitignore, + tests/test-header-nr/.cvsignore, tests/test-header-nr/.gitignore, + tests/test-header-r/.cvsignore, tests/test-header-r/.gitignore, + tests/test-include-by-buffer/.cvsignore, + tests/test-include-by-buffer/.gitignore, + tests/test-include-by-push/.cvsignore, + tests/test-include-by-push/.gitignore, + tests/test-include-by-reentrant/.cvsignore, + tests/test-include-by-reentrant/.gitignore, + tests/test-linedir-r/.cvsignore, tests/test-linedir-r/.gitignore, + tests/test-lineno-nr/.cvsignore, tests/test-lineno-nr/.gitignore, + tests/test-lineno-r/.cvsignore, tests/test-lineno-r/.gitignore, + tests/test-mem-nr/.cvsignore, tests/test-mem-nr/.gitignore, + tests/test-mem-r/.cvsignore, tests/test-mem-r/.gitignore, + tests/test-multiple-scanners-nr/.cvsignore, + tests/test-multiple-scanners-nr/.gitignore, + tests/test-multiple-scanners-r/.cvsignore, + tests/test-multiple-scanners-r/.gitignore, + tests/test-noansi-nr/.cvsignore, tests/test-noansi-nr/.gitignore, + tests/test-noansi-r/.cvsignore, tests/test-noansi-r/.gitignore, + tests/test-posix/.cvsignore, tests/test-posix/.gitignore, + tests/test-posixly-correct/.cvsignore, + tests/test-posixly-correct/.gitignore, + tests/test-prefix-nr/.cvsignore, tests/test-prefix-nr/.gitignore, + tests/test-prefix-r/.cvsignore, tests/test-prefix-r/.gitignore, + tests/test-pthread/.cvsignore, tests/test-pthread/.gitignore, + tests/test-quotes/.cvsignore, tests/test-quotes/.gitignore, + tests/test-reject/.cvsignore, tests/test-reject/.gitignore, + tests/test-rescan-nr/.cvsignore, tests/test-rescan-nr/.gitignore, + tests/test-rescan-r/.cvsignore, tests/test-rescan-r/.gitignore, + tests/test-string-nr/.cvsignore, tests/test-string-nr/.gitignore, + tests/test-string-r/.cvsignore, tests/test-string-r/.gitignore, + tests/test-table-opts/.cvsignore, tests/test-table-opts/.gitignore, + tests/test-top/.cvsignore, tests/test-top/.gitignore, + tests/test-yyextra/.cvsignore, tests/test-yyextra/.gitignore: rename + .cvsignore files in tests/ subdirectories to gitignore + +2012-07-23 Will Estes <wlestes@users.sourceforge.net> + + * examples/.cvsignore, examples/fastwc/.cvsignore, + examples/manual/.cvsignore, lib/.cvsignore, tools/.cvsignore: remove + unneeded .cvsignore files + +2012-07-22 Will Estes <wlestes@users.sourceforge.net> + + * .gitignore: add *.o and *.a to top level .gitignore The cvs tree did not need these additions because cvs assumed a lot + of C-style defaults for .cvsignore files. flex builds *.o object + files in the course of compilation and *.a files are built as a part + of the libraries that flex compiles in the build process. + +2012-07-22 Will Estes <wlestes@users.sourceforge.net> + + * .cvsignore, .gitignore, doc/.cvsignore, doc/.gitignore, + m4/.cvsignore, m4/.gitignore, po/.cvsignore, po/.gitignore: rename + .cvsignore files to .gitignore The .cvsignore files from the legacy cvs repository tracked what + files got autogenerated during various stages of the flex build. + Renaming the .cvsignore files to .gitignore lets git do the same + thing. git is better about letting higher level .gitignore files + not-track files in lower level directories. As I work my way through + the test directories, we may add additional .gitignore files from + the old .cvsignore files. The po/ directory has a lot of special files used by gettext, so the + patterns in po/.gitignore look very different. The doc/.gitignore file accounts for what texinfo/makeinfo do, and + so it also has special patterns. The m4 directory is mainly present for autoconf's benefit, but we + have to account for it so make can do the right thing. Hence, + m4/.gitignore says to ignore *.m4, as counterintuitive as that may + seem. + +2012-07-22 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: update NEWS file to note release date of 2.5.36 + +2012-06-23 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: fix call to version in manual + +2012-06-22 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: add missing argument to call to yylex in manual + +2012-04-27 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: lintish cleanup in flex.skl; resolves #2040664 + +2012-04-27 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: add a 7 to the c99 octal pattern; resolves #3518269 + +2012-03-31 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: copyedit; resolves #3513670 + +2012-03-23 Will Estes <wlestes@users.sourceforge.net> + + * buf.c: escape backslashes in #line filenames in %top section; + resolves #3212400; patch submitted by scfc_de + +2012-03-21 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in, lib/Makefile.am, lib/lib.c, + lib/malloc.c, lib/realloc.c: provide malloc() and realloc() for + systems that do not have satisfactory versions; resolves #1899047 + +2012-03-21 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: install flex++ as a link; resolves bug #2939681 + +2012-03-21 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am: fix dependencies for make -j in + test suite + +2012-03-19 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: add missing prototypes for yyset_column() and + yyget_column(); resolves #3029024; patch submitted by scfc_de + +2012-03-02 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, tests/test-reject/scanner.l, + tests/test-table-opts/scanner.l: wrap yy_fatal_error calls + appropriately + +2012-03-02 Will Estes <wlestes@users.sourceforge.net> + + * regex.c: fix overlapping data buffer issue; patch from Tim + Landsheet scfc_de + +2012-03-02 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: better bracket handling in the scanner + +2012-03-02 Will Estes <wlestes@users.sourceforge.net> + + * flexdef.h, main.c, misc.c: Remove unneeded tracking of line/column + output; patch from Tim Landsheet scfc_de + +2012-03-02 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: fix test for m4 to accept an m4 with -P and not jus + tGNU m4; patch from Tim Landsheet scfc_de on sourceforge + +2012-03-02 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: fix order of td_lolen and td_hilen in + documentation; resolves #2913693; patch submitted by Andreas + Gruenbacher <agruen@suse.de> + +2012-03-02 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: correct document of YY_FLUSH_BUFFER; resolves + #1723028 + +2012-02-17 Will Estes <wlestes@users.sourceforge.net> + + * dfa.c, flexdef.h, misc.c, parse.y: speed up things for complex + inputs; resolves #2891390 + +2012-02-17 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: fix ipv6 pattern in manual; update manual copyright + to 2012 + +2012-02-17 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fremove isatty() declaration; resolves #1984987 + +2012-02-17 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: Add link for RFC 2396 + +2012-02-17 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: resolve #1990170 + +2012-02-17 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fix documentation to reflect arguments actually used; + bug #2783023 + +2012-02-05 Will Estes <wlestes@users.sourceforge.net> + + * main.c: fix yywrap behavior for reentrant scanners + +2012-02-04 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: Mmention tr translation + +2012-02-04 Will Estes <wlestes@users.sourceforge.net> + + * tables.c: prevent unused stuff from being compiled so as to reduce + warnings + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * buf.c, filter.c, main.c, misc.c, regex.c, scanflags.c: more better + error messages; more better memory handling + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * misc.c: more careful/paranoia + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * scanopt.c: more careful memory allocation in option processing + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in: remove m4/ directory and generally + clean up automake/autoconf inputs + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * lib/.cvsignore: cvsignore files that need that + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/da.po, po/es.po, po/ko.po, po/pt_BR.po, po/ro.po, + po/ru.po, po/sv.po, po/tr.po, po/zh_CN.po: check in translations + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * main.c: correct macro definition of yywrap + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: Greater specificity in error messages + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * parse.y: improve rule handling at EOF + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: include cstdio for definition of EOF in all cases + +2012-02-03 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: suppress warning on unused yyguts_t + +2010-08-13 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/LINGUAS, po/fi.po: new fi translation from the + translation project + +2009-03-31 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: Include version.texi after @setfilename, so that @set values are correctly evaluated. (Start Conditions, Performance, Lex and Posix): Fix some markup errors. (Cxx): Likewise. Also, fix C++ example to actually be compilable. Patch from Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + +2008-12-28 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: remove line break that broke configure + +2008-12-28 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: specify the title on the title page since @settitle + doesn't do that for us; resolves bug #2043491 + +2008-12-28 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, flexdef.h: check for regex.h; resolves bug #2337486 + +2008-07-23 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ga.po: new ga translation from the translation project + +2008-06-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ca.po: new ca translation + +2008-05-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: move ABOUT-NLS back to EXTRA_DIST + +2008-05-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: create new dist_doc_DATA; move some EXTRA_DIST files + to new dist_doc_DATA target + +2008-05-31 Will Estes <wlestes@users.sourceforge.net> + + * .cvsignore: ignore more automake generated config.status* files + +2008-05-31 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: flex distribution now built with automake and autoconf + versions ... + +2008-05-31 Will Estes <wlestes@users.sourceforge.net> + + * README.cvs: document GNU auto* version changes for building flex + from cvs + +2008-05-31 Will Estes <wlestes@users.sourceforge.net> + + * .cvsignore, doc/Makefile.am: ignore automake-supplied ylwrap + +2008-05-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, flex.skl: clean up types; resolves 1961902 + +2008-05-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: update NEWS re manual + +2008-05-15 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: correct eroneous references to 'nowrap' to refer to + 'noyywrap'; resolves bug #1739912 + +2008-05-14 Will Estes <wlestes@users.sourceforge.net> + + * filter.c: call clearerr on stdin before dup2'ing it; resolves bug + #1902612 + +2008-05-14 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: generic updates to NEWS + +2008-05-14 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-pthread/Makefile.am: move library flags in linker + command; resolves patch #1943403; patch submitted by + nullnix@users.sourceforge.net + +2008-05-14 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: use ansi syntax in simple examples; resolves patch + #1909844; patch submitted by Tom Browder, + tbrowder2@users.sourceforge.net + +2008-04-10 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: fix typo in example (from Paolo J. Matos + +2008-04-10 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: move endif to better account for what C99 defines for + integer types (fix from debian project) + +2008-04-10 Will Estes <wlestes@users.sourceforge.net> + + * gen.c: fix another int type to be size_t + +2008-03-30 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/fr.po: new fr translation + +2008-03-30 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: start version 2.5.36 + +2008-02-26 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: add date of release + +2008-02-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, parse.y: fix bug that prevented comments from working + properly + +2008-02-12 Will Estes <wlestes@users.sourceforge.net> + + * po/de.po: new de translation + +2008-02-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/vi.po: new vi translation + +2008-02-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/nl.po: new nl translation + +2008-02-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/pl.po: new pl translation + +2008-02-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/de.po, po/pt_BR.po: new de, pt_br translations + +2008-02-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, flex.skl: generate headers for all functions (resolves bug + #1628314) + +2008-02-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, flex.skl: change yy_size_t to be size_t (resolves bug + #1849812) + +2008-02-09 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: start work on version 2.5.35 + +2007-12-12 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: revert NEWS and configure.in to version 2.5.34 + +2007-09-12 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: update version number to 2.5.35 + +2007-09-10 Aaron Stone <sodabrew@users.sourceforge.net> + + * tests/test-alloc-extra/scanner.l: Use %option extra-type. + +2007-09-10 Aaron Stone <sodabrew@users.sourceforge.net> + + * NEWS, doc/flex.texi, flex.skl, flexdef.h, main.c, parse.y, scan.l: + Introduce %option extra-type="your_type *" (resolves bug #1744505). + +2007-08-15 Will Estes <wlestes@users.sourceforge.net> + + * po/nl.po: new nl translations from the translation project + +2007-06-28 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: change release date + +2007-06-28 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: adjustment for prefix classes; patch submitted by Petr + Machata <pmachata@redhat.com> + +2007-06-28 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: NEWS item for yy_init_extra + +2007-06-12 Aaron Stone <sodabrew@users.sourceforge.net> + + * doc/flex.texi: Docs and example for yylex_init_extra. + +2007-06-01 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-alloc-extra/.cvsignore: ignore OUTPUT file in + test-alloc-extra + +2007-06-01 Will Estes <wlestes@users.sourceforge.net> + + * tests/descriptions: add description of concatenated options test + +2007-05-31 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-alloc-extra/.cvsignore: add missing .cvsignore to + test-alloc-extra + +2007-05-31 Aaron Stone <sodabrew@users.sourceforge.net> + + * configure.in, flex.skl, gen.c, main.c: Changes to resolve SF bugs + 1568325 and 1563589. + +2007-05-31 Aaron Stone <sodabrew@users.sourceforge.net> + + * tests/Makefile.am, tests/descriptions, + tests/test-alloc-extra/Makefile.am, + tests/test-alloc-extra/scanner.l, tests/test-alloc-extra/test.input: + Adding test cases for yylex_init_extra. + +2007-05-12 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, tests/test-pthread/scanner.l: fixes to test-pthread + +2007-05-12 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: NEWS item for concatenated options + +2007-05-12 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, tests/Makefile.am, + tests/test-concatenated-options/.cvsignore, + tests/test-concatenated-options/Makefile.am: unit test to verify + concatenated options parsing + +2007-05-12 Will Estes <wlestes@users.sourceforge.net> + + * scanopt.c: parse multiple short concatenated options; patch + submitted by Petr Machata <pmachata@redhat.com + +2007-05-11 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: remove --force option from autogen.sh; much faster + without it + +2007-05-11 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.34 + +2007-05-08 Aaron Stone <sodabrew@users.sourceforge.net> + + * NEWS, flex.skl: Better checking after yyalloc/yyrealloc (resolves + bug #1595967) + +2007-05-01 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: change title of manual to 'Lexical Analysis with + Flex' + +2007-04-25 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: c++ memory leak plug + +2007-04-23 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: roll back c++ memory patch as it causes the test suite + no end of grief + +2007-04-23 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fix function definitions for non-ANSI environments (from + Manoj Srivastava from Debian patchset) + +2007-04-23 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fix c++ memory leak (from Manoj Srivastava from Debian + patchset) + +2007-04-23 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fix parameter name in comment (patch from Manoj + Srivastava from the debian patchset + +2007-04-23 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: add a size_t cast (patch from Manoj Srivastava from the + debian patchset + +2007-04-16 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-extended/Makefile.am, tests/test-quotes/Makefile.am: + cleanups to handle VPATH builds better; passifies make distcheck + +2007-04-16 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: drop using the \ in \ escaping as it throws pdf + generation for a loop + +2007-04-14 Will Estes <wlestes@users.sourceforge.net> + + * .cvsignore: add compile and *.tar.bz2 to .cvsignore + +2007-04-14 Will Estes <wlestes@users.sourceforge.net> + + * main.c: add call to setlocale for ctype as per debian patchset + +2007-04-14 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, NEWS: provide for a PIC version of libfl.a for shared + libraries using flex scanners + +2007-04-13 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h: annotate endifs since they're a bit far from their + opening #if statements + +2007-04-13 Will Estes <wlestes@users.sourceforge.net> + + * flexdef.h, parse.y: refactor and slightly redo alloca testing, + resolves bug #1675899 + +2007-04-13 Will Estes <wlestes@users.sourceforge.net> + + * : overhaul configure.in: use octathorps for comments so they're + passed through m4 processing; better bracketing of m4 arguments; + retool checks as per suggestions from autoscan(1) + +2007-04-13 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fix skeleton for reentrant scanners + +2007-04-13 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: remove homegrown tags target; automake does that for + us + +2007-04-12 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fix skeleton for reentrant scanners, resolves bug + #1694318 + +2007-04-12 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h: declare some const where missing in c++ header file + +2007-04-10 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: corrections to the manual as per suggestions from + flex-help@ + +2007-04-03 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: include author names in online versions of the + manual + +2007-04-03 Will Estes <wlestes@users.sourceforge.net> + + * COPYING: update copyright notice + +2007-04-03 Will Estes <wlestes@users.sourceforge.net> + + * AUTHORS: rearrange and update AUTHORS + +2007-03-29 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: note sf feature request 1658379 in NEWS + +2007-03-29 Will Estes <wlestes@users.sourceforge.net> + + * tools/cvsauthors: add sodabrew to cvsauthors file + +2007-03-29 Aaron Stone <sodabrew@users.sourceforge.net> + + * flex.skl: SourceForge feature request #1658379: Expose YY_BUF_SIZE + in the header file. + +2007-03-07 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, filter.c, flex.skl: apply patches submitted by sodabrew + +2007-03-07 Will Estes <wlestes@users.sourceforge.net> + + * README.cvs: more changes describing building flex from cvs + +2007-03-07 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, README.cvs, README.cvs-snapshot: rename + README.cvs-snapshot to README.cvs + +2007-03-07 Will Estes <wlestes@users.sourceforge.net> + + * README.cvs-snapshot: update to explain where flex cvs lives + +2007-03-07 Will Estes <wlestes@users.sourceforge.net> + + * README, doc/flex.texi: correct how to submit bugs + +2007-02-16 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: clarify NEWS item re man page and pdf manual + +2007-02-14 Will Estes <wlestes@users.sourceforge.net> + + * po/Makevars: update bug address to point to flex-devel instead of + lex-help + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, doc/Makefile.am: make better use of AC_INIT; clean + up, simplify and make more robust the generation of the man page + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: remove option check-news from call to + AM_INIT_AUTOMAKE as gnits implies check-news + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in: move automake options from Makefile.am + to configure.in + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: restore --install option to autogen.sh since --force + does not imply --install + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * tools/cvsauthors: add john43 to cvsauthors file + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: call autoreconf with --force instead of --install + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * doc/.cvsignore: remove texinfo.tex from cvs tree + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: updates to NEWS file to reflect recent changes + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * doc/Makefile.am: add flex.pdf to EXTRA_DIST + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: remove flex.spec + +2007-02-13 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: remove maintainercleanfiles + +2007-02-01 Will Estes <wlestes@users.sourceforge.net> + + * doc/Makefile.am: more changes to build system to distribute man + page + +2007-02-01 Will Estes <wlestes@users.sourceforge.net> + + * doc/Makefile.am: add flex man page to distribution + +2007-02-01 Will Estes <wlestes@users.sourceforge.net> + + * .cvsignore, flex.spec.in: remove flex spec file + +2006-11-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-table-opts/Makefile.am: make test target depend on test + groupings, which in turn depend on building executables; cygwin + portability fix + +2006-11-10 Will Estes <wlestes@users.sourceforge.net> + + * tests/create-test: change create-test script to edit files in + place + +2006-11-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-array-nr/Makefile.am, tests/test-array-r/Makefile.am, + tests/test-basic-nr/Makefile.am, tests/test-basic-r/Makefile.am, + tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c++-basic/Makefile.am, + tests/test-c++-multiple-scanners/Makefile.am, + tests/test-c++-yywrap/Makefile.am, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-r/Makefile.am, tests/test-ccl/Makefile.am, + tests/test-debug-nr/Makefile.am, tests/test-debug-r/Makefile.am, + tests/test-extended/Makefile.am, tests/test-header-nr/Makefile.am, + tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-push/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-linedir-r/Makefile.am, tests/test-lineno-nr/Makefile.am, + tests/test-lineno-r/Makefile.am, tests/test-mem-nr/Makefile.am, + tests/test-mem-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-noansi-nr/Makefile.am, tests/test-noansi-r/Makefile.am, + tests/test-posix/Makefile.am, + tests/test-posixly-correct/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-quotes/Makefile.am, + tests/test-reject/Makefile.am, tests/test-rescan-nr/Makefile.am, + tests/test-rescan-r/Makefile.am, tests/test-string-nr/Makefile.am, + tests/test-string-r/Makefile.am, tests/test-top/Makefile.am, + tests/test-yyextra/Makefile.am: change CLEANFILES to include + instead of just the testname for the executable + +2006-11-09 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: fix typos in manual; resolves bug #1592857 + +2006-11-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am: change test template to remove test + executable when that executable has an extension, e.g. under Cygwin + +2006-11-08 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.am: test names weren't displaying in test + success/failure messages (from #1591672 + +2006-10-30 Will Estes <wlestes@users.sourceforge.net> + + * doc/.cvsignore: add flex.html to .cvsignore in doc directory + +2006-10-22 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: update NEWS file for the work that millaway did + +2006-10-22 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h, NEWS, main.c, + tests/test-c++-multiple-scanners/scanner-2.l: make yywrap work with + c++ scanners as per sf bug report + +2006-10-20 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, flex.skl, tests/test-c++-multiple-scanners/main.cpp, + tests/test-c-cpp-nr/scanner.l: memory leak issues in c++ scanner + +2006-10-20 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in, tests/Makefile.am, tests/descriptions, + tests/test-c++-yywrap/.cvsignore, + tests/test-c++-yywrap/Makefile.am, tests/test-c++-yywrap/scanner.l, + tests/test-c++-yywrap/test.input: add unit test for c++ with yywrap + +2006-10-20 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, tests/test-c++-basic/Makefile.am, + tests/test-linedir-r/Makefile.am: use configure-provided awk + variable for portability; add loadlibes variable to c++ test + +2006-10-17 Will Estes <wlestes@users.sourceforge.net> + + * doc/flex.texi: add noyywrap option to example; use whitespace to + clarify example + +2006-08-02 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ca.po, po/vi.po: new translations + +2006-04-11 John Millaway <john43@users.sourceforge.net> + + * tables.c: Casted away signedness to appease -Werror freaks. + +2006-03-28 John Millaway <john43@users.sourceforge.net> + + * ccl.c, doc/flex.texi, flexdef.h, parse.y, scan.l, sym.c, + tests/test-ccl/scanner.l, tests/test-ccl/test.input: Added ccl union + operator. Added test in test suite for ccl union operator. + Documented ccl union operator. Removed crufty ccl cache to prevent + parser problems. + +2006-03-28 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi, scan.l, tests/test-extended/scanner.l, + tests/test-extended/test.input: Extended syntax excluded for + lex/posix compat mode. Comments discarded inside (?x:) patterns. + Added test in test suite for comments in extended patterns. + Documented syntax additions. + +2006-03-27 John Millaway <john43@users.sourceforge.net> + + * scan.l, tests/test-ccl/scanner.l, tests/test-ccl/test.input: + Implemented (?x:) syntax to allow whitespace in patterns. Added + test for (?x:) syntax in test suite. + +2006-03-27 John Millaway <john43@users.sourceforge.net> + + * parse.y, tests/test-ccl/scanner.l, tests/test-ccl/test.input: + Implemented dot-all syntax. Added test for dot-all syntax in test + suite. + +2006-03-27 John Millaway <john43@users.sourceforge.net> + + * dfa.c, doc/flex.texi, flexdef.h, gen.c, main.c, parse.y, scan.l, + scanflags.c, tests/test-ccl/scanner.l, tests/test-ccl/test.input: + Removed global variable caseins. Added scanner stack flags for + case-insensitivity. Moved case-folding code from DFA-generation to + parse time read-macros. Added localized case-sensitivity syntax + from Perl. Added test for new syntax in test suite. Documented new + syntax. + +2006-03-27 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, configure.in, flexdef.h, scanflags.c: Added configure + check for assert.h. Added scanner flags stack. + +2006-03-25 John Millaway <john43@users.sourceforge.net> + + * configure.in, doc/flex.texi, scan.l, tests/Makefile.am, + tests/descriptions, tests/test-extended/.cvsignore, + tests/test-extended/Makefile.am, tests/test-extended/scanner.l, + tests/test-extended/test.input: Added extended, perl-compatible + comment syntax. Added test for extended comment syntax. Documented + extended comment syntax. + +2006-03-25 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi, parse.y: Changed explicit 'A'-'Z' to isupper(), + where correct to do so. Documentation. + +2006-03-24 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Documentation. + +2006-03-24 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Added appendix of patterns to manual. + +2006-03-23 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: . + +2006-03-22 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Documentation. + +2006-03-22 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Documented set difference operator {-}. + +2006-03-22 John Millaway <john43@users.sourceforge.net> + + * ccl.c, flexdef.h, parse.y, scan.l, tests/test-ccl/scanner.l, + tests/test-ccl/test.input: Added set difference operator {-} for + character classes. + +2006-03-22 John Millaway <john43@users.sourceforge.net> + + * configure.in, doc/flex.texi, parse.y, scan.l, tests/Makefile.am, + tests/descriptions, tests/test-ccl/.cvsignore, + tests/test-ccl/Makefile.am, tests/test-ccl/scanner.l, + tests/test-ccl/test.input: Added negated character class + expressions. Documented negated character class expressions. Added + regression test for negated character class expressions. + +2006-03-22 John Millaway <john43@users.sourceforge.net> + + * buf.c, filter.c, gen.c, main.c, misc.c, nfa.c, parse.y, regex.c: + Replaced sprintf with snprintf everywhere. + +2006-03-22 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Removed includedir from AM_CPPFLAGS #1439351. + +2006-03-21 John Millaway <john43@users.sourceforge.net> + + * configure.in, tests/Makefile.am, tests/descriptions, + tests/test-quotes/.cvsignore, tests/test-quotes/Makefile.am, + tests/test-quotes/scanner.l, tests/test-quotes/test.input: Added + test to verify user code is unmangled. + +2006-03-21 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, misc.c, scan.l: Fixed escape in actions. + +2006-03-21 John Millaway <john43@users.sourceforge.net> + + * filter.c, flexdef.h, main.c, scan.l: Reverted previous input + filter changes. Added noop macro to scanner output. Modified + scan.l to escape m4 quotes found in user code. + +2006-03-21 John Millaway <john43@users.sourceforge.net> + + * tests/test-table-opts/Makefile.am, + tests/test-table-opts/scanner.l: Removed m4 from test-table-opts + +2006-03-21 John Millaway <john43@users.sourceforge.net> + + * tests/test-reject/Makefile.am, tests/test-reject/scanner.l: + Removed m4 from test-reject + +2006-03-21 John Millaway <john43@users.sourceforge.net> + + * filter.c, flexdef.h, main.c, scan.l: Moved set_input_file to + different file. + +2006-03-21 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flexdef.h, flexint.h, misc.c: Relaxed tests for __STDC__ + and __STDC_VERSION__ to cope with bugs in GCC and Sun cc. + +2006-03-20 John Millaway <john43@users.sourceforge.net> + + * filter.c: Documented filter chain. Removed fdopen. Added no-op + fseek. + +2006-03-13 John Millaway <john43@users.sourceforge.net> + + * gen.c: Fixed another -Wall report. + +2006-03-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/vi.po: new vi translation + +2006-03-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ga.po, po/nl.po: new nl, ga translations + +2006-02-21 Will Estes <wlestes@users.sourceforge.net> + + * m4/Makefile.am: add po.m4 to extra_dist in m4/ so it gets picked + up by distributions + +2006-02-21 Will Estes <wlestes@users.sourceforge.net> + + * m4/Makefile.am: add nls.m4 to extra_dist in m4/ so it will get + picked up in distribution tarballs + +2006-02-21 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: remove website directory from configure.in + +2006-02-20 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.33 marks in NEWS and configure.in + +2006-02-20 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: change email address in configure.in to point to + flex-help@sourceforge.net + +2006-02-20 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Documentation. + +2006-02-20 John Millaway <john43@users.sourceforge.net> + + * BUGS: Appended to BUGS file. + +2006-02-18 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: remove website directory (since it now has its own + module in the flex project + +2006-02-16 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi, flex.skl: Fixed buffer overflow in reject state + buffer. Corrected documentation on the state buffer. + +2006-02-16 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Reverted num_read from size_t back to int. + +2006-02-15 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, configure.in: Removed reference to RoadMap in + Makefile.am. Added website directory. + +2006-02-15 Will Estes <wlestes@users.sourceforge.net> + + * README, RoadMap: remove RoadMap and reference to it in README + +2006-02-15 John Millaway <john43@users.sourceforge.net> + + * BUGS, README, doc/flex.texi, doc/flex.xml: Eliminated references + to lex.sf.net. + +2006-02-15 John Millaway <john43@users.sourceforge.net> + + * BUGS, flex.skl: Transfered bugs list from lex.sf.net to BUGS file. + +2006-02-15 John Millaway <john43@users.sourceforge.net> + + * tests/test-rescan-nr/.cvsignore, + tests/test-rescan-nr/Makefile.am, tests/test-rescan-nr/scanner.l, + tests/test-rescan-nr/test.input, tests/test-rescan-r/.cvsignore, + tests/test-rescan-r/Makefile.am, tests/test-rescan-r/scanner.l, + tests/test-rescan-r/test.input: Recommit of last commit -- broken + pipe. + +2006-02-15 John Millaway <john43@users.sourceforge.net> + + * configure.in, flex.skl, tests/Makefile.am, tests/descriptions: + yy_lex_destroy calls yy_init_globals to reset everything for next + call to yylex. Added two new tests for reusing scanners. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * flex.spec.in: Patched rpm spec file. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * configure.in, flexint.h: Added C99 macro for inttypes, just to be + conformant. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, nfa.c, parse.y: Changed symbol INFINITE to fix conflict + with C math symbol. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * scan.l: Omitting parens for named rules in trailing context. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * configure.in, main.c, po/ca.po, po/da.po, po/de.po, po/es.po, + po/fr.po, po/ga.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, + po/ro.po, po/ru.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po, + tests/test-mem-nr/scanner.l, tests/test-mem-r/scanner.l: Added check + for locale.h and libintl.h in configure script. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Removed unused local vars. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Removed certain offending #undefs. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * flexint.h: Removed logical and from preprocessor statement. + +2006-02-14 Will Estes <wlestes@users.sourceforge.net> + + * po/nl.po, po/nl.po.1: remove eroneously named nl.po.1; update + nl.po + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * dfa.c: . + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Included <sys/types.h> for serialized tables. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * configure.in: Minor patch to call to head in configure script. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Documentation patch. + +2006-02-14 John Millaway <john43@users.sourceforge.net> + + * filter.c, gen.c, libyywrap.c, main.c: Patch for full file system + failure. + +2006-02-13 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Documentation. + +2006-02-13 John Millaway <john43@users.sourceforge.net> + + * main.c: Fixed double-fclose when input file is empty. + +2006-02-10 Will Estes <wlestes@users.sourceforge.net> + + * po/ca.po, po/da.po, po/de.po, po/es.po, po/fr.po, po/ga.po, + po/ko.po, po/nl.po.1, po/pl.po, po/pt_BR.po, po/ro.po, po/ru.po, + po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po: newtranslations + +2005-12-22 John Millaway <john43@users.sourceforge.net> + + * buf.c, main.c: Improvement request 1069716 log vs. log10 + +2005-12-22 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Fixed bug 1257093 yy_init_globals in header file + +2005-04-14 Will Estes <wlestes@users.sourceforge.net> + + * po/nl.po: new nl translation + +2005-04-07 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/LINGUAS, po/nl.po, po/vi.po: new nl and vi translations + +2004-07-20 Will Estes <wlestes@users.sourceforge.net> + + * filter.c: correct improper stdin assignment + +2004-05-22 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/tr.po: new tr translation + +2004-05-12 Will Estes <wlestes@users.sourceforge.net> + + * .cvsignore, .indent.pro: .cvsignore and .indent.pro got missed in + the import to sourceforge; replace them + +2004-05-11 Will Estes <wlestes@users.sourceforge.net> + + * po/fr.po: new fr translation + +2004-05-03 Will Estes <wlestes@users.sourceforge.net> + + * po/LINGUAS: polish is pl, not po + +2004-03-22 Will Estes <wlestes@users.sourceforge.net> + + * po/sv.po: yet another sweedish update + +2004-03-19 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/sv.po: new sv translation + +2003-12-11 John Millaway <john43@users.sourceforge.net> + + * configure.in, filter.c, main.c: Configure checks for GNU m4. + Environment variable M4 overrides built-in m4 path. Generated m4 + does a late check for GNU m4. + +2003-12-09 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: added 3 faqs + +2003-11-24 Will Estes <wlestes@users.sourceforge.net> + + * po/ro.po: new ro translation + +2003-11-07 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/fr.po: new french translation + +2003-11-07 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ca.po: new catalan translation from the translation + project + +2003-11-07 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/LINGUAS, po/ga.po, po/pl.po: new polish translation; + updated irish translation from translation project + +2003-10-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/LINGUAS, po/ga.po: new Irish translation + +2003-08-25 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/LINGUAS, po/ro.po: add romanian translation + +2003-07-16 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: flex_*int* type fixes + +2003-07-16 Will Estes <wlestes@users.sourceforge.net> + + * tools/cvsauthors: change wlestes email address + +2003-07-16 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: undef yytext_ptr has some bad side effects + +2003-07-07 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi: Documented m4 incompatibility with lex. + +2003-05-21 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: upgrade to gettext 0.12 + +2003-05-20 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, gen.c: patches from manoj via sourceforge + +2003-05-20 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, po/.cvsignore, po/Makevars: upgrade gettext to 0.12; + this allows running make pdf and make ps to be successful + +2003-05-20 Will Estes <wlestes@users.sourceforge.net> + + * doc/.cvsignore: cvs should ignore flex.pdf and flex.ps + +2003-04-25 John Millaway <john43@users.sourceforge.net> + + * TODO: Added yylineno bugs to TODO list. + +2003-04-03 John Millaway <john43@users.sourceforge.net> + + * doc/flex.xml: Docbook. + +2003-04-03 John Millaway <john43@users.sourceforge.net> + + * doc/flex.xml: xml now validates. + +2003-04-02 John Millaway <john43@users.sourceforge.net> + + * doc/flex.xml: Began conversion to DocBook. + +2003-04-01 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.31 + +2003-04-01 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: remove --enable-maintainer-mode configure option + +2003-04-01 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: remove AM_MAINTAINER_MODE + +2003-04-01 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flexdef.h, main.c, misc.c, scan.l: Renamed some internal + variables. + +2003-03-31 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: yylineno is now per-buffer in reentrant scanners + +2003-03-31 John Millaway <john43@users.sourceforge.net> + + * TODO: Added TODO item. + +2003-03-30 John Millaway <john43@users.sourceforge.net> + + * flex.skl, gen.c: yylineno is per-buffer in the reentrant scanner. + support for yycolumn exists, but is not yet developed. + +2003-03-28 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Minor documentation. + +2003-03-28 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: added %top directive + +2003-03-27 John Millaway <john43@users.sourceforge.net> + + * buf.c, configure.in, doc/flex.texi, flexdef.h, main.c, scan.l, + tests/Makefile.am, tests/descriptions, tests/test-top/.cvsignore, + tests/test-top/Makefile.am, tests/test-top/main.c, + tests/test-top/scanner.l, tests/test-top/test.input: Added %top + block syntax. Added test for %top block. Documented %top block. + +2003-03-27 John Millaway <john43@users.sourceforge.net> + + * TODO, doc/flex.texi: Documented the m4 dependency. + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, flexdef.h: check for sys/wait.h since we use wait(2) + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * flexdef.h: reorder include directives so as to catch system + integer types before flex defined values for same + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * TODO: assign tasks due before major release can happen; remove + --enable-maintainer-mode entry + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: only rebuild the ChangeLog if we're inside a cvs + working directory + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, tools/.cvsignore, tools/Makefile.am: add tools/ + subdirectory to distribution + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: remove maintainer_mode conditional; add filter.c and + regex.c to indentfiles; reformat and sort indentfiles so it's easier + to add files in the future + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * doc/Makefile.am: clean up flex.texi processing leftovers with + cleanfiles + +2003-03-26 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-linedir-r/Makefile.am: an awk script wasn't included in + the distribution + +2003-03-26 John Millaway <john43@users.sourceforge.net> + + * TODO, configure.in, tests/Makefile.am, tests/descriptions, + tests/test-include-by-push/.cvsignore, + tests/test-include-by-push/Makefile.am, + tests/test-include-by-push/scanner.l, + tests/test-include-by-push/test-1.input, + tests/test-include-by-push/test-2.input, + tests/test-include-by-push/test-3.input: Added test for + yypush_buffer_state and yypop_buffer_state. + +2003-03-26 John Millaway <john43@users.sourceforge.net> + + * TODO: Removed items from TODO list. + +2003-03-26 John Millaway <john43@users.sourceforge.net> + + * configure.in, tests/Makefile.am, tests/descriptions, + tests/test-linedir-r/.cvsignore, tests/test-linedir-r/Makefile.am, + tests/test-linedir-r/check-lines.awk, tests/test-linedir-r/main.c, + tests/test-linedir-r/scanner.l, tests/test-linedir-r/test.input: + Added test for #line directives. + +2003-03-26 John Millaway <john43@users.sourceforge.net> + + * configure.in, tests/Makefile.am, tests/test-noansi-nr/.cvsignore, + tests/test-noansi-nr/Makefile.am, tests/test-noansi-nr/scanner.l, + tests/test-noansi-nr/test.input, tests/test-noansi-r/.cvsignore, + tests/test-noansi-r/Makefile.am, tests/test-noansi-r/scanner.l, + tests/test-noansi-r/test.input: Added test for noansi (traditional) + options. Reordered the tests so the basic ones are first. + +2003-03-25 Will Estes <wlestes@users.sourceforge.net> + + * TODO, doc/Makefile.am: remove maintainer-mode conditional around + rebuilding of manpage + +2003-03-25 Will Estes <wlestes@users.sourceforge.net> + + * README: mention doc/ for user documentation + +2003-03-25 Will Estes <wlestes@users.sourceforge.net> + + * TODO: rework distribution items + +2003-03-25 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: mention m4 processing + +2003-03-25 Will Estes <wlestes@users.sourceforge.net> + + * tests/README: update instructions for running test suite + +2003-03-25 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h, Makefile.am, TODO, buf.c, configure.in, + doc/flex.texi, filter.c, flex.skl, flexdef.h, gen.c, main.c, + misc.c, options.c, options.h, regex.c, scan.l, sym.c, + tests/test-bison-nr/scanner.l, tests/test-bison-yylloc/scanner.l, + tests/test-reject/scanner.l, tests/test-table-opts/scanner.l: merge + millaway's m4 branch work + +2003-03-24 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi, flex.skl, flexdef.h, gen.c, main.c, options.c, + options.h, scan.l: Option ansi-definitions. Option ansi-prototypes. + Cleaned up some of header. Documented bison-locations. + +2003-03-24 John Millaway <john43@users.sourceforge.net> + + * scan.l: Escaped m4 macros in scan.l which would cause + bootstrapping issues. + +2003-03-21 John Millaway <john43@users.sourceforge.net> + + * doc/flex.texi, flex.skl, main.c: Cleaning up the skel. + +2003-03-20 Will Estes <wlestes@users.sourceforge.net> + + * TODO: we want to move the contents of to.do/Wishlist to top level + TODO + +2003-03-20 John Millaway <john43@users.sourceforge.net> + + * to.do/Wish-List: Assessment of every item in Wish-List. + +2003-03-19 John Millaway <john43@users.sourceforge.net> + + * main.c: Fixed allocation of slightly more memory than needed. + +2003-03-19 John Millaway <john43@users.sourceforge.net> + + * TODO, buf.c, configure.in, flex.skl, flexdef.h, main.c, sym.c: + Start conditions now generated in a single place. + +2003-03-19 Will Estes <wlestes@users.sourceforge.net> + + * TODO: cosmetic changes to TODO list + +2003-03-19 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Cleaned up warnings so multiple headers could coincide. + +2003-03-19 John Millaway <john43@users.sourceforge.net> + + * TODO, flex.skl, main.c: Moved prefixes to m4. + +2003-03-19 John Millaway <john43@users.sourceforge.net> + + * FlexLexer.h, filter.c, flex.skl, flexdef.h, main.c, misc.c, + regex.c: Removed Paxson/Berkeley copyright restriction from filter.c + and regex.c. Inline documentation of much of the generated API. + Line directives now fixed for header and stdin/stdout. Blank lines + squeezed from generated scanner. + +2003-03-18 John Millaway <john43@users.sourceforge.net> + + * filter.c, flexdef.h, main.c, regex.c: Fixed #line directives. + +2003-03-17 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, filter.c, flexdef.h, regex.c: Added regex.c for + regex-related code. Worked on fixing line directives;incomplete. + +2003-03-14 John Millaway <john43@users.sourceforge.net> + + * TODO: Added some TODOs. + +2003-03-14 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, main.c, options.c, options.h, scan.l, + tests/test-bison-nr/scanner.l, tests/test-bison-yylloc/scanner.l: + Bison bridge was simplified to rely less on bison output. New + option bison-locations. + +2003-03-14 John Millaway <john43@users.sourceforge.net> + + * filter.c, flex.skl, flexdef.h, gen.c, main.c, scan.l, + tests/test-reject/scanner.l: Filters are now direct children of main + process. Header file now generated through m4. + +2003-03-14 John Millaway <john43@users.sourceforge.net> + + * buf.c, filter.c, flexdef.h, main.c, misc.c: Added internal filter + ability. Deleted various unused variables. + +2003-03-14 John Millaway <john43@users.sourceforge.net> + + * main.c, tests/test-table-opts/scanner.l: Keeping tests up to date + with m4 changes. Proper wait for all children. + +2003-03-14 John Millaway <john43@users.sourceforge.net> + + * flex.skl, tests/test-table-opts/scanner.l: Moved test-tables to + m4. + +2003-03-14 John Millaway <john43@users.sourceforge.net> + + * flex.skl, main.c, options.c: Moved bison bridge code to m4. + +2003-03-13 John Millaway <john43@users.sourceforge.net> + + * flex.skl, gen.c, main.c, scan.l: Moved YY_USE_LINENO to m4. + +2003-03-13 John Millaway <john43@users.sourceforge.net> + + * buf.c, flexdef.h, scan.l: Added function buf_m4_undefine. + +2003-03-13 John Millaway <john43@users.sourceforge.net> + + * flex.skl, main.c, scan.l: Replaced YY_ALWAYS_INTERACTIVE with m4. + Replaced YY_NEVER_INTERACTIVE with m4. + +2003-03-13 John Millaway <john43@users.sourceforge.net> + + * flex.skl, main.c: Moved YY_TEXT_IS_ARRAY to m4. + +2003-03-12 John Millaway <john43@users.sourceforge.net> + + * flex.skl, gen.c, main.c, tests/test-reject/scanner.l: Renaming + macros from YY_* to M4_YY_* where appropriate. + +2003-03-12 John Millaway <john43@users.sourceforge.net> + + * flex.skl, tests/test-reject/scanner.l, + tests/test-table-opts/scanner.l: Now using local variable "yyg" + instead of lengthly YY_G expansion. + +2003-03-12 John Millaway <john43@users.sourceforge.net> + + * buf.c, filter.c, flex.skl, flexdef.h, main.c, misc.c, options.c, + options.h, scan.l, tests/test-reject/scanner.l: More m4 macro + conversions. Added debugging option --preproc-level=NUM. + +2003-03-11 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, buf.c, flex.skl, flexdef.h, gen.c, main.c, misc.c, + scan.l: Replaced many CPP macros with m4 equivalents. + +2003-03-10 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, filter.c, flex.skl, flexdef.h, main.c, misc.c: Added + filter.c Added filter.c rules to Makefile.am Added filter prototypes + to flexdef.h Flex now filters output through m4. + +2003-03-05 Will Estes <wlestes@users.sourceforge.net> + + * doc/.cvsignore, texinfo.tex: move texinfo.tex to doc/ + +2003-03-05 Will Estes <wlestes@users.sourceforge.net> + + * TODO: update TODO + +2003-03-05 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.29 + +2003-03-04 John Millaway <john43@users.sourceforge.net> + + * FlexLexer.h, flex.skl: Added growable buffer stack to C++ scanner + as well. yyensure_buffer_stack is now static. + +2003-03-02 John Millaway <john43@users.sourceforge.net> + + * flex.skl, misc.c: Removed awkward %push %pop syntax from skeleton. + +2003-03-02 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Renamed YY_CURRENT_BUFFER_FAST to + YY_CURRENT_BUFFER_LVALUE to better reflect its purpose. + +2003-02-28 John Millaway <john43@users.sourceforge.net> + + * NEWS: made entry on input buffer stacks. + +2003-02-28 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, doc/Makefile.am: build on . in top level first; this + will simplify calling help2man + +2003-02-28 John Millaway <john43@users.sourceforge.net> + + * TODO, doc/flex.texi, flex.skl, gen.c, main.c: Removed + yy_current_buffer from the planet. Input buffer states are now in + an internal unbounded stack. Added new internal function, + yyensure_buffer_stack. Added new API function, yypush_buffer_state. + Added new API function, yypop_buffer_state. Documented the new API + calls in the manual. Macro YY_BUFFER_STATE now refers to top of + stack. This revision breaks the C++ scanner (again.) + +2003-02-28 John Millaway <john43@users.sourceforge.net> + + * main.c: Removed some symbols from the undef list. They are needed + for multiple headers to coexist. + +2003-02-27 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, NEWS, configure.in, doc/.cvsignore, doc/Makefile.am, + doc/flex.texi, flex.texi: move flex.texi and flex.1 to new doc/ + subdirectory + +2003-02-27 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: namespace cleanups + +2003-02-26 John Millaway <john43@users.sourceforge.net> + + * main.c: Added a few macros to the undef list. + +2003-02-26 John Millaway <john43@users.sourceforge.net> + + * main.c: Put the undef macros in an array. + +2003-02-12 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.28 + +2003-02-10 Will Estes <wlestes@users.sourceforge.net> + + * README, TODO, configure.in, flex.texi: update documentation to + reflect the sourceforge move + +2003-02-06 Will Estes <wlestes@users.sourceforge.net> + + * TODO: update according to current thinking + +2003-02-06 Will Estes <wlestes@users.sourceforge.net> + + * TODO: mcvs reviewed + +2003-02-06 Will Estes <wlestes@users.sourceforge.net> + + * TODO: sourceforge migration tasks + +2003-02-04 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: Flex now warns if always-interactive is specified with fast + or full; Fixed trailing slash bug in YY_INPUT macro def + +2003-01-31 John Millaway <john43@users.sourceforge.net> + + * scan.l: Flex now warns if always-interactive is specified with + fast or full. + +2003-01-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: switch to using cvs2cl.pl to generate the ChangeLog + +2003-01-31 Will Estes <wlestes@users.sourceforge.net> + + * tools/cvs2cl.pl, tools/cvsauthors: we're going to be switching how + we handle our ChangeLog + +2003-01-29 John Millaway <john43@users.sourceforge.net> + + * gen.c, misc.c: Fixed trailing slash bug in YY_INPUT macro def. + +2003-01-29 Will Estes <wlestes@users.sourceforge.net> + + * README.cvs-snapshot: upgrade texinfo to 4.3d + +2003-01-29 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: the @copying construct works now; thanks to the texinfo + maintainers for finding the problem + +2003-01-21 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.27 + +2003-01-21 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: flex now works with recent bison versions + +2003-01-18 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Check for YYLTYPE_IS_DECLARED. This fixes bison-bridge + with latest bison. + +2003-01-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/pt_BR.po: new pt_br translation + +2003-01-14 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.26 + +2003-01-14 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: Fixed table deserialization bug on big-endian archs. Patch + sent from Bryce Nichols <bryce@bnichols.org> + +2003-01-12 John Millaway <john43@users.sourceforge.net> + + * tables_shared.h: Fixed table deserialization bug on big-endian + archs. Patch sent from Bryce Nichols <bryce@bnichols.org>. + +2003-01-10 Will Estes <wlestes@users.sourceforge.net> + + * README.cvs-snapshot: add version numbers for some tools and + explain about version.texi and --enable-maintainer-mode + +2003-01-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: catch news up + +2003-01-09 John Millaway <john43@users.sourceforge.net> + + * tests/test-mem-nr/scanner.l, tests/test-mem-r/scanner.l: Changed + size_t to yy_size_t in yyalloc() and yyrealloc(). Is this really + what we want? + +2003-01-09 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Changed type of yyleng from size_t to int. This fixes + bug in PostgreSQL compilation. + +2003-01-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: catch news up + +2003-01-09 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: more c++ fixes + +2003-01-09 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in, flex.spec.in: add a spec file + +2003-01-09 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: type cast to pacify c++ compilers; patch from Bruce + Lilly <blilly@erols.com> + +2003-01-08 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: new es translation + +2003-01-08 Will Estes <wlestes@users.sourceforge.net> + + * po/es.po: new spanish translation + +2002-12-19 John Millaway <john43@users.sourceforge.net> + + * gen.c: Fixed bug where YY_G(0) sometimes occurs (created by my + previous commit.) + +2002-12-17 John Millaway <john43@users.sourceforge.net> + + * gen.c: Fixed bug submitted by Bojan Smojver <bojan@rexursive.com> + where the use of yylineno, reentrant, and yymore together caused a + compile-time error. + +2002-12-17 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: update NEWS + +2002-12-17 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Documented new behavior with character ranges. + +2002-12-16 John Millaway <john43@users.sourceforge.net> + + * parse.y: Fixed bug submitted by Bruce Lilly <blilly@erols.com> + where character ranges would yield unexpected behavior in a caseless + scanner. Also, flex now emits a warning if the range looks like + trouble. + +2002-12-16 John Millaway <john43@users.sourceforge.net> + + * ccl.c, flexdef.h: Added utility functions to deal with character + case. + +2002-12-09 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: we don't really need int64 anyway + +2002-12-09 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: apparently some lints are happier with fllthrough + without a space + +2002-12-02 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.25 + +2002-12-02 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: enclose flex.1 target in MAINTERNER_MODE + +2002-12-02 Will Estes <wlestes@users.sourceforge.net> + + * po/pt_BR.po: new pt_br translation + +2002-12-01 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Indexed some more faqs. + +2002-11-29 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Fixed bug in SECOND yyless definition where argument was + not enclosed in parentheses. + +2002-11-29 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Fixed bug in yyless definition where argument was not + enclosed in parentheses. + +2002-11-27 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: flex uses flex_int*_t types + +2002-11-27 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: integer types for non-C99 systems flexint.h + +2002-11-27 John Millaway <john43@users.sourceforge.net> + + * dfa.c, flexint.h, gen.c, tables.c, tables.h, tables_shared.c, + tables_shared.h: Changed int types to flex_intX_t. The build is now + broken until typedef's are established. + +2002-11-27 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: MAINTAINERCLEANFILES: new variable: try to make it so + that make maintainer-clean erases everything not under version + control + +2002-11-27 Will Estes <wlestes@users.sourceforge.net> + + * config.rpath: remove config.rpath + +2002-11-27 Will Estes <wlestes@users.sourceforge.net> + + * README-alpha: just list location of betas + +2002-11-26 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: __STDC_VERSION__ needs an L suffix + +2002-11-26 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/LINGUAS, po/pt_BR.po: new pt_br translation from the + translation project + +2002-11-25 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: include inttypes.h for folks who really are C99 + +2002-11-25 Will Estes <wlestes@users.sourceforge.net> + + * TODO: fix a typo + +2002-11-25 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.24 + +2002-11-23 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: try to make sure we have GNU m4 + +2002-11-23 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-c++-multiple-scanners/Makefile.am: include + tests/test-c++-multipl-scanners/test.input + +2002-11-23 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: more portability fixes + +2002-11-23 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, flexdef.h: apparently on some BSD systems, we need + sys/params.h; reported by millaway + +2002-11-22 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: update NEWS + +2002-11-22 John Millaway <john43@users.sourceforge.net> + + * flex.skl, main.c, tests/test-c++-multiple-scanners/Makefile.am: + Fixed prefix of yyalloc,yyfree,yyrealloc in C++ scanner. Removed + yylex_destroy from C++ scanner. + +2002-11-22 John Millaway <john43@users.sourceforge.net> + + * flex.texi: renamed some faqs. + +2002-11-22 Will Estes <wlestes@users.sourceforge.net> + + * AUTHORS: update wording about authorship + +2002-11-17 John Millaway <john43@users.sourceforge.net> + + * parse.y: Removed space before line num in error messages to look + more like gcc's errors. + +2002-11-06 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/tr.po: new turkish translation from the translation + project + +2002-10-28 Will Estes <wlestes@users.sourceforge.net> + + * gen.c: applied c++ from lilypond folks for std:: reasons + +2002-10-25 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: proofreading + +2002-10-24 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: proofreading + +2002-10-22 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: use c-style header names in c++ for now; at some point + we'll have a separate c++ skeleton and we can go whole-hog pure c++ + +2002-10-22 Will Estes <wlestes@users.sourceforge.net> + + * TODO: c++ rants + +2002-10-22 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: more proofreading + +2002-10-22 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: include intent.pro; indent target is MAINTAINER_MODE + conditional + +2002-10-22 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: When we use AC_PATH_PROG, value-if-not-found is the + name of the program we wanted to find; this will generate more + helpful error messages + +2002-10-21 John Millaway <john43@users.sourceforge.net> + + * tables.c: Added a missing function prototype. + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.23 + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: update NEWS on recent changes + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: use sys/types.h and not inttypes.h + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: check for limits.h + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * TODO: update TODO on recent suggestions + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: titlepage and contents + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: typo + +2002-10-21 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, README.cvs-snapshot: include README.cvs-snapshot in + the distribution; in README-cvs-snapshot, mention the need for + enable-maintainer-mode + +2002-10-21 John Millaway <john43@users.sourceforge.net> + + * flex.texi: typo. + +2002-10-18 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: report the current version info that flex provides; + reformat a list of non-posix features + +2002-10-18 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: report the current version info that flex provides + +2002-10-18 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: FLEX_BETA defined if flex is beta + +2002-10-16 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: if we're doing c++, then we can't use long long + +2002-10-14 Will Estes <wlestes@users.sourceforge.net> + + * TODO: update TODO on several things + +2002-10-11 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: more proofreading + +2002-10-11 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am, tests/test-array-nr/Makefile.am, + tests/test-array-r/Makefile.am, tests/test-basic-nr/Makefile.am, + tests/test-basic-r/Makefile.am, tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c++-basic/Makefile.am, + tests/test-c++-multiple-scanners/Makefile.am, + tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-r/Makefile.am, + tests/test-debug-nr/Makefile.am, tests/test-debug-r/Makefile.am, + tests/test-header-nr/Makefile.am, tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-r/Makefile.am, + tests/test-mem-nr/Makefile.am, tests/test-mem-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-posix/Makefile.am, + tests/test-posixly-correct/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-reject/Makefile.am, + tests/test-string-nr/Makefile.am, tests/test-string-r/Makefile.am, + tests/test-table-opts/Makefile.am, tests/test-yyextra/Makefile.am: + remove BISON assignment as per suggestion from Akim Demaille + +2002-10-11 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in: remove intl from dist + +2002-10-11 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: we use maintainer mode now + +2002-10-11 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: include create-test + +2002-10-11 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.am: rename test to check-local as per Akim + Demaille; test for failed tests so that make check fails if any + tests do + +2002-10-11 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.am: use dist_noinst_scripts as per email from Akim + Demaille + +2002-10-10 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Documentation. + +2002-10-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.22; portability fixes and attn to + the test suite + +2002-10-10 Will Estes <wlestes@users.sourceforge.net> + + * flexint.h: ok, this seems to work + +2002-10-10 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am, tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-header-nr/Makefile.am, tests/test-header-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am: use builddir in tests + that need it in their include path + +2002-10-10 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am: sometimes we put header files in the + builddir and so we should account for that + +2002-10-10 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am: replace the last instance + +2002-10-10 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: include unistd.h and not cunistd as cunistd only seems + to be present on very recent systems + +2002-10-10 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in, flex.skl, flexdef.h, flexint.h: redo + integral types again; add flexint.h; change dependencies caused by + adding flexint.h; remove autoconf wrapper around cunistd; restore + netinet/in.h includes; remove unneded feature checks in configure.in + +2002-10-08 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, flex.skl, flexdef.h: current swipe at header magic; + int types be damned + +2002-10-08 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: change version constant info to reflect change to flex.skl + +2002-10-08 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: remove README-alpha option; add definitions for + FLEX_{MAJOR,MINOR,SUBMINOR}_VERSION + +2002-10-07 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, flexdef.h: ok, here goes; try to handle integral + typedefs in one swell foop + +2002-10-07 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: we check for {u,}int*_t types; maybe this will + simplify things + +2002-10-07 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: we create the tests/TEMPLATE/Makefile so that we can + build the dist archives + +2002-10-07 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: more test suite cleanups + +2002-10-07 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-c++-multiple-scanners/Makefile.am: we don't use header + files... + +2002-10-07 Will Estes <wlestes@users.sourceforge.net> + + * flexdef.h: remove include of malloc.h + +2002-10-04 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: more editing; remove examples index; merge examples + into concept index + +2002-10-04 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: edited one more faq; used C-u C-c C-u C-a to update + menus and nodes since the other updating commands are somewhat + broken; unfortunately this means that all nodes have all pointers + filled in + +2002-10-04 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: yesterday's proofreading + +2002-10-02 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: proofread some more + +2002-10-02 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: proofread edit begins + +2002-10-01 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, tests/Makefile.am, + tests/test-c++-multiple-scanners/.cvsignore, + tests/test-c++-multiple-scanners/Makefile.am, + tests/test-c++-multiple-scanners/main.cpp, + tests/test-c++-multiple-scanners/scanner-1.l, + tests/test-c++-multiple-scanners/scanner-2.l, + tests/test-c++-multiple-scanners/test.input: test c++ with multiple + scanners + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-array-nr/Makefile.am, tests/test-array-r/Makefile.am, + tests/test-basic-nr/Makefile.am, tests/test-basic-r/Makefile.am, + tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c++-basic/Makefile.am, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-r/Makefile.am, tests/test-debug-nr/Makefile.am, + tests/test-debug-r/Makefile.am, tests/test-header-nr/Makefile.am, + tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-r/Makefile.am, + tests/test-mem-nr/Makefile.am, tests/test-mem-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-posix/Makefile.am, + tests/test-posixly-correct/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-reject/Makefile.am, + tests/test-string-nr/Makefile.am, tests/test-string-r/Makefile.am, + tests/test-table-opts/Makefile.am, tests/test-yyextra/Makefile.am: + we used INCLUDES in another place in the Makefile.am files in the + test suite + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-array-nr/Makefile.am, tests/test-array-r/Makefile.am, + tests/test-basic-nr/Makefile.am, tests/test-basic-r/Makefile.am, + tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c++-basic/Makefile.am, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-r/Makefile.am, tests/test-debug-nr/Makefile.am, + tests/test-debug-r/Makefile.am, tests/test-header-nr/Makefile.am, + tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-r/Makefile.am, + tests/test-mem-nr/Makefile.am, tests/test-mem-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-posix/Makefile.am, + tests/test-posixly-correct/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-reject/Makefile.am, + tests/test-string-nr/Makefile.am, tests/test-string-r/Makefile.am, + tests/test-table-opts/Makefile.am, tests/test-yyextra/Makefile.am: + oops, I typed that last s/// command to perl way wrong + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am, tests/test-array-nr/Makefile.am, + tests/test-array-r/Makefile.am, tests/test-basic-nr/Makefile.am, + tests/test-basic-r/Makefile.am, tests/test-bison-nr/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c++-basic/Makefile.am, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-r/Makefile.am, tests/test-debug-nr/Makefile.am, + tests/test-debug-r/Makefile.am, tests/test-header-nr/Makefile.am, + tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-r/Makefile.am, + tests/test-mem-nr/Makefile.am, tests/test-mem-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-posix/Makefile.am, + tests/test-posixly-correct/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-reject/Makefile.am, + tests/test-string-nr/Makefile.am, tests/test-string-r/Makefile.am, + tests/test-table-opts/Makefile.am, tests/test-yyextra/Makefile.am: + use AM_CPPFLAGS instead of INCLUDES; write -I with no space after it + for broken compilers + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: INCLUDES is obsolete; use AM_CPPFLAGS instead + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: apparently, AM_CONFIG_HEADER is obsolete + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * TODO: integrate test suite into automake + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: since we dont run the template test, we dont need to + generate its Makefile either + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: use autoreconf instead of calling individual utilities + separately + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: check for c++ compiler + +2002-09-27 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: re-organize according to suggested layout in + autoconf manual + +2002-09-26 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, NEWS, configure.in: update automake to 1.7 and + autoconf to 2.54 + +2002-09-26 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: use AM_YFLAGS since YFLAGS is a user variable + +2002-09-25 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: catch NEWS up on things, some of which happened a long time + ago; correct punctuation; try to remove some editorializing + +2002-09-25 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, flex.skl, flex.texi: include a single, automatically + generated version number in flex scanners + +2002-09-23 Will Estes <wlestes@users.sourceforge.net> + + * tests/create-test: complain audibly when argument not supplied; + echo on stderr when writing error messages + +2002-09-23 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.am, tests/create-test: DIST_SUBDIRS so we don't + have to run the TEMPLATE test; so we add new tests to SUBDIRS and + DIST_SUBDIRS + +2002-09-23 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am: not all compilers support '-I dir' so + we write '-Idir' instead + +2002-09-23 Will Estes <wlestes@users.sourceforge.net> + + * TODO: reorganize faq entries; proofread the manual + +2002-09-23 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: move c++ experimental warning to top of cxx node + +2002-09-20 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: move stdint.h include to table-serialization section; + we'll still need to think about stdint.h more though + +2002-09-20 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: new smarter skeleton/scanner generation + +2002-09-20 John Millaway <john43@users.sourceforge.net> + + * flex.skl, misc.c: bison-bridge skel handled via %if/%endif pairs. + +2002-09-19 John Millaway <john43@users.sourceforge.net> + + * flex.skl, misc.c: reentrant skel handled via %if/%endif pairs. + +2002-09-19 John Millaway <john43@users.sourceforge.net> + + * flex.skl, misc.c: skeleton uses %push/%pop to keep skelout() scope + sane. skel commands are omitted unless --debug enabled. + +2002-09-19 John Millaway <john43@users.sourceforge.net> + + * flex.skl, main.c, misc.c, tables.h: Added %push and %pop + operations to skel processing. + +2002-09-17 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: flex 2.5.21 + +2002-09-17 John Millaway <john43@users.sourceforge.net> + + * tests/test-reject/Makefile.am: minor fixup for dist. + +2002-09-16 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.20 + +2002-09-16 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: correct typo + +2002-09-16 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: note the new tables functionality + +2002-09-16 John Millaway <john43@users.sourceforge.net> + + * tests/test-multiple-scanners-r/.cvsignore, + tests/test-multiple-scanners-r/Makefile.am: Fixed `clean' target and + .cvsignore. + +2002-09-16 John Millaway <john43@users.sourceforge.net> + + * TODO, flex.skl, flex.texi, main.c, tables_shared.h, + tests/test-multiple-scanners-r/main.c, + tests/test-multiple-scanners-r/scanner-1.l, + tests/test-multiple-scanners-r/scanner-2.l: Serialization works in + headers (%option headers). Serialization code (Tables API) is + complete. + +2002-09-16 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-reject/scanner.l: replace yytables_load with + yytables_fload as per millaway's other changes + +2002-09-15 John Millaway <john43@users.sourceforge.net> + + * TODO, flex.texi: Created user API for tables deserialization. + Documented API and --tables-* options in manual. + +2002-09-15 John Millaway <john43@users.sourceforge.net> + + * flex.skl, tests/test-table-opts/scanner.l: Tables deserialization + uses yyalloc/yyfree. Changed yytables_load to yytables_fload. + +2002-09-15 John Millaway <john43@users.sourceforge.net> + + * tests/test-bison-nr/.cvsignore: minor upkeep. + +2002-09-15 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Categorized and indexed scanner options in manual. + +2002-09-15 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Initialization of reject vars and %array vars in + reentrant scanner. + +2002-09-13 John Millaway <john43@users.sourceforge.net> + + * TODO, configure.in, devel/tables.pl, dfa.c, flex.skl, flex.texi, + gen.c, tables.c, tables_shared.c, tables_shared.h, + tests/Makefile.am, tests/test-reject/.cvsignore, + tests/test-reject/Makefile.am, tests/test-reject/scanner.l, + tests/test-reject/test.input, tests/test-table-opts/Makefile.am: + Created test for reject. Handled reject-triggered tables in + serialization. + +2002-09-13 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: millaway has been very busy + +2002-09-13 John Millaway <john43@users.sourceforge.net> + + * flex.skl, tests/test-table-opts/Makefile.am, + tests/test-table-opts/scanner.l: Added test for multiple tables in + one file. + +2002-09-13 John Millaway <john43@users.sourceforge.net> + + * tests/test-bison-nr/.cvsignore: forgot to add .cvsignore on last + commit. + +2002-09-13 John Millaway <john43@users.sourceforge.net> + + * tests/test-bison-nr/Makefile.am, tests/test-bison-nr/main.c, + tests/test-bison-nr/parser.y, tests/test-bison-nr/scanner.l, + tests/test-bison-nr/test.input: Added test-bison-bridge. + +2002-09-13 John Millaway <john43@users.sourceforge.net> + + * configure.in, flex.skl, flex.texi, flexdef.h, gen.c, main.c, + misc.c, options.c, options.h, scan.l, tables.h, tests/Makefile.am, + tests/descriptions, tests/test-bison-yylloc/scanner.l, + tests/test-bison-yylval/scanner.l, tests/test-table-opts/scanner.l: + Bison bridge code now works for all C scanners and pure/non-pure + bison parsers. Added %option bison-bridge (--bison-bridge). + Removed %option reentrant-bison/--reentrant-bison/-Rb. Scanner + knows the name of its tables. Tables serialization is OK on EOF. + yylineno is present in all scanners. Modified nasty performance + penalty warning w/ yylineno. test-table-opts is now run last + because it's so fat. Updated manual. + +2002-09-12 John Millaway <john43@users.sourceforge.net> + + * flex.texi: documentation of tabels api in manual + +2002-09-12 John Millaway <john43@users.sourceforge.net> + + * TODO, tables.c: Renamed *_fwrite to *_write to reflect writer + abstraction. + +2002-09-11 John Millaway <john43@users.sourceforge.net> + + * devel/tables.pl: Added perl script to read/dump serialized tables + in devel/ + +2002-09-11 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: the debian patch used strlen(yytext) and similar + constructs--as millaway points out, this is better known as yyleng + +2002-09-11 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/de.po: new de translation from the translation project + +2002-09-11 John Millaway <john43@users.sourceforge.net> + + * flex.skl: yytbl_load now checks tables set by name. Localized var + scaope in yytbl_load. + +2002-09-10 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.am: make clean before make test + +2002-09-09 John Millaway <john43@users.sourceforge.net> + + * TODO, flex.skl: Fixed deserialization of --fast tables. + +2002-09-09 Will Estes <wlestes@users.sourceforge.net> + + * TODO: fix typo; remove the yylineo entry + +2002-09-09 John Millaway <john43@users.sourceforge.net> + + * TODO, buf.c, devel/dump-tables.pl, dfa.c, flex.skl, flexdef.h, + gen.c, main.c, misc.c, options.c, options.h, scan.l, tables.c, + tables.h, tables_shared.h, tests/test-table-opts/.cvsignore, + tests/test-table-opts/Makefile.am, tests/test-table-opts/scanner.l: + Table deserialization works for everything except --fast scanners. + Scanners can auto-verify serialized table integrity via + --tables-verify. Added tables API items to TODO list. + test-table-opts is becoming exhaustive (a good thing). + +2002-09-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: flex has better internal diagnostics + +2002-09-09 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, flexdef.h: test for presence of __func__ and + compensate if absent + +2002-09-09 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: include the intl/ subdirectory when searching for + include files + +2002-09-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ru.po, po/sv.po: new sv, ru translations from the + translation project + +2002-09-07 John Millaway <john43@users.sourceforge.net> + + * flex.skl, misc.c: Changed cryptic skeleton markers to readable + form. + +2002-09-07 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, dfa.c, flex.skl, flex.texi, flexdef.h, gen.c, + main.c, misc.c, parse.y, tables.c, tables.h, tables_shared.c, + tables_shared.h: Members of struct yy_trans_info are now forced to + be the same size. Added shared file tables_shared.c. Separated + tables.h from flexdef.h Bulk of table deserialization code is done. + +2002-09-06 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ca.po: new ca translation + +2002-09-06 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: new fr translation + +2002-09-06 Will Estes <wlestes@users.sourceforge.net> + + * po/fr.po: new french translation from the translation project + +2002-09-05 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: c99 function defs by default + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, tables.c: Added flex_die macro. May need some autoconf + massaging. Added thorough error checking in tables code. + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi: Flex generates C99 defs now. Documented the + above change in manual. + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * tests/test-table-opts/.cvsignore, + tests/test-table-opts/Makefile.am: Added serialization test to + table-opts test. + +2002-09-05 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: oops, i made a typo + +2002-09-05 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.19 + +2002-09-05 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: use FLEX_EXIT(), not exit() + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * devel/00EXTRACT-ALL-SYMS.sh, devel/README, devel/dump-tables.pl: + Added devel/ directory for junk that we don't want in the + distribution, but that we want in CVS. + +2002-09-05 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: s/exit(1)/exit(EXIT_FAILURE) + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * dfa.c, gen.c: Tables are now generated with %option + tables-file=FILE. + +2002-09-05 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: catch up on a few things + +2002-09-05 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: prevent segfault on input lines which are longer than the + allocated space (problem report from Manoj Srivastava + <srivasta@golden-gryphon.com>) + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * flex.texi, main.c, options.c, options.h: Changed option 'header' + to 'header-file'. 'header' still works, though. + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * flex.texi, flexdef.h, gen.c, main.c, options.c, options.h, + scan.l, tables.c: Tons more work on tables. + +2002-09-05 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, gen.c, tables.c, tables_shared.h: Lots of work on + tables serialization code. + +2002-09-04 Will Estes <wlestes@users.sourceforge.net> + + * README.cvs-snapshot: mention GNU indent + +2002-09-04 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: remove the word after from the version line + +2002-09-03 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.18 + +2002-09-03 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: catch up on the NEWS + +2002-09-03 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.am: target test: quote the results echoing so that + the ECHO_C will work on systems where it is used + +2002-09-03 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: when we don't have GNU indent, the test will + generate output on stderr, so we send that to /dev/null + +2002-09-03 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: fixed bug whereby bison was reported missing even + when it was found + +2002-09-02 John Millaway <john43@users.sourceforge.net> + + * tables.c: In-code documentation. + +2002-09-02 John Millaway <john43@users.sourceforge.net> + + * flexdef.h: Forgot to indent before previous commit. + +2002-09-02 John Millaway <john43@users.sourceforge.net> + + * flexdef.h: Added known integer limits if undefined. + +2002-08-29 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: version 2.5.17 + +2002-08-29 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: more portability fixes; new version number + +2002-08-29 Will Estes <wlestes@users.sourceforge.net> + + * flexdef.h, main.c, misc.c, scanopt.c: #include fixes; we've + factored out all the system include files and put them in flexdef.h + +2002-08-29 Will Estes <wlestes@users.sourceforge.net> + + * dfa.c: eat a blank line + +2002-08-29 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: new config.{sub,guess} files; mention that we use indent on + flex + +2002-08-28 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: warn if no indent found; version 2.5.16 + +2002-08-28 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: catch up on recent changes; version 2.5.16 + +2002-08-27 Will Estes <wlestes@users.sourceforge.net> + + * buf.c, ccl.c, dfa.c, ecs.c, flexdef.h, gen.c, libmain.c, + libyywrap.c, main.c, misc.c, nfa.c, options.c, options.h, + scanopt.c, scanopt.h, sym.c, tables.c, tables_shared.h, tblcmp.c, + yylex.c: ran the indent target; commit the results + +2002-08-27 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: touch up the indent targeet; it's ready for + production use now + +2002-08-27 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: test for GNU indent; reorder the tests somewhat + +2002-08-23 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: automake is smarter about autoconf's versioning + scheme + +2002-08-23 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: catch NEWS up on what we've been doing + +2002-08-22 Will Estes <wlestes@users.sourceforge.net> + + * flexdef.h: do some more conditional including for folks without + standard systems + +2002-08-22 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-c++-basic/Makefile.am: use CXX to link the test scanner + here + +2002-08-22 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Documentation. + +2002-08-22 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Created 'indent' target and added .indent.pro. + +2002-08-22 John Millaway <john43@users.sourceforge.net> + + * tests/test-array-nr/Makefile.am, tests/test-array-r/Makefile.am, + tests/test-basic-nr/Makefile.am, tests/test-basic-r/Makefile.am, + tests/test-c-cpp-nr/Makefile.am: Fixed missing 'make clean' files. + +2002-08-22 John Millaway <john43@users.sourceforge.net> + + * tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am: fixed missing 'clean' file. + +2002-08-22 John Millaway <john43@users.sourceforge.net> + + * flex.skl, tests/test-c++-basic/Makefile.am, + tests/test-c++-basic/scanner.l: Removed core of yylex_destroy from + c++ scanner -- hack! Added -lstdc++ to LDFLAGS (should we have to do + this??) + +2002-08-21 Will Estes <wlestes@users.sourceforge.net> + + * README: official releases are being hosted by Vern + +2002-08-21 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: new beta version; more entries in NEWS from + millaway; the top level entry for test-c++-basic + +2002-08-21 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.am, tests/test-c++-basic/.cvsignore, + tests/test-c++-basic/Makefile.am, tests/test-c++-basic/scanner.l, + tests/test-c++-basic/test.input: add test-c++-basic + +2002-08-21 John Millaway <john43@users.sourceforge.net> + + * gen.c, nfa.c: More tabels work. + +2002-08-21 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, gen.c, tables.c, tables_shared.h: More work on tables. + +2002-08-20 John Millaway <john43@users.sourceforge.net> + + * dfa.c: Cleaned up macros that took no ';'. + +2002-08-20 John Millaway <john43@users.sourceforge.net> + + * scanopt.c: Fixed oddball '=-'. + +2002-08-20 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi, gen.c: Dynamically allocate REJECT state + buffer. Mentioned memory usage in docs. Made REJECT buffer + variables reentrant-safe. + +2002-08-20 John Millaway <john43@users.sourceforge.net> + + * tables.c: More work on tables code. + +2002-08-20 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, NEWS, configure.in: we're using m4 so have configure + test for it + +2002-08-20 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, tables.c: Added tables.c and rebuilt dependencies. + +2002-08-20 John Millaway <john43@users.sourceforge.net> + + * TODO, flex.texi: Dicussed prototypes and header in manual. + +2002-08-19 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, configure.in, flex.skl, flexdef.h, tables_shared.h: + More work on tables serialization. + +2002-08-19 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, mkskel.sh: Skeleton is now passed through m4 (before + dist is built). + +2002-08-19 Will Estes <wlestes@users.sourceforge.net> + + * po/LINGUAS, po/zh_CN.po: add zh_cn translation from the + translation project + +2002-08-19 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: millaway's done a lot of things which need to be mentioned + in NEWS + +2002-08-18 John Millaway <john43@users.sourceforge.net> + + * main.c: Removed #undef of start conditions. + +2002-08-17 John Millaway <john43@users.sourceforge.net> + + * TODO: todo list + +2002-08-17 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, main.c, misc.c: Start conditions now optional in + header. undef's now optional in header. Start conditions are NOT + prefixed. + +2002-08-17 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi: Working on tables API. + +2002-08-16 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, main.c, misc.c, options.c, options.h, parse.y, scan.l: + Added --tables option. Omitted tables code from generated scanner + when unused. + +2002-08-16 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi, misc.c: Prelimary work on tables API. + +2002-08-16 John Millaway <john43@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am, tests/test-array-nr/Makefile.am, + tests/test-array-r/Makefile.am, tests/test-basic-nr/Makefile.am, + tests/test-basic-r/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-r/Makefile.am, + tests/test-debug-nr/Makefile.am, tests/test-debug-r/Makefile.am, + tests/test-header-nr/Makefile.am, tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-r/Makefile.am, + tests/test-mem-nr/Makefile.am, tests/test-mem-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-posix/Makefile.am, + tests/test-posixly-correct/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-string-nr/Makefile.am, + tests/test-string-r/Makefile.am, tests/test-table-opts/Makefile.am, + tests/test-yyextra/Makefile.am: Tests now respect CFLAGS, CPPFLAGS, + etc.. + +2002-08-16 John Millaway <john43@users.sourceforge.net> + + * tests/test-basic-nr/scanner.l, tests/test-basic-r/scanner.l, + tests/test-lineno-nr/scanner.l, tests/test-lineno-r/scanner.l: Got + rid of flex -s warnings in tests. + +2002-08-16 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Updated dependencies list. + +2002-08-15 John Millaway <john43@users.sourceforge.net> + + * main.c: Fixed seg fault bug in ecs. + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-c-cpp-nr/.cvsignore, tests/test-c-cpp-r/.cvsignore: + ignore .cpp files since we generate them instead of .c + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: version 2.5.14 + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: c-as-c++ tests reworked + +2002-08-15 John Millaway <john43@users.sourceforge.net> + + * tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-nr/scanner.l, + tests/test-c-cpp-r/Makefile.am, tests/test-c-cpp-r/scanner.l: The + c++ tests use .cpp instead of .c extensions just to be on the safe + side. + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * main.c: conditionally include <locale.h>; include config.h as well + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, flex.skl: only include <cunistd> if we have it + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: portability fixes; added missing punctuation; de translation + now included + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * po/LINGUAS: we also translate to german + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: require automake at least 1.6 + +2002-08-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.13 + +2002-08-14 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: reverted away from the @copying as it breaks the info + reader + +2002-08-14 John Millaway <john43@users.sourceforge.net> + + * flex.texi, flexdef.h, main.c, misc.c: Start condition prefixes + attempts to adjust to user preferences. + +2002-08-13 John Millaway <john43@users.sourceforge.net> + + * main.c: Include start condition symbols in header. + +2002-08-13 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, main.c: Omit user code and tables from generated header + file. + +2002-08-13 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: use @copying construct to display the flex license; + move copying and bug reporting to the front of the manual + +2002-08-13 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: printf fix and yylex_init reports errors + +2002-08-12 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Updated manual for %option header. + +2002-08-12 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi, gen.c: Fixed type mismatch in printf. + yylex_init now reports errors. + +2002-08-10 John Millaway <john43@users.sourceforge.net> + + * dfa.c, main.c: Added alignment flag for future use. + +2002-08-10 John Millaway <john43@users.sourceforge.net> + + * tests/test-table-opts/.cvsignore, + tests/test-table-opts/Makefile.am: Added options to test-table-opts + +2002-08-10 John Millaway <john43@users.sourceforge.net> + + * configure.in, tests/Makefile.am, tests/descriptions, + tests/test-c-cpp-nr/Makefile.am, tests/test-table-opts/.cvsignore, + tests/test-table-opts/Makefile.am, tests/test-table-opts/scanner.l, + tests/test-table-opts/test.input: Added a test for various DFA table + options. + +2002-08-09 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: more faq editing; corrected mistyped nodenames + +2002-08-09 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: fix typo which propogates out to generated scanners + +2002-08-09 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: edited a few more faqs + +2002-08-09 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, faq.texi: remove faq.texi as it's included in + flex.texi + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: a few more faq edits; remove faq-89 + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: cite, not site + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: and get the faq included + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: fix some grammer/typography in the top node and add a + detailed menu + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * TODO: we've updated gettext + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * po/.cvsignore: we need to ignore a few more gettext files + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.12 + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: mention gettext; document the non-need for bison/flex in the + build process + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in: include intl in the distribution and in + the build process + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: builddir in help2man call needed @-signs around it + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * po/.cvsignore: we can ignore Makefile.in.in + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * m4/.cvsignore, m4/Makefile.am: oops, too hasty on deleting this + directory, sigh + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: if autopoint is going to run automatically, it's going + to need to be able to update existing files + +2002-08-08 Will Estes <wlestes@users.sourceforge.net> + + * ABOUT-NLS, autogen.sh, configure.in, m4/.cvsignore, + m4/Makefile.am, m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, + m4/iconv.m4, m4/isc-posix.m4, m4/lcmessage.m4, m4/lib-ld.m4, + m4/lib-link.m4, m4/lib-prefix.m4, m4/progtest.m4: autopoint now + works so let's let it run the gettext show + +2002-08-07 Will Estes <wlestes@users.sourceforge.net> + + * TODO: we need to index the faq entries + +2002-08-07 Will Estes <wlestes@users.sourceforge.net> + + * faq.texi: proofed "Why do flex scanners call fileno if it is not + ANSI compatible?" + +2002-08-07 Will Estes <wlestes@users.sourceforge.net> + + * faq.texi: proofed "How do I expand \ escape sequences in C-style + quoted strings?" + +2002-08-07 Will Estes <wlestes@users.sourceforge.net> + + * README: changes to README to align with GNU coding standards + +2002-08-06 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: help2man should look in builddir for the flex binary + +2002-08-02 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Fixed yyunput prototype. + +2002-08-01 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: new fr translation from the translation project + +2002-08-01 Will Estes <wlestes@users.sourceforge.net> + + * po/fr.po: new fr.po translation from the translation project + +2002-08-01 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: yylineno performance hit is fixed + +2002-07-31 John Millaway <john43@users.sourceforge.net> + + * TODO, flex.texi: Updated docs on yylineno. + +2002-07-31 Will Estes <wlestes@users.sourceforge.net> + + * TODO: discuss yylineno performance + +2002-07-31 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: forgot to say what the date was that we made the release + +2002-07-31 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: version 2.5.11 + +2002-07-31 Will Estes <wlestes@users.sourceforge.net> + + * faq.texi: fixed a menu entry and related problems + +2002-07-31 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: someday, maybe we can use autopoint + +2002-07-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: we need to include texinfo.tex now + +2002-07-31 Will Estes <wlestes@users.sourceforge.net> + + * texinfo.tex: add texinfo.tex + +2002-07-30 Will Estes <wlestes@users.sourceforge.net> + + * faq.texi: fix up some fatal bugs in the texinfo of the faq; begin + the clean up; remove trailing and leading white space + +2002-07-30 Will Estes <wlestes@users.sourceforge.net> + + * TODO: faqs need work + +2002-07-30 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, TODO: prototypes get airtime these days + +2002-07-28 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Added some comments. + +2002-07-28 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Fixed bug where yyless did not consider yylineno. + +2002-07-28 John Millaway <john43@users.sourceforge.net> + + * scan.l: Fixed bug I created in previous commit. + +2002-07-28 John Millaway <john43@users.sourceforge.net> + + * scan.l: Don't wrap ()s around {NAMEDEFS} at the end of a rule. + +2002-07-27 John Millaway <john43@users.sourceforge.net> + + * flex.skl, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-r/Makefile.am: Fixed test-c-cpp to actually use the + C++ compiler for the test. Fixed the bug that this exposed. + +2002-07-27 John Millaway <john43@users.sourceforge.net> + + * ccl.c, flex.skl, flexdef.h, gen.c, main.c, nfa.c, parse.y, scan.l: + yylineno check is only performed on rules whose regexs can match a + newline. + +2002-07-25 John Millaway <john43@users.sourceforge.net> + + * flex.skl, tests/TEMPLATE/scanner.l, + tests/test-array-nr/scanner.l, tests/test-array-r/scanner.l, + tests/test-basic-nr/scanner.l, tests/test-basic-r/scanner.l, + tests/test-bison-yylloc/parser.y, tests/test-c-cpp-nr/scanner.l, + tests/test-c-cpp-r/scanner.l, tests/test-debug-nr/scanner.l, + tests/test-debug-r/scanner.l, + tests/test-include-by-buffer/scanner.l, + tests/test-include-by-reentrant/scanner.l, + tests/test-lineno-nr/scanner.l, tests/test-lineno-r/scanner.l, + tests/test-mem-nr/scanner.l, tests/test-mem-r/scanner.l, + tests/test-posix/scanner.l, tests/test-posixly-correct/scanner.l, + tests/test-prefix-nr/scanner.l, tests/test-prefix-r/scanner.l, + tests/test-pthread/scanner.l, tests/test-string-nr/scanner.l, + tests/test-string-r/scanner.l, tests/test-yyextra/scanner.l: All + prototypes were rewritten to depend upon the macro + YY_TRADITIONAL_FUNC_DEFS, which is defined by default. The + generated scanners build cleanly under gcc's traditional strictness + and under C++ compilers. + +2002-07-24 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: dist-bzip2 and rename yy_globals and yy_globals_t + +2002-07-24 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: version 2.5.10 + +2002-07-24 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: add dist-bzip2 to automake_options so we'll start + getting tar.bz2 archives + +2002-07-23 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi, tests/test-bison-yylval/scanner.l, + tests/test-mem-r/scanner.l, + tests/test-multiple-scanners-r/scanner-1.l, + tests/test-multiple-scanners-r/scanner-2.l, + tests/test-prefix-r/scanner.l, tests/test-pthread/scanner.l, + tests/test-yyextra/scanner.l: s/yy_globals_t/yyguts_t/g + s/yy_globals/yyscanner/g + +2002-07-23 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: typo in tags target + +2002-07-22 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Removed erroneous $(srcdir) from help2man target. + +2002-07-22 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, configure.in: it's version 2.5.9 now + +2002-07-22 Will Estes <wlestes@users.sourceforge.net> + + * po/.cvsignore: updated gettext to 0.11.3 + +2002-07-22 Will Estes <wlestes@users.sourceforge.net> + + * ABOUT-NLS, config.rpath, m4/gettext.m4, m4/iconv.m4, + m4/isc-posix.m4, m4/lcmessage.m4, m4/lib-link.m4: updated gettext to + version 0.11.3 + +2002-07-22 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh, configure.in: rollback on configure.in and autogen.sh + because autpoint is broken + +2002-07-22 Will Estes <wlestes@users.sourceforge.net> + + * po/ru.po: new russian translation from translation project + +2002-07-19 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: ok, we're going to start using autopoint, but the tree + is going to undergo some changes after this + +2002-07-19 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: we're preparing for autopoint + +2002-07-17 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Updated manual. + +2002-07-17 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: update the NEWS file for lots of things millaway has done + +2002-07-17 John Millaway <john43@users.sourceforge.net> + + * flex.skl, main.c, misc.c, scan.l, scanopt.c, sym.c, + tests/test-mem-nr/scanner.l, tests/test-mem-r/scanner.l: Fixed + prototype/definition conflicts with "traditional" C in skeleton at + request of gcc developer. Removed duplicate prototypes in gen.c, + sym.c, main.c. Added missing prototypes where needed. All + functions in skeleton follow ISO C style protos and defs, instead of + BOTH ISO and new-style. Skeleton now compiles cleanly under + super-strict gcc flags. Flex itself almost compiles cleanly under + strict flags. + +2002-07-15 John Millaway <john43@users.sourceforge.net> + + * faq.texi, flex.texi: Worked on mem mgmt sect of manual. + +2002-07-15 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: allow blank lines and continuations in more places + +2002-07-12 Will Estes <wlestes@users.sourceforge.net> + + * TODO: millaway finished the faqs directory + +2002-07-12 Will Estes <wlestes@users.sourceforge.net> + + * TODO: removed items as per email from millaway + +2002-07-12 John Millaway <john43@users.sourceforge.net> + + * configure.in, tests/Makefile.am, tests/descriptions, + tests/test-posix/.cvsignore, tests/test-posix/Makefile.am, + tests/test-posix/scanner.l, tests/test-posixly-correct/.cvsignore, + tests/test-posixly-correct/Makefile.am, + tests/test-posixly-correct/scanner.l: Added test for %option + posix-compat and repeat operator. Added test for POSIXLY_CORRECT + environment variable and repeat operator. + +2002-07-12 John Millaway <john43@users.sourceforge.net> + + * main.c, scan.l: Fixed POSIXLY_CORRECT detection in scanner. + +2002-07-11 John Millaway <john43@users.sourceforge.net> + + * faq.texi: More work on faq. + +2002-07-11 John Millaway <john43@users.sourceforge.net> + + * faq.texi: Moved all faqs into manual -- but did not evaluate them + yet. Removed the old faq files. + +2002-07-10 John Millaway <john43@users.sourceforge.net> + + * main.c: Removed duplicate definition of FLEX_DEBUG. gcc doesn't + care, but other compilers might. + +2002-07-10 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Wrote some more about memory mgmt in the manual. + +2002-07-10 John Millaway <john43@users.sourceforge.net> + + * flex.texi: flex.texi now works with install-info. + +2002-07-10 Will Estes <wlestes@users.sourceforge.net> + + * TODO: added items as per email from millaway + +2002-07-10 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: after we release a version, we have to keep the version + number in NEWS current + +2002-07-10 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi, main.c, scan.l, tests/test-mem-nr/scanner.l, + tests/test-mem-r/scanner.l: Fixed prefix issue with get/set debug + functions. Fixed prefix issues with memory functions. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Memory functions are no longer static. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * tests/test-mem-nr/test.input: Added a missing input file for + test-mem-nr/ + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * tests/test-mem-nr/.cvsignore, tests/test-mem-nr/Makefile.am, + tests/test-mem-nr/scanner.l, tests/test-mem-r/.cvsignore, + tests/test-mem-r/Makefile.am, tests/test-mem-r/scanner.l, + tests/test-mem-r/test.input: Added tests for overriding memory. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Added sections in manual for memory management. + +2002-07-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: noted more user visible changes + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * configure.in, flex.skl, scan.l, tests/Makefile.am: Added + yylex_destroy() to non-reentrant scanner. Added ability to override + memory functions. Added tests for overriding memory functions. + +2002-07-09 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: new POSIXLY_CORRECT and new ru translation + +2002-07-09 Will Estes <wlestes@users.sourceforge.net> + + * po/ru.po: new ru translation from the translation project + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Made note of set/get debug in docs. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * configure.in, flexdef.h, tests/create-test: Replaced obsolete + macros in configure.in. Modified create-test to handle the above + changes in configure.in. Added support for <stdbool.h>. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * main.c: Check POSIXLY_CORRECT env variable. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Added prototypes for the get/set debug functions. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * configure.in, flex.skl, gen.c, main.c, scan.l, tests/Makefile.am, + tests/test-debug-nr/.cvsignore, tests/test-debug-nr/Makefile.am, + tests/test-debug-nr/scanner.l, tests/test-debug-nr/test.input, + tests/test-debug-r/.cvsignore, tests/test-debug-r/Makefile.am, + tests/test-debug-r/scanner.l, tests/test-debug-r/test.input: Made + yy_flex_debug non-global in reentrant scanner. Created get/set + functions for yy_flex_debug. Defined prefixes for new yy_flex_debug + symbols. Added tests/ for yy_flex_debug. + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * tests/create-test: create-test script now modifies .cvsignore + +2002-07-09 John Millaway <john43@users.sourceforge.net> + + * tests/create-test: Improved the error checking. + +2002-07-03 Will Estes <wlestes@users.sourceforge.net> + + * main.c: fix bug whereby prefix didn't get passed to everybody; + patch by rse@engelschall.com + +2002-07-03 Will Estes <wlestes@users.sourceforge.net> + + * faq.texi: ~ is an active character, so we'll just use the word + 'about' + +2002-07-02 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Fixed typo. + +2002-07-02 John Millaway <john43@users.sourceforge.net> + + * faq.texi: Added a faq. + +2002-06-28 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Added 'tags' target -- something I should have done + long ago. + +2002-06-28 Will Estes <wlestes@users.sourceforge.net> + + * TODO: add two new items regarding coding; remove tests/ copyright + notice item as it's done + +2002-06-26 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: note the copyright messages in tests/ + +2002-06-25 John Millaway <john43@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am, tests/TEMPLATE/parser.y, + tests/TEMPLATE/scanner.l, tests/test-array-nr/Makefile.am, + tests/test-array-nr/scanner.l, tests/test-array-r/Makefile.am, + tests/test-array-r/scanner.l, tests/test-basic-nr/Makefile.am, + tests/test-basic-nr/scanner.l, tests/test-basic-r/Makefile.am, + tests/test-basic-r/scanner.l, tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylloc/main.c, tests/test-bison-yylloc/parser.y, + tests/test-bison-yylloc/scanner.l, + tests/test-bison-yylval/Makefile.am, + tests/test-bison-yylval/main.c, tests/test-bison-yylval/parser.y, + tests/test-bison-yylval/scanner.l, tests/test-c-cpp-nr/Makefile.am, + tests/test-c-cpp-nr/scanner.l, tests/test-c-cpp-r/Makefile.am, + tests/test-c-cpp-r/scanner.l, tests/test-header-nr/Makefile.am, + tests/test-header-nr/main.c, tests/test-header-nr/scanner.l, + tests/test-header-r/Makefile.am, tests/test-header-r/main.c, + tests/test-header-r/scanner.l, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-buffer/scanner.l, + tests/test-include-by-reentrant/Makefile.am, + tests/test-include-by-reentrant/scanner.l, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-nr/scanner.l, + tests/test-lineno-r/Makefile.am, tests/test-lineno-r/scanner.l, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-nr/main.c, + tests/test-multiple-scanners-nr/scanner-1.l, + tests/test-multiple-scanners-nr/scanner-2.l, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-multiple-scanners-r/main.c, + tests/test-multiple-scanners-r/scanner-1.l, + tests/test-multiple-scanners-r/scanner-2.l, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-nr/scanner.l, + tests/test-prefix-r/Makefile.am, tests/test-prefix-r/scanner.l, + tests/test-pthread/Makefile.am, tests/test-pthread/scanner.l, + tests/test-string-nr/Makefile.am, tests/test-string-nr/scanner.l, + tests/test-string-r/Makefile.am, tests/test-string-r/scanner.l, + tests/test-yyextra/Makefile.am, tests/test-yyextra/scanner.l: + Prepended explicit license to all test-*/ sources. + +2002-06-25 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, po/ca.po, po/de.po, po/fr.po, po/sv.po, po/tr.po: new ca, + de, fr, sv, tr translations + +2002-06-19 Will Estes <wlestes@users.sourceforge.net> + + * TODO: add bootstrapper to the todo list + +2002-06-19 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: new version number + +2002-06-19 Will Estes <wlestes@users.sourceforge.net> + + * TODO: update TODO list + +2002-06-19 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, TODO, flex.texi, flexdef.h, main.c, options.c, options.h, + parse.y, scan.l: address typos in NEWS; add --posix option for ERE + parsing the way posix wants it; update the TODO file + +2002-05-31 Will Estes <wlestes@users.sourceforge.net> + + * README-alpha: made code quality warning more explicit; gave url + for cvs and beta flex + +2002-05-23 John Millaway <john43@users.sourceforge.net> + + * gen.c: Fixed bug where omission of user section 3 caused unmatched + #ifdef's in generated code. + +2002-05-20 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: configure.in requires at least autoconf 2.50 + +2002-05-13 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Updated my email address. + +2002-05-10 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, misc.c: chomp'd lines when reading external skel file. + +2002-05-07 Will Estes <wlestes@users.sourceforge.net> + + * po/sv.po: new sweedish translation from the translation project + +2002-04-29 Will Estes <wlestes@users.sourceforge.net> + + * po/ca.po: new catalan translation from the translation project + +2002-04-29 Will Estes <wlestes@users.sourceforge.net> + + * po/es.po: new spanish translation from the translation project + +2002-04-25 Will Estes <wlestes@users.sourceforge.net> + + * TODO: note that the lex matching of abc{1,3} is the posix behavior + and so we have a problem + +2002-04-25 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: note that the lex matching of abc{1,3} is the posix + behavior + +2002-04-23 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: new version 2.5.7; use autoconf versioning info + +2002-04-23 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: note changes in 2.5.7 + +2002-04-23 Will Estes <wlestes@users.sourceforge.net> + + * main.c: conditional compile gettext initialization + +2002-04-22 Will Estes <wlestes@users.sourceforge.net> + + * po/de.po: new german translation from the translation project + +2002-04-19 John Millaway <john43@users.sourceforge.net> + + * tests/test-include-by-reentrant/Makefile.am: Fixed command line + for test-include-by-reentrant/Makefile.am + +2002-04-19 John Millaway <john43@users.sourceforge.net> + + * tests/Makefile.am, tests/TEMPLATE/Makefile.am, + tests/test-array-nr/Makefile.am, tests/test-array-r/Makefile.am, + tests/test-basic-nr/Makefile.am, tests/test-basic-r/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-r/Makefile.am, + tests/test-header-nr/Makefile.am, tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-string-nr/Makefile.am, + tests/test-string-r/Makefile.am, tests/test-yyextra/Makefile.am: + Added -I . to compiler search path in tests (so it finds the + generated parser.h). + +2002-04-19 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, misc.c, parse.y, sym.c: Applied 'const' to a few more + char*, where appropriate. + +2002-04-19 John Millaway <john43@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am, tests/test-array-nr/Makefile.am, + tests/test-array-r/Makefile.am, tests/test-basic-nr/Makefile.am, + tests/test-basic-r/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-r/Makefile.am, + tests/test-header-nr/Makefile.am, tests/test-header-r/Makefile.am, + tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-reentrant/Makefile.am, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-string-nr/Makefile.am, + tests/test-string-r/Makefile.am, tests/test-yyextra/Makefile.am: + Added top_builddir to -I path. Changed $(srcdir)/$(testname) to + ./$(testname) in 'make test' rule. + +2002-04-19 John Millaway <john43@users.sourceforge.net> + + * flexdef.h, gen.c, misc.c: Changed 'char[]' to 'const char*' + wherever in conflicted with gettext. + +2002-04-19 Will Estes <wlestes@users.sourceforge.net> + + * po/fr.po, po/sv.po: new files from translation after 2.5.6 beta + release + +2002-04-18 John Millaway <john43@users.sourceforge.net> + + * tests/test-lineno-r/Makefile.am: Fixed minor typo/cut and paste + error. + +2002-04-18 John Millaway <john43@users.sourceforge.net> + + * configure.in: Added yylineno test. + +2002-04-18 John Millaway <john43@users.sourceforge.net> + + * tests/Makefile.am: Added yylineno tests. + +2002-04-18 John Millaway <john43@users.sourceforge.net> + + * tests/test-lineno-nr/.cvsignore, + tests/test-lineno-nr/Makefile.am, tests/test-lineno-nr/scanner.l, + tests/test-lineno-nr/test.input, tests/test-lineno-r/.cvsignore, + tests/test-lineno-r/Makefile.am, tests/test-lineno-r/scanner.l, + tests/test-lineno-r/test.input: Created yylineno tests. + +2002-04-15 John Millaway <john43@users.sourceforge.net> + + * scanopt.c: Applied gettext macros to error messages from scanopt. + +2002-04-15 John Millaway <john43@users.sourceforge.net> + + * buf.c, faq.texi, options.c, options.h, scanopt.c, scanopt.h: + Changed copyright from Millaway to flex? U.S. Gov't? Regents of U. + Cali.? Paxson? + +2002-04-15 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-bison-yylloc/Makefile.am, + tests/test-header-nr/Makefile.am, tests/test-header-r/Makefile.am: + we missed a few main.c files in the distribution + +2002-04-15 Will Estes <wlestes@users.sourceforge.net> + + * TODO: a lot more work has happened to flex; note this by removing + a number of TODO entries + +2002-04-15 Will Estes <wlestes@users.sourceforge.net> + + * TODO: make sure all gettext modules use gettext translation + facilities + +2002-04-14 John Millaway <john43@users.sourceforge.net> + + * faq.texi: Converted faqs 34-41 to texinfo. + +2002-04-14 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, faq.texi, flex.texi: Added faq.texi to archive. + Added faq.texi to flex_TEXINFOS macro in Makefile.am. flex.texi now + includes faq.texi. + +2002-04-13 John Millaway <john43@users.sourceforge.net> + + * flexdef.h: defined FLEX_EXIT macro to call longjmp on errors. + +2002-04-13 John Millaway <john43@users.sourceforge.net> + + * main.c, misc.c: Replaced exit(2) calls with longjmps (in the form + of FLEX_EXIT macro). Moved main() to flex_main() to allow flex to + be called from a library. + +2002-04-13 John Millaway <john43@users.sourceforge.net> + + * scanopt.c: Fixed minor typo in error message + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-header-nr/Makefile.am, + tests/test-header-r/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-r/Makefile.am, + tests/test-pthread/Makefile.am, tests/test-string-nr/Makefile.am, + tests/test-string-r/Makefile.am, tests/test-yyextra/Makefile.am: + removed eroneous files listed in EXTRA_DIST + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-yyextra/.cvsignore: ignore Makefile.in + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-string-r/.cvsignore: it's Makefile.in, not makefile.in + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-yyextra/Makefile.am, tests/test-yyextra/Makefile.in: + put test-yyextra under automake + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-string-r/Makefile.am, tests/test-string-r/Makefile.in: + put test-string-r under automake + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-string-nr/.cvsignore, tests/test-string-r/.cvsignore: + we can ignore Makefile.in + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-string-nr/Makefile.am, + tests/test-string-nr/Makefile.in: put test-string-nr under automake + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-pthread/.cvsignore: ignore Makefile.in + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-pthread/Makefile.am, tests/test-pthread/Makefile.in: + put test-pthread under automake + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-prefix-r/Makefile.am, tests/test-prefix-r/Makefile.in: + put test-prefix-r under automake + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-prefix-nr/.cvsignore, tests/test-prefix-r/.cvsignore: + we can ignore Makefile.in + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-prefix-nr/Makefile.am, + tests/test-prefix-nr/Makefile.in: put test-prefix-nr under automake + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-multiple-scanners-r/Makefile.am, + tests/test-multiple-scanners-r/Makefile.in: put + test-multiple-scanners-r under automake + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-multiple-scanners-nr/.cvsignore, + tests/test-multiple-scanners-r/.cvsignore: we can ignore Makefile.in + now + +2002-04-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-multiple-scanners-nr/Makefile.am, + tests/test-multiple-scanners-nr/Makefile.in: put + test-multiple-scanners-nr under automake + +2002-04-11 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-r/Makefile.am: + we didn't need parser.y + +2002-04-11 Will Estes <wlestes@users.sourceforge.net> + + * TODO: work done on the test suite; remove relevant entries from + TODO + +2002-04-10 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-include-by-reentrant/.cvsignore, + tests/test-include-by-reentrant/Makefile.am, + tests/test-include-by-reentrant/Makefile.in: put + test-include-by-reentrant under automake + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-include-by-buffer/.cvsignore: we have a Makefile.in + which we need to ignore + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-include-by-buffer/Makefile.am, + tests/test-include-by-buffer/Makefile.in: test-include-by-buffer now + under automake control + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am: and we want LFLAGS in the rule to make + scanner.c as well + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-header-r/.cvsignore, tests/test-header-r/Makefile.am, + tests/test-header-r/Makefile.in: put test-header-r under automake + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-header-nr/.cvsignore: we now generate a Makefile.in + from automake; cvs should ignore it + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-header-nr/Makefile.am: add dependencies for main.o and + scaner.h + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am: We may want to have LFLAGS readily + available + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-header-nr/Makefile.am, + tests/test-header-nr/Makefile.in: put test-header-nr under automake + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am: oops, we need to clean objects too + +2002-04-09 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/Makefile.am, tests/test-array-nr/Makefile.am, + tests/test-array-r/Makefile.am, tests/test-basic-nr/Makefile.am, + tests/test-basic-r/Makefile.am, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylval/Makefile.am, + tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-r/Makefile.am: now + that config.h lives in the top-level directory, we need to tell the + testsuite + +2002-04-08 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-array-nr/.cvsignore, tests/test-array-r/.cvsignore, + tests/test-basic-nr/.cvsignore, tests/test-basic-r/.cvsignore, + tests/test-bison-yylval/.cvsignore, tests/test-c-cpp-nr/.cvsignore, + tests/test-c-cpp-r/.cvsignore: we can ignore some Makefile.in + +2002-04-08 Will Estes <wlestes@users.sourceforge.net> + + * configure.in, tests/TEMPLATE/Makefile.am: only one config file + header apparently; this will have consequences in the test suite + +2002-04-08 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-bison-yylval/Makefile.am, + tests/test-bison-yylval/Makefile.in: adding automake support + +2002-04-08 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-bison-yylloc/.cvsignore, + tests/test-bison-yylloc/Makefile.am: tuned Makefile.am to build + correctly; ignore Makefile.in now + +2002-04-08 Will Estes <wlestes@users.sourceforge.net> + + * tests/configure.in: test suite changes + +2002-04-08 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh, configure.in, tests/.cvsignore, tests/Makefile.am, + tests/Makefile.in, tests/README, tests/TEMPLATE/.cvsignore, + tests/TEMPLATE/Makefile.am, tests/TEMPLATE/Makefile.in, + tests/configure.in, tests/create-test, tests/create-test.pl, + tests/test-array-nr/Makefile.am, tests/test-array-nr/Makefile.in, + tests/test-array-r/Makefile.am, tests/test-array-r/Makefile.in, + tests/test-basic-nr/Makefile.am, tests/test-basic-nr/Makefile.in, + tests/test-basic-r/Makefile.am, tests/test-basic-r/Makefile.in, + tests/test-bison-yylloc/Makefile.am, + tests/test-bison-yylloc/Makefile.in, + tests/test-c-cpp-nr/Makefile.am, tests/test-c-cpp-nr/Makefile.in, + tests/test-c-cpp-r/Makefile.am, tests/test-c-cpp-r/Makefile.in: test + suite changes + +2002-04-05 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Corrected error in manual regarding return type for + yy_scan_{string,buffer,bytes}. + +2002-04-05 Will Estes <wlestes@users.sourceforge.net> + + * po/de.po: new german translations from the translation project + +2002-04-03 Will Estes <wlestes@users.sourceforge.net> + + * po/es.po: new spanish translations + +2002-04-01 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: DIST_SUBDIRS: new variable. we can build flex with + SUBDIRS and then build the distribution using DIST_SUBDIRS + +2002-04-01 Will Estes <wlestes@users.sourceforge.net> + + * main.c: fix typo in comment + +2002-03-31 John Millaway <john43@users.sourceforge.net> + + * main.c: Documented the header file kludge, (in anticipation of + buffering Section 1.) + +2002-03-31 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Created appendix "Makefiles and Flex" in the manual. + +2002-03-30 John Millaway <john43@users.sourceforge.net> + + * flex.texi: updating manual. + +2002-03-29 Will Estes <wlestes@users.sourceforge.net> + + * po/POTFILES.in: we want parse.y, not parse.c + +2002-03-29 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Indexing the manual (75% done). + +2002-03-29 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: unlisted intermediate flex/yacc-created files + +2002-03-29 Will Estes <wlestes@users.sourceforge.net> + + * TODO: millaway has done more work + +2002-03-29 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in: ok, one last touch up; users most + likely wont have help2man so we need to insure that's ok + +2002-03-29 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: fine tune flex.1 some more + +2002-03-29 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, configure.in: generalize the manpage a bit and tell + autofoo about help2man + +2002-03-29 Will Estes <wlestes@users.sourceforge.net> + + * po/da.po: new danish from translation project robot + +2002-03-28 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Indexing the manual -- it's only half done. + +2002-03-28 John Millaway <john43@users.sourceforge.net> + + * flex.texi: flex manual now uses automake's versioning info. + +2002-03-28 John Millaway <john43@users.sourceforge.net> + + * README.cvs-snapshot: Mentioned requirements for gettext and + help2man. + +2002-03-28 John Millaway <john43@users.sourceforge.net> + + * Makefile.am, main.c: Output of `flex --version` now matches GNU + coding standards. Makefile.am now uses `help2man` to generate + flex.1 + +2002-03-27 Will Estes <wlestes@users.sourceforge.net> + + * TODO: millaway has done a lot on the TODO list; remove those items + that he has take care of + +2002-03-27 Will Estes <wlestes@users.sourceforge.net> + + * README.cvs-snapshot: edited millaway's initial draft + +2002-03-27 John Millaway <john43@users.sourceforge.net> + + * README.cvs-snapshot: Created file. + +2002-03-27 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Fixed case of node names in flex.texi. + +2002-03-24 Will Estes <wlestes@users.sourceforge.net> + + * TODO: lex- and yacc- generated files + +2002-03-24 Will Estes <wlestes@users.sourceforge.net> + + * po/fr.po: new french + +2002-03-18 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: ending periods in news items removed; mention nounistd + options + +2002-03-18 Will Estes <wlestes@users.sourceforge.net> + + * po/sv.po: updated sweedish translations + +2002-03-18 Will Estes <wlestes@users.sourceforge.net> + + * po/de.po: german translation + +2002-03-18 John Millaway <john43@users.sourceforge.net> + + * flex.skl, flex.texi, main.c, options.c, options.h, scan.l: Removed + CFront 1.2 -specific code from skeleton, because CFront now defines + __cplusplus properly. Removed TurboC-specific code from skeleton. + Skeleton now includes proper C++ standard headers. Relocated + "unistd.h" code after user section 1 to allow user to overrid it. + New option "nounistd" to suppress unistd.h from being included. + +2002-03-15 Will Estes <wlestes@users.sourceforge.net> + + * po/tr.po: new turkish translation + +2002-03-15 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: mention included translations + +2002-03-15 Will Estes <wlestes@users.sourceforge.net> + + * TODO: we've done the gettext thing, but sometime we should get + 0.11.1 + +2002-03-15 Will Estes <wlestes@users.sourceforge.net> + + * po/ca.po: new catalan translation + +2002-03-14 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Added section on format of comments. + +2002-03-14 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Split format chapter into sections. + +2002-03-14 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Removed explicit pointers in node definitions. + +2002-03-14 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: unistd.h can be problematic + +2002-03-14 Will Estes <wlestes@users.sourceforge.net> + + * tests/README: editing changes to README + +2002-03-13 Will Estes <wlestes@users.sourceforge.net> + + * po/POTFILES.in: scan.l, not scan.c because gettext gets confused + +2002-03-13 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: gettext cruft + +2002-03-13 Will Estes <wlestes@users.sourceforge.net> + + * tests/descriptions: separate out test descriptions + +2002-03-13 Will Estes <wlestes@users.sourceforge.net> + + * po/LINGUAS: french and korean dont crash now + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * po/fr.po, po/ko.po: remove duplicate messages as per advice from + Jordi Mallach <jordi@debian.org> + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * gettext.h: yes, more gettext cruft + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * ABOUT-NLS, config.rpath, m4/codeset.m4, m4/gettext.m4, + m4/glibc21.m4, m4/iconv.m4, m4/isc-posix.m4, m4/lcmessage.m4, + m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4, m4/progtest.m4: this + is gettext cruft + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: gettext and autofoo are now involved + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, autogen.sh, configure.in, flexdef.h, main.c: mostly, + changes for gettext + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * po/ca.po, po/da.po, po/es.po, po/ru.po, po/sv.po, po/tr.po: these + sure change a lot + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * TODO: note about cvs documentation + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * po/LINGUAS: we now have turkish + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * po/tr.po: updated translations, i think + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * po/ca.po, po/da.po, po/es.po, po/fr.po, po/ko.po, po/ru.po, + po/sv.po, po/tr.po: ok, maybe we do keep these things? + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * README-alpha: README-alpha for those bad-hair days + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * m4/.cvsignore, m4/Makefile.am: ok,now we kinda have a m4/ subdir + for gettext + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * po/.cvsignore, po/LINGUAS, po/Makevars, po/POTFILES.in, po/da.po, + po/es.po, po/fr.po, po/ko.po, po/ru.po, po/sv.po: now, we have a po/ + subdirectory for gettext. i hope you're happy + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * po/ca.po: removing po files, maybe + +2002-03-12 Will Estes <wlestes@users.sourceforge.net> + + * tests/.cvsignore: ignore autom4te.cache + +2002-03-11 Will Estes <wlestes@users.sourceforge.net> + + * po/ca.po, po/da.po, po/es.po, po/fr.po, po/ko.po, po/ru.po, + po/sv.po: po files from debian + +2002-03-08 Will Estes <wlestes@users.sourceforge.net> + + * TODO: add several notes about tasks which need doing; create a new + top-level entry for generic coding concerns (this is distinct from + specific API or other such issues) + +2002-03-06 Will Estes <wlestes@users.sourceforge.net> + + * README: eliminate to.do and faqs from the README file + +2002-03-06 Will Estes <wlestes@users.sourceforge.net> + + * TODO: more notes on tests/ + +2002-03-06 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: remove subdirectories from EXTRA_DIST; add a SUBDIRS + macro to handle examples/; clean up the dist-hook target + +2002-03-06 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: we want to generate Makefiles in some more + subdirectories; automake will like this + +2002-03-06 Will Estes <wlestes@users.sourceforge.net> + + * TODO: notes on subdirectories + +2002-03-05 Will Estes <wlestes@users.sourceforge.net> + + * examples/.cvsignore, examples/Makefile.am: now examples/ fits into + automake + +2002-03-05 Will Estes <wlestes@users.sourceforge.net> + + * examples/fastwc/.cvsignore, examples/fastwc/Makefile.am: + examples/fastwc now fits into automake + +2002-03-05 Will Estes <wlestes@users.sourceforge.net> + + * examples/manual/.cvsignore, examples/manual/Makefile.am, + examples/manual/Makefile.examples, examples/manual/README: + examples/manual directory now fits into automake + +2002-03-05 Will Estes <wlestes@users.sourceforge.net> + + * examples/manual/Makefile: renamed Makefile to Makefile.examples + for automake's sake + +2002-03-04 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: add parse.c and scan.c to built_sources + +2002-02-24 John Millaway <john43@users.sourceforge.net> + + * Makefile.am: Removed CVS-specific code from 'dist-hook' target so + anybody with a copy of the tree can build a dist. + +2002-02-22 John Millaway <john43@users.sourceforge.net> + + * tests/Makefile.in: Converted test script to portable /bin/sh. + +2002-02-22 John Millaway <john43@users.sourceforge.net> + + * tests/test-bison-yylloc/Makefile.in: Added some spaces in shell + scripts for portability. + +2002-02-22 John Millaway <john43@users.sourceforge.net> + + * tests/create-test.pl: Fixed #! line for portability. + +2002-02-22 John Millaway <john43@users.sourceforge.net> + + * tests/test-bison-yylloc/Makefile.in: Fixed return status code on + bison-lloc test. + +2002-02-21 John Millaway <john43@users.sourceforge.net> + + * tests/create-test.pl: Added script to auto-create tests. Probably + overkill. + +2002-02-21 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Fixed C++ #ifdef problem. Removed mistyped __CPLUSPLUS + macro. Removed THROW_NIL. Not sure where it came from in the first + place. + +2002-02-21 John Millaway <john43@users.sourceforge.net> + + * tests/README, tests/TEMPLATE/Makefile.in, tests/configure.in, + tests/test-c-cpp-nr/.cvsignore, tests/test-c-cpp-nr/Makefile.in, + tests/test-c-cpp-nr/scanner.l, tests/test-c-cpp-nr/test.input, + tests/test-c-cpp-r/.cvsignore, tests/test-c-cpp-r/Makefile.in, + tests/test-c-cpp-r/scanner.l, tests/test-c-cpp-r/test.input: Added + test-c-cpp-nr and test-c-cpp-r. + +2002-02-16 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Added missing #endif. + +2002-02-07 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/.cvsignore, tests/test-array-nr/.cvsignore, + tests/test-array-r/.cvsignore, tests/test-basic-nr/.cvsignore, + tests/test-basic-r/.cvsignore, tests/test-bison-yylloc/.cvsignore, + tests/test-bison-yylval/.cvsignore, + tests/test-header-nr/.cvsignore, tests/test-header-r/.cvsignore, + tests/test-include-by-buffer/.cvsignore, + tests/test-include-by-reentrant/.cvsignore, + tests/test-multiple-scanners-nr/.cvsignore, + tests/test-multiple-scanners-r/.cvsignore, + tests/test-prefix-nr/.cvsignore, tests/test-prefix-r/.cvsignore, + tests/test-pthread/.cvsignore, tests/test-string-nr/.cvsignore, + tests/test-string-r/.cvsignore, tests/test-yyextra/.cvsignore: add + OUTPUT to .cvsignore files in test directories; it's also in the + template directory + +2002-02-06 Will Estes <wlestes@users.sourceforge.net> + + * gen.c: fix interrupted reads and freads; from the debian package + maintainer + +2002-02-06 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi, flexdef.h, main.c, nfa.c: support large flex tables; + from debian package maintainer + +2002-01-29 Will Estes <wlestes@users.sourceforge.net> + + * tests/configure.in: add more output files to account for new tests + +2002-01-03 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-array-nr/.cvsignore, tests/test-array-nr/Makefile.in, + tests/test-array-nr/scanner.l, tests/test-array-nr/test.input: add + this test + +2002-01-03 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-array-r/.cvsignore, tests/test-array-r/Makefile.in, + tests/test-array-r/scanner.l, tests/test-array-r/test.input: add + this test suite + +2001-11-20 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, main.c: millaway: Fixed yytext_ptr when using %array in + reentrant scanner + +2001-11-20 Will Estes <wlestes@users.sourceforge.net> + + * buf.c: oops, forgot this one line + +2001-11-14 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-header-r/.cvsignore, tests/test-header-r/Makefile.in, + tests/test-header-r/main.c, tests/test-header-r/scanner.l, + tests/test-header-r/test.input: and more fallout + +2001-11-14 Will Estes <wlestes@users.sourceforge.net> + + * TODO, flex.skl, flex.texi, flexdef.h, main.c, misc.c, + tests/README, tests/TEMPLATE/Makefile.in, tests/configure.in, + tests/test-basic-r/scanner.l, tests/test-bison-yylloc/.cvsignore, + tests/test-bison-yylloc/Makefile.in, + tests/test-bison-yylloc/parser.y, + tests/test-bison-yylloc/scanner.l, + tests/test-bison-yylval/.cvsignore, + tests/test-bison-yylval/Makefile.in, + tests/test-bison-yylval/parser.y, + tests/test-bison-yylval/scanner.l, + tests/test-include-by-reentrant/scanner.l, + tests/test-prefix-r/scanner.l, tests/test-pthread/scanner.l, + tests/test-string-r/scanner.l, tests/test-yyextra/scanner.l: more + from the same batch + +2001-11-14 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-bison-yylloc/main.c, tests/test-bison-yylval/main.c, + tests/test-header-nr/.cvsignore, tests/test-header-nr/Makefile.in, + tests/test-header-nr/main.c, tests/test-header-nr/scanner.l, + tests/test-header-nr/test.input, + tests/test-multiple-scanners-nr/.cvsignore, + tests/test-multiple-scanners-nr/Makefile.in, + tests/test-multiple-scanners-nr/main.c, + tests/test-multiple-scanners-nr/scanner-1.l, + tests/test-multiple-scanners-nr/scanner-2.l, + tests/test-multiple-scanners-r/.cvsignore, + tests/test-multiple-scanners-r/Makefile.in, + tests/test-multiple-scanners-r/main.c, + tests/test-multiple-scanners-r/scanner-1.l, + tests/test-multiple-scanners-r/scanner-2.l: a big batch from + millaway + +2001-10-26 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: now NEWS has forgotten about the _r variables + +2001-10-26 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, flex.texi, gen.c, main.c, + tests/test-bison-yylloc/scanner.l, + tests/test-bison-yylval/scanner.l, + tests/test-include-by-reentrant/scanner.l, + tests/test-prefix-nr/scanner.l, tests/test-pthread/scanner.l, + tests/test-string-r/scanner.l, tests/test-yyextra/scanner.l: + millaway simplified the reentrant api; here's the result + +2001-10-23 Will Estes <wlestes@users.sourceforge.net> + + * main.c, options.c, options.h: more from millaway + +2001-10-22 Will Estes <wlestes@users.sourceforge.net> + + * main.c, options.c, options.h: the last checkin was broken; + millaway fixed it + +2001-10-22 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, flex.texi, gen.c, main.c, misc.c, options.h, scan.l, + scanopt.c, tests/README, tests/configure.in: phew, millaway's latest + batch + +2001-10-21 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: flex.skl should come up in C mode + +2001-10-21 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: apparently, isatty and c++ need help getting along (from + octave) + +2001-10-19 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: document new options and new option handling + +2001-10-19 Will Estes <wlestes@users.sourceforge.net> + + * TODO: tell emacs that TODO is a text/outline mode file + +2001-10-19 Will Estes <wlestes@users.sourceforge.net> + + * TODO: we have new long options; we need to document that + +2001-10-19 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: tell emacs that NEWS is text/outline mode + +2001-10-19 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: oops, lost a line somewhere in the merge process on + millaway's work + +2001-10-17 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am, buf.c, flex.skl, flex.texi, flexdef.h, main.c, + misc.c, options.c, options.h, parse.y, scan.l, scanopt.c, scanopt.h: + merge latest batch of millaway's changes + +2001-09-22 Will Estes <wlestes@users.sourceforge.net> + + * main.c: Fixed typo in options display + +2001-09-20 Will Estes <wlestes@users.sourceforge.net> + + * main.c: reentrant and non-reentrant scanners share the same yywrap + MACRO. millaway + +2001-09-20 Will Estes <wlestes@users.sourceforge.net> + + * TODO: clarify item on comments in lexical files + +2001-09-20 Will Estes <wlestes@users.sourceforge.net> + + * NEWS, scan.l: now flex recognizes \r as an eol character + +2001-09-20 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: specify cvsroot so automake distcheck works + +2001-09-19 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: tex has lost its mind; we remove parentheses to + compensate + +2001-09-19 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: now that c++ is better supported, let's mention it as a news + item + +2001-09-19 Will Estes <wlestes@users.sourceforge.net> + + * examples/fastwc/wc1.l, examples/fastwc/wc2.l, + examples/fastwc/wc3.l, examples/fastwc/wc4.l, + examples/fastwc/wc5.l, flex.skl, main.c: commit the backwash from + the branch merges + +2001-09-19 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h, examples/testxxLexer.l, flex.skl: made preliminary + c++ fixes; the intent is to make it work with recent c++ compilers + +2001-08-26 Will Estes <wlestes@users.sourceforge.net> + + * main.c: remove argv_fixup; fix typo in error message; changes from + millaway's branch + +2001-08-24 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: mention no more c++ comments in c scanners + +2001-08-21 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Changed // comments to /* */ comments in skeleton. + +2001-08-19 John Millaway <john43@users.sourceforge.net> + + * flex.texi: Changed @var to @code everywhere. + +2001-08-16 Will Estes <wlestes@users.sourceforge.net> + + * to.do/flex.rmail: more mail + +2001-08-16 Will Estes <wlestes@users.sourceforge.net> + + * TODO: the manual now has its own section; we're not adding + comments either + +2001-08-04 John Millaway <john43@users.sourceforge.net> + + * tests/Makefile.in, tests/README, tests/TEMPLATE/Makefile.in, + tests/test-basic-nr/Makefile.in, tests/test-basic-r/Makefile.in, + tests/test-bison-yylloc/Makefile.in, + tests/test-bison-yylval/Makefile.in, + tests/test-include-by-buffer/Makefile.in, + tests/test-include-by-reentrant/Makefile.in, + tests/test-prefix-nr/Makefile.in, tests/test-prefix-r/Makefile.in, + tests/test-pthread/Makefile.in, tests/test-string-nr/Makefile.in, + tests/test-string-r/Makefile.in, tests/test-yyextra/Makefile.in: + Cleaned up the output of the tests. + +2001-08-03 Will Estes <wlestes@users.sourceforge.net> + + * TODO: note jason's thoughts on having a manpage + +2001-08-03 Will Estes <wlestes@users.sourceforge.net> + + * TODO: note millaway's assignment and tests to be under flex + license + +2001-08-01 John Millaway <john43@users.sourceforge.net> + + * tests/test-bison-yylval/scanner.l: Fixed semantics of test (the + success or failure of this test should be unaffected by this + change.) + +2001-08-01 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: fake automake into believing that ChangeLog already + exists + +2001-08-01 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: millaway needs to be covered in the ChangeLog + +2001-08-01 Will Estes <wlestes@users.sourceforge.net> + + * version.h: automake is supplying version info now so we just pick + it up + +2001-08-01 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: forgot braces on @copyright + +2001-08-01 John Millaway <john43@users.sourceforge.net> + + * flex.skl: Added missing argument to yy_flex_free. + +2001-08-01 Will Estes <wlestes@users.sourceforge.net> + + * AUTHORS: john millaway wrote the reentrant C support + +2001-08-01 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: add license node to the manual + +2001-08-01 Will Estes <wlestes@users.sourceforge.net> + + * TODO: c++ ideas + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * parse.y: error messages will now show up the way that emacs likes + them + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: oops, left in an extra backslash + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * TODO: flex.texi is here; clarify tests/ rewrite issue + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: hey, we have texinfo, not man + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * flex.1: no more manpage + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: remove flex.1 and rewrite the dist-hook so that we + pick up a couple more directories + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: the namual now compiles; hurray + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: first attempt at including the tests/ directory via + automake, dist-hook target added + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * tests/.cvsignore: ignore config.cache in tests/ directory + +2001-07-31 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: automake groks the ChangeLog now so we don't have to + remind the maintainer to remake it + +2001-07-30 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: more corrections to the manual; the end is in site + +2001-07-30 Will Estes <wlestes@users.sourceforge.net> + + * TODO: auto-generated backup? + +2001-07-27 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: today's tinkering on the manual + +2001-07-27 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: if we want flex.1 we have to say so in EXTRA_DIST + +2001-07-27 Will Estes <wlestes@users.sourceforge.net> + + * TODO: note future issues with flex.texi + +2001-07-27 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: include flex.1 as it's the only working documentation + for now + +2001-07-27 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: rearrange to work with automake on building the + ChangeLog + +2001-07-27 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: automake is unhappy if we specify the outfile + +2001-07-26 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: more conversions/corrections + +2001-07-26 Will Estes <wlestes@users.sourceforge.net> + + * README: we removed misc/ so we don't mention it any more + +2001-07-25 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: begin the manual conversion to texinfo; yes, it's + broken right now + +2001-07-25 Will Estes <wlestes@users.sourceforge.net> + + * AUTHORS, THANKS: copy in manual author and thanks info + +2001-07-25 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: how to fake the ChangeLog into showing up in the + distribution + +2001-07-25 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: add YFLAGS so parse.h gets made + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * examples/fastwc/README, examples/fastwc/mywc.c, + examples/fastwc/wc1.l, examples/fastwc/wc2.l, + examples/fastwc/wc3.l, examples/fastwc/wc4.l, examples/fastwc/wc5.l: + re-add these files + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * TODO: reflect recent doings + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.in: what with automake, we don't need Makefile.in any + more + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: more rearranging for automake + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * to.do/flex.rmail: more mail came in + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: adjust to automake's idea of the world + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: add Vern's misc dependencies; noinst_SCRIPTS was + broken?; list a few last files to be included in the distribution + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: rearrange for better order; add automake support as a news + item + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: copyright notice on Makefile.am; document some -D + switches (are they still usable?) + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * TODO: add lex-replacement issue + +2001-07-24 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: add EXTRA_DIST + +2001-07-23 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: we need to do the same thing in each directory + +2001-07-23 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: introduce automake into the macro calls + +2001-07-23 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: add AUTOMAKE_OPTIONS, info_TEXINFOS, include_HEADERS, + noinst_HEADERS; it's libfl.a, not libflex.a + +2001-07-23 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.am: bin_PROGRAMS and lib_LIBRARIES + +2001-07-23 Will Estes <wlestes@users.sourceforge.net> + + * to.do/streams.mail: streams.mail has moved here + +2001-07-23 Will Estes <wlestes@users.sourceforge.net> + + * TODO: add xref for teximanual + +2001-07-19 Will Estes <wlestes@users.sourceforge.net> + + * flex.1: include typo/punctuation fixes from a patch submitted by + noon@cote-dazur.com (Fabrice Bauzac) + +2001-07-17 Will Estes <wlestes@users.sourceforge.net> + + * TODO: we want gettext + +2001-06-24 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: include c++ STD fixes from quanstro@quanstro.net + +2001-06-24 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, gen.c: change some int types to size_t as per FreeBSD + 28364 from avn@any.ru + +2001-06-24 Will Estes <wlestes@users.sourceforge.net> + + * TODO: remove parse.[ch] from make clean target; repackage + distribution (not rework) + +2001-06-19 Will Estes <wlestes@users.sourceforge.net> + + * TODO: add memory api and reworking of flex.skl reworking + +2001-06-18 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: remove extraneous notice from flex.skl + +2001-06-18 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: patch memory leak as per millaway + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * to.do/flex.rmail: add vern's ok for copyright/license changes and + john's answer on line offsets + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * TODO: remove creation of .cvsignore files (it's done); add other + notes about the test suite + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/.cvsignore, tests/test-basic-nr/.cvsignore, + tests/test-basic-r/.cvsignore, tests/test-bison-yylloc/.cvsignore, + tests/test-bison-yylval/.cvsignore, + tests/test-include-by-buffer/.cvsignore, + tests/test-include-by-reentrant/.cvsignore, + tests/test-prefix-nr/.cvsignore, tests/test-prefix-r/.cvsignore, + tests/test-pthread/.cvsignore, tests/test-string-nr/.cvsignore, + tests/test-string-r/.cvsignore, tests/test-yyextra/.cvsignore: + adding .cvsignore files for existing tests/ subdirectories + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/README: reformat, say to add a description to this file and + mention what to do re .cvsignore + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/TEMPLATE/cvsignore: create template for .cvsignore + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * TODO: reorganize for logical reasons; test suite now seems to run + out of the box + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/.cvsignore: we dont want the Makefile either + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/test-prefix-nr/test.input, tests/test-prefix-r/test.input: + test.input was supposed to be here + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/.cvsignore: add autoconf legacy files to be ignored + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: clarify usage instructions; prepare tests/ as well + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * tests/.cvsignore: . cvsignore for tests/ subdirectory + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h: tell emacs that FlexLexer.h is c++ + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * scan.l: tell emacs scan.l is in C mode + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: added punctuation + +2001-06-17 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h, Makefile.in, README, RoadMap, autogen.sh, ccl.c, + configure.in, dfa.c, ecs.c, flex.1, flex.skl, flexdef.h, gen.c, + libmain.c, libyywrap.c, main.c, misc.c, mkskel.sh, nfa.c, parse.y, + scan.l, sym.c, tblcmp.c, yylex.c: change copyright/license notices + as per Vern's response to Theo + +2001-06-15 Will Estes <wlestes@users.sourceforge.net> + + * to.do/flex.rmail: add bill fenlason's emails + +2001-06-15 Will Estes <wlestes@users.sourceforge.net> + + * COPYING: make changes as per Theo De Raadt; remove tabs + +2001-06-08 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl: save errno as per Theo de Raadt + +2001-06-07 Will Estes <wlestes@users.sourceforge.net> + + * flex.1: correct hyphenation as per openbsd tree + +2001-06-05 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.in, configure.in: change references to TESTS/ to tests/ + to account for the directory name changes + +2001-05-27 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, gen.c: commit john millaway's YY_G wrapper corrections + +2001-05-21 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.in: remove || exit calls + +2001-05-21 Will Estes <wlestes@users.sourceforge.net> + + * gen.c: complete john millaway's reentrant patch + +2001-05-21 Will Estes <wlestes@users.sourceforge.net> + + * to.do/flex.rmail: more flex messages in the queue + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * flex.skl, flexdef.h, gen.c, main.c, nfa.c, scan.l: john millaway's + reentrancy patch + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.in: remove || exit from testing loop + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.in: tell make about the tests directory and its + associated targets + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * TODO: rethink the todo list + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * flex.1: describe reentrant api changes + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * TODO: mention work needed for tests/ + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: tell auto* about the test directory + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * README: make punctuation uniform, mention the new tests/ directory + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * NEWS: reformat items; cut out old items and move them to ONEWS + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * ONEWS: move old NEWS items to ONEWS + +2001-05-18 Will Estes <wlestes@users.sourceforge.net> + + * tests/Makefile.in, tests/README, tests/TEMPLATE/Makefile.in, + tests/TEMPLATE/parser.y, tests/TEMPLATE/scanner.l, + tests/TEMPLATE/test.input, tests/configure.in, + tests/test-basic-nr/Makefile.in, tests/test-basic-nr/scanner.l, + tests/test-basic-nr/test.input, tests/test-basic-r/Makefile.in, + tests/test-basic-r/scanner.l, tests/test-basic-r/test.input, + tests/test-bison-yylloc/Makefile.in, + tests/test-bison-yylloc/parser.y, + tests/test-bison-yylloc/scanner.l, + tests/test-bison-yylloc/test.input, + tests/test-bison-yylval/Makefile.in, + tests/test-bison-yylval/parser.y, + tests/test-bison-yylval/scanner.l, + tests/test-bison-yylval/test.input, + tests/test-include-by-buffer/Makefile.in, + tests/test-include-by-buffer/scanner.l, + tests/test-include-by-buffer/test-1.input, + tests/test-include-by-buffer/test-2.input, + tests/test-include-by-buffer/test-3.input, + tests/test-include-by-reentrant/Makefile.in, + tests/test-include-by-reentrant/scanner.l, + tests/test-include-by-reentrant/test-1.input, + tests/test-include-by-reentrant/test-2.input, + tests/test-include-by-reentrant/test-3.input, + tests/test-prefix-nr/Makefile.in, tests/test-prefix-nr/README, + tests/test-prefix-nr/scanner.l, tests/test-prefix-r/Makefile.in, + tests/test-prefix-r/README, tests/test-prefix-r/scanner.l, + tests/test-pthread/Makefile.in, tests/test-pthread/scanner.l, + tests/test-pthread/test-1.input, tests/test-pthread/test-2.input, + tests/test-pthread/test-3.input, tests/test-pthread/test-4.input, + tests/test-pthread/test-5.input, tests/test-string-nr/Makefile.in, + tests/test-string-nr/scanner.l, tests/test-string-r/Makefile.in, + tests/test-string-r/scanner.l, tests/test-yyextra/Makefile.in, + tests/test-yyextra/scanner.l, tests/test-yyextra/test.input: add + john millaway's test directory + +2001-05-04 Will Estes <wlestes@users.sourceforge.net> + + * to.do/flex.rmail: more mail in flex.rmail + +2001-05-03 Will Estes <wlestes@users.sourceforge.net> + + * FlexLexer.h, ccl.c, dfa.c, ecs.c, flex.skl, flexdef.h, gen.c, + libmain.c, libyywrap.c, main.c, misc.c, nfa.c, parse.y, scan.l, + sym.c, tblcmp.c, yylex.c: remove extraneous rcs keywords + +2001-05-03 Will Estes <wlestes@users.sourceforge.net> + + * README: mention RoadMap + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * examples/README, examples/debflex.awk, examples/manual/ChangeLog, + examples/manual/Makefile, examples/manual/README, + examples/manual/cat.lex, examples/manual/dates.lex, + examples/manual/datetest.dat, examples/manual/eof_rules.lex, + examples/manual/eof_test01.txt, examples/manual/eof_test02.txt, + examples/manual/eof_test03.txt, examples/manual/expr.lex, + examples/manual/expr.y, examples/manual/front.lex, + examples/manual/front.y, examples/manual/j2t.lex, + examples/manual/myname.lex, examples/manual/myname.txt, + examples/manual/myname2.lex, examples/manual/numbers.lex, + examples/manual/pas_include.lex, examples/manual/pascal.lex, + examples/manual/reject.lex, examples/manual/replace.lex, + examples/manual/string1.lex, examples/manual/string2.lex, + examples/manual/strtest.dat, examples/manual/unput.lex, + examples/manual/user_act.lex, examples/manual/userinit.lex, + examples/manual/wc.lex, examples/manual/yymore.lex, + examples/manual/yymore2.lex, examples/manual/yymoretest.dat, + examples/testxxLexer.l, to.do/README, to.do/Wilhelms.todo, + to.do/Wish-List, to.do/flex.rmail, to.do/unicode/FlexLexer.h, + to.do/unicode/ccl.c, to.do/unicode/changes.txt, + to.do/unicode/ecs.c, to.do/unicode/flex.1, to.do/unicode/flex.skl, + to.do/unicode/flexdef.h, to.do/unicode/gen.c, to.do/unicode/main.c, + to.do/unicode/misc.c, to.do/unicode/scan.l, to.do/unicode/tblcmp.c: + adding the rest of vern's files + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * README: mention misc/ directory + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * version.h: version is 2.5.5b + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * Makefile.in: remove header from top; add rule to generate + initscan.c just in case + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * configure.in: dont check for initscan.c; check for scan.l instead + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * RoadMap: list of source files + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * README: rewrite README to reflect changes in layout of directories + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * AUTHORS, THANKS, TODO: initial attempt at the files + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * COPYING: add 2001 copyright notice + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * autogen.sh: initial attempt at a bootstrap script for developers + +2001-05-01 Will Estes <wlestes@users.sourceforge.net> + + * flex.texi: texinfo manual, old contributed version + +2000-08-21 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: fixed some bugs in examples of [[:...:]] ccls + +2000-08-21 Vern Paxson <vern@ee.lbl.gov> + + * version.h: version shipped to Dick King + +2000-08-21 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: explicit include of iostream.h + +2000-08-21 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: if a newline is seen in <ACTION_STRING>, assume it + terminates the string. + +2000-08-21 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, sym.c: moved symbol table definitions from flexdef.h + into sym.c + +2000-08-21 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: fixed underallocation for accset + +1997-06-27 Vern Paxson <vern@ee.lbl.gov> + + * COPYING: revised for rms + +1997-06-23 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: fixed memory leak + +1997-06-23 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: input() doesn't destroy yytext + +1997-06-23 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: wrapped with extern "C++" + +1996-12-13 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: use delete [] for yy_state_buf + +1996-10-29 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: fixed %option noinput + +1996-10-29 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: free(char*) fix ... Sigh ... + +1996-10-11 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: bug fix for yymore()/yylineno interaction + +1996-10-11 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: fixed memory leak + +1996-09-10 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: release 2.5.4 + +1996-09-10 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: more stuff for distclean + +1996-09-10 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: "str" -> "yy_str" + +1996-09-10 Vern Paxson <vern@ee.lbl.gov> + + * version.h: 2.5.4 + +1996-07-02 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: (attempted) fix for input() crossing a file boundary + +1996-05-29 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: don't do Acorn diffs + +1996-05-29 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: some minor additions for 2.5.3 + +1996-05-29 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, version.h: 2.5.3 + +1996-05-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: initialize yy_more_offset etc. for yyFlexLexer class + +1996-05-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: niggling cosmetic tweak + +1996-05-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: bug fixes for yymore (especially with %array) + +1996-05-25 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: yymore + %array tweaks + +1996-05-25 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: added yy_{,prev_}more_offset + +1996-05-25 Vern Paxson <vern@ee.lbl.gov> + + * main.c: removed decl of unused library function + +1996-05-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: snapshot of cscope yymore fixes, prior to switching + yymore-on-%array approach + +1995-12-18 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: don't stack states on NUL-transitions that are jams + +1995-09-27 Vern Paxson <vern@ee.lbl.gov> + + * libmain.c: fixed re Esmond Pitt's ancient suggestion + +1995-04-28 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: ANSI C / Solaris tweak + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: credits + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: multiple FlexLexer.h includes + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: fix multiple inclusions + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: lint tweak + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: typo fixed + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: credits update + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: (char*) cast for realloc + +1995-04-24 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: (char*) tweak + +1995-04-21 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: VMS update for 2.5.2 + +1995-04-21 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: clarify when 8-bit scanners are created by default, + vs. 7-bit + +1995-04-21 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: reworked alloca() chud, from Francois + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, version.h: 2.5.2 + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: 2.5.2 update + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, main.c: const -> yyconst + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: fixed some old libfl.a references + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: some (but not all) of Francois' tweaks + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: tweaks from Francois + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: yy_delete_buffer allows nil buffer pointer + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * main.c: do_stdinit now defaults to false + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: remove first default for yylex(new_in, new_out) + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: rearrange some definitions; fix YY_NO_UNPUT + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: more alloca() bullshit + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: octal escape sequence must have just digits 0-7 + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: '-' means stdin octal escape sequence must just be digits + 0-7 + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * main.c: -- terminates options + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: added dataflush() prototype + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: move dataflush, otoi prototypes into flexdef.h + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, gen.c: const -> yyconst + +1995-04-20 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: fixed bug in needing yy_cp for -Cf w/ backing up + +1995-03-28 Vern Paxson <vern@ee.lbl.gov> + + * README, flex.1: Stan Adermann credit + +1995-03-27 Vern Paxson <vern@ee.lbl.gov> + + * README: beta-tester update + +1995-03-27 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, version.h: 2.5.1 + +1995-03-27 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: update date for 2.5.1 release, some feedbacker credits + +1995-03-27 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: fixed lint problem with declaring yy_cp unnecessarily + +1995-03-27 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: {}'s around full-table initializations + +1995-03-21 Vern Paxson <vern@ee.lbl.gov> + + * README: for version 2.5 + +1995-03-21 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: added note regarding yylineno should be maintained on a + per-buffer basis + +1995-03-21 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: new C++ member functions + +1995-03-21 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, flex.1: 2.5.0.8 update + +1995-03-21 Vern Paxson <vern@ee.lbl.gov> + + * main.c: rename yylineno if -P + +1995-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: do_yylineno MARKER_DIFFERENCE depends on MAXIMUM_MNS + +1995-03-20 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: removed redundant skel.c from DISTFILES + +1995-03-20 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: debug(), setdebug(), lineno() + +1995-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: %option yylineno support + +1995-03-20 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: read up to newline for interactive reads, rather than one + char + +1995-03-20 Vern Paxson <vern@ee.lbl.gov> + + * main.c, scan.l: added %option yylineno + +1995-03-18 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: added do_yylineno + +1995-03-06 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, flex.1: 2.5.0.7 + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: realclean -> maintainer-clean + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added yy_flush_buffer + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: added yy_flush_buffer + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * main.c: prefix support for yy_flush_buffer + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: added %option yyclass + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, main.c, scan.l: added yyclass + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: Added switch_streams + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: added switch_streams + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * main.c: don't rename yy_flex_debug for C++ + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: yy_flex_debug extern only if not C++ + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: added yy_flex_debug member variable + +1995-03-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: yyFlexLexer initialization of yy_flex_debug + +1995-03-04 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, main.c: VMS POSIX stuff + +1995-03-04 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: moved position of yy_init = 0 + +1995-03-04 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: added YY_EXIT_FAILURE + +1995-03-04 Vern Paxson <vern@ee.lbl.gov> + + * main.c: removed VMS-specific exit + +1995-03-04 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, flexdef.h, gen.c, main.c, misc.c, nfa.c, scan.l, sym.c, + yylex.c: internationalization aids + +1995-03-04 Vern Paxson <vern@ee.lbl.gov> + + * main.c: do yy_flex_debug prefix for both C++ and C + +1995-02-06 Vern Paxson <vern@ee.lbl.gov> + + * main.c: fixed program_name tweak again + +1995-01-11 Vern Paxson <vern@ee.lbl.gov> + + * main.c: oops, fixed program_name tweak + +1995-01-11 Vern Paxson <vern@ee.lbl.gov> + + * main.c: program_name is "flex" if argv[0] nil + +1995-01-10 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.5.0.5 + +1995-01-10 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Documented YY_NUM_RULES + +1995-01-10 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: added formatted man page to MISC + +1995-01-10 Vern Paxson <vern@ee.lbl.gov> + + * main.c: help messages to stdout + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Added YY_NUM_RULES + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: better fix for #pragma problem + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: better fix for #pragma portability problem + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: "# line" -> #line + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, flexdef.h: comment out Turbo C #pragma's + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: reset linenum on new file + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: isatty() extern + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, flex.1: 2.5.0.4 + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * main.c: long options, VMS tweaks + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added parse.c, parse.h for dist MISC directory + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: some "const" cleansing + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * mkskel.sh: skel[] is now const + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: some const cleansing + +1995-01-09 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: #line in section 1 + +1995-01-05 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: preen + +1994-12-29 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: config.h from conf.in + +1994-12-29 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: for VMS, delete -> remove + +1994-12-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: config.h.in -> conf.in rm config.h on distclean + +1994-12-29 Vern Paxson <vern@ee.lbl.gov> + + * main.c: stdinit tweaks + +1994-12-29 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: added nostdinit + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: added MS-DOS note for 2.5.0.2 + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: typos, tweaks + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: removed flexdoc + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: flexdoc/flex merge + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: typos + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: typo + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: 2.5 update + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.5.0.2 + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: fixed sense of %option main implying %option noyywrap + +1994-12-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: YY_FLEX_{MAJOR,MINOR}_VERSION fixed bug in unput + trashing yytext even with %array + +1994-12-17 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: prior to 2.5 update + +1994-12-17 Vern Paxson <vern@ee.lbl.gov> + + * main.c: C++/-P fixes + +1994-12-17 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: -P fixes constructor, destructor moved to flex.skl + +1994-12-17 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: YY_SKIP_YYWRAP yyFlexLexer constructor, destructor + +1994-12-15 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: formatting + +1994-12-15 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: fixed bug in adjusting yytext before backing up + +1994-12-10 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: switched scanner itself over to [:xxx:] + +1994-12-10 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: added YY_FLEX_VERSION + +1994-12-10 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed CCL-match pattern for [:whatever:] + +1994-12-10 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: treat [:upper:] as [:lower:] if -i + +1994-12-06 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.5.0.1 + +1994-12-06 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, gen.c: input() maintains BOL + +1994-12-06 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: check size of buffer in yy_scan_buffer + +1994-12-06 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: added %option main, fixed missing %* + +1994-12-06 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: added ccl exprs + +1994-12-06 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: added ccl exprs, %option main + +1994-12-06 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: added %options, ccl exprs + +1994-12-05 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: undid previous change + +1994-12-04 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Makefile.in from srcdir + +1994-12-04 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: added skel.c to DISTFILES + +1994-12-04 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: added YYSTATE alias + +1994-12-04 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: NL is now \r?\n + +1994-12-04 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: use cerr for C++ diagnostics + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: undid YY_UNIX_NEWLINE + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: STDC_HEADERS to check for stdlib + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: AC_STDC_HEADERS -> AC_HEADER_STDC + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: \n -> '\012' + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added YY_UNIX_NEWLINE + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: BOL changes + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: fixed bug with caseins but not ecs + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: BOL changes some casts for Turbo C + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * main.c: messages identify filenames + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Increase slowly if realloc double overflows + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: YY_RULE_SETUP + +1994-12-03 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Added yy_XX_state %option's Added yy_set_bol + +1994-11-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: don't remove ~ files + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: get CFLAGS from autoconf + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, flex.skl, flexdef.h, gen.c, misc.c, parse.y, scan.l, sym.c: + Brian Madsen's tweaks for Borland + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * version.h: 2.5.0 + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added do_stdinit + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: Added yy_delete_buffer() in destructor + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added yy_set_interactive, YY_ALWAYS_INTERACTIVE, + YY_NEVER_INTERACTIVE, YY_NO_INPUT, YY_NO_UNPUT, YY_NO_*_STATE + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added do_stdinit, Think C hacks + +1994-11-24 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Added %options for input, always-interactive, + never-interactive, yy_scan_{buffer,bytes,string} + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: size_t #ifdef's for not compiling some statics + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: $(FLEX) config.h + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: config.h, size_t, malloc.h, sys/types.h + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: config.h, size_t + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * main.c: yywrap option, no stdin/out init for VMS, mundane tweaks + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: alloca, lint tweaks + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: %option yywrap size_t tweaks + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: size_t tweaks + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: size_t, STDC tweaks + +1994-11-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added yy_scan_{buffer,bytes,string}, plus tweaks + +1994-10-12 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: made stack code conditional on "stack" option + +1994-10-12 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: added use of "stack" %option + +1994-08-03 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Fixed fencepost in call to yy_flex_strncpy + +1994-07-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: yy_eof_status -> yy_buffer_status + +1994-07-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: yy_flex_strcpy -> yy_flex_strncpy minor prototype tweak + +1994-07-25 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Bug fix for matching NUL's at end of token when + interactive. yy_flex_strcpy -> yy_flex_strncpy + +1994-07-25 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: No YY_USER_ACTION if continued action + +1994-03-16 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added fix for 8-bit chars returned by input() + +1994-03-16 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Move definition of yy_flex_strcpy to come after #define + of yytext_ptr + +1994-01-08 Vern Paxson <vern@ee.lbl.gov> + + * mkskel.sh: flex.skel -> flex.skl + +1994-01-08 Vern Paxson <vern@ee.lbl.gov> + + * mkskel.sh: Initial revision + +1993-12-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Fixed scan.c target so "make" detects flex failure + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Added %option's + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Nuked FLEX_FLAGS that are now done using %option + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * parse.y, scan.l: %option + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Reworked for %option + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added "unspecified", globals for %option + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: start condition #define's go to action file + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Added action_define() + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Minor consolidation using scon scopes etc + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Modified to use scon scopes + +1993-12-27 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: indented rules + +1993-12-26 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Added scon_stk stuff, format_warn + +1993-12-26 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added format_warn + +1993-12-26 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Working checkpoint prior to adding <scon>{ stuff + +1993-12-26 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, main.c: Added in_rule, deleted actvsc + +1993-12-26 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Added doubling of '\'s in filenames + +1993-12-26 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Added in_rule, doing_rule_action + +1993-12-26 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: Removed actvsc + +1993-12-23 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: -ooutput #line directives credits + +1993-12-23 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Fixsed sense of test for %array + +1993-12-23 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.5.0 snapshot for Craig + +1993-12-23 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Added beginnings of <SCON>{ ... } + +1993-12-23 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Simplified scanning {}'s + +1993-12-20 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added <stdlib.h> + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: prototypes for alloc/string routines + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: alloc, string routines internal + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Nuked lib{string,alloc}.c, added dependency of + yylex.o on parse.h + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: Check for string.h + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Use autoconf for string/strings.h yy_flex_XXX -> + flex_XXX + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Added flex_XXX -> yy_flex_XXX wrappers + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, misc.c, sym.c: yy_flex_XXX -> flex_XXX + +1993-12-17 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: No more WHITESPACE token + +1993-12-16 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h, flex.skl: Added yy_top_state() + +1993-12-16 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: simplified comment-scanning using push/pop states + +1993-12-16 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: removed crufty WHITESPACE token, some uses of '\n' token + +1993-12-15 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: start stack, extern "C++" moved + +1993-12-15 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: Bug fix for -CF + +1993-12-15 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, misc.c: alloc routines take unsigned + +1993-12-15 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: start-state stacks, alloc routines take unsigned + +1993-12-15 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, misc.c: bracket -CF table elements + +1993-12-13 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Do #bytes computation in {re,}allocate_array() only once + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, flexdef.h, gen.c, main.c, misc.c, scan.l, sym.c: + yy_str*() -> str*() + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in, dfa.c, flexdef.h, gen.c, main.c, misc.c, nfa.c, + parse.y, scan.l, sym.c: -o option + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: lint tweak + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Expanded on extern "C++" news item + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.4.5 + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added yy_fill_buffer + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: is_interactive -> yy_is_interactive + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Updated credits + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Fixed typo in "uninstall" target + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Updated comment regarding 0-based vs. 1-based arrays for + -CF. + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: Initialize dfaacc[0] for -CF representation Fixed minor + memory leak + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * main.c: #include "FlexLexer.h" -> <FlexLexer.h> + +1993-12-11 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: Added extern "C++" wrapper + +1993-12-09 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Detect REJECT etc. before generating YY_USES_REJECT! + +1993-12-09 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Fixed bug in interactive reads where char is unsigned + +1993-12-09 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Fixed bug in treating '$' as variable trailing context + +1993-12-09 Vern Paxson <vern@ee.lbl.gov> + + * version.h: 2.4.5 + +1993-12-07 Vern Paxson <vern@ee.lbl.gov> + + * README: pretester update + +1993-12-07 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.4.4 + +1993-12-07 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: LexError(), C++ experiment warning, credits + +1993-12-07 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed 8-bit bug + +1993-12-07 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, gen.c: Fixed nasty 8-bit bugs + +1993-12-07 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, ecs.c, flexdef.h, gen.c, main.c, nfa.c, tblcmp.c: + {min,max,abs} -> {MIN,MAX,ABS} + +1993-12-07 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h, flex.skl: Support for yyFlexLexer::LexerError + +1993-12-06 Vern Paxson <vern@ee.lbl.gov> + + * version.h: 2.4.4 + +1993-12-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: credits update + +1993-12-05 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: very minor "install" tweaks + +1993-12-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, nfa.c: YY_USER_ACTION generated now for each case in + action switch + +1993-12-04 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Fixed bug in pointing yyin at a new file and resuming + scanning + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Added note regarding g++ 2.5.X + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: updated credits + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: ranlib addition for 2.4.3 + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Minor tweak to last change + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: run ranlib on libfl.a + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Hopefully last update prior to 2.4.3 + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, gen.c, misc.c, sym.c: lint tweaks + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added exec_prefix + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: credit update + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: lint tweak + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: FlexLexer.h fixed for separate inclusion + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h, flex.skl, main.c: mods so FlexLexer.h can be included + separately + +1993-12-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: -F incompatible with -+ + +1993-12-02 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Elaborated comments for 2.4.3 + +1993-12-02 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.4.3 + +1993-12-02 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Updated message regarding missing libfl.a routines Added + thanks to Noah Friedman + +1993-12-02 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added libstring.c Modified "lint" target to use + -Dconst= Added a.out, lex.yy.cc to sundry clean targets + +1993-12-02 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, flexdef.h, gen.c, main.c, misc.c, scan.l, sym.c: Use + yy_strXXX() routines instead of <string.h> + +1993-12-01 Vern Paxson <vern@ee.lbl.gov> + + * version.h: 2.4.3 + +1993-12-01 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, misc.c: yy_flex_xmalloc() moved to misc.c + +1993-12-01 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Fixed bug in yy_fatal_error() + +1993-12-01 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: ... and remove plain tar file after compression + +1993-12-01 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.4.2 + +1993-12-01 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Produce both compress'd and gzip'd distribution tar + files + +1993-12-01 Vern Paxson <vern@ee.lbl.gov> + + * version.h: Release 2.4.2 + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: -a -> -Ca + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * README: described configuration files in manifest + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added intermediate step of copying MISC/alloca.c -> + alloca.c Included CPPFLAGS when compiling alloca.c + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * README: Credit to 2.4 pre-testers. + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Fixed nasty bug in short/long decl decision + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Lowered MAX_SHORT out of increased general paranoia. + Added yy_flex_xmalloc() proto + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Fixed very minor typo in -v output + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Removed vestigal cast to (char) in isupper() call + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Added casts to unsigned Char for isascii() calls + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Added #ifdef chud for alloca() + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added alloca + +1993-11-30 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: Add AC_ALLOCA if using bison + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added intermediate file going scan.l -> scan.c + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Removed parse.{c,h} from distribution files, since + they may not be all that portable. + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Fixed %array YYLMAX headaches, added error message if + buffer needs growing but REJECT used + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * gen.c, main.c: Fixed YYLMAX headaches + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Documented that buffer can't grow if REJECT used + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added parse.{c,h} to dist files + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, flexdef.h, gen.c, main.c, misc.c, scan.l: Fixed to + buffer section 1 definitions + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: Fixed ANSI-C glitch with '%' operator + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed mis-definition of ndlookup() + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.4 -> 2.4.1 + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added install.sh, mkinstalldirs to distribution files + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Added Nathan Zelle, "promoted" Francois + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: only "realclean" removes flex dist depends on flex + +1993-11-29 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h, misc.c: myctoi takes char[] instead of Char[] + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: -a -> -Ca all_lower, all_upper -> work on char* + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added -Ca to bigcheck + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * main.c: -a -> -Ca; fixed help output + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, flex.1: -a -> -Ca + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: all_lower, all_upper work on char* + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed some casts now that yytext is always char* and never + unsigned char* + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Francois' tweaks + +1993-11-28 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: AC_LN_S, AC_STDC_HEADERS (but not AC_ALLOCA) + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: fixed typo + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Don't remove dist directory + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Include liballoc.c in lint targets + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: lint tweak + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Added -l compression to bigcheck + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: permission tweaking for "dist" + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: more "dist" tweaks + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Changed "make dist" to use version.h, include scan.c + in initial dir copy + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * version.h: 2.4.1 + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * README: Revised as per Francois Pinard + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * COPYING: flex.skel -> flex.skl + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Updated date of 2.4 release + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Removed manual & nroff output from distribution + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.4.1 release + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * configure.in: Initial revision + +1993-11-27 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Merge w/ 2.4.1 changes added "dist2" target + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * Makefile.in: Initial revision + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Removed #ifndef FILE protection from include of stdio + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Added Francois Pinard to distribution headache helpers + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Modified C++ scanners to get input a character at a time + for interactive scanners. + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added YY_INTERACTIVE. + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Put definitions inside ()'s so we can test -l option for + "make bigcheck" + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Documented YY_INTERACTIVE. + +1993-11-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.1, flex.skl, flexdef.h, gen.c, main.c, parse.y, scan.l: -l + lex compatibility flag + +1993-11-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Support for read()/fread() section 1 definitions precede + default macro definitions + +1993-11-20 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added use_read global + +1993-11-20 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Cleaner definition for yymore() Fixed string broken across + multiple lines + +1993-11-20 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added -Cr + +1993-11-20 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: K&R declaration for check_char() + +1993-11-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Documented -Cr + +1993-11-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: No need to #undef before redefining prior to -Cr + documentation + +1993-11-10 Vern Paxson <vern@ee.lbl.gov> + + * README: Heavily massaged for 2.4 + +1993-11-10 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Added Landon Noll to thanks. + +1993-11-10 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.4 release + +1993-11-10 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: 2.4 documentation + +1993-11-10 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added global to remember -P prefix so it can be written in + -v summary. Alphabetized prefix generation, added yywrap + +1993-11-09 Vern Paxson <vern@ee.lbl.gov> + + * version.h: updated date for 2.4.0 :-( + +1993-10-10 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: Whitespace tweaking + +1993-10-10 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Use DEFAULT_CSIZE only if not using equivalence classes. + +1993-10-10 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Checkpoint prior to final 2.4 update + +1993-10-04 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Raw 2.4 changes + +1993-10-04 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: osfcn.h -> unistd.h + +1993-10-04 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added "static" to definition of yy_fatal_error as well + as fwd decl. + +1993-10-04 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added yy_fatal_error function. + +1993-10-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, gen.c: Got rid of (char *) casts of yytext, no longer + needed. + +1993-10-03 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: YY_CHAR -> char added YYText(), YYLeng() + +1993-10-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, gen.c: Minimized use of YY_CHAR + +1993-10-03 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added "flex++" feature Minimized use of YY_CHAR + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Clarified help message for -S + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * libyywrap.c, version.h: Initial revision + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * main.c: If -+ used, output to lex.yy.cc + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h, flex.skl: Switched from FILE*'s to stream's + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added expand_nxt_chk() extern. + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added dynamic buffer growing. Added yyless() for + section 3. + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, flexdef.h, gen.c, main.c: Added -a option for long-align. + +1993-10-02 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: formfeed no longer considered whitespace + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Nuked FILENAMESIZE + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * main.c: yyflexlexer.h -> FlexLexer.h minor portability tweak + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Added start condition to EOF trace output + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added YY_START changed yyFlexLexer to define yylex() + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Minor portability tweaks + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: Split into two classes, one fully abstract. yylex() + no longer abstract in yyFlexLexer + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: PC lint tweak + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: YYSTYPE #define'd to int + +1993-09-21 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: minor lint tweak + +1993-09-16 Vern Paxson <vern@ee.lbl.gov> + + * FlexLexer.h: Initial revision + +1993-09-16 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Delete prototypes for Unix system calls. + +1993-09-16 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c, dfa.c, ecs.c, gen.c, main.c, misc.c, nfa.c, parse.y, + scan.l, sym.c, tblcmp.c, yylex.c: nuked static RCS string + +1993-09-16 Vern Paxson <vern@ee.lbl.gov> + + * main.c: %array not allowed with C++ scanners + +1993-09-16 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed bugs regarding %{%} code in section 2 prolog %array + not allowed with C++ scanners + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added C_plus_plus flag. + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: First version of C/C++ skeleton + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: yy_state_type declared earlier. Made a bunch of statics + only output if not -+ + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added -+ option, updated usage() output, rearranged some + generated code to come at the right point in the output for + yyflexlexer.h. + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Added %+/%-/%* to skelout() + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: EOF in section 2 prolog leads to section 0, not section 3 + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: Dump promotion of EOF in section 2 to turn on section 3; + instead just treat it like a final EOF + +1993-08-25 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: yy_nxt table should be "const" + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Removed a lot of #ifdef chud "backtracking" -> "backing + up" + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * main.c: "backtracking" -> "backing up" got rid of time reports + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: "backtracking" -> "backing up" some portability tweaks + fixed to only call flexscan() when done if known to be in section 3 + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: isascii() moved to flexdef.h nuked flex_gettime() + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed bug with empty section 2 + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: Chucked definition of isascii() + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: preserve yytext on input() bug fix when combining + yyless() with yymore() checkpoint prior to C++ option + +1993-08-24 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: "backtracking" -> "backing up" + +1993-07-09 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Fixed to not generate extra EOF's after reading one. + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Spit out definition of YY_CHAR early + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Some rearranging to make sure things get declared in the + right order + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: Some comment fixes as per Wilhelms + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Nuked #undef of yywrap, now that it's a function + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Fixed bug with Z-a character classes as per Wilhelms + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: added check_char call in mkstate() to prevent bad xtion + chars + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Fixed some reallocation bugs, etc. as per Wilhelms + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added check_char(), readable_form() + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added #ifndef's around #define's to let user override + Moved a bunch of definitions prior to section 1 + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: Wilhems bug fixes. + +1993-07-05 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c, misc.c: Added check_char() + +1993-06-12 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Changed to use yy_flex_alloc() and friends + +1993-06-12 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added -P flag + +1993-06-12 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed bug in lex % directives + +1993-06-12 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Modified to use yy_flex_alloc() and friends + +1993-06-12 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: Modified to use yy_flex_alloc() + +1993-06-12 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Modified to use yy_flex_alloc() and friends Moved some + globals earlier in the file to permit access in section 1 + +1993-06-12 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: Got rid of code needed for %t + +1993-04-14 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c, dfa.c, ecs.c, flex.skl, flexdef.h, gen.c, libmain.c, + main.c, misc.c, nfa.c, parse.y, scan.l, sym.c, tblcmp.c, yylex.c: + Reformatting. + +1993-04-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Fixed bug in description of backtracking + +1993-04-05 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.3.8 + +1993-04-05 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, main.c: %array support + +1993-04-05 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Added non-STDC clause for '\a' + +1993-04-05 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Fixed subtle problems regarding '*'s in comments + %pointer/%array match entire lines + +1993-04-05 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Added %array support + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * README: Finally updated email addr + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Mostly .LP -> .PP + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: [no log message] + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * main.c, scan.l: A lot of tweaks ... + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: reallocate_character_array -> reallocate_Character_array + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Bug/lint fixes Modified to work with "action" array instead + of temp file + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: Fixed bug in 8-bit hashing + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: numerous bug fixes extra formatting of error/warning + messages added support of <*>, partial support for nested start + conditions + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * ecs.c: Remove %t cruft + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Beginning of %pointer/%array support + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: Added keeping track of which rules are useful fixed a + fencepost error in checking for scanners that require -8 + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: Added checking for whether rules are useful modified to + work with internal "action" array + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Added internal "action" array, internal skeleton, + zero_out() in lieu of bzero + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: Fixed a bunch of fencepost errors in increasing tables. + +1993-02-06 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: -Wall fix + +1991-03-28 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Fixed out-of-bounds access bug; patch #7 for release 2.3 + +1991-03-28 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Patch #7 for 2.3 + +1990-10-23 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: fixed missing "rule_type" entry for end-of-buffer action + +1990-08-29 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Fixed yymore() but in not resetting yy_more_len + +1990-08-29 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Patch #6 for 2.3 + +1990-08-16 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Patch #5 + +1990-08-14 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: fixed comment in myesc() + +1990-08-14 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: fixed date in patch #4 + +1990-08-14 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: patch #4 + +1990-08-14 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: fixed hexadecimal escapes; added is_hex_digit() + +1990-08-03 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Patch #3 + +1990-08-03 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, flexdef.h: changed to include <stddef.h> for __GNUC__ + +1990-08-02 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.3 patch #2 + +1990-08-02 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Another try at getting the malloc() definitions correct; + this time for g++, too + +1990-08-02 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, flexdef.h: fixed to declare malloc() and free() by hand + if __GNUC__ + +1990-07-28 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Changed to get malloc definition in identical fashion + to that used by flex.skel + +1990-06-28 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: [no log message] + +1990-06-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Fixed bug in mini-scanner examle Fixed bug in YY_INPUT + redefinition yylineno defense reentrancy documentation Something + else which I forget. + +1990-06-27 Vern Paxson <vern@ee.lbl.gov> + + * COPYING, ccl.c, dfa.c, ecs.c, flexdef.h, gen.c, main.c, misc.c, + nfa.c, parse.y, scan.l, sym.c, tblcmp.c, yylex.c: 4.4 BSD copyright + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * README: Changed prolog to reflect 2.3 release. + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: pointed reader at Makefile instead of README for porting + considerations added Makefile comments: support for SCO Unix; + parameterization + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added DONT_HAVE_STDLIB_H and declarations of malloc() + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.3 changes + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: documentation on new features Comment regarding Ove's work + ^foo|bar difference between flex / lex yyin initialization + difference documented that yy_switch_to_buffer can be used in + yywrap() documented that # comments are deprecated + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * main.c: declared void functions as such added prototypes for + forward references changed to check for error status when closing + files + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: Added macro definition for isascii() if not already + present + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: declared void functions as such added prototypes for + forward references changed to use format_pinpoint_message where + appropriate + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: declared void functions as such changed to strip # + comments, as documented moved #undef of yywrap() to before include + of flexdef, so prototype doesn't get screwed up + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: introduced format_pinpoint_message() declared void + functions as such changed lone <<EOF>> to apply to all outstanding + start conditions + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c, tblcmp.c: declared void functions as such added prototypes + for forward references + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: declared void functions as such prototypes for forward + references shuffled around some routines to make the order perhaps a + little more logical changed memory references to use void* instead + of char* + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * libmain.c: Added declaration of arguments made yylex() a function + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: prototypes for forward references declared void functions + as such yy_flex_debug testing of error on file closes casts to void + for sprintf() and strcpy() + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added prototypes changed memory allocation routines to + deal with void*'s instead of char*'s some rearranging for VMS + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Added YY_USER_INIT Added yy_new_buffer() alias for + yy_create_buffer() fixed (hopefully) malloc declaration headaches + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * ecs.c: declared void functions as such declared void functions as + such + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: prototypes for forward references declared void functions + as such + +1990-05-26 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: Declared void functions as such + +1990-04-12 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: added fix for allowing yy_switch_to_buffer() in yywrap() + +1990-04-03 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: patch #3 - -I fix + +1990-03-30 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Changed generation of archaic "continue" to "goto + yy_find_action" + +1990-03-27 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Patch #2 changes + +1990-03-27 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: fixed fencepost errors with yy_buf_size and detecting + NUL's + +1990-03-26 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: [no log message] + +1990-03-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: g++ tweaks + +1990-03-23 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: Changes for Patch #1. + +1990-03-23 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: fix for g++ + +1990-03-23 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: minor typos and formatting changes. Removed BITNET + address. + +1990-03-23 Vern Paxson <vern@ee.lbl.gov> + + * README: nuked BITNET address. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * README: 2.2 README + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: USG alias. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added USG alias for SYS_V + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * : [no log message] + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Tweaks for lint and C++ + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: -ll => -lfl + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: 2.2 changes + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Changed to use YY_BUFFER_STATE everywhere. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: [no log message] + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: "associated rules" changed to "associated rule line + numbers". + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: cast added to malloc() call to keep lint happy. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: Fixed handling of premature EOF's. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: Removed declaration of malloc() + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Removed malloc() declaration. Added detection of EOF in + actions. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Rules rewritten so '/' and '$' parsed correctly. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: Corrected line numbers for continued actions. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Removed declarations of malloc() and realloc(). + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Summary of generation flags. Minor -8 tweaks. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: full support for -d + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: defines for malloc() and realloc() conditional defines + for abs(), min(), and max() + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Many multiple-buffer additions. + +1990-03-20 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: -8 tweaks. + +1990-03-19 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Proto hacks. NUL hacks. Debugging hacks. C++ hacks. + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * : RCS won't let me unedit! gets "Missing access list" + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: Minor tweaks for NUL's. + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * : no changes -- had checked out for testing smaller read buffer + sizes + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: hack for NUL's. + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Hack to cshell for NUL's. + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * main.c: NUL's. -8 + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: NUL's. + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: NUL's. 8-bit chars. + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: NUL's; indenting + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: more thrashing around with NUL's + +1990-03-16 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: removed NUL hack + +1990-03-14 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: Added <<EOF>> token + +1990-03-14 Vern Paxson <vern@ee.lbl.gov> + + * ecs.c, flexdef.h: Tweaks for NUL chars. + +1990-03-14 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c, gen.c, main.c, misc.c, parse.y, scan.l, tblcmp.c: Tweaks + for NUL chars. + +1990-03-14 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: Tweaks for handling NUL's. + +1990-02-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: [no log message] + +1990-02-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Changed .so options.man to inlined version since flex.1 + will have a different (shorter) options description. + +1990-02-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: [no log message] + +1990-02-28 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: [no log message] + +1990-02-26 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: [no log message] + +1990-02-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: [no log message] + +1990-02-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.1: Initial revision + +1990-01-16 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Restored EOB accepting list for REJECT. Second try at 2.2 + Release. + +1990-01-16 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Added missing ',' in error message. 2.2 Release, second + try. + +1990-01-16 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: 8-bit char support. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: 8-bit char support. Arbitrary indented/%{} code allowed + in section 2. \x escapes. %t support. Minor POSIX-compliance + changes. BEGIN(0) -> BEGIN(INITIAL). yywrap() and set_input_file() + for multiple input files. C_COMMENT_2 removed. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: 8-bit char support. SYS_V / Atari portability fixes. + Removed generated array names. CSIZE now only defined if not + already defined. Added "csize" global. Added "input_files", + "num_input_files", and "program_name" globals. %t support globals. + 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Removed unused EOB_accepting_list array. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Bug in -F table generation fixed. 8-bit char support. + Hardwired generated array names. "const"'s added to generated code. + Fixed yymore() / trailing context bug. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: 8-bit char support. Error-message pinpointing. 2.2 + Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Unsigned char support. %t support. Removed hard-wiring + of program name "flex". -c changed to -C; -c now deprecated. -n + added. :-( Multiple input files. SYSV tmpnam() use. Removed old + #define's from output. Identified error messages w/ filename and + line. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: Unsigned char support. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: Removed redundant test. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: Unsigned char support. \x support. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: 8-bit char support. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: C++ support. Turbo-C support. 8-bit char support. + yyleng is an int. unput() callable in section 3. yymore hacks. + yyrestart() no longer closes stdin. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * ecs.c: %t support. 8-bit/unsigned char support. 2.2 Release. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: %t hacks. minor cosmetics. 2.2 Relase. + +1990-01-15 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: Changes for unsigned/8-bit chars. 2.2 Release. + +1990-01-10 Vern Paxson <vern@ee.lbl.gov> + + * libmain.c: Initial revision + +1989-12-30 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: removed gratuitous trailing context code + +1989-12-30 Vern Paxson <vern@ee.lbl.gov> + + * main.c: made -c<compression flags> case-sensitive + +1989-12-30 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: unput() bug fix + +1989-12-30 Vern Paxson <vern@ee.lbl.gov> + + * README: [no log message] + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: changed to not use '|' and trailing context combo so users + can test using -F ... + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: made trailing context combined with '|' warning always + come out + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * README: [no log message] + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * COPYING: Initial revision + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, README, main.c: [no log message] + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * README: [no log message] + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, README, main.c: [no log message] + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * : Beta release + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, main.c: [no log message] + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl, flexdef.h, gen.c, misc.c, nfa.c, parse.y, scan.l, sym.c: + 2.0.1 beta + +1989-06-20 Vern Paxson <vern@ee.lbl.gov> + + * README: [no log message] + +1989-05-25 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: fixsed bug with -I and backtracking + +1989-05-25 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Cleaned up forward declarations of yyunput() and input() + +1989-05-25 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: Split copyright string. + +1989-05-25 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: Split copyright string. Added check for empty machine in + dupmachine(). + +1989-05-25 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c, dfa.c, ecs.c, gen.c, main.c, misc.c, scan.l, sym.c, + tblcmp.c, yylex.c: Split copyright string into two to avoid tempting + fate with \<newline> sequences ... + +1989-05-24 Vern Paxson <vern@ee.lbl.gov> + + * README: updated for 2nd release Beta test added RCS header + +1989-05-24 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: removed static char copyright + +1989-05-24 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added BSD copyright notice. Removed + FAST_SKELETON_FILE. + +1989-05-24 Vern Paxson <vern@ee.lbl.gov> + + * main.c: added BSD copyright notice. Removed references to + FAST_SKELETON_FILE. + +1989-05-24 Vern Paxson <vern@ee.lbl.gov> + + * ecs.c, gen.c, nfa.c: Added BSD copyright notice + +1989-05-24 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c, dfa.c, misc.c, parse.y, scan.l, sym.c, tblcmp.c, yylex.c: + added BSD copyright notice + +1989-05-24 Vern Paxson <vern@ee.lbl.gov> + + * flex.skl: Initial revision + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: renamed accnum to num_rules + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: moved table generation code to gen.c moved ntod() to + dfa.c + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: the most piddling format change imaginable + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: changed to look for yymore, REJECT, %used and %unused + removed gross magic for dealing with section 3 + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c, parse.y: changes for variable trailing context + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: added all_lower() and all_upper() + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * main.c: added checking for features being Really used + backtracking, performance reports misc. cleanup + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: major overhaul for merged skeleton + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: a zillion changes/additions/cleanups + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: added backtrack report added checking for dangerous + trailing context considerable minor cleanup + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: list_character_set() modified to take a FILE to write to + ... + +1989-05-19 Vern Paxson <vern@ee.lbl.gov> + + * README: updated for beta release + +1988-11-25 Vern Paxson <vern@ee.lbl.gov> + + * main.c: added -p flag generation of #define's for scanner + +1988-11-25 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: Added END_OF_BUFFER_ACTION and bol_needed + +1988-11-25 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: added ntod() + +1988-05-09 Vern Paxson <vern@ee.lbl.gov> + + * gen.c: Initial revision + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: RCS header changed display style of non-printings from ^x + to \0xx + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: RCS header MAX_XTIONS_FOR_FULL_INTERIOR_FIT -> + MAX_XTIONS_FULL_INTERIOR_FIT made back-tracking accepting number be + one greater than the last legit accepting number, instead of 0. + This way, end-of-buffer can take 0 and no negative accepting numbers + are needed. added genftbl() changed last ftl references to C added + check for UNSIGNED_CHAR's added back-track logic to make_tables() + added checking and report for backtracking fixed fence-post error + with onesp stack pointer + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: RCS header changed "entry" to "sym_entry" to avoid conflict + with old keyword + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: RCS header removed \^ from ESCSEQ + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: RCS header bug fix due to missing default rule, could + have to backtrack when backtrack variables haven't been set up + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: RCS ident yy_cp, yy_bp support name shortenings assoc_rule + support + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: RCS header check before malloc()'ing for 16 bit overflow + MS_DOS, VMS ifdef's removed commented-out \^ code removed FTLSOURCE + code added readable_form() + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * main.c: Added RCS header removed revision history misc additions + and fixes to globals VMS ifdef's backtracking statistics -p flag + name shortenings + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: removed revision history added RCS header added VMS, + MS_DOS ifdef's removed DEFAULT_ACTION, changed END_OF_BUFFER_ACTION + shortened MAX_XTIONS_FOR_FULL_INTERIOR_FIT to + MAX_XTIONS_FULL_INTERIOR_FIT added MAX_ASSOC_RULES added + performance_report, assoc_rule gloabls added num_backtracking gloabl + shortened allocate_integer_pointer_array, + reallocate_integer_pointer_array + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * ecs.c: added RCS id added PROCFLG to avoid assumption of signed + char's + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: added RCS id added check_for_backtracking() added + dump_associated_rules() added dump_transitions() shortened + reallocate_integer_pointer_array to reallocate_int_ptr_array removed + some dfaacc_{state,set} abuses + +1988-05-08 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: Added list_character_set() + +1988-05-07 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: added RCS id + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * README: minor tweaks + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * README: forgot sh flex.shar + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * README: final tweaking + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: removed minor lint fluff + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * NEWS: [no log message] + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * NEWS, README: Initial revision + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * yylex.c: added identifying comment. changed to include "parse.h" + instead of "y.tab.h" + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * tblcmp.c: Changed name from flexcmp.c -> tblcmp.c fixed misc. + typos made generating ec tables be a routine + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * sym.c: changed name from flexsym.c -> sym.c revamped calling + sequences, etc., for extended table struct definition which now has + both char * and int fields. + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * scan.l: Changed name from flexscan.l -> scan.l fixed bug in + <RECOVER> added block comments between rules. + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * parse.y: changed name from flexparse.y -> parse.y added start + condition "INITIAL" made a{3} have "variable length" + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * nfa.c: changed name from flexnfa.c -> nfa.c corrected some typos. + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * misc.c: changed name from flexmisc.c -> misc.c + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * main.c: fixed bug causing core dumps if skeleton files could not + be opened. Added -cF. Added fullspd to be equivalent to fulltbl + for which options is cannot be mixed with. + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * flexdef.h: fixed typos, enhanced symbol table definition. + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * ecs.c: changed name from flexecs.c to ecs.c + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * dfa.c: changed name from flexdfa.c to dfa.c + +1988-04-10 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c: changed name from flexccl.c -> ccl.c + +1988-02-13 Vern Paxson <vern@ee.lbl.gov> + + * ccl.c, dfa.c, ecs.c, flexdef.h, main.c, misc.c, nfa.c, parse.y, + scan.l, sym.c, tblcmp.c, yylex.c: Beta Release. + +1987-11-08 Vern Paxson <vern@ee.lbl.gov> + + * Initial revision + diff --git a/build-aux/config.rpath b/build-aux/config.rpath new file mode 100755 index 0000000..17298f2 --- /dev/null +++ b/build-aux/config.rpath @@ -0,0 +1,672 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2010 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + darwin*) + case $cc_basename in + xlc*) + wl='-Wl,' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we cannot use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if test "$GCC" = yes ; then + : + else + case $cc_basename in + xlc*) + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd1*) + ld_shlibs=no + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + library_names_spec='$libname.a' + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd1*) + ;; + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + nto-qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF + +# How to pass a linker flag through the compiler. +wl="$escaped_wl" + +# Static library suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally "so"). +shlibext="$shlibext" + +# Format of library name prefix. +libname_spec="$escaped_libname_spec" + +# Library names that the linker finds when passed -lNAME. +library_names_spec="$escaped_library_names_spec" + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator="$hardcode_libdir_separator" + +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the +# resulting binary. +hardcode_direct="$hardcode_direct" + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L="$hardcode_minus_L" + +EOF diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh new file mode 100644 index 0000000..a736cf9 --- /dev/null +++ b/build-aux/ltmain.sh @@ -0,0 +1,11156 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.6 Debian-2.4.6-2" +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='[0m' + tc_bold='[1m'; tc_standout='[7m' + tc_red='[31m'; tc_green='[32m' + tc_blue='[34m'; tc_cyan='[36m' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '<hooked_function_name>_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname $scriptversion Debian-2.4.6-2 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to <bug-libtool@gnu.org>. +GNU libtool home page: <http://www.gnu.org/s/libtool/>. +General help using GNU software: <http://www.gnu.org/gethelp/>." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T <<EOF +# $write_libobj - a libtool object file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object=$write_lobj + +# Name of the non-PIC object +non_pic_object=$write_oldobj + +EOF + $MV "${write_libobj}T" "$write_libobj" + } +} + + +################################################## +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +################################################## + +# func_convert_core_file_wine_to_w32 ARG +# Helper function used by file name conversion functions when $build is *nix, +# and $host is mingw, cygwin, or some other w32 environment. Relies on a +# correctly configured wine environment available, with the winepath program +# in $build's $PATH. +# +# ARG is the $build file name to be converted to w32 format. +# Result is available in $func_convert_core_file_wine_to_w32_result, and will +# be empty on error (or when ARG is empty) +func_convert_core_file_wine_to_w32 () +{ + $debug_cmd + + func_convert_core_file_wine_to_w32_result=$1 + if test -n "$1"; then + # Unfortunately, winepath does not exit with a non-zero error code, so we + # are forced to check the contents of stdout. On the other hand, if the + # command is not found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both error code of + # zero AND non-empty stdout, which explains the odd construction: + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen <import library>. + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 </dev/null >/dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat <<EOF + +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname + Generated by $PROGRAM (GNU $PACKAGE) $VERSION + + The $output program cannot be directly executed until all the libtool + libraries that it depends on are installed. + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. +*/ +EOF + cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif +#include <stdio.h> +#include <stdlib.h> +#ifdef _MSC_VER +# include <direct.h> +# include <process.h> +# include <io.h> +#else +# include <unistd.h> +# include <stdint.h> +# ifdef __CYGWIN__ +# include <io.h> +# endif +#endif +#include <malloc.h> +#include <stdarg.h> +#include <assert.h> +#include <string.h> +#include <ctype.h> +#include <errno.h> +#include <fcntl.h> +#include <sys/stat.h> + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <<EOF +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) +# define externally_visible volatile +#else +# define externally_visible __attribute__((externally_visible)) volatile +#endif +externally_visible const char * MAGIC_EXE = "$magic_exe"; +const char * LIB_PATH_VARNAME = "$shlibpath_var"; +EOF + + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + func_to_host_path "$temp_rpath" + cat <<EOF +const char * LIB_PATH_VALUE = "$func_to_host_path_result"; +EOF + else + cat <<"EOF" +const char * LIB_PATH_VALUE = ""; +EOF + fi + + if test -n "$dllsearchpath"; then + func_to_host_path "$dllsearchpath:" + cat <<EOF +const char * EXE_PATH_VARNAME = "PATH"; +const char * EXE_PATH_VALUE = "$func_to_host_path_result"; +EOF + else + cat <<"EOF" +const char * EXE_PATH_VARNAME = ""; +const char * EXE_PATH_VALUE = ""; +EOF + fi + + if test yes = "$fast_install"; then + cat <<EOF +const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ +EOF + else + cat <<EOF +const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ +EOF + fi + + + cat <<"EOF" + +#define LTWRAPPER_OPTION_PREFIX "--lt-" + +static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; +static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; +static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; + +int +main (int argc, char *argv[]) +{ + char **newargz; + int newargc; + char *tmp_pathspec; + char *actual_cwrapper_path; + char *actual_cwrapper_name; + char *target_name; + char *lt_argv_zero; + int rval = 127; + + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + newargz = XMALLOC (char *, (size_t) argc + 1); + + /* very simple arg parsing; don't want to rely on getopt + * also, copy all non cwrapper options to newargz, except + * argz[0], which is handled differently + */ + newargc=0; + for (i = 1; i < argc; i++) + { + if (STREQ (argv[i], dumpscript_opt)) + { +EOF + case $host in + *mingw* | *cygwin* ) + # make stdout use "unix" line endings + echo " setmode(1,_O_BINARY);" + ;; + esac + + cat <<"EOF" + lt_dump_script (stdout); + return 0; + } + if (STREQ (argv[i], debug_opt)) + { + lt_debug = 1; + continue; + } + if (STREQ (argv[i], ltwrapper_option_prefix)) + { + /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX + namespace, but it is not one of the ones we know about and + have already dealt with, above (inluding dump-script), then + report an error. Otherwise, targets might begin to believe + they are allowed to use options in the LTWRAPPER_OPTION_PREFIX + namespace. The first time any user complains about this, we'll + need to make LTWRAPPER_OPTION_PREFIX a configure-time option + or a configure.ac-settable value. + */ + lt_fatal (__FILE__, __LINE__, + "unrecognized %s option: '%s'", + ltwrapper_option_prefix, argv[i]); + } + /* otherwise ... */ + newargz[++newargc] = xstrdup (argv[i]); + } + newargz[++newargc] = NULL; + +EOF + cat <<EOF + /* The GNU banner must be the first non-error debug message */ + lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n"); +EOF + cat <<"EOF" + lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); + lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); + + tmp_pathspec = find_executable (argv[0]); + if (tmp_pathspec == NULL) + lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (before symlink chase) at: %s\n", + tmp_pathspec); + + actual_cwrapper_path = chase_symlinks (tmp_pathspec); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (after symlink chase) at: %s\n", + actual_cwrapper_path); + XFREE (tmp_pathspec); + + actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); + strendzap (actual_cwrapper_path, actual_cwrapper_name); + + /* wrapper name transforms */ + strendzap (actual_cwrapper_name, ".exe"); + tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); + XFREE (actual_cwrapper_name); + actual_cwrapper_name = tmp_pathspec; + tmp_pathspec = 0; + + /* target_name transforms -- use actual target program name; might have lt- prefix */ + target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); + strendzap (target_name, ".exe"); + tmp_pathspec = lt_extend_str (target_name, ".exe", 1); + XFREE (target_name); + target_name = tmp_pathspec; + tmp_pathspec = 0; + + lt_debugprintf (__FILE__, __LINE__, + "(main) libtool target name: %s\n", + target_name); +EOF + + cat <<EOF + newargz[0] = + XMALLOC (char, (strlen (actual_cwrapper_path) + + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); + strcpy (newargz[0], actual_cwrapper_path); + strcat (newargz[0], "$objdir"); + strcat (newargz[0], "/"); +EOF + + cat <<"EOF" + /* stop here, and copy so we don't have to do this twice */ + tmp_pathspec = xstrdup (newargz[0]); + + /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ + strcat (newargz[0], actual_cwrapper_name); + + /* DO want the lt- prefix here if it exists, so use target_name */ + lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); + XFREE (tmp_pathspec); + tmp_pathspec = NULL; +EOF + + case $host_os in + mingw*) + cat <<"EOF" + { + char* p; + while ((p = strchr (newargz[0], '\\')) != NULL) + { + *p = '/'; + } + while ((p = strchr (lt_argv_zero, '\\')) != NULL) + { + *p = '/'; + } + } +EOF + ;; + esac + + cat <<"EOF" + XFREE (target_name); + XFREE (actual_cwrapper_path); + XFREE (actual_cwrapper_name); + + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ + /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must + be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) + because on Windows, both *_VARNAMEs are PATH but uninstalled + libraries must come first. */ + lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); + + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", + nonnull (lt_argv_zero)); + for (i = 0; i < newargc; i++) + { + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", + i, nonnull (newargz[i])); + } + +EOF + + case $host_os in + mingw*) + cat <<"EOF" + /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); + rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); + if (rval == -1) + { + /* failed to start process */ + lt_debugprintf (__FILE__, __LINE__, + "(main) failed to launch target \"%s\": %s\n", + lt_argv_zero, nonnull (strerror (errno))); + return 127; + } + return rval; +EOF + ;; + *) + cat <<"EOF" + execv (lt_argv_zero, newargz); + return rval; /* =127, but avoids unused variable warning */ +EOF + ;; + esac + + cat <<"EOF" +} + +void * +xmalloc (size_t num) +{ + void *p = (void *) malloc (num); + if (!p) + lt_fatal (__FILE__, __LINE__, "memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), + string) : NULL; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined HAVE_DOS_BASED_FILE_SYSTEM + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char) name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable (const char *path) +{ + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c <<EOF + int main() { return 0; } +EOF + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then + ldd_output=`ldd conftest` + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $i "*) + func_append newdeplibs " $i" + i= + ;; + esac + fi + if test -n "$i"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then + func_append newdeplibs " $i" + else + droppeddeps=yes + echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." + fi + fi + ;; + *) + func_append newdeplibs " $i" + ;; + esac + done + else + # Error occurred in the first compile. Let's try to salvage + # the situation: Compile a separate program for each library. + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then + ldd_output=`ldd conftest` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $i "*) + func_append newdeplibs " $i" + i= + ;; + esac + fi + if test -n "$i"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then + func_append newdeplibs " $i" + else + droppeddeps=yes + echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + fi + else + droppeddeps=yes + echo + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." + fi + ;; + *) + func_append newdeplibs " $i" + ;; + esac + done + fi + ;; + file_magic*) + set dummy $deplibs_check_method; shift + file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + if test yes = "$want_nocaseglob"; then + shopt -s nocaseglob + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/build-aux/missing b/build-aux/missing new file mode 100755 index 0000000..f62bbae --- /dev/null +++ b/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to <bug-automake@gnu.org>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/test-driver b/build-aux/test-driver new file mode 100755 index 0000000..8e575b0 --- /dev/null +++ b/build-aux/test-driver @@ -0,0 +1,148 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2013-07-13.22; # UTC + +# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <<END +Usage: + test-driver --test-name=NAME --log-file=PATH --trs-file=PATH + [--expect-failure={yes|no}] [--color-tests={yes|no}] + [--enable-hard-errors={yes|no}] [--] + TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] +The '--test-name', '--log-file' and '--trs-file' options are mandatory. +END +} + +test_name= # Used for reporting. +log_file= # Where to save the output of the test script. +trs_file= # Where to save the metadata of the test run. +expect_failure=no +color_tests=no +enable_hard_errors=yes +while test $# -gt 0; do + case $1 in + --help) print_usage; exit $?;; + --version) echo "test-driver $scriptversion"; exit $?;; + --test-name) test_name=$2; shift;; + --log-file) log_file=$2; shift;; + --trs-file) trs_file=$2; shift;; + --color-tests) color_tests=$2; shift;; + --expect-failure) expect_failure=$2; shift;; + --enable-hard-errors) enable_hard_errors=$2; shift;; + --) shift; break;; + -*) usage_error "invalid option: '$1'";; + *) break;; + esac + shift +done + +missing_opts= +test x"$test_name" = x && missing_opts="$missing_opts --test-name" +test x"$log_file" = x && missing_opts="$missing_opts --log-file" +test x"$trs_file" = x && missing_opts="$missing_opts --trs-file" +if test x"$missing_opts" != x; then + usage_error "the following mandatory options are missing:$missing_opts" +fi + +if test $# -eq 0; then + usage_error "missing argument" +fi + +if test $color_tests = yes; then + # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. + red='[0;31m' # Red. + grn='[0;32m' # Green. + lgn='[1;32m' # Light green. + blu='[1;34m' # Blue. + mgn='[0;35m' # Magenta. + std='[m' # No color. +else + red= grn= lgn= blu= mgn= std= +fi + +do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' +trap "st=129; $do_exit" 1 +trap "st=130; $do_exit" 2 +trap "st=141; $do_exit" 13 +trap "st=143; $do_exit" 15 + +# Test script is run here. +"$@" >$log_file 2>&1 +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ylwrap b/build-aux/ylwrap new file mode 100755 index 0000000..d788f2d --- /dev/null +++ b/build-aux/ylwrap @@ -0,0 +1,247 @@ +#! /bin/sh +# ylwrap - wrapper for lex/yacc invocations. + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# Written by Tom Tromey <tromey@cygnus.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +get_dirname () +{ + case $1 in + */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; + # Otherwise, we want the empty string (not "."). + esac +} + +# guard FILE +# ---------- +# The CPP macro used to guard inclusion of FILE. +guard () +{ + printf '%s\n' "$1" \ + | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ + -e 's/__*/_/g' +} + +# quote_for_sed [STRING] +# ---------------------- +# Return STRING (or stdin) quoted to be used as a sed pattern. +quote_for_sed () +{ + case $# in + 0) cat;; + 1) printf '%s\n' "$1";; + esac \ + | sed -e 's|[][\\.*]|\\&|g' +} + +case "$1" in + '') + echo "$0: No files given. Try '$0 --help' for more information." 1>&2 + exit 1 + ;; + --basedir) + basedir=$2 + shift 2 + ;; + -h|--h*) + cat <<\EOF +Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... + +Wrapper for lex/yacc invocations, renaming files as desired. + + INPUT is the input file + OUTPUT is one file PROG generates + DESIRED is the file we actually want instead of OUTPUT + PROGRAM is program to run + ARGS are passed to PROG + +Any number of OUTPUT,DESIRED pairs may be used. + +Report bugs to <bug-automake@gnu.org>. +EOF + exit $? + ;; + -v|--v*) + echo "ylwrap $scriptversion" + exit $? + ;; +esac + + +# The input. +input=$1 +shift +# We'll later need for a correct munging of "#line" directives. +input_sub_rx=`get_dirname "$input" | quote_for_sed` +case $input in + [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; + *) + # Relative path. Make it absolute. + input=`pwd`/$input + ;; +esac +input_rx=`get_dirname "$input" | quote_for_sed` + +# Since DOS filename conventions don't allow two dots, +# the DOS version of Bison writes out y_tab.c instead of y.tab.c +# and y_tab.h instead of y.tab.h. Test to see if this is the case. +y_tab_nodot=false +if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot=true +fi + +# The parser itself, the first file, is the destination of the .y.c +# rule in the Makefile. +parser=$1 + +# A sed program to s/FROM/TO/g for all the FROM/TO so that, for +# instance, we rename #include "y.tab.h" into #include "parse.h" +# during the conversion from y.tab.c to parse.c. +sed_fix_filenames= + +# Also rename header guards, as Bison 2.7 for instance uses its header +# guard in its implementation file. +sed_fix_header_guards= + +while test $# -ne 0; do + if test x"$1" = x"--"; then + shift + break + fi + from=$1 + # Handle y_tab.c and y_tab.h output by DOS + if $y_tab_nodot; then + case $from in + "y.tab.c") from=y_tab.c;; + "y.tab.h") from=y_tab.h;; + esac + fi + shift + to=$1 + shift + sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" + sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" +done + +# The program to run. +prog=$1 +shift +# Make any relative path in $prog absolute. +case $prog in + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog=`pwd`/$prog ;; +esac + +dirname=ylwrap$$ +do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' +trap "ret=129; $do_exit" 1 +trap "ret=130; $do_exit" 2 +trap "ret=141; $do_exit" 13 +trap "ret=143; $do_exit" 15 +mkdir $dirname || exit 1 + +cd $dirname + +case $# in + 0) "$prog" "$input" ;; + *) "$prog" "$@" "$input" ;; +esac +ret=$? + +if test $ret -eq 0; then + for from in * + do + to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend '../'. + case $to in + [\\/]* | ?:[\\/]*) target=$to;; + *) target=../$to;; + esac + + # Do not overwrite unchanged header files to avoid useless + # recompilations. Always update the parser itself: it is the + # destination of the .y.c rule in the Makefile. Divert the + # output of all other files to a temporary file so we can + # compare them to existing versions. + if test $from != $parser; then + realtarget=$target + target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` + fi + + # Munge "#line" or "#" directives. Don't let the resulting + # debug information point at an absolute srcdir. Use the real + # output file name, not yy.lex.c for instance. Adjust the + # include guards too. + sed -e "/^#/!b" \ + -e "s|$input_rx|$input_sub_rx|" \ + -e "$sed_fix_filenames" \ + -e "$sed_fix_header_guards" \ + "$from" >"$target" || ret=$? + + # Check whether files must be updated. + if test "$from" != "$parser"; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$to is unchanged" + rm -f "$target" + else + echo "updating $to" + mv -f "$target" "$realtarget" + fi + fi + else + # A missing file is only an error for the parser. This is a + # blatant hack to let us support using "yacc -d". If -d is not + # specified, don't fail when the header file is "missing". + if test "$from" = "$parser"; then + ret=1 + fi + fi + done +fi + +# Remove the directory. +cd .. +rm -rf $dirname + +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/control.ac b/control.ac deleted file mode 100644 index 30596cf..0000000 --- a/control.ac +++ /dev/null @@ -1 +0,0 @@ -XBS-Destinations: sourceforge diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 83b0108..0000000 --- a/doc/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -flex.aux -flex.cp -flex.cps -flex.dvi -flex.fn -flex.fns -flex.hk -flex.hks -flex.info* -flex.ky -flex.log -flex.op -flex.ops -flex.pg -flex.toc -flex.tp -flex.tps -flex.vr -flex.vrs -Makefile -Makefile.in -flex.1 -flex.pdf -flex.ps -version.texi -flex.html -flex.t2p diff --git a/lib/.gitignore b/lib/.gitignore deleted file mode 100644 index 9e23bdd..0000000 --- a/lib/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.la -*.lo -*.o diff --git a/lib/Makefile.in b/lib/Makefile.in new file mode 100644 index 0000000..30a2fe8 --- /dev/null +++ b/lib/Makefile.in @@ -0,0 +1,626 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = lib +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libcompat_la_DEPENDENCIES = $(LTLIBOBJS) +am_libcompat_la_OBJECTS = lib.lo +libcompat_la_OBJECTS = $(am_libcompat_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libcompat_la_SOURCES) +DIST_SOURCES = $(libcompat_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp malloc.c realloc.c \ + reallocarray.c +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BISON = @BISON@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HELP2MAN = @HELP2MAN@ +INDENT = @INDENT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +M4 = @M4@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEXI2DVI = @TEXI2DVI@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libcompat.la +libcompat_la_SOURCES = lib.c +libcompat_la_LIBADD = $(LTLIBOBJS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu lib/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libcompat.la: $(libcompat_la_OBJECTS) $(libcompat_la_DEPENDENCIES) $(EXTRA_libcompat_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libcompat_la_OBJECTS) $(libcompat_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/reallocarray.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf $(DEPDIR) ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf $(DEPDIR) ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/m4/gettext.m4 b/m4/gettext.m4 new file mode 100644 index 0000000..be247bf --- /dev/null +++ b/m4/gettext.m4 @@ -0,0 +1,401 @@ +# gettext.m4 serial 66 (gettext-0.18.2) +dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], + [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ]])], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST([BUILD_INCLUDED_LIBINTL]) + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST([DATADIRNAME]) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST([INSTOBJEXT]) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST([GENCAT]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST([INTLOBJS]) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/m4/iconv.m4 b/m4/iconv.m4 new file mode 100644 index 0000000..4b29c5f --- /dev/null +++ b/m4/iconv.m4 @@ -0,0 +1,268 @@ +# iconv.m4 serial 18 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2007-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <stdlib.h> +#include <iconv.h> + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <stdlib.h> +#include <iconv.h> + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <iconv.h> +#include <string.h> +int main () +{ + int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +}]])], + [am_cv_func_iconv_works=yes], + [am_cv_func_iconv_works=no], + [ +changequote(,)dnl + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +changequote([,])dnl + ]) + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +m4_define([gl_iconv_AC_DEFUN], + m4_version_prereq([2.64], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [m4_ifdef([gl_00GNULIB], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [[AC_DEFUN( + [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <stdlib.h> +#include <iconv.h> +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + ]], + [[]])], + [am_cv_proto_iconv_arg1=""], + [am_cv_proto_iconv_arg1="const"]) + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) + fi +]) diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 new file mode 100644 index 0000000..8a045f6 --- /dev/null +++ b/m4/intlmacosx.m4 @@ -0,0 +1,56 @@ +# intlmacosx.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2004-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <CoreFoundation/CFPreferences.h>]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in Mac OS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <CoreFoundation/CFLocale.h>]], + [[CFLocaleCopyCurrent();]])], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 new file mode 100644 index 0000000..ddc569f --- /dev/null +++ b/m4/lib-ld.m4 @@ -0,0 +1,119 @@ +# lib-ld.m4 serial 6 +dnl Copyright (C) 1996-2003, 2009-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + acl_cv_prog_gnu_ld=yes + ;; +*) + acl_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$acl_cv_prog_gnu_ld +]) + +dnl From libtool-2.4. Sets the variable LD. +AC_DEFUN([AC_LIB_PROG_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld [default=no]])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$acl_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT([$LD]) +else + AC_MSG_RESULT([no]) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 new file mode 100644 index 0000000..3522d99 --- /dev/null +++ b/m4/lib-link.m4 @@ -0,0 +1,777 @@ +# lib-link.m4 serial 26 (gettext-0.18.2) +dnl Copyright (C) 2001-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ([2.54]) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[m4_translit([$1],[./+-], [____])]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + popdef([NAME]) + popdef([Name]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. The missing-message +dnl defaults to 'no' and may contain additional hints for the user. +dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} +dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[m4_translit([$1],[./+-], [____])]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, + dnl because these -l options might require -L options that are present in + dnl LIBS. -l options benefit only from the -L options listed before it. + dnl Otherwise, add it to the front of LIBS, because it may be a static + dnl library that depends on another static library that is present in LIBS. + dnl Static libraries benefit only from the static libraries listed after + dnl it. + case " $LIB[]NAME" in + *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; + *) LIBS="$LIB[]NAME $LIBS" ;; + esac + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[$3]], [[$4]])], + [ac_cv_lib[]Name=yes], + [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + LIB[]NAME[]_PREFIX= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + popdef([NAME]) + popdef([Name]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl acl_libext, +dnl acl_shlibext, +dnl acl_libname_spec, +dnl acl_library_names_spec, +dnl acl_hardcode_libdir_flag_spec, +dnl acl_hardcode_libdir_separator, +dnl acl_hardcode_direct, +dnl acl_hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + dnl Tell automake >= 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 new file mode 100644 index 0000000..31f49e4 --- /dev/null +++ b/m4/lib-prefix.m4 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 0000000..ee80844 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,8387 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to <bug-libtool@gnu.org>." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test no != "$with_gnu_ld" && break + ;; + *) + test yes != "$with_gnu_ld" && break + ;; + esac + fi + done + IFS=$lt_save_ifs +else + lt_cv_path_LD=$LD # Let the user override the test with a path. +fi]) +LD=$lt_cv_path_LD +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +_LT_PATH_LD_GNU +AC_SUBST([LD]) + +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) +])# LT_PATH_LD + +# Old names: +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_LD], []) +dnl AC_DEFUN([AC_PROG_LD], []) + + +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# _LT_PATH_LD_GNU + + +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD + + +# _LT_PATH_DD +# ----------- +# find a working dd +m4_defun([_LT_PATH_DD], +[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 0000000..94b0829 --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 0000000..48bc934 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 0000000..fa04b52 --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 0000000..c6b26f8 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/nls.m4 b/m4/nls.m4 new file mode 100644 index 0000000..53cdc8b --- /dev/null +++ b/m4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/m4/po.m4 b/m4/po.m4 new file mode 100644 index 0000000..84659ea --- /dev/null +++ b/m4/po.m4 @@ -0,0 +1,453 @@ +# po.m4 serial 22 (gettext-0.19) +dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ([2.60]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.19]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat <<EOT +$* +EOT + } + gt_echo='echo_func' + fi + fi + + # A sed script that extracts the value of VARIABLE from a Makefile. + tab=`printf '\t'` + sed_x_variable=' +# Test if the hold space is empty. +x +s/P/P/ +x +ta +# Yes it was empty. Look if we have the expected variable definition. +/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{ + # Seen the first line of the variable definition. + s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=// + ba +} +bd +:a +# Here we are processing a line from the variable definition. +# Remove comment, more precisely replace it with a space. +s/#.*$/ / +# See if the line ends in a backslash. +tb +:b +s/\\$// +# Print the line, without the trailing backslash. +p +tc +# There was no trailing backslash. The end of the variable definition is +# reached. Clear the hold space. +s/^.*$// +x +bd +:c +# A trailing backslash means that the variable definition continues in the +# next line. Put a nonempty string into the hold space to indicate this. +s/^.*$/P/ +x +:d +' +changequote([,])dnl + + # Set POTFILES to the value of the Makefile variable POTFILES. + sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` + POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` + # Compute POTFILES_DEPS as + # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) + POTFILES_DEPS= + for file in $POTFILES; do + POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" + done + POMAKEFILEDEPS="" + + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. + sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` + ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` + fi + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + # Compute PROPERTIESFILES + # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) + # Compute CLASSFILES + # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) + # Compute QMFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) + # Compute MSGFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) + # Compute RESOURCESDLLFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + PROPERTIESFILES= + CLASSFILES= + QMFILES= + MSGFILES= + RESOURCESDLLFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" + CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" + QMFILES="$QMFILES $srcdirpre$lang.qm" + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + JAVACATALOGS= + QTCATALOGS= + TCLCATALOGS= + CSHARPCATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" + QTCATALOGS="$QTCATALOGS $lang.qm" + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" + done + fi + + sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" <<EOF +$frobbedlang.msg: $lang.po +${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ +${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF + done + fi + if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <<EOF +$frobbedlang/\$(DOMAIN).resources.dll: $lang.po +${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ +${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF + done + fi + if test -n "$POMAKEFILEDEPS"; then + cat >> "$ac_file.tmp" <<EOF +Makefile: $POMAKEFILEDEPS +EOF + fi + mv "$ac_file.tmp" "$ac_file" +]) + +dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. +AC_DEFUN([AM_XGETTEXT_OPTION_INIT], +[ + XGETTEXT_EXTRA_OPTIONS= +]) + +dnl Registers an option to be passed to xgettext in the po subdirectory. +AC_DEFUN([AM_XGETTEXT_OPTION], +[ + AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" +]) diff --git a/m4/progtest.m4 b/m4/progtest.m4 new file mode 100644 index 0000000..b499f79 --- /dev/null +++ b/m4/progtest.m4 @@ -0,0 +1,91 @@ +# progtest.m4 serial 7 (gettext-0.18.2) +dnl Copyright (C) 1996-2003, 2005, 2008-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1996. + +AC_PREREQ([2.50]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/po/.gitignore b/po/.gitignore deleted file mode 100644 index 3c6f57d..0000000 --- a/po/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -*.gmo -Makefile -Makefile.in -Makefile.in.in -Makevars.template -POTFILES -Rules-quot -boldquot.sed -en@boldquot.*header -en@boldquot.po -en@quot.*header -en@quot.po -flex.pot -insert-header.sin -quot.sed -remove-potcdate.sed -remove-potcdate.sin -stamp-* diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..83d8838 --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,444 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.18 +GETTEXT_MACRO_VERSION = 0.18 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: check-macro-version all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: + @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ + package_gnu='GNU '; \ + else \ + package_gnu=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/Rules-quot b/po/Rules-quot new file mode 100644 index 0000000..af52487 --- /dev/null +++ b/po/Rules-quot @@ -0,0 +1,47 @@ +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/po/boldquot.sed b/po/boldquot.sed new file mode 100644 index 0000000..4b937aa --- /dev/null +++ b/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1â€/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“â€/""/g +s/“/“[1m/g +s/â€/[0mâ€/g +s/‘/‘[1m/g +s/’/[0m’/g diff --git a/po/ca.gmo b/po/ca.gmo Binary files differnew file mode 100644 index 0000000..70984f8 --- /dev/null +++ b/po/ca.gmo @@ -1,12 +1,27 @@ -# Catalan translation of flex message catalogs. -# Copyright © 2002, 2003, 2006, 2008, 2012 The Flex Project (msgids) -# This file is distributed under the same licence as the flex package. -# Jordi Mallach <jordi@sindominio.net>, 2002, 2003, 2006, 2008, 2012. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.37\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:17-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Catalan translation of flex message catalogs. +#~ # Copyright © 2002, 2003, 2006, 2008, 2012 The Flex Project (msgids) +#~ # This file is distributed under the same licence as the flex package. +#~ # Jordi Mallach <jordi@sindominio.net>, 2002, 2003, 2006, 2008, 2012. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.37\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2012-12-04 17:36+0100\n" "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n" diff --git a/po/da.gmo b/po/da.gmo Binary files differnew file mode 100644 index 0000000..1afad5b --- /dev/null +++ b/po/da.gmo @@ -1,13 +1,28 @@ -# Danish messages for flex. -# Copyright (C) 2007 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# Johan Linde <jl@theophys.kth.se>, 1996. -# Keld Simonsen <keld@keldix.com>, 2000-2011, 2015. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex-2.5.38\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:21-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Danish messages for flex. +#~ # Copyright (C) 2007 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # Johan Linde <jl@theophys.kth.se>, 1996. +#~ # Keld Simonsen <keld@keldix.com>, 2000-2011, 2015. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex-2.5.38\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2015-04-26 09:12+0200\n" "Last-Translator: Keld Simonsen <keld@keldix.com>\n" diff --git a/po/de.gmo b/po/de.gmo Binary files differnew file mode 100644 index 0000000..3418861 --- /dev/null +++ b/po/de.gmo @@ -1,12 +1,27 @@ -# German messages for flex -# Copyright (C) 2007 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# Michael Piefel <piefel@informatik.hu-berlin.de>, 2002, 2003, 2008, 2012 +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.36\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:23-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # German messages for flex +#~ # Copyright (C) 2007 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # Michael Piefel <piefel@informatik.hu-berlin.de>, 2002, 2003, 2008, 2012 +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.36\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2012-08-03 13:42+0200\n" "Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n" diff --git a/po/en@boldquot.gmo b/po/en@boldquot.gmo Binary files differnew file mode 100644 index 0000000..4708233 --- /dev/null +++ b/po/en@boldquot.gmo diff --git a/po/en@boldquot.header b/po/en@boldquot.header new file mode 100644 index 0000000..fedb6a0 --- /dev/null +++ b/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/po/en@boldquot.po b/po/en@boldquot.po new file mode 100644 index 0000000..3ecece1 --- /dev/null +++ b/po/en@boldquot.po @@ -0,0 +1,966 @@ +# English translations for flex package. +# This file is put in the public domain. +# Automatically generated, 2016. +# +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# +msgid "" +msgstr "" +"Project-Id-Version: flex 2.6.1\n" +"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2016-03-01 19:54-0500\n" +"PO-Revision-Date: 2016-03-01 19:54-0500\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: en@boldquot\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/buf.c:79 +msgid "Allocation of buffer to print string failed" +msgstr "Allocation of buffer to print string failed" + +#: src/buf.c:107 +msgid "Allocation of buffer for line directive failed" +msgstr "Allocation of buffer for line directive failed" + +#: src/buf.c:177 +msgid "Allocation of buffer for m4 def failed" +msgstr "Allocation of buffer for m4 def failed" + +#: src/buf.c:198 +msgid "Allocation of buffer for m4 undef failed" +msgstr "Allocation of buffer for m4 undef failed" + +#: src/dfa.c:59 +#, c-format +msgid "State #%d is non-accepting -\n" +msgstr "State #%d is non-accepting -\n" + +#: src/dfa.c:119 +msgid "dangerous trailing context" +msgstr "dangerous trailing context" + +#: src/dfa.c:159 +#, c-format +msgid " associated rule line numbers:" +msgstr " associated rule line numbers:" + +#: src/dfa.c:193 +#, c-format +msgid " out-transitions: " +msgstr " out-transitions: " + +#: src/dfa.c:201 +#, c-format +msgid "" +"\n" +" jam-transitions: EOF " +msgstr "" +"\n" +" jam-transitions: EOF " + +#: src/dfa.c:331 +msgid "consistency check failed in epsclosure()" +msgstr "consistency check failed in epsclosure()" + +#: src/dfa.c:419 +msgid "" +"\n" +"\n" +"DFA Dump:\n" +"\n" +msgstr "" +"\n" +"\n" +"DFA Dump:\n" +"\n" + +#: src/dfa.c:592 +msgid "could not create unique end-of-buffer state" +msgstr "could not create unique end-of-buffer state" + +#: src/dfa.c:613 +#, c-format +msgid "state # %d:\n" +msgstr "state # %d:\n" + +#: src/dfa.c:773 +msgid "Could not write yynxt_tbl[][]" +msgstr "Could not write yynxt_tbl[][]" + +#: src/dfa.c:1033 +msgid "bad transition character detected in sympartition()" +msgstr "bad transition character detected in sympartition()" + +#: src/gen.c:494 +msgid "" +"\n" +"\n" +"Equivalence Classes:\n" +"\n" +msgstr "" +"\n" +"\n" +"Equivalence Classes:\n" +"\n" + +#: src/gen.c:679 src/gen.c:708 src/gen.c:1228 +#, c-format +msgid "state # %d accepts: [%d]\n" +msgstr "state # %d accepts: [%d]\n" + +#: src/gen.c:1125 +#, c-format +msgid "state # %d accepts: " +msgstr "state # %d accepts: " + +#: src/gen.c:1172 +msgid "Could not write yyacclist_tbl" +msgstr "Could not write yyacclist_tbl" + +#: src/gen.c:1246 +msgid "Could not write yyacc_tbl" +msgstr "Could not write yyacc_tbl" + +#: src/gen.c:1261 src/gen.c:1633 src/gen.c:1656 +msgid "Could not write ecstbl" +msgstr "Could not write ecstbl" + +#: src/gen.c:1281 +msgid "" +"\n" +"\n" +"Meta-Equivalence Classes:\n" +msgstr "" +"\n" +"\n" +"Meta-Equivalence Classes:\n" + +#: src/gen.c:1303 +msgid "Could not write yymeta_tbl" +msgstr "Could not write yymeta_tbl" + +#: src/gen.c:1362 +msgid "Could not write yybase_tbl" +msgstr "Could not write yybase_tbl" + +#: src/gen.c:1394 +msgid "Could not write yydef_tbl" +msgstr "Could not write yydef_tbl" + +#: src/gen.c:1432 +msgid "Could not write yynxt_tbl" +msgstr "Could not write yynxt_tbl" + +#: src/gen.c:1466 +msgid "Could not write yychk_tbl" +msgstr "Could not write yychk_tbl" + +#: src/gen.c:1618 src/gen.c:1647 +msgid "Could not write ftbl" +msgstr "Could not write ftbl" + +#: src/gen.c:1624 +msgid "Could not write ssltbl" +msgstr "Could not write ssltbl" + +#: src/gen.c:1675 +msgid "Could not write eoltbl" +msgstr "Could not write eoltbl" + +#: src/gen.c:1732 +msgid "Could not write yynultrans_tbl" +msgstr "Could not write yynultrans_tbl" + +#: src/main.c:179 +msgid "rule cannot be matched" +msgstr "rule cannot be matched" + +#: src/main.c:184 +msgid "-s option given but default rule can be matched" +msgstr "-s option given but default rule can be matched" + +#: src/main.c:222 +msgid "Can't use -+ with -l option" +msgstr "Can't use -+ with -l option" + +#: src/main.c:225 +msgid "Can't use -f or -F with -l option" +msgstr "Can't use -f or -F with -l option" + +#: src/main.c:229 +msgid "Can't use --reentrant or --bison-bridge with -l option" +msgstr "Can't use --reentrant or --bison-bridge with -l option" + +#: src/main.c:261 +msgid "-Cf/-CF and -Cm don't make sense together" +msgstr "-Cf/-CF and -Cm don't make sense together" + +#: src/main.c:264 +msgid "-Cf/-CF and -I are incompatible" +msgstr "-Cf/-CF and -I are incompatible" + +#: src/main.c:268 +msgid "-Cf/-CF are incompatible with lex-compatibility mode" +msgstr "-Cf/-CF are incompatible with lex-compatibility mode" + +#: src/main.c:273 +msgid "-Cf and -CF are mutually exclusive" +msgstr "-Cf and -CF are mutually exclusive" + +#: src/main.c:277 +msgid "Can't use -+ with -CF option" +msgstr "Can't use -+ with -CF option" + +#: src/main.c:280 +#, c-format +msgid "%array incompatible with -+ option" +msgstr "%array incompatible with -+ option" + +#: src/main.c:285 +msgid "Options -+ and --reentrant are mutually exclusive." +msgstr "Options -+ and --reentrant are mutually exclusive." + +#: src/main.c:288 +msgid "bison bridge not supported for the C++ scanner." +msgstr "bison bridge not supported for the C++ scanner." + +#: src/main.c:343 src/main.c:427 +#, c-format +msgid "could not create %s" +msgstr "could not create %s" + +#: src/main.c:439 +msgid "could not write tables header" +msgstr "could not write tables header" + +#: src/main.c:443 +#, c-format +msgid "can't open skeleton file %s" +msgstr "can't open skeleton file %s" + +#: src/main.c:480 +msgid "allocation of macro definition failed" +msgstr "allocation of macro definition failed" + +#: src/main.c:527 +#, c-format +msgid "input error reading skeleton file %s" +msgstr "input error reading skeleton file %s" + +#: src/main.c:531 +#, c-format +msgid "error closing skeleton file %s" +msgstr "error closing skeleton file %s" + +#: src/main.c:715 +#, c-format +msgid "error creating header file %s" +msgstr "error creating header file %s" + +#: src/main.c:723 +#, c-format +msgid "error writing output file %s" +msgstr "error writing output file %s" + +#: src/main.c:727 +#, c-format +msgid "error closing output file %s" +msgstr "error closing output file %s" + +#: src/main.c:731 +#, c-format +msgid "error deleting output file %s" +msgstr "error deleting output file %s" + +#: src/main.c:738 +#, c-format +msgid "No backing up.\n" +msgstr "No backing up.\n" + +#: src/main.c:742 +#, c-format +msgid "%d backing up (non-accepting) states.\n" +msgstr "%d backing up (non-accepting) states.\n" + +#: src/main.c:746 +#, c-format +msgid "Compressed tables always back up.\n" +msgstr "Compressed tables always back up.\n" + +#: src/main.c:749 +#, c-format +msgid "error writing backup file %s" +msgstr "error writing backup file %s" + +#: src/main.c:753 +#, c-format +msgid "error closing backup file %s" +msgstr "error closing backup file %s" + +#: src/main.c:758 +#, c-format +msgid "%s version %s usage statistics:\n" +msgstr "%s version %s usage statistics:\n" + +#: src/main.c:761 +#, c-format +msgid " scanner options: -" +msgstr " scanner options: -" + +#: src/main.c:840 +#, c-format +msgid " %d/%d NFA states\n" +msgstr " %d/%d NFA states\n" + +#: src/main.c:842 +#, c-format +msgid " %d/%d DFA states (%d words)\n" +msgstr " %d/%d DFA states (%d words)\n" + +#: src/main.c:844 +#, c-format +msgid " %d rules\n" +msgstr " %d rules\n" + +#: src/main.c:849 +#, c-format +msgid " No backing up\n" +msgstr " No backing up\n" + +#: src/main.c:853 +#, c-format +msgid " %d backing-up (non-accepting) states\n" +msgstr " %d backing-up (non-accepting) states\n" + +#: src/main.c:858 +#, c-format +msgid " Compressed tables always back-up\n" +msgstr " Compressed tables always back-up\n" + +#: src/main.c:862 +#, c-format +msgid " Beginning-of-line patterns used\n" +msgstr " Beginning-of-line patterns used\n" + +#: src/main.c:864 +#, c-format +msgid " %d/%d start conditions\n" +msgstr " %d/%d start conditions\n" + +#: src/main.c:868 +#, c-format +msgid " %d epsilon states, %d double epsilon states\n" +msgstr " %d epsilon states, %d double epsilon states\n" + +#: src/main.c:872 +#, c-format +msgid " no character classes\n" +msgstr " no character classes\n" + +#: src/main.c:876 +#, c-format +msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n" +msgstr " %d/%d character classes needed %d/%d words of storage, %d reused\n" + +#: src/main.c:881 +#, c-format +msgid " %d state/nextstate pairs created\n" +msgstr " %d state/nextstate pairs created\n" + +#: src/main.c:884 +#, c-format +msgid " %d/%d unique/duplicate transitions\n" +msgstr " %d/%d unique/duplicate transitions\n" + +#: src/main.c:889 +#, c-format +msgid " %d table entries\n" +msgstr " %d table entries\n" + +#: src/main.c:897 +#, c-format +msgid " %d/%d base-def entries created\n" +msgstr " %d/%d base-def entries created\n" + +#: src/main.c:901 +#, c-format +msgid " %d/%d (peak %d) nxt-chk entries created\n" +msgstr " %d/%d (peak %d) nxt-chk entries created\n" + +#: src/main.c:905 +#, c-format +msgid " %d/%d (peak %d) template nxt-chk entries created\n" +msgstr " %d/%d (peak %d) template nxt-chk entries created\n" + +#: src/main.c:909 +#, c-format +msgid " %d empty table entries\n" +msgstr " %d empty table entries\n" + +#: src/main.c:911 +#, c-format +msgid " %d protos created\n" +msgstr " %d protos created\n" + +#: src/main.c:914 +#, c-format +msgid " %d templates created, %d uses\n" +msgstr " %d templates created, %d uses\n" + +#: src/main.c:922 +#, c-format +msgid " %d/%d equivalence classes created\n" +msgstr " %d/%d equivalence classes created\n" + +#: src/main.c:930 +#, c-format +msgid " %d/%d meta-equivalence classes created\n" +msgstr " %d/%d meta-equivalence classes created\n" + +#: src/main.c:936 +#, c-format +msgid " %d (%d saved) hash collisions, %d DFAs equal\n" +msgstr " %d (%d saved) hash collisions, %d DFAs equal\n" + +#: src/main.c:938 +#, c-format +msgid " %d sets of reallocations needed\n" +msgstr " %d sets of reallocations needed\n" + +#: src/main.c:940 +#, c-format +msgid " %d total table entries needed\n" +msgstr " %d total table entries needed\n" + +#: src/main.c:1015 +#, c-format +msgid "Internal error. flexopts are malformed.\n" +msgstr "Internal error. flexopts are malformed.\n" + +#: src/main.c:1025 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Try ‘[1m%s --help[0m’ for more information.\n" + +#: src/main.c:1082 +#, c-format +msgid "unknown -C option '%c'" +msgstr "unknown -C option ‘[1m%c[0m’" + +#: src/main.c:1211 +#, c-format +msgid "%s %s\n" +msgstr "%s %s\n" + +#: src/main.c:1487 +msgid "fatal parse error" +msgstr "fatal parse error" + +#: src/main.c:1519 +#, c-format +msgid "could not create backing-up info file %s" +msgstr "could not create backing-up info file %s" + +#: src/main.c:1540 +#, c-format +msgid "-l AT&T lex compatibility option entails a large performance penalty\n" +msgstr "-l AT&T lex compatibility option entails a large performance penalty\n" + +#: src/main.c:1543 +#, c-format +msgid " and may be the actual source of other reported performance penalties\n" +msgstr "" +" and may be the actual source of other reported performance penalties\n" + +#: src/main.c:1549 +#, c-format +msgid "" +"%%option yylineno entails a performance penalty ONLY on rules that can match " +"newline characters\n" +msgstr "" +"%%option yylineno entails a performance penalty ONLY on rules that can match " +"newline characters\n" + +#: src/main.c:1556 +#, c-format +msgid "-I (interactive) entails a minor performance penalty\n" +msgstr "-I (interactive) entails a minor performance penalty\n" + +#: src/main.c:1561 +#, c-format +msgid "yymore() entails a minor performance penalty\n" +msgstr "yymore() entails a minor performance penalty\n" + +#: src/main.c:1567 +#, c-format +msgid "REJECT entails a large performance penalty\n" +msgstr "REJECT entails a large performance penalty\n" + +#: src/main.c:1572 +#, c-format +msgid "Variable trailing context rules entail a large performance penalty\n" +msgstr "Variable trailing context rules entail a large performance penalty\n" + +#: src/main.c:1584 +msgid "REJECT cannot be used with -f or -F" +msgstr "REJECT cannot be used with -f or -F" + +#: src/main.c:1587 +#, c-format +msgid "%option yylineno cannot be used with REJECT" +msgstr "%option yylineno cannot be used with REJECT" + +#: src/main.c:1590 +msgid "variable trailing context rules cannot be used with -f or -F" +msgstr "variable trailing context rules cannot be used with -f or -F" + +#: src/main.c:1718 +#, c-format +msgid "%option yyclass only meaningful for C++ scanners" +msgstr "%option yyclass only meaningful for C++ scanners" + +#: src/main.c:1805 +#, c-format +msgid "Usage: %s [OPTIONS] [FILE]...\n" +msgstr "Usage: %s [OPTIONS] [FILE]...\n" + +#: src/main.c:1808 +#, c-format +msgid "" +"Generates programs that perform pattern-matching on text.\n" +"\n" +"Table Compression:\n" +" -Ca, --align trade off larger tables for better memory alignment\n" +" -Ce, --ecs construct equivalence classes\n" +" -Cf do not compress tables; use -f representation\n" +" -CF do not compress tables; use -F representation\n" +" -Cm, --meta-ecs construct meta-equivalence classes\n" +" -Cr, --read use read() instead of stdio for scanner input\n" +" -f, --full generate fast, large scanner. Same as -Cfr\n" +" -F, --fast use alternate table representation. Same as -CFr\n" +" -Cem default compression (same as --ecs --meta-ecs)\n" +"\n" +"Debugging:\n" +" -d, --debug enable debug mode in scanner\n" +" -b, --backup write backing-up information to %s\n" +" -p, --perf-report write performance report to stderr\n" +" -s, --nodefault suppress default rule to ECHO unmatched text\n" +" -T, --trace %s should run in trace mode\n" +" -w, --nowarn do not generate warnings\n" +" -v, --verbose write summary of scanner statistics to stdout\n" +" --hex use hexadecimal numbers instead of octal in debug " +"outputs\n" +"\n" +"Files:\n" +" -o, --outfile=FILE specify output filename\n" +" -S, --skel=FILE specify skeleton file\n" +" -t, --stdout write scanner on stdout instead of %s\n" +" --yyclass=NAME name of C++ class\n" +" --header-file=FILE create a C header file in addition to the " +"scanner\n" +" --tables-file[=FILE] write tables to FILE\n" +"\n" +"Scanner behavior:\n" +" -7, --7bit generate 7-bit scanner\n" +" -8, --8bit generate 8-bit scanner\n" +" -B, --batch generate batch scanner (opposite of -I)\n" +" -i, --case-insensitive ignore case in patterns\n" +" -l, --lex-compat maximal compatibility with original lex\n" +" -X, --posix-compat maximal compatibility with POSIX lex\n" +" -I, --interactive generate interactive scanner (opposite of -B)\n" +" --yylineno track line count in yylineno\n" +"\n" +"Generated code:\n" +" -+, --c++ generate C++ scanner class\n" +" -Dmacro[=defn] #define macro defn (default defn is '1')\n" +" -L, --noline suppress #line directives in scanner\n" +" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n" +" -R, --reentrant generate a reentrant C scanner\n" +" --bison-bridge scanner for bison pure parser.\n" +" --bison-locations include yylloc support.\n" +" --stdinit initialize yyin/yyout to stdin/stdout\n" +" --noansi-definitions old-style function definitions\n" +" --noansi-prototypes empty parameter list in prototypes\n" +" --nounistd do not include <unistd.h>\n" +" --noFUNCTION do not generate a particular FUNCTION\n" +"\n" +"Miscellaneous:\n" +" -c do-nothing POSIX option\n" +" -n do-nothing POSIX option\n" +" -?\n" +" -h, --help produce this help message\n" +" -V, --version report %s version\n" +msgstr "" +"Generates programs that perform pattern-matching on text.\n" +"\n" +"Table Compression:\n" +" -Ca, --align trade off larger tables for better memory alignment\n" +" -Ce, --ecs construct equivalence classes\n" +" -Cf do not compress tables; use -f representation\n" +" -CF do not compress tables; use -F representation\n" +" -Cm, --meta-ecs construct meta-equivalence classes\n" +" -Cr, --read use read() instead of stdio for scanner input\n" +" -f, --full generate fast, large scanner. Same as -Cfr\n" +" -F, --fast use alternate table representation. Same as -CFr\n" +" -Cem default compression (same as --ecs --meta-ecs)\n" +"\n" +"Debugging:\n" +" -d, --debug enable debug mode in scanner\n" +" -b, --backup write backing-up information to %s\n" +" -p, --perf-report write performance report to stderr\n" +" -s, --nodefault suppress default rule to ECHO unmatched text\n" +" -T, --trace %s should run in trace mode\n" +" -w, --nowarn do not generate warnings\n" +" -v, --verbose write summary of scanner statistics to stdout\n" +" --hex use hexadecimal numbers instead of octal in debug " +"outputs\n" +"\n" +"Files:\n" +" -o, --outfile=FILE specify output filename\n" +" -S, --skel=FILE specify skeleton file\n" +" -t, --stdout write scanner on stdout instead of %s\n" +" --yyclass=NAME name of C++ class\n" +" --header-file=FILE create a C header file in addition to the " +"scanner\n" +" --tables-file[=FILE] write tables to FILE\n" +"\n" +"Scanner behavior:\n" +" -7, --7bit generate 7-bit scanner\n" +" -8, --8bit generate 8-bit scanner\n" +" -B, --batch generate batch scanner (opposite of -I)\n" +" -i, --case-insensitive ignore case in patterns\n" +" -l, --lex-compat maximal compatibility with original lex\n" +" -X, --posix-compat maximal compatibility with POSIX lex\n" +" -I, --interactive generate interactive scanner (opposite of -B)\n" +" --yylineno track line count in yylineno\n" +"\n" +"Generated code:\n" +" -+, --c++ generate C++ scanner class\n" +" -Dmacro[=defn] #define macro defn (default defn is '1')\n" +" -L, --noline suppress #line directives in scanner\n" +" -P, --prefix=STRING use STRING as prefix instead of “[1myy[0mâ€\n" +" -R, --reentrant generate a reentrant C scanner\n" +" --bison-bridge scanner for bison pure parser.\n" +" --bison-locations include yylloc support.\n" +" --stdinit initialize yyin/yyout to stdin/stdout\n" +" --noansi-definitions old-style function definitions\n" +" --noansi-prototypes empty parameter list in prototypes\n" +" --nounistd do not include <unistd.h>\n" +" --noFUNCTION do not generate a particular FUNCTION\n" +"\n" +"Miscellaneous:\n" +" -c do-nothing POSIX option\n" +" -n do-nothing POSIX option\n" +" -?\n" +" -h, --help produce this help message\n" +" -V, --version report %s version\n" + +#: src/misc.c:65 +msgid "allocation of sko_stack failed" +msgstr "allocation of sko_stack failed" + +#: src/misc.c:101 src/misc.c:128 +#, c-format +msgid "name \"%s\" ridiculously long" +msgstr "name “[1m%s[0m†ridiculously long" + +#: src/misc.c:175 +msgid "memory allocation failed in allocate_array()" +msgstr "memory allocation failed in allocate_array()" + +#: src/misc.c:225 +#, c-format +msgid "bad character '%s' detected in check_char()" +msgstr "bad character ‘[1m%s[0m’ detected in check_char()" + +#: src/misc.c:230 +#, c-format +msgid "scanner requires -8 flag to use the character %s" +msgstr "scanner requires -8 flag to use the character %s" + +#: src/misc.c:249 +msgid "memory allocation failure in xstrdup()" +msgstr "memory allocation failure in xstrdup()" + +#: src/misc.c:323 +#, c-format +msgid "%s: fatal internal error, %s\n" +msgstr "%s: fatal internal error, %s\n" + +#: src/misc.c:712 +msgid "attempt to increase array size failed" +msgstr "attempt to increase array size failed" + +#: src/misc.c:839 +msgid "bad line in skeleton file" +msgstr "bad line in skeleton file" + +#: src/misc.c:889 +msgid "memory allocation failed in yy_flex_xmalloc()" +msgstr "memory allocation failed in yy_flex_xmalloc()" + +#: src/nfa.c:100 +#, c-format +msgid "" +"\n" +"\n" +"********** beginning dump of nfa with start state %d\n" +msgstr "" +"\n" +"\n" +"********** beginning dump of nfa with start state %d\n" + +#: src/nfa.c:111 +#, c-format +msgid "state # %4d\t" +msgstr "state # %4d\t" + +#: src/nfa.c:126 +#, c-format +msgid "********** end of dump\n" +msgstr "********** end of dump\n" + +#: src/nfa.c:169 +msgid "empty machine in dupmachine()" +msgstr "empty machine in dupmachine()" + +#: src/nfa.c:234 +#, c-format +msgid "Variable trailing context rule at line %d\n" +msgstr "Variable trailing context rule at line %d\n" + +#: src/nfa.c:356 +msgid "bad state type in mark_beginning_as_normal()" +msgstr "bad state type in mark_beginning_as_normal()" + +#: src/nfa.c:594 +#, c-format +msgid "input rules are too complicated (>= %d NFA states)" +msgstr "input rules are too complicated (>= %d NFA states)" + +#: src/nfa.c:672 +msgid "found too many transitions in mkxtion()" +msgstr "found too many transitions in mkxtion()" + +#: src/nfa.c:698 +#, c-format +msgid "too many rules (> %d)!" +msgstr "too many rules (> %d)!" + +#: src/parse.y:159 +msgid "unknown error processing section 1" +msgstr "unknown error processing section 1" + +#: src/parse.y:184 src/parse.y:351 +msgid "bad start condition list" +msgstr "bad start condition list" + +#: src/parse.y:315 +msgid "unrecognized rule" +msgstr "unrecognized rule" + +#: src/parse.y:434 src/parse.y:447 src/parse.y:516 +msgid "trailing context used twice" +msgstr "trailing context used twice" + +#: src/parse.y:552 src/parse.y:562 src/parse.y:635 src/parse.y:645 +msgid "bad iteration values" +msgstr "bad iteration values" + +#: src/parse.y:580 src/parse.y:598 src/parse.y:663 src/parse.y:681 +msgid "iteration value must be positive" +msgstr "iteration value must be positive" + +#: src/parse.y:804 src/parse.y:814 +#, c-format +msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner" +msgstr "the character range [%c-%c] is ambiguous in a case-insensitive scanner" + +#: src/parse.y:819 +msgid "negative range in character class" +msgstr "negative range in character class" + +#: src/parse.y:916 +msgid "[:^lower:] is ambiguous in case insensitive scanner" +msgstr "[:^lower:] is ambiguous in case insensitive scanner" + +#: src/parse.y:922 +msgid "[:^upper:] ambiguous in case insensitive scanner" +msgstr "[:^upper:] ambiguous in case insensitive scanner" + +#: src/scan.l:75 src/scan.l:618 src/scan.l:676 +msgid "Input line too long\n" +msgstr "Input line too long\n" + +#: src/scan.l:161 +#, c-format +msgid "malformed '%top' directive" +msgstr "malformed ‘[1m%top[0m’ directive" + +#: src/scan.l:183 +#, no-c-format +msgid "unrecognized '%' directive" +msgstr "unrecognized ‘[1m%[0m’ directive" + +#: src/scan.l:192 +msgid "Definition name too long\n" +msgstr "Definition name too long\n" + +#: src/scan.l:284 +msgid "Unmatched '{'" +msgstr "Unmatched ‘[1m{[0m’" + +#: src/scan.l:300 +#, c-format +msgid "Definition value for {%s} too long\n" +msgstr "Definition value for {%s} too long\n" + +#: src/scan.l:317 +msgid "incomplete name definition" +msgstr "incomplete name definition" + +#: src/scan.l:444 +msgid "Option line too long\n" +msgstr "Option line too long\n" + +#: src/scan.l:452 +#, c-format +msgid "unrecognized %%option: %s" +msgstr "unrecognized %%option: %s" + +#: src/scan.l:633 src/scan.l:806 +msgid "bad character class" +msgstr "bad character class" + +#: src/scan.l:683 +#, c-format +msgid "undefined definition {%s}" +msgstr "undefined definition {%s}" + +#: src/scan.l:746 +msgid "unbalanced parenthesis" +msgstr "unbalanced parenthesis" + +#: src/scan.l:761 +#, c-format +msgid "bad <start condition>: %s" +msgstr "bad <start condition>: %s" + +#: src/scan.l:774 +msgid "missing quote" +msgstr "missing quote" + +#: src/scan.l:840 +#, c-format +msgid "bad character class expression: %s" +msgstr "bad character class expression: %s" + +#: src/scan.l:862 +msgid "bad character inside {}'s" +msgstr "bad character inside {}'s" + +#: src/scan.l:868 +msgid "missing }" +msgstr "missing }" + +#: src/scan.l:946 +msgid "EOF encountered inside an action" +msgstr "EOF encountered inside an action" + +#: src/scan.l:951 +msgid "EOF encountered inside pattern" +msgstr "EOF encountered inside pattern" + +#: src/scan.l:973 +#, c-format +msgid "bad character: %s" +msgstr "bad character: %s" + +#: src/scan.l:1001 +#, c-format +msgid "can't open %s" +msgstr "can't open %s" + +#: src/scanopt.c:259 +#, c-format +msgid "Usage: %s [OPTIONS]...\n" +msgstr "Usage: %s [OPTIONS]...\n" + +#: src/scanopt.c:524 +#, c-format +msgid "option `%s' doesn't allow an argument\n" +msgstr "option ‘[1m%s[0m’ doesn't allow an argument\n" + +#: src/scanopt.c:529 +#, c-format +msgid "option `%s' requires an argument\n" +msgstr "option ‘[1m%s[0m’ requires an argument\n" + +#: src/scanopt.c:533 +#, c-format +msgid "option `%s' is ambiguous\n" +msgstr "option ‘[1m%s[0m’ is ambiguous\n" + +#: src/scanopt.c:537 +#, c-format +msgid "Unrecognized option `%s'\n" +msgstr "Unrecognized option ‘[1m%s[0m’\n" + +#: src/scanopt.c:541 +#, c-format +msgid "Unknown error=(%d)\n" +msgstr "Unknown error=(%d)\n" + +#: src/sym.c:92 +msgid "symbol table memory allocation failed" +msgstr "symbol table memory allocation failed" + +#: src/sym.c:183 +msgid "name defined twice" +msgstr "name defined twice" + +#: src/sym.c:231 +#, c-format +msgid "start condition %s declared twice" +msgstr "start condition %s declared twice" + +#: src/yylex.c:56 +msgid "premature EOF" +msgstr "premature EOF" + +#: src/yylex.c:199 +#, c-format +msgid "End Marker\n" +msgstr "End Marker\n" + +#: src/yylex.c:205 +#, c-format +msgid "*Something Weird* - tok: %d val: %d\n" +msgstr "*Something Weird* - tok: %d val: %d\n" diff --git a/po/en@quot.gmo b/po/en@quot.gmo Binary files differnew file mode 100644 index 0000000..e914a1f --- /dev/null +++ b/po/en@quot.gmo diff --git a/po/en@quot.header b/po/en@quot.header new file mode 100644 index 0000000..a9647fc --- /dev/null +++ b/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/po/en@quot.po b/po/en@quot.po new file mode 100644 index 0000000..1bb8a11 --- /dev/null +++ b/po/en@quot.po @@ -0,0 +1,963 @@ +# English translations for flex package. +# This file is put in the public domain. +# Automatically generated, 2016. +# +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +msgid "" +msgstr "" +"Project-Id-Version: flex 2.6.1\n" +"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2016-03-01 19:54-0500\n" +"PO-Revision-Date: 2016-03-01 19:54-0500\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: en@quot\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/buf.c:79 +msgid "Allocation of buffer to print string failed" +msgstr "Allocation of buffer to print string failed" + +#: src/buf.c:107 +msgid "Allocation of buffer for line directive failed" +msgstr "Allocation of buffer for line directive failed" + +#: src/buf.c:177 +msgid "Allocation of buffer for m4 def failed" +msgstr "Allocation of buffer for m4 def failed" + +#: src/buf.c:198 +msgid "Allocation of buffer for m4 undef failed" +msgstr "Allocation of buffer for m4 undef failed" + +#: src/dfa.c:59 +#, c-format +msgid "State #%d is non-accepting -\n" +msgstr "State #%d is non-accepting -\n" + +#: src/dfa.c:119 +msgid "dangerous trailing context" +msgstr "dangerous trailing context" + +#: src/dfa.c:159 +#, c-format +msgid " associated rule line numbers:" +msgstr " associated rule line numbers:" + +#: src/dfa.c:193 +#, c-format +msgid " out-transitions: " +msgstr " out-transitions: " + +#: src/dfa.c:201 +#, c-format +msgid "" +"\n" +" jam-transitions: EOF " +msgstr "" +"\n" +" jam-transitions: EOF " + +#: src/dfa.c:331 +msgid "consistency check failed in epsclosure()" +msgstr "consistency check failed in epsclosure()" + +#: src/dfa.c:419 +msgid "" +"\n" +"\n" +"DFA Dump:\n" +"\n" +msgstr "" +"\n" +"\n" +"DFA Dump:\n" +"\n" + +#: src/dfa.c:592 +msgid "could not create unique end-of-buffer state" +msgstr "could not create unique end-of-buffer state" + +#: src/dfa.c:613 +#, c-format +msgid "state # %d:\n" +msgstr "state # %d:\n" + +#: src/dfa.c:773 +msgid "Could not write yynxt_tbl[][]" +msgstr "Could not write yynxt_tbl[][]" + +#: src/dfa.c:1033 +msgid "bad transition character detected in sympartition()" +msgstr "bad transition character detected in sympartition()" + +#: src/gen.c:494 +msgid "" +"\n" +"\n" +"Equivalence Classes:\n" +"\n" +msgstr "" +"\n" +"\n" +"Equivalence Classes:\n" +"\n" + +#: src/gen.c:679 src/gen.c:708 src/gen.c:1228 +#, c-format +msgid "state # %d accepts: [%d]\n" +msgstr "state # %d accepts: [%d]\n" + +#: src/gen.c:1125 +#, c-format +msgid "state # %d accepts: " +msgstr "state # %d accepts: " + +#: src/gen.c:1172 +msgid "Could not write yyacclist_tbl" +msgstr "Could not write yyacclist_tbl" + +#: src/gen.c:1246 +msgid "Could not write yyacc_tbl" +msgstr "Could not write yyacc_tbl" + +#: src/gen.c:1261 src/gen.c:1633 src/gen.c:1656 +msgid "Could not write ecstbl" +msgstr "Could not write ecstbl" + +#: src/gen.c:1281 +msgid "" +"\n" +"\n" +"Meta-Equivalence Classes:\n" +msgstr "" +"\n" +"\n" +"Meta-Equivalence Classes:\n" + +#: src/gen.c:1303 +msgid "Could not write yymeta_tbl" +msgstr "Could not write yymeta_tbl" + +#: src/gen.c:1362 +msgid "Could not write yybase_tbl" +msgstr "Could not write yybase_tbl" + +#: src/gen.c:1394 +msgid "Could not write yydef_tbl" +msgstr "Could not write yydef_tbl" + +#: src/gen.c:1432 +msgid "Could not write yynxt_tbl" +msgstr "Could not write yynxt_tbl" + +#: src/gen.c:1466 +msgid "Could not write yychk_tbl" +msgstr "Could not write yychk_tbl" + +#: src/gen.c:1618 src/gen.c:1647 +msgid "Could not write ftbl" +msgstr "Could not write ftbl" + +#: src/gen.c:1624 +msgid "Could not write ssltbl" +msgstr "Could not write ssltbl" + +#: src/gen.c:1675 +msgid "Could not write eoltbl" +msgstr "Could not write eoltbl" + +#: src/gen.c:1732 +msgid "Could not write yynultrans_tbl" +msgstr "Could not write yynultrans_tbl" + +#: src/main.c:179 +msgid "rule cannot be matched" +msgstr "rule cannot be matched" + +#: src/main.c:184 +msgid "-s option given but default rule can be matched" +msgstr "-s option given but default rule can be matched" + +#: src/main.c:222 +msgid "Can't use -+ with -l option" +msgstr "Can't use -+ with -l option" + +#: src/main.c:225 +msgid "Can't use -f or -F with -l option" +msgstr "Can't use -f or -F with -l option" + +#: src/main.c:229 +msgid "Can't use --reentrant or --bison-bridge with -l option" +msgstr "Can't use --reentrant or --bison-bridge with -l option" + +#: src/main.c:261 +msgid "-Cf/-CF and -Cm don't make sense together" +msgstr "-Cf/-CF and -Cm don't make sense together" + +#: src/main.c:264 +msgid "-Cf/-CF and -I are incompatible" +msgstr "-Cf/-CF and -I are incompatible" + +#: src/main.c:268 +msgid "-Cf/-CF are incompatible with lex-compatibility mode" +msgstr "-Cf/-CF are incompatible with lex-compatibility mode" + +#: src/main.c:273 +msgid "-Cf and -CF are mutually exclusive" +msgstr "-Cf and -CF are mutually exclusive" + +#: src/main.c:277 +msgid "Can't use -+ with -CF option" +msgstr "Can't use -+ with -CF option" + +#: src/main.c:280 +#, c-format +msgid "%array incompatible with -+ option" +msgstr "%array incompatible with -+ option" + +#: src/main.c:285 +msgid "Options -+ and --reentrant are mutually exclusive." +msgstr "Options -+ and --reentrant are mutually exclusive." + +#: src/main.c:288 +msgid "bison bridge not supported for the C++ scanner." +msgstr "bison bridge not supported for the C++ scanner." + +#: src/main.c:343 src/main.c:427 +#, c-format +msgid "could not create %s" +msgstr "could not create %s" + +#: src/main.c:439 +msgid "could not write tables header" +msgstr "could not write tables header" + +#: src/main.c:443 +#, c-format +msgid "can't open skeleton file %s" +msgstr "can't open skeleton file %s" + +#: src/main.c:480 +msgid "allocation of macro definition failed" +msgstr "allocation of macro definition failed" + +#: src/main.c:527 +#, c-format +msgid "input error reading skeleton file %s" +msgstr "input error reading skeleton file %s" + +#: src/main.c:531 +#, c-format +msgid "error closing skeleton file %s" +msgstr "error closing skeleton file %s" + +#: src/main.c:715 +#, c-format +msgid "error creating header file %s" +msgstr "error creating header file %s" + +#: src/main.c:723 +#, c-format +msgid "error writing output file %s" +msgstr "error writing output file %s" + +#: src/main.c:727 +#, c-format +msgid "error closing output file %s" +msgstr "error closing output file %s" + +#: src/main.c:731 +#, c-format +msgid "error deleting output file %s" +msgstr "error deleting output file %s" + +#: src/main.c:738 +#, c-format +msgid "No backing up.\n" +msgstr "No backing up.\n" + +#: src/main.c:742 +#, c-format +msgid "%d backing up (non-accepting) states.\n" +msgstr "%d backing up (non-accepting) states.\n" + +#: src/main.c:746 +#, c-format +msgid "Compressed tables always back up.\n" +msgstr "Compressed tables always back up.\n" + +#: src/main.c:749 +#, c-format +msgid "error writing backup file %s" +msgstr "error writing backup file %s" + +#: src/main.c:753 +#, c-format +msgid "error closing backup file %s" +msgstr "error closing backup file %s" + +#: src/main.c:758 +#, c-format +msgid "%s version %s usage statistics:\n" +msgstr "%s version %s usage statistics:\n" + +#: src/main.c:761 +#, c-format +msgid " scanner options: -" +msgstr " scanner options: -" + +#: src/main.c:840 +#, c-format +msgid " %d/%d NFA states\n" +msgstr " %d/%d NFA states\n" + +#: src/main.c:842 +#, c-format +msgid " %d/%d DFA states (%d words)\n" +msgstr " %d/%d DFA states (%d words)\n" + +#: src/main.c:844 +#, c-format +msgid " %d rules\n" +msgstr " %d rules\n" + +#: src/main.c:849 +#, c-format +msgid " No backing up\n" +msgstr " No backing up\n" + +#: src/main.c:853 +#, c-format +msgid " %d backing-up (non-accepting) states\n" +msgstr " %d backing-up (non-accepting) states\n" + +#: src/main.c:858 +#, c-format +msgid " Compressed tables always back-up\n" +msgstr " Compressed tables always back-up\n" + +#: src/main.c:862 +#, c-format +msgid " Beginning-of-line patterns used\n" +msgstr " Beginning-of-line patterns used\n" + +#: src/main.c:864 +#, c-format +msgid " %d/%d start conditions\n" +msgstr " %d/%d start conditions\n" + +#: src/main.c:868 +#, c-format +msgid " %d epsilon states, %d double epsilon states\n" +msgstr " %d epsilon states, %d double epsilon states\n" + +#: src/main.c:872 +#, c-format +msgid " no character classes\n" +msgstr " no character classes\n" + +#: src/main.c:876 +#, c-format +msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n" +msgstr " %d/%d character classes needed %d/%d words of storage, %d reused\n" + +#: src/main.c:881 +#, c-format +msgid " %d state/nextstate pairs created\n" +msgstr " %d state/nextstate pairs created\n" + +#: src/main.c:884 +#, c-format +msgid " %d/%d unique/duplicate transitions\n" +msgstr " %d/%d unique/duplicate transitions\n" + +#: src/main.c:889 +#, c-format +msgid " %d table entries\n" +msgstr " %d table entries\n" + +#: src/main.c:897 +#, c-format +msgid " %d/%d base-def entries created\n" +msgstr " %d/%d base-def entries created\n" + +#: src/main.c:901 +#, c-format +msgid " %d/%d (peak %d) nxt-chk entries created\n" +msgstr " %d/%d (peak %d) nxt-chk entries created\n" + +#: src/main.c:905 +#, c-format +msgid " %d/%d (peak %d) template nxt-chk entries created\n" +msgstr " %d/%d (peak %d) template nxt-chk entries created\n" + +#: src/main.c:909 +#, c-format +msgid " %d empty table entries\n" +msgstr " %d empty table entries\n" + +#: src/main.c:911 +#, c-format +msgid " %d protos created\n" +msgstr " %d protos created\n" + +#: src/main.c:914 +#, c-format +msgid " %d templates created, %d uses\n" +msgstr " %d templates created, %d uses\n" + +#: src/main.c:922 +#, c-format +msgid " %d/%d equivalence classes created\n" +msgstr " %d/%d equivalence classes created\n" + +#: src/main.c:930 +#, c-format +msgid " %d/%d meta-equivalence classes created\n" +msgstr " %d/%d meta-equivalence classes created\n" + +#: src/main.c:936 +#, c-format +msgid " %d (%d saved) hash collisions, %d DFAs equal\n" +msgstr " %d (%d saved) hash collisions, %d DFAs equal\n" + +#: src/main.c:938 +#, c-format +msgid " %d sets of reallocations needed\n" +msgstr " %d sets of reallocations needed\n" + +#: src/main.c:940 +#, c-format +msgid " %d total table entries needed\n" +msgstr " %d total table entries needed\n" + +#: src/main.c:1015 +#, c-format +msgid "Internal error. flexopts are malformed.\n" +msgstr "Internal error. flexopts are malformed.\n" + +#: src/main.c:1025 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Try ‘%s --help’ for more information.\n" + +#: src/main.c:1082 +#, c-format +msgid "unknown -C option '%c'" +msgstr "unknown -C option ‘%c’" + +#: src/main.c:1211 +#, c-format +msgid "%s %s\n" +msgstr "%s %s\n" + +#: src/main.c:1487 +msgid "fatal parse error" +msgstr "fatal parse error" + +#: src/main.c:1519 +#, c-format +msgid "could not create backing-up info file %s" +msgstr "could not create backing-up info file %s" + +#: src/main.c:1540 +#, c-format +msgid "-l AT&T lex compatibility option entails a large performance penalty\n" +msgstr "-l AT&T lex compatibility option entails a large performance penalty\n" + +#: src/main.c:1543 +#, c-format +msgid " and may be the actual source of other reported performance penalties\n" +msgstr "" +" and may be the actual source of other reported performance penalties\n" + +#: src/main.c:1549 +#, c-format +msgid "" +"%%option yylineno entails a performance penalty ONLY on rules that can match " +"newline characters\n" +msgstr "" +"%%option yylineno entails a performance penalty ONLY on rules that can match " +"newline characters\n" + +#: src/main.c:1556 +#, c-format +msgid "-I (interactive) entails a minor performance penalty\n" +msgstr "-I (interactive) entails a minor performance penalty\n" + +#: src/main.c:1561 +#, c-format +msgid "yymore() entails a minor performance penalty\n" +msgstr "yymore() entails a minor performance penalty\n" + +#: src/main.c:1567 +#, c-format +msgid "REJECT entails a large performance penalty\n" +msgstr "REJECT entails a large performance penalty\n" + +#: src/main.c:1572 +#, c-format +msgid "Variable trailing context rules entail a large performance penalty\n" +msgstr "Variable trailing context rules entail a large performance penalty\n" + +#: src/main.c:1584 +msgid "REJECT cannot be used with -f or -F" +msgstr "REJECT cannot be used with -f or -F" + +#: src/main.c:1587 +#, c-format +msgid "%option yylineno cannot be used with REJECT" +msgstr "%option yylineno cannot be used with REJECT" + +#: src/main.c:1590 +msgid "variable trailing context rules cannot be used with -f or -F" +msgstr "variable trailing context rules cannot be used with -f or -F" + +#: src/main.c:1718 +#, c-format +msgid "%option yyclass only meaningful for C++ scanners" +msgstr "%option yyclass only meaningful for C++ scanners" + +#: src/main.c:1805 +#, c-format +msgid "Usage: %s [OPTIONS] [FILE]...\n" +msgstr "Usage: %s [OPTIONS] [FILE]...\n" + +#: src/main.c:1808 +#, c-format +msgid "" +"Generates programs that perform pattern-matching on text.\n" +"\n" +"Table Compression:\n" +" -Ca, --align trade off larger tables for better memory alignment\n" +" -Ce, --ecs construct equivalence classes\n" +" -Cf do not compress tables; use -f representation\n" +" -CF do not compress tables; use -F representation\n" +" -Cm, --meta-ecs construct meta-equivalence classes\n" +" -Cr, --read use read() instead of stdio for scanner input\n" +" -f, --full generate fast, large scanner. Same as -Cfr\n" +" -F, --fast use alternate table representation. Same as -CFr\n" +" -Cem default compression (same as --ecs --meta-ecs)\n" +"\n" +"Debugging:\n" +" -d, --debug enable debug mode in scanner\n" +" -b, --backup write backing-up information to %s\n" +" -p, --perf-report write performance report to stderr\n" +" -s, --nodefault suppress default rule to ECHO unmatched text\n" +" -T, --trace %s should run in trace mode\n" +" -w, --nowarn do not generate warnings\n" +" -v, --verbose write summary of scanner statistics to stdout\n" +" --hex use hexadecimal numbers instead of octal in debug " +"outputs\n" +"\n" +"Files:\n" +" -o, --outfile=FILE specify output filename\n" +" -S, --skel=FILE specify skeleton file\n" +" -t, --stdout write scanner on stdout instead of %s\n" +" --yyclass=NAME name of C++ class\n" +" --header-file=FILE create a C header file in addition to the " +"scanner\n" +" --tables-file[=FILE] write tables to FILE\n" +"\n" +"Scanner behavior:\n" +" -7, --7bit generate 7-bit scanner\n" +" -8, --8bit generate 8-bit scanner\n" +" -B, --batch generate batch scanner (opposite of -I)\n" +" -i, --case-insensitive ignore case in patterns\n" +" -l, --lex-compat maximal compatibility with original lex\n" +" -X, --posix-compat maximal compatibility with POSIX lex\n" +" -I, --interactive generate interactive scanner (opposite of -B)\n" +" --yylineno track line count in yylineno\n" +"\n" +"Generated code:\n" +" -+, --c++ generate C++ scanner class\n" +" -Dmacro[=defn] #define macro defn (default defn is '1')\n" +" -L, --noline suppress #line directives in scanner\n" +" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n" +" -R, --reentrant generate a reentrant C scanner\n" +" --bison-bridge scanner for bison pure parser.\n" +" --bison-locations include yylloc support.\n" +" --stdinit initialize yyin/yyout to stdin/stdout\n" +" --noansi-definitions old-style function definitions\n" +" --noansi-prototypes empty parameter list in prototypes\n" +" --nounistd do not include <unistd.h>\n" +" --noFUNCTION do not generate a particular FUNCTION\n" +"\n" +"Miscellaneous:\n" +" -c do-nothing POSIX option\n" +" -n do-nothing POSIX option\n" +" -?\n" +" -h, --help produce this help message\n" +" -V, --version report %s version\n" +msgstr "" +"Generates programs that perform pattern-matching on text.\n" +"\n" +"Table Compression:\n" +" -Ca, --align trade off larger tables for better memory alignment\n" +" -Ce, --ecs construct equivalence classes\n" +" -Cf do not compress tables; use -f representation\n" +" -CF do not compress tables; use -F representation\n" +" -Cm, --meta-ecs construct meta-equivalence classes\n" +" -Cr, --read use read() instead of stdio for scanner input\n" +" -f, --full generate fast, large scanner. Same as -Cfr\n" +" -F, --fast use alternate table representation. Same as -CFr\n" +" -Cem default compression (same as --ecs --meta-ecs)\n" +"\n" +"Debugging:\n" +" -d, --debug enable debug mode in scanner\n" +" -b, --backup write backing-up information to %s\n" +" -p, --perf-report write performance report to stderr\n" +" -s, --nodefault suppress default rule to ECHO unmatched text\n" +" -T, --trace %s should run in trace mode\n" +" -w, --nowarn do not generate warnings\n" +" -v, --verbose write summary of scanner statistics to stdout\n" +" --hex use hexadecimal numbers instead of octal in debug " +"outputs\n" +"\n" +"Files:\n" +" -o, --outfile=FILE specify output filename\n" +" -S, --skel=FILE specify skeleton file\n" +" -t, --stdout write scanner on stdout instead of %s\n" +" --yyclass=NAME name of C++ class\n" +" --header-file=FILE create a C header file in addition to the " +"scanner\n" +" --tables-file[=FILE] write tables to FILE\n" +"\n" +"Scanner behavior:\n" +" -7, --7bit generate 7-bit scanner\n" +" -8, --8bit generate 8-bit scanner\n" +" -B, --batch generate batch scanner (opposite of -I)\n" +" -i, --case-insensitive ignore case in patterns\n" +" -l, --lex-compat maximal compatibility with original lex\n" +" -X, --posix-compat maximal compatibility with POSIX lex\n" +" -I, --interactive generate interactive scanner (opposite of -B)\n" +" --yylineno track line count in yylineno\n" +"\n" +"Generated code:\n" +" -+, --c++ generate C++ scanner class\n" +" -Dmacro[=defn] #define macro defn (default defn is '1')\n" +" -L, --noline suppress #line directives in scanner\n" +" -P, --prefix=STRING use STRING as prefix instead of “yyâ€\n" +" -R, --reentrant generate a reentrant C scanner\n" +" --bison-bridge scanner for bison pure parser.\n" +" --bison-locations include yylloc support.\n" +" --stdinit initialize yyin/yyout to stdin/stdout\n" +" --noansi-definitions old-style function definitions\n" +" --noansi-prototypes empty parameter list in prototypes\n" +" --nounistd do not include <unistd.h>\n" +" --noFUNCTION do not generate a particular FUNCTION\n" +"\n" +"Miscellaneous:\n" +" -c do-nothing POSIX option\n" +" -n do-nothing POSIX option\n" +" -?\n" +" -h, --help produce this help message\n" +" -V, --version report %s version\n" + +#: src/misc.c:65 +msgid "allocation of sko_stack failed" +msgstr "allocation of sko_stack failed" + +#: src/misc.c:101 src/misc.c:128 +#, c-format +msgid "name \"%s\" ridiculously long" +msgstr "name “%s†ridiculously long" + +#: src/misc.c:175 +msgid "memory allocation failed in allocate_array()" +msgstr "memory allocation failed in allocate_array()" + +#: src/misc.c:225 +#, c-format +msgid "bad character '%s' detected in check_char()" +msgstr "bad character ‘%s’ detected in check_char()" + +#: src/misc.c:230 +#, c-format +msgid "scanner requires -8 flag to use the character %s" +msgstr "scanner requires -8 flag to use the character %s" + +#: src/misc.c:249 +msgid "memory allocation failure in xstrdup()" +msgstr "memory allocation failure in xstrdup()" + +#: src/misc.c:323 +#, c-format +msgid "%s: fatal internal error, %s\n" +msgstr "%s: fatal internal error, %s\n" + +#: src/misc.c:712 +msgid "attempt to increase array size failed" +msgstr "attempt to increase array size failed" + +#: src/misc.c:839 +msgid "bad line in skeleton file" +msgstr "bad line in skeleton file" + +#: src/misc.c:889 +msgid "memory allocation failed in yy_flex_xmalloc()" +msgstr "memory allocation failed in yy_flex_xmalloc()" + +#: src/nfa.c:100 +#, c-format +msgid "" +"\n" +"\n" +"********** beginning dump of nfa with start state %d\n" +msgstr "" +"\n" +"\n" +"********** beginning dump of nfa with start state %d\n" + +#: src/nfa.c:111 +#, c-format +msgid "state # %4d\t" +msgstr "state # %4d\t" + +#: src/nfa.c:126 +#, c-format +msgid "********** end of dump\n" +msgstr "********** end of dump\n" + +#: src/nfa.c:169 +msgid "empty machine in dupmachine()" +msgstr "empty machine in dupmachine()" + +#: src/nfa.c:234 +#, c-format +msgid "Variable trailing context rule at line %d\n" +msgstr "Variable trailing context rule at line %d\n" + +#: src/nfa.c:356 +msgid "bad state type in mark_beginning_as_normal()" +msgstr "bad state type in mark_beginning_as_normal()" + +#: src/nfa.c:594 +#, c-format +msgid "input rules are too complicated (>= %d NFA states)" +msgstr "input rules are too complicated (>= %d NFA states)" + +#: src/nfa.c:672 +msgid "found too many transitions in mkxtion()" +msgstr "found too many transitions in mkxtion()" + +#: src/nfa.c:698 +#, c-format +msgid "too many rules (> %d)!" +msgstr "too many rules (> %d)!" + +#: src/parse.y:159 +msgid "unknown error processing section 1" +msgstr "unknown error processing section 1" + +#: src/parse.y:184 src/parse.y:351 +msgid "bad start condition list" +msgstr "bad start condition list" + +#: src/parse.y:315 +msgid "unrecognized rule" +msgstr "unrecognized rule" + +#: src/parse.y:434 src/parse.y:447 src/parse.y:516 +msgid "trailing context used twice" +msgstr "trailing context used twice" + +#: src/parse.y:552 src/parse.y:562 src/parse.y:635 src/parse.y:645 +msgid "bad iteration values" +msgstr "bad iteration values" + +#: src/parse.y:580 src/parse.y:598 src/parse.y:663 src/parse.y:681 +msgid "iteration value must be positive" +msgstr "iteration value must be positive" + +#: src/parse.y:804 src/parse.y:814 +#, c-format +msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner" +msgstr "the character range [%c-%c] is ambiguous in a case-insensitive scanner" + +#: src/parse.y:819 +msgid "negative range in character class" +msgstr "negative range in character class" + +#: src/parse.y:916 +msgid "[:^lower:] is ambiguous in case insensitive scanner" +msgstr "[:^lower:] is ambiguous in case insensitive scanner" + +#: src/parse.y:922 +msgid "[:^upper:] ambiguous in case insensitive scanner" +msgstr "[:^upper:] ambiguous in case insensitive scanner" + +#: src/scan.l:75 src/scan.l:618 src/scan.l:676 +msgid "Input line too long\n" +msgstr "Input line too long\n" + +#: src/scan.l:161 +#, c-format +msgid "malformed '%top' directive" +msgstr "malformed ‘%top’ directive" + +#: src/scan.l:183 +#, no-c-format +msgid "unrecognized '%' directive" +msgstr "unrecognized ‘%’ directive" + +#: src/scan.l:192 +msgid "Definition name too long\n" +msgstr "Definition name too long\n" + +#: src/scan.l:284 +msgid "Unmatched '{'" +msgstr "Unmatched ‘{’" + +#: src/scan.l:300 +#, c-format +msgid "Definition value for {%s} too long\n" +msgstr "Definition value for {%s} too long\n" + +#: src/scan.l:317 +msgid "incomplete name definition" +msgstr "incomplete name definition" + +#: src/scan.l:444 +msgid "Option line too long\n" +msgstr "Option line too long\n" + +#: src/scan.l:452 +#, c-format +msgid "unrecognized %%option: %s" +msgstr "unrecognized %%option: %s" + +#: src/scan.l:633 src/scan.l:806 +msgid "bad character class" +msgstr "bad character class" + +#: src/scan.l:683 +#, c-format +msgid "undefined definition {%s}" +msgstr "undefined definition {%s}" + +#: src/scan.l:746 +msgid "unbalanced parenthesis" +msgstr "unbalanced parenthesis" + +#: src/scan.l:761 +#, c-format +msgid "bad <start condition>: %s" +msgstr "bad <start condition>: %s" + +#: src/scan.l:774 +msgid "missing quote" +msgstr "missing quote" + +#: src/scan.l:840 +#, c-format +msgid "bad character class expression: %s" +msgstr "bad character class expression: %s" + +#: src/scan.l:862 +msgid "bad character inside {}'s" +msgstr "bad character inside {}'s" + +#: src/scan.l:868 +msgid "missing }" +msgstr "missing }" + +#: src/scan.l:946 +msgid "EOF encountered inside an action" +msgstr "EOF encountered inside an action" + +#: src/scan.l:951 +msgid "EOF encountered inside pattern" +msgstr "EOF encountered inside pattern" + +#: src/scan.l:973 +#, c-format +msgid "bad character: %s" +msgstr "bad character: %s" + +#: src/scan.l:1001 +#, c-format +msgid "can't open %s" +msgstr "can't open %s" + +#: src/scanopt.c:259 +#, c-format +msgid "Usage: %s [OPTIONS]...\n" +msgstr "Usage: %s [OPTIONS]...\n" + +#: src/scanopt.c:524 +#, c-format +msgid "option `%s' doesn't allow an argument\n" +msgstr "option ‘%s’ doesn't allow an argument\n" + +#: src/scanopt.c:529 +#, c-format +msgid "option `%s' requires an argument\n" +msgstr "option ‘%s’ requires an argument\n" + +#: src/scanopt.c:533 +#, c-format +msgid "option `%s' is ambiguous\n" +msgstr "option ‘%s’ is ambiguous\n" + +#: src/scanopt.c:537 +#, c-format +msgid "Unrecognized option `%s'\n" +msgstr "Unrecognized option ‘%s’\n" + +#: src/scanopt.c:541 +#, c-format +msgid "Unknown error=(%d)\n" +msgstr "Unknown error=(%d)\n" + +#: src/sym.c:92 +msgid "symbol table memory allocation failed" +msgstr "symbol table memory allocation failed" + +#: src/sym.c:183 +msgid "name defined twice" +msgstr "name defined twice" + +#: src/sym.c:231 +#, c-format +msgid "start condition %s declared twice" +msgstr "start condition %s declared twice" + +#: src/yylex.c:56 +msgid "premature EOF" +msgstr "premature EOF" + +#: src/yylex.c:199 +#, c-format +msgid "End Marker\n" +msgstr "End Marker\n" + +#: src/yylex.c:205 +#, c-format +msgid "*Something Weird* - tok: %d val: %d\n" +msgstr "*Something Weird* - tok: %d val: %d\n" diff --git a/po/eo.gmo b/po/eo.gmo Binary files differnew file mode 100644 index 0000000..4b2e6c5 --- /dev/null +++ b/po/eo.gmo @@ -1,12 +1,27 @@ -# Esperanto translation -# Copyright © 2008 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# Felipe Castro <fefcas@gmail.com>, 2012. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.37\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:25-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Esperanto translation +#~ # Copyright © 2008 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # Felipe Castro <fefcas@gmail.com>, 2012. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.37\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2012-09-08 07:15-0300\n" "Last-Translator: Felipe Castro <fefcas@gmail.com>\n" diff --git a/po/es.gmo b/po/es.gmo Binary files differnew file mode 100644 index 0000000..6dae1f0 --- /dev/null +++ b/po/es.gmo @@ -1,12 +1,27 @@ -# Mensajes en español para GNU flex. -# Copyright (C) 2002 The Flex Project +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -# Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>, 1997. -# Gracias a Nicolás Fernández García que me ha sugerido algunas ideas. +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: GNU flex 2.5.8\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:27-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Mensajes en español para GNU flex. +#~ # Copyright (C) 2002 The Flex Project +#~ # +#~ # Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>, 1997. +#~ # Gracias a Nicolás Fernández García que me ha sugerido algunas ideas. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: GNU flex 2.5.8\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2003-01-02 12:06+0100\n" "Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n" @@ -33,6 +48,22 @@ msgstr "" msgid "Allocation of buffer for m4 undef failed" msgstr "" +#: src/buf.c:79 +msgid "Allocation of buffer to print string failed" +msgstr "" + +#: src/buf.c:107 +msgid "Allocation of buffer for line directive failed" +msgstr "" + +#: src/buf.c:177 +msgid "Allocation of buffer for m4 def failed" +msgstr "" + +#: src/buf.c:198 +msgid "Allocation of buffer for m4 undef failed" +msgstr "" + # El estado (?) sv #: src/dfa.c:59 #, c-format @@ -745,6 +776,8 @@ msgid "" " --bison-bridge scanner for bison pure parser.\n" " --bison-locations include yylloc support.\n" " --stdinit initialize yyin/yyout to stdin/stdout\n" +" --noansi-definitions old-style function definitions\n" +" --noansi-prototypes empty parameter list in prototypes\n" " --nounistd do not include <unistd.h>\n" " --noFUNCTION do not generate a particular FUNCTION\n" "\n" diff --git a/po/fi.gmo b/po/fi.gmo Binary files differnew file mode 100644 index 0000000..28c800f --- /dev/null +++ b/po/fi.gmo @@ -1,13 +1,28 @@ -# Finnish messages for flex. -# Copyright © 2009, 2012 The Flex Project (msgids) -# This file is put in the public domain. -# This file is distributed under the same license as the flex package. -# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009, 2012. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.36\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:28-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Finnish messages for flex. +#~ # Copyright © 2009, 2012 The Flex Project (msgids) +#~ # This file is put in the public domain. +#~ # This file is distributed under the same license as the flex package. +#~ # Jorma Karvonen <karvonen.jorma@gmail.com>, 2009, 2012. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.36\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2012-08-02 21:16+0200\n" "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n" diff --git a/po/flex.pot b/po/flex.pot new file mode 100644 index 0000000..3c02484 --- /dev/null +++ b/po/flex.pot @@ -0,0 +1,859 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: flex 2.6.1\n" +"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2016-03-01 19:54-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/buf.c:79 +msgid "Allocation of buffer to print string failed" +msgstr "" + +#: src/buf.c:107 +msgid "Allocation of buffer for line directive failed" +msgstr "" + +#: src/buf.c:177 +msgid "Allocation of buffer for m4 def failed" +msgstr "" + +#: src/buf.c:198 +msgid "Allocation of buffer for m4 undef failed" +msgstr "" + +#: src/dfa.c:59 +#, c-format +msgid "State #%d is non-accepting -\n" +msgstr "" + +#: src/dfa.c:119 +msgid "dangerous trailing context" +msgstr "" + +#: src/dfa.c:159 +#, c-format +msgid " associated rule line numbers:" +msgstr "" + +#: src/dfa.c:193 +#, c-format +msgid " out-transitions: " +msgstr "" + +#: src/dfa.c:201 +#, c-format +msgid "" +"\n" +" jam-transitions: EOF " +msgstr "" + +#: src/dfa.c:331 +msgid "consistency check failed in epsclosure()" +msgstr "" + +#: src/dfa.c:419 +msgid "" +"\n" +"\n" +"DFA Dump:\n" +"\n" +msgstr "" + +#: src/dfa.c:592 +msgid "could not create unique end-of-buffer state" +msgstr "" + +#: src/dfa.c:613 +#, c-format +msgid "state # %d:\n" +msgstr "" + +#: src/dfa.c:773 +msgid "Could not write yynxt_tbl[][]" +msgstr "" + +#: src/dfa.c:1033 +msgid "bad transition character detected in sympartition()" +msgstr "" + +#: src/gen.c:494 +msgid "" +"\n" +"\n" +"Equivalence Classes:\n" +"\n" +msgstr "" + +#: src/gen.c:679 src/gen.c:708 src/gen.c:1228 +#, c-format +msgid "state # %d accepts: [%d]\n" +msgstr "" + +#: src/gen.c:1125 +#, c-format +msgid "state # %d accepts: " +msgstr "" + +#: src/gen.c:1172 +msgid "Could not write yyacclist_tbl" +msgstr "" + +#: src/gen.c:1246 +msgid "Could not write yyacc_tbl" +msgstr "" + +#: src/gen.c:1261 src/gen.c:1633 src/gen.c:1656 +msgid "Could not write ecstbl" +msgstr "" + +#: src/gen.c:1281 +msgid "" +"\n" +"\n" +"Meta-Equivalence Classes:\n" +msgstr "" + +#: src/gen.c:1303 +msgid "Could not write yymeta_tbl" +msgstr "" + +#: src/gen.c:1362 +msgid "Could not write yybase_tbl" +msgstr "" + +#: src/gen.c:1394 +msgid "Could not write yydef_tbl" +msgstr "" + +#: src/gen.c:1432 +msgid "Could not write yynxt_tbl" +msgstr "" + +#: src/gen.c:1466 +msgid "Could not write yychk_tbl" +msgstr "" + +#: src/gen.c:1618 src/gen.c:1647 +msgid "Could not write ftbl" +msgstr "" + +#: src/gen.c:1624 +msgid "Could not write ssltbl" +msgstr "" + +#: src/gen.c:1675 +msgid "Could not write eoltbl" +msgstr "" + +#: src/gen.c:1732 +msgid "Could not write yynultrans_tbl" +msgstr "" + +#: src/main.c:179 +msgid "rule cannot be matched" +msgstr "" + +#: src/main.c:184 +msgid "-s option given but default rule can be matched" +msgstr "" + +#: src/main.c:222 +msgid "Can't use -+ with -l option" +msgstr "" + +#: src/main.c:225 +msgid "Can't use -f or -F with -l option" +msgstr "" + +#: src/main.c:229 +msgid "Can't use --reentrant or --bison-bridge with -l option" +msgstr "" + +#: src/main.c:261 +msgid "-Cf/-CF and -Cm don't make sense together" +msgstr "" + +#: src/main.c:264 +msgid "-Cf/-CF and -I are incompatible" +msgstr "" + +#: src/main.c:268 +msgid "-Cf/-CF are incompatible with lex-compatibility mode" +msgstr "" + +#: src/main.c:273 +msgid "-Cf and -CF are mutually exclusive" +msgstr "" + +#: src/main.c:277 +msgid "Can't use -+ with -CF option" +msgstr "" + +#: src/main.c:280 +#, c-format +msgid "%array incompatible with -+ option" +msgstr "" + +#: src/main.c:285 +msgid "Options -+ and --reentrant are mutually exclusive." +msgstr "" + +#: src/main.c:288 +msgid "bison bridge not supported for the C++ scanner." +msgstr "" + +#: src/main.c:343 src/main.c:427 +#, c-format +msgid "could not create %s" +msgstr "" + +#: src/main.c:439 +msgid "could not write tables header" +msgstr "" + +#: src/main.c:443 +#, c-format +msgid "can't open skeleton file %s" +msgstr "" + +#: src/main.c:480 +msgid "allocation of macro definition failed" +msgstr "" + +#: src/main.c:527 +#, c-format +msgid "input error reading skeleton file %s" +msgstr "" + +#: src/main.c:531 +#, c-format +msgid "error closing skeleton file %s" +msgstr "" + +#: src/main.c:715 +#, c-format +msgid "error creating header file %s" +msgstr "" + +#: src/main.c:723 +#, c-format +msgid "error writing output file %s" +msgstr "" + +#: src/main.c:727 +#, c-format +msgid "error closing output file %s" +msgstr "" + +#: src/main.c:731 +#, c-format +msgid "error deleting output file %s" +msgstr "" + +#: src/main.c:738 +#, c-format +msgid "No backing up.\n" +msgstr "" + +#: src/main.c:742 +#, c-format +msgid "%d backing up (non-accepting) states.\n" +msgstr "" + +#: src/main.c:746 +#, c-format +msgid "Compressed tables always back up.\n" +msgstr "" + +#: src/main.c:749 +#, c-format +msgid "error writing backup file %s" +msgstr "" + +#: src/main.c:753 +#, c-format +msgid "error closing backup file %s" +msgstr "" + +#: src/main.c:758 +#, c-format +msgid "%s version %s usage statistics:\n" +msgstr "" + +#: src/main.c:761 +#, c-format +msgid " scanner options: -" +msgstr "" + +#: src/main.c:840 +#, c-format +msgid " %d/%d NFA states\n" +msgstr "" + +#: src/main.c:842 +#, c-format +msgid " %d/%d DFA states (%d words)\n" +msgstr "" + +#: src/main.c:844 +#, c-format +msgid " %d rules\n" +msgstr "" + +#: src/main.c:849 +#, c-format +msgid " No backing up\n" +msgstr "" + +#: src/main.c:853 +#, c-format +msgid " %d backing-up (non-accepting) states\n" +msgstr "" + +#: src/main.c:858 +#, c-format +msgid " Compressed tables always back-up\n" +msgstr "" + +#: src/main.c:862 +#, c-format +msgid " Beginning-of-line patterns used\n" +msgstr "" + +#: src/main.c:864 +#, c-format +msgid " %d/%d start conditions\n" +msgstr "" + +#: src/main.c:868 +#, c-format +msgid " %d epsilon states, %d double epsilon states\n" +msgstr "" + +#: src/main.c:872 +#, c-format +msgid " no character classes\n" +msgstr "" + +#: src/main.c:876 +#, c-format +msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n" +msgstr "" + +#: src/main.c:881 +#, c-format +msgid " %d state/nextstate pairs created\n" +msgstr "" + +#: src/main.c:884 +#, c-format +msgid " %d/%d unique/duplicate transitions\n" +msgstr "" + +#: src/main.c:889 +#, c-format +msgid " %d table entries\n" +msgstr "" + +#: src/main.c:897 +#, c-format +msgid " %d/%d base-def entries created\n" +msgstr "" + +#: src/main.c:901 +#, c-format +msgid " %d/%d (peak %d) nxt-chk entries created\n" +msgstr "" + +#: src/main.c:905 +#, c-format +msgid " %d/%d (peak %d) template nxt-chk entries created\n" +msgstr "" + +#: src/main.c:909 +#, c-format +msgid " %d empty table entries\n" +msgstr "" + +#: src/main.c:911 +#, c-format +msgid " %d protos created\n" +msgstr "" + +#: src/main.c:914 +#, c-format +msgid " %d templates created, %d uses\n" +msgstr "" + +#: src/main.c:922 +#, c-format +msgid " %d/%d equivalence classes created\n" +msgstr "" + +#: src/main.c:930 +#, c-format +msgid " %d/%d meta-equivalence classes created\n" +msgstr "" + +#: src/main.c:936 +#, c-format +msgid " %d (%d saved) hash collisions, %d DFAs equal\n" +msgstr "" + +#: src/main.c:938 +#, c-format +msgid " %d sets of reallocations needed\n" +msgstr "" + +#: src/main.c:940 +#, c-format +msgid " %d total table entries needed\n" +msgstr "" + +#: src/main.c:1015 +#, c-format +msgid "Internal error. flexopts are malformed.\n" +msgstr "" + +#: src/main.c:1025 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "" + +#: src/main.c:1082 +#, c-format +msgid "unknown -C option '%c'" +msgstr "" + +#: src/main.c:1211 +#, c-format +msgid "%s %s\n" +msgstr "" + +#: src/main.c:1487 +msgid "fatal parse error" +msgstr "" + +#: src/main.c:1519 +#, c-format +msgid "could not create backing-up info file %s" +msgstr "" + +#: src/main.c:1540 +#, c-format +msgid "-l AT&T lex compatibility option entails a large performance penalty\n" +msgstr "" + +#: src/main.c:1543 +#, c-format +msgid " and may be the actual source of other reported performance penalties\n" +msgstr "" + +#: src/main.c:1549 +#, c-format +msgid "" +"%%option yylineno entails a performance penalty ONLY on rules that can match " +"newline characters\n" +msgstr "" + +#: src/main.c:1556 +#, c-format +msgid "-I (interactive) entails a minor performance penalty\n" +msgstr "" + +#: src/main.c:1561 +#, c-format +msgid "yymore() entails a minor performance penalty\n" +msgstr "" + +#: src/main.c:1567 +#, c-format +msgid "REJECT entails a large performance penalty\n" +msgstr "" + +#: src/main.c:1572 +#, c-format +msgid "Variable trailing context rules entail a large performance penalty\n" +msgstr "" + +#: src/main.c:1584 +msgid "REJECT cannot be used with -f or -F" +msgstr "" + +#: src/main.c:1587 +#, c-format +msgid "%option yylineno cannot be used with REJECT" +msgstr "" + +#: src/main.c:1590 +msgid "variable trailing context rules cannot be used with -f or -F" +msgstr "" + +#: src/main.c:1718 +#, c-format +msgid "%option yyclass only meaningful for C++ scanners" +msgstr "" + +#: src/main.c:1805 +#, c-format +msgid "Usage: %s [OPTIONS] [FILE]...\n" +msgstr "" + +#: src/main.c:1808 +#, c-format +msgid "" +"Generates programs that perform pattern-matching on text.\n" +"\n" +"Table Compression:\n" +" -Ca, --align trade off larger tables for better memory alignment\n" +" -Ce, --ecs construct equivalence classes\n" +" -Cf do not compress tables; use -f representation\n" +" -CF do not compress tables; use -F representation\n" +" -Cm, --meta-ecs construct meta-equivalence classes\n" +" -Cr, --read use read() instead of stdio for scanner input\n" +" -f, --full generate fast, large scanner. Same as -Cfr\n" +" -F, --fast use alternate table representation. Same as -CFr\n" +" -Cem default compression (same as --ecs --meta-ecs)\n" +"\n" +"Debugging:\n" +" -d, --debug enable debug mode in scanner\n" +" -b, --backup write backing-up information to %s\n" +" -p, --perf-report write performance report to stderr\n" +" -s, --nodefault suppress default rule to ECHO unmatched text\n" +" -T, --trace %s should run in trace mode\n" +" -w, --nowarn do not generate warnings\n" +" -v, --verbose write summary of scanner statistics to stdout\n" +" --hex use hexadecimal numbers instead of octal in debug " +"outputs\n" +"\n" +"Files:\n" +" -o, --outfile=FILE specify output filename\n" +" -S, --skel=FILE specify skeleton file\n" +" -t, --stdout write scanner on stdout instead of %s\n" +" --yyclass=NAME name of C++ class\n" +" --header-file=FILE create a C header file in addition to the " +"scanner\n" +" --tables-file[=FILE] write tables to FILE\n" +"\n" +"Scanner behavior:\n" +" -7, --7bit generate 7-bit scanner\n" +" -8, --8bit generate 8-bit scanner\n" +" -B, --batch generate batch scanner (opposite of -I)\n" +" -i, --case-insensitive ignore case in patterns\n" +" -l, --lex-compat maximal compatibility with original lex\n" +" -X, --posix-compat maximal compatibility with POSIX lex\n" +" -I, --interactive generate interactive scanner (opposite of -B)\n" +" --yylineno track line count in yylineno\n" +"\n" +"Generated code:\n" +" -+, --c++ generate C++ scanner class\n" +" -Dmacro[=defn] #define macro defn (default defn is '1')\n" +" -L, --noline suppress #line directives in scanner\n" +" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n" +" -R, --reentrant generate a reentrant C scanner\n" +" --bison-bridge scanner for bison pure parser.\n" +" --bison-locations include yylloc support.\n" +" --stdinit initialize yyin/yyout to stdin/stdout\n" +" --noansi-definitions old-style function definitions\n" +" --noansi-prototypes empty parameter list in prototypes\n" +" --nounistd do not include <unistd.h>\n" +" --noFUNCTION do not generate a particular FUNCTION\n" +"\n" +"Miscellaneous:\n" +" -c do-nothing POSIX option\n" +" -n do-nothing POSIX option\n" +" -?\n" +" -h, --help produce this help message\n" +" -V, --version report %s version\n" +msgstr "" + +#: src/misc.c:65 +msgid "allocation of sko_stack failed" +msgstr "" + +#: src/misc.c:101 src/misc.c:128 +#, c-format +msgid "name \"%s\" ridiculously long" +msgstr "" + +#: src/misc.c:175 +msgid "memory allocation failed in allocate_array()" +msgstr "" + +#: src/misc.c:225 +#, c-format +msgid "bad character '%s' detected in check_char()" +msgstr "" + +#: src/misc.c:230 +#, c-format +msgid "scanner requires -8 flag to use the character %s" +msgstr "" + +#: src/misc.c:249 +msgid "memory allocation failure in xstrdup()" +msgstr "" + +#: src/misc.c:323 +#, c-format +msgid "%s: fatal internal error, %s\n" +msgstr "" + +#: src/misc.c:712 +msgid "attempt to increase array size failed" +msgstr "" + +#: src/misc.c:839 +msgid "bad line in skeleton file" +msgstr "" + +#: src/misc.c:889 +msgid "memory allocation failed in yy_flex_xmalloc()" +msgstr "" + +#: src/nfa.c:100 +#, c-format +msgid "" +"\n" +"\n" +"********** beginning dump of nfa with start state %d\n" +msgstr "" + +#: src/nfa.c:111 +#, c-format +msgid "state # %4d\t" +msgstr "" + +#: src/nfa.c:126 +#, c-format +msgid "********** end of dump\n" +msgstr "" + +#: src/nfa.c:169 +msgid "empty machine in dupmachine()" +msgstr "" + +#: src/nfa.c:234 +#, c-format +msgid "Variable trailing context rule at line %d\n" +msgstr "" + +#: src/nfa.c:356 +msgid "bad state type in mark_beginning_as_normal()" +msgstr "" + +#: src/nfa.c:594 +#, c-format +msgid "input rules are too complicated (>= %d NFA states)" +msgstr "" + +#: src/nfa.c:672 +msgid "found too many transitions in mkxtion()" +msgstr "" + +#: src/nfa.c:698 +#, c-format +msgid "too many rules (> %d)!" +msgstr "" + +#: src/parse.y:159 +msgid "unknown error processing section 1" +msgstr "" + +#: src/parse.y:184 src/parse.y:351 +msgid "bad start condition list" +msgstr "" + +#: src/parse.y:315 +msgid "unrecognized rule" +msgstr "" + +#: src/parse.y:434 src/parse.y:447 src/parse.y:516 +msgid "trailing context used twice" +msgstr "" + +#: src/parse.y:552 src/parse.y:562 src/parse.y:635 src/parse.y:645 +msgid "bad iteration values" +msgstr "" + +#: src/parse.y:580 src/parse.y:598 src/parse.y:663 src/parse.y:681 +msgid "iteration value must be positive" +msgstr "" + +#: src/parse.y:804 src/parse.y:814 +#, c-format +msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner" +msgstr "" + +#: src/parse.y:819 +msgid "negative range in character class" +msgstr "" + +#: src/parse.y:916 +msgid "[:^lower:] is ambiguous in case insensitive scanner" +msgstr "" + +#: src/parse.y:922 +msgid "[:^upper:] ambiguous in case insensitive scanner" +msgstr "" + +#: src/scan.l:75 src/scan.l:618 src/scan.l:676 +msgid "Input line too long\n" +msgstr "" + +#: src/scan.l:161 +#, c-format +msgid "malformed '%top' directive" +msgstr "" + +#: src/scan.l:183 +#, no-c-format +msgid "unrecognized '%' directive" +msgstr "" + +#: src/scan.l:192 +msgid "Definition name too long\n" +msgstr "" + +#: src/scan.l:284 +msgid "Unmatched '{'" +msgstr "" + +#: src/scan.l:300 +#, c-format +msgid "Definition value for {%s} too long\n" +msgstr "" + +#: src/scan.l:317 +msgid "incomplete name definition" +msgstr "" + +#: src/scan.l:444 +msgid "Option line too long\n" +msgstr "" + +#: src/scan.l:452 +#, c-format +msgid "unrecognized %%option: %s" +msgstr "" + +#: src/scan.l:633 src/scan.l:806 +msgid "bad character class" +msgstr "" + +#: src/scan.l:683 +#, c-format +msgid "undefined definition {%s}" +msgstr "" + +#: src/scan.l:746 +msgid "unbalanced parenthesis" +msgstr "" + +#: src/scan.l:761 +#, c-format +msgid "bad <start condition>: %s" +msgstr "" + +#: src/scan.l:774 +msgid "missing quote" +msgstr "" + +#: src/scan.l:840 +#, c-format +msgid "bad character class expression: %s" +msgstr "" + +#: src/scan.l:862 +msgid "bad character inside {}'s" +msgstr "" + +#: src/scan.l:868 +msgid "missing }" +msgstr "" + +#: src/scan.l:946 +msgid "EOF encountered inside an action" +msgstr "" + +#: src/scan.l:951 +msgid "EOF encountered inside pattern" +msgstr "" + +#: src/scan.l:973 +#, c-format +msgid "bad character: %s" +msgstr "" + +#: src/scan.l:1001 +#, c-format +msgid "can't open %s" +msgstr "" + +#: src/scanopt.c:259 +#, c-format +msgid "Usage: %s [OPTIONS]...\n" +msgstr "" + +#: src/scanopt.c:524 +#, c-format +msgid "option `%s' doesn't allow an argument\n" +msgstr "" + +#: src/scanopt.c:529 +#, c-format +msgid "option `%s' requires an argument\n" +msgstr "" + +#: src/scanopt.c:533 +#, c-format +msgid "option `%s' is ambiguous\n" +msgstr "" + +#: src/scanopt.c:537 +#, c-format +msgid "Unrecognized option `%s'\n" +msgstr "" + +#: src/scanopt.c:541 +#, c-format +msgid "Unknown error=(%d)\n" +msgstr "" + +#: src/sym.c:92 +msgid "symbol table memory allocation failed" +msgstr "" + +#: src/sym.c:183 +msgid "name defined twice" +msgstr "" + +#: src/sym.c:231 +#, c-format +msgid "start condition %s declared twice" +msgstr "" + +#: src/yylex.c:56 +msgid "premature EOF" +msgstr "" + +#: src/yylex.c:199 +#, c-format +msgid "End Marker\n" +msgstr "" + +#: src/yylex.c:205 +#, c-format +msgid "*Something Weird* - tok: %d val: %d\n" +msgstr "" diff --git a/po/fr.gmo b/po/fr.gmo Binary files differnew file mode 100644 index 0000000..b4515fa --- /dev/null +++ b/po/fr.gmo @@ -1,16 +1,31 @@ -# Messages français pour Flex. -# Copyright © 2008, 2012 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -# Dominique Boucher <boucherd@IRO.UMontreal.CA>, 1996. -# Marc Baudoin <babafou@ensta.fr>, 1996-2002. -# Michel Robitaille <robitail@IRO.UMontreal.CA>, 2002-2008. -# François-Xavier Coudert <fxcoudert@gmail.com>, 2008. -# David Prévot <david@tilapin.org>, 2012. +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.37\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:32-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Messages français pour Flex. +#~ # Copyright © 2008, 2012 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # +#~ # Dominique Boucher <boucherd@IRO.UMontreal.CA>, 1996. +#~ # Marc Baudoin <babafou@ensta.fr>, 1996-2002. +#~ # Michel Robitaille <robitail@IRO.UMontreal.CA>, 2002-2008. +#~ # François-Xavier Coudert <fxcoudert@gmail.com>, 2008. +#~ # David Prévot <david@tilapin.org>, 2012. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.37\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2012-09-19 21:01-0400\n" "Last-Translator: David Prévot <david@tilapin.org>\n" diff --git a/po/ga.gmo b/po/ga.gmo Binary files differnew file mode 100644 index 0000000..11f98f0 --- /dev/null +++ b/po/ga.gmo @@ -1,11 +1,26 @@ -# Irish translations for flex. -# Copyright (C) 2008 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2006, 2008, 2017. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.38\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:33-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Irish translations for flex. +#~ # Copyright (C) 2008 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2006, 2008, 2017. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.38\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2017-01-10 09:37-0500\n" "Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" diff --git a/po/hr.gmo b/po/hr.gmo Binary files differnew file mode 100644 index 0000000..7996ab8 --- /dev/null +++ b/po/hr.gmo @@ -1,12 +1,27 @@ -# Translation of flex to Croatian. -# Copyright (C) 2012 The Flex Project (msgids) -# This file is put in the public domain. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012. +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.37\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:35-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Translation of flex to Croatian. +#~ # Copyright (C) 2012 The Flex Project (msgids) +#~ # This file is put in the public domain. +#~ # +#~ # Tomislav Krznar <tomislav.krznar@gmail.com>, 2012. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.37\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2012-10-05 16:48+0200\n" "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n" diff --git a/po/insert-header.sin b/po/insert-header.sin new file mode 100644 index 0000000..b26de01 --- /dev/null +++ b/po/insert-header.sin @@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/ko.gmo b/po/ko.gmo Binary files differnew file mode 100644 index 0000000..3620376 --- /dev/null +++ b/po/ko.gmo @@ -1,11 +1,26 @@ -# flex-2.5.2 Korean po file -# Copyright (C) 1996 The Flex Project -# Choi Jun Ho <junker@jazz.snu.ac.kr>, 1997. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.2\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:37-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # flex-2.5.2 Korean po file +#~ # Copyright (C) 1996 The Flex Project +#~ # Choi Jun Ho <junker@jazz.snu.ac.kr>, 1997. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.2\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 1997-02-05 20:30\n" "Last-Translator: Choi Jun Ho <junker@jazz.snu.ac.kr>\n" diff --git a/po/nl.gmo b/po/nl.gmo Binary files differnew file mode 100644 index 0000000..ef31084 --- /dev/null +++ b/po/nl.gmo @@ -1,14 +1,29 @@ -# Dutch translations for the fast parser Flex. -# Copyright (C) 2014 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -# Beim schwarzen Schaf... -# -# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2012, 2014. +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex-2.5.38\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:39-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Dutch translations for the fast parser Flex. +#~ # Copyright (C) 2014 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # +#~ # Beim schwarzen Schaf... +#~ # +#~ # Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2012, 2014. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex-2.5.38\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2014-02-13 22:25+0100\n" "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n" diff --git a/po/pl.gmo b/po/pl.gmo Binary files differnew file mode 100644 index 0000000..68f66fd --- /dev/null +++ b/po/pl.gmo @@ -1,12 +1,27 @@ -# Polish translation for flex. -# Copyright (C) 2007, 2012 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -# Jakub Bogusz <qboosh@pld-linux.org>, 2003-2012. +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.36\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:42-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Polish translation for flex. +#~ # Copyright (C) 2007, 2012 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # +#~ # Jakub Bogusz <qboosh@pld-linux.org>, 2003-2012. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.36\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2012-08-02 18:15+0200\n" "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo Binary files differnew file mode 100644 index 0000000..22fcf1e --- /dev/null +++ b/po/pt_BR.gmo diff --git a/po/pt_BR.po b/po/pt_BR.po index fd9aa11..089e950 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,13 +1,28 @@ -# Translation to Brazilian Portuguese of flex. -# Copyright (C) 2013 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# Alexandre Folle de Menezes <afmenez@terra.com.br>, 2003, 2004. -# Rafael Ferreira <rafael.f.f1@gmail.com>, 2013. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.37\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:44-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Translation to Brazilian Portuguese of flex. +#~ # Copyright (C) 2013 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # Alexandre Folle de Menezes <afmenez@terra.com.br>, 2003, 2004. +#~ # Rafael Ferreira <rafael.f.f1@gmail.com>, 2013. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.37\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2013-11-27 08:09-0300\n" "Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n" diff --git a/po/quot.sed b/po/quot.sed new file mode 100644 index 0000000..0122c46 --- /dev/null +++ b/po/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1â€/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“â€/""/g diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin new file mode 100644 index 0000000..2436c49 --- /dev/null +++ b/po/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/ro.gmo b/po/ro.gmo Binary files differnew file mode 100644 index 0000000..4c546a3 --- /dev/null +++ b/po/ro.gmo @@ -1,11 +1,26 @@ -# Mesajele în limba românã pentru pachetul flex. -# Copyright (C) 2003 The Flex Project -# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.31\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:50-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Mesajele în limba românã pentru pachetul flex. +#~ # Copyright (C) 2003 The Flex Project +#~ # Eugen Hoanca <eugenh@urban-grafx.ro>, 2003. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.31\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2003-11-22 11:07+0200\n" "Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n" diff --git a/po/ru.gmo b/po/ru.gmo Binary files differnew file mode 100644 index 0000000..a5cc2e8 --- /dev/null +++ b/po/ru.gmo @@ -1,13 +1,28 @@ -# Russian translation for flex. -# Copyright (C) 2013 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -# Dmitry S. Sivachenko <dima@Chg.RU>, 1999, 2000, 2001, 2002. -# Yuri Kozlov <yuray@komyakino.ru>, 2014. +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.38\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:52-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Russian translation for flex. +#~ # Copyright (C) 2013 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # +#~ # Dmitry S. Sivachenko <dima@Chg.RU>, 1999, 2000, 2001, 2002. +#~ # Yuri Kozlov <yuray@komyakino.ru>, 2014. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.38\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2014-02-16 10:00+0400\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" diff --git a/po/sr.gmo b/po/sr.gmo Binary files differnew file mode 100644 index 0000000..2049e87 --- /dev/null +++ b/po/sr.gmo @@ -1,11 +1,26 @@ -# Serbian translation for flex -# Copyright (C) 2013 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2013. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex-2.5.37\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:55-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Serbian translation for flex +#~ # Copyright (C) 2013 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2013. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex-2.5.37\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2013-10-30 18:20+0200\n" "Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n" diff --git a/po/stamp-po b/po/stamp-po new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/po/stamp-po @@ -0,0 +1 @@ +timestamp diff --git a/po/sv.gmo b/po/sv.gmo Binary files differnew file mode 100644 index 0000000..6cea5da --- /dev/null +++ b/po/sv.gmo @@ -1,14 +1,29 @@ -# Swedish messages for flex. -# Copyright (C) 2014 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -# Johan Linde <jl@theophys.kth.se>, 1996. -# Christian Rose <menthos@menthos.com>, 2002, 2004. -# Göran Uddeborg <goeran@uddeborg.se>, 2016 -# -# $Revision: 1.5 $ +#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 10:58-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Swedish messages for flex. +#~ # Copyright (C) 2014 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # +#~ # Johan Linde <jl@theophys.kth.se>, 1996. +#~ # Christian Rose <menthos@menthos.com>, 2002, 2004. +#~ # Göran Uddeborg <goeran@uddeborg.se>, 2016 +#~ # +#~ # $Revision: 1.5 $ +#~ msgid "" +#~ msgstr "" "Project-Id-Version: flex 2.5.38\n" "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" diff --git a/po/tr.gmo b/po/tr.gmo Binary files differnew file mode 100644 index 0000000..49d11e4 --- /dev/null +++ b/po/tr.gmo @@ -1,11 +1,26 @@ -# Translation of 'flex' messages to Turkish -# Copyright (C) 2004 The Flex Project -# Deniz Akkus Kanca <deniz@arayan.com>, 2004. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.31\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 11:00-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Translation of 'flex' messages to Turkish +#~ # Copyright (C) 2004 The Flex Project +#~ # Deniz Akkus Kanca <deniz@arayan.com>, 2004. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.31\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2004-05-16 18:36+0300\n" "Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n" diff --git a/po/vi.gmo b/po/vi.gmo Binary files differnew file mode 100644 index 0000000..2d9758b --- /dev/null +++ b/po/vi.gmo @@ -1,15 +1,30 @@ -# Vietnamese translation for Flex. -# Bản dịch tiếng Việt dà nh cho flex. -# Copyright (C) 2014 The Flex Project (msgids) -# Copyright (C) 2014 Free Software Foundation, Inc. -# This file is distributed under the same license as the flex package. -# Clytie Siddall <clytie@riverland.net.au>, 2005-2008. -# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012-2014. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex-2.5.38\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 11:01-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Vietnamese translation for Flex. +#~ # Bản dịch tiếng Việt dà nh cho flex. +#~ # Copyright (C) 2014 The Flex Project (msgids) +#~ # Copyright (C) 2014 Free Software Foundation, Inc. +#~ # This file is distributed under the same license as the flex package. +#~ # Clytie Siddall <clytie@riverland.net.au>, 2005-2008. +#~ # Trần Ngá»c Quân <vnwildman@gmail.com>, 2012-2014. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex-2.5.38\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2014-02-14 08:17+0700\n" "Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo Binary files differnew file mode 100644 index 0000000..0478a8c --- /dev/null +++ b/po/zh_CN.gmo diff --git a/po/zh_CN.po b/po/zh_CN.po index 01cee78..3f1c728 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1,13 +1,28 @@ -# Chinese translations for flex. -# Copyright (C) 2014 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# Wang Li <charles@linux.net.cn>, 2002. -# Wei-Lun Chao <bluebat@member.fsf.org>, 2009, 2013. -# Mingye Wang <arthur200126@gmail.com>, 2015. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.38\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 11:03-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Chinese translations for flex. +#~ # Copyright (C) 2014 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # Wang Li <charles@linux.net.cn>, 2002. +#~ # Wei-Lun Chao <bluebat@member.fsf.org>, 2009, 2013. +#~ # Mingye Wang <arthur200126@gmail.com>, 2015. +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.38\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2015-08-27 16:54+0800\n" "Last-Translator: Mingye Wang <arthur200126@gmail.com>\n" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo Binary files differnew file mode 100644 index 0000000..dbd94a1 --- /dev/null +++ b/po/zh_TW.gmo diff --git a/po/zh_TW.po b/po/zh_TW.po index f0f0ca0..340860a 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1,13 +1,28 @@ -# Traditional Chinese Messages for flex. -# Copyright (C) 2002 The Flex Project (msgids) -# This file is distributed under the same license as the flex package. -# Wang Li <charles@linux.net.cn>, 2002. -# Wei-Lun Chao <bluebat@member.fsf.org>, 2009, 2013. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: flex 2.5.37\n" -"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2018-02-08 11:05-0800\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ # Traditional Chinese Messages for flex. +#~ # Copyright (C) 2002 The Flex Project (msgids) +#~ # This file is distributed under the same license as the flex package. +#~ # Wang Li <charles@linux.net.cn>, 2002. +#~ # Wei-Lun Chao <bluebat@member.fsf.org>, 2009, 2013. +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: flex 2.5.37\n" +#~ "Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2017-05-06 10:49-0400\n" "PO-Revision-Date: 2013-02-12 23:23+0800\n" "Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n" diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index 1daa9f8..0000000 --- a/src/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.la -*.lo -*.o -config.h -config.h.in -flex -parse.c -parse.h -scan.c -skel.c -stage1scan.[cl] -stage1flex diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 0000000..d868c54 --- /dev/null +++ b/src/Makefile.in @@ -0,0 +1,1731 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = flex$(EXEEXT) +@ENABLE_BOOTSTRAP_TRUE@noinst_PROGRAMS = stage1flex$(EXEEXT) +@CROSS_TRUE@am__append_1 = \ +@CROSS_TRUE@ ../lib/malloc.c \ +@CROSS_TRUE@ ../lib/realloc.c + +subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libfl_la_LIBADD = +am_libfl_la_OBJECTS = libmain.lo libyywrap.lo +libfl_la_OBJECTS = $(am_libfl_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libfl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libfl_la_LDFLAGS) $(LDFLAGS) -o $@ +@ENABLE_LIBFL_TRUE@am_libfl_la_rpath = -rpath $(libdir) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +LIBOBJDIR = ../lib/ +am__objects_1 = flex-buf.$(OBJEXT) flex-ccl.$(OBJEXT) \ + flex-dfa.$(OBJEXT) flex-ecs.$(OBJEXT) flex-filter.$(OBJEXT) \ + flex-gen.$(OBJEXT) flex-main.$(OBJEXT) flex-misc.$(OBJEXT) \ + flex-nfa.$(OBJEXT) flex-options.$(OBJEXT) flex-parse.$(OBJEXT) \ + flex-regex.$(OBJEXT) flex-scanflags.$(OBJEXT) \ + flex-scanopt.$(OBJEXT) flex-skel.$(OBJEXT) flex-sym.$(OBJEXT) \ + flex-tables.$(OBJEXT) flex-tables_shared.$(OBJEXT) \ + flex-tblcmp.$(OBJEXT) flex-yylex.$(OBJEXT) +am_flex_OBJECTS = $(am__objects_1) +nodist_flex_OBJECTS = flex-stage1scan.$(OBJEXT) +flex_OBJECTS = $(am_flex_OBJECTS) $(nodist_flex_OBJECTS) +flex_LDADD = $(LDADD) +flex_DEPENDENCIES = $(LIBOBJS) +flex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(flex_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am__stage1flex_SOURCES_DIST = scan.l buf.c ccl.c dfa.c ecs.c filter.c \ + flexdef.h flexint.h gen.c main.c misc.c nfa.c options.c \ + options.h parse.y regex.c scanflags.c scanopt.c scanopt.h \ + skel.c sym.c tables.c tables.h tables_shared.c tables_shared.h \ + tblcmp.c version.h yylex.c ../lib/malloc.c ../lib/realloc.c +am__objects_2 = stage1flex-buf.$(OBJEXT) stage1flex-ccl.$(OBJEXT) \ + stage1flex-dfa.$(OBJEXT) stage1flex-ecs.$(OBJEXT) \ + stage1flex-filter.$(OBJEXT) stage1flex-gen.$(OBJEXT) \ + stage1flex-main.$(OBJEXT) stage1flex-misc.$(OBJEXT) \ + stage1flex-nfa.$(OBJEXT) stage1flex-options.$(OBJEXT) \ + stage1flex-parse.$(OBJEXT) stage1flex-regex.$(OBJEXT) \ + stage1flex-scanflags.$(OBJEXT) stage1flex-scanopt.$(OBJEXT) \ + stage1flex-skel.$(OBJEXT) stage1flex-sym.$(OBJEXT) \ + stage1flex-tables.$(OBJEXT) stage1flex-tables_shared.$(OBJEXT) \ + stage1flex-tblcmp.$(OBJEXT) stage1flex-yylex.$(OBJEXT) +am__dirstamp = $(am__leading_dot)dirstamp +@CROSS_TRUE@am__objects_3 = ../lib/stage1flex-malloc.$(OBJEXT) \ +@CROSS_TRUE@ ../lib/stage1flex-realloc.$(OBJEXT) +am_stage1flex_OBJECTS = stage1flex-scan.$(OBJEXT) $(am__objects_2) \ + $(am__objects_3) +stage1flex_OBJECTS = $(am_stage1flex_OBJECTS) +am__DEPENDENCIES_1 = $(LIBOBJS) +@CROSS_FALSE@stage1flex_DEPENDENCIES = $(am__DEPENDENCIES_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) +LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) +AM_V_LEX = $(am__v_LEX_@AM_V@) +am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) +am__v_LEX_0 = @echo " LEX " $@; +am__v_LEX_1 = +YLWRAP = $(top_srcdir)/build-aux/ylwrap +am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ + -e s/c++$$/h++/ -e s/c$$/h/ +YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) +LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) +AM_V_YACC = $(am__v_YACC_@AM_V@) +am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) +am__v_YACC_0 = @echo " YACC " $@; +am__v_YACC_1 = +SOURCES = $(libfl_la_SOURCES) $(flex_SOURCES) $(nodist_flex_SOURCES) \ + $(stage1flex_SOURCES) +DIST_SOURCES = $(libfl_la_SOURCES) $(flex_SOURCES) \ + $(am__stage1flex_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \ + $(top_srcdir)/lib/malloc.c $(top_srcdir)/lib/realloc.c parse.c \ + parse.h scan.c +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_EXEEXT = @BUILD_EXEEXT@ +BUILD_OBJEXT = @BUILD_OBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HELP2MAN = @HELP2MAN@ +INDENT = @INDENT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +M4 = @M4@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEXI2DVI = @TEXI2DVI@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARNINGFLAGS = @WARNINGFLAGS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_YFLAGS = -d +AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" +m4 = @M4@ +@ENABLE_LIBFL_TRUE@lib_LTLIBRARIES = libfl.la +libfl_la_SOURCES = \ + libmain.c \ + libyywrap.c + +libfl_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ +stage1flex_SOURCES = scan.l $(COMMON_SOURCES) $(am__append_1) +@CROSS_FALSE@stage1flex_LDADD = $(LDADD) +@CROSS_TRUE@stage1flex_LDADD = +@CROSS_FALSE@stage1flex_LINK = $(LINK) +@CROSS_TRUE@stage1flex_LINK = $(LIBTOOL) --tag=CC --mode=link $(CC_FOR_BUILD) \ +@CROSS_TRUE@ $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ + +@CROSS_FALSE@stage1flex_CFLAGS = $(AM_CFLAGS) +flex_SOURCES = \ + $(COMMON_SOURCES) + +nodist_flex_SOURCES = \ + stage1scan.c + +flex_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS) +COMMON_SOURCES = \ + buf.c \ + ccl.c \ + dfa.c \ + ecs.c \ + filter.c \ + flexdef.h \ + flexint.h \ + gen.c \ + main.c \ + misc.c \ + nfa.c \ + options.c \ + options.h \ + parse.y \ + regex.c \ + scanflags.c \ + scanopt.c \ + scanopt.h \ + skel.c \ + sym.c \ + tables.c \ + tables.h \ + tables_shared.c \ + tables_shared.h \ + tblcmp.c \ + version.h \ + yylex.c + +LDADD = $(LIBOBJS) @LIBINTL@ +include_HEADERS = \ + FlexLexer.h + +EXTRA_DIST = \ + flex.skl \ + mkskel.sh \ + gettext.h + +CLEANFILES = stage1scan.c stage1flex$(EXEEXT) +MAINTAINERCLEANFILES = skel.c + +# Run GNU indent on sources. Don't run this unless all the sources compile cleanly. +# +# Whole idea: +# 1. Check for .indent.pro, otherwise indent will use unknown +# settings, or worse, the GNU defaults.) +# 2. Check that this is GNU indent. +# 3. Make sure to process only the NON-generated .c and .h files. +# 4. Run indent twice per file. The first time is a test. +# Otherwise, indent overwrites your file even if it fails! +indentfiles = \ + buf.c \ + ccl.c \ + dfa.c \ + ecs.c \ + scanflags.c \ + filter.c \ + flexdef.h \ + gen.c \ + libmain.c \ + libyywrap.c \ + main.c \ + misc.c \ + nfa.c \ + options.c \ + options.h \ + regex.c \ + scanopt.c \ + scanopt.h \ + sym.c \ + tables.c \ + tables.h \ + tables_shared.c \ + tables_shared.h \ + tblcmp.c + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .l .lo .o .obj .y +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status src/config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libfl.la: $(libfl_la_OBJECTS) $(libfl_la_DEPENDENCIES) $(EXTRA_libfl_la_DEPENDENCIES) + $(AM_V_CCLD)$(libfl_la_LINK) $(am_libfl_la_rpath) $(libfl_la_OBJECTS) $(libfl_la_LIBADD) $(LIBS) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +installcheck-binPROGRAMS: $(bin_PROGRAMS) + bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \ + case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \ + *" $$p "* | *" $(srcdir)/$$p "*) continue;; \ + esac; \ + f=`echo "$$p" | \ + sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + for opt in --help --version; do \ + if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \ + 2>c$${pid}_.err </dev/null \ + && test -n "`cat c$${pid}_.out`" \ + && test -z "`cat c$${pid}_.err`"; then :; \ + else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \ + done; \ + done; rm -f c$${pid}_.???; exit $$bad + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +parse.h: parse.c + @if test ! -f $@; then rm -f parse.c; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) parse.c; else :; fi + +flex$(EXEEXT): $(flex_OBJECTS) $(flex_DEPENDENCIES) $(EXTRA_flex_DEPENDENCIES) + @rm -f flex$(EXEEXT) + $(AM_V_CCLD)$(flex_LINK) $(flex_OBJECTS) $(flex_LDADD) $(LIBS) +../lib/$(am__dirstamp): + @$(MKDIR_P) ../lib + @: > ../lib/$(am__dirstamp) +../lib/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../lib/$(DEPDIR) + @: > ../lib/$(DEPDIR)/$(am__dirstamp) +../lib/stage1flex-malloc.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) +../lib/stage1flex-realloc.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) + +stage1flex$(EXEEXT): $(stage1flex_OBJECTS) $(stage1flex_DEPENDENCIES) $(EXTRA_stage1flex_DEPENDENCIES) + @rm -f stage1flex$(EXEEXT) + $(AM_V_GEN)$(stage1flex_LINK) $(stage1flex_OBJECTS) $(stage1flex_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f ../lib/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/malloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/realloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/stage1flex-malloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/stage1flex-realloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-buf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-ccl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-dfa.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-ecs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-filter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-gen.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-misc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-nfa.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-options.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-parse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-regex.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-scanflags.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-scanopt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-skel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-stage1scan.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-sym.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-tables.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-tables_shared.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-tblcmp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flex-yylex.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmain.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyywrap.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-buf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-ccl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-dfa.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-ecs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-filter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-gen.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-misc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-nfa.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-options.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-parse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-regex.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-scan.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-scanflags.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-scanopt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-skel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-sym.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-tables.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-tables_shared.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-tblcmp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1flex-yylex.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +flex-buf.o: buf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-buf.o -MD -MP -MF $(DEPDIR)/flex-buf.Tpo -c -o flex-buf.o `test -f 'buf.c' || echo '$(srcdir)/'`buf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-buf.Tpo $(DEPDIR)/flex-buf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='buf.c' object='flex-buf.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-buf.o `test -f 'buf.c' || echo '$(srcdir)/'`buf.c + +flex-buf.obj: buf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-buf.obj -MD -MP -MF $(DEPDIR)/flex-buf.Tpo -c -o flex-buf.obj `if test -f 'buf.c'; then $(CYGPATH_W) 'buf.c'; else $(CYGPATH_W) '$(srcdir)/buf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-buf.Tpo $(DEPDIR)/flex-buf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='buf.c' object='flex-buf.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-buf.obj `if test -f 'buf.c'; then $(CYGPATH_W) 'buf.c'; else $(CYGPATH_W) '$(srcdir)/buf.c'; fi` + +flex-ccl.o: ccl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-ccl.o -MD -MP -MF $(DEPDIR)/flex-ccl.Tpo -c -o flex-ccl.o `test -f 'ccl.c' || echo '$(srcdir)/'`ccl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-ccl.Tpo $(DEPDIR)/flex-ccl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ccl.c' object='flex-ccl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-ccl.o `test -f 'ccl.c' || echo '$(srcdir)/'`ccl.c + +flex-ccl.obj: ccl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-ccl.obj -MD -MP -MF $(DEPDIR)/flex-ccl.Tpo -c -o flex-ccl.obj `if test -f 'ccl.c'; then $(CYGPATH_W) 'ccl.c'; else $(CYGPATH_W) '$(srcdir)/ccl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-ccl.Tpo $(DEPDIR)/flex-ccl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ccl.c' object='flex-ccl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-ccl.obj `if test -f 'ccl.c'; then $(CYGPATH_W) 'ccl.c'; else $(CYGPATH_W) '$(srcdir)/ccl.c'; fi` + +flex-dfa.o: dfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-dfa.o -MD -MP -MF $(DEPDIR)/flex-dfa.Tpo -c -o flex-dfa.o `test -f 'dfa.c' || echo '$(srcdir)/'`dfa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-dfa.Tpo $(DEPDIR)/flex-dfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dfa.c' object='flex-dfa.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-dfa.o `test -f 'dfa.c' || echo '$(srcdir)/'`dfa.c + +flex-dfa.obj: dfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-dfa.obj -MD -MP -MF $(DEPDIR)/flex-dfa.Tpo -c -o flex-dfa.obj `if test -f 'dfa.c'; then $(CYGPATH_W) 'dfa.c'; else $(CYGPATH_W) '$(srcdir)/dfa.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-dfa.Tpo $(DEPDIR)/flex-dfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dfa.c' object='flex-dfa.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-dfa.obj `if test -f 'dfa.c'; then $(CYGPATH_W) 'dfa.c'; else $(CYGPATH_W) '$(srcdir)/dfa.c'; fi` + +flex-ecs.o: ecs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-ecs.o -MD -MP -MF $(DEPDIR)/flex-ecs.Tpo -c -o flex-ecs.o `test -f 'ecs.c' || echo '$(srcdir)/'`ecs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-ecs.Tpo $(DEPDIR)/flex-ecs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ecs.c' object='flex-ecs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-ecs.o `test -f 'ecs.c' || echo '$(srcdir)/'`ecs.c + +flex-ecs.obj: ecs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-ecs.obj -MD -MP -MF $(DEPDIR)/flex-ecs.Tpo -c -o flex-ecs.obj `if test -f 'ecs.c'; then $(CYGPATH_W) 'ecs.c'; else $(CYGPATH_W) '$(srcdir)/ecs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-ecs.Tpo $(DEPDIR)/flex-ecs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ecs.c' object='flex-ecs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-ecs.obj `if test -f 'ecs.c'; then $(CYGPATH_W) 'ecs.c'; else $(CYGPATH_W) '$(srcdir)/ecs.c'; fi` + +flex-filter.o: filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-filter.o -MD -MP -MF $(DEPDIR)/flex-filter.Tpo -c -o flex-filter.o `test -f 'filter.c' || echo '$(srcdir)/'`filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-filter.Tpo $(DEPDIR)/flex-filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter.c' object='flex-filter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-filter.o `test -f 'filter.c' || echo '$(srcdir)/'`filter.c + +flex-filter.obj: filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-filter.obj -MD -MP -MF $(DEPDIR)/flex-filter.Tpo -c -o flex-filter.obj `if test -f 'filter.c'; then $(CYGPATH_W) 'filter.c'; else $(CYGPATH_W) '$(srcdir)/filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-filter.Tpo $(DEPDIR)/flex-filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter.c' object='flex-filter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-filter.obj `if test -f 'filter.c'; then $(CYGPATH_W) 'filter.c'; else $(CYGPATH_W) '$(srcdir)/filter.c'; fi` + +flex-gen.o: gen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-gen.o -MD -MP -MF $(DEPDIR)/flex-gen.Tpo -c -o flex-gen.o `test -f 'gen.c' || echo '$(srcdir)/'`gen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-gen.Tpo $(DEPDIR)/flex-gen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen.c' object='flex-gen.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-gen.o `test -f 'gen.c' || echo '$(srcdir)/'`gen.c + +flex-gen.obj: gen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-gen.obj -MD -MP -MF $(DEPDIR)/flex-gen.Tpo -c -o flex-gen.obj `if test -f 'gen.c'; then $(CYGPATH_W) 'gen.c'; else $(CYGPATH_W) '$(srcdir)/gen.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-gen.Tpo $(DEPDIR)/flex-gen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen.c' object='flex-gen.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-gen.obj `if test -f 'gen.c'; then $(CYGPATH_W) 'gen.c'; else $(CYGPATH_W) '$(srcdir)/gen.c'; fi` + +flex-main.o: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-main.o -MD -MP -MF $(DEPDIR)/flex-main.Tpo -c -o flex-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-main.Tpo $(DEPDIR)/flex-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='flex-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c + +flex-main.obj: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-main.obj -MD -MP -MF $(DEPDIR)/flex-main.Tpo -c -o flex-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-main.Tpo $(DEPDIR)/flex-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='flex-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` + +flex-misc.o: misc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-misc.o -MD -MP -MF $(DEPDIR)/flex-misc.Tpo -c -o flex-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-misc.Tpo $(DEPDIR)/flex-misc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='flex-misc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c + +flex-misc.obj: misc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-misc.obj -MD -MP -MF $(DEPDIR)/flex-misc.Tpo -c -o flex-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-misc.Tpo $(DEPDIR)/flex-misc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='flex-misc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` + +flex-nfa.o: nfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-nfa.o -MD -MP -MF $(DEPDIR)/flex-nfa.Tpo -c -o flex-nfa.o `test -f 'nfa.c' || echo '$(srcdir)/'`nfa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-nfa.Tpo $(DEPDIR)/flex-nfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nfa.c' object='flex-nfa.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-nfa.o `test -f 'nfa.c' || echo '$(srcdir)/'`nfa.c + +flex-nfa.obj: nfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-nfa.obj -MD -MP -MF $(DEPDIR)/flex-nfa.Tpo -c -o flex-nfa.obj `if test -f 'nfa.c'; then $(CYGPATH_W) 'nfa.c'; else $(CYGPATH_W) '$(srcdir)/nfa.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-nfa.Tpo $(DEPDIR)/flex-nfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nfa.c' object='flex-nfa.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-nfa.obj `if test -f 'nfa.c'; then $(CYGPATH_W) 'nfa.c'; else $(CYGPATH_W) '$(srcdir)/nfa.c'; fi` + +flex-options.o: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-options.o -MD -MP -MF $(DEPDIR)/flex-options.Tpo -c -o flex-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-options.Tpo $(DEPDIR)/flex-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='flex-options.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c + +flex-options.obj: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-options.obj -MD -MP -MF $(DEPDIR)/flex-options.Tpo -c -o flex-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-options.Tpo $(DEPDIR)/flex-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='flex-options.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` + +flex-parse.o: parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-parse.o -MD -MP -MF $(DEPDIR)/flex-parse.Tpo -c -o flex-parse.o `test -f 'parse.c' || echo '$(srcdir)/'`parse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-parse.Tpo $(DEPDIR)/flex-parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse.c' object='flex-parse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-parse.o `test -f 'parse.c' || echo '$(srcdir)/'`parse.c + +flex-parse.obj: parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-parse.obj -MD -MP -MF $(DEPDIR)/flex-parse.Tpo -c -o flex-parse.obj `if test -f 'parse.c'; then $(CYGPATH_W) 'parse.c'; else $(CYGPATH_W) '$(srcdir)/parse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-parse.Tpo $(DEPDIR)/flex-parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse.c' object='flex-parse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-parse.obj `if test -f 'parse.c'; then $(CYGPATH_W) 'parse.c'; else $(CYGPATH_W) '$(srcdir)/parse.c'; fi` + +flex-regex.o: regex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-regex.o -MD -MP -MF $(DEPDIR)/flex-regex.Tpo -c -o flex-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-regex.Tpo $(DEPDIR)/flex-regex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='flex-regex.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c + +flex-regex.obj: regex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-regex.obj -MD -MP -MF $(DEPDIR)/flex-regex.Tpo -c -o flex-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-regex.Tpo $(DEPDIR)/flex-regex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='flex-regex.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` + +flex-scanflags.o: scanflags.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-scanflags.o -MD -MP -MF $(DEPDIR)/flex-scanflags.Tpo -c -o flex-scanflags.o `test -f 'scanflags.c' || echo '$(srcdir)/'`scanflags.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-scanflags.Tpo $(DEPDIR)/flex-scanflags.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanflags.c' object='flex-scanflags.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-scanflags.o `test -f 'scanflags.c' || echo '$(srcdir)/'`scanflags.c + +flex-scanflags.obj: scanflags.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-scanflags.obj -MD -MP -MF $(DEPDIR)/flex-scanflags.Tpo -c -o flex-scanflags.obj `if test -f 'scanflags.c'; then $(CYGPATH_W) 'scanflags.c'; else $(CYGPATH_W) '$(srcdir)/scanflags.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-scanflags.Tpo $(DEPDIR)/flex-scanflags.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanflags.c' object='flex-scanflags.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-scanflags.obj `if test -f 'scanflags.c'; then $(CYGPATH_W) 'scanflags.c'; else $(CYGPATH_W) '$(srcdir)/scanflags.c'; fi` + +flex-scanopt.o: scanopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-scanopt.o -MD -MP -MF $(DEPDIR)/flex-scanopt.Tpo -c -o flex-scanopt.o `test -f 'scanopt.c' || echo '$(srcdir)/'`scanopt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-scanopt.Tpo $(DEPDIR)/flex-scanopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanopt.c' object='flex-scanopt.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-scanopt.o `test -f 'scanopt.c' || echo '$(srcdir)/'`scanopt.c + +flex-scanopt.obj: scanopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-scanopt.obj -MD -MP -MF $(DEPDIR)/flex-scanopt.Tpo -c -o flex-scanopt.obj `if test -f 'scanopt.c'; then $(CYGPATH_W) 'scanopt.c'; else $(CYGPATH_W) '$(srcdir)/scanopt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-scanopt.Tpo $(DEPDIR)/flex-scanopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanopt.c' object='flex-scanopt.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-scanopt.obj `if test -f 'scanopt.c'; then $(CYGPATH_W) 'scanopt.c'; else $(CYGPATH_W) '$(srcdir)/scanopt.c'; fi` + +flex-skel.o: skel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-skel.o -MD -MP -MF $(DEPDIR)/flex-skel.Tpo -c -o flex-skel.o `test -f 'skel.c' || echo '$(srcdir)/'`skel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-skel.Tpo $(DEPDIR)/flex-skel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='skel.c' object='flex-skel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-skel.o `test -f 'skel.c' || echo '$(srcdir)/'`skel.c + +flex-skel.obj: skel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-skel.obj -MD -MP -MF $(DEPDIR)/flex-skel.Tpo -c -o flex-skel.obj `if test -f 'skel.c'; then $(CYGPATH_W) 'skel.c'; else $(CYGPATH_W) '$(srcdir)/skel.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-skel.Tpo $(DEPDIR)/flex-skel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='skel.c' object='flex-skel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-skel.obj `if test -f 'skel.c'; then $(CYGPATH_W) 'skel.c'; else $(CYGPATH_W) '$(srcdir)/skel.c'; fi` + +flex-sym.o: sym.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-sym.o -MD -MP -MF $(DEPDIR)/flex-sym.Tpo -c -o flex-sym.o `test -f 'sym.c' || echo '$(srcdir)/'`sym.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-sym.Tpo $(DEPDIR)/flex-sym.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sym.c' object='flex-sym.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-sym.o `test -f 'sym.c' || echo '$(srcdir)/'`sym.c + +flex-sym.obj: sym.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-sym.obj -MD -MP -MF $(DEPDIR)/flex-sym.Tpo -c -o flex-sym.obj `if test -f 'sym.c'; then $(CYGPATH_W) 'sym.c'; else $(CYGPATH_W) '$(srcdir)/sym.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-sym.Tpo $(DEPDIR)/flex-sym.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sym.c' object='flex-sym.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-sym.obj `if test -f 'sym.c'; then $(CYGPATH_W) 'sym.c'; else $(CYGPATH_W) '$(srcdir)/sym.c'; fi` + +flex-tables.o: tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-tables.o -MD -MP -MF $(DEPDIR)/flex-tables.Tpo -c -o flex-tables.o `test -f 'tables.c' || echo '$(srcdir)/'`tables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-tables.Tpo $(DEPDIR)/flex-tables.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables.c' object='flex-tables.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-tables.o `test -f 'tables.c' || echo '$(srcdir)/'`tables.c + +flex-tables.obj: tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-tables.obj -MD -MP -MF $(DEPDIR)/flex-tables.Tpo -c -o flex-tables.obj `if test -f 'tables.c'; then $(CYGPATH_W) 'tables.c'; else $(CYGPATH_W) '$(srcdir)/tables.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-tables.Tpo $(DEPDIR)/flex-tables.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables.c' object='flex-tables.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-tables.obj `if test -f 'tables.c'; then $(CYGPATH_W) 'tables.c'; else $(CYGPATH_W) '$(srcdir)/tables.c'; fi` + +flex-tables_shared.o: tables_shared.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-tables_shared.o -MD -MP -MF $(DEPDIR)/flex-tables_shared.Tpo -c -o flex-tables_shared.o `test -f 'tables_shared.c' || echo '$(srcdir)/'`tables_shared.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-tables_shared.Tpo $(DEPDIR)/flex-tables_shared.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables_shared.c' object='flex-tables_shared.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-tables_shared.o `test -f 'tables_shared.c' || echo '$(srcdir)/'`tables_shared.c + +flex-tables_shared.obj: tables_shared.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-tables_shared.obj -MD -MP -MF $(DEPDIR)/flex-tables_shared.Tpo -c -o flex-tables_shared.obj `if test -f 'tables_shared.c'; then $(CYGPATH_W) 'tables_shared.c'; else $(CYGPATH_W) '$(srcdir)/tables_shared.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-tables_shared.Tpo $(DEPDIR)/flex-tables_shared.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables_shared.c' object='flex-tables_shared.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-tables_shared.obj `if test -f 'tables_shared.c'; then $(CYGPATH_W) 'tables_shared.c'; else $(CYGPATH_W) '$(srcdir)/tables_shared.c'; fi` + +flex-tblcmp.o: tblcmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-tblcmp.o -MD -MP -MF $(DEPDIR)/flex-tblcmp.Tpo -c -o flex-tblcmp.o `test -f 'tblcmp.c' || echo '$(srcdir)/'`tblcmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-tblcmp.Tpo $(DEPDIR)/flex-tblcmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tblcmp.c' object='flex-tblcmp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-tblcmp.o `test -f 'tblcmp.c' || echo '$(srcdir)/'`tblcmp.c + +flex-tblcmp.obj: tblcmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-tblcmp.obj -MD -MP -MF $(DEPDIR)/flex-tblcmp.Tpo -c -o flex-tblcmp.obj `if test -f 'tblcmp.c'; then $(CYGPATH_W) 'tblcmp.c'; else $(CYGPATH_W) '$(srcdir)/tblcmp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-tblcmp.Tpo $(DEPDIR)/flex-tblcmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tblcmp.c' object='flex-tblcmp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-tblcmp.obj `if test -f 'tblcmp.c'; then $(CYGPATH_W) 'tblcmp.c'; else $(CYGPATH_W) '$(srcdir)/tblcmp.c'; fi` + +flex-yylex.o: yylex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-yylex.o -MD -MP -MF $(DEPDIR)/flex-yylex.Tpo -c -o flex-yylex.o `test -f 'yylex.c' || echo '$(srcdir)/'`yylex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-yylex.Tpo $(DEPDIR)/flex-yylex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yylex.c' object='flex-yylex.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-yylex.o `test -f 'yylex.c' || echo '$(srcdir)/'`yylex.c + +flex-yylex.obj: yylex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-yylex.obj -MD -MP -MF $(DEPDIR)/flex-yylex.Tpo -c -o flex-yylex.obj `if test -f 'yylex.c'; then $(CYGPATH_W) 'yylex.c'; else $(CYGPATH_W) '$(srcdir)/yylex.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-yylex.Tpo $(DEPDIR)/flex-yylex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yylex.c' object='flex-yylex.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-yylex.obj `if test -f 'yylex.c'; then $(CYGPATH_W) 'yylex.c'; else $(CYGPATH_W) '$(srcdir)/yylex.c'; fi` + +flex-stage1scan.o: stage1scan.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-stage1scan.o -MD -MP -MF $(DEPDIR)/flex-stage1scan.Tpo -c -o flex-stage1scan.o `test -f 'stage1scan.c' || echo '$(srcdir)/'`stage1scan.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-stage1scan.Tpo $(DEPDIR)/flex-stage1scan.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stage1scan.c' object='flex-stage1scan.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-stage1scan.o `test -f 'stage1scan.c' || echo '$(srcdir)/'`stage1scan.c + +flex-stage1scan.obj: stage1scan.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -MT flex-stage1scan.obj -MD -MP -MF $(DEPDIR)/flex-stage1scan.Tpo -c -o flex-stage1scan.obj `if test -f 'stage1scan.c'; then $(CYGPATH_W) 'stage1scan.c'; else $(CYGPATH_W) '$(srcdir)/stage1scan.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flex-stage1scan.Tpo $(DEPDIR)/flex-stage1scan.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stage1scan.c' object='flex-stage1scan.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(flex_CFLAGS) $(CFLAGS) -c -o flex-stage1scan.obj `if test -f 'stage1scan.c'; then $(CYGPATH_W) 'stage1scan.c'; else $(CYGPATH_W) '$(srcdir)/stage1scan.c'; fi` + +stage1flex-scan.o: scan.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-scan.o -MD -MP -MF $(DEPDIR)/stage1flex-scan.Tpo -c -o stage1flex-scan.o `test -f 'scan.c' || echo '$(srcdir)/'`scan.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-scan.Tpo $(DEPDIR)/stage1flex-scan.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scan.c' object='stage1flex-scan.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-scan.o `test -f 'scan.c' || echo '$(srcdir)/'`scan.c + +stage1flex-scan.obj: scan.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-scan.obj -MD -MP -MF $(DEPDIR)/stage1flex-scan.Tpo -c -o stage1flex-scan.obj `if test -f 'scan.c'; then $(CYGPATH_W) 'scan.c'; else $(CYGPATH_W) '$(srcdir)/scan.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-scan.Tpo $(DEPDIR)/stage1flex-scan.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scan.c' object='stage1flex-scan.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-scan.obj `if test -f 'scan.c'; then $(CYGPATH_W) 'scan.c'; else $(CYGPATH_W) '$(srcdir)/scan.c'; fi` + +stage1flex-buf.o: buf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-buf.o -MD -MP -MF $(DEPDIR)/stage1flex-buf.Tpo -c -o stage1flex-buf.o `test -f 'buf.c' || echo '$(srcdir)/'`buf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-buf.Tpo $(DEPDIR)/stage1flex-buf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='buf.c' object='stage1flex-buf.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-buf.o `test -f 'buf.c' || echo '$(srcdir)/'`buf.c + +stage1flex-buf.obj: buf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-buf.obj -MD -MP -MF $(DEPDIR)/stage1flex-buf.Tpo -c -o stage1flex-buf.obj `if test -f 'buf.c'; then $(CYGPATH_W) 'buf.c'; else $(CYGPATH_W) '$(srcdir)/buf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-buf.Tpo $(DEPDIR)/stage1flex-buf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='buf.c' object='stage1flex-buf.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-buf.obj `if test -f 'buf.c'; then $(CYGPATH_W) 'buf.c'; else $(CYGPATH_W) '$(srcdir)/buf.c'; fi` + +stage1flex-ccl.o: ccl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-ccl.o -MD -MP -MF $(DEPDIR)/stage1flex-ccl.Tpo -c -o stage1flex-ccl.o `test -f 'ccl.c' || echo '$(srcdir)/'`ccl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-ccl.Tpo $(DEPDIR)/stage1flex-ccl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ccl.c' object='stage1flex-ccl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-ccl.o `test -f 'ccl.c' || echo '$(srcdir)/'`ccl.c + +stage1flex-ccl.obj: ccl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-ccl.obj -MD -MP -MF $(DEPDIR)/stage1flex-ccl.Tpo -c -o stage1flex-ccl.obj `if test -f 'ccl.c'; then $(CYGPATH_W) 'ccl.c'; else $(CYGPATH_W) '$(srcdir)/ccl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-ccl.Tpo $(DEPDIR)/stage1flex-ccl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ccl.c' object='stage1flex-ccl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-ccl.obj `if test -f 'ccl.c'; then $(CYGPATH_W) 'ccl.c'; else $(CYGPATH_W) '$(srcdir)/ccl.c'; fi` + +stage1flex-dfa.o: dfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-dfa.o -MD -MP -MF $(DEPDIR)/stage1flex-dfa.Tpo -c -o stage1flex-dfa.o `test -f 'dfa.c' || echo '$(srcdir)/'`dfa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-dfa.Tpo $(DEPDIR)/stage1flex-dfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dfa.c' object='stage1flex-dfa.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-dfa.o `test -f 'dfa.c' || echo '$(srcdir)/'`dfa.c + +stage1flex-dfa.obj: dfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-dfa.obj -MD -MP -MF $(DEPDIR)/stage1flex-dfa.Tpo -c -o stage1flex-dfa.obj `if test -f 'dfa.c'; then $(CYGPATH_W) 'dfa.c'; else $(CYGPATH_W) '$(srcdir)/dfa.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-dfa.Tpo $(DEPDIR)/stage1flex-dfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dfa.c' object='stage1flex-dfa.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-dfa.obj `if test -f 'dfa.c'; then $(CYGPATH_W) 'dfa.c'; else $(CYGPATH_W) '$(srcdir)/dfa.c'; fi` + +stage1flex-ecs.o: ecs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-ecs.o -MD -MP -MF $(DEPDIR)/stage1flex-ecs.Tpo -c -o stage1flex-ecs.o `test -f 'ecs.c' || echo '$(srcdir)/'`ecs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-ecs.Tpo $(DEPDIR)/stage1flex-ecs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ecs.c' object='stage1flex-ecs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-ecs.o `test -f 'ecs.c' || echo '$(srcdir)/'`ecs.c + +stage1flex-ecs.obj: ecs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-ecs.obj -MD -MP -MF $(DEPDIR)/stage1flex-ecs.Tpo -c -o stage1flex-ecs.obj `if test -f 'ecs.c'; then $(CYGPATH_W) 'ecs.c'; else $(CYGPATH_W) '$(srcdir)/ecs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-ecs.Tpo $(DEPDIR)/stage1flex-ecs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ecs.c' object='stage1flex-ecs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-ecs.obj `if test -f 'ecs.c'; then $(CYGPATH_W) 'ecs.c'; else $(CYGPATH_W) '$(srcdir)/ecs.c'; fi` + +stage1flex-filter.o: filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-filter.o -MD -MP -MF $(DEPDIR)/stage1flex-filter.Tpo -c -o stage1flex-filter.o `test -f 'filter.c' || echo '$(srcdir)/'`filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-filter.Tpo $(DEPDIR)/stage1flex-filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter.c' object='stage1flex-filter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-filter.o `test -f 'filter.c' || echo '$(srcdir)/'`filter.c + +stage1flex-filter.obj: filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-filter.obj -MD -MP -MF $(DEPDIR)/stage1flex-filter.Tpo -c -o stage1flex-filter.obj `if test -f 'filter.c'; then $(CYGPATH_W) 'filter.c'; else $(CYGPATH_W) '$(srcdir)/filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-filter.Tpo $(DEPDIR)/stage1flex-filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter.c' object='stage1flex-filter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-filter.obj `if test -f 'filter.c'; then $(CYGPATH_W) 'filter.c'; else $(CYGPATH_W) '$(srcdir)/filter.c'; fi` + +stage1flex-gen.o: gen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-gen.o -MD -MP -MF $(DEPDIR)/stage1flex-gen.Tpo -c -o stage1flex-gen.o `test -f 'gen.c' || echo '$(srcdir)/'`gen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-gen.Tpo $(DEPDIR)/stage1flex-gen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen.c' object='stage1flex-gen.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-gen.o `test -f 'gen.c' || echo '$(srcdir)/'`gen.c + +stage1flex-gen.obj: gen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-gen.obj -MD -MP -MF $(DEPDIR)/stage1flex-gen.Tpo -c -o stage1flex-gen.obj `if test -f 'gen.c'; then $(CYGPATH_W) 'gen.c'; else $(CYGPATH_W) '$(srcdir)/gen.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-gen.Tpo $(DEPDIR)/stage1flex-gen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen.c' object='stage1flex-gen.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-gen.obj `if test -f 'gen.c'; then $(CYGPATH_W) 'gen.c'; else $(CYGPATH_W) '$(srcdir)/gen.c'; fi` + +stage1flex-main.o: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-main.o -MD -MP -MF $(DEPDIR)/stage1flex-main.Tpo -c -o stage1flex-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-main.Tpo $(DEPDIR)/stage1flex-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='stage1flex-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c + +stage1flex-main.obj: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-main.obj -MD -MP -MF $(DEPDIR)/stage1flex-main.Tpo -c -o stage1flex-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-main.Tpo $(DEPDIR)/stage1flex-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='stage1flex-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` + +stage1flex-misc.o: misc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-misc.o -MD -MP -MF $(DEPDIR)/stage1flex-misc.Tpo -c -o stage1flex-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-misc.Tpo $(DEPDIR)/stage1flex-misc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='stage1flex-misc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c + +stage1flex-misc.obj: misc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-misc.obj -MD -MP -MF $(DEPDIR)/stage1flex-misc.Tpo -c -o stage1flex-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-misc.Tpo $(DEPDIR)/stage1flex-misc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='stage1flex-misc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` + +stage1flex-nfa.o: nfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-nfa.o -MD -MP -MF $(DEPDIR)/stage1flex-nfa.Tpo -c -o stage1flex-nfa.o `test -f 'nfa.c' || echo '$(srcdir)/'`nfa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-nfa.Tpo $(DEPDIR)/stage1flex-nfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nfa.c' object='stage1flex-nfa.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-nfa.o `test -f 'nfa.c' || echo '$(srcdir)/'`nfa.c + +stage1flex-nfa.obj: nfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-nfa.obj -MD -MP -MF $(DEPDIR)/stage1flex-nfa.Tpo -c -o stage1flex-nfa.obj `if test -f 'nfa.c'; then $(CYGPATH_W) 'nfa.c'; else $(CYGPATH_W) '$(srcdir)/nfa.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-nfa.Tpo $(DEPDIR)/stage1flex-nfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nfa.c' object='stage1flex-nfa.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-nfa.obj `if test -f 'nfa.c'; then $(CYGPATH_W) 'nfa.c'; else $(CYGPATH_W) '$(srcdir)/nfa.c'; fi` + +stage1flex-options.o: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-options.o -MD -MP -MF $(DEPDIR)/stage1flex-options.Tpo -c -o stage1flex-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-options.Tpo $(DEPDIR)/stage1flex-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='stage1flex-options.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c + +stage1flex-options.obj: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-options.obj -MD -MP -MF $(DEPDIR)/stage1flex-options.Tpo -c -o stage1flex-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-options.Tpo $(DEPDIR)/stage1flex-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='stage1flex-options.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` + +stage1flex-parse.o: parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-parse.o -MD -MP -MF $(DEPDIR)/stage1flex-parse.Tpo -c -o stage1flex-parse.o `test -f 'parse.c' || echo '$(srcdir)/'`parse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-parse.Tpo $(DEPDIR)/stage1flex-parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse.c' object='stage1flex-parse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-parse.o `test -f 'parse.c' || echo '$(srcdir)/'`parse.c + +stage1flex-parse.obj: parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-parse.obj -MD -MP -MF $(DEPDIR)/stage1flex-parse.Tpo -c -o stage1flex-parse.obj `if test -f 'parse.c'; then $(CYGPATH_W) 'parse.c'; else $(CYGPATH_W) '$(srcdir)/parse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-parse.Tpo $(DEPDIR)/stage1flex-parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse.c' object='stage1flex-parse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-parse.obj `if test -f 'parse.c'; then $(CYGPATH_W) 'parse.c'; else $(CYGPATH_W) '$(srcdir)/parse.c'; fi` + +stage1flex-regex.o: regex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-regex.o -MD -MP -MF $(DEPDIR)/stage1flex-regex.Tpo -c -o stage1flex-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-regex.Tpo $(DEPDIR)/stage1flex-regex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='stage1flex-regex.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c + +stage1flex-regex.obj: regex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-regex.obj -MD -MP -MF $(DEPDIR)/stage1flex-regex.Tpo -c -o stage1flex-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-regex.Tpo $(DEPDIR)/stage1flex-regex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='stage1flex-regex.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` + +stage1flex-scanflags.o: scanflags.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-scanflags.o -MD -MP -MF $(DEPDIR)/stage1flex-scanflags.Tpo -c -o stage1flex-scanflags.o `test -f 'scanflags.c' || echo '$(srcdir)/'`scanflags.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-scanflags.Tpo $(DEPDIR)/stage1flex-scanflags.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanflags.c' object='stage1flex-scanflags.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-scanflags.o `test -f 'scanflags.c' || echo '$(srcdir)/'`scanflags.c + +stage1flex-scanflags.obj: scanflags.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-scanflags.obj -MD -MP -MF $(DEPDIR)/stage1flex-scanflags.Tpo -c -o stage1flex-scanflags.obj `if test -f 'scanflags.c'; then $(CYGPATH_W) 'scanflags.c'; else $(CYGPATH_W) '$(srcdir)/scanflags.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-scanflags.Tpo $(DEPDIR)/stage1flex-scanflags.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanflags.c' object='stage1flex-scanflags.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-scanflags.obj `if test -f 'scanflags.c'; then $(CYGPATH_W) 'scanflags.c'; else $(CYGPATH_W) '$(srcdir)/scanflags.c'; fi` + +stage1flex-scanopt.o: scanopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-scanopt.o -MD -MP -MF $(DEPDIR)/stage1flex-scanopt.Tpo -c -o stage1flex-scanopt.o `test -f 'scanopt.c' || echo '$(srcdir)/'`scanopt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-scanopt.Tpo $(DEPDIR)/stage1flex-scanopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanopt.c' object='stage1flex-scanopt.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-scanopt.o `test -f 'scanopt.c' || echo '$(srcdir)/'`scanopt.c + +stage1flex-scanopt.obj: scanopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-scanopt.obj -MD -MP -MF $(DEPDIR)/stage1flex-scanopt.Tpo -c -o stage1flex-scanopt.obj `if test -f 'scanopt.c'; then $(CYGPATH_W) 'scanopt.c'; else $(CYGPATH_W) '$(srcdir)/scanopt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-scanopt.Tpo $(DEPDIR)/stage1flex-scanopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanopt.c' object='stage1flex-scanopt.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-scanopt.obj `if test -f 'scanopt.c'; then $(CYGPATH_W) 'scanopt.c'; else $(CYGPATH_W) '$(srcdir)/scanopt.c'; fi` + +stage1flex-skel.o: skel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-skel.o -MD -MP -MF $(DEPDIR)/stage1flex-skel.Tpo -c -o stage1flex-skel.o `test -f 'skel.c' || echo '$(srcdir)/'`skel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-skel.Tpo $(DEPDIR)/stage1flex-skel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='skel.c' object='stage1flex-skel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-skel.o `test -f 'skel.c' || echo '$(srcdir)/'`skel.c + +stage1flex-skel.obj: skel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-skel.obj -MD -MP -MF $(DEPDIR)/stage1flex-skel.Tpo -c -o stage1flex-skel.obj `if test -f 'skel.c'; then $(CYGPATH_W) 'skel.c'; else $(CYGPATH_W) '$(srcdir)/skel.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-skel.Tpo $(DEPDIR)/stage1flex-skel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='skel.c' object='stage1flex-skel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-skel.obj `if test -f 'skel.c'; then $(CYGPATH_W) 'skel.c'; else $(CYGPATH_W) '$(srcdir)/skel.c'; fi` + +stage1flex-sym.o: sym.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-sym.o -MD -MP -MF $(DEPDIR)/stage1flex-sym.Tpo -c -o stage1flex-sym.o `test -f 'sym.c' || echo '$(srcdir)/'`sym.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-sym.Tpo $(DEPDIR)/stage1flex-sym.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sym.c' object='stage1flex-sym.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-sym.o `test -f 'sym.c' || echo '$(srcdir)/'`sym.c + +stage1flex-sym.obj: sym.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-sym.obj -MD -MP -MF $(DEPDIR)/stage1flex-sym.Tpo -c -o stage1flex-sym.obj `if test -f 'sym.c'; then $(CYGPATH_W) 'sym.c'; else $(CYGPATH_W) '$(srcdir)/sym.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-sym.Tpo $(DEPDIR)/stage1flex-sym.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sym.c' object='stage1flex-sym.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-sym.obj `if test -f 'sym.c'; then $(CYGPATH_W) 'sym.c'; else $(CYGPATH_W) '$(srcdir)/sym.c'; fi` + +stage1flex-tables.o: tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-tables.o -MD -MP -MF $(DEPDIR)/stage1flex-tables.Tpo -c -o stage1flex-tables.o `test -f 'tables.c' || echo '$(srcdir)/'`tables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-tables.Tpo $(DEPDIR)/stage1flex-tables.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables.c' object='stage1flex-tables.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-tables.o `test -f 'tables.c' || echo '$(srcdir)/'`tables.c + +stage1flex-tables.obj: tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-tables.obj -MD -MP -MF $(DEPDIR)/stage1flex-tables.Tpo -c -o stage1flex-tables.obj `if test -f 'tables.c'; then $(CYGPATH_W) 'tables.c'; else $(CYGPATH_W) '$(srcdir)/tables.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-tables.Tpo $(DEPDIR)/stage1flex-tables.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables.c' object='stage1flex-tables.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-tables.obj `if test -f 'tables.c'; then $(CYGPATH_W) 'tables.c'; else $(CYGPATH_W) '$(srcdir)/tables.c'; fi` + +stage1flex-tables_shared.o: tables_shared.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-tables_shared.o -MD -MP -MF $(DEPDIR)/stage1flex-tables_shared.Tpo -c -o stage1flex-tables_shared.o `test -f 'tables_shared.c' || echo '$(srcdir)/'`tables_shared.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-tables_shared.Tpo $(DEPDIR)/stage1flex-tables_shared.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables_shared.c' object='stage1flex-tables_shared.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-tables_shared.o `test -f 'tables_shared.c' || echo '$(srcdir)/'`tables_shared.c + +stage1flex-tables_shared.obj: tables_shared.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-tables_shared.obj -MD -MP -MF $(DEPDIR)/stage1flex-tables_shared.Tpo -c -o stage1flex-tables_shared.obj `if test -f 'tables_shared.c'; then $(CYGPATH_W) 'tables_shared.c'; else $(CYGPATH_W) '$(srcdir)/tables_shared.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-tables_shared.Tpo $(DEPDIR)/stage1flex-tables_shared.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tables_shared.c' object='stage1flex-tables_shared.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-tables_shared.obj `if test -f 'tables_shared.c'; then $(CYGPATH_W) 'tables_shared.c'; else $(CYGPATH_W) '$(srcdir)/tables_shared.c'; fi` + +stage1flex-tblcmp.o: tblcmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-tblcmp.o -MD -MP -MF $(DEPDIR)/stage1flex-tblcmp.Tpo -c -o stage1flex-tblcmp.o `test -f 'tblcmp.c' || echo '$(srcdir)/'`tblcmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-tblcmp.Tpo $(DEPDIR)/stage1flex-tblcmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tblcmp.c' object='stage1flex-tblcmp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-tblcmp.o `test -f 'tblcmp.c' || echo '$(srcdir)/'`tblcmp.c + +stage1flex-tblcmp.obj: tblcmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-tblcmp.obj -MD -MP -MF $(DEPDIR)/stage1flex-tblcmp.Tpo -c -o stage1flex-tblcmp.obj `if test -f 'tblcmp.c'; then $(CYGPATH_W) 'tblcmp.c'; else $(CYGPATH_W) '$(srcdir)/tblcmp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-tblcmp.Tpo $(DEPDIR)/stage1flex-tblcmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tblcmp.c' object='stage1flex-tblcmp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-tblcmp.obj `if test -f 'tblcmp.c'; then $(CYGPATH_W) 'tblcmp.c'; else $(CYGPATH_W) '$(srcdir)/tblcmp.c'; fi` + +stage1flex-yylex.o: yylex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-yylex.o -MD -MP -MF $(DEPDIR)/stage1flex-yylex.Tpo -c -o stage1flex-yylex.o `test -f 'yylex.c' || echo '$(srcdir)/'`yylex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-yylex.Tpo $(DEPDIR)/stage1flex-yylex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yylex.c' object='stage1flex-yylex.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-yylex.o `test -f 'yylex.c' || echo '$(srcdir)/'`yylex.c + +stage1flex-yylex.obj: yylex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT stage1flex-yylex.obj -MD -MP -MF $(DEPDIR)/stage1flex-yylex.Tpo -c -o stage1flex-yylex.obj `if test -f 'yylex.c'; then $(CYGPATH_W) 'yylex.c'; else $(CYGPATH_W) '$(srcdir)/yylex.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stage1flex-yylex.Tpo $(DEPDIR)/stage1flex-yylex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='yylex.c' object='stage1flex-yylex.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o stage1flex-yylex.obj `if test -f 'yylex.c'; then $(CYGPATH_W) 'yylex.c'; else $(CYGPATH_W) '$(srcdir)/yylex.c'; fi` + +../lib/stage1flex-malloc.o: ../lib/malloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT ../lib/stage1flex-malloc.o -MD -MP -MF ../lib/$(DEPDIR)/stage1flex-malloc.Tpo -c -o ../lib/stage1flex-malloc.o `test -f '../lib/malloc.c' || echo '$(srcdir)/'`../lib/malloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/stage1flex-malloc.Tpo ../lib/$(DEPDIR)/stage1flex-malloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/malloc.c' object='../lib/stage1flex-malloc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o ../lib/stage1flex-malloc.o `test -f '../lib/malloc.c' || echo '$(srcdir)/'`../lib/malloc.c + +../lib/stage1flex-malloc.obj: ../lib/malloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT ../lib/stage1flex-malloc.obj -MD -MP -MF ../lib/$(DEPDIR)/stage1flex-malloc.Tpo -c -o ../lib/stage1flex-malloc.obj `if test -f '../lib/malloc.c'; then $(CYGPATH_W) '../lib/malloc.c'; else $(CYGPATH_W) '$(srcdir)/../lib/malloc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/stage1flex-malloc.Tpo ../lib/$(DEPDIR)/stage1flex-malloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/malloc.c' object='../lib/stage1flex-malloc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o ../lib/stage1flex-malloc.obj `if test -f '../lib/malloc.c'; then $(CYGPATH_W) '../lib/malloc.c'; else $(CYGPATH_W) '$(srcdir)/../lib/malloc.c'; fi` + +../lib/stage1flex-realloc.o: ../lib/realloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT ../lib/stage1flex-realloc.o -MD -MP -MF ../lib/$(DEPDIR)/stage1flex-realloc.Tpo -c -o ../lib/stage1flex-realloc.o `test -f '../lib/realloc.c' || echo '$(srcdir)/'`../lib/realloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/stage1flex-realloc.Tpo ../lib/$(DEPDIR)/stage1flex-realloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/realloc.c' object='../lib/stage1flex-realloc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o ../lib/stage1flex-realloc.o `test -f '../lib/realloc.c' || echo '$(srcdir)/'`../lib/realloc.c + +../lib/stage1flex-realloc.obj: ../lib/realloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -MT ../lib/stage1flex-realloc.obj -MD -MP -MF ../lib/$(DEPDIR)/stage1flex-realloc.Tpo -c -o ../lib/stage1flex-realloc.obj `if test -f '../lib/realloc.c'; then $(CYGPATH_W) '../lib/realloc.c'; else $(CYGPATH_W) '$(srcdir)/../lib/realloc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/stage1flex-realloc.Tpo ../lib/$(DEPDIR)/stage1flex-realloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/realloc.c' object='../lib/stage1flex-realloc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stage1flex_CFLAGS) $(CFLAGS) -c -o ../lib/stage1flex-realloc.obj `if test -f '../lib/realloc.c'; then $(CYGPATH_W) '../lib/realloc.c'; else $(CYGPATH_W) '$(srcdir)/../lib/realloc.c'; fi` + +.l.c: + $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) + +.y.c: + $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) config.h +install-binPROGRAMS: install-libLTLIBRARIES + +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(LIBOBJS)" || rm -f $(LIBOBJS) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../lib/$(DEPDIR)/$(am__dirstamp) + -rm -f ../lib/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -rm -f parse.c + -rm -f parse.h + -rm -f scan.c + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ../lib/$(DEPDIR) ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: installcheck-binPROGRAMS + +maintainer-clean: maintainer-clean-am + -rm -rf ../lib/$(DEPDIR) ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ + uninstall-libLTLIBRARIES + +.MAKE: all install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am dist-hook distclean distclean-compile \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-libLTLIBRARIES install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installcheck-binPROGRAMS installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-includeHEADERS \ + uninstall-libLTLIBRARIES + +.PRECIOUS: Makefile + + +@CROSS_TRUE@$(stage1flex_OBJECTS): CC=$(CC_FOR_BUILD) +@CROSS_TRUE@$(stage1flex_OBJECTS): CFLAGS=$(CFLAGS_FOR_BUILD) +@CROSS_TRUE@$(stage1flex_OBJECTS): CPP=$(CPP_FOR_BUILD) +@CROSS_TRUE@$(stage1flex_OBJECTS): CPPFLAGS=$(CPPFLAGS_FOR_BUILD) +@CROSS_TRUE@$(stage1flex_OBJECTS): LDFLAGS=$(LDFLAGS_FOR_BUILD) + +skel.c: flex.skl mkskel.sh flexint.h tables_shared.h tables_shared.c + $(SHELL) $(srcdir)/mkskel.sh $(srcdir) $(m4) $(VERSION) > $@.tmp + mv $@.tmp $@ + +@ENABLE_BOOTSTRAP_TRUE@stage1scan.c: scan.l stage1flex$(EXEEXT) +@ENABLE_BOOTSTRAP_TRUE@ ./stage1flex$(EXEEXT) $(AM_LFLAGS) $(LFLAGS) -o $@ $(srcdir)/scan.l +@ENABLE_BOOTSTRAP_FALSE@stage1scan.c: scan.c +@ENABLE_BOOTSTRAP_FALSE@ sed 's|^\(#line .*\)"'`printf %s $< | sed 's|[][\\\\.*]|\\\\&|g'`'"|\1"$@"|g' $< > $@ + +dist-hook: scan.l flex$(EXEEXT) + chmod u+w $(distdir)/scan.c && \ + ./flex$(EXEEXT) -o scan.c $< && \ + mv scan.c $(distdir) + +# make needs to be told to make parse.h so that parallelized runs will +# not fail. + +stage1flex-main.$(OBJEXT): parse.h +flex-main.$(OBJEXT): parse.h + +stage1flex-yylex.$(OBJEXT): parse.h +flex-yylex.$(OBJEXT): parse.h + +stage1flex-scan.$(OBJEXT): parse.h +flex-stage1scan.$(OBJEXT): parse.h + +indent: $(top_srcdir)/.indent.pro + cd $(top_srcdir) && \ + for f in $(indentfiles); do \ + f=src/$$f; \ + echo indenting $$f; \ + INDENT_PROFILE=.indent.pro $(INDENT) <$$f >/dev/null && \ + INDENT_PROFILE=.indent.pro $(INDENT) $$f || \ + echo $$f FAILED to indent; \ + done; + +.PHONY: indent + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/parse.c b/src/parse.c new file mode 100644 index 0000000..97fc6d7 --- /dev/null +++ b/src/parse.c @@ -0,0 +1,2942 @@ +/* A Bison parser, made by GNU Bison 3.0.4. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.0.4" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + + + +/* Copy the first part of user declarations. */ +#line 34 "parse.y" /* yacc.c:339 */ + +/* Copyright (c) 1990 The Regents of the University of California. */ +/* All rights reserved. */ + +/* This code is derived from software contributed to Berkeley by */ +/* Vern Paxson. */ + +/* The United States Government has rights in this work pursuant */ +/* to contract no. DE-AC03-76SF00098 between the United States */ +/* Department of Energy and the University of California. */ + +/* This file is part of flex. */ + +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ + +/* 1. Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* 2. Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ + +/* Neither the name of the University nor the names of its contributors */ +/* may be used to endorse or promote products derived from this software */ +/* without specific prior written permission. */ + +/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ +/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE. */ + +#include "flexdef.h" +#include "tables.h" + +int pat, scnum, eps, headcnt, trailcnt, lastchar, i, rulelen; +int trlcontxt, xcluflg, currccl, cclsorted, varlength, variable_trail_rule; + +int *scon_stk; +int scon_stk_ptr; + +static int madeany = false; /* whether we've made the '.' character class */ +static int ccldot, cclany; +int previous_continued_action; /* whether the previous rule's action was '|' */ + +#define format_warn3(fmt, a1, a2) \ + do{ \ + char fw3_msg[MAXLINE];\ + snprintf( fw3_msg, MAXLINE,(fmt), (a1), (a2) );\ + warn( fw3_msg );\ + }while(0) + +/* Expand a POSIX character class expression. */ +#define CCL_EXPR(func) \ + do{ \ + int c; \ + for ( c = 0; c < csize; ++c ) \ + if ( isascii(c) && func(c) ) \ + ccladd( currccl, c ); \ + }while(0) + +/* negated class */ +#define CCL_NEG_EXPR(func) \ + do{ \ + int c; \ + for ( c = 0; c < csize; ++c ) \ + if ( !func(c) ) \ + ccladd( currccl, c ); \ + }while(0) + +/* While POSIX defines isblank(), it's not ANSI C. */ +#define IS_BLANK(c) ((c) == ' ' || (c) == '\t') + +/* On some over-ambitious machines, such as DEC Alpha's, the default + * token type is "long" instead of "int"; this leads to problems with + * declaring yylval in flexdef.h. But so far, all the yacc's I've seen + * wrap their definitions of YYSTYPE with "#ifndef YYSTYPE"'s, so the + * following should ensure that the default token type is "int". + */ +#define YYSTYPE int + + +#line 149 "parse.c" /* yacc.c:339 */ + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "y.tab.h". */ +#ifndef YY_YY_PARSE_H_INCLUDED +# define YY_YY_PARSE_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + CHAR = 258, + NUMBER = 259, + SECTEND = 260, + SCDECL = 261, + XSCDECL = 262, + NAME = 263, + PREVCCL = 264, + EOF_OP = 265, + TOK_OPTION = 266, + TOK_OUTFILE = 267, + TOK_PREFIX = 268, + TOK_YYCLASS = 269, + TOK_HEADER_FILE = 270, + TOK_EXTRA_TYPE = 271, + TOK_TABLES_FILE = 272, + CCE_ALNUM = 273, + CCE_ALPHA = 274, + CCE_BLANK = 275, + CCE_CNTRL = 276, + CCE_DIGIT = 277, + CCE_GRAPH = 278, + CCE_LOWER = 279, + CCE_PRINT = 280, + CCE_PUNCT = 281, + CCE_SPACE = 282, + CCE_UPPER = 283, + CCE_XDIGIT = 284, + CCE_NEG_ALNUM = 285, + CCE_NEG_ALPHA = 286, + CCE_NEG_BLANK = 287, + CCE_NEG_CNTRL = 288, + CCE_NEG_DIGIT = 289, + CCE_NEG_GRAPH = 290, + CCE_NEG_LOWER = 291, + CCE_NEG_PRINT = 292, + CCE_NEG_PUNCT = 293, + CCE_NEG_SPACE = 294, + CCE_NEG_UPPER = 295, + CCE_NEG_XDIGIT = 296, + CCL_OP_DIFF = 297, + CCL_OP_UNION = 298, + BEGIN_REPEAT_POSIX = 299, + END_REPEAT_POSIX = 300, + BEGIN_REPEAT_FLEX = 301, + END_REPEAT_FLEX = 302 + }; +#endif +/* Tokens. */ +#define CHAR 258 +#define NUMBER 259 +#define SECTEND 260 +#define SCDECL 261 +#define XSCDECL 262 +#define NAME 263 +#define PREVCCL 264 +#define EOF_OP 265 +#define TOK_OPTION 266 +#define TOK_OUTFILE 267 +#define TOK_PREFIX 268 +#define TOK_YYCLASS 269 +#define TOK_HEADER_FILE 270 +#define TOK_EXTRA_TYPE 271 +#define TOK_TABLES_FILE 272 +#define CCE_ALNUM 273 +#define CCE_ALPHA 274 +#define CCE_BLANK 275 +#define CCE_CNTRL 276 +#define CCE_DIGIT 277 +#define CCE_GRAPH 278 +#define CCE_LOWER 279 +#define CCE_PRINT 280 +#define CCE_PUNCT 281 +#define CCE_SPACE 282 +#define CCE_UPPER 283 +#define CCE_XDIGIT 284 +#define CCE_NEG_ALNUM 285 +#define CCE_NEG_ALPHA 286 +#define CCE_NEG_BLANK 287 +#define CCE_NEG_CNTRL 288 +#define CCE_NEG_DIGIT 289 +#define CCE_NEG_GRAPH 290 +#define CCE_NEG_LOWER 291 +#define CCE_NEG_PRINT 292 +#define CCE_NEG_PUNCT 293 +#define CCE_NEG_SPACE 294 +#define CCE_NEG_UPPER 295 +#define CCE_NEG_XDIGIT 296 +#define CCL_OP_DIFF 297 +#define CCL_OP_UNION 298 +#define BEGIN_REPEAT_POSIX 299 +#define END_REPEAT_POSIX 300 +#define BEGIN_REPEAT_FLEX 301 +#define END_REPEAT_FLEX 302 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_PARSE_H_INCLUDED */ + +/* Copy the second part of user declarations. */ + +#line 294 "parse.c" /* yacc.c:358 */ + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 3 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 161 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 69 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 27 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 97 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 140 + +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 302 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 49, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 63, 2, 57, 2, 2, 2, + 64, 65, 55, 60, 56, 68, 62, 59, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 53, 48, 54, 61, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 66, 2, 67, 52, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 50, 58, 51, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 118, 118, 148, 155, 156, 157, 158, 162, 170, + 173, 177, 180, 183, 187, 190, 191, 194, 199, 201, + 203, 205, 207, 211, 213, 215, 219, 231, 267, 291, + 314, 319, 322, 325, 343, 346, 348, 350, 354, 377, + 433, 436, 479, 497, 503, 508, 535, 543, 546, 574, + 588, 610, 617, 623, 629, 657, 671, 690, 724, 742, + 752, 755, 758, 773, 774, 775, 780, 782, 789, 849, + 867, 875, 883, 884, 885, 886, 887, 888, 889, 894, + 895, 896, 897, 898, 904, 905, 906, 907, 908, 909, + 910, 911, 912, 913, 914, 920, 928, 944 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "CHAR", "NUMBER", "SECTEND", "SCDECL", + "XSCDECL", "NAME", "PREVCCL", "EOF_OP", "TOK_OPTION", "TOK_OUTFILE", + "TOK_PREFIX", "TOK_YYCLASS", "TOK_HEADER_FILE", "TOK_EXTRA_TYPE", + "TOK_TABLES_FILE", "CCE_ALNUM", "CCE_ALPHA", "CCE_BLANK", "CCE_CNTRL", + "CCE_DIGIT", "CCE_GRAPH", "CCE_LOWER", "CCE_PRINT", "CCE_PUNCT", + "CCE_SPACE", "CCE_UPPER", "CCE_XDIGIT", "CCE_NEG_ALNUM", "CCE_NEG_ALPHA", + "CCE_NEG_BLANK", "CCE_NEG_CNTRL", "CCE_NEG_DIGIT", "CCE_NEG_GRAPH", + "CCE_NEG_LOWER", "CCE_NEG_PRINT", "CCE_NEG_PUNCT", "CCE_NEG_SPACE", + "CCE_NEG_UPPER", "CCE_NEG_XDIGIT", "CCL_OP_DIFF", "CCL_OP_UNION", + "BEGIN_REPEAT_POSIX", "END_REPEAT_POSIX", "BEGIN_REPEAT_FLEX", + "END_REPEAT_FLEX", "'='", "'\\n'", "'{'", "'}'", "'^'", "'<'", "'>'", + "'*'", "','", "'$'", "'|'", "'/'", "'+'", "'?'", "'.'", "'\"'", "'('", + "')'", "'['", "']'", "'-'", "$accept", "goal", "initlex", "sect1", + "sect1end", "startconddecl", "namelist1", "options", "optionlist", + "option", "sect2", "initforrule", "flexrule", "scon_stk_ptr", "scon", + "namelist2", "sconname", "rule", "re", "re2", "series", "singleton", + "fullccl", "braceccl", "ccl", "ccl_expr", "string", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 61, 10, + 123, 125, 94, 60, 62, 42, 44, 36, 124, 47, + 43, 63, 46, 34, 40, 41, 91, 93, 45 +}; +# endif + +#define YYPACT_NINF -52 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-52))) + +#define YYTABLE_NINF -27 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + -52, 17, 103, -52, -52, 113, -52, -52, -52, -52, + -52, 48, -52, 114, 6, -52, -52, 42, 7, 12, + 58, 77, 88, 89, -52, 43, -52, 73, -52, 130, + 131, 132, 133, 134, 135, 90, 91, -52, -1, -52, + -52, -52, -52, -52, -52, -52, -52, -52, 40, -52, + 44, -52, -52, -52, -52, 39, -52, -52, 39, 93, + 97, -52, -12, 39, 49, 61, -31, -52, -52, 139, + -52, -52, 1, -51, -52, 0, -52, -52, 39, -52, + 75, 144, 61, 145, -52, -52, -52, 84, 84, -52, + -52, -52, -52, 50, 83, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + -52, 49, -52, -40, 10, -52, -52, -52, 149, -52, + 9, -52, -3, -52, 108, -52, 107, -52, -52, -52 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 3, 0, 0, 1, 7, 0, 8, 9, 10, 16, + 25, 0, 5, 14, 34, 13, 12, 4, 0, 0, + 0, 0, 0, 0, 15, 31, 2, 26, 11, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 17, + 19, 20, 21, 18, 22, 33, 37, 38, 0, 36, + 34, 30, 62, 59, 29, 0, 57, 97, 0, 71, + 0, 28, 42, 0, 44, 47, 58, 65, 32, 0, + 24, 27, 0, 0, 71, 0, 23, 41, 0, 45, + 39, 0, 46, 0, 51, 52, 53, 0, 0, 35, + 96, 60, 61, 0, 69, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 83, 82, 84, 85, 86, + 87, 88, 89, 94, 90, 91, 92, 95, 93, 66, + 70, 43, 40, 0, 0, 63, 64, 67, 0, 50, + 0, 56, 0, 68, 0, 49, 0, 55, 48, 54 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, + 118, 129, -52, -52, -52, -52, 92, 102, -48, -52, + 80, -21, -52, 47, 85, -52, -52 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 1, 2, 5, 10, 11, 17, 12, 13, 24, + 14, 26, 60, 36, 27, 48, 49, 61, 62, 63, + 64, 65, 66, 67, 75, 120, 72 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 51, 136, 52, 94, 90, 129, -26, 78, 53, 54, + 73, 87, 88, 134, 92, 80, 130, 3, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 52, 82, 137, 77, 78, 79, 53, 15, + 28, 55, 52, 94, 135, 29, 16, 131, 53, 25, + 30, 56, 57, 58, 91, 59, 132, 119, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 46, 81, 68, 70, 69, 25, 35, 47, + 82, 56, 57, 58, 4, 59, 31, 83, -6, -6, + -6, 56, 57, 58, -6, 59, 84, 127, 6, 7, + 8, 85, 86, 37, 9, 32, 18, 19, 20, 21, + 22, 23, 122, 78, 125, 126, 33, 34, 39, 40, + 41, 42, 43, 44, 45, 74, 76, 47, 123, 124, + 59, 128, 133, 138, 139, 50, 38, 71, 121, 93, + 0, 89 +}; + +static const yytype_int8 yycheck[] = +{ + 1, 4, 3, 3, 3, 45, 0, 58, 9, 10, + 58, 42, 43, 4, 65, 63, 56, 0, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 3, 64, 47, 57, 58, 59, 9, 1, + 8, 52, 3, 3, 45, 48, 8, 47, 9, 53, + 48, 62, 63, 64, 63, 66, 56, 67, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 1, 44, 54, 51, 56, 53, 55, 8, + 121, 62, 63, 64, 1, 66, 48, 46, 5, 6, + 7, 62, 63, 64, 11, 66, 55, 67, 5, 6, + 7, 60, 61, 50, 11, 48, 12, 13, 14, 15, + 16, 17, 57, 58, 87, 88, 48, 48, 8, 8, + 8, 8, 8, 8, 54, 52, 49, 8, 4, 4, + 66, 68, 3, 45, 47, 37, 27, 55, 78, 74, + -1, 69 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 70, 71, 0, 1, 72, 5, 6, 7, 11, + 73, 74, 76, 77, 79, 1, 8, 75, 12, 13, + 14, 15, 16, 17, 78, 53, 80, 83, 8, 48, + 48, 48, 48, 48, 48, 55, 82, 50, 80, 8, + 8, 8, 8, 8, 8, 54, 1, 8, 84, 85, + 79, 1, 3, 9, 10, 52, 62, 63, 64, 66, + 81, 86, 87, 88, 89, 90, 91, 92, 54, 56, + 51, 86, 95, 87, 52, 93, 49, 57, 58, 59, + 87, 44, 90, 46, 55, 60, 61, 42, 43, 85, + 3, 63, 65, 93, 3, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 67, + 94, 89, 57, 4, 4, 92, 92, 67, 68, 45, + 56, 47, 56, 3, 4, 45, 4, 47, 45, 47 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 69, 70, 71, 72, 72, 72, 72, 73, 74, + 74, 75, 75, 75, 76, 77, 77, 78, 78, 78, + 78, 78, 78, 79, 79, 79, 80, 81, 81, 81, + 81, 82, 83, 83, 83, 84, 84, 84, 85, 86, + 86, 86, 86, 87, 87, 88, 89, 89, 89, 89, + 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 91, 91, 91, 92, 92, 93, 93, + 93, 93, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 95, 95 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 5, 0, 3, 2, 0, 1, 1, 1, + 1, 2, 1, 1, 2, 2, 0, 3, 3, 3, + 3, 3, 3, 5, 5, 0, 0, 2, 1, 1, + 1, 0, 4, 3, 0, 3, 1, 1, 1, 2, + 3, 2, 1, 3, 1, 2, 2, 1, 6, 5, + 4, 2, 2, 2, 6, 5, 4, 1, 1, 1, + 3, 3, 1, 3, 3, 1, 3, 4, 4, 2, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 0 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +{ + FILE *yyo = yyoutput; + YYUSE (yyo); + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + YYUSE (yytype); +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +{ + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +{ + unsigned long int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +yystrlen (const char *yystr) +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +{ + YYUSE (yyvaluep); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; +/* Number of syntax errors so far. */ +int yynerrs; + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (void) +{ + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = yylex (); + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 119 "parse.y" /* yacc.c:1646 */ + { /* add default rule */ + int def_rule; + + pat = cclinit(); + cclnegate( pat ); + + def_rule = mkstate( -pat ); + + /* Remember the number of the default rule so we + * don't generate "can't match" warnings for it. + */ + default_rule = num_rules; + + finish_rule( def_rule, false, 0, 0, 0); + + for ( i = 1; i <= lastsc; ++i ) + scset[i] = mkbranch( scset[i], def_rule ); + + if ( spprdflt ) + add_action( + "YY_FATAL_ERROR( \"flex scanner jammed\" )" ); + else + add_action( "ECHO" ); + + add_action( ";\n\tYY_BREAK\n" ); + } +#line 1512 "parse.c" /* yacc.c:1646 */ + break; + + case 3: +#line 148 "parse.y" /* yacc.c:1646 */ + { /* initialize for processing rules */ + + /* Create default DFA start condition. */ + scinstal( "INITIAL", false ); + } +#line 1522 "parse.c" /* yacc.c:1646 */ + break; + + case 7: +#line 159 "parse.y" /* yacc.c:1646 */ + { synerr( _("unknown error processing section 1") ); } +#line 1528 "parse.c" /* yacc.c:1646 */ + break; + + case 8: +#line 163 "parse.y" /* yacc.c:1646 */ + { + check_options(); + scon_stk = allocate_integer_array( lastsc + 1 ); + scon_stk_ptr = 0; + } +#line 1538 "parse.c" /* yacc.c:1646 */ + break; + + case 9: +#line 171 "parse.y" /* yacc.c:1646 */ + { xcluflg = false; } +#line 1544 "parse.c" /* yacc.c:1646 */ + break; + + case 10: +#line 174 "parse.y" /* yacc.c:1646 */ + { xcluflg = true; } +#line 1550 "parse.c" /* yacc.c:1646 */ + break; + + case 11: +#line 178 "parse.y" /* yacc.c:1646 */ + { scinstal( nmstr, xcluflg ); } +#line 1556 "parse.c" /* yacc.c:1646 */ + break; + + case 12: +#line 181 "parse.y" /* yacc.c:1646 */ + { scinstal( nmstr, xcluflg ); } +#line 1562 "parse.c" /* yacc.c:1646 */ + break; + + case 13: +#line 184 "parse.y" /* yacc.c:1646 */ + { synerr( _("bad start condition list") ); } +#line 1568 "parse.c" /* yacc.c:1646 */ + break; + + case 17: +#line 195 "parse.y" /* yacc.c:1646 */ + { + outfilename = xstrdup(nmstr); + did_outfilename = 1; + } +#line 1577 "parse.c" /* yacc.c:1646 */ + break; + + case 18: +#line 200 "parse.y" /* yacc.c:1646 */ + { extra_type = xstrdup(nmstr); } +#line 1583 "parse.c" /* yacc.c:1646 */ + break; + + case 19: +#line 202 "parse.y" /* yacc.c:1646 */ + { prefix = xstrdup(nmstr); } +#line 1589 "parse.c" /* yacc.c:1646 */ + break; + + case 20: +#line 204 "parse.y" /* yacc.c:1646 */ + { yyclass = xstrdup(nmstr); } +#line 1595 "parse.c" /* yacc.c:1646 */ + break; + + case 21: +#line 206 "parse.y" /* yacc.c:1646 */ + { headerfilename = xstrdup(nmstr); } +#line 1601 "parse.c" /* yacc.c:1646 */ + break; + + case 22: +#line 208 "parse.y" /* yacc.c:1646 */ + { tablesext = true; tablesfilename = xstrdup(nmstr); } +#line 1607 "parse.c" /* yacc.c:1646 */ + break; + + case 23: +#line 212 "parse.y" /* yacc.c:1646 */ + { scon_stk_ptr = (yyvsp[-3]); } +#line 1613 "parse.c" /* yacc.c:1646 */ + break; + + case 24: +#line 214 "parse.y" /* yacc.c:1646 */ + { scon_stk_ptr = (yyvsp[-3]); } +#line 1619 "parse.c" /* yacc.c:1646 */ + break; + + case 26: +#line 219 "parse.y" /* yacc.c:1646 */ + { + /* Initialize for a parse of one rule. */ + trlcontxt = variable_trail_rule = varlength = false; + trailcnt = headcnt = rulelen = 0; + current_state_type = STATE_NORMAL; + previous_continued_action = continued_action; + in_rule = true; + + new_rule(); + } +#line 1634 "parse.c" /* yacc.c:1646 */ + break; + + case 27: +#line 232 "parse.y" /* yacc.c:1646 */ + { + pat = (yyvsp[0]); + finish_rule( pat, variable_trail_rule, + headcnt, trailcnt , previous_continued_action); + + if ( scon_stk_ptr > 0 ) + { + for ( i = 1; i <= scon_stk_ptr; ++i ) + scbol[scon_stk[i]] = + mkbranch( scbol[scon_stk[i]], + pat ); + } + + else + { + /* Add to all non-exclusive start conditions, + * including the default (0) start condition. + */ + + for ( i = 1; i <= lastsc; ++i ) + if ( ! scxclu[i] ) + scbol[i] = mkbranch( scbol[i], + pat ); + } + + if ( ! bol_needed ) + { + bol_needed = true; + + if ( performance_report > 1 ) + pinpoint_message( + "'^' operator results in sub-optimal performance" ); + } + } +#line 1673 "parse.c" /* yacc.c:1646 */ + break; + + case 28: +#line 268 "parse.y" /* yacc.c:1646 */ + { + pat = (yyvsp[0]); + finish_rule( pat, variable_trail_rule, + headcnt, trailcnt , previous_continued_action); + + if ( scon_stk_ptr > 0 ) + { + for ( i = 1; i <= scon_stk_ptr; ++i ) + scset[scon_stk[i]] = + mkbranch( scset[scon_stk[i]], + pat ); + } + + else + { + for ( i = 1; i <= lastsc; ++i ) + if ( ! scxclu[i] ) + scset[i] = + mkbranch( scset[i], + pat ); + } + } +#line 1700 "parse.c" /* yacc.c:1646 */ + break; + + case 29: +#line 292 "parse.y" /* yacc.c:1646 */ + { + if ( scon_stk_ptr > 0 ) + build_eof_action(); + + else + { + /* This EOF applies to all start conditions + * which don't already have EOF actions. + */ + for ( i = 1; i <= lastsc; ++i ) + if ( ! sceof[i] ) + scon_stk[++scon_stk_ptr] = i; + + if ( scon_stk_ptr == 0 ) + warn( + "all start conditions already have <<EOF>> rules" ); + + else + build_eof_action(); + } + } +#line 1726 "parse.c" /* yacc.c:1646 */ + break; + + case 30: +#line 315 "parse.y" /* yacc.c:1646 */ + { synerr( _("unrecognized rule") ); } +#line 1732 "parse.c" /* yacc.c:1646 */ + break; + + case 31: +#line 319 "parse.y" /* yacc.c:1646 */ + { (yyval) = scon_stk_ptr; } +#line 1738 "parse.c" /* yacc.c:1646 */ + break; + + case 32: +#line 323 "parse.y" /* yacc.c:1646 */ + { (yyval) = (yyvsp[-2]); } +#line 1744 "parse.c" /* yacc.c:1646 */ + break; + + case 33: +#line 326 "parse.y" /* yacc.c:1646 */ + { + (yyval) = scon_stk_ptr; + + for ( i = 1; i <= lastsc; ++i ) + { + int j; + + for ( j = 1; j <= scon_stk_ptr; ++j ) + if ( scon_stk[j] == i ) + break; + + if ( j > scon_stk_ptr ) + scon_stk[++scon_stk_ptr] = i; + } + } +#line 1764 "parse.c" /* yacc.c:1646 */ + break; + + case 34: +#line 343 "parse.y" /* yacc.c:1646 */ + { (yyval) = scon_stk_ptr; } +#line 1770 "parse.c" /* yacc.c:1646 */ + break; + + case 37: +#line 351 "parse.y" /* yacc.c:1646 */ + { synerr( _("bad start condition list") ); } +#line 1776 "parse.c" /* yacc.c:1646 */ + break; + + case 38: +#line 355 "parse.y" /* yacc.c:1646 */ + { + if ( (scnum = sclookup( nmstr )) == 0 ) + format_pinpoint_message( + "undeclared start condition %s", + nmstr ); + else + { + for ( i = 1; i <= scon_stk_ptr; ++i ) + if ( scon_stk[i] == scnum ) + { + format_warn( + "<%s> specified twice", + scname[scnum] ); + break; + } + + if ( i > scon_stk_ptr ) + scon_stk[++scon_stk_ptr] = scnum; + } + } +#line 1801 "parse.c" /* yacc.c:1646 */ + break; + + case 39: +#line 378 "parse.y" /* yacc.c:1646 */ + { + if ( transchar[lastst[(yyvsp[0])]] != SYM_EPSILON ) + /* Provide final transition \now/ so it + * will be marked as a trailing context + * state. + */ + (yyvsp[0]) = link_machines( (yyvsp[0]), + mkstate( SYM_EPSILON ) ); + + mark_beginning_as_normal( (yyvsp[0]) ); + current_state_type = STATE_NORMAL; + + if ( previous_continued_action ) + { + /* We need to treat this as variable trailing + * context so that the backup does not happen + * in the action but before the action switch + * statement. If the backup happens in the + * action, then the rules "falling into" this + * one's action will *also* do the backup, + * erroneously. + */ + if ( ! varlength || headcnt != 0 ) + warn( + "trailing context made variable due to preceding '|' action" ); + + /* Mark as variable. */ + varlength = true; + headcnt = 0; + + } + + if ( lex_compat || (varlength && headcnt == 0) ) + { /* variable trailing context rule */ + /* Mark the first part of the rule as the + * accepting "head" part of a trailing + * context rule. + * + * By the way, we didn't do this at the + * beginning of this production because back + * then current_state_type was set up for a + * trail rule, and add_accept() can create + * a new state ... + */ + add_accept( (yyvsp[-1]), + num_rules | YY_TRAILING_HEAD_MASK ); + variable_trail_rule = true; + } + + else + trailcnt = rulelen; + + (yyval) = link_machines( (yyvsp[-1]), (yyvsp[0]) ); + } +#line 1860 "parse.c" /* yacc.c:1646 */ + break; + + case 40: +#line 434 "parse.y" /* yacc.c:1646 */ + { synerr( _("trailing context used twice") ); } +#line 1866 "parse.c" /* yacc.c:1646 */ + break; + + case 41: +#line 437 "parse.y" /* yacc.c:1646 */ + { + headcnt = 0; + trailcnt = 1; + rulelen = 1; + varlength = false; + + current_state_type = STATE_TRAILING_CONTEXT; + + if ( trlcontxt ) + { + synerr( _("trailing context used twice") ); + (yyval) = mkstate( SYM_EPSILON ); + } + + else if ( previous_continued_action ) + { + /* See the comment in the rule for "re2 re" + * above. + */ + warn( + "trailing context made variable due to preceding '|' action" ); + + varlength = true; + } + + if ( lex_compat || varlength ) + { + /* Again, see the comment in the rule for + * "re2 re" above. + */ + add_accept( (yyvsp[-1]), + num_rules | YY_TRAILING_HEAD_MASK ); + variable_trail_rule = true; + } + + trlcontxt = true; + + eps = mkstate( SYM_EPSILON ); + (yyval) = link_machines( (yyvsp[-1]), + link_machines( eps, mkstate( '\n' ) ) ); + } +#line 1912 "parse.c" /* yacc.c:1646 */ + break; + + case 42: +#line 480 "parse.y" /* yacc.c:1646 */ + { + (yyval) = (yyvsp[0]); + + if ( trlcontxt ) + { + if ( lex_compat || (varlength && headcnt == 0) ) + /* Both head and trail are + * variable-length. + */ + variable_trail_rule = true; + else + trailcnt = rulelen; + } + } +#line 1931 "parse.c" /* yacc.c:1646 */ + break; + + case 43: +#line 498 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + (yyval) = mkor( (yyvsp[-2]), (yyvsp[0]) ); + } +#line 1940 "parse.c" /* yacc.c:1646 */ + break; + + case 44: +#line 504 "parse.y" /* yacc.c:1646 */ + { (yyval) = (yyvsp[0]); } +#line 1946 "parse.c" /* yacc.c:1646 */ + break; + + case 45: +#line 509 "parse.y" /* yacc.c:1646 */ + { + /* This rule is written separately so the + * reduction will occur before the trailing + * series is parsed. + */ + + if ( trlcontxt ) + synerr( _("trailing context used twice") ); + else + trlcontxt = true; + + if ( varlength ) + /* We hope the trailing context is + * fixed-length. + */ + varlength = false; + else + headcnt = rulelen; + + rulelen = 0; + + current_state_type = STATE_TRAILING_CONTEXT; + (yyval) = (yyvsp[-1]); + } +#line 1975 "parse.c" /* yacc.c:1646 */ + break; + + case 46: +#line 536 "parse.y" /* yacc.c:1646 */ + { + /* This is where concatenation of adjacent patterns + * gets done. + */ + (yyval) = link_machines( (yyvsp[-1]), (yyvsp[0]) ); + } +#line 1986 "parse.c" /* yacc.c:1646 */ + break; + + case 47: +#line 544 "parse.y" /* yacc.c:1646 */ + { (yyval) = (yyvsp[0]); } +#line 1992 "parse.c" /* yacc.c:1646 */ + break; + + case 48: +#line 547 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + + if ( (yyvsp[-3]) > (yyvsp[-1]) || (yyvsp[-3]) < 0 ) + { + synerr( _("bad iteration values") ); + (yyval) = (yyvsp[-5]); + } + else + { + if ( (yyvsp[-3]) == 0 ) + { + if ( (yyvsp[-1]) <= 0 ) + { + synerr( + _("bad iteration values") ); + (yyval) = (yyvsp[-5]); + } + else + (yyval) = mkopt( + mkrep( (yyvsp[-5]), 1, (yyvsp[-1]) ) ); + } + else + (yyval) = mkrep( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) ); + } + } +#line 2023 "parse.c" /* yacc.c:1646 */ + break; + + case 49: +#line 575 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + + if ( (yyvsp[-2]) <= 0 ) + { + synerr( _("iteration value must be positive") ); + (yyval) = (yyvsp[-4]); + } + + else + (yyval) = mkrep( (yyvsp[-4]), (yyvsp[-2]), INFINITE_REPEAT ); + } +#line 2040 "parse.c" /* yacc.c:1646 */ + break; + + case 50: +#line 589 "parse.y" /* yacc.c:1646 */ + { + /* The series could be something like "(foo)", + * in which case we have no idea what its length + * is, so we punt here. + */ + varlength = true; + + if ( (yyvsp[-1]) <= 0 ) + { + synerr( _("iteration value must be positive") + ); + (yyval) = (yyvsp[-3]); + } + + else + (yyval) = link_machines( (yyvsp[-3]), + copysingl( (yyvsp[-3]), (yyvsp[-1]) - 1 ) ); + } +#line 2063 "parse.c" /* yacc.c:1646 */ + break; + + case 51: +#line 611 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + + (yyval) = mkclos( (yyvsp[-1]) ); + } +#line 2073 "parse.c" /* yacc.c:1646 */ + break; + + case 52: +#line 618 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + (yyval) = mkposcl( (yyvsp[-1]) ); + } +#line 2082 "parse.c" /* yacc.c:1646 */ + break; + + case 53: +#line 624 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + (yyval) = mkopt( (yyvsp[-1]) ); + } +#line 2091 "parse.c" /* yacc.c:1646 */ + break; + + case 54: +#line 630 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + + if ( (yyvsp[-3]) > (yyvsp[-1]) || (yyvsp[-3]) < 0 ) + { + synerr( _("bad iteration values") ); + (yyval) = (yyvsp[-5]); + } + else + { + if ( (yyvsp[-3]) == 0 ) + { + if ( (yyvsp[-1]) <= 0 ) + { + synerr( + _("bad iteration values") ); + (yyval) = (yyvsp[-5]); + } + else + (yyval) = mkopt( + mkrep( (yyvsp[-5]), 1, (yyvsp[-1]) ) ); + } + else + (yyval) = mkrep( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) ); + } + } +#line 2122 "parse.c" /* yacc.c:1646 */ + break; + + case 55: +#line 658 "parse.y" /* yacc.c:1646 */ + { + varlength = true; + + if ( (yyvsp[-2]) <= 0 ) + { + synerr( _("iteration value must be positive") ); + (yyval) = (yyvsp[-4]); + } + + else + (yyval) = mkrep( (yyvsp[-4]), (yyvsp[-2]), INFINITE_REPEAT ); + } +#line 2139 "parse.c" /* yacc.c:1646 */ + break; + + case 56: +#line 672 "parse.y" /* yacc.c:1646 */ + { + /* The singleton could be something like "(foo)", + * in which case we have no idea what its length + * is, so we punt here. + */ + varlength = true; + + if ( (yyvsp[-1]) <= 0 ) + { + synerr( _("iteration value must be positive") ); + (yyval) = (yyvsp[-3]); + } + + else + (yyval) = link_machines( (yyvsp[-3]), + copysingl( (yyvsp[-3]), (yyvsp[-1]) - 1 ) ); + } +#line 2161 "parse.c" /* yacc.c:1646 */ + break; + + case 57: +#line 691 "parse.y" /* yacc.c:1646 */ + { + if ( ! madeany ) + { + /* Create the '.' character class. */ + ccldot = cclinit(); + ccladd( ccldot, '\n' ); + cclnegate( ccldot ); + + if ( useecs ) + mkeccl( ccltbl + cclmap[ccldot], + ccllen[ccldot], nextecm, + ecgroup, csize, csize ); + + /* Create the (?s:'.') character class. */ + cclany = cclinit(); + cclnegate( cclany ); + + if ( useecs ) + mkeccl( ccltbl + cclmap[cclany], + ccllen[cclany], nextecm, + ecgroup, csize, csize ); + + madeany = true; + } + + ++rulelen; + + if (sf_dot_all()) + (yyval) = mkstate( -cclany ); + else + (yyval) = mkstate( -ccldot ); + } +#line 2198 "parse.c" /* yacc.c:1646 */ + break; + + case 58: +#line 725 "parse.y" /* yacc.c:1646 */ + { + /* Sort characters for fast searching. + */ + qsort( ccltbl + cclmap[(yyvsp[0])], (size_t) ccllen[(yyvsp[0])], sizeof (*ccltbl), cclcmp ); + + if ( useecs ) + mkeccl( ccltbl + cclmap[(yyvsp[0])], ccllen[(yyvsp[0])], + nextecm, ecgroup, csize, csize ); + + ++rulelen; + + if (ccl_has_nl[(yyvsp[0])]) + rule_has_nl[num_rules] = true; + + (yyval) = mkstate( -(yyvsp[0]) ); + } +#line 2219 "parse.c" /* yacc.c:1646 */ + break; + + case 59: +#line 743 "parse.y" /* yacc.c:1646 */ + { + ++rulelen; + + if (ccl_has_nl[(yyvsp[0])]) + rule_has_nl[num_rules] = true; + + (yyval) = mkstate( -(yyvsp[0]) ); + } +#line 2232 "parse.c" /* yacc.c:1646 */ + break; + + case 60: +#line 753 "parse.y" /* yacc.c:1646 */ + { (yyval) = (yyvsp[-1]); } +#line 2238 "parse.c" /* yacc.c:1646 */ + break; + + case 61: +#line 756 "parse.y" /* yacc.c:1646 */ + { (yyval) = (yyvsp[-1]); } +#line 2244 "parse.c" /* yacc.c:1646 */ + break; + + case 62: +#line 759 "parse.y" /* yacc.c:1646 */ + { + ++rulelen; + + if ((yyvsp[0]) == nlch) + rule_has_nl[num_rules] = true; + + if (sf_case_ins() && has_case((yyvsp[0]))) + /* create an alternation, as in (a|A) */ + (yyval) = mkor (mkstate((yyvsp[0])), mkstate(reverse_case((yyvsp[0])))); + else + (yyval) = mkstate( (yyvsp[0]) ); + } +#line 2261 "parse.c" /* yacc.c:1646 */ + break; + + case 63: +#line 773 "parse.y" /* yacc.c:1646 */ + { (yyval) = ccl_set_diff ((yyvsp[-2]), (yyvsp[0])); } +#line 2267 "parse.c" /* yacc.c:1646 */ + break; + + case 64: +#line 774 "parse.y" /* yacc.c:1646 */ + { (yyval) = ccl_set_union ((yyvsp[-2]), (yyvsp[0])); } +#line 2273 "parse.c" /* yacc.c:1646 */ + break; + + case 66: +#line 780 "parse.y" /* yacc.c:1646 */ + { (yyval) = (yyvsp[-1]); } +#line 2279 "parse.c" /* yacc.c:1646 */ + break; + + case 67: +#line 783 "parse.y" /* yacc.c:1646 */ + { + cclnegate( (yyvsp[-1]) ); + (yyval) = (yyvsp[-1]); + } +#line 2288 "parse.c" /* yacc.c:1646 */ + break; + + case 68: +#line 790 "parse.y" /* yacc.c:1646 */ + { + + if (sf_case_ins()) + { + + /* If one end of the range has case and the other + * does not, or the cases are different, then we're not + * sure what range the user is trying to express. + * Examples: [@-z] or [S-t] + */ + if (has_case ((yyvsp[-2])) != has_case ((yyvsp[0])) + || (has_case ((yyvsp[-2])) && (b_islower ((yyvsp[-2])) != b_islower ((yyvsp[0])))) + || (has_case ((yyvsp[-2])) && (b_isupper ((yyvsp[-2])) != b_isupper ((yyvsp[0]))))) + format_warn3 ( + _("the character range [%c-%c] is ambiguous in a case-insensitive scanner"), + (yyvsp[-2]), (yyvsp[0])); + + /* If the range spans uppercase characters but not + * lowercase (or vice-versa), then should we automatically + * include lowercase characters in the range? + * Example: [@-_] spans [a-z] but not [A-Z] + */ + else if (!has_case ((yyvsp[-2])) && !has_case ((yyvsp[0])) && !range_covers_case ((yyvsp[-2]), (yyvsp[0]))) + format_warn3 ( + _("the character range [%c-%c] is ambiguous in a case-insensitive scanner"), + (yyvsp[-2]), (yyvsp[0])); + } + + if ( (yyvsp[-2]) > (yyvsp[0]) ) + synerr( _("negative range in character class") ); + + else + { + for ( i = (yyvsp[-2]); i <= (yyvsp[0]); ++i ) + ccladd( (yyvsp[-3]), i ); + + /* Keep track if this ccl is staying in + * alphabetical order. + */ + cclsorted = cclsorted && ((yyvsp[-2]) > lastchar); + lastchar = (yyvsp[0]); + + /* Do it again for upper/lowercase */ + if (sf_case_ins() && has_case((yyvsp[-2])) && has_case((yyvsp[0]))){ + (yyvsp[-2]) = reverse_case ((yyvsp[-2])); + (yyvsp[0]) = reverse_case ((yyvsp[0])); + + for ( i = (yyvsp[-2]); i <= (yyvsp[0]); ++i ) + ccladd( (yyvsp[-3]), i ); + + cclsorted = cclsorted && ((yyvsp[-2]) > lastchar); + lastchar = (yyvsp[0]); + } + + } + + (yyval) = (yyvsp[-3]); + } +#line 2351 "parse.c" /* yacc.c:1646 */ + break; + + case 69: +#line 850 "parse.y" /* yacc.c:1646 */ + { + ccladd( (yyvsp[-1]), (yyvsp[0]) ); + cclsorted = cclsorted && ((yyvsp[0]) > lastchar); + lastchar = (yyvsp[0]); + + /* Do it again for upper/lowercase */ + if (sf_case_ins() && has_case((yyvsp[0]))){ + (yyvsp[0]) = reverse_case ((yyvsp[0])); + ccladd ((yyvsp[-1]), (yyvsp[0])); + + cclsorted = cclsorted && ((yyvsp[0]) > lastchar); + lastchar = (yyvsp[0]); + } + + (yyval) = (yyvsp[-1]); + } +#line 2372 "parse.c" /* yacc.c:1646 */ + break; + + case 70: +#line 868 "parse.y" /* yacc.c:1646 */ + { + /* Too hard to properly maintain cclsorted. */ + cclsorted = false; + (yyval) = (yyvsp[-1]); + } +#line 2382 "parse.c" /* yacc.c:1646 */ + break; + + case 71: +#line 875 "parse.y" /* yacc.c:1646 */ + { + cclsorted = true; + lastchar = 0; + currccl = (yyval) = cclinit(); + } +#line 2392 "parse.c" /* yacc.c:1646 */ + break; + + case 72: +#line 883 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(isalnum); } +#line 2398 "parse.c" /* yacc.c:1646 */ + break; + + case 73: +#line 884 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(isalpha); } +#line 2404 "parse.c" /* yacc.c:1646 */ + break; + + case 74: +#line 885 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(IS_BLANK); } +#line 2410 "parse.c" /* yacc.c:1646 */ + break; + + case 75: +#line 886 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(iscntrl); } +#line 2416 "parse.c" /* yacc.c:1646 */ + break; + + case 76: +#line 887 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(isdigit); } +#line 2422 "parse.c" /* yacc.c:1646 */ + break; + + case 77: +#line 888 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(isgraph); } +#line 2428 "parse.c" /* yacc.c:1646 */ + break; + + case 78: +#line 889 "parse.y" /* yacc.c:1646 */ + { + CCL_EXPR(islower); + if (sf_case_ins()) + CCL_EXPR(isupper); + } +#line 2438 "parse.c" /* yacc.c:1646 */ + break; + + case 79: +#line 894 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(isprint); } +#line 2444 "parse.c" /* yacc.c:1646 */ + break; + + case 80: +#line 895 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(ispunct); } +#line 2450 "parse.c" /* yacc.c:1646 */ + break; + + case 81: +#line 896 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(isspace); } +#line 2456 "parse.c" /* yacc.c:1646 */ + break; + + case 82: +#line 897 "parse.y" /* yacc.c:1646 */ + { CCL_EXPR(isxdigit); } +#line 2462 "parse.c" /* yacc.c:1646 */ + break; + + case 83: +#line 898 "parse.y" /* yacc.c:1646 */ + { + CCL_EXPR(isupper); + if (sf_case_ins()) + CCL_EXPR(islower); + } +#line 2472 "parse.c" /* yacc.c:1646 */ + break; + + case 84: +#line 904 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(isalnum); } +#line 2478 "parse.c" /* yacc.c:1646 */ + break; + + case 85: +#line 905 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(isalpha); } +#line 2484 "parse.c" /* yacc.c:1646 */ + break; + + case 86: +#line 906 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(IS_BLANK); } +#line 2490 "parse.c" /* yacc.c:1646 */ + break; + + case 87: +#line 907 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(iscntrl); } +#line 2496 "parse.c" /* yacc.c:1646 */ + break; + + case 88: +#line 908 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(isdigit); } +#line 2502 "parse.c" /* yacc.c:1646 */ + break; + + case 89: +#line 909 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(isgraph); } +#line 2508 "parse.c" /* yacc.c:1646 */ + break; + + case 90: +#line 910 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(isprint); } +#line 2514 "parse.c" /* yacc.c:1646 */ + break; + + case 91: +#line 911 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(ispunct); } +#line 2520 "parse.c" /* yacc.c:1646 */ + break; + + case 92: +#line 912 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(isspace); } +#line 2526 "parse.c" /* yacc.c:1646 */ + break; + + case 93: +#line 913 "parse.y" /* yacc.c:1646 */ + { CCL_NEG_EXPR(isxdigit); } +#line 2532 "parse.c" /* yacc.c:1646 */ + break; + + case 94: +#line 914 "parse.y" /* yacc.c:1646 */ + { + if ( sf_case_ins() ) + warn(_("[:^lower:] is ambiguous in case insensitive scanner")); + else + CCL_NEG_EXPR(islower); + } +#line 2543 "parse.c" /* yacc.c:1646 */ + break; + + case 95: +#line 920 "parse.y" /* yacc.c:1646 */ + { + if ( sf_case_ins() ) + warn(_("[:^upper:] ambiguous in case insensitive scanner")); + else + CCL_NEG_EXPR(isupper); + } +#line 2554 "parse.c" /* yacc.c:1646 */ + break; + + case 96: +#line 929 "parse.y" /* yacc.c:1646 */ + { + if ( (yyvsp[0]) == nlch ) + rule_has_nl[num_rules] = true; + + ++rulelen; + + if (sf_case_ins() && has_case((yyvsp[0]))) + (yyval) = mkor (mkstate((yyvsp[0])), mkstate(reverse_case((yyvsp[0])))); + else + (yyval) = mkstate ((yyvsp[0])); + + (yyval) = link_machines( (yyvsp[-1]), (yyval)); + } +#line 2572 "parse.c" /* yacc.c:1646 */ + break; + + case 97: +#line 944 "parse.y" /* yacc.c:1646 */ + { (yyval) = mkstate( SYM_EPSILON ); } +#line 2578 "parse.c" /* yacc.c:1646 */ + break; + + +#line 2582 "parse.c" /* yacc.c:1646 */ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + return yyresult; +} +#line 947 "parse.y" /* yacc.c:1906 */ + + + +/* build_eof_action - build the "<<EOF>>" action for the active start + * conditions + */ + +void build_eof_action(void) + { + int i; + char action_text[MAXLINE]; + + for ( i = 1; i <= scon_stk_ptr; ++i ) + { + if ( sceof[scon_stk[i]] ) + format_pinpoint_message( + "multiple <<EOF>> rules for start condition %s", + scname[scon_stk[i]] ); + + else + { + sceof[scon_stk[i]] = true; + + if (previous_continued_action /* && previous action was regular */) + add_action("YY_RULE_SETUP\n"); + + snprintf( action_text, sizeof(action_text), "case YY_STATE_EOF(%s):\n", + scname[scon_stk[i]] ); + add_action( action_text ); + } + } + + line_directive_out(NULL, 1); + + /* This isn't a normal rule after all - don't count it as + * such, so we don't have any holes in the rule numbering + * (which make generating "rule can never match" warnings + * more difficult. + */ + --num_rules; + ++num_eof_rules; + } + + +/* format_synerr - write out formatted syntax error */ + +void format_synerr( const char *msg, const char arg[] ) + { + char errmsg[MAXLINE]; + + (void) snprintf( errmsg, sizeof(errmsg), msg, arg ); + synerr( errmsg ); + } + + +/* synerr - report a syntax error */ + +void synerr( const char *str ) + { + syntaxerror = true; + pinpoint_message( str ); + } + + +/* format_warn - write out formatted warning */ + +void format_warn( const char *msg, const char arg[] ) + { + char warn_msg[MAXLINE]; + + snprintf( warn_msg, sizeof(warn_msg), msg, arg ); + warn( warn_msg ); + } + + +/* warn - report a warning, unless -w was given */ + +void warn( const char *str ) + { + line_warning( str, linenum ); + } + +/* format_pinpoint_message - write out a message formatted with one string, + * pinpointing its location + */ + +void format_pinpoint_message( const char *msg, const char arg[] ) + { + char errmsg[MAXLINE]; + + snprintf( errmsg, sizeof(errmsg), msg, arg ); + pinpoint_message( errmsg ); + } + + +/* pinpoint_message - write out a message, pinpointing its location */ + +void pinpoint_message( const char *str ) + { + line_pinpoint( str, linenum ); + } + + +/* line_warning - report a warning at a given line, unless -w was given */ + +void line_warning( const char *str, int line ) + { + char warning[MAXLINE]; + + if ( ! nowarn ) + { + snprintf( warning, sizeof(warning), "warning, %s", str ); + line_pinpoint( warning, line ); + } + } + + +/* line_pinpoint - write out a message, pinpointing it at the given line */ + +void line_pinpoint( const char *str, int line ) + { + fprintf( stderr, "%s:%d: %s\n", infilename, line, str ); + } + + +/* yyerror - eat up an error message from the parser; + * currently, messages are ignore + */ + +void yyerror( const char *msg ) + { + (void)msg; + } diff --git a/src/parse.h b/src/parse.h new file mode 100644 index 0000000..8d35287 --- /dev/null +++ b/src/parse.h @@ -0,0 +1,154 @@ +/* A Bison parser, made by GNU Bison 3.0.4. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_YY_PARSE_H_INCLUDED +# define YY_YY_PARSE_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + CHAR = 258, + NUMBER = 259, + SECTEND = 260, + SCDECL = 261, + XSCDECL = 262, + NAME = 263, + PREVCCL = 264, + EOF_OP = 265, + TOK_OPTION = 266, + TOK_OUTFILE = 267, + TOK_PREFIX = 268, + TOK_YYCLASS = 269, + TOK_HEADER_FILE = 270, + TOK_EXTRA_TYPE = 271, + TOK_TABLES_FILE = 272, + CCE_ALNUM = 273, + CCE_ALPHA = 274, + CCE_BLANK = 275, + CCE_CNTRL = 276, + CCE_DIGIT = 277, + CCE_GRAPH = 278, + CCE_LOWER = 279, + CCE_PRINT = 280, + CCE_PUNCT = 281, + CCE_SPACE = 282, + CCE_UPPER = 283, + CCE_XDIGIT = 284, + CCE_NEG_ALNUM = 285, + CCE_NEG_ALPHA = 286, + CCE_NEG_BLANK = 287, + CCE_NEG_CNTRL = 288, + CCE_NEG_DIGIT = 289, + CCE_NEG_GRAPH = 290, + CCE_NEG_LOWER = 291, + CCE_NEG_PRINT = 292, + CCE_NEG_PUNCT = 293, + CCE_NEG_SPACE = 294, + CCE_NEG_UPPER = 295, + CCE_NEG_XDIGIT = 296, + CCL_OP_DIFF = 297, + CCL_OP_UNION = 298, + BEGIN_REPEAT_POSIX = 299, + END_REPEAT_POSIX = 300, + BEGIN_REPEAT_FLEX = 301, + END_REPEAT_FLEX = 302 + }; +#endif +/* Tokens. */ +#define CHAR 258 +#define NUMBER 259 +#define SECTEND 260 +#define SCDECL 261 +#define XSCDECL 262 +#define NAME 263 +#define PREVCCL 264 +#define EOF_OP 265 +#define TOK_OPTION 266 +#define TOK_OUTFILE 267 +#define TOK_PREFIX 268 +#define TOK_YYCLASS 269 +#define TOK_HEADER_FILE 270 +#define TOK_EXTRA_TYPE 271 +#define TOK_TABLES_FILE 272 +#define CCE_ALNUM 273 +#define CCE_ALPHA 274 +#define CCE_BLANK 275 +#define CCE_CNTRL 276 +#define CCE_DIGIT 277 +#define CCE_GRAPH 278 +#define CCE_LOWER 279 +#define CCE_PRINT 280 +#define CCE_PUNCT 281 +#define CCE_SPACE 282 +#define CCE_UPPER 283 +#define CCE_XDIGIT 284 +#define CCE_NEG_ALNUM 285 +#define CCE_NEG_ALPHA 286 +#define CCE_NEG_BLANK 287 +#define CCE_NEG_CNTRL 288 +#define CCE_NEG_DIGIT 289 +#define CCE_NEG_GRAPH 290 +#define CCE_NEG_LOWER 291 +#define CCE_NEG_PRINT 292 +#define CCE_NEG_PUNCT 293 +#define CCE_NEG_SPACE 294 +#define CCE_NEG_UPPER 295 +#define CCE_NEG_XDIGIT 296 +#define CCL_OP_DIFF 297 +#define CCL_OP_UNION 298 +#define BEGIN_REPEAT_POSIX 299 +#define END_REPEAT_POSIX 300 +#define BEGIN_REPEAT_FLEX 301 +#define END_REPEAT_FLEX 302 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_PARSE_H_INCLUDED */ diff --git a/src/scan.c b/src/scan.c new file mode 100644 index 0000000..2b8e056 --- /dev/null +++ b/src/scan.c @@ -0,0 +1,5092 @@ + +#line 3 "scan.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 0 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +typedef unsigned char YY_CHAR; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +#if defined(__GNUC__) && __GNUC__ >= 3 +__attribute__((__noreturn__)) +#endif +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + (yytext_ptr) -= (yy_more_len); \ + yyleng = (size_t) (yy_cp - (yytext_ptr)); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 252 +#define YY_END_OF_BUFFER 253 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[1110] = + { 0, + 0, 0, 0, 0, 0, 0, 249, 249, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 251, + 9, 20, 251, 18, 1, 19, 251, 251, 251, 251, + 17, 165, 150, 151, 165, 143, 165, 162, 163, 164, + 164, 165, 165, 165, 164, 149, 139, 165, 165, 141, + 142, 137, 138, 137, 136, 135, 136, 249, 249, 250, + 250, 41, 42, 41, 41, 41, 41, 41, 41, 50, + + 49, 51, 251, 171, 171, 166, 171, 167, 168, 170, + 172, 220, 221, 220, 218, 217, 219, 173, 175, 173, + 174, 173, 187, 187, 187, 187, 189, 191, 189, 189, + 189, 189, 190, 234, 239, 234, 238, 240, 240, 236, + 236, 236, 235, 235, 230, 231, 251, 132, 251, 25, + 26, 25, 22, 25, 25, 241, 243, 241, 244, 245, + 228, 228, 229, 228, 228, 228, 228, 228, 228, 228, + 131, 53, 52, 131, 131, 131, 131, 54, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 37, + + 34, 37, 35, 48, 45, 251, 48, 48, 44, 43, + 177, 176, 178, 179, 180, 181, 182, 183, 184, 32, + 33, 32, 31, 29, 30, 29, 28, 9, 20, 0, + 18, 1, 19, 0, 0, 0, 16, 10, 0, 0, + 0, 0, 4, 16, 5, 0, 2, 17, 150, 151, + 0, 0, 0, 145, 0, 161, 159, 0, 155, 155, + 0, 246, 246, 246, 0, 0, 144, 0, 149, 139, + 0, 0, 0, 141, 142, 154, 140, 0, 138, 136, + 135, 135, 133, 134, 249, 249, 247, 248, 42, 0, + 0, 39, 40, 0, 50, 49, 51, 0, 166, 0, + + 166, 169, 170, 221, 217, 175, 0, 185, 186, 191, + 188, 234, 239, 0, 237, 0, 223, 236, 236, 236, + 232, 233, 0, 132, 0, 26, 21, 23, 24, 241, + 243, 242, 0, 0, 229, 222, 226, 227, 53, 52, + 0, 130, 0, 0, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 55, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 36, 35, + 45, 46, 47, 32, 33, 30, 27, 0, 16, 10, + 0, 14, 0, 0, 0, 0, 0, 4, 16, 5, + + 0, 6, 0, 146, 0, 147, 0, 160, 0, 155, + 155, 0, 155, 155, 155, 246, 246, 157, 156, 0, + 158, 140, 148, 0, 154, 0, 133, 134, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 236, 222, 0, 0, + 131, 131, 131, 131, 131, 131, 131, 67, 131, 131, + 131, 72, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 14, 0, 0, 0, 0, 0, 0, 4, 8, + 5, 0, 155, 155, 155, 155, 155, 155, 155, 246, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 236, 56, + 57, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 73, 74, 131, 131, 131, 131, 79, 80, + 131, 131, 131, 131, 131, 131, 131, 85, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 94, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 15, 0, 0, 0, 0, 0, 8, 8, 8, + 0, 155, 155, 155, 155, 155, 155, 155, 0, 0, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 236, 236, 58, 131, + 131, 60, 131, 64, 131, 131, 131, 131, 70, 131, + 131, 131, 75, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 88, 131, 131, 131, 131, 92, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 0, 0, 0, 0, 3, 0, 0, 0, 8, 7, + + 8, 0, 155, 155, 155, 0, 0, 224, 225, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 225, 131, 131, 131, 63, 131, + 131, 131, 131, 131, 131, 131, 127, 131, 131, 131, + 131, 131, 131, 131, 131, 125, 131, 87, 131, 90, + 131, 91, 131, 131, 131, 106, 0, 131, 96, 131, + 0, 97, 0, 0, 0, 0, 0, 12, 0, 13, + 0, 153, 0, 152, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, + 131, 131, 131, 131, 131, 68, 131, 71, 131, 131, + 131, 131, 131, 131, 124, 131, 84, 131, 131, 89, + 131, 93, 104, 126, 0, 0, 0, 0, 0, 0, + 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, + 131, 131, 131, 131, 69, 131, 131, 131, 131, 81, + 131, 131, 131, 131, 131, 131, 0, 0, 115, 0, + + 0, 0, 0, 0, 0, 95, 131, 0, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 0, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 86, + 131, 131, 0, 0, 0, 0, 0, 0, 117, 0, + 105, 0, 0, 0, 0, 0, 118, 0, 0, 0, + 0, 0, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 0, 131, 131, 131, 131, 131, + + 131, 131, 123, 131, 131, 77, 131, 131, 131, 131, + 131, 0, 0, 111, 0, 121, 119, 112, 0, 0, + 0, 122, 120, 0, 0, 0, 0, 0, 0, 215, + 131, 131, 131, 131, 131, 131, 131, 127, 76, 131, + 83, 131, 128, 131, 107, 109, 0, 108, 110, 0, + 0, 0, 0, 0, 0, 0, 131, 131, 131, 65, + 131, 131, 131, 131, 78, 131, 113, 114, 99, 0, + 0, 0, 0, 100, 131, 131, 131, 131, 131, 131, + 131, 129, 98, 0, 102, 0, 131, 131, 131, 131, + 131, 68, 131, 101, 103, 131, 131, 62, 66, 131, + + 131, 131, 61, 69, 131, 131, 82, 59, 0 + } ; + +static yyconst YY_CHAR yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 6, 7, 8, 9, 1, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 19, 19, + 19, 19, 19, 19, 20, 21, 22, 23, 1, 24, + 25, 26, 27, 1, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 44, + 53, 54, 55, 56, 57, 1, 58, 59, 60, 61, + + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 44, 74, 75, 76, 77, 78, 79, 80, + 81, 44, 82, 83, 84, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst YY_CHAR yy_meta[85] = + { 0, + 1, 1, 2, 1, 3, 4, 1, 1, 1, 5, + 1, 6, 1, 7, 1, 8, 1, 5, 9, 9, + 9, 9, 10, 1, 1, 1, 1, 11, 11, 11, + 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 13, 14, 15, 1, 16, 11, 11, 11, + 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 5, 1, 17 + } ; + +static yyconst flex_uint16_t yy_base[1204] = + { 0, + 0, 84, 167, 250, 171, 184, 174, 179, 192, 233, + 196, 200, 334, 0, 3464, 3463, 203, 416, 206, 211, + 187, 216, 276, 417, 500, 0, 210, 223, 421, 427, + 436, 440, 583, 588, 669, 0, 277, 299, 584, 751, + 579, 580, 576, 732, 279, 305, 310, 444, 3498, 3970, + 228, 3970, 3493, 0, 322, 3970, 3465, 423, 827, 3438, + 0, 3970, 755, 3970, 3431, 3970, 448, 3390, 3970, 3970, + 3387, 3372, 222, 408, 444, 764, 3970, 3392, 230, 3370, + 3970, 3970, 3970, 3388, 0, 3371, 164, 3366, 3970, 3303, + 3281, 3970, 3970, 3332, 239, 119, 3281, 3276, 3226, 0, + + 3307, 3970, 3305, 3970, 476, 3302, 3300, 3970, 3246, 0, + 3970, 3970, 3970, 3281, 3970, 464, 3970, 3970, 3970, 3264, + 3970, 742, 3970, 3241, 751, 180, 3970, 3970, 3260, 0, + 3239, 757, 3970, 0, 3970, 3256, 3970, 200, 3232, 0, + 429, 241, 3188, 3169, 3970, 3970, 306, 3970, 323, 3970, + 3970, 3217, 3201, 3148, 3129, 0, 3970, 3176, 3970, 0, + 3970, 446, 3970, 3166, 3083, 3134, 435, 371, 3093, 3090, + 3970, 3140, 3970, 3121, 3115, 439, 440, 3970, 578, 751, + 586, 562, 735, 752, 0, 572, 577, 782, 791, 749, + 396, 809, 588, 582, 731, 734, 762, 768, 580, 3970, + + 3970, 3114, 588, 3970, 3970, 3116, 3060, 3057, 3970, 3970, + 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 0, + 3970, 3107, 3970, 3970, 3970, 3103, 3075, 825, 3970, 3073, + 0, 837, 3970, 3070, 795, 777, 0, 0, 891, 903, + 912, 924, 0, 774, 0, 451, 3970, 0, 858, 3970, + 3069, 2989, 472, 3970, 3065, 3044, 3970, 800, 236, 822, + 899, 3970, 275, 0, 2966, 2962, 3970, 2960, 949, 3970, + 3013, 2917, 2983, 2971, 3970, 0, 3970, 818, 3970, 0, + 0, 2992, 0, 0, 2988, 3970, 3970, 3970, 3970, 815, + 816, 3970, 3970, 484, 0, 2970, 3970, 935, 2953, 2949, + + 2949, 3970, 0, 3970, 940, 3970, 1005, 3970, 3970, 3970, + 3970, 0, 3970, 611, 3970, 0, 3970, 0, 821, 850, + 3970, 3970, 490, 3970, 608, 3970, 3970, 3970, 3970, 0, + 3970, 3970, 596, 2866, 3970, 0, 3970, 3970, 2945, 3970, + 2921, 3970, 855, 903, 0, 920, 717, 727, 917, 728, + 2912, 882, 939, 896, 902, 907, 935, 948, 937, 912, + 940, 951, 936, 0, 940, 3970, 943, 946, 1051, 962, + 1061, 969, 966, 1052, 984, 986, 1101, 2919, 3970, 1080, + 3970, 3970, 3970, 0, 3970, 3970, 3970, 1021, 0, 0, + 1134, 3970, 2919, 1147, 1046, 1056, 1058, 0, 1065, 0, + + 874, 3970, 998, 3970, 1004, 3970, 1011, 3970, 1070, 731, + 1090, 1143, 1223, 1153, 1289, 1002, 0, 3970, 3970, 2510, + 1102, 3970, 3970, 1083, 0, 1085, 0, 0, 1098, 1106, + 1023, 3970, 1106, 1151, 1289, 1290, 1156, 2569, 1291, 1154, + 1292, 1301, 1302, 1158, 1353, 1150, 1141, 0, 1138, 1139, + 1153, 1160, 1155, 1288, 1285, 1296, 1285, 0, 1297, 1285, + 1302, 0, 1289, 1288, 1299, 1310, 1325, 1323, 2573, 1335, + 1329, 1349, 1346, 1346, 1347, 1345, 1352, 1356, 1359, 1350, + 1361, 1364, 1389, 1366, 1352, 1355, 1377, 1374, 1390, 1395, + 1392, 1406, 1403, 1398, 1409, 1410, 1399, 1403, 1415, 1111, + + 1478, 3970, 1190, 1482, 1197, 1424, 1420, 1417, 0, 933, + 0, 1427, 1504, 1570, 1606, 874, 2530, 1576, 1651, 3970, + 3970, 1420, 1430, 1435, 1422, 2529, 1569, 1574, 1568, 1577, + 1575, 1570, 1581, 1590, 1593, 1620, 1582, 1583, 1623, 1633, + 1622, 1631, 1636, 1652, 1634, 1663, 1664, 1625, 1615, 3970, + 3970, 1649, 1642, 2564, 1646, 1651, 1656, 1660, 1699, 1669, + 1668, 1689, 0, 0, 1686, 1675, 1679, 1689, 0, 0, + 2560, 1685, 1698, 2559, 1690, 1689, 1699, 0, 1694, 1712, + 1705, 1703, 1698, 1718, 1705, 1707, 1713, 0, 1717, 1729, + 1726, 1713, 1720, 1718, 1739, 1724, 1748, 1736, 1747, 1737, + + 2570, 3970, 1198, 1206, 1730, 1748, 1746, 0, 1393, 1793, + 2545, 952, 2426, 1782, 1818, 1554, 1068, 1151, 1761, 2347, + 1752, 1771, 3970, 1781, 1791, 1782, 1787, 1789, 1798, 1795, + 1793, 1822, 1836, 1831, 1796, 1842, 1839, 1845, 1808, 1846, + 1794, 1852, 1861, 1866, 1847, 1863, 1840, 1863, 0, 1852, + 1869, 0, 1858, 0, 2352, 1871, 1857, 1871, 0, 1867, + 2349, 1864, 0, 1882, 1869, 1882, 2309, 1880, 1877, 1891, + 2174, 1875, 1883, 1888, 0, 1903, 1896, 1899, 1916, 0, + 1904, 1906, 1906, 1922, 2063, 1924, 1926, 1920, 1970, 1917, + 1918, 1917, 1937, 1923, 2016, 1448, 1926, 1936, 1968, 3970, + + 1977, 1936, 1946, 1922, 1929, 1882, 1865, 3970, 3970, 1962, + 1980, 1971, 1981, 1964, 1970, 1983, 1984, 1987, 1989, 1991, + 1990, 1993, 1994, 1996, 1999, 2010, 2002, 1992, 2007, 2019, + 2032, 2020, 2024, 0, 0, 1827, 1991, 2016, 0, 2035, + 2025, 2036, 2030, 2025, 2025, 2030, 1799, 2050, 2041, 2053, + 2048, 2053, 2054, 2044, 2057, 0, 2063, 0, 2046, 0, + 1723, 0, 2063, 2067, 2056, 0, 2097, 2064, 0, 2068, + 2109, 0, 1645, 2073, 2071, 1639, 1486, 3970, 1596, 3970, + 2058, 3970, 1627, 3970, 1627, 1596, 1591, 1571, 1536, 1484, + 1471, 1451, 1434, 1431, 1425, 2096, 2086, 2124, 2111, 2107, + + 2127, 2130, 2132, 2137, 2138, 2157, 2141, 2131, 2121, 2129, + 2126, 2138, 2146, 2145, 2152, 0, 2150, 0, 2147, 2161, + 2153, 2158, 2158, 2161, 0, 2162, 0, 2165, 2167, 0, + 2177, 0, 0, 0, 2177, 2165, 2170, 2210, 2173, 2185, + 2180, 2185, 2198, 2183, 2195, 2212, 2196, 2207, 1386, 1315, + 2208, 2253, 3970, 1299, 1284, 1277, 1223, 1161, 1155, 1142, + 1129, 1078, 1055, 1041, 1067, 1036, 1000, 965, 925, 893, + 881, 869, 861, 843, 802, 776, 2220, 2221, 2228, 2221, + 2229, 2239, 2238, 2228, 0, 2228, 2239, 2241, 2252, 0, + 2237, 2243, 2246, 2242, 2251, 2259, 2264, 2251, 3970, 2261, + + 2263, 2264, 2280, 2264, 2261, 0, 2279, 2285, 2272, 3970, + 2279, 2280, 2296, 2279, 2281, 2283, 2301, 2286, 2332, 3970, + 2340, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 735, 612, 608, 598, 441, 374, 261, 245, + 202, 152, 149, 137, 165, 2295, 2290, 2307, 2320, 2325, + 2315, 2323, 2331, 2325, 2297, 2319, 2335, 2324, 2327, 0, + 2333, 2329, 2329, 2333, 2346, 2350, 2354, 2346, 3970, 2340, + 0, 2340, 2345, 2359, 2362, 2357, 3970, 2371, 2354, 2356, + 2358, 2381, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 3970, 3970, 128, 2379, 2377, 2371, 2386, 2376, + + 2378, 2378, 0, 2395, 2396, 0, 2386, 2385, 2407, 2404, + 2402, 2406, 2414, 3970, 2403, 3970, 3970, 3970, 2411, 2418, + 2407, 3970, 3970, 2404, 2421, 2422, 2412, 2417, 2416, 3970, + 2419, 2420, 2417, 2424, 2435, 2437, 2441, 0, 0, 2453, + 0, 2436, 0, 2451, 3970, 3970, 2445, 3970, 3970, 2447, + 2458, 2447, 2462, 2465, 2463, 2468, 2474, 2468, 2462, 0, + 2464, 2461, 2460, 2480, 0, 2461, 3970, 3970, 3970, 2483, + 2484, 2472, 2480, 3970, 2492, 2482, 2494, 2487, 2495, 2501, + 2492, 0, 3970, 2496, 3970, 2509, 2501, 2503, 2503, 2504, + 2504, 0, 2519, 3970, 3970, 2521, 2513, 0, 0, 2528, + + 2513, 2515, 0, 0, 2533, 2534, 0, 0, 3970, 2596, + 2613, 2630, 2647, 2664, 2681, 2698, 2715, 2732, 2749, 2766, + 2783, 2800, 2817, 2834, 2851, 2868, 2885, 2902, 2912, 2928, + 2937, 2953, 2970, 2981, 2997, 3014, 3031, 3048, 3058, 3074, + 3091, 3108, 3122, 3132, 3148, 3165, 3182, 3199, 3210, 2112, + 3222, 3239, 3249, 3265, 3282, 3289, 3295, 3311, 3321, 3337, + 3354, 3371, 2558, 3381, 3398, 3415, 3432, 3449, 3466, 3483, + 3500, 3517, 3527, 3543, 3557, 3567, 3583, 3600, 3617, 3634, + 3645, 3657, 3674, 3691, 3708, 3725, 3735, 3744, 3760, 3777, + 3794, 2572, 3804, 3821, 3838, 3855, 3872, 3880, 3885, 3901, + + 3918, 3935, 3952 + } ; + +static yyconst flex_int16_t yy_def[1204] = + { 0, + 1109, 1109, 1110, 1110, 1111, 1112, 1113, 1113, 1114, 1114, + 1115, 1115, 1109, 13, 1116, 1116, 1117, 1117, 1118, 1118, + 1119, 1119, 1120, 1120, 1109, 25, 1121, 1121, 1122, 1122, + 1123, 1123, 1124, 1124, 1109, 35, 1125, 1125, 1126, 1126, + 1116, 1116, 1116, 1116, 1127, 1127, 1128, 1128, 1109, 1109, + 1109, 1109, 1109, 1129, 1109, 1109, 1109, 1109, 1130, 1109, + 1131, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1132, 1133, 1134, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1135, 1136, 1135, 1137, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1138, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1139, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1133, 1109, 1109, 1133, 1140, 1109, 1109, 1109, 1141, + 1109, 1133, 1109, 1142, 1109, 1142, 1109, 1143, 1109, 1144, + 1144, 1144, 1109, 1109, 1109, 1109, 1145, 1109, 1145, 1109, + 1109, 1109, 1109, 1109, 1109, 1146, 1109, 1146, 1109, 1147, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1148, 1109, 1109, 1109, 1149, 1149, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1109, + + 1109, 1151, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1152, + 1109, 1152, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1153, 1109, 1109, 1109, 1109, 1109, 1154, 1155, 1109, 1109, + 1109, 1109, 1156, 1154, 1157, 1158, 1109, 1159, 1109, 1109, + 1109, 1109, 1160, 1109, 1109, 1109, 1109, 1109, 1161, 1161, + 1162, 1109, 1109, 1163, 1109, 1109, 1109, 1164, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1165, 1109, 1109, 1109, 1166, + 1167, 1167, 1168, 1169, 1170, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1171, 1172, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1173, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1174, 1109, 1175, 1109, 1175, 1109, 1176, 1176, 1176, + 1109, 1109, 1177, 1109, 1177, 1109, 1109, 1109, 1109, 1178, + 1109, 1109, 1109, 1109, 1109, 1179, 1109, 1109, 1109, 1109, + 1180, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1109, 1109, + 1109, 1109, 1109, 1183, 1109, 1109, 1109, 1109, 1184, 1185, + 1186, 1109, 1109, 1109, 1109, 1109, 1109, 1187, 1184, 1188, + + 1189, 1109, 1189, 1109, 1190, 1109, 1190, 1109, 1109, 1191, + 1191, 1191, 1109, 1191, 1191, 1109, 1192, 1109, 1109, 1193, + 1109, 1109, 1109, 1109, 1194, 1109, 1195, 1196, 1109, 1109, + 1197, 1109, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1200, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1186, + + 1186, 1109, 1186, 1186, 1109, 1109, 1109, 1109, 1187, 1201, + 1188, 1109, 1109, 1191, 415, 413, 413, 1191, 415, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1109, + 1109, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, + + 1109, 1109, 1186, 1186, 1109, 1109, 1109, 1201, 1201, 1201, + 1109, 513, 513, 1191, 415, 1191, 1191, 1191, 1109, 1109, + 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1109, 1109, 1109, 1109, 1109, 1202, 1109, 1109, 1201, 1109, + + 1201, 1109, 1191, 1191, 1191, 1109, 1109, 1109, 1109, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1199, 1199, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, + 1109, 1181, 1109, 1109, 1109, 1109, 1202, 1109, 1202, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1203, 1109, + 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 0, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109 + } ; + +static yyconst flex_uint16_t yy_nxt[4055] = + { 0, + 50, 51, 52, 50, 53, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 50, 50, 50, 50, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 50, 50, 50, 50, 55, 56, 50, 57, 50, + 58, 50, 59, 50, 50, 50, 50, 50, 50, 50, + + 50, 60, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 50, 50, 50, 50, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 50, 50, 50, 63, 64, + 291, 65, 66, 83, 67, 84, 89, 68, 69, 70, + 70, 89, 1030, 70, 71, 86, 83, 995, 84, 50, + 72, 994, 87, 70, 93, 309, 94, 101, 102, 291, + + 103, 101, 102, 993, 103, 113, 992, 114, 119, 315, + 120, 121, 148, 119, 149, 120, 121, 115, 50, 73, + 74, 116, 116, 116, 116, 148, 90, 149, 91, 228, + 229, 90, 230, 91, 309, 93, 95, 94, 276, 124, + 125, 99, 126, 96, 97, 283, 98, 284, 75, 70, + 70, 76, 77, 316, 78, 66, 991, 67, 79, 122, + 68, 69, 70, 70, 122, 95, 70, 71, 124, 125, + 290, 126, 96, 80, 260, 261, 70, 95, 128, 201, + 129, 221, 202, 222, 96, 97, 117, 98, 411, 412, + 223, 130, 320, 416, 416, 203, 203, 203, 203, 990, + + 290, 201, 73, 74, 202, 81, 95, 221, 324, 222, + 325, 277, 225, 96, 226, 989, 223, 203, 203, 203, + 203, 320, 227, 232, 233, 324, 234, 325, 131, 132, + 133, 75, 70, 70, 104, 105, 106, 104, 107, 104, + 104, 104, 104, 104, 104, 104, 108, 104, 108, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 109, + 104, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 104, 104, 104, 104, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 104, 104, 104, 113, 128, + 114, 129, 291, 151, 235, 152, 263, 263, 988, 151, + 115, 152, 130, 153, 116, 116, 116, 116, 157, 153, + 158, 159, 157, 367, 158, 159, 225, 333, 226, 254, + 254, 291, 255, 402, 334, 403, 227, 265, 264, 266, + 319, 236, 267, 267, 267, 267, 290, 343, 344, 131, + 132, 133, 367, 154, 406, 155, 407, 298, 299, 154, + 300, 155, 305, 305, 305, 305, 432, 264, 433, 160, + 319, 236, 324, 160, 325, 987, 290, 343, 344, 117, + + 134, 134, 135, 134, 136, 137, 134, 134, 134, 138, + 134, 134, 134, 134, 134, 134, 134, 139, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 141, 140, 140, 140, 140, 140, + 140, 142, 143, 134, 144, 134, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 141, 140, 140, 140, 140, 140, 140, + 142, 145, 134, 146, 162, 163, 205, 164, 206, 162, + 163, 165, 164, 353, 211, 211, 165, 333, 216, 351, + + 166, 212, 212, 358, 334, 166, 380, 380, 380, 380, + 324, 217, 325, 352, 213, 213, 346, 359, 347, 371, + 315, 218, 348, 353, 214, 214, 219, 167, 372, 215, + 215, 377, 167, 358, 168, 169, 207, 170, 208, 168, + 169, 217, 170, 352, 213, 213, 346, 359, 347, 371, + 218, 348, 986, 214, 214, 219, 167, 372, 215, 215, + 377, 167, 985, 168, 316, 209, 984, 210, 168, 171, + 172, 173, 171, 174, 175, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 176, 177, + 171, 171, 171, 178, 171, 171, 179, 180, 181, 182, + + 183, 184, 185, 186, 187, 185, 185, 188, 189, 190, + 191, 192, 185, 193, 194, 195, 196, 197, 198, 185, + 199, 171, 171, 171, 171, 171, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 185, 185, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 185, 199, + 171, 171, 171, 205, 216, 206, 249, 250, 373, 251, + 263, 263, 453, 252, 354, 269, 270, 217, 271, 263, + 263, 454, 272, 457, 374, 263, 263, 218, 349, 356, + 365, 273, 219, 411, 412, 355, 350, 274, 373, 983, + 366, 453, 264, 375, 354, 376, 235, 217, 944, 357, + + 454, 264, 457, 207, 374, 208, 218, 264, 349, 356, + 365, 219, 388, 360, 355, 399, 350, 361, 362, 275, + 366, 264, 363, 375, 943, 376, 228, 229, 357, 230, + 264, 409, 209, 236, 210, 238, 264, 253, 232, 233, + 368, 234, 388, 360, 413, 399, 253, 361, 362, 426, + 369, 429, 363, 370, 239, 430, 240, 446, 240, 249, + 250, 409, 251, 236, 240, 942, 252, 240, 241, 242, + 368, 240, 243, 244, 411, 412, 402, 245, 403, 426, + 369, 429, 370, 941, 239, 430, 240, 446, 240, 447, + 449, 940, 391, 392, 240, 393, 616, 240, 241, 242, + + 240, 243, 244, 939, 391, 392, 245, 393, 246, 394, + 394, 394, 394, 391, 392, 938, 393, 414, 414, 447, + 449, 394, 394, 394, 394, 391, 392, 459, 393, 410, + 394, 394, 394, 394, 609, 395, 298, 299, 450, 300, + 253, 462, 394, 394, 394, 394, 455, 937, 463, 415, + 269, 270, 464, 271, 396, 451, 459, 272, 305, 305, + 305, 305, 469, 456, 395, 397, 273, 460, 450, 452, + 462, 461, 274, 465, 703, 466, 455, 463, 415, 467, + 470, 464, 472, 468, 396, 451, 471, 936, 473, 474, + 475, 469, 456, 478, 484, 397, 482, 460, 452, 483, + + 402, 461, 403, 465, 275, 466, 406, 410, 407, 467, + 470, 472, 468, 406, 610, 407, 471, 473, 474, 475, + 262, 262, 935, 478, 484, 432, 482, 433, 487, 483, + 488, 253, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 438, + 442, 438, 443, 438, 438, 444, 438, 487, 934, 488, + 445, 499, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 442, + 438, 443, 438, 438, 444, 438, 476, 485, 479, 933, + 506, 499, 480, 508, 486, 932, 477, 481, 380, 380, + + 380, 380, 507, 521, 521, 521, 521, 510, 432, 931, + 433, 512, 513, 602, 522, 603, 476, 485, 479, 506, + 411, 412, 480, 508, 486, 477, 523, 481, 489, 524, + 490, 507, 930, 491, 492, 501, 502, 510, 503, 493, + 494, 512, 411, 412, 522, 495, 496, 525, 505, 392, + 497, 393, 504, 504, 504, 504, 523, 498, 489, 524, + 490, 514, 514, 491, 492, 394, 394, 394, 394, 493, + 494, 518, 518, 526, 495, 496, 526, 525, 526, 497, + 526, 548, 549, 929, 550, 551, 552, 553, 537, 527, + 554, 530, 502, 515, 603, 532, 928, 410, 505, 392, + + 602, 393, 603, 411, 412, 411, 412, 604, 502, 927, + 503, 548, 549, 550, 551, 926, 552, 553, 537, 527, + 554, 530, 515, 410, 410, 532, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 411, 412, 925, 517, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + + 516, 516, 516, 516, 410, 410, 410, 519, 519, 519, + 519, 526, 526, 526, 526, 555, 519, 519, 519, 519, + 519, 519, 556, 526, 526, 557, 558, 528, 559, 561, + 529, 924, 560, 562, 563, 531, 533, 564, 923, 534, + 565, 411, 412, 535, 536, 555, 519, 519, 519, 519, + 519, 519, 556, 922, 567, 557, 558, 528, 559, 561, + 529, 560, 562, 563, 531, 533, 569, 564, 534, 570, + 565, 917, 566, 535, 536, 1109, 571, 572, 573, 574, + 538, 539, 540, 541, 567, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 609, 544, 569, 585, 545, 570, + + 546, 566, 586, 547, 584, 587, 571, 572, 573, 574, + 538, 539, 540, 541, 588, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 582, 544, 585, 545, 589, 546, + 583, 586, 547, 590, 584, 587, 591, 592, 593, 594, + 595, 596, 916, 597, 588, 598, 601, 864, 599, 600, + 778, 605, 779, 863, 582, 606, 862, 607, 589, 611, + 583, 619, 620, 590, 621, 591, 622, 592, 593, 594, + 595, 596, 597, 861, 610, 598, 601, 599, 600, 501, + 502, 605, 503, 604, 502, 606, 503, 607, 778, 611, + 779, 619, 620, 860, 621, 622, 504, 504, 504, 504, + + 504, 504, 504, 504, 410, 410, 859, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 411, 412, 858, 613, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 410, 410, 410, 614, 614, + 526, 526, 526, 857, 617, 617, 526, 526, 778, 526, + + 779, 626, 629, 526, 526, 526, 411, 412, 259, 624, + 628, 625, 526, 856, 627, 526, 631, 635, 855, 630, + 633, 636, 411, 412, 615, 615, 615, 615, 411, 412, + 632, 626, 629, 615, 615, 615, 615, 615, 615, 624, + 628, 625, 526, 627, 526, 526, 631, 635, 630, 854, + 633, 636, 853, 526, 647, 526, 526, 639, 526, 648, + 632, 637, 634, 615, 615, 615, 615, 615, 615, 618, + 618, 618, 618, 638, 526, 640, 644, 641, 618, 618, + 618, 618, 618, 618, 647, 526, 526, 639, 648, 649, + 654, 637, 634, 650, 646, 851, 642, 652, 653, 643, + + 655, 848, 659, 638, 640, 645, 644, 641, 618, 618, + 618, 618, 618, 618, 656, 660, 661, 662, 665, 649, + 654, 663, 650, 664, 646, 642, 652, 653, 643, 667, + 655, 657, 659, 668, 672, 645, 670, 658, 831, 671, + 673, 674, 675, 676, 660, 677, 661, 662, 665, 678, + 663, 679, 664, 680, 681, 682, 683, 684, 667, 685, + 686, 657, 687, 668, 672, 670, 688, 658, 671, 673, + 689, 674, 675, 676, 677, 690, 693, 691, 694, 678, + 679, 696, 680, 692, 681, 682, 683, 684, 685, 697, + 686, 687, 698, 706, 699, 700, 688, 701, 708, 689, + + 704, 704, 709, 526, 526, 690, 693, 691, 694, 526, + 696, 526, 692, 526, 820, 526, 526, 526, 526, 697, + 526, 698, 712, 706, 714, 711, 716, 708, 710, 721, + 526, 713, 709, 717, 411, 412, 705, 705, 705, 705, + 715, 726, 809, 728, 526, 705, 705, 705, 705, 705, + 705, 718, 712, 526, 714, 711, 716, 710, 526, 721, + 713, 526, 720, 717, 526, 719, 724, 526, 526, 526, + 715, 726, 728, 727, 526, 705, 705, 705, 705, 705, + 705, 718, 722, 526, 723, 526, 734, 729, 526, 732, + 784, 725, 720, 731, 735, 719, 724, 736, 733, 737, + + 739, 730, 744, 727, 743, 745, 741, 783, 747, 748, + 749, 738, 722, 750, 723, 734, 742, 729, 752, 732, + 725, 753, 754, 731, 735, 756, 736, 757, 733, 737, + 739, 730, 744, 743, 758, 745, 741, 747, 759, 748, + 749, 738, 760, 750, 761, 742, 762, 764, 752, 763, + 753, 765, 754, 766, 756, 768, 757, 769, 770, 772, + 773, 782, 774, 758, 775, 776, 780, 781, 759, 699, + 700, 760, 701, 761, 411, 412, 762, 764, 763, 700, + 765, 411, 412, 766, 526, 768, 526, 769, 770, 772, + 773, 774, 526, 526, 775, 776, 780, 781, 411, 412, + + 410, 785, 526, 526, 790, 526, 526, 786, 787, 526, + 789, 526, 526, 526, 526, 526, 526, 695, 526, 788, + 794, 526, 810, 803, 526, 796, 771, 791, 798, 526, + 792, 785, 526, 793, 790, 795, 799, 786, 787, 789, + 797, 526, 526, 800, 802, 801, 526, 804, 805, 788, + 794, 807, 810, 803, 526, 796, 791, 808, 798, 792, + 811, 806, 793, 812, 795, 814, 799, 815, 816, 797, + 817, 818, 800, 813, 802, 801, 819, 804, 805, 821, + 822, 807, 823, 824, 825, 826, 828, 808, 827, 811, + 829, 806, 830, 812, 832, 814, 833, 815, 816, 817, + + 818, 834, 852, 813, 841, 819, 842, 849, 526, 821, + 822, 850, 823, 824, 825, 826, 828, 827, 526, 767, + 829, 830, 364, 364, 832, 866, 833, 835, 836, 526, + 834, 852, 837, 526, 841, 838, 842, 849, 839, 843, + 844, 850, 865, 840, 845, 869, 526, 846, 868, 526, + 847, 867, 526, 526, 526, 866, 878, 835, 836, 526, + 526, 879, 837, 526, 871, 838, 877, 880, 839, 843, + 844, 865, 840, 870, 845, 869, 872, 846, 868, 526, + 847, 867, 881, 873, 874, 876, 878, 882, 875, 755, + 883, 879, 884, 887, 871, 885, 877, 880, 886, 888, + + 889, 891, 870, 890, 892, 872, 893, 894, 897, 895, + 899, 881, 873, 874, 876, 898, 905, 882, 875, 883, + 904, 906, 884, 887, 885, 896, 907, 886, 888, 908, + 889, 891, 890, 909, 892, 910, 893, 894, 897, 895, + 899, 900, 526, 914, 898, 901, 905, 911, 902, 904, + 912, 906, 915, 918, 896, 920, 907, 921, 903, 908, + 913, 946, 909, 947, 949, 910, 945, 948, 950, 951, + 953, 900, 914, 952, 954, 901, 955, 911, 902, 956, + 912, 915, 918, 957, 958, 959, 961, 903, 960, 913, + 962, 946, 963, 947, 949, 945, 948, 964, 950, 951, + + 953, 965, 952, 966, 954, 967, 955, 968, 971, 956, + 969, 970, 957, 972, 958, 959, 961, 960, 973, 974, + 962, 975, 963, 976, 751, 977, 964, 978, 979, 980, + 997, 965, 982, 966, 920, 967, 921, 968, 971, 969, + 970, 996, 920, 972, 921, 1005, 981, 973, 998, 974, + 999, 975, 1000, 976, 977, 1001, 978, 979, 1002, 980, + 997, 982, 1003, 1004, 746, 1006, 1007, 740, 1008, 1009, + 996, 1010, 707, 1011, 1005, 981, 1012, 1013, 998, 1014, + 999, 1015, 1000, 1016, 1017, 1001, 1018, 1019, 1002, 1020, + 1021, 1022, 1003, 1004, 1006, 1023, 1007, 1008, 1024, 1009, + + 1025, 1010, 1011, 1026, 1028, 1012, 1013, 1027, 1029, 1014, + 1031, 1015, 1032, 1016, 1017, 1018, 1019, 1033, 1020, 1034, + 1021, 1022, 1035, 1036, 1037, 1023, 1038, 1039, 1024, 1025, + 1040, 1041, 1026, 1028, 1042, 1043, 1027, 1044, 1029, 1045, + 1031, 1046, 1032, 1047, 1048, 1049, 1033, 1050, 1052, 1034, + 1051, 1035, 1036, 1037, 1053, 1060, 1038, 1039, 1054, 1040, + 1041, 1055, 1056, 1057, 1042, 1043, 1058, 1044, 1059, 1045, + 1061, 1046, 1062, 1047, 1048, 1049, 1063, 1050, 1052, 1051, + 1064, 410, 1065, 1066, 1053, 1060, 1067, 1054, 1068, 1069, + 1055, 1056, 1057, 1070, 1071, 1058, 1072, 1059, 1073, 1074, + + 1061, 1075, 1062, 1076, 1077, 1078, 1063, 1079, 1080, 1081, + 1064, 1065, 1082, 1066, 1083, 1084, 1067, 1085, 1068, 1069, + 1086, 1087, 1070, 1088, 1071, 1089, 1072, 1090, 1073, 1074, + 1091, 1075, 1092, 1076, 1077, 1078, 1079, 1080, 1093, 1081, + 1094, 1082, 1095, 1097, 1083, 1084, 1085, 1096, 1098, 1099, + 1086, 1087, 1100, 1088, 1101, 1089, 1102, 1090, 1103, 1104, + 1091, 1105, 1092, 1106, 1107, 1108, 417, 1093, 417, 1094, + 702, 695, 1095, 1097, 669, 666, 1096, 1098, 1099, 651, + 520, 1100, 520, 623, 1101, 410, 1102, 1103, 568, 1104, + 1105, 526, 1106, 421, 1107, 1108, 62, 62, 62, 62, + + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 50, 50, + + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + + 220, 220, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 231, + 231, 392, 231, 231, 379, 458, 342, 231, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 248, 248, 339, 248, 248, 336, + 301, 299, 248, 259, 301, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 262, 296, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 268, 268, 268, + 286, 268, 268, 282, 424, 423, 268, 280, 422, 280, + + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 281, 270, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 421, 285, 419, 285, 285, 295, 418, + 408, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 303, 303, 254, 303, 303, + 404, 250, 233, 303, 308, 229, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 311, 387, 311, 311, 311, 311, 311, 311, 311, + + 311, 311, 311, 311, 311, 386, 311, 311, 312, 385, + 312, 383, 382, 312, 312, 312, 312, 312, 381, 379, + 342, 312, 314, 340, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 318, + 318, 339, 318, 318, 338, 337, 317, 318, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 330, 336, 330, 335, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 331, 330, + 330, 330, 332, 329, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 341, + + 328, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 345, 345, 327, 326, + 345, 345, 378, 322, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 384, + 321, 384, 384, 384, 317, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 231, 231, 313, 231, + 231, 307, 310, 307, 231, 389, 306, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 390, 304, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 398, + + 398, 302, 299, 301, 398, 400, 400, 297, 296, 294, + 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 248, 248, + 293, 248, 248, 292, 289, 288, 248, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 287, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 286, 410, + 410, 259, 282, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 420, 420, + 279, 420, 420, 278, 270, 258, 420, 420, 425, 257, + + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 280, 256, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 281, 250, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 427, + 247, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 427, 428, 233, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 229, 285, 1109, 285, 285, + + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 295, 111, 111, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 303, 303, 1109, 303, 303, 1109, + 1109, 1109, 303, 312, 1109, 312, 1109, 1109, 312, 312, + 312, 312, 312, 1109, 1109, 1109, 312, 314, 1109, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 318, 318, 1109, 318, 318, 1109, + 1109, 1109, 318, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + + 330, 1109, 330, 1109, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 1109, 330, 330, 330, 448, 1109, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 341, 1109, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 345, 345, 1109, 1109, 345, 345, 378, 1109, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 384, 1109, 384, 384, 384, 1109, + 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 389, 1109, 389, 389, 389, 389, 389, 389, 389, + + 389, 389, 389, 389, 389, 389, 389, 389, 390, 1109, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 509, 509, 1109, 509, 509, 1109, 1109, 1109, + 509, 511, 511, 1109, 511, 511, 1109, 1109, 1109, 511, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 1109, 410, 410, 410, 410, + + 410, 410, 410, 410, 410, 410, 410, 410, 1109, 410, + 410, 420, 420, 1109, 420, 420, 1109, 1109, 1109, 420, + 420, 425, 1109, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 427, 1109, + 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 428, 1109, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 438, + 438, 438, 318, 318, 1109, 318, 318, 1109, 1109, 1109, + + 318, 448, 1109, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 608, 1109, + 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, + 608, 608, 608, 608, 608, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 919, 919, 919, 919, 919, 919, 919, 919, + 919, 919, 919, 919, 919, 919, 919, 919, 919, 49, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 + } ; + +static yyconst flex_int16_t yy_chk[4055] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, + 96, 3, 3, 5, 3, 5, 7, 3, 3, 3, + 3, 8, 995, 3, 3, 6, 6, 945, 6, 21, + 3, 944, 6, 3, 9, 126, 9, 11, 11, 96, + + 11, 12, 12, 943, 12, 17, 942, 17, 19, 138, + 19, 19, 27, 20, 27, 20, 20, 17, 22, 3, + 3, 17, 17, 17, 17, 28, 7, 28, 7, 51, + 51, 8, 51, 8, 126, 10, 9, 10, 79, 21, + 21, 10, 21, 9, 9, 87, 9, 87, 3, 3, + 3, 4, 4, 138, 4, 4, 941, 4, 4, 19, + 4, 4, 4, 4, 20, 9, 4, 4, 22, 22, + 95, 22, 9, 4, 73, 73, 4, 10, 23, 37, + 23, 45, 37, 45, 10, 10, 17, 10, 259, 259, + 45, 23, 142, 263, 263, 37, 37, 37, 37, 940, + + 95, 38, 4, 4, 38, 4, 10, 46, 147, 46, + 147, 79, 47, 10, 47, 939, 46, 38, 38, 38, + 38, 142, 47, 55, 55, 149, 55, 149, 23, 23, + 23, 4, 4, 4, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 18, 24, + 18, 24, 168, 29, 58, 29, 74, 74, 938, 30, + 18, 30, 24, 29, 18, 18, 18, 18, 31, 30, + 31, 31, 32, 191, 32, 32, 48, 162, 48, 67, + 67, 168, 67, 246, 162, 246, 48, 75, 74, 75, + 141, 58, 75, 75, 75, 75, 167, 176, 177, 24, + 24, 24, 191, 29, 253, 29, 253, 105, 105, 30, + 105, 30, 116, 116, 116, 116, 294, 74, 294, 31, + 141, 58, 323, 32, 323, 937, 167, 176, 177, 18, + + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 33, 33, 39, 33, 39, 34, + 34, 33, 34, 182, 41, 42, 34, 333, 43, 181, + + 33, 41, 42, 186, 333, 34, 203, 203, 203, 203, + 325, 43, 325, 181, 41, 42, 179, 187, 179, 193, + 314, 43, 179, 182, 41, 42, 43, 33, 194, 41, + 42, 199, 34, 186, 33, 33, 39, 33, 39, 34, + 34, 43, 34, 181, 41, 42, 179, 187, 179, 193, + 43, 179, 936, 41, 42, 43, 33, 194, 41, 42, + 199, 34, 935, 33, 314, 39, 934, 39, 34, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 40, 44, 40, 63, 63, 195, 63, + 122, 122, 347, 63, 183, 76, 76, 44, 76, 125, + 125, 348, 76, 350, 196, 132, 132, 44, 180, 184, + 190, 76, 44, 410, 410, 183, 180, 76, 195, 933, + 190, 347, 122, 197, 183, 198, 235, 44, 876, 184, + + 348, 125, 350, 40, 196, 40, 44, 132, 180, 184, + 190, 44, 236, 188, 183, 244, 180, 188, 189, 76, + 190, 122, 189, 197, 875, 198, 228, 228, 184, 228, + 125, 258, 40, 235, 40, 59, 132, 63, 232, 232, + 192, 232, 236, 188, 260, 244, 76, 188, 189, 278, + 192, 290, 189, 192, 59, 291, 59, 319, 59, 249, + 249, 258, 249, 235, 59, 874, 249, 59, 59, 59, + 192, 59, 59, 59, 260, 260, 401, 59, 401, 278, + 192, 290, 192, 873, 59, 291, 59, 319, 59, 320, + 343, 872, 239, 239, 59, 239, 516, 59, 59, 59, + + 59, 59, 59, 871, 240, 240, 59, 240, 59, 239, + 239, 239, 239, 241, 241, 870, 241, 261, 261, 320, + 343, 240, 240, 240, 240, 242, 242, 352, 242, 516, + 241, 241, 241, 241, 510, 239, 298, 298, 344, 298, + 249, 354, 242, 242, 242, 242, 349, 869, 355, 261, + 269, 269, 356, 269, 241, 346, 352, 269, 305, 305, + 305, 305, 360, 349, 239, 242, 269, 353, 344, 346, + 354, 353, 269, 357, 612, 358, 349, 355, 261, 359, + 361, 356, 363, 359, 241, 346, 362, 868, 365, 367, + 368, 360, 349, 370, 373, 242, 372, 353, 346, 372, + + 403, 353, 403, 357, 269, 358, 405, 612, 405, 359, + 361, 363, 359, 407, 510, 407, 362, 365, 367, 368, + 416, 416, 867, 370, 373, 431, 372, 431, 375, 372, + 376, 269, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 375, 866, 376, + 307, 388, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 369, 374, 371, 865, + 395, 388, 371, 397, 374, 864, 369, 371, 380, 380, + + 380, 380, 396, 421, 421, 421, 421, 399, 433, 863, + 433, 409, 411, 500, 424, 500, 369, 374, 371, 395, + 617, 617, 371, 397, 374, 369, 426, 371, 377, 429, + 377, 396, 862, 377, 377, 391, 391, 399, 391, 377, + 377, 409, 411, 411, 424, 377, 377, 430, 394, 394, + 377, 394, 391, 391, 391, 391, 426, 377, 377, 429, + 377, 412, 412, 377, 377, 394, 394, 394, 394, 377, + 377, 414, 414, 434, 377, 377, 440, 430, 437, 377, + 444, 446, 447, 861, 449, 450, 451, 452, 444, 434, + 453, 437, 503, 412, 503, 440, 860, 412, 505, 505, + + 603, 505, 603, 618, 618, 414, 414, 604, 604, 859, + 604, 446, 447, 449, 450, 858, 451, 452, 444, 434, + 453, 437, 412, 413, 413, 440, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 857, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + + 413, 413, 413, 413, 413, 413, 413, 415, 415, 415, + 415, 435, 436, 439, 441, 454, 415, 415, 415, 415, + 415, 415, 455, 442, 443, 456, 457, 435, 459, 461, + 436, 856, 460, 463, 464, 439, 441, 465, 855, 441, + 466, 415, 415, 442, 443, 454, 415, 415, 415, 415, + 415, 415, 455, 854, 468, 456, 457, 435, 459, 461, + 436, 460, 463, 464, 439, 441, 470, 465, 441, 471, + 466, 850, 467, 442, 443, 445, 472, 473, 474, 475, + 445, 445, 445, 445, 468, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 609, 445, 470, 485, 445, 471, + + 445, 467, 486, 445, 484, 487, 472, 473, 474, 475, + 445, 445, 445, 445, 488, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 483, 445, 485, 445, 489, 445, + 483, 486, 445, 490, 484, 487, 491, 492, 493, 494, + 495, 496, 849, 497, 488, 498, 499, 795, 498, 498, + 696, 506, 696, 794, 483, 507, 793, 508, 489, 512, + 483, 522, 523, 490, 524, 491, 525, 492, 493, 494, + 495, 496, 497, 792, 609, 498, 499, 498, 498, 501, + 501, 506, 501, 504, 504, 507, 504, 508, 777, 512, + 777, 522, 523, 791, 524, 525, 501, 501, 501, 501, + + 504, 504, 504, 504, 513, 513, 790, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 789, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 514, 514, + 529, 527, 532, 788, 518, 518, 528, 531, 779, 530, + + 779, 528, 531, 533, 537, 538, 616, 616, 616, 527, + 530, 527, 534, 787, 529, 535, 533, 537, 786, 532, + 535, 538, 514, 514, 515, 515, 515, 515, 518, 518, + 534, 528, 531, 515, 515, 515, 515, 515, 515, 527, + 530, 527, 536, 529, 541, 539, 533, 537, 532, 785, + 535, 538, 783, 542, 548, 540, 545, 541, 543, 549, + 534, 539, 536, 515, 515, 515, 515, 515, 515, 519, + 519, 519, 519, 540, 544, 542, 545, 543, 519, 519, + 519, 519, 519, 519, 548, 546, 547, 541, 549, 552, + 557, 539, 536, 553, 547, 776, 544, 555, 556, 544, + + 558, 773, 560, 540, 542, 546, 545, 543, 519, 519, + 519, 519, 519, 519, 559, 561, 562, 565, 568, 552, + 557, 566, 553, 567, 547, 544, 555, 556, 544, 572, + 558, 559, 560, 573, 577, 546, 575, 559, 761, 576, + 579, 580, 581, 582, 561, 583, 562, 565, 568, 584, + 566, 585, 567, 586, 587, 589, 590, 591, 572, 592, + 593, 559, 594, 573, 577, 575, 595, 559, 576, 579, + 596, 580, 581, 582, 583, 597, 599, 598, 600, 584, + 585, 605, 586, 598, 587, 589, 590, 591, 592, 606, + 593, 594, 607, 619, 610, 610, 595, 610, 621, 596, + + 614, 614, 622, 624, 626, 597, 599, 598, 600, 627, + 605, 628, 598, 625, 747, 631, 641, 630, 635, 606, + 629, 607, 626, 619, 628, 625, 630, 621, 624, 635, + 639, 627, 622, 631, 614, 614, 615, 615, 615, 615, + 629, 639, 736, 641, 632, 615, 615, 615, 615, 615, + 615, 632, 626, 634, 628, 625, 630, 624, 633, 635, + 627, 637, 634, 631, 636, 633, 637, 638, 640, 645, + 629, 639, 641, 640, 642, 615, 615, 615, 615, 615, + 615, 632, 636, 643, 636, 646, 647, 642, 644, 645, + 707, 638, 634, 644, 648, 633, 637, 650, 646, 651, + + 653, 643, 658, 640, 657, 660, 656, 706, 662, 664, + 665, 651, 636, 666, 636, 647, 656, 642, 668, 645, + 638, 669, 670, 644, 648, 672, 650, 673, 646, 651, + 653, 643, 658, 657, 674, 660, 656, 662, 676, 664, + 665, 651, 677, 666, 678, 656, 679, 682, 668, 681, + 669, 683, 670, 684, 672, 686, 673, 687, 688, 690, + 691, 702, 692, 674, 693, 694, 697, 698, 676, 699, + 699, 677, 699, 678, 704, 704, 679, 682, 681, 701, + 683, 705, 705, 684, 710, 686, 714, 687, 688, 690, + 691, 692, 715, 712, 693, 694, 697, 698, 703, 703, + + 703, 710, 711, 713, 715, 716, 717, 711, 712, 718, + 714, 719, 721, 720, 728, 722, 723, 695, 724, 713, + 719, 725, 737, 728, 727, 721, 689, 716, 723, 729, + 717, 710, 726, 718, 715, 720, 724, 711, 712, 714, + 722, 730, 732, 725, 727, 726, 733, 729, 730, 713, + 719, 732, 737, 728, 731, 721, 716, 733, 723, 717, + 738, 731, 718, 740, 720, 741, 724, 742, 743, 722, + 744, 745, 725, 740, 727, 726, 746, 729, 730, 748, + 749, 732, 750, 751, 752, 753, 755, 733, 754, 738, + 757, 731, 759, 740, 763, 741, 764, 742, 743, 744, + + 745, 765, 781, 740, 768, 746, 770, 774, 797, 748, + 749, 775, 750, 751, 752, 753, 755, 754, 796, 685, + 757, 759, 1150, 1150, 763, 797, 764, 767, 767, 800, + 765, 781, 767, 799, 768, 767, 770, 774, 767, 771, + 771, 775, 796, 767, 771, 800, 798, 771, 799, 801, + 771, 798, 802, 808, 803, 797, 809, 767, 767, 804, + 805, 810, 767, 807, 802, 767, 808, 811, 767, 771, + 771, 796, 767, 801, 771, 800, 803, 771, 799, 806, + 771, 798, 812, 804, 805, 807, 809, 813, 806, 671, + 814, 810, 815, 820, 802, 817, 808, 811, 819, 821, + + 822, 824, 801, 823, 826, 803, 828, 829, 835, 831, + 837, 812, 804, 805, 807, 836, 840, 813, 806, 814, + 839, 841, 815, 820, 817, 831, 842, 819, 821, 843, + 822, 824, 823, 844, 826, 845, 828, 829, 835, 831, + 837, 838, 877, 847, 836, 838, 840, 846, 838, 839, + 846, 841, 848, 851, 831, 852, 842, 852, 838, 843, + 846, 878, 844, 879, 881, 845, 877, 880, 882, 883, + 886, 838, 847, 884, 887, 838, 888, 846, 838, 889, + 846, 848, 851, 891, 892, 893, 895, 838, 894, 846, + 896, 878, 897, 879, 881, 877, 880, 898, 882, 883, + + 886, 900, 884, 901, 887, 902, 888, 903, 907, 889, + 904, 905, 891, 908, 892, 893, 895, 894, 909, 911, + 896, 912, 897, 913, 667, 914, 898, 915, 916, 917, + 947, 900, 918, 901, 919, 902, 919, 903, 907, 904, + 905, 946, 921, 908, 921, 955, 917, 909, 948, 911, + 949, 912, 950, 913, 914, 951, 915, 916, 952, 917, + 947, 918, 953, 954, 661, 956, 957, 655, 958, 959, + 946, 961, 620, 962, 955, 917, 963, 964, 948, 965, + 949, 966, 950, 967, 968, 951, 970, 972, 952, 973, + 974, 975, 953, 954, 956, 976, 957, 958, 978, 959, + + 979, 961, 962, 980, 981, 963, 964, 980, 982, 965, + 996, 966, 997, 967, 968, 970, 972, 998, 973, 999, + 974, 975, 1000, 1001, 1002, 976, 1004, 1005, 978, 979, + 1007, 1008, 980, 981, 1009, 1010, 980, 1011, 982, 1012, + 996, 1013, 997, 1015, 1019, 1020, 998, 1021, 1025, 999, + 1024, 1000, 1001, 1002, 1026, 1034, 1004, 1005, 1027, 1007, + 1008, 1028, 1029, 1031, 1009, 1010, 1032, 1011, 1033, 1012, + 1035, 1013, 1036, 1015, 1019, 1020, 1037, 1021, 1025, 1024, + 1040, 613, 1042, 1044, 1026, 1034, 1047, 1027, 1050, 1051, + 1028, 1029, 1031, 1052, 1053, 1032, 1054, 1033, 1055, 1056, + + 1035, 1057, 1036, 1058, 1059, 1061, 1037, 1062, 1063, 1064, + 1040, 1042, 1066, 1044, 1070, 1071, 1047, 1072, 1050, 1051, + 1073, 1075, 1052, 1076, 1053, 1077, 1054, 1078, 1055, 1056, + 1079, 1057, 1080, 1058, 1059, 1061, 1062, 1063, 1081, 1064, + 1084, 1066, 1086, 1088, 1070, 1071, 1072, 1087, 1089, 1090, + 1073, 1075, 1091, 1076, 1093, 1077, 1096, 1078, 1097, 1100, + 1079, 1101, 1080, 1102, 1105, 1106, 1163, 1081, 1163, 1084, + 611, 601, 1086, 1088, 574, 571, 1087, 1089, 1090, 554, + 1192, 1091, 1192, 526, 1093, 517, 1096, 1097, 469, 1100, + 1101, 438, 1102, 420, 1105, 1106, 1110, 1110, 1110, 1110, + + 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, + 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, + 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116, + + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, + 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, + 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, + 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121, + 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, + + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, + 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, + 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, + 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, + + 1127, 1127, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, + 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, + 1129, 393, 1129, 1129, 378, 351, 341, 1129, 1130, 1130, + 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, + 1130, 1130, 1130, 1130, 1131, 1131, 339, 1131, 1131, 334, + 301, 300, 1131, 1132, 299, 1132, 1132, 1132, 1132, 1132, + 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, + 1133, 296, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, + 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134, + 285, 1134, 1134, 282, 274, 273, 1134, 1135, 272, 1135, + + 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, + 1135, 1135, 1135, 1135, 1136, 271, 1136, 1136, 1136, 1136, + 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, + 1136, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, + 1137, 1137, 1137, 268, 1137, 266, 1137, 1137, 1138, 265, + 256, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1139, 1139, 255, 1139, 1139, + 252, 251, 234, 1139, 1140, 230, 1140, 1140, 1140, 1140, + 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, + 1140, 1141, 227, 1141, 1141, 1141, 1141, 1141, 1141, 1141, + + 1141, 1141, 1141, 1141, 1141, 226, 1141, 1141, 1142, 222, + 1142, 208, 207, 1142, 1142, 1142, 1142, 1142, 206, 202, + 175, 1142, 1143, 174, 1143, 1143, 1143, 1143, 1143, 1143, + 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, + 1144, 172, 1144, 1144, 170, 169, 166, 1144, 1145, 1145, + 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, + 1145, 1145, 1145, 1145, 1145, 1146, 165, 1146, 164, 1146, + 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 158, 1146, + 1146, 1146, 1147, 155, 1147, 1147, 1147, 1147, 1147, 1147, + 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148, + + 154, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, + 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 153, 152, + 1149, 1149, 1151, 144, 1151, 1151, 1151, 1151, 1151, 1151, + 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, + 143, 1152, 1152, 1152, 139, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 136, 1153, + 1153, 131, 129, 124, 1153, 1154, 120, 1154, 1154, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1155, 114, 1155, 1155, 1155, 1155, 1155, 1155, + 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1156, + + 1156, 109, 107, 106, 1156, 1157, 1157, 103, 101, 99, + 1157, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, + 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1159, 1159, + 98, 1159, 1159, 97, 94, 91, 1159, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1161, 90, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 88, 1161, + 1161, 1162, 86, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, + 84, 1164, 1164, 80, 78, 72, 1164, 1164, 1165, 71, + + 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 1165, 1165, 1165, 1165, 1165, 1166, 68, 1166, 1166, 1166, + 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, + 1166, 1166, 1167, 65, 1167, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168, + 60, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1169, 57, 1169, 1169, + 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, + 1169, 1169, 1169, 1170, 1170, 1170, 1170, 1170, 1170, 1170, + 1170, 1170, 1170, 1170, 1170, 53, 1170, 49, 1170, 1170, + + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1172, 16, 15, + 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, + 1172, 1172, 1172, 1172, 1173, 1173, 0, 1173, 1173, 0, + 0, 0, 1173, 1174, 0, 1174, 0, 0, 1174, 1174, + 1174, 1174, 1174, 0, 0, 0, 1174, 1175, 0, 1175, + 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, + 1175, 1175, 1175, 1175, 1176, 1176, 0, 1176, 1176, 0, + 0, 0, 1176, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1178, 0, 1178, 0, 1178, 1178, 1178, 1178, 1178, 1178, + 1178, 1178, 1178, 0, 1178, 1178, 1178, 1179, 0, 1179, + 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, + 1179, 1179, 1179, 1179, 1180, 0, 1180, 1180, 1180, 1180, + 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, + 1180, 1181, 1181, 0, 0, 1181, 1181, 1182, 0, 1182, + 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, + 1182, 1182, 1182, 1182, 1183, 0, 1183, 1183, 1183, 0, + 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, + 1183, 1184, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, + + 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1185, 0, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1186, + 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, + 1186, 1186, 1187, 1187, 0, 1187, 1187, 0, 0, 0, + 1187, 1188, 1188, 0, 1188, 1188, 0, 0, 0, 1188, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1191, 0, 1191, 1191, 1191, 1191, + + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 0, 1191, + 1191, 1193, 1193, 0, 1193, 1193, 0, 0, 0, 1193, + 1193, 1194, 0, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 0, + 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + 1195, 1195, 1195, 1195, 1195, 1196, 0, 1196, 1196, 1196, + 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, + 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, + 1198, 1198, 1199, 1199, 0, 1199, 1199, 0, 0, 0, + + 1199, 1200, 0, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0, + 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, + 1201, 1201, 1201, 1201, 1201, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, + 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +static int yy_more_flag = 0; +static int yy_more_len = 0; +#define yymore() ((yy_more_flag) = 1) +#define YY_MORE_ADJ (yy_more_len) +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "scan.l" +/* scan.l - scanner for flex input -*-C-*- */ +#line 4 "scan.l" +/* Copyright (c) 1990 The Regents of the University of California. */ +/* All rights reserved. */ + +/* This code is derived from software contributed to Berkeley by */ +/* Vern Paxson. */ + +/* The United States Government has rights in this work pursuant */ +/* to contract no. DE-AC03-76SF00098 between the United States */ +/* Department of Energy and the University of California. */ + +/* This file is part of flex. */ + +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ + +/* 1. Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* 2. Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ + +/* Neither the name of the University nor the names of its contributors */ +/* may be used to endorse or promote products derived from this software */ +/* without specific prior written permission. */ + +/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ +/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE. */ + +#include "flexdef.h" +#include "parse.h" +extern bool tablesverify, tablesext; +extern int trlcontxt; /* Set in parse.y for each rule. */ +extern const char *escaped_qstart, *escaped_qend; + +#define ACTION_ECHO add_action( yytext ) +#define ACTION_IFDEF(def, should_define) \ + { \ + if ( should_define ) \ + action_define( def, 1 ); \ + } + +#define ACTION_ECHO_QSTART add_action (escaped_qstart) +#define ACTION_ECHO_QEND add_action (escaped_qend) + +#define ACTION_M4_IFDEF(def, should_define) \ + do{ \ + if ( should_define ) \ + buf_m4_define( &m4defs_buf, def, NULL);\ + else \ + buf_m4_undefine( &m4defs_buf, def);\ + } while(0) + +#define MARK_END_OF_PROLOG mark_prolog(); + +#define YY_DECL \ + int flexscan(void) + +#define RETURNCHAR \ + yylval = (unsigned char) yytext[0]; \ + return CHAR; + +#define RETURNNAME \ + if(yyleng < MAXLINE) \ + { \ + strcpy( nmstr, yytext ); \ + } \ + else \ + { \ + synerr(_("Input line too long\n")); \ + FLEX_EXIT(EXIT_FAILURE); \ + } \ + return NAME; + +#define PUT_BACK_STRING(str, start) \ + for ( i = strlen( str ) - 1; i >= start; --i ) \ + unput((str)[i]) + +#define CHECK_REJECT(str) \ + if ( all_upper( str ) ) \ + reject = true; + +#define CHECK_YYMORE(str) \ + if ( all_lower( str ) ) \ + yymore_used = true; + +#define YY_USER_INIT \ + if ( getenv("POSIXLY_CORRECT") ) \ + posix_compat = true; + + + + + + + + +#line 1852 "scan.c" + +#define INITIAL 0 +#define SECT2 1 +#define SECT2PROLOG 2 +#define SECT3 3 +#define CODEBLOCK 4 +#define PICKUPDEF 5 +#define SC 6 +#define CARETISBOL 7 +#define NUM 8 +#define QUOTE 9 +#define FIRSTCCL 10 +#define CCL 11 +#define ACTION 12 +#define RECOVER 13 +#define COMMENT 14 +#define ACTION_STRING 15 +#define PERCENT_BRACE_ACTION 16 +#define OPTION 17 +#define LINEDIR 18 +#define CODEBLOCK_MATCH_BRACE 19 +#define GROUP_WITH_PARAMS 20 +#define GROUP_MINUS_PARAMS 21 +#define EXTENDED_COMMENT 22 +#define COMMENT_DISCARD 23 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * _in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * _out_str ); + +yy_size_t yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int _line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + +#ifndef YY_NO_UNPUT + + static void yyunput (int c,char *buf_ptr ); + +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + + static int yy_start_stack_ptr = 0; + static int yy_start_stack_depth = 0; + static int *yy_start_stack = NULL; + + static void yy_push_state (int _new_state ); + + static void yy_pop_state (void ); + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK /*LINTED*/break; +#endif + +#define YY_RULE_SETUP \ + if ( yyleng > 0 ) \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ + (yytext[yyleng - 1] == '\n'); \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + { +#line 131 "scan.l" + + static int bracelevel, didadef, indented_code; + static int doing_rule_action = false; + static int option_sense; + + int doing_codeblock = false; + int i, brace_depth=0, brace_start_line=0; + char nmdef[MAXLINE]; + + +#line 2115 "scan.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + { + (yy_more_len) = 0; + if ( (yy_more_flag) ) + { + (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); + (yy_more_flag) = 0; + } + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); + yy_current_state += YY_AT_BOL(); +yy_match: + do + { + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 3970 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 142 "scan.l" +indented_code = true; BEGIN(CODEBLOCK); + YY_BREAK +case 2: +YY_RULE_SETUP +#line 143 "scan.l" +ACTION_ECHO; yy_push_state( COMMENT ); + YY_BREAK +case 3: +YY_RULE_SETUP +#line 144 "scan.l" +yy_push_state( LINEDIR ); + YY_BREAK +case 4: +YY_RULE_SETUP +#line 145 "scan.l" +return SCDECL; + YY_BREAK +case 5: +YY_RULE_SETUP +#line 146 "scan.l" +return XSCDECL; + YY_BREAK +case 6: +/* rule 6 can match eol */ +YY_RULE_SETUP +#line 147 "scan.l" +{ + ++linenum; + line_directive_out(NULL, 1); + indented_code = false; + BEGIN(CODEBLOCK); + } + YY_BREAK +case 7: +/* rule 7 can match eol */ +YY_RULE_SETUP +#line 153 "scan.l" +{ + brace_start_line = linenum; + ++linenum; + buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum); + brace_depth = 1; + yy_push_state(CODEBLOCK_MATCH_BRACE); + } + YY_BREAK +case 8: +YY_RULE_SETUP +#line 161 "scan.l" +synerr( _("malformed '%top' directive") ); + YY_BREAK +case 9: +YY_RULE_SETUP +#line 163 "scan.l" +/* discard */ + YY_BREAK +case 10: +YY_RULE_SETUP +#line 165 "scan.l" +{ + sectnum = 2; + bracelevel = 0; + mark_defs1(); + line_directive_out(NULL, 1); + BEGIN(SECT2PROLOG); + return SECTEND; + } + YY_BREAK +case 11: +/* rule 11 can match eol */ +YY_RULE_SETUP +#line 174 "scan.l" +yytext_is_array = false; ++linenum; + YY_BREAK +case 12: +/* rule 12 can match eol */ +YY_RULE_SETUP +#line 175 "scan.l" +yytext_is_array = true; ++linenum; + YY_BREAK +case 13: +YY_RULE_SETUP +#line 177 "scan.l" +BEGIN(OPTION); return TOK_OPTION; + YY_BREAK +case 14: +/* rule 14 can match eol */ +YY_RULE_SETUP +#line 179 "scan.l" +++linenum; /* ignore */ + YY_BREAK +case 15: +/* rule 15 can match eol */ +YY_RULE_SETUP +#line 180 "scan.l" +++linenum; /* ignore */ + YY_BREAK +/* xgettext: no-c-format */ +case 16: +/* rule 16 can match eol */ +YY_RULE_SETUP +#line 183 "scan.l" +synerr( _( "unrecognized '%' directive" ) ); + YY_BREAK +case 17: +YY_RULE_SETUP +#line 185 "scan.l" +{ + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Definition name too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + didadef = false; + BEGIN(PICKUPDEF); + } + YY_BREAK +case 18: +YY_RULE_SETUP +#line 200 "scan.l" +RETURNNAME; + YY_BREAK +case 19: +/* rule 19 can match eol */ +YY_RULE_SETUP +#line 201 "scan.l" +++linenum; /* allows blank lines in section 1 */ + YY_BREAK +case 20: +/* rule 20 can match eol */ +YY_RULE_SETUP +#line 202 "scan.l" +ACTION_ECHO; ++linenum; /* maybe end of comment line */ + YY_BREAK + + +case 21: +YY_RULE_SETUP +#line 207 "scan.l" +ACTION_ECHO; yy_pop_state(); + YY_BREAK +case 22: +YY_RULE_SETUP +#line 208 "scan.l" +ACTION_ECHO; + YY_BREAK +case 23: +YY_RULE_SETUP +#line 209 "scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 24: +YY_RULE_SETUP +#line 210 "scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 25: +YY_RULE_SETUP +#line 211 "scan.l" +ACTION_ECHO; + YY_BREAK +case 26: +/* rule 26 can match eol */ +YY_RULE_SETUP +#line 212 "scan.l" +++linenum; ACTION_ECHO; + YY_BREAK + + +/* This is the same as COMMENT, but is discarded rather than output. */ +case 27: +YY_RULE_SETUP +#line 217 "scan.l" +yy_pop_state(); + YY_BREAK +case 28: +YY_RULE_SETUP +#line 218 "scan.l" +; + YY_BREAK +case 29: +YY_RULE_SETUP +#line 219 "scan.l" +; + YY_BREAK +case 30: +/* rule 30 can match eol */ +YY_RULE_SETUP +#line 220 "scan.l" +++linenum; + YY_BREAK + + +case 31: +YY_RULE_SETUP +#line 224 "scan.l" +yy_pop_state(); + YY_BREAK +case 32: +YY_RULE_SETUP +#line 225 "scan.l" +; + YY_BREAK +case 33: +/* rule 33 can match eol */ +YY_RULE_SETUP +#line 226 "scan.l" +++linenum; + YY_BREAK + + +case 34: +/* rule 34 can match eol */ +YY_RULE_SETUP +#line 230 "scan.l" +yy_pop_state(); + YY_BREAK +case 35: +YY_RULE_SETUP +#line 231 "scan.l" +linenum = myctoi( yytext ); + YY_BREAK +case 36: +YY_RULE_SETUP +#line 233 "scan.l" +{ + free(infilename); + infilename = xstrdup(yytext + 1); + infilename[strlen( infilename ) - 1] = '\0'; + } + YY_BREAK +case 37: +YY_RULE_SETUP +#line 238 "scan.l" +/* ignore spurious characters */ + YY_BREAK + + +case 38: +/* rule 38 can match eol */ +YY_RULE_SETUP +#line 242 "scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK +case 39: +YY_RULE_SETUP +#line 244 "scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 40: +YY_RULE_SETUP +#line 245 "scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 41: +YY_RULE_SETUP +#line 246 "scan.l" +ACTION_ECHO; + YY_BREAK +case 42: +/* rule 42 can match eol */ +YY_RULE_SETUP +#line 248 "scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( indented_code ) + BEGIN(INITIAL); + } + YY_BREAK + + +case 43: +YY_RULE_SETUP +#line 257 "scan.l" +{ + if( --brace_depth == 0){ + /* TODO: Matched. */ + yy_pop_state(); + }else + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 44: +YY_RULE_SETUP +#line 265 "scan.l" +{ + brace_depth++; + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 45: +/* rule 45 can match eol */ +YY_RULE_SETUP +#line 270 "scan.l" +{ + ++linenum; + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 46: +YY_RULE_SETUP +#line 275 "scan.l" +buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); + YY_BREAK +case 47: +YY_RULE_SETUP +#line 276 "scan.l" +buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); + YY_BREAK +case 48: +YY_RULE_SETUP +#line 278 "scan.l" +{ + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE): +#line 282 "scan.l" +{ + linenum = brace_start_line; + synerr(_("Unmatched '{'")); + yyterminate(); + } + YY_BREAK + + +case 49: +YY_RULE_SETUP +#line 291 "scan.l" +/* separates name and definition */ + YY_BREAK +case 50: +YY_RULE_SETUP +#line 293 "scan.l" +{ + if(yyleng < MAXLINE) + { + strcpy( nmdef, yytext ); + } + else + { + format_synerr( _("Definition value for {%s} too long\n"), nmstr); + FLEX_EXIT(EXIT_FAILURE); + } + /* Skip trailing whitespace. */ + for ( i = strlen( nmdef ) - 1; + i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); + --i ) + ; + + nmdef[i + 1] = '\0'; + + ndinstal( nmstr, nmdef ); + didadef = true; + } + YY_BREAK +case 51: +/* rule 51 can match eol */ +YY_RULE_SETUP +#line 315 "scan.l" +{ + if ( ! didadef ) + synerr( _( "incomplete name definition" ) ); + BEGIN(INITIAL); + ++linenum; + } + YY_BREAK + + +case 52: +/* rule 52 can match eol */ +YY_RULE_SETUP +#line 325 "scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK +case 53: +YY_RULE_SETUP +#line 326 "scan.l" +option_sense = true; + YY_BREAK +case 54: +YY_RULE_SETUP +#line 328 "scan.l" +return '='; + YY_BREAK +case 55: +YY_RULE_SETUP +#line 330 "scan.l" +option_sense = ! option_sense; + YY_BREAK +case 56: +YY_RULE_SETUP +#line 332 "scan.l" +csize = option_sense ? 128 : 256; + YY_BREAK +case 57: +YY_RULE_SETUP +#line 333 "scan.l" +csize = option_sense ? 256 : 128; + YY_BREAK +case 58: +YY_RULE_SETUP +#line 335 "scan.l" +long_align = option_sense; + YY_BREAK +case 59: +YY_RULE_SETUP +#line 336 "scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense ); + interactive = option_sense; + } + YY_BREAK +case 60: +YY_RULE_SETUP +#line 340 "scan.l" +yytext_is_array = option_sense; + YY_BREAK +case 61: +YY_RULE_SETUP +#line 341 "scan.l" +ansi_func_defs = option_sense; + YY_BREAK +case 62: +YY_RULE_SETUP +#line 342 "scan.l" +ansi_func_protos = option_sense; + YY_BREAK +case 63: +YY_RULE_SETUP +#line 343 "scan.l" +backing_up_report = option_sense; + YY_BREAK +case 64: +YY_RULE_SETUP +#line 344 "scan.l" +interactive = ! option_sense; + YY_BREAK +case 65: +YY_RULE_SETUP +#line 345 "scan.l" +bison_bridge_lval = option_sense; + YY_BREAK +case 66: +YY_RULE_SETUP +#line 346 "scan.l" +{ if((bison_bridge_lloc = option_sense)) + bison_bridge_lval = true; + } + YY_BREAK +case 67: +YY_RULE_SETUP +#line 349 "scan.l" +C_plus_plus = option_sense; + YY_BREAK +case 68: +YY_RULE_SETUP +#line 350 "scan.l" +sf_set_case_ins(!option_sense); + YY_BREAK +case 69: +YY_RULE_SETUP +#line 351 "scan.l" +sf_set_case_ins(option_sense); + YY_BREAK +case 70: +YY_RULE_SETUP +#line 352 "scan.l" +ddebug = option_sense; + YY_BREAK +case 71: +YY_RULE_SETUP +#line 353 "scan.l" +spprdflt = ! option_sense; + YY_BREAK +case 72: +YY_RULE_SETUP +#line 354 "scan.l" +useecs = option_sense; + YY_BREAK +case 73: +YY_RULE_SETUP +#line 355 "scan.l" +{ + useecs = usemecs = false; + use_read = fullspd = true; + } + YY_BREAK +case 74: +YY_RULE_SETUP +#line 359 "scan.l" +{ + useecs = usemecs = false; + use_read = fulltbl = true; + } + YY_BREAK +case 75: +YY_RULE_SETUP +#line 363 "scan.l" +ACTION_IFDEF("YY_NO_INPUT", ! option_sense); + YY_BREAK +case 76: +YY_RULE_SETUP +#line 364 "scan.l" +interactive = option_sense; + YY_BREAK +case 77: +YY_RULE_SETUP +#line 365 "scan.l" +lex_compat = option_sense; + YY_BREAK +case 78: +YY_RULE_SETUP +#line 366 "scan.l" +posix_compat = option_sense; + YY_BREAK +case 79: +YY_RULE_SETUP +#line 367 "scan.l" +gen_line_dirs = option_sense; + YY_BREAK +case 80: +YY_RULE_SETUP +#line 368 "scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense); + /* Override yywrap */ + if( option_sense == true ) + do_yywrap = false; + } + YY_BREAK +case 81: +YY_RULE_SETUP +#line 374 "scan.l" +usemecs = option_sense; + YY_BREAK +case 82: +YY_RULE_SETUP +#line 375 "scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense ); + interactive = !option_sense; + } + YY_BREAK +case 83: +YY_RULE_SETUP +#line 379 "scan.l" +performance_report += option_sense ? 1 : -1; + YY_BREAK +case 84: +YY_RULE_SETUP +#line 380 "scan.l" +yytext_is_array = ! option_sense; + YY_BREAK +case 85: +YY_RULE_SETUP +#line 381 "scan.l" +use_read = option_sense; + YY_BREAK +case 86: +YY_RULE_SETUP +#line 382 "scan.l" +reentrant = option_sense; + YY_BREAK +case 87: +YY_RULE_SETUP +#line 383 "scan.l" +reject_really_used = option_sense; + YY_BREAK +case 88: +YY_RULE_SETUP +#line 384 "scan.l" +ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); + YY_BREAK +case 89: +YY_RULE_SETUP +#line 385 "scan.l" +do_stdinit = option_sense; + YY_BREAK +case 90: +YY_RULE_SETUP +#line 386 "scan.l" +use_stdout = option_sense; + YY_BREAK +case 91: +YY_RULE_SETUP +#line 387 "scan.l" +ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); + YY_BREAK +case 92: +YY_RULE_SETUP +#line 388 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); + YY_BREAK +case 93: +YY_RULE_SETUP +#line 389 "scan.l" +printstats = option_sense; + YY_BREAK +case 94: +YY_RULE_SETUP +#line 390 "scan.l" +nowarn = ! option_sense; + YY_BREAK +case 95: +YY_RULE_SETUP +#line 391 "scan.l" +do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); + YY_BREAK +case 96: +YY_RULE_SETUP +#line 392 "scan.l" +yymore_really_used = option_sense; + YY_BREAK +case 97: +YY_RULE_SETUP +#line 393 "scan.l" +do_yywrap = option_sense; + YY_BREAK +case 98: +YY_RULE_SETUP +#line 395 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); + YY_BREAK +case 99: +YY_RULE_SETUP +#line 396 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); + YY_BREAK +case 100: +YY_RULE_SETUP +#line 397 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); + YY_BREAK +case 101: +YY_RULE_SETUP +#line 399 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); + YY_BREAK +case 102: +YY_RULE_SETUP +#line 400 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); + YY_BREAK +case 103: +YY_RULE_SETUP +#line 401 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); + YY_BREAK +case 104: +YY_RULE_SETUP +#line 403 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); + YY_BREAK +case 105: +YY_RULE_SETUP +#line 404 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); + YY_BREAK +case 106: +YY_RULE_SETUP +#line 405 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); + YY_BREAK +case 107: +YY_RULE_SETUP +#line 407 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); + YY_BREAK +case 108: +YY_RULE_SETUP +#line 408 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); + YY_BREAK +case 109: +YY_RULE_SETUP +#line 409 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); + YY_BREAK +case 110: +YY_RULE_SETUP +#line 410 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); + YY_BREAK +case 111: +YY_RULE_SETUP +#line 411 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); + YY_BREAK +case 112: +YY_RULE_SETUP +#line 412 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); + YY_BREAK +case 113: +YY_RULE_SETUP +#line 413 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); + YY_BREAK +case 114: +YY_RULE_SETUP +#line 414 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); + YY_BREAK +case 115: +YY_RULE_SETUP +#line 415 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); + YY_BREAK +case 116: +YY_RULE_SETUP +#line 416 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); + YY_BREAK +case 117: +YY_RULE_SETUP +#line 417 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); + YY_BREAK +case 118: +YY_RULE_SETUP +#line 418 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); + YY_BREAK +case 119: +YY_RULE_SETUP +#line 419 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); + YY_BREAK +case 120: +YY_RULE_SETUP +#line 420 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); + YY_BREAK +case 121: +YY_RULE_SETUP +#line 421 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); + YY_BREAK +case 122: +YY_RULE_SETUP +#line 422 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); + YY_BREAK +case 123: +YY_RULE_SETUP +#line 424 "scan.l" +return TOK_EXTRA_TYPE; + YY_BREAK +case 124: +YY_RULE_SETUP +#line 425 "scan.l" +return TOK_OUTFILE; + YY_BREAK +case 125: +YY_RULE_SETUP +#line 426 "scan.l" +return TOK_PREFIX; + YY_BREAK +case 126: +YY_RULE_SETUP +#line 427 "scan.l" +return TOK_YYCLASS; + YY_BREAK +case 127: +YY_RULE_SETUP +#line 428 "scan.l" +return TOK_HEADER_FILE; + YY_BREAK +case 128: +YY_RULE_SETUP +#line 429 "scan.l" +return TOK_TABLES_FILE; + YY_BREAK +case 129: +YY_RULE_SETUP +#line 430 "scan.l" +{ + tablesverify = option_sense; + if(!tablesext && option_sense) + tablesext = true; + } + YY_BREAK +case 130: +YY_RULE_SETUP +#line 437 "scan.l" +{ + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Option line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + nmstr[strlen( nmstr ) - 1] = '\0'; + return NAME; + } + YY_BREAK +case 131: +YY_RULE_SETUP +#line 451 "scan.l" +{ + format_synerr( _( "unrecognized %%option: %s" ), + yytext ); + BEGIN(RECOVER); + } + YY_BREAK + +case 132: +/* rule 132 can match eol */ +YY_RULE_SETUP +#line 458 "scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK + +case 133: +YY_RULE_SETUP +#line 462 "scan.l" +++bracelevel; yyless( 2 ); /* eat only %{ */ + YY_BREAK +case 134: +YY_RULE_SETUP +#line 463 "scan.l" +--bracelevel; yyless( 2 ); /* eat only %} */ + YY_BREAK +case 135: +YY_RULE_SETUP +#line 465 "scan.l" +ACTION_ECHO; /* indented code in prolog */ + YY_BREAK +case 136: +YY_RULE_SETUP +#line 467 "scan.l" +{ /* non-indented code */ + if ( bracelevel <= 0 ) + { /* not in %{ ... %} */ + yyless( 0 ); /* put it all back */ + yy_set_bol( 1 ); + mark_prolog(); + BEGIN(SECT2); + } + else + ACTION_ECHO; + } + YY_BREAK +case 137: +YY_RULE_SETUP +#line 479 "scan.l" +ACTION_ECHO; + YY_BREAK +case 138: +/* rule 138 can match eol */ +YY_RULE_SETUP +#line 480 "scan.l" +++linenum; ACTION_ECHO; + YY_BREAK +case YY_STATE_EOF(SECT2PROLOG): +#line 482 "scan.l" +{ + mark_prolog(); + sectnum = 0; + yyterminate(); /* to stop the parser */ + } + YY_BREAK + + +case 139: +/* rule 139 can match eol */ +YY_RULE_SETUP +#line 490 "scan.l" +++linenum; /* allow blank lines in section 2 */ + YY_BREAK +case 140: +YY_RULE_SETUP +#line 492 "scan.l" +{ + indented_code = false; + doing_codeblock = true; + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + } + YY_BREAK +case 141: +YY_RULE_SETUP +#line 499 "scan.l" +{ + /* Allow "<" to appear in (?x) patterns. */ + if (!sf_skip_ws()) + BEGIN(SC); + return '<'; + } + YY_BREAK +case 142: +YY_RULE_SETUP +#line 505 "scan.l" +return '^'; + YY_BREAK +case 143: +YY_RULE_SETUP +#line 506 "scan.l" +BEGIN(QUOTE); return '"'; + YY_BREAK +case 144: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 507 "scan.l" +{ + BEGIN(NUM); + if ( lex_compat || posix_compat ) + return BEGIN_REPEAT_POSIX; + else + return BEGIN_REPEAT_FLEX; + } + YY_BREAK +case 145: +/* rule 145 can match eol */ +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +YY_LINENO_REWIND_TO(yy_bp + 1); +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 514 "scan.l" +return '$'; + YY_BREAK +case 146: +YY_RULE_SETUP +#line 516 "scan.l" +{ + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + YY_BREAK +case 147: +/* rule 147 can match eol */ +YY_RULE_SETUP +#line 527 "scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + /* Push back everything starting at the "|" */ + int amt = (int) (strchr (yytext, '|') - yytext); + yyless(amt); + } + else { + continued_action = true; + ++linenum; + return '\n'; + } + } + YY_BREAK +case 148: +YY_RULE_SETUP +#line 541 "scan.l" +{ + + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + yy_push_state(COMMENT_DISCARD); + } + else{ + yyless( yyleng - 2 ); /* put back '/', '*' */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + } + } + YY_BREAK +case 149: +YY_RULE_SETUP +#line 555 "scan.l" +/* allow indented rules */ ; + YY_BREAK +case 150: +YY_RULE_SETUP +#line 557 "scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + } + else{ + /* This rule is separate from the one below because + * otherwise we get variable trailing context, so + * we can't build the scanner using -{f,F}. + */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + YY_BREAK +case 151: +/* rule 151 can match eol */ +YY_RULE_SETUP +#line 579 "scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + ++linenum; + } + else{ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + unput( '\n' ); /* so <ACTION> sees it */ + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + YY_BREAK +case 152: +#line 600 "scan.l" +case 153: +YY_RULE_SETUP +#line 600 "scan.l" +return EOF_OP; + YY_BREAK +case 154: +YY_RULE_SETUP +#line 602 "scan.l" +{ + sectnum = 3; + BEGIN(SECT3); + outn("/* Begin user sect3 */"); + yyterminate(); /* to stop the parser */ + } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 609 "scan.l" +{ + int cclval; + + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + /* Check to see if we've already encountered this + * ccl. + */ + if (0 /* <--- This "0" effectively disables the reuse of a + * character class (purely based on its source text). + * The reason it was disabled is so yacc/bison can parse + * ccl operations, such as ccl difference and union. + */ + && (cclval = ccllookup( nmstr )) != 0 ) + { + if ( input() != ']' ) + synerr( _( "bad character class" ) ); + + yylval = cclval; + ++cclreuse; + return PREVCCL; + } + else + { + /* We fudge a bit. We know that this ccl will + * soon be numbered as lastccl + 1 by cclinit. + */ + cclinstal( nmstr, lastccl + 1 ); + + /* Push back everything but the leading bracket + * so the ccl can be rescanned. + */ + yyless( 1 ); + + BEGIN(FIRSTCCL); + return '['; + } + } + YY_BREAK +case 156: +YY_RULE_SETUP +#line 655 "scan.l" +return CCL_OP_DIFF; + YY_BREAK +case 157: +YY_RULE_SETUP +#line 656 "scan.l" +return CCL_OP_UNION; + YY_BREAK +/* Check for :space: at the end of the rule so we don't + * wrap the expanded regex in '(' ')' -- breaking trailing + * context. + */ +case 158: +/* rule 158 can match eol */ +YY_RULE_SETUP +#line 663 "scan.l" +{ + char *nmdefptr; + int end_is_ws, end_ch; + + end_ch = yytext[yyleng-1]; + end_is_ws = end_ch != '}' ? 1 : 0; + + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } +nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ + + if ( (nmdefptr = ndlookup( nmstr )) == 0 ) + format_synerr( + _( "undefined definition {%s}" ), + nmstr ); + + else + { /* push back name surrounded by ()'s */ + int len = strlen( nmdefptr ); + if (end_is_ws) + unput(end_ch); + + if ( lex_compat || nmdefptr[0] == '^' || + (len > 0 && nmdefptr[len - 1] == '$') + || (end_is_ws && trlcontxt && !sf_skip_ws())) + { /* don't use ()'s after all */ + PUT_BACK_STRING(nmdefptr, 0); + + if ( nmdefptr[0] == '^' ) + BEGIN(CARETISBOL); + } + + else + { + unput(')'); + PUT_BACK_STRING(nmdefptr, 0); + unput('('); + } + } + } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 711 "scan.l" +{ + if (sf_skip_ws()) + yy_push_state(COMMENT_DISCARD); + else{ + /* Push back the "*" and return "/" as usual. */ + yyless(1); + return '/'; + } + } + YY_BREAK +case 160: +YY_RULE_SETUP +#line 721 "scan.l" +{ + if (lex_compat || posix_compat){ + /* Push back the "?#" and treat it like a normal parens. */ + yyless(1); + sf_push(); + return '('; + } + else + yy_push_state(EXTENDED_COMMENT); + } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 731 "scan.l" +{ + sf_push(); + if (lex_compat || posix_compat) + /* Push back the "?" and treat it like a normal parens. */ + yyless(1); + else + BEGIN(GROUP_WITH_PARAMS); + return '('; + } + YY_BREAK +case 162: +YY_RULE_SETUP +#line 740 "scan.l" +sf_push(); return '('; + YY_BREAK +case 163: +YY_RULE_SETUP +#line 741 "scan.l" +{ + if (_sf_top_ix > 0) { + sf_pop(); + return ')'; + } else + synerr(_("unbalanced parenthesis")); + } + YY_BREAK +case 164: +YY_RULE_SETUP +#line 749 "scan.l" +return (unsigned char) yytext[0]; + YY_BREAK +case 165: +YY_RULE_SETUP +#line 750 "scan.l" +RETURNCHAR; + YY_BREAK + + +case 166: +/* rule 166 can match eol */ +YY_RULE_SETUP +#line 755 "scan.l" +++linenum; /* Allow blank lines & continuations */ + YY_BREAK +case 167: +YY_RULE_SETUP +#line 756 "scan.l" +return (unsigned char) yytext[0]; + YY_BREAK +case 168: +YY_RULE_SETUP +#line 757 "scan.l" +BEGIN(SECT2); return '>'; + YY_BREAK +case 169: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 758 "scan.l" +BEGIN(CARETISBOL); return '>'; + YY_BREAK +case 170: +YY_RULE_SETUP +#line 759 "scan.l" +RETURNNAME; + YY_BREAK +case 171: +YY_RULE_SETUP +#line 760 "scan.l" +{ + format_synerr( _( "bad <start condition>: %s" ), + yytext ); + } + YY_BREAK + +case 172: +YY_RULE_SETUP +#line 766 "scan.l" +BEGIN(SECT2); return '^'; + YY_BREAK + +case 173: +YY_RULE_SETUP +#line 770 "scan.l" +RETURNCHAR; + YY_BREAK +case 174: +YY_RULE_SETUP +#line 771 "scan.l" +BEGIN(SECT2); return '"'; + YY_BREAK +case 175: +/* rule 175 can match eol */ +YY_RULE_SETUP +#line 773 "scan.l" +{ + synerr( _( "missing quote" ) ); + BEGIN(SECT2); + ++linenum; + return '"'; + } + YY_BREAK + + +case 176: +YY_RULE_SETUP +#line 782 "scan.l" +BEGIN(SECT2); + YY_BREAK +case 177: +YY_RULE_SETUP +#line 783 "scan.l" +BEGIN(GROUP_MINUS_PARAMS); + YY_BREAK +case 178: +YY_RULE_SETUP +#line 784 "scan.l" +sf_set_case_ins(1); + YY_BREAK +case 179: +YY_RULE_SETUP +#line 785 "scan.l" +sf_set_dot_all(1); + YY_BREAK +case 180: +YY_RULE_SETUP +#line 786 "scan.l" +sf_set_skip_ws(1); + YY_BREAK + + +case 181: +YY_RULE_SETUP +#line 789 "scan.l" +BEGIN(SECT2); + YY_BREAK +case 182: +YY_RULE_SETUP +#line 790 "scan.l" +sf_set_case_ins(0); + YY_BREAK +case 183: +YY_RULE_SETUP +#line 791 "scan.l" +sf_set_dot_all(0); + YY_BREAK +case 184: +YY_RULE_SETUP +#line 792 "scan.l" +sf_set_skip_ws(0); + YY_BREAK + + +case 185: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 796 "scan.l" +BEGIN(CCL); return '^'; + YY_BREAK +case 186: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 797 "scan.l" +return '^'; + YY_BREAK +case 187: +YY_RULE_SETUP +#line 798 "scan.l" +BEGIN(CCL); RETURNCHAR; + YY_BREAK + + +case 188: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 802 "scan.l" +return '-'; + YY_BREAK +case 189: +YY_RULE_SETUP +#line 803 "scan.l" +RETURNCHAR; + YY_BREAK +case 190: +YY_RULE_SETUP +#line 804 "scan.l" +BEGIN(SECT2); return ']'; + YY_BREAK +case 191: +/* rule 191 can match eol */ +YY_RULE_SETUP +#line 805 "scan.l" +{ + synerr( _( "bad character class" ) ); + BEGIN(SECT2); + return ']'; + } + YY_BREAK + + +case 192: +YY_RULE_SETUP +#line 813 "scan.l" +BEGIN(CCL); return CCE_ALNUM; + YY_BREAK +case 193: +YY_RULE_SETUP +#line 814 "scan.l" +BEGIN(CCL); return CCE_ALPHA; + YY_BREAK +case 194: +YY_RULE_SETUP +#line 815 "scan.l" +BEGIN(CCL); return CCE_BLANK; + YY_BREAK +case 195: +YY_RULE_SETUP +#line 816 "scan.l" +BEGIN(CCL); return CCE_CNTRL; + YY_BREAK +case 196: +YY_RULE_SETUP +#line 817 "scan.l" +BEGIN(CCL); return CCE_DIGIT; + YY_BREAK +case 197: +YY_RULE_SETUP +#line 818 "scan.l" +BEGIN(CCL); return CCE_GRAPH; + YY_BREAK +case 198: +YY_RULE_SETUP +#line 819 "scan.l" +BEGIN(CCL); return CCE_LOWER; + YY_BREAK +case 199: +YY_RULE_SETUP +#line 820 "scan.l" +BEGIN(CCL); return CCE_PRINT; + YY_BREAK +case 200: +YY_RULE_SETUP +#line 821 "scan.l" +BEGIN(CCL); return CCE_PUNCT; + YY_BREAK +case 201: +YY_RULE_SETUP +#line 822 "scan.l" +BEGIN(CCL); return CCE_SPACE; + YY_BREAK +case 202: +YY_RULE_SETUP +#line 823 "scan.l" +BEGIN(CCL); return CCE_UPPER; + YY_BREAK +case 203: +YY_RULE_SETUP +#line 824 "scan.l" +BEGIN(CCL); return CCE_XDIGIT; + YY_BREAK +case 204: +YY_RULE_SETUP +#line 826 "scan.l" +BEGIN(CCL); return CCE_NEG_ALNUM; + YY_BREAK +case 205: +YY_RULE_SETUP +#line 827 "scan.l" +BEGIN(CCL); return CCE_NEG_ALPHA; + YY_BREAK +case 206: +YY_RULE_SETUP +#line 828 "scan.l" +BEGIN(CCL); return CCE_NEG_BLANK; + YY_BREAK +case 207: +YY_RULE_SETUP +#line 829 "scan.l" +BEGIN(CCL); return CCE_NEG_CNTRL; + YY_BREAK +case 208: +YY_RULE_SETUP +#line 830 "scan.l" +BEGIN(CCL); return CCE_NEG_DIGIT; + YY_BREAK +case 209: +YY_RULE_SETUP +#line 831 "scan.l" +BEGIN(CCL); return CCE_NEG_GRAPH; + YY_BREAK +case 210: +YY_RULE_SETUP +#line 832 "scan.l" +BEGIN(CCL); return CCE_NEG_LOWER; + YY_BREAK +case 211: +YY_RULE_SETUP +#line 833 "scan.l" +BEGIN(CCL); return CCE_NEG_PRINT; + YY_BREAK +case 212: +YY_RULE_SETUP +#line 834 "scan.l" +BEGIN(CCL); return CCE_NEG_PUNCT; + YY_BREAK +case 213: +YY_RULE_SETUP +#line 835 "scan.l" +BEGIN(CCL); return CCE_NEG_SPACE; + YY_BREAK +case 214: +YY_RULE_SETUP +#line 836 "scan.l" +BEGIN(CCL); return CCE_NEG_UPPER; + YY_BREAK +case 215: +YY_RULE_SETUP +#line 837 "scan.l" +BEGIN(CCL); return CCE_NEG_XDIGIT; + YY_BREAK +case 216: +YY_RULE_SETUP +#line 838 "scan.l" +{ + format_synerr( + _( "bad character class expression: %s" ), + yytext ); + BEGIN(CCL); return CCE_ALNUM; + } + YY_BREAK + + +case 217: +YY_RULE_SETUP +#line 847 "scan.l" +{ + yylval = myctoi( yytext ); + return NUMBER; + } + YY_BREAK +case 218: +YY_RULE_SETUP +#line 852 "scan.l" +return ','; + YY_BREAK +case 219: +YY_RULE_SETUP +#line 853 "scan.l" +{ + BEGIN(SECT2); + if ( lex_compat || posix_compat ) + return END_REPEAT_POSIX; + else + return END_REPEAT_FLEX; + } + YY_BREAK +case 220: +YY_RULE_SETUP +#line 861 "scan.l" +{ + synerr( _( "bad character inside {}'s" ) ); + BEGIN(SECT2); + return '}'; + } + YY_BREAK +case 221: +/* rule 221 can match eol */ +YY_RULE_SETUP +#line 867 "scan.l" +{ + synerr( _( "missing }" ) ); + BEGIN(SECT2); + ++linenum; + return '}'; + } + YY_BREAK + + +case 222: +YY_RULE_SETUP +#line 877 "scan.l" +bracelevel = 0; + YY_BREAK +case 223: +YY_RULE_SETUP +#line 879 "scan.l" +ACTION_ECHO; yy_push_state( COMMENT ); + YY_BREAK + +case 224: +YY_RULE_SETUP +#line 882 "scan.l" +{ + ACTION_ECHO; + CHECK_REJECT(yytext); + } + YY_BREAK +case 225: +YY_RULE_SETUP +#line 886 "scan.l" +{ + ACTION_ECHO; + CHECK_YYMORE(yytext); + } + YY_BREAK + +case 226: +YY_RULE_SETUP +#line 892 "scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 227: +YY_RULE_SETUP +#line 893 "scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 228: +YY_RULE_SETUP +#line 894 "scan.l" +ACTION_ECHO; + YY_BREAK +case 229: +/* rule 229 can match eol */ +YY_RULE_SETUP +#line 895 "scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 || + (doing_codeblock && indented_code) ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = doing_codeblock = false; + BEGIN(SECT2); + } + } + YY_BREAK + +/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ + +case 230: +YY_RULE_SETUP +#line 913 "scan.l" +ACTION_ECHO; ++bracelevel; + YY_BREAK +case 231: +YY_RULE_SETUP +#line 914 "scan.l" +ACTION_ECHO; --bracelevel; + YY_BREAK +case 232: +YY_RULE_SETUP +#line 915 "scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 233: +YY_RULE_SETUP +#line 916 "scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 234: +YY_RULE_SETUP +#line 917 "scan.l" +ACTION_ECHO; + YY_BREAK +case 235: +YY_RULE_SETUP +#line 918 "scan.l" +ACTION_ECHO; + YY_BREAK +case 236: +YY_RULE_SETUP +#line 919 "scan.l" +ACTION_ECHO; + YY_BREAK +case 237: +YY_RULE_SETUP +#line 920 "scan.l" +ACTION_ECHO; /* character constant */ + YY_BREAK +case 238: +YY_RULE_SETUP +#line 921 "scan.l" +ACTION_ECHO; BEGIN(ACTION_STRING); + YY_BREAK +case 239: +/* rule 239 can match eol */ +YY_RULE_SETUP +#line 922 "scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = false; + BEGIN(SECT2); + } + } + YY_BREAK +case 240: +YY_RULE_SETUP +#line 934 "scan.l" +ACTION_ECHO; + YY_BREAK + + +case 241: +YY_RULE_SETUP +#line 938 "scan.l" +ACTION_ECHO; + YY_BREAK +case 242: +YY_RULE_SETUP +#line 939 "scan.l" +ACTION_ECHO; + YY_BREAK +case 243: +/* rule 243 can match eol */ +YY_RULE_SETUP +#line 940 "scan.l" +++linenum; ACTION_ECHO; BEGIN(ACTION); + YY_BREAK +case 244: +YY_RULE_SETUP +#line 941 "scan.l" +ACTION_ECHO; BEGIN(ACTION); + YY_BREAK +case 245: +YY_RULE_SETUP +#line 942 "scan.l" +ACTION_ECHO; + YY_BREAK + +case YY_STATE_EOF(COMMENT): +case YY_STATE_EOF(COMMENT_DISCARD): +case YY_STATE_EOF(ACTION): +case YY_STATE_EOF(ACTION_STRING): +#line 945 "scan.l" +{ + synerr( _( "EOF encountered inside an action" ) ); + yyterminate(); + } + YY_BREAK +case YY_STATE_EOF(EXTENDED_COMMENT): +case YY_STATE_EOF(GROUP_WITH_PARAMS): +case YY_STATE_EOF(GROUP_MINUS_PARAMS): +#line 950 "scan.l" +{ + synerr( _( "EOF encountered inside pattern" ) ); + yyterminate(); + } + YY_BREAK +case 246: +YY_RULE_SETUP +#line 955 "scan.l" +{ + yylval = myesc( (unsigned char *) yytext ); + + if ( YY_START == FIRSTCCL ) + BEGIN(CCL); + + return CHAR; + } + YY_BREAK + +case 247: +YY_RULE_SETUP +#line 966 "scan.l" +fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout); + YY_BREAK +case 248: +YY_RULE_SETUP +#line 967 "scan.l" +fwrite (escaped_qend, 1, strlen(escaped_qend), yyout); + YY_BREAK +case 249: +/* rule 249 can match eol */ +YY_RULE_SETUP +#line 968 "scan.l" +ECHO; + YY_BREAK +case 250: +/* rule 250 can match eol */ +YY_RULE_SETUP +#line 969 "scan.l" +ECHO; + YY_BREAK +case YY_STATE_EOF(SECT3): +#line 970 "scan.l" +sectnum = 0; yyterminate(); + YY_BREAK + +case 251: +/* rule 251 can match eol */ +YY_RULE_SETUP +#line 973 "scan.l" +format_synerr( _( "bad character: %s" ), yytext ); + YY_BREAK +case 252: +YY_RULE_SETUP +#line 975 "scan.l" +YY_FATAL_ERROR( "flex scanner jammed" ); + YY_BREAK +#line 3997 "scan.c" +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(SECT2): +case YY_STATE_EOF(CODEBLOCK): +case YY_STATE_EOF(PICKUPDEF): +case YY_STATE_EOF(SC): +case YY_STATE_EOF(CARETISBOL): +case YY_STATE_EOF(NUM): +case YY_STATE_EOF(QUOTE): +case YY_STATE_EOF(FIRSTCCL): +case YY_STATE_EOF(CCL): +case YY_STATE_EOF(RECOVER): +case YY_STATE_EOF(PERCENT_BRACE_ACTION): +case YY_STATE_EOF(OPTION): +case YY_STATE_EOF(LINEDIR): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of user's declarations */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + yy_size_t number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + yy_size_t new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + yy_state_type yy_current_state; + char *yy_cp; + + yy_current_state = (yy_start); + yy_current_state += YY_AT_BOL(); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); + + YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 1109); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_UNPUT + + static void yyunput (int c, char * yy_bp ) +{ + char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return EOF; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = (yy_size_t)size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; // After all that talk, this was set to 1 anyways... + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + yy_size_t grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + yy_size_t i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + + static void yy_push_state (int _new_state ) +{ + if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) + { + yy_size_t new_size; + + (yy_start_stack_depth) += YY_START_STACK_INCR; + new_size = (yy_start_stack_depth) * sizeof( int ); + + if ( ! (yy_start_stack) ) + (yy_start_stack) = (int *) yyalloc(new_size ); + + else + (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size ); + + if ( ! (yy_start_stack) ) + YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); + } + + (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; + + BEGIN(_new_state); +} + + static void yy_pop_state (void) +{ + if ( --(yy_start_stack_ptr) < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); + + BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +yy_size_t yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param _line_number line number + * + */ +void yyset_lineno (int _line_number ) +{ + + yylineno = _line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param _in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * _in_str ) +{ + yyin = _in_str ; +} + +void yyset_out (FILE * _out_str ) +{ + yyout = _out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int _bdebug ) +{ + yy_flex_debug = _bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + + (yy_start_stack_ptr) = 0; + (yy_start_stack_depth) = 0; + (yy_start_stack) = NULL; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Destroy the start condition stack. */ + yyfree((yy_start_stack) ); + (yy_start_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + + int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 975 "scan.l" + + + + +int yywrap(void) + { + if ( --num_input_files > 0 ) + { + set_input_file( *++input_files ); + return 0; + } + + else + return 1; + } + + +/* set_input_file - open the given file (if NULL, stdin) for scanning */ + +void set_input_file( char *file ) + { + if ( file && strcmp( file, "-" ) ) + { + infilename = xstrdup(file); + yyin = fopen( infilename, "r" ); + + if ( yyin == NULL ) + lerr( _( "can't open %s" ), file ); + } + + else + { + yyin = stdin; + infilename = xstrdup("<stdin>"); + } + + linenum = 1; + } + diff --git a/src/skel.c b/src/skel.c new file mode 100644 index 0000000..b22060a --- /dev/null +++ b/src/skel.c @@ -0,0 +1,3820 @@ +/* File created from flex.skl via mkskel.sh */ + +#include "flexdef.h" + +const char *skel[] = { + "%# -*-C-*- vi: set ft=c:", + "%# This file is processed in several stages.", + "%# Here are the stages, as best as I can describe:", + "%#", + "%# 1. flex.skl is processed through GNU m4 during the", + "%# pre-compilation stage of flex. Only macros starting", + "%# with `m4_' are processed, and quoting is normal.", + "%#", + "%# 2. The preprocessed skeleton is translated verbatim into a", + "%# C array, saved as \"skel.c\" and compiled into the flex binary.", + "%#", + "%# 3. At runtime, the skeleton is generated and filtered (again)", + "%# through m4. Macros beginning with `m4_' will be processed.", + "%# The quoting is \"[[\" and \"]]\" so we don't interfere with", + "%# user code.", + "%# ", + "%# All generate macros for the m4 stage contain the text \"m4\" or \"M4\"", + "%# in them. This is to distinguish them from CPP macros.", + "%# The exception to this rule is YY_G, which is an m4 macro, ", + "%# but it needs to be remain short because it is used everywhere.", + "%#", + "/* A lexical scanner generated by flex */", + "", + "%# Macros for preproc stage.", + "", + "", + "%# Macros for runtime processing stage.", + "m4_changecom", + "m4_changequote", + "m4_changequote([[, ]])", + "", + "%# ", + "%# Lines in this skeleton starting with a \"%\" character are \"control lines\"", + "%# and affect the generation of the scanner. The possible control codes are", + "%# listed and processed in misc.c.", + "%#", + "%# %# - A comment. The current line is omitted from the generated scanner.", + "%# %if-c++-only - The following lines are printed for C++ scanners ONLY.", + "%# %if-c-only - The following lines are NOT printed for C++ scanners.", + "%# %if-c-or-c++ - The following lines are printed in BOTH C and C++ scanners.", + "%# %if-reentrant - Print for reentrant scanners.(push)", + "%# %if-not-reentrant - Print for non-reentrant scanners. (push)", + "%# %if-bison-bridge - Print for bison-bridge. (push)", + "%# %if-not-bison-bridge - Print for non-bison-bridge. (push)", + "%# %endif - pop from the previous if code.", + "%# %% - A stop-point, where code is inserted by flex.", + "%# Each stop-point is numbered here and also in the code generator.", + "%# (See gen.c, etc. for details.)", + "%# %not-for-header - Begin code that should NOT appear in a \".h\" file.", + "%# %ok-for-header - %c and %e are used for building a header file.", + "%# %if-tables-serialization", + "%#", + "%# All control-lines EXCEPT comment lines (\"%#\") will be inserted into", + "%# the generated scanner as a C-style comment. This is to aid those who", + "%# edit the skeleton.", + "%#", + "", + "%not-for-header", + "%if-c-only", + "%if-not-reentrant", + "m4_ifelse(M4_YY_PREFIX,yy,,", + "#define yy_create_buffer M4_YY_PREFIX[[_create_buffer]]", + "#define yy_delete_buffer M4_YY_PREFIX[[_delete_buffer]]", + "#define yy_flex_debug M4_YY_PREFIX[[_flex_debug]]", + "#define yy_init_buffer M4_YY_PREFIX[[_init_buffer]]", + "#define yy_flush_buffer M4_YY_PREFIX[[_flush_buffer]]", + "#define yy_load_buffer_state M4_YY_PREFIX[[_load_buffer_state]]", + "#define yy_switch_to_buffer M4_YY_PREFIX[[_switch_to_buffer]]", + "#define yyin M4_YY_PREFIX[[in]]", + "#define yyleng M4_YY_PREFIX[[leng]]", + "#define yylex M4_YY_PREFIX[[lex]]", + "#define yylineno M4_YY_PREFIX[[lineno]]", + "#define yyout M4_YY_PREFIX[[out]]", + "#define yyrestart M4_YY_PREFIX[[restart]]", + "#define yytext M4_YY_PREFIX[[text]]", + "#define yywrap M4_YY_PREFIX[[wrap]]", + "#define yyalloc M4_YY_PREFIX[[alloc]]", + "#define yyrealloc M4_YY_PREFIX[[realloc]]", + "#define yyfree M4_YY_PREFIX[[free]]", + ")", + "%endif", + "%endif", + "%ok-for-header", + "", + "#define FLEX_SCANNER", + "#define YY_FLEX_MAJOR_VERSION 2", + "#define YY_FLEX_MINOR_VERSION 6", + "#define YY_FLEX_SUBMINOR_VERSION 1", + "#if YY_FLEX_SUBMINOR_VERSION > 0", + "#define FLEX_BETA", + "#endif", + "", + "%# Some negated symbols", + "m4_ifdef( [[M4_YY_IN_HEADER]], , [[m4_define([[M4_YY_NOT_IN_HEADER]], [[]])]])", + "m4_ifdef( [[M4_YY_REENTRANT]], , [[m4_define([[M4_YY_NOT_REENTRANT]], [[]])]])", + "", + "%# This is the m4 way to say \"(stack_used || is_reentrant)", + "m4_ifdef( [[M4_YY_STACK_USED]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]])", + "m4_ifdef( [[M4_YY_REENTRANT]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]])", + "", + "%# Prefixes.", + "%# The complexity here is necessary so that m4 preserves", + "%# the argument lists to each C function.", + "", + "", + "m4_ifdef( [[M4_YY_PREFIX]],, [[m4_define([[M4_YY_PREFIX]], [[yy]])]])", + "", + "", + "", + "%if-c++-only", + " /* The c++ scanner is a mess. The FlexLexer.h header file relies on the", + " * following macro. This is required in order to pass the c++-multiple-scanners", + " * test in the regression suite. We get reports that it breaks inheritance.", + " * We will address this in a future release of flex, or omit the C++ scanner", + " * altogether.", + " */", + " #define yyFlexLexer M4_YY_PREFIX[[FlexLexer]]", + "%endif", + "", + "%if-c-only", + " m4_define(yy[[_create_buffer]], [[M4_YY_PREFIX[[_create_buffer]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_delete_buffer]], [[M4_YY_PREFIX[[_delete_buffer]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_scan_buffer]], [[M4_YY_PREFIX[[_scan_buffer]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_scan_string]], [[M4_YY_PREFIX[[_scan_string]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_scan_bytes]], [[M4_YY_PREFIX[[_scan_bytes]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_init_buffer]], [[M4_YY_PREFIX[[_init_buffer]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_flush_buffer]], [[M4_YY_PREFIX[[_flush_buffer]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_load_buffer_state]], [[M4_YY_PREFIX[[_load_buffer_state]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_switch_to_buffer]], [[M4_YY_PREFIX[[_switch_to_buffer]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[push_buffer_state]], [[M4_YY_PREFIX[[push_buffer_state]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[pop_buffer_state]], [[M4_YY_PREFIX[[pop_buffer_state]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[ensure_buffer_stack]], [[M4_YY_PREFIX[[ensure_buffer_stack]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[lex]], [[M4_YY_PREFIX[[lex]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[restart]], [[M4_YY_PREFIX[[restart]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[lex_init]], [[M4_YY_PREFIX[[lex_init]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[lex_init_extra]], [[M4_YY_PREFIX[[lex_init_extra]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[lex_destroy]], [[M4_YY_PREFIX[[lex_destroy]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[get_debug]], [[M4_YY_PREFIX[[get_debug]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_debug]], [[M4_YY_PREFIX[[set_debug]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[get_extra]], [[M4_YY_PREFIX[[get_extra]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_extra]], [[M4_YY_PREFIX[[set_extra]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[get_in]], [[M4_YY_PREFIX[[get_in]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_in]], [[M4_YY_PREFIX[[set_in]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[get_out]], [[M4_YY_PREFIX[[get_out]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_out]], [[M4_YY_PREFIX[[set_out]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[get_leng]], [[M4_YY_PREFIX[[get_leng]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[get_text]], [[M4_YY_PREFIX[[get_text]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[get_lineno]], [[M4_YY_PREFIX[[get_lineno]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_lineno]], [[M4_YY_PREFIX[[set_lineno]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_ifdef( [[M4_YY_REENTRANT]],", + " [[", + " m4_define(yy[[get_column]], [[M4_YY_PREFIX[[get_column]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_column]], [[M4_YY_PREFIX[[set_column]]m4_ifelse($#,0,,[[($@)]])]])", + " ]])", + " m4_define(yy[[wrap]], [[M4_YY_PREFIX[[wrap]]m4_ifelse($#,0,,[[($@)]])]])", + "%endif", + "", + "m4_ifdef( [[M4_YY_BISON_LVAL]],", + "[[", + " m4_define(yy[[get_lval]], [[M4_YY_PREFIX[[get_lval]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_lval]], [[M4_YY_PREFIX[[set_lval]]m4_ifelse($#,0,,[[($@)]])]])", + "]])", + "", + "m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + "[[", + " m4_define(yy[[get_lloc]], [[M4_YY_PREFIX[[get_lloc]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[set_lloc]], [[M4_YY_PREFIX[[set_lloc]]m4_ifelse($#,0,,[[($@)]])]])", + "]])", + "", + "", + " m4_define(yy[[alloc]], [[M4_YY_PREFIX[[alloc]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[realloc]], [[M4_YY_PREFIX[[realloc]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[free]], [[M4_YY_PREFIX[[free]]m4_ifelse($#,0,,[[($@)]])]])", + "", + "%if-c-only", + "m4_ifdef( [[M4_YY_NOT_REENTRANT]],", + "[[", + " m4_define(yy[[text]], [[M4_YY_PREFIX[[text]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[leng]], [[M4_YY_PREFIX[[leng]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[in]], [[M4_YY_PREFIX[[in]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[out]], [[M4_YY_PREFIX[[out]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[_flex_debug]], [[M4_YY_PREFIX[[_flex_debug]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[lineno]], [[M4_YY_PREFIX[[lineno]]m4_ifelse($#,0,,[[($@)]])]])", + "]])", + "%endif", + "", + "", + "m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],", + "[[", + " m4_define(yy[[tables_fload]], [[M4_YY_PREFIX[[tables_fload]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[tables_destroy]], [[M4_YY_PREFIX[[tables_destroy]]m4_ifelse($#,0,,[[($@)]])]])", + " m4_define(yy[[TABLES_NAME]], [[M4_YY_PREFIX[[TABLES_NAME]]m4_ifelse($#,0,,[[($@)]])]])", + "]])", + "", + "/* First, we deal with platform-specific or compiler-specific issues. */", + "", + "/* begin standard C headers. */", + "%if-c-only", + "#include <stdio.h>", + "#include <string.h>", + "#include <errno.h>", + "#include <stdlib.h>", + "%endif", + "", + "%if-tables-serialization", + "#include <sys/types.h>", + "#include <netinet/in.h>", + "%endif", + "/* end standard C headers. */", + "", + "%if-c-or-c++", + "/* flex integer type definitions */", + "", + "#ifndef FLEXINT_H", + "#define FLEXINT_H", + "", + "/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */", + "", + "#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L", + "", + "/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,", + " * if you want the limit (max/min) macros for int types. ", + " */", + "#ifndef __STDC_LIMIT_MACROS", + "#define __STDC_LIMIT_MACROS 1", + "#endif", + "", + "#include <inttypes.h>", + "typedef int8_t flex_int8_t;", + "typedef uint8_t flex_uint8_t;", + "typedef int16_t flex_int16_t;", + "typedef uint16_t flex_uint16_t;", + "typedef int32_t flex_int32_t;", + "typedef uint32_t flex_uint32_t;", + "#else", + "typedef signed char flex_int8_t;", + "typedef short int flex_int16_t;", + "typedef int flex_int32_t;", + "typedef unsigned char flex_uint8_t; ", + "typedef unsigned short int flex_uint16_t;", + "typedef unsigned int flex_uint32_t;", + "", + "/* Limits of integral types. */", + "#ifndef INT8_MIN", + "#define INT8_MIN (-128)", + "#endif", + "#ifndef INT16_MIN", + "#define INT16_MIN (-32767-1)", + "#endif", + "#ifndef INT32_MIN", + "#define INT32_MIN (-2147483647-1)", + "#endif", + "#ifndef INT8_MAX", + "#define INT8_MAX (127)", + "#endif", + "#ifndef INT16_MAX", + "#define INT16_MAX (32767)", + "#endif", + "#ifndef INT32_MAX", + "#define INT32_MAX (2147483647)", + "#endif", + "#ifndef UINT8_MAX", + "#define UINT8_MAX (255U)", + "#endif", + "#ifndef UINT16_MAX", + "#define UINT16_MAX (65535U)", + "#endif", + "#ifndef UINT32_MAX", + "#define UINT32_MAX (4294967295U)", + "#endif", + "", + "#endif /* ! C99 */", + "", + "#endif /* ! FLEXINT_H */", + "", + "%endif", + "", + "%if-c++-only", + "/* begin standard C++ headers. */", + "#include <iostream> ", + "#include <errno.h>", + "#include <cstdlib>", + "#include <cstdio>", + "#include <cstring>", + "/* end standard C++ headers. */", + "%endif", + "", + "/* TODO: this is always defined, so inline it */", + "#define yyconst const", + "", + "#if defined(__GNUC__) && __GNUC__ >= 3", + "#define yynoreturn __attribute__((__noreturn__))", + "#else", + "#define yynoreturn", + "#endif", + "", + "%# For compilers that can not handle prototypes.", + "%# e.g.,", + "%# The function prototype", + "%# int foo(int x, char* y);", + "%# ", + "%# ...should be written as", + "%# int foo M4_YY_PARAMS(int x, char* y);", + "%# ", + "%# ...which could possibly generate", + "%# int foo ();", + "%# ", + "m4_ifdef( [[M4_YY_NO_ANSI_FUNC_PROTOS]],", + "[[", + " m4_define( [[M4_YY_PARAMS]], [[()]])", + "]],", + "[[", + " m4_define( [[M4_YY_PARAMS]], [[($*)]])", + "]])", + "", + "%not-for-header", + "/* Returned upon end-of-file. */", + "#define YY_NULL 0", + "%ok-for-header", + "", + "%not-for-header", + "/* Promotes a possibly negative, possibly signed char to an unsigned", + " * integer for use as an array index. If the signed char is negative,", + " * we want to instead treat it as an 8-bit unsigned char, hence the", + " * double cast.", + " */", + "#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)", + "%ok-for-header", + "", + "", + "", + "%if-reentrant", + "", + "/* An opaque pointer. */", + "#ifndef YY_TYPEDEF_YY_SCANNER_T", + "#define YY_TYPEDEF_YY_SCANNER_T", + "typedef void* yyscan_t;", + "#endif", + "", + "%# Declare yyguts variable", + "m4_define( [[M4_YY_DECL_GUTS_VAR]], [[struct yyguts_t * yyg = (struct yyguts_t*)yyscanner]])", + "%# Perform a noop access on yyguts to prevent unused variable complains", + "m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[(void)yyg]])", + "%# For use wherever a Global is accessed or assigned.", + "m4_define( [[YY_G]], [[yyg->$1]])", + "", + "%# For use in function prototypes to append the additional argument.", + "m4_define( [[M4_YY_PROTO_LAST_ARG]], [[, yyscan_t yyscanner]])", + "m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[yyscan_t yyscanner]])", + "", + "%# For use in function definitions to append the additional argument.", + "m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],", + "[[", + " m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscanner]])", + " m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscanner]])", + "]],", + "[[", + " m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscan_t yyscanner]])", + " m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscan_t yyscanner]])", + "]])", + "m4_define( [[M4_YY_DECL_LAST_ARG]], [[yyscan_t yyscanner;]])", + "", + "%# For use in function calls to pass the additional argument.", + "m4_define( [[M4_YY_CALL_LAST_ARG]], [[, yyscanner]])", + "m4_define( [[M4_YY_CALL_ONLY_ARG]], [[yyscanner]])", + "", + "%# For use in function documentation to adjust for additional argument.", + "m4_define( [[M4_YY_DOC_PARAM]], [[@param yyscanner The scanner object.]])", + "", + "/* For convenience, these vars (plus the bison vars far below)", + " are macros in the reentrant scanner. */", + "#define yyin YY_G(yyin_r)", + "#define yyout YY_G(yyout_r)", + "#define yyextra YY_G(yyextra_r)", + "#define yyleng YY_G(yyleng_r)", + "#define yytext YY_G(yytext_r)", + "#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)", + "#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)", + "#define yy_flex_debug YY_G(yy_flex_debug_r)", + "", + "m4_define( [[M4_YY_INCR_LINENO]],", + "[[ ", + " do{ yylineno++;", + " yycolumn=0;", + " }while(0)", + "]])", + "", + "%endif", + "", + "", + "", + "%if-not-reentrant", + "", + "m4_define( [[M4_YY_INCR_LINENO]],", + "[[ ", + " yylineno++;", + "]])", + "", + "%# Define these macros to be no-ops.", + "m4_define( [[M4_YY_DECL_GUTS_VAR]], [[m4_dnl]])", + "m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[m4_dnl]])", + "m4_define( [[YY_G]], [[($1)]])", + "m4_define( [[M4_YY_PROTO_LAST_ARG]])", + "m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[void]])", + "m4_define( [[M4_YY_DEF_LAST_ARG]])", + "", + "m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],", + "[[", + " m4_define( [[M4_YY_DEF_ONLY_ARG]])", + "]],", + "[[", + " m4_define( [[M4_YY_DEF_ONLY_ARG]], [[void]])", + "]])", + "m4_define([[M4_YY_DECL_LAST_ARG]])", + "m4_define([[M4_YY_CALL_LAST_ARG]])", + "m4_define([[M4_YY_CALL_ONLY_ARG]])", + "m4_define( [[M4_YY_DOC_PARAM]], [[]])", + "", + "%endif", + "", + "", + "m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],", + "[[", + "%# For compilers that need traditional function definitions.", + "%# e.g.,", + "%# The function prototype taking 2 arguments", + "%# int foo (int x, char* y)", + "%#", + "%# ...should be written as", + "%# int foo YYFARGS2(int,x, char*,y)", + "%#", + "%# ...which could possibly generate", + "%# int foo (x,y,yyscanner)", + "%# int x;", + "%# char * y;", + "%# yyscan_t yyscanner;", + "%#", + "%# Generate traditional function defs", + " m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG) [[\\]]", + " M4_YY_DECL_LAST_ARG]])", + " m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG) [[\\]]", + " $1 $2; [[\\]]", + " M4_YY_DECL_LAST_ARG]])", + " m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG) [[\\]]", + " $1 $2; [[\\]]", + " $3 $4; [[\\]]", + " M4_YY_DECL_LAST_ARG]])", + " m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\\]]", + " $1 $2; [[\\]]", + " $3 $4; [[\\]]", + " $5 $6; [[\\]]", + " M4_YY_DECL_LAST_ARG]])", + "]],", + "[[", + "%# Generate C99 function defs.", + " m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG)]])", + " m4_define( [[YYFARGS1]], [[($1 $2 M4_YY_DEF_LAST_ARG)]])", + " m4_define( [[YYFARGS2]], [[($1 $2, $3 $4 M4_YY_DEF_LAST_ARG)]])", + " m4_define( [[YYFARGS3]], [[($1 $2, $3 $4, $5 $6 M4_YY_DEF_LAST_ARG)]])", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Enter a start condition. This macro really ought to take a parameter,", + " * but we do it the disgusting crufty way forced on us by the ()-less", + " * definition of BEGIN.", + " */", + "#define BEGIN YY_G(yy_start) = 1 + 2 *", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Translate the current start state into a value that can be later handed", + " * to BEGIN to return to the state. The YYSTATE alias is for lex", + " * compatibility.", + " */", + "#define YY_START ((YY_G(yy_start) - 1) / 2)", + "#define YYSTATE YY_START", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Action number for EOF rule of a given start state. */", + "#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Special action meaning \"start processing a new file\". */", + "#define YY_NEW_FILE yyrestart( yyin M4_YY_CALL_LAST_ARG )", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define YY_END_OF_BUFFER_CHAR 0", + "]])", + "", + "/* Size of default input buffer. */", + "#ifndef YY_BUF_SIZE", + "#ifdef __ia64__", + "/* On IA-64, the buffer size is 16k, not 8k.", + " * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.", + " * Ditto for the __ia64__ case accordingly.", + " */", + "#define YY_BUF_SIZE 32768", + "#else", + "#define YY_BUF_SIZE 16384", + "#endif /* __ia64__ */", + "#endif", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* The state buf must be large enough to hold one state per character in the main buffer.", + " */", + "#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))", + "]])", + "", + "", + "#ifndef YY_TYPEDEF_YY_BUFFER_STATE", + "#define YY_TYPEDEF_YY_BUFFER_STATE", + "typedef struct yy_buffer_state *YY_BUFFER_STATE;", + "#endif", + "", + "#ifndef YY_TYPEDEF_YY_SIZE_T", + "#define YY_TYPEDEF_YY_SIZE_T", + "typedef size_t yy_size_t;", + "#endif", + "", + "%if-not-reentrant", + "extern int yyleng;", + "%endif", + "", + "%if-c-only", + "%if-not-reentrant", + "extern FILE *yyin, *yyout;", + "%endif", + "%endif", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define EOB_ACT_CONTINUE_SCAN 0", + "#define EOB_ACT_END_OF_FILE 1", + "#define EOB_ACT_LAST_MATCH 2", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + " m4_ifdef( [[M4_YY_USE_LINENO]],", + " [[", + " /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires", + " * access to the local variable yy_act. Since yyless() is a macro, it would break", + " * existing scanners that call yyless() from OUTSIDE yylex. ", + " * One obvious solution it to make yy_act a global. I tried that, and saw", + " * a 5% performance hit in a non-yylineno scanner, because yy_act is", + " * normally declared as a register variable-- so it is not worth it.", + " */", + " #define YY_LESS_LINENO(n) \\", + " do { \\", + " int yyl;\\", + " for ( yyl = n; yyl < yyleng; ++yyl )\\", + " if ( yytext[yyl] == '\\n' )\\", + " --yylineno;\\", + " }while(0)", + " #define YY_LINENO_REWIND_TO(dst) \\", + " do {\\", + " const char *p;\\", + " for ( p = yy_cp-1; p >= (dst); --p)\\", + " if ( *p == '\\n' )\\", + " --yylineno;\\", + " }while(0)", + " ]],", + " [[", + " #define YY_LESS_LINENO(n)", + " #define YY_LINENO_REWIND_TO(ptr)", + " ]])", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Return all but the first \"n\" matched characters back to the input stream. */", + "#define yyless(n) \\", + " do \\", + " { \\", + " /* Undo effects of setting up yytext. */ \\", + " int yyless_macro_arg = (n); \\", + " YY_LESS_LINENO(yyless_macro_arg);\\", + " *yy_cp = YY_G(yy_hold_char); \\", + " YY_RESTORE_YY_MORE_OFFSET \\", + " YY_G(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \\", + " YY_DO_BEFORE_ACTION; /* set up yytext again */ \\", + " } \\", + " while ( 0 )", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define unput(c) yyunput( c, YY_G(yytext_ptr) M4_YY_CALL_LAST_ARG )", + "]])", + "", + "#ifndef YY_STRUCT_YY_BUFFER_STATE", + "#define YY_STRUCT_YY_BUFFER_STATE", + "struct yy_buffer_state", + " {", + "%if-c-only", + " FILE *yy_input_file;", + "%endif", + "", + "%if-c++-only", + " std::streambuf* yy_input_file; ", + "%endif", + "", + "", + " char *yy_ch_buf; /* input buffer */", + " char *yy_buf_pos; /* current position in input buffer */", + "", + " /* Size of input buffer in bytes, not including room for EOB", + " * characters.", + " */", + " int yy_buf_size;", + "", + " /* Number of characters read into yy_ch_buf, not including EOB", + " * characters.", + " */", + " int yy_n_chars;", + "", + " /* Whether we \"own\" the buffer - i.e., we know we created it,", + " * and can realloc() it to grow it, and should free() it to", + " * delete it.", + " */", + " int yy_is_our_buffer;", + "", + " /* Whether this is an \"interactive\" input source; if so, and", + " * if we're using stdio for input, then we want to use getc()", + " * instead of fread(), to make sure we stop fetching input after", + " * each newline.", + " */", + " int yy_is_interactive;", + "", + " /* Whether we're considered to be at the beginning of a line.", + " * If so, '^' rules will be active on the next match, otherwise", + " * not.", + " */", + " int yy_at_bol;", + "", + " int yy_bs_lineno; /**< The line count. */", + " int yy_bs_column; /**< The column count. */", + " ", + "", + " /* Whether to try to fill the input buffer when we reach the", + " * end of it.", + " */", + " int yy_fill_buffer;", + "", + " int yy_buffer_status;", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define YY_BUFFER_NEW 0", + "#define YY_BUFFER_NORMAL 1", + " /* When an EOF's been seen but there's still some text to process", + " * then we mark the buffer as YY_EOF_PENDING, to indicate that we", + " * shouldn't try reading from the input source any more. We might", + " * still have a bunch of tokens to match, though, because of", + " * possible backing-up.", + " *", + " * When we actually see the EOF, we change the status to \"new\"", + " * (via yyrestart()), so that the user can continue scanning by", + " * just pointing yyin at a new input file.", + " */", + "#define YY_BUFFER_EOF_PENDING 2", + "]])", + " };", + "#endif /* !YY_STRUCT_YY_BUFFER_STATE */", + "", + "%if-c-only Standard (non-C++) definition", + "%not-for-header", + "%if-not-reentrant", + "", + "/* Stack of input buffers. */", + "static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */", + "static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */", + "static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */", + "%endif", + "%ok-for-header", + "%endif", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* We provide macros for accessing buffer states in case in the", + " * future we want to put the buffer states in a more general", + " * \"scanner state\".", + " *", + " * Returns the top of the stack, or NULL.", + " */", + "#define YY_CURRENT_BUFFER ( YY_G(yy_buffer_stack) \\", + " ? YY_G(yy_buffer_stack)[YY_G(yy_buffer_stack_top)] \\", + " : NULL)", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Same as previous macro, but useful when we know that the buffer stack is not", + " * NULL or when we need an lvalue. For internal use only.", + " */", + "#define YY_CURRENT_BUFFER_LVALUE YY_G(yy_buffer_stack)[YY_G(yy_buffer_stack_top)]", + "]])", + "", + "%if-c-only Standard (non-C++) definition", + "", + "%if-not-reentrant", + "%not-for-header", + "/* yy_hold_char holds the character lost when yytext is formed. */", + "static char yy_hold_char;", + "static int yy_n_chars; /* number of characters read into yy_ch_buf */", + "int yyleng;", + "", + "/* Points to current character in buffer. */", + "static char *yy_c_buf_p = NULL;", + "static int yy_init = 0; /* whether we need to initialize */", + "static int yy_start = 0; /* start state number */", + "", + "/* Flag which is used to allow yywrap()'s to do buffer switches", + " * instead of setting up a fresh yyin. A bit of a hack ...", + " */", + "static int yy_did_buffer_switch_on_eof;", + "%ok-for-header", + "%endif", + "", + "void yyrestart M4_YY_PARAMS( FILE *input_file M4_YY_PROTO_LAST_ARG );", + "void yy_switch_to_buffer M4_YY_PARAMS( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );", + "YY_BUFFER_STATE yy_create_buffer M4_YY_PARAMS( FILE *file, int size M4_YY_PROTO_LAST_ARG );", + "void yy_delete_buffer M4_YY_PARAMS( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );", + "void yy_flush_buffer M4_YY_PARAMS( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );", + "void yypush_buffer_state M4_YY_PARAMS( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );", + "void yypop_buffer_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "static void yyensure_buffer_stack M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "static void yy_load_buffer_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "static void yy_init_buffer M4_YY_PARAMS( YY_BUFFER_STATE b, FILE *file M4_YY_PROTO_LAST_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG)", + "]])", + "", + "YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );", + "YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG );", + "YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, int len M4_YY_PROTO_LAST_ARG );", + "", + "%endif", + "", + "void *yyalloc M4_YY_PARAMS( yy_size_t M4_YY_PROTO_LAST_ARG );", + "void *yyrealloc M4_YY_PARAMS( void *, yy_size_t M4_YY_PROTO_LAST_ARG );", + "void yyfree M4_YY_PARAMS( void * M4_YY_PROTO_LAST_ARG );", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define yy_new_buffer yy_create_buffer", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define yy_set_interactive(is_interactive) \\", + " { \\", + " if ( ! YY_CURRENT_BUFFER ){ \\", + " yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG); \\", + " YY_CURRENT_BUFFER_LVALUE = \\", + " yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG); \\", + " } \\", + " YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \\", + " }", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define yy_set_bol(at_bol) \\", + " { \\", + " if ( ! YY_CURRENT_BUFFER ){\\", + " yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG); \\", + " YY_CURRENT_BUFFER_LVALUE = \\", + " yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG); \\", + " } \\", + " YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \\", + " }", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)", + "]])", + "", + "%% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "%% [1.5] DFA", + "]])", + "", + "%if-c-only Standard (non-C++) definition", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "static yy_state_type yy_get_previous_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "static yy_state_type yy_try_NUL_trans M4_YY_PARAMS( yy_state_type current_state M4_YY_PROTO_LAST_ARG);", + "static int yy_get_next_buffer M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "static void yynoreturn yy_fatal_error M4_YY_PARAMS( yyconst char* msg M4_YY_PROTO_LAST_ARG );", + "]])", + "", + "%endif", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Done after the current pattern has been matched and before the", + " * corresponding action - sets up yytext.", + " */", + "#define YY_DO_BEFORE_ACTION \\", + " YY_G(yytext_ptr) = yy_bp; \\", + "%% [2.0] code to fiddle yytext and yyleng for yymore() goes here \\", + " YY_G(yy_hold_char) = *yy_cp; \\", + " *yy_cp = '\\0'; \\", + "%% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \\", + " YY_G(yy_c_buf_p) = yy_cp;", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "%% [4.0] data tables for the DFA and the user's section 1 definitions go here", + "]])", + "", + "m4_ifdef( [[M4_YY_IN_HEADER]], [[#ifdef YY_HEADER_EXPORT_START_CONDITIONS]])", + "M4_YY_SC_DEFS", + "m4_ifdef( [[M4_YY_IN_HEADER]], [[#endif]])", + "", + "m4_ifdef( [[M4_YY_NO_UNISTD_H]],,", + "[[", + "#ifndef YY_NO_UNISTD_H", + "/* Special case for \"unistd.h\", since it is non-ANSI. We include it way", + " * down here because we want the user's section 1 to have been scanned first.", + " * The user has a chance to override it with an option.", + " */", + "%if-c-only", + "#include <unistd.h>", + "%endif", + "%if-c++-only", + "#include <unistd.h>", + "%endif", + "#endif", + "]])", + "", + "m4_ifdef( [[M4_EXTRA_TYPE_DEFS]],", + "[[", + "#define YY_EXTRA_TYPE M4_EXTRA_TYPE_DEFS", + "]],", + "[[", + "#ifndef YY_EXTRA_TYPE", + "#define YY_EXTRA_TYPE void *", + "#endif", + "]]", + ")", + "", + "%if-c-only Reentrant structure and macros (non-C++).", + "%if-reentrant", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Holds the entire state of the reentrant scanner. */", + "struct yyguts_t", + " {", + "", + " /* User-defined. Not touched by flex. */", + " YY_EXTRA_TYPE yyextra_r;", + "", + " /* The rest are the same as the globals declared in the non-reentrant scanner. */", + " FILE *yyin_r, *yyout_r;", + " size_t yy_buffer_stack_top; /**< index of top of stack. */", + " size_t yy_buffer_stack_max; /**< capacity of stack. */", + " YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */", + " char yy_hold_char;", + " int yy_n_chars;", + " int yyleng_r;", + " char *yy_c_buf_p;", + " int yy_init;", + " int yy_start;", + " int yy_did_buffer_switch_on_eof;", + " int yy_start_stack_ptr;", + " int yy_start_stack_depth;", + " int *yy_start_stack;", + " yy_state_type yy_last_accepting_state;", + " char* yy_last_accepting_cpos;", + "", + " int yylineno_r;", + " int yy_flex_debug_r;", + "", + "m4_ifdef( [[M4_YY_USES_REJECT]],", + "[[", + " yy_state_type *yy_state_buf;", + " yy_state_type *yy_state_ptr;", + " char *yy_full_match;", + " int yy_lp;", + "", + " /* These are only needed for trailing context rules,", + " * but there's no conditional variable for that yet. */", + " int yy_looking_for_trail_begin;", + " int yy_full_lp;", + " int *yy_full_state;", + "]])", + "", + "m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],", + "[[", + " char yytext_r[YYLMAX];", + " char *yytext_ptr;", + " int yy_more_offset;", + " int yy_prev_more_offset;", + "]],", + "[[", + " char *yytext_r;", + " int yy_more_flag;", + " int yy_more_len;", + "]])", + "", + "m4_ifdef( [[M4_YY_BISON_LVAL]],", + "[[", + " YYSTYPE * yylval_r;", + "]])", + "", + "m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + "[[", + " YYLTYPE * yylloc_r;", + "]])", + "", + " }; /* end struct yyguts_t */", + "]])", + "", + "", + "%if-c-only", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "static int yy_init_globals M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "%endif", + "", + "%if-reentrant", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + " m4_ifdef( [[M4_YY_BISON_LVAL]],", + " [[", + " /* This must go here because YYSTYPE and YYLTYPE are included", + " * from bison output in section 1.*/", + " # define yylval YY_G(yylval_r)", + " ]])", + "", + " m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + " [[", + " # define yylloc YY_G(yylloc_r)", + " ]])", + "]])", + "", + "int yylex_init M4_YY_PARAMS(yyscan_t* scanner);", + "", + "int yylex_init_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);", + "", + "%endif", + "", + "%endif End reentrant structures and macros.", + "", + "/* Accessor methods to globals.", + " These are made visible to non-reentrant scanners for convenience. */", + "", + "m4_ifdef( [[M4_YY_NO_DESTROY]],,", + "[[", + "int yylex_destroy M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_DEBUG]],,", + "[[", + "int yyget_debug M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_DEBUG]],,", + "[[", + "void yyset_debug M4_YY_PARAMS( int debug_flag M4_YY_PROTO_LAST_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_EXTRA]],,", + "[[", + "YY_EXTRA_TYPE yyget_extra M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_EXTRA]],,", + "[[", + "void yyset_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined M4_YY_PROTO_LAST_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_IN]],,", + "[[", + "FILE *yyget_in M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_IN]],,", + "[[", + "void yyset_in M4_YY_PARAMS( FILE * _in_str M4_YY_PROTO_LAST_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_OUT]],,", + "[[", + "FILE *yyget_out M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_OUT]],,", + "[[", + "void yyset_out M4_YY_PARAMS( FILE * _out_str M4_YY_PROTO_LAST_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_LENG]],,", + "[[", + " int yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_TEXT]],,", + "[[", + "char *yyget_text M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_LINENO]],,", + "[[", + "int yyget_lineno M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_LINENO]],,", + "[[", + "void yyset_lineno M4_YY_PARAMS( int _line_number M4_YY_PROTO_LAST_ARG );", + "]])", + "", + "m4_ifdef( [[M4_YY_REENTRANT]],", + "[[", + "m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,", + "[[", + "int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "]])", + "", + "m4_ifdef( [[M4_YY_REENTRANT]],", + "[[", + "m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,", + "[[", + "void yyset_column M4_YY_PARAMS( int _column_no M4_YY_PROTO_LAST_ARG );", + "]])", + "]])", + "", + "%if-bison-bridge", + "m4_ifdef( [[M4_YY_NO_GET_LVAL]],,", + "[[", + "YYSTYPE * yyget_lval M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "]])", + "", + "void yyset_lval M4_YY_PARAMS( YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG );", + "", + "m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + "[[", + " m4_ifdef( [[M4_YY_NO_GET_LLOC]],,", + " [[", + " YYLTYPE *yyget_lloc M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + " ]])", + "", + " m4_ifdef( [[M4_YY_NO_SET_LLOC]],,", + " [[", + " void yyset_lloc M4_YY_PARAMS( YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG );", + " ]])", + "]])", + "%endif", + "", + "/* Macros after this point can all be overridden by user definitions in", + " * section 1.", + " */", + "", + "#ifndef YY_SKIP_YYWRAP", + "#ifdef __cplusplus", + "extern \"C\" int yywrap M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "#else", + "extern int yywrap M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "#endif", + "#endif", + "", + "%not-for-header", + "#ifndef YY_NO_UNPUT", + " m4_ifdef( [[M4_YY_NO_UNPUT]],,", + " [[", + " static void yyunput M4_YY_PARAMS( int c, char *buf_ptr M4_YY_PROTO_LAST_ARG);", + " ]])", + "#endif", + "%ok-for-header", + "%endif", + "", + "#ifndef yytext_ptr", + "static void yy_flex_strncpy M4_YY_PARAMS( char *, yyconst char *, int M4_YY_PROTO_LAST_ARG);", + "#endif", + "", + "#ifdef YY_NEED_STRLEN", + "static int yy_flex_strlen M4_YY_PARAMS( yyconst char * M4_YY_PROTO_LAST_ARG);", + "#endif", + "", + "#ifndef YY_NO_INPUT", + "%if-c-only Standard (non-C++) definition", + "%not-for-header", + "#ifdef __cplusplus", + "static int yyinput M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "#else", + "static int input M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + "#endif", + "%ok-for-header", + "%endif", + "#endif", + "", + "", + "%if-c-only", + "%# TODO: This is messy.", + "m4_ifdef( [[M4_YY_STACK_USED]],", + "[[", + "", + "m4_ifdef( [[M4_YY_NOT_REENTRANT]],", + "[[", + " m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + " [[", + " static int yy_start_stack_ptr = 0;", + " static int yy_start_stack_depth = 0;", + " static int *yy_start_stack = NULL;", + " ]])", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + " m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,", + " [[", + " static void yy_push_state M4_YY_PARAMS( int _new_state M4_YY_PROTO_LAST_ARG);", + " ]])", + " m4_ifdef( [[M4_YY_NO_POP_STATE]],,", + " [[", + " static void yy_pop_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + " ]])", + " m4_ifdef( [[M4_YY_NO_TOP_STATE]],,", + " [[", + " static int yy_top_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + " ]])", + "]])", + "", + "]],", + "[[", + "m4_define( [[M4_YY_NO_PUSH_STATE]])", + "m4_define( [[M4_YY_NO_POP_STATE]])", + "m4_define( [[M4_YY_NO_TOP_STATE]])", + "]])", + "%endif", + "", + "/* Amount of stuff to slurp up with each read. */", + "#ifndef YY_READ_BUF_SIZE", + "#ifdef __ia64__", + "/* On IA-64, the buffer size is 16k, not 8k */", + "#define YY_READ_BUF_SIZE 16384", + "#else", + "#define YY_READ_BUF_SIZE 8192", + "#endif /* __ia64__ */", + "#endif", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Copy whatever the last rule matched to the standard output. */", + "#ifndef ECHO", + "%if-c-only Standard (non-C++) definition", + "/* This used to be an fputs(), but since the string might contain NUL's,", + " * we now use fwrite().", + " */", + "#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)", + "%endif", + "%if-c++-only C++ definition", + "#define ECHO LexerOutput( yytext, yyleng )", + "%endif", + "#endif", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Gets input and stuffs it into \"buf\". number of characters read, or YY_NULL,", + " * is returned in \"result\".", + " */", + "#ifndef YY_INPUT", + "#define YY_INPUT(buf,result,max_size) \\", + "%% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \\", + "\\", + "%if-c++-only C++ definition \\", + " if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \\", + " YY_FATAL_ERROR( \"input in flex scanner failed\" );", + "%endif", + "", + "#endif", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* No semi-colon after return; correct usage is to write \"yyterminate();\" -", + " * we don't want an extra ';' after the \"return\" because that will cause", + " * some compilers to complain about unreachable statements.", + " */", + "#ifndef yyterminate", + "#define yyterminate() return YY_NULL", + "#endif", + "]])", + "", + "/* Number of entries by which start-condition stack grows. */", + "#ifndef YY_START_STACK_INCR", + "#define YY_START_STACK_INCR 25", + "#endif", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Report a fatal error. */", + "#ifndef YY_FATAL_ERROR", + "%if-c-only", + "#define YY_FATAL_ERROR(msg) yy_fatal_error( msg M4_YY_CALL_LAST_ARG)", + "%endif", + "%if-c++-only", + "#define YY_FATAL_ERROR(msg) LexerError( msg )", + "%endif", + "#endif", + "]])", + "", + "%if-tables-serialization structures and prototypes", + "#ifdef FLEX_SCANNER", + "/*", + "dnl tables_shared.h - tables serialization header", + "dnl", + "dnl Copyright (c) 1990 The Regents of the University of California.", + "dnl All rights reserved.", + "dnl", + "dnl This code is derived from software contributed to Berkeley by", + "dnl Vern Paxson.", + "dnl", + "dnl The United States Government has rights in this work pursuant", + "dnl to contract no. DE-AC03-76SF00098 between the United States", + "dnl Department of Energy and the University of California.", + "dnl", + "dnl This file is part of flex.", + "dnl", + "dnl Redistribution and use in source and binary forms, with or without", + "dnl modification, are permitted provided that the following conditions", + "dnl are met:", + "dnl", + "dnl 1. Redistributions of source code must retain the above copyright", + "dnl notice, this list of conditions and the following disclaimer.", + "dnl 2. Redistributions in binary form must reproduce the above copyright", + "dnl notice, this list of conditions and the following disclaimer in the", + "dnl documentation and/or other materials provided with the distribution.", + "dnl", + "dnl Neither the name of the University nor the names of its contributors", + "dnl may be used to endorse or promote products derived from this software", + "dnl without specific prior written permission.", + "dnl", + "dnl THIS SOFTWARE IS PROVIDED `AS IS' AND WITHOUT ANY EXPRESS OR", + "dnl IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED", + "dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR", + "dnl PURPOSE.", + "", + "dnl", + "dnl This file is meant to be included in both the skeleton and the actual", + "dnl flex code (hence the name \"_shared\").", + "*/", + "#ifndef yyskel_static", + "#define yyskel_static static", + "#endif", + "#else", + "#ifndef yyskel_static", + "#define yyskel_static", + "#endif", + "#endif", + "", + "/* Structures and prototypes for serializing flex tables. The", + " * binary format is documented in the manual.", + " *", + " * Design considerations:", + " *", + " * - The format allows many tables per file.", + " * - The tables can be streamed.", + " * - All data is stored in network byte order.", + " * - We do not hinder future unicode support.", + " * - We can lookup tables by name.", + " */", + "", + "/** Magic number for serialized format. */", + "#ifndef YYTBL_MAGIC", + "#define YYTBL_MAGIC 0xF13C57B1", + "#endif", + "", + "/** Calculate (0-7) = number bytes needed to pad n to next 64-bit boundary. */", + "#ifndef yypad64", + "#define yypad64(n) ((8-((n)%8))%8)", + "#endif", + "", + "", + "#ifndef YYTABLES_TYPES", + "#define YYTABLES_TYPES", + "/** Possible values for td_id field. Each one corresponds to a", + " * scanner table of the same name.", + " */", + "enum yytbl_id {", + " YYTD_ID_ACCEPT = 0x01, /**< 1-dim ints */", + " YYTD_ID_BASE = 0x02, /**< 1-dim ints */", + " YYTD_ID_CHK = 0x03, /**< 1-dim ints */", + " YYTD_ID_DEF = 0x04, /**< 1-dim ints */", + " YYTD_ID_EC = 0x05, /**< 1-dim ints */", + " YYTD_ID_META = 0x06, /**< 1-dim ints */", + " YYTD_ID_NUL_TRANS = 0x07, /**< 1-dim ints, maybe indices */", + " YYTD_ID_NXT = 0x08, /**< may be 2 dimensional ints */", + " YYTD_ID_RULE_CAN_MATCH_EOL = 0x09, /**< 1-dim ints */", + " YYTD_ID_START_STATE_LIST = 0x0A, /**< 1-dim indices into trans tbl */", + " YYTD_ID_TRANSITION = 0x0B, /**< structs */", + " YYTD_ID_ACCLIST = 0x0C /**< 1-dim ints */", + "};", + "", + "/** bit flags for t_flags field of struct yytbl_data */", + "enum yytbl_flags {", + " /* These first three are mutually exclusive */", + " YYTD_DATA8 = 0x01, /**< data is an array of type flex_int8_t */", + " YYTD_DATA16 = 0x02, /**< data is an array of type flex_int16_t */", + " YYTD_DATA32 = 0x04, /**< data is an array of type flex_int32_t */", + "", + " /* These two are mutually exclusive. */", + " YYTD_PTRANS = 0x08, /**< data is a list of indexes of entries", + " into the expanded yy_transition", + " array. See notes in manual. */", + " YYTD_STRUCT = 0x10 /**< data consists of yy_trans_info structs */", + "};", + "", + "/* The serialized tables header. */", + "struct yytbl_hdr {", + " flex_uint32_t th_magic; /**< Must be 0xF13C57B1 (comes from \"Flex Table\") */", + " flex_uint32_t th_hsize; /**< Size of this header in bytes. */", + " flex_uint32_t th_ssize; /**< Size of this dataset, in bytes, including header. */", + " flex_uint16_t th_flags; /**< Currently unused, must be 0 */", + " char *th_version; /**< Flex version string. NUL terminated. */", + " char *th_name; /**< The name of this table set. NUL terminated. */", + "};", + "", + "/** A single serialized table */", + "struct yytbl_data {", + " flex_uint16_t td_id; /**< enum yytbl_id table identifier */", + " flex_uint16_t td_flags; /**< how to interpret this data */", + " flex_uint32_t td_hilen; /**< num elements in highest dimension array */", + " flex_uint32_t td_lolen; /**< num elements in lowest dimension array */", + " void *td_data; /**< table data */", + "};", + "#endif", + "", + "/** Extract corresponding data size_t from td_flags */", + "#ifndef YYTDFLAGS2BYTES", + "#define YYTDFLAGS2BYTES(td_flags)\\", + " (((td_flags) & YYTD_DATA8)\\", + " ? sizeof(flex_int8_t)\\", + " :(((td_flags) & YYTD_DATA16)\\", + " ? sizeof(flex_int16_t)\\", + " :sizeof(flex_int32_t)))", + "#endif", + "", + "#ifdef FLEX_SCANNER", + "%not-for-header", + "#endif", + "yyskel_static flex_int32_t yytbl_calc_total_len (const struct yytbl_data *tbl);", + "#ifdef FLEX_SCANNER", + "%ok-for-header", + "#endif", + "", + "/* vim:set noexpandtab cindent tabstop=8 softtabstop=0 shiftwidth=8 textwidth=0: */", + "", + "", + "/* Load the DFA tables from the given stream. */", + "int yytables_fload M4_YY_PARAMS(FILE * fp M4_YY_PROTO_LAST_ARG);", + "", + "/* Unload the tables from memory. */", + "int yytables_destroy M4_YY_PARAMS(M4_YY_PROTO_ONLY_ARG);", + "%not-for-header", + "", + "/** Describes a mapping from a serialized table id to its deserialized state in", + " * this scanner. This is the bridge between our \"generic\" deserialization code", + " * and the specifics of this scanner. ", + " */", + "struct yytbl_dmap {", + " enum yytbl_id dm_id;/**< table identifier */", + " void **dm_arr; /**< address of pointer to store the deserialized table. */", + " size_t dm_sz; /**< local sizeof() each element in table. */", + "};", + "", + "/** A {0,0,0}-terminated list of structs, forming the map */", + "static struct yytbl_dmap yydmap[] =", + "{", + "%tables-yydmap generated elements", + " {0,0,0}", + "};", + "", + "/** A tables-reader object to maintain some state in the read. */", + "struct yytbl_reader {", + " FILE * fp; /**< input stream */", + " flex_uint32_t bread; /**< bytes read since beginning of current tableset */", + "};", + "", + "%endif", + "/* end tables serialization structures and prototypes */", + "", + "%ok-for-header", + "", + "/* Default declaration of generated scanner - a define so the user can", + " * easily add parameters.", + " */", + "#ifndef YY_DECL", + "#define YY_DECL_IS_OURS 1", + "%if-c-only Standard (non-C++) definition", + "", + "", + "m4_define( [[M4_YY_LEX_PROTO]], [[M4_YY_PARAMS(M4_YY_PROTO_ONLY_ARG)]])", + "m4_define( [[M4_YY_LEX_DECLARATION]], [[YYFARGS0(void)]])", + "", + "m4_ifdef( [[M4_YY_BISON_LVAL]],", + "[[", + " m4_dnl The bison pure parser is used. Redefine yylex to", + " m4_dnl accept the lval parameter.", + "", + " m4_define( [[M4_YY_LEX_PROTO]], [[\\]]", + " [[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])", + " m4_define( [[M4_YY_LEX_DECLARATION]], [[\\]]", + " [[YYFARGS1(YYSTYPE *,yylval_param)]])", + "]])", + "", + "m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + "[[", + " m4_dnl Locations are used. yylex should also accept the ylloc parameter.", + "", + " m4_define( [[M4_YY_LEX_PROTO]], [[\\]]", + " [[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])", + " m4_define( [[M4_YY_LEX_DECLARATION]], [[\\]]", + " [[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])", + "]])", + "", + "extern int yylex M4_YY_LEX_PROTO;", + "", + "#define YY_DECL int yylex M4_YY_LEX_DECLARATION", + "%endif", + "%if-c++-only C++ definition", + "#define YY_DECL int yyFlexLexer::yylex()", + "%endif", + "#endif /* !YY_DECL */", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Code executed at the beginning of each rule, after yytext and yyleng", + " * have been set up.", + " */", + "#ifndef YY_USER_ACTION", + "#define YY_USER_ACTION", + "#endif", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* Code executed at the end of each rule. */", + "#ifndef YY_BREAK", + "#define YY_BREAK /*LINTED*/break;", + "#endif", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "%% [6.0] YY_RULE_SETUP definition goes here", + "]])", + "", + "%not-for-header", + "/** The main scanner function which does all the work.", + " */", + "YY_DECL", + "{", + " yy_state_type yy_current_state;", + " char *yy_cp, *yy_bp;", + " int yy_act;", + " M4_YY_DECL_GUTS_VAR();", + "", + "m4_ifdef( [[M4_YY_NOT_REENTRANT]],", + "[[", + " m4_ifdef( [[M4_YY_BISON_LVAL]],", + " [[", + " YYSTYPE * yylval;", + " ]])", + " m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + " [[", + " YYLTYPE * yylloc;", + " ]])", + "]])", + "", + "m4_ifdef( [[M4_YY_BISON_LVAL]],", + "[[", + " yylval = yylval_param;", + "]])", + "", + "m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + "[[", + " yylloc = yylloc_param;", + "]])", + "", + " if ( !YY_G(yy_init) )", + " {", + " YY_G(yy_init) = 1;", + "", + "#ifdef YY_USER_INIT", + " YY_USER_INIT;", + "#endif", + "", + "m4_ifdef( [[M4_YY_USES_REJECT]],", + "[[", + " /* Create the reject buffer large enough to save one state per allowed character. */", + " if ( ! YY_G(yy_state_buf) )", + " YY_G(yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE M4_YY_CALL_LAST_ARG);", + " if ( ! YY_G(yy_state_buf) )", + " YY_FATAL_ERROR( \"out of dynamic memory in yylex()\" );", + "]])", + "", + " if ( ! YY_G(yy_start) )", + " YY_G(yy_start) = 1; /* first start state */", + "", + " if ( ! yyin )", + "%if-c-only", + " yyin = stdin;", + "%endif", + "%if-c++-only", + " yyin.rdbuf(std::cin.rdbuf());", + "%endif", + "", + " if ( ! yyout )", + "%if-c-only", + " yyout = stdout;", + "%endif", + "%if-c++-only", + " yyout.rdbuf(std::cout.rdbuf());", + "%endif", + "", + " if ( ! YY_CURRENT_BUFFER ) {", + " yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG);", + " YY_CURRENT_BUFFER_LVALUE =", + " yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG);", + " }", + "", + " yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );", + " }", + "", + " {", + "%% [7.0] user's declarations go here", + "", + " while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */", + " {", + "%% [8.0] yymore()-related code goes here", + " yy_cp = YY_G(yy_c_buf_p);", + "", + " /* Support of yytext. */", + " *yy_cp = YY_G(yy_hold_char);", + "", + " /* yy_bp points to the position in yy_ch_buf of the start of", + " * the current run.", + " */", + " yy_bp = yy_cp;", + "", + "%% [9.0] code to set up and find next match goes here", + "", + "yy_find_action:", + "%% [10.0] code to find the action number goes here", + "", + " YY_DO_BEFORE_ACTION;", + "", + "%% [11.0] code for yylineno update goes here", + "", + "do_action: /* This label is used only to access EOF actions. */", + "", + "%% [12.0] debug code goes here", + "", + " switch ( yy_act )", + " { /* beginning of action switch */", + "%% [13.0] actions go here", + "", + " case YY_END_OF_BUFFER:", + " {", + " /* Amount of text matched not including the EOB char. */", + " int yy_amount_of_matched_text = (int) (yy_cp - YY_G(yytext_ptr)) - 1;", + "", + " /* Undo the effects of YY_DO_BEFORE_ACTION. */", + " *yy_cp = YY_G(yy_hold_char);", + " YY_RESTORE_YY_MORE_OFFSET", + "", + " if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )", + " {", + " /* We're scanning a new file or input source. It's", + " * possible that this happened because the user", + " * just pointed yyin at a new source and called", + " * yylex(). If so, then we have to assure", + " * consistency between YY_CURRENT_BUFFER and our", + " * globals. Here is the right place to do so, because", + " * this is the first action (other than possibly a", + " * back-up) that will match for the new input source.", + " */", + " YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;", + "%if-c-only", + " YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;", + "%endif", + "%if-c++-only", + " YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf();", + "%endif", + " YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;", + " }", + "", + " /* Note that here we test for yy_c_buf_p \"<=\" to the position", + " * of the first EOB in the buffer, since yy_c_buf_p will", + " * already have been incremented past the NUL character", + " * (since all states make transitions on EOB to the", + " * end-of-buffer state). Contrast this with the test", + " * in input().", + " */", + " if ( YY_G(yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] )", + " { /* This was really a NUL. */", + " yy_state_type yy_next_state;", + "", + " YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + yy_amount_of_matched_text;", + "", + " yy_current_state = yy_get_previous_state( M4_YY_CALL_ONLY_ARG );", + "", + " /* Okay, we're now positioned to make the NUL", + " * transition. We couldn't have", + " * yy_get_previous_state() go ahead and do it", + " * for us because it doesn't know how to deal", + " * with the possibility of jamming (and we don't", + " * want to build jamming into it because then it", + " * will run more slowly).", + " */", + "", + " yy_next_state = yy_try_NUL_trans( yy_current_state M4_YY_CALL_LAST_ARG);", + "", + " yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;", + "", + " if ( yy_next_state )", + " {", + " /* Consume the NUL. */", + " yy_cp = ++YY_G(yy_c_buf_p);", + " yy_current_state = yy_next_state;", + " goto yy_match;", + " }", + "", + " else", + " {", + "%% [14.0] code to do back-up for compressed tables and set up yy_cp goes here", + " goto yy_find_action;", + " }", + " }", + "", + " else switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )", + " {", + " case EOB_ACT_END_OF_FILE:", + " {", + " YY_G(yy_did_buffer_switch_on_eof) = 0;", + "", + " if ( yywrap( M4_YY_CALL_ONLY_ARG ) )", + " {", + " /* Note: because we've taken care in", + " * yy_get_next_buffer() to have set up", + " * yytext, we can now set up", + " * yy_c_buf_p so that if some total", + " * hoser (like flex itself) wants to", + " * call the scanner after we return the", + " * YY_NULL, it'll still work - another", + " * YY_NULL will get returned.", + " */", + " YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + YY_MORE_ADJ;", + "", + " yy_act = YY_STATE_EOF(YY_START);", + " goto do_action;", + " }", + "", + " else", + " {", + " if ( ! YY_G(yy_did_buffer_switch_on_eof) )", + " YY_NEW_FILE;", + " }", + " break;", + " }", + "", + " case EOB_ACT_CONTINUE_SCAN:", + " YY_G(yy_c_buf_p) =", + " YY_G(yytext_ptr) + yy_amount_of_matched_text;", + "", + " yy_current_state = yy_get_previous_state( M4_YY_CALL_ONLY_ARG );", + "", + " yy_cp = YY_G(yy_c_buf_p);", + " yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;", + " goto yy_match;", + "", + " case EOB_ACT_LAST_MATCH:", + " YY_G(yy_c_buf_p) =", + " &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)];", + "", + " yy_current_state = yy_get_previous_state( M4_YY_CALL_ONLY_ARG );", + "", + " yy_cp = YY_G(yy_c_buf_p);", + " yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;", + " goto yy_find_action;", + " }", + " break;", + " }", + "", + " default:", + " YY_FATAL_ERROR(", + " \"fatal flex scanner internal error--no action found\" );", + " } /* end of action switch */", + " } /* end of scanning one token */", + " } /* end of user's declarations */", + "} /* end of yylex */", + "%ok-for-header", + "", + "%if-c++-only", + "%not-for-header", + "/* The contents of this function are C++ specific, so the YY_G macro is not used.", + " * This constructor simply maintains backward compatibility.", + " * DEPRECATED", + " */", + "yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ):", + " yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()),", + " yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf())", + "{", + " ctor_common();", + "}", + "", + "/* The contents of this function are C++ specific, so the YY_G macro is not used.", + " */", + "yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ):", + " yyin(arg_yyin.rdbuf()),", + " yyout(arg_yyout.rdbuf())", + "{", + " ctor_common();", + "}", + "", + "/* The contents of this function are C++ specific, so the YY_G macro is not used.", + " */", + "void yyFlexLexer::ctor_common()", + "{", + " yy_c_buf_p = 0;", + " yy_init = 0;", + " yy_start = 0;", + " yy_flex_debug = 0;", + " yylineno = 1; // this will only get updated if %option yylineno", + "", + " yy_did_buffer_switch_on_eof = 0;", + "", + " yy_looking_for_trail_begin = 0;", + " yy_more_flag = 0;", + " yy_more_len = 0;", + " yy_more_offset = yy_prev_more_offset = 0;", + "", + " yy_start_stack_ptr = yy_start_stack_depth = 0;", + " yy_start_stack = NULL;", + "", + " yy_buffer_stack = NULL;", + " yy_buffer_stack_top = 0;", + " yy_buffer_stack_max = 0;", + "", + "", + "m4_ifdef( [[M4_YY_USES_REJECT]],", + "[[", + " yy_state_buf = new yy_state_type[YY_STATE_BUF_SIZE];", + "]],", + "[[", + " yy_state_buf = 0;", + "]])", + "}", + "", + "/* The contents of this function are C++ specific, so the YY_G macro is not used.", + " */", + "yyFlexLexer::~yyFlexLexer()", + "{", + " delete [] yy_state_buf;", + " yyfree( yy_start_stack M4_YY_CALL_LAST_ARG );", + " yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);", + " yyfree( yy_buffer_stack M4_YY_CALL_LAST_ARG );", + "}", + "", + "/* The contents of this function are C++ specific, so the YY_G macro is not used.", + " */", + "void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out )", + "{", + " // was if( new_in )", + " yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);", + " yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE M4_YY_CALL_LAST_ARG) M4_YY_CALL_LAST_ARG);", + "", + " // was if( new_out )", + " yyout.rdbuf(new_out.rdbuf());", + "}", + "", + "/* The contents of this function are C++ specific, so the YY_G macro is not used.", + " */", + "void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )", + "{", + " if( ! new_in ) {", + " new_in = &yyin;", + " }", + "", + " if ( ! new_out ) {", + " new_out = &yyout;", + " }", + "", + " switch_streams(*new_in, *new_out);", + "}", + "", + "#ifdef YY_INTERACTIVE", + "int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )", + "#else", + "int yyFlexLexer::LexerInput( char* buf, int max_size )", + "#endif", + "{", + " if ( yyin.eof() || yyin.fail() )", + " return 0;", + "", + "#ifdef YY_INTERACTIVE", + " yyin.get( buf[0] );", + "", + " if ( yyin.eof() )", + " return 0;", + "", + " if ( yyin.bad() )", + " return -1;", + "", + " return 1;", + "", + "#else", + " (void) yyin.read( buf, max_size );", + "", + " if ( yyin.bad() )", + " return -1;", + " else", + " return yyin.gcount();", + "#endif", + "}", + "", + "void yyFlexLexer::LexerOutput( const char* buf, int size )", + "{", + " (void) yyout.write( buf, size );", + "}", + "%ok-for-header", + "%endif", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/* yy_get_next_buffer - try to read in a new buffer", + " *", + " * Returns a code representing an action:", + " * EOB_ACT_LAST_MATCH -", + " * EOB_ACT_CONTINUE_SCAN - continue scanning from current position", + " * EOB_ACT_END_OF_FILE - end of file", + " */", + "%if-c-only", + "static int yy_get_next_buffer YYFARGS0(void)", + "%endif", + "%if-c++-only", + "int yyFlexLexer::yy_get_next_buffer()", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;", + " char *source = YY_G(yytext_ptr);", + " yy_size_t number_to_move, i;", + " int ret_val;", + "", + " if ( YY_G(yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars) + 1] )", + " YY_FATAL_ERROR(", + " \"fatal flex scanner internal error--end of buffer missed\" );", + "", + " if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )", + " { /* Don't try to fill the buffer, so this is an EOF. */", + " if ( YY_G(yy_c_buf_p) - YY_G(yytext_ptr) - YY_MORE_ADJ == 1 )", + " {", + " /* We matched a single character, the EOB, so", + " * treat this as a final EOF.", + " */", + " return EOB_ACT_END_OF_FILE;", + " }", + "", + " else", + " {", + " /* We matched some text prior to the EOB, first", + " * process it.", + " */", + " return EOB_ACT_LAST_MATCH;", + " }", + " }", + "", + " /* Try to read more data. */", + "", + " /* First move last chars to start of buffer. */", + " number_to_move = (yy_size_t) (YY_G(yy_c_buf_p) - YY_G(yytext_ptr)) - 1;", + "", + " for ( i = 0; i < number_to_move; ++i )", + " *(dest++) = *(source++);", + "", + " if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )", + " /* don't do the read, it's not guaranteed to return an EOF,", + " * just force an EOF", + " */", + " YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars) = 0;", + "", + " else", + " {", + " int num_to_read =", + " YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;", + "", + " while ( num_to_read <= 0 )", + " { /* Not enough room in the buffer - grow it. */", + "m4_ifdef( [[M4_YY_USES_REJECT]],", + "[[", + " YY_FATAL_ERROR(", + "\"input buffer overflow, can't enlarge buffer because scanner uses REJECT\" );", + "]],", + "[[", + " /* just a shorter name for the current buffer */", + " YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;", + "", + " int yy_c_buf_p_offset =", + " (int) (YY_G(yy_c_buf_p) - b->yy_ch_buf);", + "", + " if ( b->yy_is_our_buffer )", + " {", + " int new_size = b->yy_buf_size * 2;", + "", + " if ( new_size <= 0 )", + " b->yy_buf_size += b->yy_buf_size / 8;", + " else", + " b->yy_buf_size *= 2;", + "", + " b->yy_ch_buf = (char *)", + " /* Include room in for 2 EOB chars. */", + " yyrealloc( (void *) b->yy_ch_buf,", + " b->yy_buf_size + 2 M4_YY_CALL_LAST_ARG );", + " }", + " else", + " /* Can't grow it, we don't own it. */", + " b->yy_ch_buf = NULL;", + "", + " if ( ! b->yy_ch_buf )", + " YY_FATAL_ERROR(", + " \"fatal error - scanner input buffer overflow\" );", + "", + " YY_G(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];", + "", + " num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -", + " number_to_move - 1;", + "]])", + " }", + "", + " if ( num_to_read > YY_READ_BUF_SIZE )", + " num_to_read = YY_READ_BUF_SIZE;", + "", + " /* Read in more data. */", + " YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),", + " YY_G(yy_n_chars), num_to_read );", + "", + " YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);", + " }", + "", + " if ( YY_G(yy_n_chars) == 0 )", + " {", + " if ( number_to_move == YY_MORE_ADJ )", + " {", + " ret_val = EOB_ACT_END_OF_FILE;", + " yyrestart( yyin M4_YY_CALL_LAST_ARG);", + " }", + "", + " else", + " {", + " ret_val = EOB_ACT_LAST_MATCH;", + " YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =", + " YY_BUFFER_EOF_PENDING;", + " }", + " }", + "", + " else", + " ret_val = EOB_ACT_CONTINUE_SCAN;", + "", + " if ((int) (YY_G(yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {", + " /* Extend the array by 50%, plus the number we really need. */", + " int new_size = YY_G(yy_n_chars) + number_to_move + (YY_G(yy_n_chars) >> 1);", + " YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(", + " (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size M4_YY_CALL_LAST_ARG );", + " if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )", + " YY_FATAL_ERROR( \"out of dynamic memory in yy_get_next_buffer()\" );", + " }", + "", + " YY_G(yy_n_chars) += number_to_move;", + " YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;", + " YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;", + "", + " YY_G(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];", + "", + " return ret_val;", + "}", + "]])", + "", + "/* yy_get_previous_state - get the state just before the EOB char was reached */", + "", + "%if-c-only", + "%not-for-header", + " static yy_state_type yy_get_previous_state YYFARGS0(void)", + "%endif", + "%if-c++-only", + " yy_state_type yyFlexLexer::yy_get_previous_state()", + "%endif", + "{", + " yy_state_type yy_current_state;", + " char *yy_cp;", + " M4_YY_DECL_GUTS_VAR();", + "", + "%% [15.0] code to get the start state into yy_current_state goes here", + "", + " for ( yy_cp = YY_G(yytext_ptr) + YY_MORE_ADJ; yy_cp < YY_G(yy_c_buf_p); ++yy_cp )", + " {", + "%% [16.0] code to find the next state goes here", + " }", + "", + " return yy_current_state;", + "}", + "", + "", + "/* yy_try_NUL_trans - try to make a transition on the NUL character", + " *", + " * synopsis", + " * next_state = yy_try_NUL_trans( current_state );", + " */", + "%if-c-only", + " static yy_state_type yy_try_NUL_trans YYFARGS1( yy_state_type, yy_current_state)", + "%endif", + "%if-c++-only", + " yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )", + "%endif", + "{", + " int yy_is_jam;", + " M4_YY_DECL_GUTS_VAR(); /* This var may be unused depending upon options. */", + "%% [17.0] code to find the next state, and perhaps do backing up, goes here", + "", + " M4_YY_NOOP_GUTS_VAR();", + " return yy_is_jam ? 0 : yy_current_state;", + "}", + "", + "", + "#ifndef YY_NO_UNPUT", + "%if-c-only", + "m4_ifdef( [[M4_YY_NO_UNPUT]],,", + "[[", + " static void yyunput YYFARGS2( int,c, char *,yy_bp)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yyunput( int c, char* yy_bp)", + "%endif", + "{", + " char *yy_cp;", + " M4_YY_DECL_GUTS_VAR();", + "", + " yy_cp = YY_G(yy_c_buf_p);", + "", + " /* undo effects of setting up yytext */", + " *yy_cp = YY_G(yy_hold_char);", + "", + " if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )", + " { /* need to shift things up to make room */", + " /* +2 for EOB chars. */", + " int number_to_move = YY_G(yy_n_chars) + 2;", + " char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[", + " YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];", + " char *source =", + " &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];", + "", + " while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )", + " *--dest = *--source;", + "", + " yy_cp += (int) (dest - source);", + " yy_bp += (int) (dest - source);", + " YY_CURRENT_BUFFER_LVALUE->yy_n_chars =", + " YY_G(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;", + "", + " if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )", + " YY_FATAL_ERROR( \"flex scanner push-back overflow\" );", + " }", + "", + " *--yy_cp = (char) c;", + "", + "%% [18.0] update yylineno here", + "m4_ifdef( [[M4_YY_USE_LINENO]],", + "[[", + " if ( c == '\\n' ){", + " --yylineno;", + " }", + "]])", + "", + " YY_G(yytext_ptr) = yy_bp;", + " YY_G(yy_hold_char) = *yy_cp;", + " YY_G(yy_c_buf_p) = yy_cp;", + "}", + "%if-c-only", + "]])", + "%endif", + "#endif", + "", + "%if-c-only", + "#ifndef YY_NO_INPUT", + "#ifdef __cplusplus", + " static int yyinput YYFARGS0(void)", + "#else", + " static int input YYFARGS0(void)", + "#endif", + "", + "%endif", + "%if-c++-only", + " int yyFlexLexer::yyinput()", + "%endif", + "{", + " int c;", + " M4_YY_DECL_GUTS_VAR();", + "", + " *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);", + "", + " if ( *YY_G(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )", + " {", + " /* yy_c_buf_p now points to the character we want to return.", + " * If this occurs *before* the EOB characters, then it's a", + " * valid NUL; if not, then we've hit the end of the buffer.", + " */", + " if ( YY_G(yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] )", + " /* This was really a NUL. */", + " *YY_G(yy_c_buf_p) = '\\0';", + "", + " else", + " { /* need more input */", + " int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);", + " ++YY_G(yy_c_buf_p);", + "", + " switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )", + " {", + " case EOB_ACT_LAST_MATCH:", + " /* This happens because yy_g_n_b()", + " * sees that we've accumulated a", + " * token and flags that we need to", + " * try matching the token before", + " * proceeding. But for input(),", + " * there's no matching to consider.", + " * So convert the EOB_ACT_LAST_MATCH", + " * to EOB_ACT_END_OF_FILE.", + " */", + "", + " /* Reset buffer status. */", + " yyrestart( yyin M4_YY_CALL_LAST_ARG);", + "", + " /*FALLTHROUGH*/", + "", + " case EOB_ACT_END_OF_FILE:", + " {", + " if ( yywrap( M4_YY_CALL_ONLY_ARG ) )", + " return 0;", + "", + " if ( ! YY_G(yy_did_buffer_switch_on_eof) )", + " YY_NEW_FILE;", + "#ifdef __cplusplus", + " return yyinput(M4_YY_CALL_ONLY_ARG);", + "#else", + " return input(M4_YY_CALL_ONLY_ARG);", + "#endif", + " }", + "", + " case EOB_ACT_CONTINUE_SCAN:", + " YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + offset;", + " break;", + " }", + " }", + " }", + "", + " c = *(unsigned char *) YY_G(yy_c_buf_p); /* cast for 8-bit char's */", + " *YY_G(yy_c_buf_p) = '\\0'; /* preserve yytext */", + " YY_G(yy_hold_char) = *++YY_G(yy_c_buf_p);", + "", + "%% [19.0] update BOL and yylineno", + "", + " return c;", + "}", + "%if-c-only", + "#endif /* ifndef YY_NO_INPUT */", + "%endif", + "", + "/** Immediately switch to a different input stream.", + " * @param input_file A readable stream.", + " * M4_YY_DOC_PARAM", + " * @note This function does not reset the start condition to @c INITIAL .", + " */", + "%if-c-only", + " void yyrestart YYFARGS1( FILE *,input_file)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yyrestart( std::istream& input_file )", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + "", + " if ( ! YY_CURRENT_BUFFER ){", + " yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG);", + " YY_CURRENT_BUFFER_LVALUE =", + " yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG);", + " }", + "", + " yy_init_buffer( YY_CURRENT_BUFFER, input_file M4_YY_CALL_LAST_ARG);", + " yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );", + "}", + "", + "%if-c++-only", + "/** Delegate to the new version that takes an istream reference.", + " * @param input_file A readable stream.", + " * M4_YY_DOC_PARAM", + " * @note This function does not reset the start condition to @c INITIAL .", + " */", + "void yyFlexLexer::yyrestart( std::istream* input_file )", + "{", + " yyrestart( *input_file );", + "}", + "%endif", + "", + "/** Switch to a different input buffer.", + " * @param new_buffer The new input buffer.", + " * M4_YY_DOC_PARAM", + " */", + "%if-c-only", + " void yy_switch_to_buffer YYFARGS1( YY_BUFFER_STATE ,new_buffer)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + "", + " /* TODO. We should be able to replace this entire function body", + " * with", + " * yypop_buffer_state();", + " * yypush_buffer_state(new_buffer);", + " */", + " yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG);", + " if ( YY_CURRENT_BUFFER == new_buffer )", + " return;", + "", + " if ( YY_CURRENT_BUFFER )", + " {", + " /* Flush out information for old buffer. */", + " *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);", + " YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = YY_G(yy_c_buf_p);", + " YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);", + " }", + "", + " YY_CURRENT_BUFFER_LVALUE = new_buffer;", + " yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );", + "", + " /* We don't actually know whether we did this switch during", + " * EOF (yywrap()) processing, but the only time this flag", + " * is looked at is after yywrap() is called, so it's safe", + " * to go ahead and always set it.", + " */", + " YY_G(yy_did_buffer_switch_on_eof) = 1;", + "}", + "", + "", + "%if-c-only", + "static void yy_load_buffer_state YYFARGS0(void)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yy_load_buffer_state()", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;", + " YY_G(yytext_ptr) = YY_G(yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;", + "%if-c-only", + " yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;", + "%endif", + "%if-c++-only", + " yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file);", + "%endif", + " YY_G(yy_hold_char) = *YY_G(yy_c_buf_p);", + "}", + "", + "/** Allocate and initialize an input buffer state.", + " * @param file A readable stream.", + " * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.", + " * M4_YY_DOC_PARAM", + " * @return the allocated buffer state.", + " */", + "%if-c-only", + " YY_BUFFER_STATE yy_create_buffer YYFARGS2( FILE *,file, int ,size)", + "%endif", + "%if-c++-only", + " YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size )", + "%endif", + "{", + " YY_BUFFER_STATE b;", + " m4_dnl M4_YY_DECL_GUTS_VAR();", + "", + " b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) M4_YY_CALL_LAST_ARG );", + " if ( ! b )", + " YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );", + "", + " b->yy_buf_size = (yy_size_t)size;", + "", + " /* yy_ch_buf has to be 2 characters longer than the size given because", + " * we need to put in 2 end-of-buffer characters.", + " */", + " b->yy_ch_buf = (char *) yyalloc( b->yy_buf_size + 2 M4_YY_CALL_LAST_ARG );", + " if ( ! b->yy_ch_buf )", + " YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );", + "", + " b->yy_is_our_buffer = 1;", + "", + " yy_init_buffer( b, file M4_YY_CALL_LAST_ARG);", + "", + " return b;", + "}", + "", + "%if-c++-only", + "/** Delegate creation of buffers to the new version that takes an istream reference.", + " * @param file A readable stream.", + " * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.", + " * M4_YY_DOC_PARAM", + " * @return the allocated buffer state.", + " */", + " YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )", + "{", + " return yy_create_buffer( *file, size );", + "}", + "%endif", + "", + "/** Destroy the buffer.", + " * @param b a buffer created with yy_create_buffer()", + " * M4_YY_DOC_PARAM", + " */", + "%if-c-only", + " void yy_delete_buffer YYFARGS1( YY_BUFFER_STATE ,b)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + "", + " if ( ! b )", + " return;", + "", + " if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */", + " YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;", + "", + " if ( b->yy_is_our_buffer )", + " yyfree( (void *) b->yy_ch_buf M4_YY_CALL_LAST_ARG );", + "", + " yyfree( (void *) b M4_YY_CALL_LAST_ARG );", + "}", + "", + "", + "/* Initializes or reinitializes a buffer.", + " * This function is sometimes called more than once on the same buffer,", + " * such as during a yyrestart() or at EOF.", + " */", + "%if-c-only", + " static void yy_init_buffer YYFARGS2( YY_BUFFER_STATE ,b, FILE *,file)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file )", + "%endif", + "", + "{", + " int oerrno = errno;", + " M4_YY_DECL_GUTS_VAR();", + "", + " yy_flush_buffer( b M4_YY_CALL_LAST_ARG);", + "", + "%if-c-only", + " b->yy_input_file = file;", + "%endif", + "%if-c++-only", + " b->yy_input_file = file.rdbuf();", + "%endif", + " b->yy_fill_buffer = 1;", + "", + " /* If b is the current buffer, then yy_init_buffer was _probably_", + " * called from yyrestart() or through yy_get_next_buffer.", + " * In that case, we don't want to reset the lineno or column.", + " */", + " if (b != YY_CURRENT_BUFFER){", + " b->yy_bs_lineno = 1;", + " b->yy_bs_column = 0;", + " }", + "", + "%if-c-only", + "m4_ifdef( [[M4_YY_ALWAYS_INTERACTIVE]],", + "[[", + " b->yy_is_interactive = 1;", + "]],", + "[[", + " m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],", + " [[", + " b->yy_is_interactive = 0;", + " ]],", + " [[", + " b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;", + " ]])", + "]])", + "%endif", + "%if-c++-only", + " b->yy_is_interactive = 0;", + "%endif", + " errno = oerrno;", + "}", + "", + "/** Discard all buffered characters. On the next scan, YY_INPUT will be called.", + " * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.", + " * M4_YY_DOC_PARAM", + " */", + "%if-c-only", + " void yy_flush_buffer YYFARGS1( YY_BUFFER_STATE ,b)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " if ( ! b )", + " return;", + "", + " b->yy_n_chars = 0;", + "", + " /* We always need two end-of-buffer characters. The first causes", + " * a transition to the end-of-buffer state. The second causes", + " * a jam in that state.", + " */", + " b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;", + " b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;", + "", + " b->yy_buf_pos = &b->yy_ch_buf[0];", + "", + " b->yy_at_bol = 1;", + " b->yy_buffer_status = YY_BUFFER_NEW;", + "", + " if ( b == YY_CURRENT_BUFFER )", + " yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );", + "}", + "", + "%if-c-or-c++", + "/** Pushes the new state onto the stack. The new state becomes", + " * the current state. This function will allocate the stack", + " * if necessary.", + " * @param new_buffer The new state.", + " * M4_YY_DOC_PARAM", + " */", + "%if-c-only", + "void yypush_buffer_state YYFARGS1(YY_BUFFER_STATE,new_buffer)", + "%endif", + "%if-c++-only", + "void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " if (new_buffer == NULL)", + " return;", + "", + " yyensure_buffer_stack(M4_YY_CALL_ONLY_ARG);", + "", + " /* This block is copied from yy_switch_to_buffer. */", + " if ( YY_CURRENT_BUFFER )", + " {", + " /* Flush out information for old buffer. */", + " *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);", + " YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = YY_G(yy_c_buf_p);", + " YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);", + " }", + "", + " /* Only push if top exists. Otherwise, replace top. */", + " if (YY_CURRENT_BUFFER)", + " YY_G(yy_buffer_stack_top)++;", + " YY_CURRENT_BUFFER_LVALUE = new_buffer;", + "", + " /* copied from yy_switch_to_buffer. */", + " yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );", + " YY_G(yy_did_buffer_switch_on_eof) = 1;", + "}", + "%endif", + "", + "", + "%if-c-or-c++", + "/** Removes and deletes the top of the stack, if present.", + " * The next element becomes the new top.", + " * M4_YY_DOC_PARAM", + " */", + "%if-c-only", + "void yypop_buffer_state YYFARGS0(void)", + "%endif", + "%if-c++-only", + "void yyFlexLexer::yypop_buffer_state (void)", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " if (!YY_CURRENT_BUFFER)", + " return;", + "", + " yy_delete_buffer(YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);", + " YY_CURRENT_BUFFER_LVALUE = NULL;", + " if (YY_G(yy_buffer_stack_top) > 0)", + " --YY_G(yy_buffer_stack_top);", + "", + " if (YY_CURRENT_BUFFER) {", + " yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );", + " YY_G(yy_did_buffer_switch_on_eof) = 1;", + " }", + "}", + "%endif", + "", + "", + "%if-c-or-c++", + "/* Allocates the stack if it does not exist.", + " * Guarantees space for at least one push.", + " */", + "%if-c-only", + "static void yyensure_buffer_stack YYFARGS0(void)", + "%endif", + "%if-c++-only", + "void yyFlexLexer::yyensure_buffer_stack(void)", + "%endif", + "{", + " int num_to_alloc;", + " M4_YY_DECL_GUTS_VAR();", + "", + " if (!YY_G(yy_buffer_stack)) {", + "", + " /* First allocation is just for 2 elements, since we don't know if this", + " * scanner will even need a stack. We use 2 instead of 1 to avoid an", + " * immediate realloc on the next call.", + " */", + " num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */", + " YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc", + " (num_to_alloc * sizeof(struct yy_buffer_state*)", + " M4_YY_CALL_LAST_ARG);", + " if ( ! YY_G(yy_buffer_stack) )", + " YY_FATAL_ERROR( \"out of dynamic memory in yyensure_buffer_stack()\" );", + " ", + " ", + " memset(YY_G(yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));", + " ", + " YY_G(yy_buffer_stack_max) = num_to_alloc;", + " YY_G(yy_buffer_stack_top) = 0;", + " return;", + " }", + "", + " if (YY_G(yy_buffer_stack_top) >= (YY_G(yy_buffer_stack_max)) - 1){", + "", + " /* Increase the buffer to prepare for a possible push. */", + " yy_size_t grow_size = 8 /* arbitrary grow size */;", + "", + " num_to_alloc = YY_G(yy_buffer_stack_max) + grow_size;", + " YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc", + " (YY_G(yy_buffer_stack),", + " num_to_alloc * sizeof(struct yy_buffer_state*)", + " M4_YY_CALL_LAST_ARG);", + " if ( ! YY_G(yy_buffer_stack) )", + " YY_FATAL_ERROR( \"out of dynamic memory in yyensure_buffer_stack()\" );", + "", + " /* zero only the new slots.*/", + " memset(YY_G(yy_buffer_stack) + YY_G(yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));", + " YY_G(yy_buffer_stack_max) = num_to_alloc;", + " }", + "}", + "%endif", + "", + "", + "", + "", + "m4_ifdef( [[M4_YY_NO_SCAN_BUFFER]],,", + "[[", + "%if-c-only", + "/** Setup the input buffer state to scan directly from a user-specified character buffer.", + " * @param base the character buffer", + " * @param size the size in bytes of the character buffer", + " * M4_YY_DOC_PARAM", + " * @return the newly allocated buffer state object. ", + " */", + "YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size)", + "{", + " YY_BUFFER_STATE b;", + " m4_dnl M4_YY_DECL_GUTS_VAR();", + "", + " if ( size < 2 ||", + " base[size-2] != YY_END_OF_BUFFER_CHAR ||", + " base[size-1] != YY_END_OF_BUFFER_CHAR )", + " /* They forgot to leave room for the EOB's. */", + " return NULL;", + "", + " b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) M4_YY_CALL_LAST_ARG );", + " if ( ! b )", + " YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_buffer()\" );", + "", + " b->yy_buf_size = size - 2; /* \"- 2\" to take care of EOB's */", + " b->yy_buf_pos = b->yy_ch_buf = base;", + " b->yy_is_our_buffer = 0;", + " b->yy_input_file = NULL;", + " b->yy_n_chars = b->yy_buf_size;", + " b->yy_is_interactive = 0;", + " b->yy_at_bol = 1;", + " b->yy_fill_buffer = 0;", + " b->yy_buffer_status = YY_BUFFER_NEW;", + "", + " yy_switch_to_buffer( b M4_YY_CALL_LAST_ARG );", + "", + " return b;", + "}", + "%endif", + "]])", + "", + "", + "m4_ifdef( [[M4_YY_NO_SCAN_STRING]],,", + "[[", + "%if-c-only", + "/** Setup the input buffer state to scan a string. The next call to yylex() will", + " * scan from a @e copy of @a str.", + " * @param yystr a NUL-terminated string to scan", + " * M4_YY_DOC_PARAM", + " * @return the newly allocated buffer state object.", + " * @note If you want to scan bytes that may contain NUL values, then use", + " * yy_scan_bytes() instead.", + " */", + "YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *, yystr)", + "{", + " m4_dnl M4_YY_DECL_GUTS_VAR();", + "", + " return yy_scan_bytes( yystr, (int) strlen(yystr) M4_YY_CALL_LAST_ARG);", + "}", + "%endif", + "]])", + "", + "", + "m4_ifdef( [[M4_YY_NO_SCAN_BYTES]],,", + "[[", + "%if-c-only", + "/** Setup the input buffer state to scan the given bytes. The next call to yylex() will", + " * scan from a @e copy of @a bytes.", + " * @param yybytes the byte buffer to scan", + " * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.", + " * M4_YY_DOC_PARAM", + " * @return the newly allocated buffer state object.", + " */", + "YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, int ,_yybytes_len)", + "{", + " YY_BUFFER_STATE b;", + " char *buf;", + " yy_size_t n;", + " yy_size_t i;", + " m4_dnl M4_YY_DECL_GUTS_VAR();", + "", + " /* Get memory for full buffer, including space for trailing EOB's. */", + " n = (yy_size_t) _yybytes_len + 2;", + " buf = (char *) yyalloc( n M4_YY_CALL_LAST_ARG );", + " if ( ! buf )", + " YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_bytes()\" );", + "", + " for ( i = 0; i < _yybytes_len; ++i )", + " buf[i] = yybytes[i];", + "", + " buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;", + "", + " b = yy_scan_buffer( buf, n M4_YY_CALL_LAST_ARG);", + " if ( ! b )", + " YY_FATAL_ERROR( \"bad buffer in yy_scan_bytes()\" );", + "", + " /* It's okay to grow etc. this buffer, and we should throw it", + " * away when we're done.", + " */", + " b->yy_is_our_buffer = 1;", + "", + " return b;", + "}", + "%endif", + "]])", + "", + "", + "m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,", + "[[", + "%if-c-only", + " static void yy_push_state YYFARGS1( int ,_new_state)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yy_push_state( int _new_state )", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " if ( YY_G(yy_start_stack_ptr) >= YY_G(yy_start_stack_depth) )", + " {", + " yy_size_t new_size;", + "", + " YY_G(yy_start_stack_depth) += YY_START_STACK_INCR;", + " new_size = (yy_size_t) YY_G(yy_start_stack_depth) * sizeof( int );", + "", + " if ( ! YY_G(yy_start_stack) )", + " YY_G(yy_start_stack) = (int *) yyalloc( new_size M4_YY_CALL_LAST_ARG );", + "", + " else", + " YY_G(yy_start_stack) = (int *) yyrealloc(", + " (void *) YY_G(yy_start_stack), new_size M4_YY_CALL_LAST_ARG );", + "", + " if ( ! YY_G(yy_start_stack) )", + " YY_FATAL_ERROR( \"out of memory expanding start-condition stack\" );", + " }", + "", + " YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)++] = YY_START;", + "", + " BEGIN(_new_state);", + "}", + "]])", + "", + "", + "m4_ifdef( [[M4_YY_NO_POP_STATE]],,", + "[[", + "%if-c-only", + " static void yy_pop_state YYFARGS0(void)", + "%endif", + "%if-c++-only", + " void yyFlexLexer::yy_pop_state()", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " if ( --YY_G(yy_start_stack_ptr) < 0 )", + " YY_FATAL_ERROR( \"start-condition stack underflow\" );", + "", + " BEGIN(YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)]);", + "}", + "]])", + "", + "", + "m4_ifdef( [[M4_YY_NO_TOP_STATE]],,", + "[[", + "%if-c-only", + " static int yy_top_state YYFARGS0(void)", + "%endif", + "%if-c++-only", + " int yyFlexLexer::yy_top_state()", + "%endif", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr) - 1];", + "}", + "]])", + "", + "#ifndef YY_EXIT_FAILURE", + "#define YY_EXIT_FAILURE 2", + "#endif", + "", + "%if-c-only", + "static void yynoreturn yy_fatal_error YYFARGS1(yyconst char*, msg)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " M4_YY_NOOP_GUTS_VAR();", + " (void) fprintf( stderr, \"%s\\n\", msg );", + " exit( YY_EXIT_FAILURE );", + "}", + "%endif", + "%if-c++-only", + "void yyFlexLexer::LexerError( yyconst char* msg )", + "{", + " M4_YY_DECL_GUTS_VAR();", + " std::cerr << msg << std::endl;", + " exit( YY_EXIT_FAILURE );", + "}", + "%endif", + "", + "/* Redefine yyless() so it works in section 3 code. */", + "", + "#undef yyless", + "#define yyless(n) \\", + " do \\", + " { \\", + " /* Undo effects of setting up yytext. */ \\", + " int yyless_macro_arg = (n); \\", + " YY_LESS_LINENO(yyless_macro_arg);\\", + " yytext[yyleng] = YY_G(yy_hold_char); \\", + " YY_G(yy_c_buf_p) = yytext + yyless_macro_arg; \\", + " YY_G(yy_hold_char) = *YY_G(yy_c_buf_p); \\", + " *YY_G(yy_c_buf_p) = '\\0'; \\", + " yyleng = yyless_macro_arg; \\", + " } \\", + " while ( 0 )", + "", + "", + "", + "/* Accessor methods (get/set functions) to struct members. */", + "", + "%if-c-only", + "%if-reentrant", + "m4_ifdef( [[M4_YY_NO_GET_EXTRA]],,", + "[[", + "/** Get the user-defined data for this scanner.", + " * M4_YY_DOC_PARAM", + " */", + "YY_EXTRA_TYPE yyget_extra YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yyextra;", + "}", + "]])", + "%endif", + "", + "m4_ifdef( [[M4_YY_NO_GET_LINENO]],,", + "[[", + "/** Get the current line number.", + " * M4_YY_DOC_PARAM", + " */", + "int yyget_lineno YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " ", + " m4_ifdef( [[M4_YY_REENTRANT]],", + " [[", + " if (! YY_CURRENT_BUFFER)", + " return 0;", + " ]])", + " return yylineno;", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_REENTRANT]],", + "[[", + "m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,", + "[[", + "/** Get the current column number.", + " * M4_YY_DOC_PARAM", + " */", + "int yyget_column YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " ", + " m4_ifdef( [[M4_YY_REENTRANT]],", + " [[", + " if (! YY_CURRENT_BUFFER)", + " return 0;", + " ]])", + " return yycolumn;", + "}", + "]])", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_IN]],,", + "[[", + "/** Get the input stream.", + " * M4_YY_DOC_PARAM", + " */", + "FILE *yyget_in YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yyin;", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_OUT]],,", + "[[", + "/** Get the output stream.", + " * M4_YY_DOC_PARAM", + " */", + "FILE *yyget_out YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yyout;", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_GET_LENG]],,", + "[[", + "/** Get the length of the current token.", + " * M4_YY_DOC_PARAM", + " */", + "int yyget_leng YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yyleng;", + "}", + "]])", + "", + "/** Get the current token.", + " * M4_YY_DOC_PARAM", + " */", + "m4_ifdef( [[M4_YY_NO_GET_TEXT]],,", + "[[", + "char *yyget_text YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yytext;", + "}", + "]])", + "", + "%if-reentrant", + "m4_ifdef( [[M4_YY_NO_SET_EXTRA]],,", + "[[", + "/** Set the user-defined data. This data is never touched by the scanner.", + " * @param user_defined The data to be associated with this scanner.", + " * M4_YY_DOC_PARAM", + " */", + "void yyset_extra YYFARGS1( YY_EXTRA_TYPE ,user_defined)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " yyextra = user_defined ;", + "}", + "]])", + "%endif", + "", + "m4_ifdef( [[M4_YY_NO_SET_LINENO]],,", + "[[", + "/** Set the current line number.", + " * @param _line_number line number", + " * M4_YY_DOC_PARAM", + " */", + "void yyset_lineno YYFARGS1( int ,_line_number)", + "{", + " M4_YY_DECL_GUTS_VAR();", + "", + " m4_ifdef( [[M4_YY_REENTRANT]],", + " [[", + " /* lineno is only valid if an input buffer exists. */", + " if (! YY_CURRENT_BUFFER )", + " YY_FATAL_ERROR( \"yyset_lineno called with no buffer\" );", + " ]])", + " yylineno = _line_number;", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_REENTRANT]],", + "[[", + "m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,", + "[[", + "/** Set the current column.", + " * @param _column_no column number", + " * M4_YY_DOC_PARAM", + " */", + "void yyset_column YYFARGS1( int , _column_no)", + "{", + " M4_YY_DECL_GUTS_VAR();", + "", + " m4_ifdef( [[M4_YY_REENTRANT]],", + " [[", + " /* column is only valid if an input buffer exists. */", + " if (! YY_CURRENT_BUFFER )", + " YY_FATAL_ERROR( \"yyset_column called with no buffer\" );", + " ]])", + " yycolumn = _column_no;", + "}", + "]])", + "]])", + "", + "", + "m4_ifdef( [[M4_YY_NO_SET_IN]],,", + "[[", + "/** Set the input stream. This does not discard the current", + " * input buffer.", + " * @param _in_str A readable stream.", + " * M4_YY_DOC_PARAM", + " * @see yy_switch_to_buffer", + " */", + "void yyset_in YYFARGS1( FILE * ,_in_str)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " yyin = _in_str ;", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_OUT]],,", + "[[", + "void yyset_out YYFARGS1( FILE * ,_out_str)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " yyout = _out_str ;", + "}", + "]])", + "", + "", + "m4_ifdef( [[M4_YY_NO_GET_DEBUG]],,", + "[[", + "int yyget_debug YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yy_flex_debug;", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_DEBUG]],,", + "[[", + "void yyset_debug YYFARGS1( int ,_bdebug)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " yy_flex_debug = _bdebug ;", + "}", + "]])", + "%endif", + "", + "%if-reentrant", + "/* Accessor methods for yylval and yylloc */", + "", + "%if-bison-bridge", + "m4_ifdef( [[M4_YY_NO_GET_LVAL]],,", + "[[", + "YYSTYPE * yyget_lval YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yylval;", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_SET_LVAL]],,", + "[[", + "void yyset_lval YYFARGS1( YYSTYPE * ,yylval_param)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " yylval = yylval_param;", + "}", + "]])", + "", + "m4_ifdef( [[<M4_YY_BISON_LLOC>]],", + "[[", + " m4_ifdef( [[M4_YY_NO_GET_LLOC]],,", + " [[", + "YYLTYPE *yyget_lloc YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " return yylloc;", + "}", + " ]])", + "", + " m4_ifdef( [[M4_YY_NO_SET_LLOC]],,", + " [[", + "void yyset_lloc YYFARGS1( YYLTYPE * ,yylloc_param)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " yylloc = yylloc_param;", + "}", + " ]])", + "]])", + "", + "%endif", + "", + "", + "/* User-visible API */", + "", + "/* yylex_init is special because it creates the scanner itself, so it is", + " * the ONLY reentrant function that doesn't take the scanner as the last argument.", + " * That's why we explicitly handle the declaration, instead of using our macros.", + " */", + "m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],", + "[[", + "int yylex_init( ptr_yy_globals )", + " yyscan_t* ptr_yy_globals;", + "]],", + "[[", + "int yylex_init(yyscan_t* ptr_yy_globals)", + "]])", + "{", + " if (ptr_yy_globals == NULL){", + " errno = EINVAL;", + " return 1;", + " }", + "", + " *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );", + "", + " if (*ptr_yy_globals == NULL){", + " errno = ENOMEM;", + " return 1;", + " }", + "", + " /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */", + " memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));", + "", + " return yy_init_globals ( *ptr_yy_globals );", + "}", + "", + "", + "/* yylex_init_extra has the same functionality as yylex_init, but follows the", + " * convention of taking the scanner as the last argument. Note however, that", + " * this is a *pointer* to a scanner, as it will be allocated by this call (and", + " * is the reason, too, why this function also must handle its own declaration).", + " * The user defined value in the first argument will be available to yyalloc in", + " * the yyextra field.", + " */", + "m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],", + "[[", + "int yylex_init_extra( yy_user_defined, ptr_yy_globals )", + " YY_EXTRA_TYPE yy_user_defined;", + " yyscan_t* ptr_yy_globals;", + "]],", + "[[", + "int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )", + "]])", + "{", + " struct yyguts_t dummy_yyguts;", + "", + " yyset_extra (yy_user_defined, &dummy_yyguts);", + "", + " if (ptr_yy_globals == NULL){", + " errno = EINVAL;", + " return 1;", + " }", + " ", + " *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );", + " ", + " if (*ptr_yy_globals == NULL){", + " errno = ENOMEM;", + " return 1;", + " }", + " ", + " /* By setting to 0xAA, we expose bugs in", + " yy_init_globals. Leave at 0x00 for releases. */", + " memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));", + " ", + " yyset_extra (yy_user_defined, *ptr_yy_globals);", + " ", + " return yy_init_globals ( *ptr_yy_globals );", + "}", + "", + "%endif if-c-only", + "%# Actually, that ended an if-rentrant section", + "", + "%if-c-only", + "static int yy_init_globals YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " /* Initialization is the same as for the non-reentrant scanner.", + " * This function is called from yylex_destroy(), so don't allocate here.", + " */", + "", + "m4_ifdef( [[M4_YY_USE_LINENO]],", + "[[", + " m4_ifdef( [[M4_YY_NOT_REENTRANT]],", + " [[", + " /* We do not touch yylineno unless the option is enabled. */", + " yylineno = 1;", + " ]])", + "]])", + " YY_G(yy_buffer_stack) = NULL;", + " YY_G(yy_buffer_stack_top) = 0;", + " YY_G(yy_buffer_stack_max) = 0;", + " YY_G(yy_c_buf_p) = NULL;", + " YY_G(yy_init) = 0;", + " YY_G(yy_start) = 0;", + "", + "m4_ifdef( [[M4_YY_HAS_START_STACK_VARS]],", + "[[", + " YY_G(yy_start_stack_ptr) = 0;", + " YY_G(yy_start_stack_depth) = 0;", + " YY_G(yy_start_stack) = NULL;", + "]])", + "", + "m4_ifdef( [[M4_YY_USES_REJECT]],", + "[[", + " YY_G(yy_state_buf) = 0;", + " YY_G(yy_state_ptr) = 0;", + " YY_G(yy_full_match) = 0;", + " YY_G(yy_lp) = 0;", + "]])", + "", + "m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],", + "[[", + " YY_G(yytext_ptr) = 0;", + " YY_G(yy_more_offset) = 0;", + " YY_G(yy_prev_more_offset) = 0;", + "]])", + "", + "/* Defined in main.c */", + "#ifdef YY_STDINIT", + " yyin = stdin;", + " yyout = stdout;", + "#else", + " yyin = NULL;", + " yyout = NULL;", + "#endif", + "", + " /* For future reference: Set errno on error, since we are called by", + " * yylex_init()", + " */", + " return 0;", + "}", + "%endif", + "", + "", + "%if-c-only SNIP! this currently causes conflicts with the c++ scanner", + "/* yylex_destroy is for both reentrant and non-reentrant scanners. */", + "int yylex_destroy YYFARGS0(void)", + "{", + " M4_YY_DECL_GUTS_VAR();", + "", + " /* Pop the buffer stack, destroying each element. */", + " while(YY_CURRENT_BUFFER){", + " yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG );", + " YY_CURRENT_BUFFER_LVALUE = NULL;", + " yypop_buffer_state(M4_YY_CALL_ONLY_ARG);", + " }", + "", + " /* Destroy the stack itself. */", + " yyfree(YY_G(yy_buffer_stack) M4_YY_CALL_LAST_ARG);", + " YY_G(yy_buffer_stack) = NULL;", + "", + "m4_ifdef( [[M4_YY_HAS_START_STACK_VARS]],", + "[[", + " /* Destroy the start condition stack. */", + " yyfree( YY_G(yy_start_stack) M4_YY_CALL_LAST_ARG );", + " YY_G(yy_start_stack) = NULL;", + "]])", + "", + "m4_ifdef( [[M4_YY_USES_REJECT]],", + "[[", + " yyfree ( YY_G(yy_state_buf) M4_YY_CALL_LAST_ARG);", + " YY_G(yy_state_buf) = NULL;", + "]])", + "", + " /* Reset the globals. This is important in a non-reentrant scanner so the next time", + " * yylex() is called, initialization will occur. */", + " yy_init_globals( M4_YY_CALL_ONLY_ARG);", + "", + "%if-reentrant", + " /* Destroy the main struct (reentrant only). */", + " yyfree ( yyscanner M4_YY_CALL_LAST_ARG );", + " yyscanner = NULL;", + "%endif", + " return 0;", + "}", + "%endif", + "", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "/*", + " * Internal utility routines.", + " */", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#ifndef yytext_ptr", + "static void yy_flex_strncpy YYFARGS3( char*,s1, yyconst char *,s2, int,n)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " M4_YY_NOOP_GUTS_VAR();", + "", + " int i;", + " for ( i = 0; i < n; ++i )", + " s1[i] = s2[i];", + "}", + "#endif", + "]])", + "", + "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],", + "[[", + "#ifdef YY_NEED_STRLEN", + "static int yy_flex_strlen YYFARGS1( yyconst char *,s)", + "{", + " int n;", + " for ( n = 0; s[n]; ++n )", + " ;", + "", + " return n;", + "}", + "#endif", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_FLEX_ALLOC]],,", + "[[", + "void *yyalloc YYFARGS1( yy_size_t ,size)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " M4_YY_NOOP_GUTS_VAR();", + " return malloc(size);", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_FLEX_REALLOC]],,", + "[[", + "void *yyrealloc YYFARGS2( void *,ptr, yy_size_t ,size)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " M4_YY_NOOP_GUTS_VAR();", + "", + " /* The cast to (char *) in the following accommodates both", + " * implementations that use char* generic pointers, and those", + " * that use void* generic pointers. It works with the latter", + " * because both ANSI C and C++ allow castless assignment from", + " * any pointer type to void*, and deal with argument conversions", + " * as though doing an assignment.", + " */", + " return realloc(ptr, size);", + "}", + "]])", + "", + "m4_ifdef( [[M4_YY_NO_FLEX_FREE]],,", + "[[", + "void yyfree YYFARGS1( void *,ptr)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " M4_YY_NOOP_GUTS_VAR();", + " free( (char *) ptr ); /* see yyrealloc() for (char *) cast */", + "}", + "]])", + "", + "%if-tables-serialization definitions", + "#ifdef FLEX_SCANNER", + "/*", + "dnl tables_shared.c - tables serialization code", + "dnl ", + "dnl Copyright (c) 1990 The Regents of the University of California.", + "dnl All rights reserved.", + "dnl ", + "dnl This code is derived from software contributed to Berkeley by", + "dnl Vern Paxson.", + "dnl ", + "dnl The United States Government has rights in this work pursuant", + "dnl to contract no. DE-AC03-76SF00098 between the United States", + "dnl Department of Energy and the University of California.", + "dnl ", + "dnl This file is part of flex.", + "dnl ", + "dnl Redistribution and use in source and binary forms, with or without", + "dnl modification, are permitted provided that the following conditions", + "dnl are met:", + "dnl ", + "dnl 1. Redistributions of source code must retain the above copyright", + "dnl notice, this list of conditions and the following disclaimer.", + "dnl 2. Redistributions in binary form must reproduce the above copyright", + "dnl notice, this list of conditions and the following disclaimer in the", + "dnl documentation and/or other materials provided with the distribution.", + "dnl ", + "dnl Neither the name of the University nor the names of its contributors", + "dnl may be used to endorse or promote products derived from this software", + "dnl without specific prior written permission.", + "dnl ", + "dnl THIS SOFTWARE IS PROVIDED `AS IS' AND WITHOUT ANY EXPRESS OR", + "dnl IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED", + "dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR", + "dnl PURPOSE.", + "dnl ", + "*/", + "", + "/* This file is meant to be included in both the skeleton and the actual", + " * flex code (hence the name \"_shared\"). ", + " */", + "#ifndef yyskel_static", + "#define yyskel_static static", + "#endif", + "#else", + "#include \"flexdef.h\"", + "#include \"tables.h\"", + "#ifndef yyskel_static", + "#define yyskel_static", + "#endif", + "#endif", + "", + "", + "/** Get the number of integers in this table. This is NOT the", + " * same thing as the number of elements.", + " * @param tbl the table", + " * @return the number of integers in the table", + " */", + "yyskel_static flex_int32_t yytbl_calc_total_len (const struct yytbl_data *tbl)", + "{", + " flex_int32_t n;", + "", + " /* total number of ints */", + " n = tbl->td_lolen;", + " if (tbl->td_hilen > 0)", + " n *= tbl->td_hilen;", + "", + " if (tbl->td_id == YYTD_ID_TRANSITION)", + " n *= 2;", + " return n;", + "}", + "", + "", + "static int yytbl_read8 (void *v, struct yytbl_reader * rd)", + "{", + " errno = 0;", + " if (fread (v, sizeof (flex_uint8_t), 1, rd->fp) != 1){", + " errno = EIO;", + " return -1;", + " }", + " rd->bread += sizeof(flex_uint8_t);", + " return 0;", + "}", + "", + "static int yytbl_read16 (void *v, struct yytbl_reader * rd)", + "{", + " errno = 0;", + " if (fread (v, sizeof (flex_uint16_t), 1, rd->fp) != 1){", + " errno = EIO;", + " return -1;", + " }", + " *((flex_uint16_t *) v) = ntohs (*((flex_uint16_t *) v));", + " rd->bread += sizeof(flex_uint16_t);", + " return 0;", + "}", + "", + "static int yytbl_read32 (void *v, struct yytbl_reader * rd)", + "{", + " errno = 0;", + " if (fread (v, sizeof (flex_uint32_t), 1, rd->fp) != 1){", + " errno = EIO;", + " return -1;", + " }", + " *((flex_uint32_t *) v) = ntohl (*((flex_uint32_t *) v));", + " rd->bread += sizeof(flex_uint32_t);", + " return 0;", + "}", + "", + "/** Read the header */", + "static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *, rd)", + "{", + " size_t bytes;", + " memset (th, 0, sizeof (struct yytbl_hdr));", + "", + " if (yytbl_read32 (&(th->th_magic), rd) != 0)", + " return -1;", + "", + " if (th->th_magic != YYTBL_MAGIC){", + " YY_FATAL_ERROR( \"bad magic number\" ); /* TODO: not fatal. */", + " return -1;", + " }", + "", + " if (yytbl_read32 (&(th->th_hsize), rd) != 0", + " || yytbl_read32 (&(th->th_ssize), rd) != 0", + " || yytbl_read16 (&(th->th_flags), rd) != 0)", + " return -1;", + "", + " /* Sanity check on header size. Greater than 1k suggests some funny business. */", + " if (th->th_hsize < 16 || th->th_hsize > 1024){", + " YY_FATAL_ERROR( \"insane header size detected\" ); /* TODO: not fatal. */", + " return -1;", + " }", + "", + " /* Allocate enough space for the version and name fields */", + " bytes = th->th_hsize - 14;", + " th->th_version = (char *) yyalloc (bytes M4_YY_CALL_LAST_ARG);", + " if ( ! th->th_version )", + " YY_FATAL_ERROR( \"out of dynamic memory in yytbl_hdr_read()\" );", + "", + " /* we read it all into th_version, and point th_name into that data */", + " if (fread (th->th_version, 1, bytes, rd->fp) != bytes){", + " errno = EIO;", + " yyfree(th->th_version M4_YY_CALL_LAST_ARG);", + " th->th_version = NULL;", + " return -1;", + " }", + " else", + " rd->bread += bytes;", + "", + " th->th_name = th->th_version + strlen (th->th_version) + 1;", + " return 0;", + "}", + "", + "/** lookup id in the dmap list.", + " * @param dmap pointer to first element in list", + " * @return NULL if not found.", + " */", + "static struct yytbl_dmap *yytbl_dmap_lookup YYFARGS2(struct yytbl_dmap *, dmap,", + " int, id)", + "{", + " M4_YY_DECL_GUTS_VAR();", + " M4_YY_NOOP_GUTS_VAR();", + "", + " while (dmap->dm_id)", + " if ((int)(dmap->dm_id) == id)", + " return dmap;", + " else", + " dmap++;", + " return NULL;", + "}", + "", + "/** Read a table while mapping its contents to the local array. ", + " * @param dmap used to performing mapping", + " * @return 0 on success", + " */", + "static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_reader*, rd)", + "{", + " struct yytbl_data td;", + " struct yytbl_dmap *transdmap=0;", + " int len, i, rv, inner_loop_count;", + " void *p=0;", + "", + " memset (&td, 0, sizeof (struct yytbl_data));", + "", + " if (yytbl_read16 (&td.td_id, rd) != 0", + " || yytbl_read16 (&td.td_flags, rd) != 0", + " || yytbl_read32 (&td.td_hilen, rd) != 0", + " || yytbl_read32 (&td.td_lolen, rd) != 0)", + " return -1;", + "", + " /* Lookup the map for the transition table so we have it in case we need it", + " * inside the loop below. This scanner might not even have a transition", + " * table, which is ok.", + " */", + " transdmap = yytbl_dmap_lookup (dmap, YYTD_ID_TRANSITION M4_YY_CALL_LAST_ARG);", + "", + " if ((dmap = yytbl_dmap_lookup (dmap, td.td_id M4_YY_CALL_LAST_ARG)) == NULL){", + " YY_FATAL_ERROR( \"table id not found in map.\" ); /* TODO: not fatal. */", + " return -1;", + " }", + "", + " /* Allocate space for table.", + " * The --full yy_transition table is a special case, since we", + " * need the dmap.dm_sz entry to tell us the sizeof the individual", + " * struct members.", + " */", + " {", + " size_t bytes;", + "", + " if ((td.td_flags & YYTD_STRUCT))", + " bytes = sizeof(struct yy_trans_info) * td.td_lolen * (td.td_hilen ? td.td_hilen : 1);", + " else", + " bytes = td.td_lolen * (td.td_hilen ? td.td_hilen : 1) * dmap->dm_sz;", + "", + " if(M4_YY_TABLES_VERIFY)", + " /* We point to the array itself */", + " p = dmap->dm_arr; ", + " else", + " /* We point to the address of a pointer. */", + " *dmap->dm_arr = p = (void *) yyalloc (bytes M4_YY_CALL_LAST_ARG);", + " if ( ! p )", + " YY_FATAL_ERROR( \"out of dynamic memory in yytbl_data_load()\" );", + " }", + "", + " /* If it's a struct, we read 2 integers to get one element */", + " if ((td.td_flags & YYTD_STRUCT) != 0)", + " inner_loop_count = 2;", + " else", + " inner_loop_count = 1;", + "", + " /* read and map each element.", + " * This loop iterates once for each element of the td_data array.", + " * Notice that we increment 'i' in the inner loop.", + " */", + " len = yytbl_calc_total_len (&td);", + " for (i = 0; i < len; ){", + " int j;", + "", + "", + " /* This loop really executes exactly 1 or 2 times.", + " * The second time is to handle the second member of the", + " * YYTD_STRUCT for the yy_transition array.", + " */", + " for (j = 0; j < inner_loop_count; j++, i++) {", + " flex_int32_t t32;", + "", + " /* read into t32 no matter what the real size is. */", + " {", + " flex_int16_t t16;", + " flex_int8_t t8;", + "", + " switch (YYTDFLAGS2BYTES (td.td_flags)) {", + " case sizeof (flex_int32_t):", + " rv = yytbl_read32 (&t32, rd);", + " break;", + " case sizeof (flex_int16_t):", + " rv = yytbl_read16 (&t16, rd);", + " t32 = t16;", + " break;", + " case sizeof (flex_int8_t):", + " rv = yytbl_read8 (&t8, rd);", + " t32 = t8;", + " break;", + " default: ", + " YY_FATAL_ERROR( \"invalid td_flags\" ); /* TODO: not fatal. */", + " return -1;", + " }", + " }", + " if (rv != 0)", + " return -1;", + "", + " /* copy into the deserialized array... */", + "", + " if ((td.td_flags & YYTD_STRUCT)) {", + " /* t32 is the j'th member of a two-element struct. */", + " void *v;", + "", + " v = j == 0 ? &(((struct yy_trans_info *) p)->yy_verify)", + " : &(((struct yy_trans_info *) p)->yy_nxt);", + "", + " switch (dmap->dm_sz) {", + " case sizeof (flex_int32_t):", + " if (M4_YY_TABLES_VERIFY){", + " if( ((flex_int32_t *) v)[0] != (flex_int32_t) t32)", + " YY_FATAL_ERROR( \"tables verification failed at YYTD_STRUCT flex_int32_t\" );", + " }else", + " ((flex_int32_t *) v)[0] = (flex_int32_t) t32;", + " break;", + " case sizeof (flex_int16_t):", + " if (M4_YY_TABLES_VERIFY ){", + " if(((flex_int16_t *) v)[0] != (flex_int16_t) t32)", + " YY_FATAL_ERROR( \"tables verification failed at YYTD_STRUCT flex_int16_t\" );", + " }else", + " ((flex_int16_t *) v)[0] = (flex_int16_t) t32;", + " break;", + " case sizeof(flex_int8_t):", + " if (M4_YY_TABLES_VERIFY ){", + " if( ((flex_int8_t *) v)[0] != (flex_int8_t) t32)", + " YY_FATAL_ERROR( \"tables verification failed at YYTD_STRUCT flex_int8_t\" );", + " }else", + " ((flex_int8_t *) v)[0] = (flex_int8_t) t32;", + " break;", + " default:", + " YY_FATAL_ERROR( \"invalid dmap->dm_sz for struct\" ); /* TODO: not fatal. */", + " return -1;", + " }", + "", + " /* if we're done with j, increment p */", + " if (j == 1)", + " p = (struct yy_trans_info *) p + 1;", + " }", + " else if ((td.td_flags & YYTD_PTRANS)) {", + " /* t32 is an index into the transition array. */", + " struct yy_trans_info *v;", + "", + "", + " if (!transdmap){", + " YY_FATAL_ERROR( \"transition table not found\" ); /* TODO: not fatal. */", + " return -1;", + " }", + " ", + " if( M4_YY_TABLES_VERIFY)", + " v = &(((struct yy_trans_info *) (transdmap->dm_arr))[t32]);", + " else", + " v = &((*((struct yy_trans_info **) (transdmap->dm_arr)))[t32]);", + "", + " if(M4_YY_TABLES_VERIFY ){", + " if( ((struct yy_trans_info **) p)[0] != v)", + " YY_FATAL_ERROR( \"tables verification failed at YYTD_PTRANS\" );", + " }else", + " ((struct yy_trans_info **) p)[0] = v;", + " ", + " /* increment p */", + " p = (struct yy_trans_info **) p + 1;", + " }", + " else {", + " /* t32 is a plain int. copy data, then incrememnt p. */", + " switch (dmap->dm_sz) {", + " case sizeof (flex_int32_t):", + " if(M4_YY_TABLES_VERIFY ){", + " if( ((flex_int32_t *) p)[0] != (flex_int32_t) t32)", + " YY_FATAL_ERROR( \"tables verification failed at flex_int32_t\" );", + " }else", + " ((flex_int32_t *) p)[0] = (flex_int32_t) t32;", + " p = ((flex_int32_t *) p) + 1;", + " break;", + " case sizeof (flex_int16_t):", + " if(M4_YY_TABLES_VERIFY ){", + " if( ((flex_int16_t *) p)[0] != (flex_int16_t) t32)", + " YY_FATAL_ERROR( \"tables verification failed at flex_int16_t\" );", + " }else", + " ((flex_int16_t *) p)[0] = (flex_int16_t) t32;", + " p = ((flex_int16_t *) p) + 1;", + " break;", + " case sizeof (flex_int8_t):", + " if(M4_YY_TABLES_VERIFY ){", + " if( ((flex_int8_t *) p)[0] != (flex_int8_t) t32)", + " YY_FATAL_ERROR( \"tables verification failed at flex_int8_t\" );", + " }else", + " ((flex_int8_t *) p)[0] = (flex_int8_t) t32;", + " p = ((flex_int8_t *) p) + 1;", + " break;", + " default:", + " YY_FATAL_ERROR( \"invalid dmap->dm_sz for plain int\" ); /* TODO: not fatal. */", + " return -1;", + " }", + " }", + " }", + "", + " }", + "", + " /* Now eat padding. */", + " {", + " int pad;", + " pad = yypad64(rd->bread);", + " while(--pad >= 0){", + " flex_int8_t t8;", + " if(yytbl_read8(&t8,rd) != 0)", + " return -1;", + " }", + " }", + "", + " return 0;", + "}", + "", + "%define-yytables The name for this specific scanner's tables.", + "", + "/* Find the key and load the DFA tables from the given stream. */", + "static int yytbl_fload YYFARGS2(FILE *, fp, const char *, key)", + "{", + " int rv=0;", + " struct yytbl_hdr th;", + " struct yytbl_reader rd;", + "", + " rd.fp = fp;", + " th.th_version = NULL;", + "", + " /* Keep trying until we find the right set of tables or end of file. */", + " while (!feof(rd.fp)) {", + " rd.bread = 0;", + " if (yytbl_hdr_read (&th, &rd M4_YY_CALL_LAST_ARG) != 0){", + " rv = -1;", + " goto return_rv;", + " }", + "", + " /* A NULL key means choose the first set of tables. */", + " if (key == NULL)", + " break;", + "", + " if (strcmp(th.th_name,key) != 0){", + " /* Skip ahead to next set */", + " fseek(rd.fp, th.th_ssize - th.th_hsize, SEEK_CUR);", + " yyfree(th.th_version M4_YY_CALL_LAST_ARG);", + " th.th_version = NULL;", + " }", + " else", + " break;", + " }", + "", + " while (rd.bread < th.th_ssize){", + " /* Load the data tables */", + " if(yytbl_data_load (yydmap,&rd M4_YY_CALL_LAST_ARG) != 0){", + " rv = -1;", + " goto return_rv;", + " }", + " }", + "", + "return_rv:", + " if(th.th_version){", + " yyfree(th.th_version M4_YY_CALL_LAST_ARG);", + " th.th_version = NULL;", + " }", + "", + " return rv;", + "}", + "", + "/** Load the DFA tables for this scanner from the given stream. */", + "int yytables_fload YYFARGS1(FILE *, fp)", + "{", + "", + " if( yytbl_fload(fp, YYTABLES_NAME M4_YY_CALL_LAST_ARG) != 0)", + " return -1;", + " return 0;", + "}", + "", + "/** Destroy the loaded tables, freeing memory, etc.. */", + "int yytables_destroy YYFARGS0(void)", + "{ ", + " struct yytbl_dmap *dmap=0;", + "", + " if(!M4_YY_TABLES_VERIFY){", + " /* Walk the dmap, freeing the pointers */", + " for(dmap=yydmap; dmap->dm_id; dmap++) {", + " void * v;", + " v = dmap->dm_arr;", + " if(v && *(char**)v){", + " yyfree(*(char**)v M4_YY_CALL_LAST_ARG);", + " *(char**)v = NULL;", + " }", + " }", + " }", + "", + " return 0;", + "}", + "", + "/* end table serialization code definitions */", + "%endif", + "", + "", + "m4_ifdef([[M4_YY_MAIN]], [[", + "int main M4_YY_PARAMS(void);", + "", + "int main ()", + "{", + "", + "%if-reentrant", + " yyscan_t lexer;", + " yylex_init(&lexer);", + " yylex( lexer );", + " yylex_destroy( lexer);", + "", + "%endif", + "%if-not-reentrant", + " yylex();", + "%endif", + "", + " return 0;", + "}", + "]])", + "", + "%ok-for-header", + "m4_ifdef( [[M4_YY_IN_HEADER]],", + "[[", + "#undef YY_NEW_FILE", + "#undef YY_FLUSH_BUFFER", + "#undef yy_set_bol", + "#undef yy_new_buffer", + "#undef yy_set_interactive", + "#undef YY_DO_BEFORE_ACTION", + "", + "#ifdef YY_DECL_IS_OURS", + "#undef YY_DECL_IS_OURS", + "#undef YY_DECL", + "#endif", + "]])", + 0 +}; diff --git a/src/stage1scan.c b/src/stage1scan.c new file mode 100644 index 0000000..54502ae --- /dev/null +++ b/src/stage1scan.c @@ -0,0 +1,5078 @@ +#line 2 "stage1scan.c" + +#line 4 "stage1scan.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 1 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +/* TODO: this is always defined, so inline it */ +#define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) +#else +#define yynoreturn +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern int yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + int yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = NULL; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +typedef unsigned char YY_CHAR; + +FILE *yyin = NULL, *yyout = NULL; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yynoreturn yy_fatal_error (yyconst char* msg ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + (yytext_ptr) -= (yy_more_len); \ + yyleng = (int) (yy_cp - (yytext_ptr)); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 252 +#define YY_END_OF_BUFFER 253 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[1110] = + { 0, + 0, 0, 0, 0, 0, 0, 249, 249, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 251, + 9, 20, 251, 18, 1, 19, 251, 251, 251, 251, + 17, 165, 150, 151, 165, 143, 165, 162, 163, 164, + 164, 165, 165, 165, 164, 149, 139, 165, 165, 141, + 142, 137, 138, 137, 136, 135, 136, 249, 249, 250, + 250, 41, 42, 41, 41, 41, 41, 41, 41, 50, + + 49, 51, 251, 171, 171, 166, 171, 167, 168, 170, + 172, 220, 221, 220, 218, 217, 219, 173, 175, 173, + 174, 173, 187, 187, 187, 187, 189, 191, 189, 189, + 189, 189, 190, 234, 239, 234, 238, 240, 240, 236, + 236, 236, 235, 235, 230, 231, 251, 132, 251, 25, + 26, 25, 22, 25, 25, 241, 243, 241, 244, 245, + 228, 228, 229, 228, 228, 228, 228, 228, 228, 228, + 131, 53, 52, 131, 131, 131, 131, 54, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 37, + + 34, 37, 35, 48, 45, 251, 48, 48, 44, 43, + 177, 176, 178, 179, 180, 181, 182, 183, 184, 32, + 33, 32, 31, 29, 30, 29, 28, 9, 20, 0, + 18, 1, 19, 0, 0, 0, 16, 10, 0, 0, + 0, 0, 4, 16, 5, 0, 2, 17, 150, 151, + 0, 0, 0, 145, 0, 161, 159, 0, 155, 155, + 0, 246, 246, 246, 0, 0, 144, 0, 149, 139, + 0, 0, 0, 141, 142, 154, 140, 0, 138, 136, + 135, 135, 133, 134, 249, 249, 247, 248, 42, 0, + 0, 39, 40, 0, 50, 49, 51, 0, 166, 0, + + 166, 169, 170, 221, 217, 175, 0, 185, 186, 191, + 188, 234, 239, 0, 237, 0, 223, 236, 236, 236, + 232, 233, 0, 132, 0, 26, 21, 23, 24, 241, + 243, 242, 0, 0, 229, 222, 226, 227, 53, 52, + 0, 130, 0, 0, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 55, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 36, 35, + 45, 46, 47, 32, 33, 30, 27, 0, 16, 10, + 0, 14, 0, 0, 0, 0, 0, 4, 16, 5, + + 0, 6, 0, 146, 0, 147, 0, 160, 0, 155, + 155, 0, 155, 155, 155, 246, 246, 157, 156, 0, + 158, 140, 148, 0, 154, 0, 133, 134, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 236, 222, 0, 0, + 131, 131, 131, 131, 131, 131, 131, 67, 131, 131, + 131, 72, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 14, 0, 0, 0, 0, 0, 0, 4, 8, + 5, 0, 155, 155, 155, 155, 155, 155, 155, 246, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 236, 56, + 57, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 73, 74, 131, 131, 131, 131, 79, 80, + 131, 131, 131, 131, 131, 131, 131, 85, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 94, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 15, 0, 0, 0, 0, 0, 8, 8, 8, + 0, 155, 155, 155, 155, 155, 155, 155, 0, 0, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 236, 236, 58, 131, + 131, 60, 131, 64, 131, 131, 131, 131, 70, 131, + 131, 131, 75, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 88, 131, 131, 131, 131, 92, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 0, 0, 0, 0, 3, 0, 0, 0, 8, 7, + + 8, 0, 155, 155, 155, 0, 0, 224, 225, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 225, 131, 131, 131, 63, 131, + 131, 131, 131, 131, 131, 131, 127, 131, 131, 131, + 131, 131, 131, 131, 131, 125, 131, 87, 131, 90, + 131, 91, 131, 131, 131, 106, 0, 131, 96, 131, + 0, 97, 0, 0, 0, 0, 0, 12, 0, 13, + 0, 153, 0, 152, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, + 131, 131, 131, 131, 131, 68, 131, 71, 131, 131, + 131, 131, 131, 131, 124, 131, 84, 131, 131, 89, + 131, 93, 104, 126, 0, 0, 0, 0, 0, 0, + 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, + 131, 131, 131, 131, 69, 131, 131, 131, 131, 81, + 131, 131, 131, 131, 131, 131, 0, 0, 115, 0, + + 0, 0, 0, 0, 0, 95, 131, 0, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 0, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 86, + 131, 131, 0, 0, 0, 0, 0, 0, 117, 0, + 105, 0, 0, 0, 0, 0, 118, 0, 0, 0, + 0, 0, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 0, 131, 131, 131, 131, 131, + + 131, 131, 123, 131, 131, 77, 131, 131, 131, 131, + 131, 0, 0, 111, 0, 121, 119, 112, 0, 0, + 0, 122, 120, 0, 0, 0, 0, 0, 0, 215, + 131, 131, 131, 131, 131, 131, 131, 127, 76, 131, + 83, 131, 128, 131, 107, 109, 0, 108, 110, 0, + 0, 0, 0, 0, 0, 0, 131, 131, 131, 65, + 131, 131, 131, 131, 78, 131, 113, 114, 99, 0, + 0, 0, 0, 100, 131, 131, 131, 131, 131, 131, + 131, 129, 98, 0, 102, 0, 131, 131, 131, 131, + 131, 68, 131, 101, 103, 131, 131, 62, 66, 131, + + 131, 131, 61, 69, 131, 131, 82, 59, 0 + } ; + +static yyconst YY_CHAR yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 6, 7, 8, 9, 1, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 19, 19, + 19, 19, 19, 19, 20, 21, 22, 23, 1, 24, + 25, 26, 27, 1, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 44, + 53, 54, 55, 56, 57, 1, 58, 59, 60, 61, + + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 44, 74, 75, 76, 77, 78, 79, 80, + 81, 44, 82, 83, 84, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst YY_CHAR yy_meta[85] = + { 0, + 1, 1, 2, 1, 3, 4, 1, 1, 1, 5, + 1, 6, 1, 7, 1, 8, 1, 5, 9, 9, + 9, 9, 10, 1, 1, 1, 1, 11, 11, 11, + 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 13, 14, 15, 1, 16, 11, 11, 11, + 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 5, 1, 17 + } ; + +static yyconst flex_uint16_t yy_base[1204] = + { 0, + 0, 84, 167, 250, 171, 184, 174, 179, 192, 233, + 196, 200, 334, 0, 3464, 3463, 203, 416, 206, 211, + 187, 216, 276, 417, 500, 0, 210, 223, 421, 427, + 436, 440, 583, 588, 669, 0, 277, 299, 584, 751, + 579, 580, 576, 732, 279, 305, 310, 444, 3498, 3970, + 228, 3970, 3493, 0, 322, 3970, 3465, 423, 827, 3438, + 0, 3970, 755, 3970, 3431, 3970, 448, 3390, 3970, 3970, + 3387, 3372, 222, 408, 444, 764, 3970, 3392, 230, 3370, + 3970, 3970, 3970, 3388, 0, 3371, 164, 3366, 3970, 3303, + 3281, 3970, 3970, 3332, 239, 119, 3281, 3276, 3226, 0, + + 3307, 3970, 3305, 3970, 476, 3302, 3300, 3970, 3246, 0, + 3970, 3970, 3970, 3281, 3970, 464, 3970, 3970, 3970, 3264, + 3970, 742, 3970, 3241, 751, 180, 3970, 3970, 3260, 0, + 3239, 757, 3970, 0, 3970, 3256, 3970, 200, 3232, 0, + 429, 241, 3188, 3169, 3970, 3970, 306, 3970, 323, 3970, + 3970, 3217, 3201, 3148, 3129, 0, 3970, 3176, 3970, 0, + 3970, 446, 3970, 3166, 3083, 3134, 435, 371, 3093, 3090, + 3970, 3140, 3970, 3121, 3115, 439, 440, 3970, 578, 751, + 586, 562, 735, 752, 0, 572, 577, 782, 791, 749, + 396, 809, 588, 582, 731, 734, 762, 768, 580, 3970, + + 3970, 3114, 588, 3970, 3970, 3116, 3060, 3057, 3970, 3970, + 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 0, + 3970, 3107, 3970, 3970, 3970, 3103, 3075, 825, 3970, 3073, + 0, 837, 3970, 3070, 795, 777, 0, 0, 891, 903, + 912, 924, 0, 774, 0, 451, 3970, 0, 858, 3970, + 3069, 2989, 472, 3970, 3065, 3044, 3970, 800, 236, 822, + 899, 3970, 275, 0, 2966, 2962, 3970, 2960, 949, 3970, + 3013, 2917, 2983, 2971, 3970, 0, 3970, 818, 3970, 0, + 0, 2992, 0, 0, 2988, 3970, 3970, 3970, 3970, 815, + 816, 3970, 3970, 484, 0, 2970, 3970, 935, 2953, 2949, + + 2949, 3970, 0, 3970, 940, 3970, 1005, 3970, 3970, 3970, + 3970, 0, 3970, 611, 3970, 0, 3970, 0, 821, 850, + 3970, 3970, 490, 3970, 608, 3970, 3970, 3970, 3970, 0, + 3970, 3970, 596, 2866, 3970, 0, 3970, 3970, 2945, 3970, + 2921, 3970, 855, 903, 0, 920, 717, 727, 917, 728, + 2912, 882, 939, 896, 902, 907, 935, 948, 937, 912, + 940, 951, 936, 0, 940, 3970, 943, 946, 1051, 962, + 1061, 969, 966, 1052, 984, 986, 1101, 2919, 3970, 1080, + 3970, 3970, 3970, 0, 3970, 3970, 3970, 1021, 0, 0, + 1134, 3970, 2919, 1147, 1046, 1056, 1058, 0, 1065, 0, + + 874, 3970, 998, 3970, 1004, 3970, 1011, 3970, 1070, 731, + 1090, 1143, 1223, 1153, 1289, 1002, 0, 3970, 3970, 2510, + 1102, 3970, 3970, 1083, 0, 1085, 0, 0, 1098, 1106, + 1023, 3970, 1106, 1151, 1289, 1290, 1156, 2569, 1291, 1154, + 1292, 1301, 1302, 1158, 1353, 1150, 1141, 0, 1138, 1139, + 1153, 1160, 1155, 1288, 1285, 1296, 1285, 0, 1297, 1285, + 1302, 0, 1289, 1288, 1299, 1310, 1325, 1323, 2573, 1335, + 1329, 1349, 1346, 1346, 1347, 1345, 1352, 1356, 1359, 1350, + 1361, 1364, 1389, 1366, 1352, 1355, 1377, 1374, 1390, 1395, + 1392, 1406, 1403, 1398, 1409, 1410, 1399, 1403, 1415, 1111, + + 1478, 3970, 1190, 1482, 1197, 1424, 1420, 1417, 0, 933, + 0, 1427, 1504, 1570, 1606, 874, 2530, 1576, 1651, 3970, + 3970, 1420, 1430, 1435, 1422, 2529, 1569, 1574, 1568, 1577, + 1575, 1570, 1581, 1590, 1593, 1620, 1582, 1583, 1623, 1633, + 1622, 1631, 1636, 1652, 1634, 1663, 1664, 1625, 1615, 3970, + 3970, 1649, 1642, 2564, 1646, 1651, 1656, 1660, 1699, 1669, + 1668, 1689, 0, 0, 1686, 1675, 1679, 1689, 0, 0, + 2560, 1685, 1698, 2559, 1690, 1689, 1699, 0, 1694, 1712, + 1705, 1703, 1698, 1718, 1705, 1707, 1713, 0, 1717, 1729, + 1726, 1713, 1720, 1718, 1739, 1724, 1748, 1736, 1747, 1737, + + 2570, 3970, 1198, 1206, 1730, 1748, 1746, 0, 1393, 1793, + 2545, 952, 2426, 1782, 1818, 1554, 1068, 1151, 1761, 2347, + 1752, 1771, 3970, 1781, 1791, 1782, 1787, 1789, 1798, 1795, + 1793, 1822, 1836, 1831, 1796, 1842, 1839, 1845, 1808, 1846, + 1794, 1852, 1861, 1866, 1847, 1863, 1840, 1863, 0, 1852, + 1869, 0, 1858, 0, 2352, 1871, 1857, 1871, 0, 1867, + 2349, 1864, 0, 1882, 1869, 1882, 2309, 1880, 1877, 1891, + 2174, 1875, 1883, 1888, 0, 1903, 1896, 1899, 1916, 0, + 1904, 1906, 1906, 1922, 2063, 1924, 1926, 1920, 1970, 1917, + 1918, 1917, 1937, 1923, 2016, 1448, 1926, 1936, 1968, 3970, + + 1977, 1936, 1946, 1922, 1929, 1882, 1865, 3970, 3970, 1962, + 1980, 1971, 1981, 1964, 1970, 1983, 1984, 1987, 1989, 1991, + 1990, 1993, 1994, 1996, 1999, 2010, 2002, 1992, 2007, 2019, + 2032, 2020, 2024, 0, 0, 1827, 1991, 2016, 0, 2035, + 2025, 2036, 2030, 2025, 2025, 2030, 1799, 2050, 2041, 2053, + 2048, 2053, 2054, 2044, 2057, 0, 2063, 0, 2046, 0, + 1723, 0, 2063, 2067, 2056, 0, 2097, 2064, 0, 2068, + 2109, 0, 1645, 2073, 2071, 1639, 1486, 3970, 1596, 3970, + 2058, 3970, 1627, 3970, 1627, 1596, 1591, 1571, 1536, 1484, + 1471, 1451, 1434, 1431, 1425, 2096, 2086, 2124, 2111, 2107, + + 2127, 2130, 2132, 2137, 2138, 2157, 2141, 2131, 2121, 2129, + 2126, 2138, 2146, 2145, 2152, 0, 2150, 0, 2147, 2161, + 2153, 2158, 2158, 2161, 0, 2162, 0, 2165, 2167, 0, + 2177, 0, 0, 0, 2177, 2165, 2170, 2210, 2173, 2185, + 2180, 2185, 2198, 2183, 2195, 2212, 2196, 2207, 1386, 1315, + 2208, 2253, 3970, 1299, 1284, 1277, 1223, 1161, 1155, 1142, + 1129, 1078, 1055, 1041, 1067, 1036, 1000, 965, 925, 893, + 881, 869, 861, 843, 802, 776, 2220, 2221, 2228, 2221, + 2229, 2239, 2238, 2228, 0, 2228, 2239, 2241, 2252, 0, + 2237, 2243, 2246, 2242, 2251, 2259, 2264, 2251, 3970, 2261, + + 2263, 2264, 2280, 2264, 2261, 0, 2279, 2285, 2272, 3970, + 2279, 2280, 2296, 2279, 2281, 2283, 2301, 2286, 2332, 3970, + 2340, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 735, 612, 608, 598, 441, 374, 261, 245, + 202, 152, 149, 137, 165, 2295, 2290, 2307, 2320, 2325, + 2315, 2323, 2331, 2325, 2297, 2319, 2335, 2324, 2327, 0, + 2333, 2329, 2329, 2333, 2346, 2350, 2354, 2346, 3970, 2340, + 0, 2340, 2345, 2359, 2362, 2357, 3970, 2371, 2354, 2356, + 2358, 2381, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 3970, 3970, 128, 2379, 2377, 2371, 2386, 2376, + + 2378, 2378, 0, 2395, 2396, 0, 2386, 2385, 2407, 2404, + 2402, 2406, 2414, 3970, 2403, 3970, 3970, 3970, 2411, 2418, + 2407, 3970, 3970, 2404, 2421, 2422, 2412, 2417, 2416, 3970, + 2419, 2420, 2417, 2424, 2435, 2437, 2441, 0, 0, 2453, + 0, 2436, 0, 2451, 3970, 3970, 2445, 3970, 3970, 2447, + 2458, 2447, 2462, 2465, 2463, 2468, 2474, 2468, 2462, 0, + 2464, 2461, 2460, 2480, 0, 2461, 3970, 3970, 3970, 2483, + 2484, 2472, 2480, 3970, 2492, 2482, 2494, 2487, 2495, 2501, + 2492, 0, 3970, 2496, 3970, 2509, 2501, 2503, 2503, 2504, + 2504, 0, 2519, 3970, 3970, 2521, 2513, 0, 0, 2528, + + 2513, 2515, 0, 0, 2533, 2534, 0, 0, 3970, 2596, + 2613, 2630, 2647, 2664, 2681, 2698, 2715, 2732, 2749, 2766, + 2783, 2800, 2817, 2834, 2851, 2868, 2885, 2902, 2912, 2928, + 2937, 2953, 2970, 2981, 2997, 3014, 3031, 3048, 3058, 3074, + 3091, 3108, 3122, 3132, 3148, 3165, 3182, 3199, 3210, 2112, + 3222, 3239, 3249, 3265, 3282, 3289, 3295, 3311, 3321, 3337, + 3354, 3371, 2558, 3381, 3398, 3415, 3432, 3449, 3466, 3483, + 3500, 3517, 3527, 3543, 3557, 3567, 3583, 3600, 3617, 3634, + 3645, 3657, 3674, 3691, 3708, 3725, 3735, 3744, 3760, 3777, + 3794, 2572, 3804, 3821, 3838, 3855, 3872, 3880, 3885, 3901, + + 3918, 3935, 3952 + } ; + +static yyconst flex_int16_t yy_def[1204] = + { 0, + 1109, 1109, 1110, 1110, 1111, 1112, 1113, 1113, 1114, 1114, + 1115, 1115, 1109, 13, 1116, 1116, 1117, 1117, 1118, 1118, + 1119, 1119, 1120, 1120, 1109, 25, 1121, 1121, 1122, 1122, + 1123, 1123, 1124, 1124, 1109, 35, 1125, 1125, 1126, 1126, + 1116, 1116, 1116, 1116, 1127, 1127, 1128, 1128, 1109, 1109, + 1109, 1109, 1109, 1129, 1109, 1109, 1109, 1109, 1130, 1109, + 1131, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1132, 1133, 1134, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1135, 1136, 1135, 1137, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1138, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1139, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1133, 1109, 1109, 1133, 1140, 1109, 1109, 1109, 1141, + 1109, 1133, 1109, 1142, 1109, 1142, 1109, 1143, 1109, 1144, + 1144, 1144, 1109, 1109, 1109, 1109, 1145, 1109, 1145, 1109, + 1109, 1109, 1109, 1109, 1109, 1146, 1109, 1146, 1109, 1147, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1148, 1109, 1109, 1109, 1149, 1149, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1109, + + 1109, 1151, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1152, + 1109, 1152, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1153, 1109, 1109, 1109, 1109, 1109, 1154, 1155, 1109, 1109, + 1109, 1109, 1156, 1154, 1157, 1158, 1109, 1159, 1109, 1109, + 1109, 1109, 1160, 1109, 1109, 1109, 1109, 1109, 1161, 1161, + 1162, 1109, 1109, 1163, 1109, 1109, 1109, 1164, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1165, 1109, 1109, 1109, 1166, + 1167, 1167, 1168, 1169, 1170, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1171, 1172, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1173, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1174, 1109, 1175, 1109, 1175, 1109, 1176, 1176, 1176, + 1109, 1109, 1177, 1109, 1177, 1109, 1109, 1109, 1109, 1178, + 1109, 1109, 1109, 1109, 1109, 1179, 1109, 1109, 1109, 1109, + 1180, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1109, 1109, + 1109, 1109, 1109, 1183, 1109, 1109, 1109, 1109, 1184, 1185, + 1186, 1109, 1109, 1109, 1109, 1109, 1109, 1187, 1184, 1188, + + 1189, 1109, 1189, 1109, 1190, 1109, 1190, 1109, 1109, 1191, + 1191, 1191, 1109, 1191, 1191, 1109, 1192, 1109, 1109, 1193, + 1109, 1109, 1109, 1109, 1194, 1109, 1195, 1196, 1109, 1109, + 1197, 1109, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1200, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1186, + + 1186, 1109, 1186, 1186, 1109, 1109, 1109, 1109, 1187, 1201, + 1188, 1109, 1109, 1191, 415, 413, 413, 1191, 415, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1109, + 1109, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, + + 1109, 1109, 1186, 1186, 1109, 1109, 1109, 1201, 1201, 1201, + 1109, 513, 513, 1191, 415, 1191, 1191, 1191, 1109, 1109, + 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1109, 1109, 1109, 1109, 1109, 1202, 1109, 1109, 1201, 1109, + + 1201, 1109, 1191, 1191, 1191, 1109, 1109, 1109, 1109, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1199, 1199, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, + 1109, 1181, 1109, 1109, 1109, 1109, 1202, 1109, 1202, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1203, 1109, + 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 0, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109 + } ; + +static yyconst flex_uint16_t yy_nxt[4055] = + { 0, + 50, 51, 52, 50, 53, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 50, 50, 50, 50, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 50, 50, 50, 50, 55, 56, 50, 57, 50, + 58, 50, 59, 50, 50, 50, 50, 50, 50, 50, + + 50, 60, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 50, 50, 50, 50, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 50, 50, 50, 63, 64, + 291, 65, 66, 83, 67, 84, 89, 68, 69, 70, + 70, 89, 1030, 70, 71, 86, 83, 995, 84, 50, + 72, 994, 87, 70, 93, 309, 94, 101, 102, 291, + + 103, 101, 102, 993, 103, 113, 992, 114, 119, 315, + 120, 121, 148, 119, 149, 120, 121, 115, 50, 73, + 74, 116, 116, 116, 116, 148, 90, 149, 91, 228, + 229, 90, 230, 91, 309, 93, 95, 94, 276, 124, + 125, 99, 126, 96, 97, 283, 98, 284, 75, 70, + 70, 76, 77, 316, 78, 66, 991, 67, 79, 122, + 68, 69, 70, 70, 122, 95, 70, 71, 124, 125, + 290, 126, 96, 80, 260, 261, 70, 95, 128, 201, + 129, 221, 202, 222, 96, 97, 117, 98, 411, 412, + 223, 130, 320, 416, 416, 203, 203, 203, 203, 990, + + 290, 201, 73, 74, 202, 81, 95, 221, 324, 222, + 325, 277, 225, 96, 226, 989, 223, 203, 203, 203, + 203, 320, 227, 232, 233, 324, 234, 325, 131, 132, + 133, 75, 70, 70, 104, 105, 106, 104, 107, 104, + 104, 104, 104, 104, 104, 104, 108, 104, 108, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 109, + 104, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 104, 104, 104, 104, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 104, 104, 104, 113, 128, + 114, 129, 291, 151, 235, 152, 263, 263, 988, 151, + 115, 152, 130, 153, 116, 116, 116, 116, 157, 153, + 158, 159, 157, 367, 158, 159, 225, 333, 226, 254, + 254, 291, 255, 402, 334, 403, 227, 265, 264, 266, + 319, 236, 267, 267, 267, 267, 290, 343, 344, 131, + 132, 133, 367, 154, 406, 155, 407, 298, 299, 154, + 300, 155, 305, 305, 305, 305, 432, 264, 433, 160, + 319, 236, 324, 160, 325, 987, 290, 343, 344, 117, + + 134, 134, 135, 134, 136, 137, 134, 134, 134, 138, + 134, 134, 134, 134, 134, 134, 134, 139, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 141, 140, 140, 140, 140, 140, + 140, 142, 143, 134, 144, 134, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 141, 140, 140, 140, 140, 140, 140, + 142, 145, 134, 146, 162, 163, 205, 164, 206, 162, + 163, 165, 164, 353, 211, 211, 165, 333, 216, 351, + + 166, 212, 212, 358, 334, 166, 380, 380, 380, 380, + 324, 217, 325, 352, 213, 213, 346, 359, 347, 371, + 315, 218, 348, 353, 214, 214, 219, 167, 372, 215, + 215, 377, 167, 358, 168, 169, 207, 170, 208, 168, + 169, 217, 170, 352, 213, 213, 346, 359, 347, 371, + 218, 348, 986, 214, 214, 219, 167, 372, 215, 215, + 377, 167, 985, 168, 316, 209, 984, 210, 168, 171, + 172, 173, 171, 174, 175, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 176, 177, + 171, 171, 171, 178, 171, 171, 179, 180, 181, 182, + + 183, 184, 185, 186, 187, 185, 185, 188, 189, 190, + 191, 192, 185, 193, 194, 195, 196, 197, 198, 185, + 199, 171, 171, 171, 171, 171, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 185, 185, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 185, 199, + 171, 171, 171, 205, 216, 206, 249, 250, 373, 251, + 263, 263, 453, 252, 354, 269, 270, 217, 271, 263, + 263, 454, 272, 457, 374, 263, 263, 218, 349, 356, + 365, 273, 219, 411, 412, 355, 350, 274, 373, 983, + 366, 453, 264, 375, 354, 376, 235, 217, 944, 357, + + 454, 264, 457, 207, 374, 208, 218, 264, 349, 356, + 365, 219, 388, 360, 355, 399, 350, 361, 362, 275, + 366, 264, 363, 375, 943, 376, 228, 229, 357, 230, + 264, 409, 209, 236, 210, 238, 264, 253, 232, 233, + 368, 234, 388, 360, 413, 399, 253, 361, 362, 426, + 369, 429, 363, 370, 239, 430, 240, 446, 240, 249, + 250, 409, 251, 236, 240, 942, 252, 240, 241, 242, + 368, 240, 243, 244, 411, 412, 402, 245, 403, 426, + 369, 429, 370, 941, 239, 430, 240, 446, 240, 447, + 449, 940, 391, 392, 240, 393, 616, 240, 241, 242, + + 240, 243, 244, 939, 391, 392, 245, 393, 246, 394, + 394, 394, 394, 391, 392, 938, 393, 414, 414, 447, + 449, 394, 394, 394, 394, 391, 392, 459, 393, 410, + 394, 394, 394, 394, 609, 395, 298, 299, 450, 300, + 253, 462, 394, 394, 394, 394, 455, 937, 463, 415, + 269, 270, 464, 271, 396, 451, 459, 272, 305, 305, + 305, 305, 469, 456, 395, 397, 273, 460, 450, 452, + 462, 461, 274, 465, 703, 466, 455, 463, 415, 467, + 470, 464, 472, 468, 396, 451, 471, 936, 473, 474, + 475, 469, 456, 478, 484, 397, 482, 460, 452, 483, + + 402, 461, 403, 465, 275, 466, 406, 410, 407, 467, + 470, 472, 468, 406, 610, 407, 471, 473, 474, 475, + 262, 262, 935, 478, 484, 432, 482, 433, 487, 483, + 488, 253, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 438, + 442, 438, 443, 438, 438, 444, 438, 487, 934, 488, + 445, 499, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 442, + 438, 443, 438, 438, 444, 438, 476, 485, 479, 933, + 506, 499, 480, 508, 486, 932, 477, 481, 380, 380, + + 380, 380, 507, 521, 521, 521, 521, 510, 432, 931, + 433, 512, 513, 602, 522, 603, 476, 485, 479, 506, + 411, 412, 480, 508, 486, 477, 523, 481, 489, 524, + 490, 507, 930, 491, 492, 501, 502, 510, 503, 493, + 494, 512, 411, 412, 522, 495, 496, 525, 505, 392, + 497, 393, 504, 504, 504, 504, 523, 498, 489, 524, + 490, 514, 514, 491, 492, 394, 394, 394, 394, 493, + 494, 518, 518, 526, 495, 496, 526, 525, 526, 497, + 526, 548, 549, 929, 550, 551, 552, 553, 537, 527, + 554, 530, 502, 515, 603, 532, 928, 410, 505, 392, + + 602, 393, 603, 411, 412, 411, 412, 604, 502, 927, + 503, 548, 549, 550, 551, 926, 552, 553, 537, 527, + 554, 530, 515, 410, 410, 532, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 411, 412, 925, 517, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + + 516, 516, 516, 516, 410, 410, 410, 519, 519, 519, + 519, 526, 526, 526, 526, 555, 519, 519, 519, 519, + 519, 519, 556, 526, 526, 557, 558, 528, 559, 561, + 529, 924, 560, 562, 563, 531, 533, 564, 923, 534, + 565, 411, 412, 535, 536, 555, 519, 519, 519, 519, + 519, 519, 556, 922, 567, 557, 558, 528, 559, 561, + 529, 560, 562, 563, 531, 533, 569, 564, 534, 570, + 565, 917, 566, 535, 536, 1109, 571, 572, 573, 574, + 538, 539, 540, 541, 567, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 609, 544, 569, 585, 545, 570, + + 546, 566, 586, 547, 584, 587, 571, 572, 573, 574, + 538, 539, 540, 541, 588, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 582, 544, 585, 545, 589, 546, + 583, 586, 547, 590, 584, 587, 591, 592, 593, 594, + 595, 596, 916, 597, 588, 598, 601, 864, 599, 600, + 778, 605, 779, 863, 582, 606, 862, 607, 589, 611, + 583, 619, 620, 590, 621, 591, 622, 592, 593, 594, + 595, 596, 597, 861, 610, 598, 601, 599, 600, 501, + 502, 605, 503, 604, 502, 606, 503, 607, 778, 611, + 779, 619, 620, 860, 621, 622, 504, 504, 504, 504, + + 504, 504, 504, 504, 410, 410, 859, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 411, 412, 858, 613, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 410, 410, 410, 614, 614, + 526, 526, 526, 857, 617, 617, 526, 526, 778, 526, + + 779, 626, 629, 526, 526, 526, 411, 412, 259, 624, + 628, 625, 526, 856, 627, 526, 631, 635, 855, 630, + 633, 636, 411, 412, 615, 615, 615, 615, 411, 412, + 632, 626, 629, 615, 615, 615, 615, 615, 615, 624, + 628, 625, 526, 627, 526, 526, 631, 635, 630, 854, + 633, 636, 853, 526, 647, 526, 526, 639, 526, 648, + 632, 637, 634, 615, 615, 615, 615, 615, 615, 618, + 618, 618, 618, 638, 526, 640, 644, 641, 618, 618, + 618, 618, 618, 618, 647, 526, 526, 639, 648, 649, + 654, 637, 634, 650, 646, 851, 642, 652, 653, 643, + + 655, 848, 659, 638, 640, 645, 644, 641, 618, 618, + 618, 618, 618, 618, 656, 660, 661, 662, 665, 649, + 654, 663, 650, 664, 646, 642, 652, 653, 643, 667, + 655, 657, 659, 668, 672, 645, 670, 658, 831, 671, + 673, 674, 675, 676, 660, 677, 661, 662, 665, 678, + 663, 679, 664, 680, 681, 682, 683, 684, 667, 685, + 686, 657, 687, 668, 672, 670, 688, 658, 671, 673, + 689, 674, 675, 676, 677, 690, 693, 691, 694, 678, + 679, 696, 680, 692, 681, 682, 683, 684, 685, 697, + 686, 687, 698, 706, 699, 700, 688, 701, 708, 689, + + 704, 704, 709, 526, 526, 690, 693, 691, 694, 526, + 696, 526, 692, 526, 820, 526, 526, 526, 526, 697, + 526, 698, 712, 706, 714, 711, 716, 708, 710, 721, + 526, 713, 709, 717, 411, 412, 705, 705, 705, 705, + 715, 726, 809, 728, 526, 705, 705, 705, 705, 705, + 705, 718, 712, 526, 714, 711, 716, 710, 526, 721, + 713, 526, 720, 717, 526, 719, 724, 526, 526, 526, + 715, 726, 728, 727, 526, 705, 705, 705, 705, 705, + 705, 718, 722, 526, 723, 526, 734, 729, 526, 732, + 784, 725, 720, 731, 735, 719, 724, 736, 733, 737, + + 739, 730, 744, 727, 743, 745, 741, 783, 747, 748, + 749, 738, 722, 750, 723, 734, 742, 729, 752, 732, + 725, 753, 754, 731, 735, 756, 736, 757, 733, 737, + 739, 730, 744, 743, 758, 745, 741, 747, 759, 748, + 749, 738, 760, 750, 761, 742, 762, 764, 752, 763, + 753, 765, 754, 766, 756, 768, 757, 769, 770, 772, + 773, 782, 774, 758, 775, 776, 780, 781, 759, 699, + 700, 760, 701, 761, 411, 412, 762, 764, 763, 700, + 765, 411, 412, 766, 526, 768, 526, 769, 770, 772, + 773, 774, 526, 526, 775, 776, 780, 781, 411, 412, + + 410, 785, 526, 526, 790, 526, 526, 786, 787, 526, + 789, 526, 526, 526, 526, 526, 526, 695, 526, 788, + 794, 526, 810, 803, 526, 796, 771, 791, 798, 526, + 792, 785, 526, 793, 790, 795, 799, 786, 787, 789, + 797, 526, 526, 800, 802, 801, 526, 804, 805, 788, + 794, 807, 810, 803, 526, 796, 791, 808, 798, 792, + 811, 806, 793, 812, 795, 814, 799, 815, 816, 797, + 817, 818, 800, 813, 802, 801, 819, 804, 805, 821, + 822, 807, 823, 824, 825, 826, 828, 808, 827, 811, + 829, 806, 830, 812, 832, 814, 833, 815, 816, 817, + + 818, 834, 852, 813, 841, 819, 842, 849, 526, 821, + 822, 850, 823, 824, 825, 826, 828, 827, 526, 767, + 829, 830, 364, 364, 832, 866, 833, 835, 836, 526, + 834, 852, 837, 526, 841, 838, 842, 849, 839, 843, + 844, 850, 865, 840, 845, 869, 526, 846, 868, 526, + 847, 867, 526, 526, 526, 866, 878, 835, 836, 526, + 526, 879, 837, 526, 871, 838, 877, 880, 839, 843, + 844, 865, 840, 870, 845, 869, 872, 846, 868, 526, + 847, 867, 881, 873, 874, 876, 878, 882, 875, 755, + 883, 879, 884, 887, 871, 885, 877, 880, 886, 888, + + 889, 891, 870, 890, 892, 872, 893, 894, 897, 895, + 899, 881, 873, 874, 876, 898, 905, 882, 875, 883, + 904, 906, 884, 887, 885, 896, 907, 886, 888, 908, + 889, 891, 890, 909, 892, 910, 893, 894, 897, 895, + 899, 900, 526, 914, 898, 901, 905, 911, 902, 904, + 912, 906, 915, 918, 896, 920, 907, 921, 903, 908, + 913, 946, 909, 947, 949, 910, 945, 948, 950, 951, + 953, 900, 914, 952, 954, 901, 955, 911, 902, 956, + 912, 915, 918, 957, 958, 959, 961, 903, 960, 913, + 962, 946, 963, 947, 949, 945, 948, 964, 950, 951, + + 953, 965, 952, 966, 954, 967, 955, 968, 971, 956, + 969, 970, 957, 972, 958, 959, 961, 960, 973, 974, + 962, 975, 963, 976, 751, 977, 964, 978, 979, 980, + 997, 965, 982, 966, 920, 967, 921, 968, 971, 969, + 970, 996, 920, 972, 921, 1005, 981, 973, 998, 974, + 999, 975, 1000, 976, 977, 1001, 978, 979, 1002, 980, + 997, 982, 1003, 1004, 746, 1006, 1007, 740, 1008, 1009, + 996, 1010, 707, 1011, 1005, 981, 1012, 1013, 998, 1014, + 999, 1015, 1000, 1016, 1017, 1001, 1018, 1019, 1002, 1020, + 1021, 1022, 1003, 1004, 1006, 1023, 1007, 1008, 1024, 1009, + + 1025, 1010, 1011, 1026, 1028, 1012, 1013, 1027, 1029, 1014, + 1031, 1015, 1032, 1016, 1017, 1018, 1019, 1033, 1020, 1034, + 1021, 1022, 1035, 1036, 1037, 1023, 1038, 1039, 1024, 1025, + 1040, 1041, 1026, 1028, 1042, 1043, 1027, 1044, 1029, 1045, + 1031, 1046, 1032, 1047, 1048, 1049, 1033, 1050, 1052, 1034, + 1051, 1035, 1036, 1037, 1053, 1060, 1038, 1039, 1054, 1040, + 1041, 1055, 1056, 1057, 1042, 1043, 1058, 1044, 1059, 1045, + 1061, 1046, 1062, 1047, 1048, 1049, 1063, 1050, 1052, 1051, + 1064, 410, 1065, 1066, 1053, 1060, 1067, 1054, 1068, 1069, + 1055, 1056, 1057, 1070, 1071, 1058, 1072, 1059, 1073, 1074, + + 1061, 1075, 1062, 1076, 1077, 1078, 1063, 1079, 1080, 1081, + 1064, 1065, 1082, 1066, 1083, 1084, 1067, 1085, 1068, 1069, + 1086, 1087, 1070, 1088, 1071, 1089, 1072, 1090, 1073, 1074, + 1091, 1075, 1092, 1076, 1077, 1078, 1079, 1080, 1093, 1081, + 1094, 1082, 1095, 1097, 1083, 1084, 1085, 1096, 1098, 1099, + 1086, 1087, 1100, 1088, 1101, 1089, 1102, 1090, 1103, 1104, + 1091, 1105, 1092, 1106, 1107, 1108, 417, 1093, 417, 1094, + 702, 695, 1095, 1097, 669, 666, 1096, 1098, 1099, 651, + 520, 1100, 520, 623, 1101, 410, 1102, 1103, 568, 1104, + 1105, 526, 1106, 421, 1107, 1108, 62, 62, 62, 62, + + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 50, 50, + + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + + 220, 220, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 231, + 231, 392, 231, 231, 379, 458, 342, 231, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 248, 248, 339, 248, 248, 336, + 301, 299, 248, 259, 301, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 262, 296, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 268, 268, 268, + 286, 268, 268, 282, 424, 423, 268, 280, 422, 280, + + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 281, 270, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 421, 285, 419, 285, 285, 295, 418, + 408, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 303, 303, 254, 303, 303, + 404, 250, 233, 303, 308, 229, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 311, 387, 311, 311, 311, 311, 311, 311, 311, + + 311, 311, 311, 311, 311, 386, 311, 311, 312, 385, + 312, 383, 382, 312, 312, 312, 312, 312, 381, 379, + 342, 312, 314, 340, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 318, + 318, 339, 318, 318, 338, 337, 317, 318, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 330, 336, 330, 335, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 331, 330, + 330, 330, 332, 329, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 341, + + 328, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 345, 345, 327, 326, + 345, 345, 378, 322, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 384, + 321, 384, 384, 384, 317, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 231, 231, 313, 231, + 231, 307, 310, 307, 231, 389, 306, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 390, 304, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 398, + + 398, 302, 299, 301, 398, 400, 400, 297, 296, 294, + 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 248, 248, + 293, 248, 248, 292, 289, 288, 248, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 287, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 286, 410, + 410, 259, 282, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 420, 420, + 279, 420, 420, 278, 270, 258, 420, 420, 425, 257, + + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 280, 256, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 281, 250, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 427, + 247, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 427, 428, 233, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 229, 285, 1109, 285, 285, + + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 295, 111, 111, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 303, 303, 1109, 303, 303, 1109, + 1109, 1109, 303, 312, 1109, 312, 1109, 1109, 312, 312, + 312, 312, 312, 1109, 1109, 1109, 312, 314, 1109, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 318, 318, 1109, 318, 318, 1109, + 1109, 1109, 318, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + + 330, 1109, 330, 1109, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 1109, 330, 330, 330, 448, 1109, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 341, 1109, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 345, 345, 1109, 1109, 345, 345, 378, 1109, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 384, 1109, 384, 384, 384, 1109, + 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 389, 1109, 389, 389, 389, 389, 389, 389, 389, + + 389, 389, 389, 389, 389, 389, 389, 389, 390, 1109, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 509, 509, 1109, 509, 509, 1109, 1109, 1109, + 509, 511, 511, 1109, 511, 511, 1109, 1109, 1109, 511, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 1109, 410, 410, 410, 410, + + 410, 410, 410, 410, 410, 410, 410, 410, 1109, 410, + 410, 420, 420, 1109, 420, 420, 1109, 1109, 1109, 420, + 420, 425, 1109, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 427, 1109, + 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 428, 1109, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 438, + 438, 438, 318, 318, 1109, 318, 318, 1109, 1109, 1109, + + 318, 448, 1109, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 608, 1109, + 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, + 608, 608, 608, 608, 608, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 919, 919, 919, 919, 919, 919, 919, 919, + 919, 919, 919, 919, 919, 919, 919, 919, 919, 49, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 + } ; + +static yyconst flex_int16_t yy_chk[4055] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, + 96, 3, 3, 5, 3, 5, 7, 3, 3, 3, + 3, 8, 995, 3, 3, 6, 6, 945, 6, 21, + 3, 944, 6, 3, 9, 126, 9, 11, 11, 96, + + 11, 12, 12, 943, 12, 17, 942, 17, 19, 138, + 19, 19, 27, 20, 27, 20, 20, 17, 22, 3, + 3, 17, 17, 17, 17, 28, 7, 28, 7, 51, + 51, 8, 51, 8, 126, 10, 9, 10, 79, 21, + 21, 10, 21, 9, 9, 87, 9, 87, 3, 3, + 3, 4, 4, 138, 4, 4, 941, 4, 4, 19, + 4, 4, 4, 4, 20, 9, 4, 4, 22, 22, + 95, 22, 9, 4, 73, 73, 4, 10, 23, 37, + 23, 45, 37, 45, 10, 10, 17, 10, 259, 259, + 45, 23, 142, 263, 263, 37, 37, 37, 37, 940, + + 95, 38, 4, 4, 38, 4, 10, 46, 147, 46, + 147, 79, 47, 10, 47, 939, 46, 38, 38, 38, + 38, 142, 47, 55, 55, 149, 55, 149, 23, 23, + 23, 4, 4, 4, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 18, 24, + 18, 24, 168, 29, 58, 29, 74, 74, 938, 30, + 18, 30, 24, 29, 18, 18, 18, 18, 31, 30, + 31, 31, 32, 191, 32, 32, 48, 162, 48, 67, + 67, 168, 67, 246, 162, 246, 48, 75, 74, 75, + 141, 58, 75, 75, 75, 75, 167, 176, 177, 24, + 24, 24, 191, 29, 253, 29, 253, 105, 105, 30, + 105, 30, 116, 116, 116, 116, 294, 74, 294, 31, + 141, 58, 323, 32, 323, 937, 167, 176, 177, 18, + + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 33, 33, 39, 33, 39, 34, + 34, 33, 34, 182, 41, 42, 34, 333, 43, 181, + + 33, 41, 42, 186, 333, 34, 203, 203, 203, 203, + 325, 43, 325, 181, 41, 42, 179, 187, 179, 193, + 314, 43, 179, 182, 41, 42, 43, 33, 194, 41, + 42, 199, 34, 186, 33, 33, 39, 33, 39, 34, + 34, 43, 34, 181, 41, 42, 179, 187, 179, 193, + 43, 179, 936, 41, 42, 43, 33, 194, 41, 42, + 199, 34, 935, 33, 314, 39, 934, 39, 34, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 40, 44, 40, 63, 63, 195, 63, + 122, 122, 347, 63, 183, 76, 76, 44, 76, 125, + 125, 348, 76, 350, 196, 132, 132, 44, 180, 184, + 190, 76, 44, 410, 410, 183, 180, 76, 195, 933, + 190, 347, 122, 197, 183, 198, 235, 44, 876, 184, + + 348, 125, 350, 40, 196, 40, 44, 132, 180, 184, + 190, 44, 236, 188, 183, 244, 180, 188, 189, 76, + 190, 122, 189, 197, 875, 198, 228, 228, 184, 228, + 125, 258, 40, 235, 40, 59, 132, 63, 232, 232, + 192, 232, 236, 188, 260, 244, 76, 188, 189, 278, + 192, 290, 189, 192, 59, 291, 59, 319, 59, 249, + 249, 258, 249, 235, 59, 874, 249, 59, 59, 59, + 192, 59, 59, 59, 260, 260, 401, 59, 401, 278, + 192, 290, 192, 873, 59, 291, 59, 319, 59, 320, + 343, 872, 239, 239, 59, 239, 516, 59, 59, 59, + + 59, 59, 59, 871, 240, 240, 59, 240, 59, 239, + 239, 239, 239, 241, 241, 870, 241, 261, 261, 320, + 343, 240, 240, 240, 240, 242, 242, 352, 242, 516, + 241, 241, 241, 241, 510, 239, 298, 298, 344, 298, + 249, 354, 242, 242, 242, 242, 349, 869, 355, 261, + 269, 269, 356, 269, 241, 346, 352, 269, 305, 305, + 305, 305, 360, 349, 239, 242, 269, 353, 344, 346, + 354, 353, 269, 357, 612, 358, 349, 355, 261, 359, + 361, 356, 363, 359, 241, 346, 362, 868, 365, 367, + 368, 360, 349, 370, 373, 242, 372, 353, 346, 372, + + 403, 353, 403, 357, 269, 358, 405, 612, 405, 359, + 361, 363, 359, 407, 510, 407, 362, 365, 367, 368, + 416, 416, 867, 370, 373, 431, 372, 431, 375, 372, + 376, 269, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 375, 866, 376, + 307, 388, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 369, 374, 371, 865, + 395, 388, 371, 397, 374, 864, 369, 371, 380, 380, + + 380, 380, 396, 421, 421, 421, 421, 399, 433, 863, + 433, 409, 411, 500, 424, 500, 369, 374, 371, 395, + 617, 617, 371, 397, 374, 369, 426, 371, 377, 429, + 377, 396, 862, 377, 377, 391, 391, 399, 391, 377, + 377, 409, 411, 411, 424, 377, 377, 430, 394, 394, + 377, 394, 391, 391, 391, 391, 426, 377, 377, 429, + 377, 412, 412, 377, 377, 394, 394, 394, 394, 377, + 377, 414, 414, 434, 377, 377, 440, 430, 437, 377, + 444, 446, 447, 861, 449, 450, 451, 452, 444, 434, + 453, 437, 503, 412, 503, 440, 860, 412, 505, 505, + + 603, 505, 603, 618, 618, 414, 414, 604, 604, 859, + 604, 446, 447, 449, 450, 858, 451, 452, 444, 434, + 453, 437, 412, 413, 413, 440, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 857, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + + 413, 413, 413, 413, 413, 413, 413, 415, 415, 415, + 415, 435, 436, 439, 441, 454, 415, 415, 415, 415, + 415, 415, 455, 442, 443, 456, 457, 435, 459, 461, + 436, 856, 460, 463, 464, 439, 441, 465, 855, 441, + 466, 415, 415, 442, 443, 454, 415, 415, 415, 415, + 415, 415, 455, 854, 468, 456, 457, 435, 459, 461, + 436, 460, 463, 464, 439, 441, 470, 465, 441, 471, + 466, 850, 467, 442, 443, 445, 472, 473, 474, 475, + 445, 445, 445, 445, 468, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 609, 445, 470, 485, 445, 471, + + 445, 467, 486, 445, 484, 487, 472, 473, 474, 475, + 445, 445, 445, 445, 488, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 483, 445, 485, 445, 489, 445, + 483, 486, 445, 490, 484, 487, 491, 492, 493, 494, + 495, 496, 849, 497, 488, 498, 499, 795, 498, 498, + 696, 506, 696, 794, 483, 507, 793, 508, 489, 512, + 483, 522, 523, 490, 524, 491, 525, 492, 493, 494, + 495, 496, 497, 792, 609, 498, 499, 498, 498, 501, + 501, 506, 501, 504, 504, 507, 504, 508, 777, 512, + 777, 522, 523, 791, 524, 525, 501, 501, 501, 501, + + 504, 504, 504, 504, 513, 513, 790, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 789, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 514, 514, + 529, 527, 532, 788, 518, 518, 528, 531, 779, 530, + + 779, 528, 531, 533, 537, 538, 616, 616, 616, 527, + 530, 527, 534, 787, 529, 535, 533, 537, 786, 532, + 535, 538, 514, 514, 515, 515, 515, 515, 518, 518, + 534, 528, 531, 515, 515, 515, 515, 515, 515, 527, + 530, 527, 536, 529, 541, 539, 533, 537, 532, 785, + 535, 538, 783, 542, 548, 540, 545, 541, 543, 549, + 534, 539, 536, 515, 515, 515, 515, 515, 515, 519, + 519, 519, 519, 540, 544, 542, 545, 543, 519, 519, + 519, 519, 519, 519, 548, 546, 547, 541, 549, 552, + 557, 539, 536, 553, 547, 776, 544, 555, 556, 544, + + 558, 773, 560, 540, 542, 546, 545, 543, 519, 519, + 519, 519, 519, 519, 559, 561, 562, 565, 568, 552, + 557, 566, 553, 567, 547, 544, 555, 556, 544, 572, + 558, 559, 560, 573, 577, 546, 575, 559, 761, 576, + 579, 580, 581, 582, 561, 583, 562, 565, 568, 584, + 566, 585, 567, 586, 587, 589, 590, 591, 572, 592, + 593, 559, 594, 573, 577, 575, 595, 559, 576, 579, + 596, 580, 581, 582, 583, 597, 599, 598, 600, 584, + 585, 605, 586, 598, 587, 589, 590, 591, 592, 606, + 593, 594, 607, 619, 610, 610, 595, 610, 621, 596, + + 614, 614, 622, 624, 626, 597, 599, 598, 600, 627, + 605, 628, 598, 625, 747, 631, 641, 630, 635, 606, + 629, 607, 626, 619, 628, 625, 630, 621, 624, 635, + 639, 627, 622, 631, 614, 614, 615, 615, 615, 615, + 629, 639, 736, 641, 632, 615, 615, 615, 615, 615, + 615, 632, 626, 634, 628, 625, 630, 624, 633, 635, + 627, 637, 634, 631, 636, 633, 637, 638, 640, 645, + 629, 639, 641, 640, 642, 615, 615, 615, 615, 615, + 615, 632, 636, 643, 636, 646, 647, 642, 644, 645, + 707, 638, 634, 644, 648, 633, 637, 650, 646, 651, + + 653, 643, 658, 640, 657, 660, 656, 706, 662, 664, + 665, 651, 636, 666, 636, 647, 656, 642, 668, 645, + 638, 669, 670, 644, 648, 672, 650, 673, 646, 651, + 653, 643, 658, 657, 674, 660, 656, 662, 676, 664, + 665, 651, 677, 666, 678, 656, 679, 682, 668, 681, + 669, 683, 670, 684, 672, 686, 673, 687, 688, 690, + 691, 702, 692, 674, 693, 694, 697, 698, 676, 699, + 699, 677, 699, 678, 704, 704, 679, 682, 681, 701, + 683, 705, 705, 684, 710, 686, 714, 687, 688, 690, + 691, 692, 715, 712, 693, 694, 697, 698, 703, 703, + + 703, 710, 711, 713, 715, 716, 717, 711, 712, 718, + 714, 719, 721, 720, 728, 722, 723, 695, 724, 713, + 719, 725, 737, 728, 727, 721, 689, 716, 723, 729, + 717, 710, 726, 718, 715, 720, 724, 711, 712, 714, + 722, 730, 732, 725, 727, 726, 733, 729, 730, 713, + 719, 732, 737, 728, 731, 721, 716, 733, 723, 717, + 738, 731, 718, 740, 720, 741, 724, 742, 743, 722, + 744, 745, 725, 740, 727, 726, 746, 729, 730, 748, + 749, 732, 750, 751, 752, 753, 755, 733, 754, 738, + 757, 731, 759, 740, 763, 741, 764, 742, 743, 744, + + 745, 765, 781, 740, 768, 746, 770, 774, 797, 748, + 749, 775, 750, 751, 752, 753, 755, 754, 796, 685, + 757, 759, 1150, 1150, 763, 797, 764, 767, 767, 800, + 765, 781, 767, 799, 768, 767, 770, 774, 767, 771, + 771, 775, 796, 767, 771, 800, 798, 771, 799, 801, + 771, 798, 802, 808, 803, 797, 809, 767, 767, 804, + 805, 810, 767, 807, 802, 767, 808, 811, 767, 771, + 771, 796, 767, 801, 771, 800, 803, 771, 799, 806, + 771, 798, 812, 804, 805, 807, 809, 813, 806, 671, + 814, 810, 815, 820, 802, 817, 808, 811, 819, 821, + + 822, 824, 801, 823, 826, 803, 828, 829, 835, 831, + 837, 812, 804, 805, 807, 836, 840, 813, 806, 814, + 839, 841, 815, 820, 817, 831, 842, 819, 821, 843, + 822, 824, 823, 844, 826, 845, 828, 829, 835, 831, + 837, 838, 877, 847, 836, 838, 840, 846, 838, 839, + 846, 841, 848, 851, 831, 852, 842, 852, 838, 843, + 846, 878, 844, 879, 881, 845, 877, 880, 882, 883, + 886, 838, 847, 884, 887, 838, 888, 846, 838, 889, + 846, 848, 851, 891, 892, 893, 895, 838, 894, 846, + 896, 878, 897, 879, 881, 877, 880, 898, 882, 883, + + 886, 900, 884, 901, 887, 902, 888, 903, 907, 889, + 904, 905, 891, 908, 892, 893, 895, 894, 909, 911, + 896, 912, 897, 913, 667, 914, 898, 915, 916, 917, + 947, 900, 918, 901, 919, 902, 919, 903, 907, 904, + 905, 946, 921, 908, 921, 955, 917, 909, 948, 911, + 949, 912, 950, 913, 914, 951, 915, 916, 952, 917, + 947, 918, 953, 954, 661, 956, 957, 655, 958, 959, + 946, 961, 620, 962, 955, 917, 963, 964, 948, 965, + 949, 966, 950, 967, 968, 951, 970, 972, 952, 973, + 974, 975, 953, 954, 956, 976, 957, 958, 978, 959, + + 979, 961, 962, 980, 981, 963, 964, 980, 982, 965, + 996, 966, 997, 967, 968, 970, 972, 998, 973, 999, + 974, 975, 1000, 1001, 1002, 976, 1004, 1005, 978, 979, + 1007, 1008, 980, 981, 1009, 1010, 980, 1011, 982, 1012, + 996, 1013, 997, 1015, 1019, 1020, 998, 1021, 1025, 999, + 1024, 1000, 1001, 1002, 1026, 1034, 1004, 1005, 1027, 1007, + 1008, 1028, 1029, 1031, 1009, 1010, 1032, 1011, 1033, 1012, + 1035, 1013, 1036, 1015, 1019, 1020, 1037, 1021, 1025, 1024, + 1040, 613, 1042, 1044, 1026, 1034, 1047, 1027, 1050, 1051, + 1028, 1029, 1031, 1052, 1053, 1032, 1054, 1033, 1055, 1056, + + 1035, 1057, 1036, 1058, 1059, 1061, 1037, 1062, 1063, 1064, + 1040, 1042, 1066, 1044, 1070, 1071, 1047, 1072, 1050, 1051, + 1073, 1075, 1052, 1076, 1053, 1077, 1054, 1078, 1055, 1056, + 1079, 1057, 1080, 1058, 1059, 1061, 1062, 1063, 1081, 1064, + 1084, 1066, 1086, 1088, 1070, 1071, 1072, 1087, 1089, 1090, + 1073, 1075, 1091, 1076, 1093, 1077, 1096, 1078, 1097, 1100, + 1079, 1101, 1080, 1102, 1105, 1106, 1163, 1081, 1163, 1084, + 611, 601, 1086, 1088, 574, 571, 1087, 1089, 1090, 554, + 1192, 1091, 1192, 526, 1093, 517, 1096, 1097, 469, 1100, + 1101, 438, 1102, 420, 1105, 1106, 1110, 1110, 1110, 1110, + + 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, + 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, + 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116, + + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, + 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, + 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, + 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121, + 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, + + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, + 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, + 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, + 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, + + 1127, 1127, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, + 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, + 1129, 393, 1129, 1129, 378, 351, 341, 1129, 1130, 1130, + 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, + 1130, 1130, 1130, 1130, 1131, 1131, 339, 1131, 1131, 334, + 301, 300, 1131, 1132, 299, 1132, 1132, 1132, 1132, 1132, + 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, + 1133, 296, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, + 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134, + 285, 1134, 1134, 282, 274, 273, 1134, 1135, 272, 1135, + + 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, + 1135, 1135, 1135, 1135, 1136, 271, 1136, 1136, 1136, 1136, + 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, + 1136, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, + 1137, 1137, 1137, 268, 1137, 266, 1137, 1137, 1138, 265, + 256, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1139, 1139, 255, 1139, 1139, + 252, 251, 234, 1139, 1140, 230, 1140, 1140, 1140, 1140, + 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, + 1140, 1141, 227, 1141, 1141, 1141, 1141, 1141, 1141, 1141, + + 1141, 1141, 1141, 1141, 1141, 226, 1141, 1141, 1142, 222, + 1142, 208, 207, 1142, 1142, 1142, 1142, 1142, 206, 202, + 175, 1142, 1143, 174, 1143, 1143, 1143, 1143, 1143, 1143, + 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, + 1144, 172, 1144, 1144, 170, 169, 166, 1144, 1145, 1145, + 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, + 1145, 1145, 1145, 1145, 1145, 1146, 165, 1146, 164, 1146, + 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 158, 1146, + 1146, 1146, 1147, 155, 1147, 1147, 1147, 1147, 1147, 1147, + 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148, + + 154, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, + 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 153, 152, + 1149, 1149, 1151, 144, 1151, 1151, 1151, 1151, 1151, 1151, + 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, + 143, 1152, 1152, 1152, 139, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 136, 1153, + 1153, 131, 129, 124, 1153, 1154, 120, 1154, 1154, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1155, 114, 1155, 1155, 1155, 1155, 1155, 1155, + 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1156, + + 1156, 109, 107, 106, 1156, 1157, 1157, 103, 101, 99, + 1157, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, + 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1159, 1159, + 98, 1159, 1159, 97, 94, 91, 1159, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1161, 90, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 88, 1161, + 1161, 1162, 86, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, + 84, 1164, 1164, 80, 78, 72, 1164, 1164, 1165, 71, + + 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 1165, 1165, 1165, 1165, 1165, 1166, 68, 1166, 1166, 1166, + 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, + 1166, 1166, 1167, 65, 1167, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168, + 60, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1169, 57, 1169, 1169, + 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, + 1169, 1169, 1169, 1170, 1170, 1170, 1170, 1170, 1170, 1170, + 1170, 1170, 1170, 1170, 1170, 53, 1170, 49, 1170, 1170, + + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1172, 16, 15, + 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, + 1172, 1172, 1172, 1172, 1173, 1173, 0, 1173, 1173, 0, + 0, 0, 1173, 1174, 0, 1174, 0, 0, 1174, 1174, + 1174, 1174, 1174, 0, 0, 0, 1174, 1175, 0, 1175, + 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, + 1175, 1175, 1175, 1175, 1176, 1176, 0, 1176, 1176, 0, + 0, 0, 1176, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1178, 0, 1178, 0, 1178, 1178, 1178, 1178, 1178, 1178, + 1178, 1178, 1178, 0, 1178, 1178, 1178, 1179, 0, 1179, + 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, + 1179, 1179, 1179, 1179, 1180, 0, 1180, 1180, 1180, 1180, + 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, + 1180, 1181, 1181, 0, 0, 1181, 1181, 1182, 0, 1182, + 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, + 1182, 1182, 1182, 1182, 1183, 0, 1183, 1183, 1183, 0, + 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, + 1183, 1184, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, + + 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1185, 0, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1186, + 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, + 1186, 1186, 1187, 1187, 0, 1187, 1187, 0, 0, 0, + 1187, 1188, 1188, 0, 1188, 1188, 0, 0, 0, 1188, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1191, 0, 1191, 1191, 1191, 1191, + + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 0, 1191, + 1191, 1193, 1193, 0, 1193, 1193, 0, 0, 0, 1193, + 1193, 1194, 0, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 0, + 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + 1195, 1195, 1195, 1195, 1195, 1196, 0, 1196, 1196, 1196, + 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, + 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, + 1198, 1198, 1199, 1199, 0, 1199, 1199, 0, 0, 0, + + 1199, 1200, 0, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0, + 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, + 1201, 1201, 1201, 1201, 1201, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, + 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +static int yy_more_flag = 0; +static int yy_more_len = 0; +#define yymore() ((yy_more_flag) = 1) +#define YY_MORE_ADJ (yy_more_len) +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "stage1scan.l" +/* scan.l - scanner for flex input -*-C-*- */ +#line 4 "stage1scan.l" +/* Copyright (c) 1990 The Regents of the University of California. */ +/* All rights reserved. */ + +/* This code is derived from software contributed to Berkeley by */ +/* Vern Paxson. */ + +/* The United States Government has rights in this work pursuant */ +/* to contract no. DE-AC03-76SF00098 between the United States */ +/* Department of Energy and the University of California. */ + +/* This file is part of flex. */ + +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ + +/* 1. Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* 2. Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ + +/* Neither the name of the University nor the names of its contributors */ +/* may be used to endorse or promote products derived from this software */ +/* without specific prior written permission. */ + +/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ +/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE. */ + +#include "flexdef.h" +#include "parse.h" +extern bool tablesverify, tablesext; +extern int trlcontxt; /* Set in parse.y for each rule. */ +extern const char *escaped_qstart, *escaped_qend; + +#define ACTION_ECHO add_action( yytext ) +#define ACTION_IFDEF(def, should_define) \ + { \ + if ( should_define ) \ + action_define( def, 1 ); \ + } + +#define ACTION_ECHO_QSTART add_action (escaped_qstart) +#define ACTION_ECHO_QEND add_action (escaped_qend) + +#define ACTION_M4_IFDEF(def, should_define) \ + do{ \ + if ( should_define ) \ + buf_m4_define( &m4defs_buf, def, NULL);\ + else \ + buf_m4_undefine( &m4defs_buf, def);\ + } while(0) + +#define MARK_END_OF_PROLOG mark_prolog(); + +#define YY_DECL \ + int flexscan(void) + +#define RETURNCHAR \ + yylval = (unsigned char) yytext[0]; \ + return CHAR; + +#define RETURNNAME \ + if(yyleng < MAXLINE) \ + { \ + strcpy( nmstr, yytext ); \ + } \ + else \ + { \ + synerr(_("Input line too long\n")); \ + FLEX_EXIT(EXIT_FAILURE); \ + } \ + return NAME; + +#define PUT_BACK_STRING(str, start) \ + for ( i = strlen( str ) - 1; i >= start; --i ) \ + unput((str)[i]) + +#define CHECK_REJECT(str) \ + if ( all_upper( str ) ) \ + reject = true; + +#define CHECK_YYMORE(str) \ + if ( all_lower( str ) ) \ + yymore_used = true; + +#define YY_USER_INIT \ + if ( getenv("POSIXLY_CORRECT") ) \ + posix_compat = true; + + + + + + + + +#line 1838 "stage1scan.c" + +#define INITIAL 0 +#define SECT2 1 +#define SECT2PROLOG 2 +#define SECT3 3 +#define CODEBLOCK 4 +#define PICKUPDEF 5 +#define SC 6 +#define CARETISBOL 7 +#define NUM 8 +#define QUOTE 9 +#define FIRSTCCL 10 +#define CCL 11 +#define ACTION 12 +#define RECOVER 13 +#define COMMENT 14 +#define ACTION_STRING 15 +#define PERCENT_BRACE_ACTION 16 +#define OPTION 17 +#define LINEDIR 18 +#define CODEBLOCK_MATCH_BRACE 19 +#define GROUP_WITH_PARAMS 20 +#define GROUP_MINUS_PARAMS 21 +#define EXTENDED_COMMENT 22 +#define COMMENT_DISCARD 23 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * _in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * _out_str ); + + int yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int _line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + +#ifndef YY_NO_UNPUT + + static void yyunput (int c,char *buf_ptr ); + +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + + static int yy_start_stack_ptr = 0; + static int yy_start_stack_depth = 0; + static int *yy_start_stack = NULL; + + static void yy_push_state (int _new_state ); + + static void yy_pop_state (void ); + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK /*LINTED*/break; +#endif + +#define YY_RULE_SETUP \ + if ( yyleng > 0 ) \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ + (yytext[yyleng - 1] == '\n'); \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + { +#line 131 "stage1scan.l" + + static int bracelevel, didadef, indented_code; + static int doing_rule_action = false; + static int option_sense; + + int doing_codeblock = false; + int i, brace_depth=0, brace_start_line=0; + char nmdef[MAXLINE]; + + +#line 2101 "stage1scan.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + { + (yy_more_len) = 0; + if ( (yy_more_flag) ) + { + (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); + (yy_more_flag) = 0; + } + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); + yy_current_state += YY_AT_BOL(); +yy_match: + do + { + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 3970 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 142 "stage1scan.l" +indented_code = true; BEGIN(CODEBLOCK); + YY_BREAK +case 2: +YY_RULE_SETUP +#line 143 "stage1scan.l" +ACTION_ECHO; yy_push_state( COMMENT ); + YY_BREAK +case 3: +YY_RULE_SETUP +#line 144 "stage1scan.l" +yy_push_state( LINEDIR ); + YY_BREAK +case 4: +YY_RULE_SETUP +#line 145 "stage1scan.l" +return SCDECL; + YY_BREAK +case 5: +YY_RULE_SETUP +#line 146 "stage1scan.l" +return XSCDECL; + YY_BREAK +case 6: +/* rule 6 can match eol */ +YY_RULE_SETUP +#line 147 "stage1scan.l" +{ + ++linenum; + line_directive_out(NULL, 1); + indented_code = false; + BEGIN(CODEBLOCK); + } + YY_BREAK +case 7: +/* rule 7 can match eol */ +YY_RULE_SETUP +#line 153 "stage1scan.l" +{ + brace_start_line = linenum; + ++linenum; + buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum); + brace_depth = 1; + yy_push_state(CODEBLOCK_MATCH_BRACE); + } + YY_BREAK +case 8: +YY_RULE_SETUP +#line 161 "stage1scan.l" +synerr( _("malformed '%top' directive") ); + YY_BREAK +case 9: +YY_RULE_SETUP +#line 163 "stage1scan.l" +/* discard */ + YY_BREAK +case 10: +YY_RULE_SETUP +#line 165 "stage1scan.l" +{ + sectnum = 2; + bracelevel = 0; + mark_defs1(); + line_directive_out(NULL, 1); + BEGIN(SECT2PROLOG); + return SECTEND; + } + YY_BREAK +case 11: +/* rule 11 can match eol */ +YY_RULE_SETUP +#line 174 "stage1scan.l" +yytext_is_array = false; ++linenum; + YY_BREAK +case 12: +/* rule 12 can match eol */ +YY_RULE_SETUP +#line 175 "stage1scan.l" +yytext_is_array = true; ++linenum; + YY_BREAK +case 13: +YY_RULE_SETUP +#line 177 "stage1scan.l" +BEGIN(OPTION); return TOK_OPTION; + YY_BREAK +case 14: +/* rule 14 can match eol */ +YY_RULE_SETUP +#line 179 "stage1scan.l" +++linenum; /* ignore */ + YY_BREAK +case 15: +/* rule 15 can match eol */ +YY_RULE_SETUP +#line 180 "stage1scan.l" +++linenum; /* ignore */ + YY_BREAK +/* xgettext: no-c-format */ +case 16: +/* rule 16 can match eol */ +YY_RULE_SETUP +#line 183 "stage1scan.l" +synerr( _( "unrecognized '%' directive" ) ); + YY_BREAK +case 17: +YY_RULE_SETUP +#line 185 "stage1scan.l" +{ + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Definition name too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + didadef = false; + BEGIN(PICKUPDEF); + } + YY_BREAK +case 18: +YY_RULE_SETUP +#line 200 "stage1scan.l" +RETURNNAME; + YY_BREAK +case 19: +/* rule 19 can match eol */ +YY_RULE_SETUP +#line 201 "stage1scan.l" +++linenum; /* allows blank lines in section 1 */ + YY_BREAK +case 20: +/* rule 20 can match eol */ +YY_RULE_SETUP +#line 202 "stage1scan.l" +ACTION_ECHO; ++linenum; /* maybe end of comment line */ + YY_BREAK + + +case 21: +YY_RULE_SETUP +#line 207 "stage1scan.l" +ACTION_ECHO; yy_pop_state(); + YY_BREAK +case 22: +YY_RULE_SETUP +#line 208 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 23: +YY_RULE_SETUP +#line 209 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 24: +YY_RULE_SETUP +#line 210 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 25: +YY_RULE_SETUP +#line 211 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 26: +/* rule 26 can match eol */ +YY_RULE_SETUP +#line 212 "stage1scan.l" +++linenum; ACTION_ECHO; + YY_BREAK + + +/* This is the same as COMMENT, but is discarded rather than output. */ +case 27: +YY_RULE_SETUP +#line 217 "stage1scan.l" +yy_pop_state(); + YY_BREAK +case 28: +YY_RULE_SETUP +#line 218 "stage1scan.l" +; + YY_BREAK +case 29: +YY_RULE_SETUP +#line 219 "stage1scan.l" +; + YY_BREAK +case 30: +/* rule 30 can match eol */ +YY_RULE_SETUP +#line 220 "stage1scan.l" +++linenum; + YY_BREAK + + +case 31: +YY_RULE_SETUP +#line 224 "stage1scan.l" +yy_pop_state(); + YY_BREAK +case 32: +YY_RULE_SETUP +#line 225 "stage1scan.l" +; + YY_BREAK +case 33: +/* rule 33 can match eol */ +YY_RULE_SETUP +#line 226 "stage1scan.l" +++linenum; + YY_BREAK + + +case 34: +/* rule 34 can match eol */ +YY_RULE_SETUP +#line 230 "stage1scan.l" +yy_pop_state(); + YY_BREAK +case 35: +YY_RULE_SETUP +#line 231 "stage1scan.l" +linenum = myctoi( yytext ); + YY_BREAK +case 36: +YY_RULE_SETUP +#line 233 "stage1scan.l" +{ + free(infilename); + infilename = xstrdup(yytext + 1); + infilename[strlen( infilename ) - 1] = '\0'; + } + YY_BREAK +case 37: +YY_RULE_SETUP +#line 238 "stage1scan.l" +/* ignore spurious characters */ + YY_BREAK + + +case 38: +/* rule 38 can match eol */ +YY_RULE_SETUP +#line 242 "stage1scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK +case 39: +YY_RULE_SETUP +#line 244 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 40: +YY_RULE_SETUP +#line 245 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 41: +YY_RULE_SETUP +#line 246 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 42: +/* rule 42 can match eol */ +YY_RULE_SETUP +#line 248 "stage1scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( indented_code ) + BEGIN(INITIAL); + } + YY_BREAK + + +case 43: +YY_RULE_SETUP +#line 257 "stage1scan.l" +{ + if( --brace_depth == 0){ + /* TODO: Matched. */ + yy_pop_state(); + }else + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 44: +YY_RULE_SETUP +#line 265 "stage1scan.l" +{ + brace_depth++; + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 45: +/* rule 45 can match eol */ +YY_RULE_SETUP +#line 270 "stage1scan.l" +{ + ++linenum; + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 46: +YY_RULE_SETUP +#line 275 "stage1scan.l" +buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); + YY_BREAK +case 47: +YY_RULE_SETUP +#line 276 "stage1scan.l" +buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); + YY_BREAK +case 48: +YY_RULE_SETUP +#line 278 "stage1scan.l" +{ + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE): +#line 282 "stage1scan.l" +{ + linenum = brace_start_line; + synerr(_("Unmatched '{'")); + yyterminate(); + } + YY_BREAK + + +case 49: +YY_RULE_SETUP +#line 291 "stage1scan.l" +/* separates name and definition */ + YY_BREAK +case 50: +YY_RULE_SETUP +#line 293 "stage1scan.l" +{ + if(yyleng < MAXLINE) + { + strcpy( nmdef, yytext ); + } + else + { + format_synerr( _("Definition value for {%s} too long\n"), nmstr); + FLEX_EXIT(EXIT_FAILURE); + } + /* Skip trailing whitespace. */ + for ( i = strlen( nmdef ) - 1; + i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); + --i ) + ; + + nmdef[i + 1] = '\0'; + + ndinstal( nmstr, nmdef ); + didadef = true; + } + YY_BREAK +case 51: +/* rule 51 can match eol */ +YY_RULE_SETUP +#line 315 "stage1scan.l" +{ + if ( ! didadef ) + synerr( _( "incomplete name definition" ) ); + BEGIN(INITIAL); + ++linenum; + } + YY_BREAK + + +case 52: +/* rule 52 can match eol */ +YY_RULE_SETUP +#line 325 "stage1scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK +case 53: +YY_RULE_SETUP +#line 326 "stage1scan.l" +option_sense = true; + YY_BREAK +case 54: +YY_RULE_SETUP +#line 328 "stage1scan.l" +return '='; + YY_BREAK +case 55: +YY_RULE_SETUP +#line 330 "stage1scan.l" +option_sense = ! option_sense; + YY_BREAK +case 56: +YY_RULE_SETUP +#line 332 "stage1scan.l" +csize = option_sense ? 128 : 256; + YY_BREAK +case 57: +YY_RULE_SETUP +#line 333 "stage1scan.l" +csize = option_sense ? 256 : 128; + YY_BREAK +case 58: +YY_RULE_SETUP +#line 335 "stage1scan.l" +long_align = option_sense; + YY_BREAK +case 59: +YY_RULE_SETUP +#line 336 "stage1scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense ); + interactive = option_sense; + } + YY_BREAK +case 60: +YY_RULE_SETUP +#line 340 "stage1scan.l" +yytext_is_array = option_sense; + YY_BREAK +case 61: +YY_RULE_SETUP +#line 341 "stage1scan.l" +ansi_func_defs = option_sense; + YY_BREAK +case 62: +YY_RULE_SETUP +#line 342 "stage1scan.l" +ansi_func_protos = option_sense; + YY_BREAK +case 63: +YY_RULE_SETUP +#line 343 "stage1scan.l" +backing_up_report = option_sense; + YY_BREAK +case 64: +YY_RULE_SETUP +#line 344 "stage1scan.l" +interactive = ! option_sense; + YY_BREAK +case 65: +YY_RULE_SETUP +#line 345 "stage1scan.l" +bison_bridge_lval = option_sense; + YY_BREAK +case 66: +YY_RULE_SETUP +#line 346 "stage1scan.l" +{ if((bison_bridge_lloc = option_sense)) + bison_bridge_lval = true; + } + YY_BREAK +case 67: +YY_RULE_SETUP +#line 349 "stage1scan.l" +C_plus_plus = option_sense; + YY_BREAK +case 68: +YY_RULE_SETUP +#line 350 "stage1scan.l" +sf_set_case_ins(!option_sense); + YY_BREAK +case 69: +YY_RULE_SETUP +#line 351 "stage1scan.l" +sf_set_case_ins(option_sense); + YY_BREAK +case 70: +YY_RULE_SETUP +#line 352 "stage1scan.l" +ddebug = option_sense; + YY_BREAK +case 71: +YY_RULE_SETUP +#line 353 "stage1scan.l" +spprdflt = ! option_sense; + YY_BREAK +case 72: +YY_RULE_SETUP +#line 354 "stage1scan.l" +useecs = option_sense; + YY_BREAK +case 73: +YY_RULE_SETUP +#line 355 "stage1scan.l" +{ + useecs = usemecs = false; + use_read = fullspd = true; + } + YY_BREAK +case 74: +YY_RULE_SETUP +#line 359 "stage1scan.l" +{ + useecs = usemecs = false; + use_read = fulltbl = true; + } + YY_BREAK +case 75: +YY_RULE_SETUP +#line 363 "stage1scan.l" +ACTION_IFDEF("YY_NO_INPUT", ! option_sense); + YY_BREAK +case 76: +YY_RULE_SETUP +#line 364 "stage1scan.l" +interactive = option_sense; + YY_BREAK +case 77: +YY_RULE_SETUP +#line 365 "stage1scan.l" +lex_compat = option_sense; + YY_BREAK +case 78: +YY_RULE_SETUP +#line 366 "stage1scan.l" +posix_compat = option_sense; + YY_BREAK +case 79: +YY_RULE_SETUP +#line 367 "stage1scan.l" +gen_line_dirs = option_sense; + YY_BREAK +case 80: +YY_RULE_SETUP +#line 368 "stage1scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense); + /* Override yywrap */ + if( option_sense == true ) + do_yywrap = false; + } + YY_BREAK +case 81: +YY_RULE_SETUP +#line 374 "stage1scan.l" +usemecs = option_sense; + YY_BREAK +case 82: +YY_RULE_SETUP +#line 375 "stage1scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense ); + interactive = !option_sense; + } + YY_BREAK +case 83: +YY_RULE_SETUP +#line 379 "stage1scan.l" +performance_report += option_sense ? 1 : -1; + YY_BREAK +case 84: +YY_RULE_SETUP +#line 380 "stage1scan.l" +yytext_is_array = ! option_sense; + YY_BREAK +case 85: +YY_RULE_SETUP +#line 381 "stage1scan.l" +use_read = option_sense; + YY_BREAK +case 86: +YY_RULE_SETUP +#line 382 "stage1scan.l" +reentrant = option_sense; + YY_BREAK +case 87: +YY_RULE_SETUP +#line 383 "stage1scan.l" +reject_really_used = option_sense; + YY_BREAK +case 88: +YY_RULE_SETUP +#line 384 "stage1scan.l" +ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); + YY_BREAK +case 89: +YY_RULE_SETUP +#line 385 "stage1scan.l" +do_stdinit = option_sense; + YY_BREAK +case 90: +YY_RULE_SETUP +#line 386 "stage1scan.l" +use_stdout = option_sense; + YY_BREAK +case 91: +YY_RULE_SETUP +#line 387 "stage1scan.l" +ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); + YY_BREAK +case 92: +YY_RULE_SETUP +#line 388 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); + YY_BREAK +case 93: +YY_RULE_SETUP +#line 389 "stage1scan.l" +printstats = option_sense; + YY_BREAK +case 94: +YY_RULE_SETUP +#line 390 "stage1scan.l" +nowarn = ! option_sense; + YY_BREAK +case 95: +YY_RULE_SETUP +#line 391 "stage1scan.l" +do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); + YY_BREAK +case 96: +YY_RULE_SETUP +#line 392 "stage1scan.l" +yymore_really_used = option_sense; + YY_BREAK +case 97: +YY_RULE_SETUP +#line 393 "stage1scan.l" +do_yywrap = option_sense; + YY_BREAK +case 98: +YY_RULE_SETUP +#line 395 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); + YY_BREAK +case 99: +YY_RULE_SETUP +#line 396 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); + YY_BREAK +case 100: +YY_RULE_SETUP +#line 397 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); + YY_BREAK +case 101: +YY_RULE_SETUP +#line 399 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); + YY_BREAK +case 102: +YY_RULE_SETUP +#line 400 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); + YY_BREAK +case 103: +YY_RULE_SETUP +#line 401 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); + YY_BREAK +case 104: +YY_RULE_SETUP +#line 403 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); + YY_BREAK +case 105: +YY_RULE_SETUP +#line 404 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); + YY_BREAK +case 106: +YY_RULE_SETUP +#line 405 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); + YY_BREAK +case 107: +YY_RULE_SETUP +#line 407 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); + YY_BREAK +case 108: +YY_RULE_SETUP +#line 408 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); + YY_BREAK +case 109: +YY_RULE_SETUP +#line 409 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); + YY_BREAK +case 110: +YY_RULE_SETUP +#line 410 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); + YY_BREAK +case 111: +YY_RULE_SETUP +#line 411 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); + YY_BREAK +case 112: +YY_RULE_SETUP +#line 412 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); + YY_BREAK +case 113: +YY_RULE_SETUP +#line 413 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); + YY_BREAK +case 114: +YY_RULE_SETUP +#line 414 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); + YY_BREAK +case 115: +YY_RULE_SETUP +#line 415 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); + YY_BREAK +case 116: +YY_RULE_SETUP +#line 416 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); + YY_BREAK +case 117: +YY_RULE_SETUP +#line 417 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); + YY_BREAK +case 118: +YY_RULE_SETUP +#line 418 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); + YY_BREAK +case 119: +YY_RULE_SETUP +#line 419 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); + YY_BREAK +case 120: +YY_RULE_SETUP +#line 420 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); + YY_BREAK +case 121: +YY_RULE_SETUP +#line 421 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); + YY_BREAK +case 122: +YY_RULE_SETUP +#line 422 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); + YY_BREAK +case 123: +YY_RULE_SETUP +#line 424 "stage1scan.l" +return TOK_EXTRA_TYPE; + YY_BREAK +case 124: +YY_RULE_SETUP +#line 425 "stage1scan.l" +return TOK_OUTFILE; + YY_BREAK +case 125: +YY_RULE_SETUP +#line 426 "stage1scan.l" +return TOK_PREFIX; + YY_BREAK +case 126: +YY_RULE_SETUP +#line 427 "stage1scan.l" +return TOK_YYCLASS; + YY_BREAK +case 127: +YY_RULE_SETUP +#line 428 "stage1scan.l" +return TOK_HEADER_FILE; + YY_BREAK +case 128: +YY_RULE_SETUP +#line 429 "stage1scan.l" +return TOK_TABLES_FILE; + YY_BREAK +case 129: +YY_RULE_SETUP +#line 430 "stage1scan.l" +{ + tablesverify = option_sense; + if(!tablesext && option_sense) + tablesext = true; + } + YY_BREAK +case 130: +YY_RULE_SETUP +#line 437 "stage1scan.l" +{ + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Option line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + nmstr[strlen( nmstr ) - 1] = '\0'; + return NAME; + } + YY_BREAK +case 131: +YY_RULE_SETUP +#line 451 "stage1scan.l" +{ + format_synerr( _( "unrecognized %%option: %s" ), + yytext ); + BEGIN(RECOVER); + } + YY_BREAK + +case 132: +/* rule 132 can match eol */ +YY_RULE_SETUP +#line 458 "stage1scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK + +case 133: +YY_RULE_SETUP +#line 462 "stage1scan.l" +++bracelevel; yyless( 2 ); /* eat only %{ */ + YY_BREAK +case 134: +YY_RULE_SETUP +#line 463 "stage1scan.l" +--bracelevel; yyless( 2 ); /* eat only %} */ + YY_BREAK +case 135: +YY_RULE_SETUP +#line 465 "stage1scan.l" +ACTION_ECHO; /* indented code in prolog */ + YY_BREAK +case 136: +YY_RULE_SETUP +#line 467 "stage1scan.l" +{ /* non-indented code */ + if ( bracelevel <= 0 ) + { /* not in %{ ... %} */ + yyless( 0 ); /* put it all back */ + yy_set_bol( 1 ); + mark_prolog(); + BEGIN(SECT2); + } + else + ACTION_ECHO; + } + YY_BREAK +case 137: +YY_RULE_SETUP +#line 479 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 138: +/* rule 138 can match eol */ +YY_RULE_SETUP +#line 480 "stage1scan.l" +++linenum; ACTION_ECHO; + YY_BREAK +case YY_STATE_EOF(SECT2PROLOG): +#line 482 "stage1scan.l" +{ + mark_prolog(); + sectnum = 0; + yyterminate(); /* to stop the parser */ + } + YY_BREAK + + +case 139: +/* rule 139 can match eol */ +YY_RULE_SETUP +#line 490 "stage1scan.l" +++linenum; /* allow blank lines in section 2 */ + YY_BREAK +case 140: +YY_RULE_SETUP +#line 492 "stage1scan.l" +{ + indented_code = false; + doing_codeblock = true; + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + } + YY_BREAK +case 141: +YY_RULE_SETUP +#line 499 "stage1scan.l" +{ + /* Allow "<" to appear in (?x) patterns. */ + if (!sf_skip_ws()) + BEGIN(SC); + return '<'; + } + YY_BREAK +case 142: +YY_RULE_SETUP +#line 505 "stage1scan.l" +return '^'; + YY_BREAK +case 143: +YY_RULE_SETUP +#line 506 "stage1scan.l" +BEGIN(QUOTE); return '"'; + YY_BREAK +case 144: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 507 "stage1scan.l" +{ + BEGIN(NUM); + if ( lex_compat || posix_compat ) + return BEGIN_REPEAT_POSIX; + else + return BEGIN_REPEAT_FLEX; + } + YY_BREAK +case 145: +/* rule 145 can match eol */ +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +YY_LINENO_REWIND_TO(yy_bp + 1); +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 514 "stage1scan.l" +return '$'; + YY_BREAK +case 146: +YY_RULE_SETUP +#line 516 "stage1scan.l" +{ + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + YY_BREAK +case 147: +/* rule 147 can match eol */ +YY_RULE_SETUP +#line 527 "stage1scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + /* Push back everything starting at the "|" */ + int amt = (int) (strchr (yytext, '|') - yytext); + yyless(amt); + } + else { + continued_action = true; + ++linenum; + return '\n'; + } + } + YY_BREAK +case 148: +YY_RULE_SETUP +#line 541 "stage1scan.l" +{ + + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + yy_push_state(COMMENT_DISCARD); + } + else{ + yyless( yyleng - 2 ); /* put back '/', '*' */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + } + } + YY_BREAK +case 149: +YY_RULE_SETUP +#line 555 "stage1scan.l" +/* allow indented rules */ ; + YY_BREAK +case 150: +YY_RULE_SETUP +#line 557 "stage1scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + } + else{ + /* This rule is separate from the one below because + * otherwise we get variable trailing context, so + * we can't build the scanner using -{f,F}. + */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + YY_BREAK +case 151: +/* rule 151 can match eol */ +YY_RULE_SETUP +#line 579 "stage1scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + ++linenum; + } + else{ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + unput( '\n' ); /* so <ACTION> sees it */ + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + YY_BREAK +case 152: +#line 600 "stage1scan.l" +case 153: +YY_RULE_SETUP +#line 600 "stage1scan.l" +return EOF_OP; + YY_BREAK +case 154: +YY_RULE_SETUP +#line 602 "stage1scan.l" +{ + sectnum = 3; + BEGIN(SECT3); + outn("/* Begin user sect3 */"); + yyterminate(); /* to stop the parser */ + } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 609 "stage1scan.l" +{ + int cclval; + + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + /* Check to see if we've already encountered this + * ccl. + */ + if (0 /* <--- This "0" effectively disables the reuse of a + * character class (purely based on its source text). + * The reason it was disabled is so yacc/bison can parse + * ccl operations, such as ccl difference and union. + */ + && (cclval = ccllookup( nmstr )) != 0 ) + { + if ( input() != ']' ) + synerr( _( "bad character class" ) ); + + yylval = cclval; + ++cclreuse; + return PREVCCL; + } + else + { + /* We fudge a bit. We know that this ccl will + * soon be numbered as lastccl + 1 by cclinit. + */ + cclinstal( nmstr, lastccl + 1 ); + + /* Push back everything but the leading bracket + * so the ccl can be rescanned. + */ + yyless( 1 ); + + BEGIN(FIRSTCCL); + return '['; + } + } + YY_BREAK +case 156: +YY_RULE_SETUP +#line 655 "stage1scan.l" +return CCL_OP_DIFF; + YY_BREAK +case 157: +YY_RULE_SETUP +#line 656 "stage1scan.l" +return CCL_OP_UNION; + YY_BREAK +/* Check for :space: at the end of the rule so we don't + * wrap the expanded regex in '(' ')' -- breaking trailing + * context. + */ +case 158: +/* rule 158 can match eol */ +YY_RULE_SETUP +#line 663 "stage1scan.l" +{ + char *nmdefptr; + int end_is_ws, end_ch; + + end_ch = yytext[yyleng-1]; + end_is_ws = end_ch != '}' ? 1 : 0; + + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } +nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ + + if ( (nmdefptr = ndlookup( nmstr )) == 0 ) + format_synerr( + _( "undefined definition {%s}" ), + nmstr ); + + else + { /* push back name surrounded by ()'s */ + int len = strlen( nmdefptr ); + if (end_is_ws) + unput(end_ch); + + if ( lex_compat || nmdefptr[0] == '^' || + (len > 0 && nmdefptr[len - 1] == '$') + || (end_is_ws && trlcontxt && !sf_skip_ws())) + { /* don't use ()'s after all */ + PUT_BACK_STRING(nmdefptr, 0); + + if ( nmdefptr[0] == '^' ) + BEGIN(CARETISBOL); + } + + else + { + unput(')'); + PUT_BACK_STRING(nmdefptr, 0); + unput('('); + } + } + } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 711 "stage1scan.l" +{ + if (sf_skip_ws()) + yy_push_state(COMMENT_DISCARD); + else{ + /* Push back the "*" and return "/" as usual. */ + yyless(1); + return '/'; + } + } + YY_BREAK +case 160: +YY_RULE_SETUP +#line 721 "stage1scan.l" +{ + if (lex_compat || posix_compat){ + /* Push back the "?#" and treat it like a normal parens. */ + yyless(1); + sf_push(); + return '('; + } + else + yy_push_state(EXTENDED_COMMENT); + } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 731 "stage1scan.l" +{ + sf_push(); + if (lex_compat || posix_compat) + /* Push back the "?" and treat it like a normal parens. */ + yyless(1); + else + BEGIN(GROUP_WITH_PARAMS); + return '('; + } + YY_BREAK +case 162: +YY_RULE_SETUP +#line 740 "stage1scan.l" +sf_push(); return '('; + YY_BREAK +case 163: +YY_RULE_SETUP +#line 741 "stage1scan.l" +{ + if (_sf_top_ix > 0) { + sf_pop(); + return ')'; + } else + synerr(_("unbalanced parenthesis")); + } + YY_BREAK +case 164: +YY_RULE_SETUP +#line 749 "stage1scan.l" +return (unsigned char) yytext[0]; + YY_BREAK +case 165: +YY_RULE_SETUP +#line 750 "stage1scan.l" +RETURNCHAR; + YY_BREAK + + +case 166: +/* rule 166 can match eol */ +YY_RULE_SETUP +#line 755 "stage1scan.l" +++linenum; /* Allow blank lines & continuations */ + YY_BREAK +case 167: +YY_RULE_SETUP +#line 756 "stage1scan.l" +return (unsigned char) yytext[0]; + YY_BREAK +case 168: +YY_RULE_SETUP +#line 757 "stage1scan.l" +BEGIN(SECT2); return '>'; + YY_BREAK +case 169: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 758 "stage1scan.l" +BEGIN(CARETISBOL); return '>'; + YY_BREAK +case 170: +YY_RULE_SETUP +#line 759 "stage1scan.l" +RETURNNAME; + YY_BREAK +case 171: +YY_RULE_SETUP +#line 760 "stage1scan.l" +{ + format_synerr( _( "bad <start condition>: %s" ), + yytext ); + } + YY_BREAK + +case 172: +YY_RULE_SETUP +#line 766 "stage1scan.l" +BEGIN(SECT2); return '^'; + YY_BREAK + +case 173: +YY_RULE_SETUP +#line 770 "stage1scan.l" +RETURNCHAR; + YY_BREAK +case 174: +YY_RULE_SETUP +#line 771 "stage1scan.l" +BEGIN(SECT2); return '"'; + YY_BREAK +case 175: +/* rule 175 can match eol */ +YY_RULE_SETUP +#line 773 "stage1scan.l" +{ + synerr( _( "missing quote" ) ); + BEGIN(SECT2); + ++linenum; + return '"'; + } + YY_BREAK + + +case 176: +YY_RULE_SETUP +#line 782 "stage1scan.l" +BEGIN(SECT2); + YY_BREAK +case 177: +YY_RULE_SETUP +#line 783 "stage1scan.l" +BEGIN(GROUP_MINUS_PARAMS); + YY_BREAK +case 178: +YY_RULE_SETUP +#line 784 "stage1scan.l" +sf_set_case_ins(1); + YY_BREAK +case 179: +YY_RULE_SETUP +#line 785 "stage1scan.l" +sf_set_dot_all(1); + YY_BREAK +case 180: +YY_RULE_SETUP +#line 786 "stage1scan.l" +sf_set_skip_ws(1); + YY_BREAK + + +case 181: +YY_RULE_SETUP +#line 789 "stage1scan.l" +BEGIN(SECT2); + YY_BREAK +case 182: +YY_RULE_SETUP +#line 790 "stage1scan.l" +sf_set_case_ins(0); + YY_BREAK +case 183: +YY_RULE_SETUP +#line 791 "stage1scan.l" +sf_set_dot_all(0); + YY_BREAK +case 184: +YY_RULE_SETUP +#line 792 "stage1scan.l" +sf_set_skip_ws(0); + YY_BREAK + + +case 185: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 796 "stage1scan.l" +BEGIN(CCL); return '^'; + YY_BREAK +case 186: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 797 "stage1scan.l" +return '^'; + YY_BREAK +case 187: +YY_RULE_SETUP +#line 798 "stage1scan.l" +BEGIN(CCL); RETURNCHAR; + YY_BREAK + + +case 188: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 802 "stage1scan.l" +return '-'; + YY_BREAK +case 189: +YY_RULE_SETUP +#line 803 "stage1scan.l" +RETURNCHAR; + YY_BREAK +case 190: +YY_RULE_SETUP +#line 804 "stage1scan.l" +BEGIN(SECT2); return ']'; + YY_BREAK +case 191: +/* rule 191 can match eol */ +YY_RULE_SETUP +#line 805 "stage1scan.l" +{ + synerr( _( "bad character class" ) ); + BEGIN(SECT2); + return ']'; + } + YY_BREAK + + +case 192: +YY_RULE_SETUP +#line 813 "stage1scan.l" +BEGIN(CCL); return CCE_ALNUM; + YY_BREAK +case 193: +YY_RULE_SETUP +#line 814 "stage1scan.l" +BEGIN(CCL); return CCE_ALPHA; + YY_BREAK +case 194: +YY_RULE_SETUP +#line 815 "stage1scan.l" +BEGIN(CCL); return CCE_BLANK; + YY_BREAK +case 195: +YY_RULE_SETUP +#line 816 "stage1scan.l" +BEGIN(CCL); return CCE_CNTRL; + YY_BREAK +case 196: +YY_RULE_SETUP +#line 817 "stage1scan.l" +BEGIN(CCL); return CCE_DIGIT; + YY_BREAK +case 197: +YY_RULE_SETUP +#line 818 "stage1scan.l" +BEGIN(CCL); return CCE_GRAPH; + YY_BREAK +case 198: +YY_RULE_SETUP +#line 819 "stage1scan.l" +BEGIN(CCL); return CCE_LOWER; + YY_BREAK +case 199: +YY_RULE_SETUP +#line 820 "stage1scan.l" +BEGIN(CCL); return CCE_PRINT; + YY_BREAK +case 200: +YY_RULE_SETUP +#line 821 "stage1scan.l" +BEGIN(CCL); return CCE_PUNCT; + YY_BREAK +case 201: +YY_RULE_SETUP +#line 822 "stage1scan.l" +BEGIN(CCL); return CCE_SPACE; + YY_BREAK +case 202: +YY_RULE_SETUP +#line 823 "stage1scan.l" +BEGIN(CCL); return CCE_UPPER; + YY_BREAK +case 203: +YY_RULE_SETUP +#line 824 "stage1scan.l" +BEGIN(CCL); return CCE_XDIGIT; + YY_BREAK +case 204: +YY_RULE_SETUP +#line 826 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_ALNUM; + YY_BREAK +case 205: +YY_RULE_SETUP +#line 827 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_ALPHA; + YY_BREAK +case 206: +YY_RULE_SETUP +#line 828 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_BLANK; + YY_BREAK +case 207: +YY_RULE_SETUP +#line 829 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_CNTRL; + YY_BREAK +case 208: +YY_RULE_SETUP +#line 830 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_DIGIT; + YY_BREAK +case 209: +YY_RULE_SETUP +#line 831 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_GRAPH; + YY_BREAK +case 210: +YY_RULE_SETUP +#line 832 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_LOWER; + YY_BREAK +case 211: +YY_RULE_SETUP +#line 833 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_PRINT; + YY_BREAK +case 212: +YY_RULE_SETUP +#line 834 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_PUNCT; + YY_BREAK +case 213: +YY_RULE_SETUP +#line 835 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_SPACE; + YY_BREAK +case 214: +YY_RULE_SETUP +#line 836 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_UPPER; + YY_BREAK +case 215: +YY_RULE_SETUP +#line 837 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_XDIGIT; + YY_BREAK +case 216: +YY_RULE_SETUP +#line 838 "stage1scan.l" +{ + format_synerr( + _( "bad character class expression: %s" ), + yytext ); + BEGIN(CCL); return CCE_ALNUM; + } + YY_BREAK + + +case 217: +YY_RULE_SETUP +#line 847 "stage1scan.l" +{ + yylval = myctoi( yytext ); + return NUMBER; + } + YY_BREAK +case 218: +YY_RULE_SETUP +#line 852 "stage1scan.l" +return ','; + YY_BREAK +case 219: +YY_RULE_SETUP +#line 853 "stage1scan.l" +{ + BEGIN(SECT2); + if ( lex_compat || posix_compat ) + return END_REPEAT_POSIX; + else + return END_REPEAT_FLEX; + } + YY_BREAK +case 220: +YY_RULE_SETUP +#line 861 "stage1scan.l" +{ + synerr( _( "bad character inside {}'s" ) ); + BEGIN(SECT2); + return '}'; + } + YY_BREAK +case 221: +/* rule 221 can match eol */ +YY_RULE_SETUP +#line 867 "stage1scan.l" +{ + synerr( _( "missing }" ) ); + BEGIN(SECT2); + ++linenum; + return '}'; + } + YY_BREAK + + +case 222: +YY_RULE_SETUP +#line 877 "stage1scan.l" +bracelevel = 0; + YY_BREAK +case 223: +YY_RULE_SETUP +#line 879 "stage1scan.l" +ACTION_ECHO; yy_push_state( COMMENT ); + YY_BREAK + +case 224: +YY_RULE_SETUP +#line 882 "stage1scan.l" +{ + ACTION_ECHO; + CHECK_REJECT(yytext); + } + YY_BREAK +case 225: +YY_RULE_SETUP +#line 886 "stage1scan.l" +{ + ACTION_ECHO; + CHECK_YYMORE(yytext); + } + YY_BREAK + +case 226: +YY_RULE_SETUP +#line 892 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 227: +YY_RULE_SETUP +#line 893 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 228: +YY_RULE_SETUP +#line 894 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 229: +/* rule 229 can match eol */ +YY_RULE_SETUP +#line 895 "stage1scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 || + (doing_codeblock && indented_code) ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = doing_codeblock = false; + BEGIN(SECT2); + } + } + YY_BREAK + +/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ + +case 230: +YY_RULE_SETUP +#line 913 "stage1scan.l" +ACTION_ECHO; ++bracelevel; + YY_BREAK +case 231: +YY_RULE_SETUP +#line 914 "stage1scan.l" +ACTION_ECHO; --bracelevel; + YY_BREAK +case 232: +YY_RULE_SETUP +#line 915 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 233: +YY_RULE_SETUP +#line 916 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 234: +YY_RULE_SETUP +#line 917 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 235: +YY_RULE_SETUP +#line 918 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 236: +YY_RULE_SETUP +#line 919 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 237: +YY_RULE_SETUP +#line 920 "stage1scan.l" +ACTION_ECHO; /* character constant */ + YY_BREAK +case 238: +YY_RULE_SETUP +#line 921 "stage1scan.l" +ACTION_ECHO; BEGIN(ACTION_STRING); + YY_BREAK +case 239: +/* rule 239 can match eol */ +YY_RULE_SETUP +#line 922 "stage1scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = false; + BEGIN(SECT2); + } + } + YY_BREAK +case 240: +YY_RULE_SETUP +#line 934 "stage1scan.l" +ACTION_ECHO; + YY_BREAK + + +case 241: +YY_RULE_SETUP +#line 938 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 242: +YY_RULE_SETUP +#line 939 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 243: +/* rule 243 can match eol */ +YY_RULE_SETUP +#line 940 "stage1scan.l" +++linenum; ACTION_ECHO; BEGIN(ACTION); + YY_BREAK +case 244: +YY_RULE_SETUP +#line 941 "stage1scan.l" +ACTION_ECHO; BEGIN(ACTION); + YY_BREAK +case 245: +YY_RULE_SETUP +#line 942 "stage1scan.l" +ACTION_ECHO; + YY_BREAK + +case YY_STATE_EOF(COMMENT): +case YY_STATE_EOF(COMMENT_DISCARD): +case YY_STATE_EOF(ACTION): +case YY_STATE_EOF(ACTION_STRING): +#line 945 "stage1scan.l" +{ + synerr( _( "EOF encountered inside an action" ) ); + yyterminate(); + } + YY_BREAK +case YY_STATE_EOF(EXTENDED_COMMENT): +case YY_STATE_EOF(GROUP_WITH_PARAMS): +case YY_STATE_EOF(GROUP_MINUS_PARAMS): +#line 950 "stage1scan.l" +{ + synerr( _( "EOF encountered inside pattern" ) ); + yyterminate(); + } + YY_BREAK +case 246: +YY_RULE_SETUP +#line 955 "stage1scan.l" +{ + yylval = myesc( (unsigned char *) yytext ); + + if ( YY_START == FIRSTCCL ) + BEGIN(CCL); + + return CHAR; + } + YY_BREAK + +case 247: +YY_RULE_SETUP +#line 966 "stage1scan.l" +fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout); + YY_BREAK +case 248: +YY_RULE_SETUP +#line 967 "stage1scan.l" +fwrite (escaped_qend, 1, strlen(escaped_qend), yyout); + YY_BREAK +case 249: +/* rule 249 can match eol */ +YY_RULE_SETUP +#line 968 "stage1scan.l" +ECHO; + YY_BREAK +case 250: +/* rule 250 can match eol */ +YY_RULE_SETUP +#line 969 "stage1scan.l" +ECHO; + YY_BREAK +case YY_STATE_EOF(SECT3): +#line 970 "stage1scan.l" +sectnum = 0; yyterminate(); + YY_BREAK + +case 251: +/* rule 251 can match eol */ +YY_RULE_SETUP +#line 973 "stage1scan.l" +format_synerr( _( "bad character: %s" ), yytext ); + YY_BREAK +case 252: +YY_RULE_SETUP +#line 975 "stage1scan.l" +YY_FATAL_ERROR( "flex scanner jammed" ); + YY_BREAK +#line 3983 "stage1scan.c" +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(SECT2): +case YY_STATE_EOF(CODEBLOCK): +case YY_STATE_EOF(PICKUPDEF): +case YY_STATE_EOF(SC): +case YY_STATE_EOF(CARETISBOL): +case YY_STATE_EOF(NUM): +case YY_STATE_EOF(QUOTE): +case YY_STATE_EOF(FIRSTCCL): +case YY_STATE_EOF(CCL): +case YY_STATE_EOF(RECOVER): +case YY_STATE_EOF(PERCENT_BRACE_ACTION): +case YY_STATE_EOF(OPTION): +case YY_STATE_EOF(LINEDIR): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of user's declarations */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + yy_size_t number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = NULL; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + yy_state_type yy_current_state; + char *yy_cp; + + yy_current_state = (yy_start); + yy_current_state += YY_AT_BOL(); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); + + YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 1109); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_UNPUT + + static void yyunput (int c, char * yy_bp ) +{ + char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + int number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + int offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return 0; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = (yy_size_t)size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + int num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + yy_size_t grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return NULL; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = NULL; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,(int) strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + yy_size_t i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = (yy_size_t) _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + + static void yy_push_state (int _new_state ) +{ + if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) + { + yy_size_t new_size; + + (yy_start_stack_depth) += YY_START_STACK_INCR; + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); + + if ( ! (yy_start_stack) ) + (yy_start_stack) = (int *) yyalloc(new_size ); + + else + (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size ); + + if ( ! (yy_start_stack) ) + YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); + } + + (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; + + BEGIN(_new_state); +} + + static void yy_pop_state (void) +{ + if ( --(yy_start_stack_ptr) < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); + + BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yynoreturn yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +int yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param _line_number line number + * + */ +void yyset_lineno (int _line_number ) +{ + + yylineno = _line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param _in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * _in_str ) +{ + yyin = _in_str ; +} + +void yyset_out (FILE * _out_str ) +{ + yyout = _out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int _bdebug ) +{ + yy_flex_debug = _bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = NULL; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = NULL; + (yy_init) = 0; + (yy_start) = 0; + + (yy_start_stack_ptr) = 0; + (yy_start_stack_depth) = 0; + (yy_start_stack) = NULL; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = NULL; + yyout = NULL; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Destroy the start condition stack. */ + yyfree((yy_start_stack) ); + (yy_start_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + + int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return malloc(size); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return realloc(ptr, size); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 975 "stage1scan.l" + + + + +int yywrap(void) + { + if ( --num_input_files > 0 ) + { + set_input_file( *++input_files ); + return 0; + } + + else + return 1; + } + + +/* set_input_file - open the given file (if NULL, stdin) for scanning */ + +void set_input_file( char *file ) + { + if ( file && strcmp( file, "-" ) ) + { + infilename = xstrdup(file); + yyin = fopen( infilename, "r" ); + + if ( yyin == NULL ) + lerr( _( "can't open %s" ), file ); + } + + else + { + yyin = stdin; + infilename = xstrdup("<stdin>"); + } + + linenum = 1; + } + diff --git a/src/stage1scan.l b/src/stage1scan.l new file mode 100644 index 0000000..cfc832d --- /dev/null +++ b/src/stage1scan.l @@ -0,0 +1,1011 @@ +/* scan.l - scanner for flex input -*-C-*- */ + +%{ +/* Copyright (c) 1990 The Regents of the University of California. */ +/* All rights reserved. */ + +/* This code is derived from software contributed to Berkeley by */ +/* Vern Paxson. */ + +/* The United States Government has rights in this work pursuant */ +/* to contract no. DE-AC03-76SF00098 between the United States */ +/* Department of Energy and the University of California. */ + +/* This file is part of flex. */ + +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ + +/* 1. Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* 2. Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ + +/* Neither the name of the University nor the names of its contributors */ +/* may be used to endorse or promote products derived from this software */ +/* without specific prior written permission. */ + +/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ +/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE. */ + +#include "flexdef.h" +#include "parse.h" +extern bool tablesverify, tablesext; +extern int trlcontxt; /* Set in parse.y for each rule. */ +extern const char *escaped_qstart, *escaped_qend; + +#define ACTION_ECHO add_action( yytext ) +#define ACTION_IFDEF(def, should_define) \ + { \ + if ( should_define ) \ + action_define( def, 1 ); \ + } + +#define ACTION_ECHO_QSTART add_action (escaped_qstart) +#define ACTION_ECHO_QEND add_action (escaped_qend) + +#define ACTION_M4_IFDEF(def, should_define) \ + do{ \ + if ( should_define ) \ + buf_m4_define( &m4defs_buf, def, NULL);\ + else \ + buf_m4_undefine( &m4defs_buf, def);\ + } while(0) + +#define MARK_END_OF_PROLOG mark_prolog(); + +#define YY_DECL \ + int flexscan(void) + +#define RETURNCHAR \ + yylval = (unsigned char) yytext[0]; \ + return CHAR; + +#define RETURNNAME \ + if(yyleng < MAXLINE) \ + { \ + strcpy( nmstr, yytext ); \ + } \ + else \ + { \ + synerr(_("Input line too long\n")); \ + FLEX_EXIT(EXIT_FAILURE); \ + } \ + return NAME; + +#define PUT_BACK_STRING(str, start) \ + for ( i = strlen( str ) - 1; i >= start; --i ) \ + unput((str)[i]) + +#define CHECK_REJECT(str) \ + if ( all_upper( str ) ) \ + reject = true; + +#define CHECK_YYMORE(str) \ + if ( all_lower( str ) ) \ + yymore_used = true; + +#define YY_USER_INIT \ + if ( getenv("POSIXLY_CORRECT") ) \ + posix_compat = true; + +%} + +%option caseless nodefault noreject stack noyy_top_state +%option nostdinit + +%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE +%x FIRSTCCL CCL ACTION RECOVER COMMENT ACTION_STRING PERCENT_BRACE_ACTION +%x OPTION LINEDIR CODEBLOCK_MATCH_BRACE +%x GROUP_WITH_PARAMS +%x GROUP_MINUS_PARAMS +%x EXTENDED_COMMENT +%x COMMENT_DISCARD + +WS [[:blank:]]+ +OPTWS [[:blank:]]* +NOT_WS [^[:blank:]\r\n] + +NL \r?\n + +NAME ([[:alpha:]_][[:alnum:]_-]*) +NOT_NAME [^[:alpha:]_*\n]+ + +SCNAME {NAME} + +ESCSEQ (\\([^\n]|[0-7]{1,3}|x[[:xdigit:]]{1,2})) + +FIRST_CCL_CHAR ([^\\\n]|{ESCSEQ}) +CCL_CHAR ([^\\\n\]]|{ESCSEQ}) +CCL_EXPR ("[:"^?[[:alpha:]]+":]") + +LEXOPT [aceknopr] + +M4QSTART "[[" +M4QEND "]]" + +%% + static int bracelevel, didadef, indented_code; + static int doing_rule_action = false; + static int option_sense; + + int doing_codeblock = false; + int i, brace_depth=0, brace_start_line=0; + char nmdef[MAXLINE]; + + +<INITIAL>{ + ^{WS} indented_code = true; BEGIN(CODEBLOCK); + ^"/*" ACTION_ECHO; yy_push_state( COMMENT ); + ^#{OPTWS}line{WS} yy_push_state( LINEDIR ); + ^"%s"{NAME}? return SCDECL; + ^"%x"{NAME}? return XSCDECL; + ^"%{".*{NL} { + ++linenum; + line_directive_out(NULL, 1); + indented_code = false; + BEGIN(CODEBLOCK); + } + ^"%top"[[:blank:]]*"{"[[:blank:]]*{NL} { + brace_start_line = linenum; + ++linenum; + buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum); + brace_depth = 1; + yy_push_state(CODEBLOCK_MATCH_BRACE); + } + + ^"%top".* synerr( _("malformed '%top' directive") ); + + {WS} /* discard */ + + ^"%%".* { + sectnum = 2; + bracelevel = 0; + mark_defs1(); + line_directive_out(NULL, 1); + BEGIN(SECT2PROLOG); + return SECTEND; + } + + ^"%pointer".*{NL} yytext_is_array = false; ++linenum; + ^"%array".*{NL} yytext_is_array = true; ++linenum; + + ^"%option" BEGIN(OPTION); return TOK_OPTION; + + ^"%"{LEXOPT}{OPTWS}[[:digit:]]*{OPTWS}{NL} ++linenum; /* ignore */ + ^"%"{LEXOPT}{WS}.*{NL} ++linenum; /* ignore */ + + /* xgettext: no-c-format */ + ^"%"[^sxaceknopr{}].* synerr( _( "unrecognized '%' directive" ) ); + + ^{NAME} { + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Definition name too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + didadef = false; + BEGIN(PICKUPDEF); + } + + {SCNAME} RETURNNAME; + ^{OPTWS}{NL} ++linenum; /* allows blank lines in section 1 */ + {OPTWS}{NL} ACTION_ECHO; ++linenum; /* maybe end of comment line */ +} + + +<COMMENT>{ + "*/" ACTION_ECHO; yy_pop_state(); + "*" ACTION_ECHO; + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + [^*\n] ACTION_ECHO; + {NL} ++linenum; ACTION_ECHO; +} + +<COMMENT_DISCARD>{ + /* This is the same as COMMENT, but is discarded rather than output. */ + "*/" yy_pop_state(); + "*" ; + [^*\n] ; + {NL} ++linenum; +} + +<EXTENDED_COMMENT>{ + ")" yy_pop_state(); + [^\n\)]+ ; + {NL} ++linenum; +} + +<LINEDIR>{ + \n yy_pop_state(); + [[:digit:]]+ linenum = myctoi( yytext ); + + \"[^"\n]*\" { + free(infilename); + infilename = xstrdup(yytext + 1); + infilename[strlen( infilename ) - 1] = '\0'; + } + . /* ignore spurious characters */ +} + +<CODEBLOCK>{ + ^"%}".*{NL} ++linenum; BEGIN(INITIAL); + + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + . ACTION_ECHO; + + {NL} { + ++linenum; + ACTION_ECHO; + if ( indented_code ) + BEGIN(INITIAL); + } +} + +<CODEBLOCK_MATCH_BRACE>{ + "}" { + if( --brace_depth == 0){ + /* TODO: Matched. */ + yy_pop_state(); + }else + buf_strnappend(&top_buf, yytext, yyleng); + } + + "{" { + brace_depth++; + buf_strnappend(&top_buf, yytext, yyleng); + } + + {NL} { + ++linenum; + buf_strnappend(&top_buf, yytext, yyleng); + } + + {M4QSTART} buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); + {M4QEND} buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); + + [^{}\r\n] { + buf_strnappend(&top_buf, yytext, yyleng); + } + + <<EOF>> { + linenum = brace_start_line; + synerr(_("Unmatched '{'")); + yyterminate(); + } +} + + +<PICKUPDEF>{ + {WS} /* separates name and definition */ + + {NOT_WS}[^\r\n]* { + if(yyleng < MAXLINE) + { + strcpy( nmdef, yytext ); + } + else + { + format_synerr( _("Definition value for {%s} too long\n"), nmstr); + FLEX_EXIT(EXIT_FAILURE); + } + /* Skip trailing whitespace. */ + for ( i = strlen( nmdef ) - 1; + i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); + --i ) + ; + + nmdef[i + 1] = '\0'; + + ndinstal( nmstr, nmdef ); + didadef = true; + } + + {NL} { + if ( ! didadef ) + synerr( _( "incomplete name definition" ) ); + BEGIN(INITIAL); + ++linenum; + } +} + + +<OPTION>{ + {NL} ++linenum; BEGIN(INITIAL); + {WS} option_sense = true; + + "=" return '='; + + no option_sense = ! option_sense; + + 7bit csize = option_sense ? 128 : 256; + 8bit csize = option_sense ? 256 : 128; + + align long_align = option_sense; + always-interactive { + ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense ); + interactive = option_sense; + } + array yytext_is_array = option_sense; + ansi-definitions ansi_func_defs = option_sense; + ansi-prototypes ansi_func_protos = option_sense; + backup backing_up_report = option_sense; + batch interactive = ! option_sense; + bison-bridge bison_bridge_lval = option_sense; + bison-locations { if((bison_bridge_lloc = option_sense)) + bison_bridge_lval = true; + } + "c++" C_plus_plus = option_sense; + caseful|case-sensitive sf_set_case_ins(!option_sense); + caseless|case-insensitive sf_set_case_ins(option_sense); + debug ddebug = option_sense; + default spprdflt = ! option_sense; + ecs useecs = option_sense; + fast { + useecs = usemecs = false; + use_read = fullspd = true; + } + full { + useecs = usemecs = false; + use_read = fulltbl = true; + } + input ACTION_IFDEF("YY_NO_INPUT", ! option_sense); + interactive interactive = option_sense; + lex-compat lex_compat = option_sense; + posix-compat posix_compat = option_sense; + line gen_line_dirs = option_sense; + main { + ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense); + /* Override yywrap */ + if( option_sense == true ) + do_yywrap = false; + } + meta-ecs usemecs = option_sense; + never-interactive { + ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense ); + interactive = !option_sense; + } + perf-report performance_report += option_sense ? 1 : -1; + pointer yytext_is_array = ! option_sense; + read use_read = option_sense; + reentrant reentrant = option_sense; + reject reject_really_used = option_sense; + stack ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); + stdinit do_stdinit = option_sense; + stdout use_stdout = option_sense; + unistd ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); + unput ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); + verbose printstats = option_sense; + warn nowarn = ! option_sense; + yylineno do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); + yymore yymore_really_used = option_sense; + yywrap do_yywrap = option_sense; + + yy_push_state ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); + yy_pop_state ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); + yy_top_state ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); + + yy_scan_buffer ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); + yy_scan_bytes ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); + yy_scan_string ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); + + yyalloc ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); + yyrealloc ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); + yyfree ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); + + yyget_debug ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); + yyset_debug ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); + yyget_extra ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); + yyset_extra ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); + yyget_leng ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); + yyget_text ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); + yyget_lineno ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); + yyset_lineno ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); + yyget_in ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); + yyset_in ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); + yyget_out ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); + yyset_out ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); + yyget_lval ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); + yyset_lval ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); + yyget_lloc ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); + yyset_lloc ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); + + extra-type return TOK_EXTRA_TYPE; + outfile return TOK_OUTFILE; + prefix return TOK_PREFIX; + yyclass return TOK_YYCLASS; + header(-file)? return TOK_HEADER_FILE; + tables-file return TOK_TABLES_FILE; + tables-verify { + tablesverify = option_sense; + if(!tablesext && option_sense) + tablesext = true; + } + + + \"[^"\n]*\" { + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Option line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + nmstr[strlen( nmstr ) - 1] = '\0'; + return NAME; + } + + (([a-mo-z]|n[a-np-z])[[:alpha:]\-+]*)|. { + format_synerr( _( "unrecognized %%option: %s" ), + yytext ); + BEGIN(RECOVER); + } +} + +<RECOVER>.*{NL} ++linenum; BEGIN(INITIAL); + + +<SECT2PROLOG>{ + ^"%{".* ++bracelevel; yyless( 2 ); /* eat only %{ */ + ^"%}".* --bracelevel; yyless( 2 ); /* eat only %} */ + + ^{WS}.* ACTION_ECHO; /* indented code in prolog */ + + ^{NOT_WS}.* { /* non-indented code */ + if ( bracelevel <= 0 ) + { /* not in %{ ... %} */ + yyless( 0 ); /* put it all back */ + yy_set_bol( 1 ); + mark_prolog(); + BEGIN(SECT2); + } + else + ACTION_ECHO; + } + + . ACTION_ECHO; + {NL} ++linenum; ACTION_ECHO; + + <<EOF>> { + mark_prolog(); + sectnum = 0; + yyterminate(); /* to stop the parser */ + } +} + +<SECT2>{ + ^{OPTWS}{NL} ++linenum; /* allow blank lines in section 2 */ + + ^{OPTWS}"%{" { + indented_code = false; + doing_codeblock = true; + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + } + + ^{OPTWS}"<" { + /* Allow "<" to appear in (?x) patterns. */ + if (!sf_skip_ws()) + BEGIN(SC); + return '<'; + } + ^{OPTWS}"^" return '^'; + \" BEGIN(QUOTE); return '"'; + "{"/[[:digit:]] { + BEGIN(NUM); + if ( lex_compat || posix_compat ) + return BEGIN_REPEAT_POSIX; + else + return BEGIN_REPEAT_FLEX; + } + "$"/([[:blank:]]|{NL}) return '$'; + + {WS}"%{" { + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + {WS}"|".*{NL} { + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + /* Push back everything starting at the "|" */ + int amt = (int) (strchr (yytext, '|') - yytext); + yyless(amt); + } + else { + continued_action = true; + ++linenum; + return '\n'; + } + } + + ^{WS}"/*" { + + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + yy_push_state(COMMENT_DISCARD); + } + else{ + yyless( yyleng - 2 ); /* put back '/', '*' */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + } + } + + ^{WS} /* allow indented rules */ ; + + {WS} { + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + } + else{ + /* This rule is separate from the one below because + * otherwise we get variable trailing context, so + * we can't build the scanner using -{f,F}. + */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + + {OPTWS}{NL} { + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + ++linenum; + } + else{ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + unput( '\n' ); /* so <ACTION> sees it */ + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + + ^{OPTWS}"<<EOF>>" | + "<<EOF>>" return EOF_OP; + + ^"%%".* { + sectnum = 3; + BEGIN(SECT3); + outn("/* Begin user sect3 */"); + yyterminate(); /* to stop the parser */ + } + + "["({FIRST_CCL_CHAR}|{CCL_EXPR})({CCL_CHAR}|{CCL_EXPR})* { + int cclval; + + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + /* Check to see if we've already encountered this + * ccl. + */ + if (0 /* <--- This "0" effectively disables the reuse of a + * character class (purely based on its source text). + * The reason it was disabled is so yacc/bison can parse + * ccl operations, such as ccl difference and union. + */ + && (cclval = ccllookup( nmstr )) != 0 ) + { + if ( input() != ']' ) + synerr( _( "bad character class" ) ); + + yylval = cclval; + ++cclreuse; + return PREVCCL; + } + else + { + /* We fudge a bit. We know that this ccl will + * soon be numbered as lastccl + 1 by cclinit. + */ + cclinstal( nmstr, lastccl + 1 ); + + /* Push back everything but the leading bracket + * so the ccl can be rescanned. + */ + yyless( 1 ); + + BEGIN(FIRSTCCL); + return '['; + } + } + "{-}" return CCL_OP_DIFF; + "{+}" return CCL_OP_UNION; + + + /* Check for :space: at the end of the rule so we don't + * wrap the expanded regex in '(' ')' -- breaking trailing + * context. + */ + "{"{NAME}"}"[[:space:]]? { + char *nmdefptr; + int end_is_ws, end_ch; + + end_ch = yytext[yyleng-1]; + end_is_ws = end_ch != '}' ? 1 : 0; + + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } +nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ + + if ( (nmdefptr = ndlookup( nmstr )) == 0 ) + format_synerr( + _( "undefined definition {%s}" ), + nmstr ); + + else + { /* push back name surrounded by ()'s */ + int len = strlen( nmdefptr ); + if (end_is_ws) + unput(end_ch); + + if ( lex_compat || nmdefptr[0] == '^' || + (len > 0 && nmdefptr[len - 1] == '$') + || (end_is_ws && trlcontxt && !sf_skip_ws())) + { /* don't use ()'s after all */ + PUT_BACK_STRING(nmdefptr, 0); + + if ( nmdefptr[0] == '^' ) + BEGIN(CARETISBOL); + } + + else + { + unput(')'); + PUT_BACK_STRING(nmdefptr, 0); + unput('('); + } + } + } + + "/*" { + if (sf_skip_ws()) + yy_push_state(COMMENT_DISCARD); + else{ + /* Push back the "*" and return "/" as usual. */ + yyless(1); + return '/'; + } + } + + "(?#" { + if (lex_compat || posix_compat){ + /* Push back the "?#" and treat it like a normal parens. */ + yyless(1); + sf_push(); + return '('; + } + else + yy_push_state(EXTENDED_COMMENT); + } + "(?" { + sf_push(); + if (lex_compat || posix_compat) + /* Push back the "?" and treat it like a normal parens. */ + yyless(1); + else + BEGIN(GROUP_WITH_PARAMS); + return '('; + } + "(" sf_push(); return '('; + ")" { + if (_sf_top_ix > 0) { + sf_pop(); + return ')'; + } else + synerr(_("unbalanced parenthesis")); + } + + [/|*+?.(){}] return (unsigned char) yytext[0]; + . RETURNCHAR; +} + + +<SC>{ + {OPTWS}{NL}{OPTWS} ++linenum; /* Allow blank lines & continuations */ + [,*] return (unsigned char) yytext[0]; + ">" BEGIN(SECT2); return '>'; + ">"/^ BEGIN(CARETISBOL); return '>'; + {SCNAME} RETURNNAME; + . { + format_synerr( _( "bad <start condition>: %s" ), + yytext ); + } +} + +<CARETISBOL>"^" BEGIN(SECT2); return '^'; + + +<QUOTE>{ + [^"\n] RETURNCHAR; + \" BEGIN(SECT2); return '"'; + + {NL} { + synerr( _( "missing quote" ) ); + BEGIN(SECT2); + ++linenum; + return '"'; + } +} + +<GROUP_WITH_PARAMS>{ + ":" BEGIN(SECT2); + "-" BEGIN(GROUP_MINUS_PARAMS); + i sf_set_case_ins(1); + s sf_set_dot_all(1); + x sf_set_skip_ws(1); +} +<GROUP_MINUS_PARAMS>{ + ":" BEGIN(SECT2); + i sf_set_case_ins(0); + s sf_set_dot_all(0); + x sf_set_skip_ws(0); +} + +<FIRSTCCL>{ + "^"/[^-\]\n] BEGIN(CCL); return '^'; + "^"/("-"|"]") return '^'; + . BEGIN(CCL); RETURNCHAR; +} + +<CCL>{ + -/[^\]\n] return '-'; + [^\]\n] RETURNCHAR; + "]" BEGIN(SECT2); return ']'; + .|{NL} { + synerr( _( "bad character class" ) ); + BEGIN(SECT2); + return ']'; + } +} + +<FIRSTCCL,CCL>{ + "[:alnum:]" BEGIN(CCL); return CCE_ALNUM; + "[:alpha:]" BEGIN(CCL); return CCE_ALPHA; + "[:blank:]" BEGIN(CCL); return CCE_BLANK; + "[:cntrl:]" BEGIN(CCL); return CCE_CNTRL; + "[:digit:]" BEGIN(CCL); return CCE_DIGIT; + "[:graph:]" BEGIN(CCL); return CCE_GRAPH; + "[:lower:]" BEGIN(CCL); return CCE_LOWER; + "[:print:]" BEGIN(CCL); return CCE_PRINT; + "[:punct:]" BEGIN(CCL); return CCE_PUNCT; + "[:space:]" BEGIN(CCL); return CCE_SPACE; + "[:upper:]" BEGIN(CCL); return CCE_UPPER; + "[:xdigit:]" BEGIN(CCL); return CCE_XDIGIT; + + "[:^alnum:]" BEGIN(CCL); return CCE_NEG_ALNUM; + "[:^alpha:]" BEGIN(CCL); return CCE_NEG_ALPHA; + "[:^blank:]" BEGIN(CCL); return CCE_NEG_BLANK; + "[:^cntrl:]" BEGIN(CCL); return CCE_NEG_CNTRL; + "[:^digit:]" BEGIN(CCL); return CCE_NEG_DIGIT; + "[:^graph:]" BEGIN(CCL); return CCE_NEG_GRAPH; + "[:^lower:]" BEGIN(CCL); return CCE_NEG_LOWER; + "[:^print:]" BEGIN(CCL); return CCE_NEG_PRINT; + "[:^punct:]" BEGIN(CCL); return CCE_NEG_PUNCT; + "[:^space:]" BEGIN(CCL); return CCE_NEG_SPACE; + "[:^upper:]" BEGIN(CCL); return CCE_NEG_UPPER; + "[:^xdigit:]" BEGIN(CCL); return CCE_NEG_XDIGIT; + {CCL_EXPR} { + format_synerr( + _( "bad character class expression: %s" ), + yytext ); + BEGIN(CCL); return CCE_ALNUM; + } +} + +<NUM>{ + [[:digit:]]+ { + yylval = myctoi( yytext ); + return NUMBER; + } + + "," return ','; + "}" { + BEGIN(SECT2); + if ( lex_compat || posix_compat ) + return END_REPEAT_POSIX; + else + return END_REPEAT_FLEX; + } + + . { + synerr( _( "bad character inside {}'s" ) ); + BEGIN(SECT2); + return '}'; + } + + {NL} { + synerr( _( "missing }" ) ); + BEGIN(SECT2); + ++linenum; + return '}'; + } +} + + +<PERCENT_BRACE_ACTION>{ + {OPTWS}"%}".* bracelevel = 0; + + <ACTION>"/*" ACTION_ECHO; yy_push_state( COMMENT ); + + <CODEBLOCK,ACTION>{ + "reject" { + ACTION_ECHO; + CHECK_REJECT(yytext); + } + "yymore" { + ACTION_ECHO; + CHECK_YYMORE(yytext); + } + } + + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + . ACTION_ECHO; + {NL} { + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 || + (doing_codeblock && indented_code) ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = doing_codeblock = false; + BEGIN(SECT2); + } + } +} + + + /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ +<ACTION>{ + "{" ACTION_ECHO; ++bracelevel; + "}" ACTION_ECHO; --bracelevel; + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + [^[:alpha:]_{}"'/\n\[\]]+ ACTION_ECHO; + [\[\]] ACTION_ECHO; + {NAME} ACTION_ECHO; + "'"([^'\\\n]|\\.)*"'" ACTION_ECHO; /* character constant */ + \" ACTION_ECHO; BEGIN(ACTION_STRING); + {NL} { + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = false; + BEGIN(SECT2); + } + } + . ACTION_ECHO; +} + +<ACTION_STRING>{ + [^"\\\n]+ ACTION_ECHO; + \\. ACTION_ECHO; + {NL} ++linenum; ACTION_ECHO; BEGIN(ACTION); + \" ACTION_ECHO; BEGIN(ACTION); + . ACTION_ECHO; +} + +<COMMENT,COMMENT_DISCARD,ACTION,ACTION_STRING><<EOF>> { + synerr( _( "EOF encountered inside an action" ) ); + yyterminate(); + } + +<EXTENDED_COMMENT,GROUP_WITH_PARAMS,GROUP_MINUS_PARAMS><<EOF>> { + synerr( _( "EOF encountered inside pattern" ) ); + yyterminate(); + } + +<SECT2,QUOTE,FIRSTCCL,CCL>{ESCSEQ} { + yylval = myesc( (unsigned char *) yytext ); + + if ( YY_START == FIRSTCCL ) + BEGIN(CCL); + + return CHAR; + } + + +<SECT3>{ + {M4QSTART} fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout); + {M4QEND} fwrite (escaped_qend, 1, strlen(escaped_qend), yyout); + [^\[\]\n]*(\n?) ECHO; + (.|\n) ECHO; + <<EOF>> sectnum = 0; yyterminate(); +} + +<*>.|\n format_synerr( _( "bad character: %s" ), yytext ); + +%% + + +int yywrap(void) + { + if ( --num_input_files > 0 ) + { + set_input_file( *++input_files ); + return 0; + } + + else + return 1; + } + + +/* set_input_file - open the given file (if NULL, stdin) for scanning */ + +void set_input_file( char *file ) + { + if ( file && strcmp( file, "-" ) ) + { + infilename = xstrdup(file); + yyin = fopen( infilename, "r" ); + + if ( yyin == NULL ) + lerr( _( "can't open %s" ), file ); + } + + else + { + yyin = stdin; + infilename = xstrdup("<stdin>"); + } + + linenum = 1; + } |