Requirements

EDoc++ has a few requirements, largely based on the fact that it builds patched versions of GCC and Doxygen which themselves have a number of requirements. Below is a list of tools and libraries that will be necessary in order to build, run or maintain EDoc++. Many of the requirements are listed here with associated package names. These are the package names as used by my Ubuntu linux system and may differ for other systems.

Runtime Requirements

  • libbfd

    EDoc++ uses libbfd for embedding/extracting information into/from binary files to make usage a little simpler. libbfd is part of the GNU binutils package. EDoc++ has been compiled and tested with the libbfd distributed in version 2.15 of the binutils package.

    Note: On some systems this may not have a runtime package as it is often built as a static library, in which case it will not be a runtime dependency.

  • python2.5

    The Python interpreter is used for processing the EDoc++ suppressions files (.eds) and also for running the test suite.

  • libltdl3

    The libtool libltdl is used to provide a basis for the EDoc++ plugin framework. This plugin framework allows different output format plugins to be written for the EDoc++ source analysis program.

  • ldd

    This is part of the libc6-dev package on my system. This package should usually already be installed. The particular version of libc is unimportant.

  • libiconv

    This is required on some systems (Particulary Cygwin) by doxygen.

Build Requirements

The following tools and libraries are required in order to build EDoc++ from source. A large number of these requirements are from eithre GCC or Doxygen, both of which are compiled as part of EDoc++.

  • GNU Make

    GCC will not compile with many standard make variants. It uses features specific to the GNU version of make and since EDoc++ must compile a modified version of GCC which requires GNU make to build it successfully.

    Note: On some systems GNU make is invoked with the command: "gmake"

  • texinfo

    Used by GCC

  • flex/bison

    This is used by doxygen and thus is also a requirement of EDoc++.

  • binutils-dev

    EDoc++ uses libbfd which is part of the GNU binutils package. EDoc++ has been compiled and tested with the libbfd distributed in version 2.15 of the binutils package.

    Without this library available libEDocBFD will not be compiled and extracting EDoc++ data embedded directly into binary files will not be possible. You can build without libbfd however this will reduce the functionality of the resulting build. To do so configure the project with the --without-libbfd

  • python2.5-dev

    This will need to be the dev version if your distribution separates out the dev version from the user version. This is because the edoc application embeds a python interpreter and will need to link with the python library directly.

  • libltdl3-dev

    Used to provide output format plugin support to the EDoc++ application.

  • ldd

    This is part of the libc6-dev package on my system. This package should usually already be installed. The particular version of libc is unimportant.

  • libiconv-dev

    Used by doxygen on some systems.

  • g++, libstdc++,

    Required to build any C++ applications from source.

Maintainence Requirements/Tools

Listed below are the tools I use in order to maintain EDoc++. This may be helpful for any people that wish to play with the EDoc++ sources.

  • rpmbuild

    This tool came from the rpm package on my system. It is used for creating rpm packages.

  • debuild

    This tool is used for building debian packages and was part of the devscripts package. It also required the fakeroot package to be installed to operate correctly.

  • dh_make

    This program is used to simplify the process of creating a debian package. It was found in the dh-make package.

  • autoconf

  • automake

  • libtool

  • swig >= 1.3.31

    Note: Earlier versions of SWIG will generate incorrect wrapper sources.

  • Python py-xml package

    This is used by the main build script in order to update the contents of the EDoc++ manual and man page.

  • xmlto

    This is a small utility used to generate UNIX man pages and HTML documentation from the EDoc++ manual which is maintained in docbook format. It has been tested with xmlto version 0.0.18. Not to use this on cygwin requires you to also install linux-utils. This should be a dependency of the xmlto package but is not.

  • XML Mind Editor

    This can be obtained for free from: http://www.xmlmind.com/xmleditor/

    To use this you will need to install Sun JRE: sun-java5-jre

This is more for myself than others but listed below are the packages required for various systems. It is here to save me time remembering what needs to be installed on new systems.

Ubuntu (Fiesty):

apt-get install texinfo flex bison binutils-dev python2.5-dev libltdl3-dev g++ rpm devscripts dh-make autoconf automake libtool xsltproc cvs swig1.3 fakeroot xmlto

Then install XML Mind editor manually

Fedora 7:

yum install binutils-devel texinfo flex bison autoconf automake cvs libtool python-devel swig gcc-c++ xmlto

Then install XML Mind editor manually

NetBSD (pkgsrc - note versions will differ a bit):

pkg_add libtool-base-1.5.24nb5 gmake-3.81 python24-2.4.4nb1 binutils-2.17nb1 xmlto-0.0.18nb4 autoconf-2.61 automake-1.10.1 libtool-1.5.24 swig-1.3.31nb1 bison-2.3 flex-2.5.35 libltdl-1.5.24 py24-xml-0.8.4nb2