[bind10-dev] layout of build system

Jeremy C. Reed jreed at isc.org
Fri Oct 2 13:14:25 UTC 2009


As discussed on call yesterday, we "need to decide on layout of build 
system, headers go here, libraries go there, and so on"

Here is an idea. If this is an extracted tarball, it would be liked 
bind10-A.B.C (version) instead of "bind10".

Note this doesn't distinguish or categories by languages used.

bind10/ 
  README
  INSTALL
  (no other docs here -- keep under doc and in source tree)
  Makefile.am
  configure.ac

bind10/doc/
        generated user and developer documents, ready to read and use
        (plain text, html, and/or pdf)
 
bind10/src/

bind10/src/doc/
        Makefile.am
        source for user documents, including doc build scripts
        and documentation on how to build docs (others too)
        and styleguide and instructions for writing and maintaining docs
        (no man pages here)

bind10/src/lib/
        source for libraries
        Makefile.am
        documentation and design decisions
        source for manual pages
        all kept in sub-directories per specific libraries, such as:
bind10/src/lib/foo/
bind10/src/lib/CC
bind10/src/lib/dnsmessage
bind10/src/lib/datasource (abstract later?)
bind10/src/lib/datasource/memory (in memory data source)
 (or bind10/src/lib/memorydatasource)
bind10/src/lib/datasource/sql
 (or bind10/src/lib/sqldatasource)

bind10/src/bin/
        source for executables
        Makefile.am
        documentation and design decisions
        source for manual pages
        these are kept in sub-directories per tool, for example:
bind10/src/bin/bar/
bind10/src/bin/boss
bind10/src/bin/statsd

bind10/src/libexec/
        source for tools that are ran by other processes
        Makefile.am
        human doesn't run directly, e.g., postfix says:
                foo: fatal: do not run this command by hand
        documentation and design decisions
        source for manual pages
        also these are in sub-directories, for example:
bind10/src/libexec/baz/
bind10/src/libexec/auth/


Also this doesn't include contributed code nor dependency code. (My 
preference is, even if we have some specific need for some outside code, 
that we don't attempt to continually maintain it on our own, in our 
tree.)



More information about the bind10-dev mailing list