On OpenBSD 6.6, the automake-1.16.1 generated Makefile in the
top-level directory of a package fails the "distcleancheck" target in
the top-level Makefile because C files created from lex/flex sources
are not removed by "make distclean".

automake leaves those C files in place on purpose to facilitate
building a package on a system that does not have lex or flex
installed.  Page 73 of the automake manual for version 1.16.1 dated 26
February 2018 states: "The intermediate files generated by yacc (or
lex) will be included in any distribution that is made. That way the
user doesn’t need to have yacc or lex."

For example, if a package has a lex source named myprog.l, automake
will convert it via lex or flex to myprog.c, and leave the C file in
place during a "make distclean" along with the original myprog.l file.

This does not happen on other distros running automake 1.16.1 that I have tried.

I am trying to work on my unibetacode package on OpenBSD.  Version 1.3
is located here:

     http://unifoundry.com/pub/unibetacode/unibetacode-1.3/

"make distcheck" fails because three plain files remain:

     ./src/unibetaprep.c
     ./src/beta2uni.c
     ./src/uni2beta.c

Those are generated from src/unibetaprep.l, src/beta2uni.l, and
src/uni2beta.l, respectively, and they are supposed to stay.

Version 2.0 of my Unibetacode package is also under
http://unifoundry.com/pub/unibetacode but it won't build on OpenBSD
6.6 because (among other reasons) the latest version of libtool
available through pkg_add is older than what the latest version of
autoconf requires, but that is another issue.

Thank you,


Paul Hardy

Reply via email to