Compiling + Installing

Before configuring and building the source you will need to extract the source tarball and copy the GCC and Doxygen tarballs into the source tree. An example of doing this is shown below:

tar -xvjf edoc-0.2.1.tar.bz2

# Note: Copy of source files only necesary if source obtained from CVS
cp gcc-core-4.0.1.tar.bz2 edoc-0.2.1/archives/
cp gcc-g++-4.0.1.tar.bz2 edoc-0.2.1/archives/
cp doxygen-1.5.1.src.tar.gz edoc-0.2.1/archives/

After preparing the source as shown above a simple build + install should work if you wish to install EDoc++ into /usr/local

cd edoc-0.2.1
./configure
make
# Go and have a coffee or something. This will take a long time.

# Change to root user
su
make install

Throughout this manual I will reference a few different directories. Namely: <source-dir> <build-dir> and <install-dir>. In the examples I use the following values for those locations:

<source-dir>: $HOME/dev/edoc/edoc/

<build-dir>: $HOME/build/edoc/edoc

<install-dir>: /usr/local

This is just mentioned here for consistency with viewing the examples.

Additional configuration options

@@@Brendon TODO Writeme: For now run the configure script with --help as the argument for more information or send a email to the mailing list for further questions.

./configure --help
`configure' configures EDoc 0.2.1 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
			  [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
			  [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR           user executables [EPREFIX/bin]
  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  --libexecdir=DIR       program executables [EPREFIX/libexec]
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --includedir=DIR       C header files [PREFIX/include]
  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR          info documentation [DATAROOTDIR/info]
  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR           man documentation [DATAROOTDIR/man]
  --docdir=DIR           documentation root [DATAROOTDIR/doc/edoc]
  --htmldir=DIR          html documentation [DOCDIR]
  --dvidir=DIR           dvi documentation [DOCDIR]
  --pdfdir=DIR           pdf documentation [DOCDIR]
  --psdir=DIR            ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-maintainer-mode  enable make rules and dependencies not useful
			  (and sometimes confusing) to the casual installer
  --disable-doxygen-doc   don't generate any doxygen documentation
  --disable-doxygen-dot   don't generate graphics for doxygen documentation
  --enable-doxygen-man    generate doxygen manual pages
  --enable-doxygen-rtf    generate doxygen RTF documentation
  --disable-doxygen-xml   don't generate doxygen XML documentation
  --enable-doxygen-chm    generate doxygen compressed HTML help documentation
  --enable-doxygen-chi    generate doxygen seperate compressed HTML help index
                          file
  --disable-doxygen-html  don't generate doxygen plain HTML documentation
  --enable-doxygen-ps     generate doxygen PostScript documentation
  --enable-doxygen-pdf    generate doxygen PDF documentation
  --enable-dev            Enable development features; Without this enabled it
                          is difficult to commit changes to CVS. EDoc stores
                          in CVS a set of non-standard "patch" files against
                          the original GCC source in CVS so that it does not
                          have to include the entire GCC source tree in CVS.
                          With this feature, the configure script will create
                          a GCC - VANILLA directory that is used as a
                          reference for generating patch files. In order to
                          make changes to the GCC mod and commit them to CVS
                          this is necessary. However it is not necessary if a
                          user just wants to compile and install EDoc from
                          source.

  --enable-validation     Development feature used to perform some internal
                          checking while running the edoc program. This makes
                          running edoc VERY SLOW, but is helpful for a
                          developer to test any modifications to the post
                          processing tool do not break object referencing
                          within the post processing tool.
  --enable-debug          Add debugging information to resulting executable.
                          DEFAULT: Off unless --enable-dev is specified.
  --disable-optimise      Build executables with optimisation turned on.
                          DEFAULT: On unless --enable-dev is specified.
  --enable-profile        Build executables with profiling enabled. DEFAULT:
                          Off
  --enable-coverage       Build executables with code coverage enabled.
                          DEFAULT: Off
  --disable-gcc           Disable building of GCC modification.
  --disable-doxygen       Disable building of Doxygen modification.
  --enable-dummy-edocpy   Creates an UNUSABLE libEDocPy but is helpful for
                          automated build testing as speeds up build times
                          dramatically.
  --disable-dependency-tracking  speeds up one-time build
  --enable-dependency-tracking   do not reject slow dependency extractors
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-static[=PKGS]  build static libraries [default=yes]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-swig           Enable the usage of SWIG to re-generate the
                          edoc_wrap.cpp and edoc.py files. If disabled will
                          just use the ones distributed in the source code.

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-log-level=<level>
                          Development feature used to set the compile time log
                          level to a given value. Where level is one of:
                          ERROR, WARNING, INFO, DEBUG, FINE, FINER, FINEST
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-pic              try to use only PIC/non-PIC objects [default=use
                          both]
  --with-tags[=TAGS]      include additional configurations [automatic]
  --with-libintl=DIR      specify location of libintl; Usage:
                          --without-libintl --with-libintl=no
                          --with-libintl=yes [DEFAULT]
                          --with-libintl=<prefix-path>
                          --with-libintl=<include-path>:<lib-path>

  --with-libiberty=DIR    specify location of libiberty; Usage:
                          --without-libiberty --with-libiberty=no
                          --with-libiberty=yes [DEFAULT]
                          --with-libiberty=<prefix-path>
                          --with-libiberty=<include-path>:<lib-path>

  --with-libbfd=DIR       specify location of libbfd; Usage: --without-libbfd
                          --with-libbfd=no --with-libbfd=yes [DEFAULT]
                          --with-libbfd=<prefix-path>
                          --with-libbfd=<include-path>:<lib-path>

  --with-libpython=DIR    specify location of libpython; Usage:
                          --without-libpython --with-libpython=no
                          --with-libpython=yes [DEFAULT]
                          --with-libpython=<prefix-path>
                          --with-libpython=<include-path>:<lib-path>


Some influential environment variables:
  DOXYGEN_PAPER_SIZE
              a4wide (default), a4, letter, legal or executive
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CC          C compiler command
  CFLAGS      C compiler flags
  CPP         C preprocessor
  CXXCPP      C++ preprocessor
  F77         Fortran 77 compiler command
  FFLAGS      Fortran 77 compiler flags

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <brendon.j.costa@gmail.com>.