GiNaC even more restructured

Christian Bauer cbauer at ThEP.Physik.Uni-Mainz.DE
Tue Nov 9 21:55:51 CET 1999


Hi!

I've converted the GiNaC sources to use the "automake" tool. This involved
several changes:
 - created "Makefile.am" files
 - added several support files: "config.guess", "config.sub",
   "install-sh", "missing", "mkinstalldirs", "ltconfig", "ltmain.sh"
 - "src" directory renamed to "ginac" and moved header files from
   "include" to "ginac", removed the "include" directory (it is easier
   to build and install GiNaC with automake if things are arranged this
   way)

Doing a "cvs update -P GiNaC" should get you the new files (and remove
the obsolete ones). I have tested "configure", "make", "make check",
"make install", "make install-strip", "make uninstall", "make clean",
"make distclean" and "make maintainer-clean" and they seem to work. I
haven't tried whether the package created by "make dist" actually works.

Misc notes:
 - The configuration files which are supposed to be edited manually are
   the "Makefile.am" files, "acconfig.h", "acinclude.m4" and
   "configure.in". All other config files like the "*.in" files are
   generated by automake&Co.
 - More specifically:
    - acinclude.m4 -> aclocal.m4 by aclocal
    - configure.in -> configure by autoconf
    - acconfig.h -> config.h.in by autoheader
    - Makefile.am -> Makefile.in by automake
 - The version of the shared libginac.so is not set correctly.
 - Both static and shared library version are built by default. Say
   "configure --disable-shared" to only build the static library (makes
   for quicker development).
 - Saying "make" at the top level will build everything (libginac, ginsh,
   check, doc). To only recompile libginac, cd to "ginac" and say "make"
   there.
 - The automake-generated makefiles automatically store dependency
   information in hidden ".deps" directories.
 - The doc/Makefile.am is empty as of yet. Don't worry, I've saved the old
   doc/Makefile.in and will integrate this later.
 - The files "AUTHORS", "ChangeLog", "NEWS" and "README" have to be filled
   with something reasonable. Supposedly, CVS is able to create
   "ChangeLog" files, but I haven't yet found out how.
 - The official top-level header to include for programs using GiNaC is
   now <ginac/ginac.h>.
 - Ideally, all include files which go to /usr/include/ginac should be
   designed to not include themselves mutually. The top-level
   <ginac/ginac.h> should include all of them in the right order.
 - Also, our include files should #define __GINAC_ADD_H__ instead of
   #define _ADD_H_ to avoid possible conflicts with user include files.
 - We should probably include the GNU standard disclaimer at the top of
   all sources and headers.
 - For more information, please refer to the automake and autoconf docs,
   and to the GNU Coding Standards
 - I will try to fix the abovementioned bugs and "automakeify" xloops
   tomorrow.

I hope I didn't cause too much confusion... :-)

Bye,
Christian

-- 
  / Coding on PowerPC and proud of it
\/ http://www.uni-mainz.de/~bauec002/




More information about the GiNaC-devel mailing list