autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Autoconf and Doxygen


From: Christopher Key
Subject: Autoconf and Doxygen
Date: Thu, 04 Oct 2007 20:48:19 +0100
User-agent: Thunderbird 2.0.0.6 (Windows/20070728)

Hello,

I've a package for which I'd like to include some Doxygen created documentation in the distributed tarball. I'm having some problems, I think fundamentally because the way the documentation gets built doesn't fit very well with the src and build tree ideas.

Things all seem pretty straighforward when one is dealing with items that get built on the target system, e.g. c sources producing an executable binary. When I run 'make dist' the source code for the object gets included in the distributed tarball. This is then unzipped into one location on the target machine (i.e. the source tree), compiled into a mirror 'build' tree, and the objects are all installed from the build tree.

However, documentation is a little bit different. Take the following scenario.

In a fresh checkout from the source repository:

./autogen.sh (runs autoreconf ...)
mkdir bld && cd bld
../configure
make dist

Here, the documentation will have been built in the bld directory, and if I run 'make install', it needs to know to install it from here

However, if a user acquires the package tarball:

tar -xvzf package.tar.gz
cd package
mkdir bld && cd bld
../configure
make

In this case, the documentation is still in the source tree, and 'make install' needs to know to install it from there instead.



Now, the best solution that I've come up with is to say that any suitable 'make' command should always result in the documentation ending up in the build tree. I think that the required logic is as follows:

If source tree differs from build tree
   If documentation not present / out of date
      If documentation exists in source tree
         Copy documentation from source tree
      End If
   End If
End If

If documentation (still) out of date
   If doxygen present on host
      Build documentation into build tree
   Else
Remove documenation and replace with stub (don't want out of date information)
   End If
End If

I think the above covers most cases, but I'm really sure, and I've very little idea how to implement it.

Can anyone tell me how data objects are meant to be treated with autoconf / automake, which trees they're meant to exist in at which points, and so on. Is there a recommended way of doing what I want to achieve?

Regards,

Chris




reply via email to

[Prev in Thread] Current Thread [Next in Thread]