From Open Babel
Revision as of 12:53, 12 April 2006 by Ghutchis (Talk | contribs)

Jump to: navigation, search

In all cases, if you have questions about the building/compiling process for Open Babel, please contact the developer list at [1]

UNIX/Linux/Mac OS X

The build environment on UNIX-like platforms, including Linux, and Mac OS X involves a variety of tools.

  • autoconf - Used to detect headers, libraries, and other packages to flexibly build on a range of platforms
  • automake - Used to create the "" and "Makefile" build rules
  • libtool - Used to build shared libraries (i.e., libopenbabel) and the shared object modules for file translators

Because these are not always present on every system (often "devel" packages or other developer tools are needed), the build setup is designed to compile the existing source and NOT rebuild the build system itself (i.e., the configure script, babelconfig.h, and the Makefile scripts).

If you intend to add source code files, you should make sure to also edit the build files -- particularly the files used by automake. You will also need to re-run the configure script, e.g.

 ./configure --enable-maintainer-mode

The --enable-maintainer-mode option adds the rules to rebuild Makefiles and other elements of the build environment when changed.

The configure script itself is generated from by autoconf. It rarely needs changes, except when needed to detect the presence of new libraries on a system. If you think you need to make changes to the configure script, please send an e-mail on the developer list and someone will be glad to point you in the right directions.

Windows (Visual C++)

The CVS and source distributions should include Visual C++ project files.

Perl and Python Wrappers

The Perl and Python wrappers for the Open Babel library are generated using a tool called SWIG:

  • swig - Simplified Wrapper and Interface Generator

These files are auto-generated from the SWIG file "openbabel.i" by the UNIX Makefiles, assuming SWIG is detected by the configure script and --enable-maintainer-mode is used.