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.
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.
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.
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