From: Alexandre Duret-L. <ad...@sr...> - 2004-07-06 19:33:50
|
Finally here it is, sorry for the delay. I've seen that you have removed the generated parser and lexer from the CVS repostory, so I'm assuming you will not want the generated Makefile.ins and configure files on CVS either. (That's easier to me, since that what I do too, so our .cvsignore files are the same.) I've written the Makefile.ams so that all the examples are only build during `make check', not during ordinary `make'. I do not know if that will please you (it is easy to change: simply replace check_PROGRAMS by noinst_PROGRAMS in all the examples/*/Makefile.am). The reason I did that in Spot is that when I build buddy I'm interested only by the library, not by the example, so I didn't want to waste time an disk. I think it still make sense in BuDDy proper, especially since you plan to turn examples/ into a test suite (`make check' would therefore build these examples, and use them to perform many checks.) The attached patch changes a couple of files and adds many. This patch does not includes file removals and file renaming that you must do BEFORE applying the patch. Below is the list of commands to run, so you can copy/paste. First make sure you do all of this work from a fresh and clean checkout of BuDDy. Also ensure you have recent Autotools. At least Autoconf >=2.57, Automake >=1.7.3, Libtool >=1.5 (1.4 might work); but preferably Autoconf 2.59, Automake 1.8.5, Libtool 1.5.6. Do check `autoconf --version', `automake --version', `libtoolize --version' before doing anything else; a recurrent error on autotool lists is that users think they have installed the right version but do run an older one. -------------------------------------------------- cvs rm -f config cvs rm -f makefile cvs rm -f doc/makefile cvs rm -f src/makefile cvs rm -f examples/adder/makefile cvs rm -f examples/bddcalc/makefile cvs rm -f examples/bddtest/makefile cvs rm -f examples/cmilner/makefile cvs rm -f examples/fdd/makefile cvs rm -f examples/milner/makefile cvs rm -f examples/money/makefile cvs rm -f examples/queen/makefile cvs rm -f examples/solitare/makefile mv examples/bddcalc/lexer.l examples/bddcalc/lexer.lxx cvs rm examples/bddcalc/lexer.l cvs add examples/bddcalc/lexer.lxx mv examples/bddcalc/parser.h examples/bddcalc/parser_.h cvs rm examples/bddcalc/parser.h cvs add examples/bddcalc/parser_.h mv examples/bddcalc/parser.y examples/bddcalc/parser.yxx cvs rm examples/bddcalc/parser.y cvs add examples/bddcalc/parser.yxx mkdir tools m4 cvs add tools m4 patch -p0 -i /where/is/the/autotool.patch cvs add .cvsignore cvs add Makefile.am cvs add README.CVS cvs add configure.ac cvs add doc/.cvsignore cvs add doc/Makefile.am cvs add examples/.cvsignore cvs add examples/Makefile.am cvs add examples/Makefile.def cvs add examples/adder/.cvsignore cvs add examples/adder/Makefile.am cvs add examples/bddcalc/.cvsignore cvs add examples/bddcalc/Makefile.am cvs add examples/bddtest/.cvsignore cvs add examples/bddtest/Makefile.am cvs add examples/cmilner/.cvsignore cvs add examples/cmilner/Makefile.am cvs add examples/fdd/.cvsignore cvs add examples/fdd/Makefile.am cvs add examples/milner/.cvsignore cvs add examples/milner/Makefile.am cvs add examples/money/.cvsignore cvs add examples/money/Makefile.am cvs add examples/queen/.cvsignore cvs add examples/queen/Makefile.am cvs add examples/solitare/.cvsignore cvs add examples/solitare/Makefile.am cvs add m4/debug.m4 cvs add src/.cvsignore cvs add src/Makefile.am cvs add tools/.cvsignore autoreconf -vfi ./configure make distcheck cvs commit -------------------------------------------------- The three commands before `cvs commit' ensure everything builds fine. The `make distcheck' command is what you normally use to make a release: it builds a tarball containing every file that must be distributed, then unpack it and build it (and even run `make check') to ensure everything works and nothing has been omitted. If it succeed, it will print something like ============================================ buddy-2.3a archives ready for distribution: buddy-2.3a.tar.gz ============================================ I've bumped the version number since this CVS version is neither 2.3 nor 2.4. You can change on the second line of configure.ac. Here is the ChangeLog entry (BTW, there is still no ChangeLog on CVS). 2004-07-06 Alexandre Duret-Lutz <ad...@sr...> Revamp build-system to use Autoconf, Automake, and Libtool. * Makefile.am, README.CVS, configure.ac, doc/Makefile.am, examples/Makefile.am, examples/Makefile.def, examples/adder/Makefile.am, examples/bddcalc/Makefile.am, examples/bddtest/Makefile.am, examples/cmilner/Makefile.am, examples/fdd/Makefile.am, examples/milner/Makefile.am, examples/money/Makefile.am, examples/queen/Makefile.am, examples/solitare/Makefile.am, m4/debug.m4, src/Makefile.am: New files. * config, makefile, doc/makefile, examples/adder/makefile, examples/bddcalc/makefile, examples/bddtest/makefile, examples/cmilner/makefile, examples/fdd/makefile, examples/milner/makefile, examples/money/makefile, examples/queen/makefile, examples/solitare/makefile, src/makefile: Delete. * examples/bddcalc/parser.h: Rename as ... * examples/bddcalc/parser_.h: ... this, because the automake rules will output token definitions for parser.yxx in parser.h. * examples/bddcalc/lexer.l, examples/bddcalc/parser.y: Rename as ... * examples/bddcalc/lexer.lxx, examples/bddcalc/parser.yxx: ... these, so automake knows these are C++ files. Include parser_.h instead of parser.h, and parser.h instead of token.h. * src/kernel.c: Include config.h to get the version macros. (bdd_versionstr): Simplify using PACKAGE_VERSION. (bdd_version): Rewrite using MAJOR_VERSION and MINOR_VERSION. * src/kernel.h: Give CLOCK_PER_SEC a default value of 60. * README: Update build instructions. Have fun! -- Alexandre Duret-Lutz |