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
_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf