##
##  config.layout -- Pre-defined Installation Path Layouts
##
##  Hints:
##  - layouts can be loaded with configure's --enable-layout=ID option
##  - when no --enable-layout option is given, the default layout is `Apache'
##  - a trailing plus character (`+') on paths is replaced with a 
##    `/<target>' suffix where <target> is currently hardcoded to 'apache2'.
##    (This may become a configurable parameter at some point.)
##

#   Classical Apache path layout.
<Layout Apache>
    prefix:        /usr/local/apache2
    exec_prefix:   ${prefix}
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/bin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/modules
    mandir:        ${prefix}/man
    sysconfdir:    ${prefix}/conf
    datadir:       ${prefix}
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${prefix}/include
    localstatedir: ${prefix}
    runtimedir:    ${localstatedir}/logs
    statedir:      ${localstatedir}/state
    logfiledir:    ${localstatedir}/logs
    proxycachedir: ${localstatedir}/proxy
</Layout>

#   GNU standards conforming path layout.
#   See FSF's GNU project `make-stds' document for details.
<Layout GNU>
    prefix:        /usr/local
    exec_prefix:   ${prefix}
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/libexec
    mandir:        ${prefix}/man
    sysconfdir:    ${prefix}/etc+
    datadir:       ${prefix}/share+
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${prefix}/include+
    localstatedir: ${prefix}/var+
    runtimedir:    ${localstatedir}/run
    statedir:      ${localstatedir}/state
    logfiledir:    ${localstatedir}/log
    proxycachedir: ${localstatedir}/proxy
</Layout>

#   Mac OS X Server (Rhapsody)
<Layout Mac OS X Server>
    prefix:        /Local/Library/WebServer
    exec_prefix:   /usr
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    /System/Library/Apache/Modules
    mandir:        ${exec_prefix}/share/man
    sysconfdir:    ${prefix}/Configuration
    datadir:       ${prefix}
    installbuilddir: /System/Library/Apache/Build
    errordir:      /System/Library/Apache/Error
    iconsdir:      /System/Library/Apache/Icons
    manualdir:     /System/Library/Apache/Manual
    htdocsdir:     ${datadir}/Documents
    cgidir:        ${datadir}/CGI-Executables
    includedir:    /System/Library/Frameworks/Apache.framework/Versions/2.0/Headers
    localstatedir: /var
    runtimedir:    ${prefix}/Logs
    statedir:      ${prefix}/State
    logfiledir:    ${prefix}/Logs
    proxycachedir: ${prefix}/ProxyCache
</Layout>

#   Darwin/Mac OS Layout
<Layout Darwin>
    prefix:        /usr
    exec_prefix:   ${prefix}
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/libexec+
    mandir:        ${prefix}/share/man
    datadir:       /Library/WebServer
    sysconfdir:    /etc+
    installbuilddir: ${prefix}/share/httpd/build
    errordir:      ${prefix}/share/httpd/error
    iconsdir:      ${prefix}/share/httpd/icons
    htdocsdir:     ${datadir}/Documents
    manualdir:     ${datadir}/share/httpd/manual
    cgidir:        ${datadir}/CGI-Executables
    includedir:    ${prefix}/include+
    localstatedir: /var
    runtimedir:    ${localstatedir}/run
    statedir:      ${localstatedir}/state
    logfiledir:    ${localstatedir}/log+
    proxycachedir: ${runtimedir}/proxy
</Layout>

#   Red Hat Linux 7.x layout
<Layout RedHat>
    prefix:        /usr
    exec_prefix:   ${prefix}
    bindir:        ${prefix}/bin
    sbindir:       ${prefix}/sbin
    libdir:        ${prefix}/lib
    libexecdir:    ${prefix}/lib/apache
    mandir:        ${prefix}/man
    sysconfdir:    /etc/httpd/conf
    datadir:       /var/www
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/html
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${prefix}/include/apache
    localstatedir: /var
    runtimedir:    ${localstatedir}/run
    statedir:      ${localstatedir}/lib/httpd
    logfiledir:    ${localstatedir}/log/httpd
    proxycachedir: ${localstatedir}/cache/httpd
</Layout>     

# Layout used in Fedora httpd packaging.
<Layout Fedora>
    prefix:        /usr
    localstatedir: /var
    exec_prefix:   ${prefix}
    bindir:        ${prefix}/bin
    sbindir:       ${prefix}/sbin
    libdir:        ${prefix}/lib
    libexecdir:    ${prefix}/libexec
    mandir:        ${prefix}/man
    sysconfdir:    /etc/httpd/conf
    datadir:       ${prefix}/share/httpd
    installbuilddir: ${libdir}/httpd/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${localstatedir}/www/html
    manualdir:     ${datadir}/manual
    cgidir:        ${localstatedir}/www/cgi-bin
    includedir:    ${prefix}/include/httpd
    runtimedir:    /run/httpd
    logfiledir:    ${localstatedir}/log/httpd
    statedir:      ${localstatedir}/lib/httpd
    proxycachedir: ${localstatedir}/cache/httpd/proxy
</Layout>     

#   According to the /opt filesystem conventions
<Layout opt>
    prefix:        /opt/apache
    exec_prefix:   ${prefix}
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/libexec
    mandir:        ${prefix}/man
    sysconfdir:    /etc${prefix}
    datadir:       ${prefix}/share
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${prefix}/include
    localstatedir: /var${prefix}
    runtimedir:    ${localstatedir}/run
    logfiledir:    ${localstatedir}/logs
    statedir:      ${localstatedir}/state
    proxycachedir: ${localstatedir}/proxy
</Layout>

#   SuSE 6.x layout
<Layout SuSE>
    prefix:        /usr
    exec_prefix:   ${prefix}
    bindir:        ${prefix}/bin
    sbindir:       ${prefix}/sbin
    libdir:        ${prefix}/lib
    libexecdir:    ${prefix}/lib/apache
    mandir:        ${prefix}/share/man
    sysconfdir:    /etc/httpd
    datadir:       /usr/local/httpd
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${prefix}/include/apache
    localstatedir: /var/lib/httpd
    statedir:      ${localstatedir}
    runtimedir:    /var/run
    logfiledir:    /var/log/httpd
    proxycachedir: /var/cache/httpd
</Layout>

#   BSD/OS layout
<Layout BSDI>
    prefix:        /var/www
    exec_prefix:   /usr/contrib
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/bin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/libexec/apache
    mandir:        ${exec_prefix}/man
    sysconfdir:    ${prefix}/conf
    datadir:       ${prefix}
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${exec_prefix}/include/apache
    localstatedir: /var
    runtimedir:    ${localstatedir}/run
    logfiledir:    ${localstatedir}/log/httpd
    statedir:      ${prefix}/state
    proxycachedir: ${localstatedir}/proxy
</Layout>

#   Solaris 8 Layout
<Layout Solaris>
    prefix:        /usr/apache
    exec_prefix:   ${prefix}
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/bin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/libexec
    mandir:        ${exec_prefix}/man
    sysconfdir:    /etc/apache
    datadir:       /var/apache
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${exec_prefix}/include
    localstatedir: ${prefix}
    runtimedir:    /var/run
    statedir:      ${datadir}/state
    logfiledir:    ${datadir}/logs
    proxycachedir: ${datadir}/proxy
</Layout>

#   OpenBSD Layout
<Layout OpenBSD>
    prefix:        /var/www
    exec_prefix:   /usr
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/lib/apache/modules
    mandir:        ${exec_prefix}/share/man
    sysconfdir:    ${prefix}/conf
    datadir:       ${prefix}
    installbuilddir: ${prefix}/build
    errordir:      ${prefix}/error
    iconsdir:      ${prefix}/icons
    htdocsdir:     ${prefix}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${prefix}/cgi-bin
    includedir:    ${exec_prefix}/lib/apache/include
    localstatedir: ${prefix}
    runtimedir:    ${prefix}/logs
    logfiledir:    ${prefix}/logs
    statedir:      ${prefix}/state
    proxycachedir: ${prefix}/proxy
</Layout>

# FreeBSD Layout
<Layout FreeBSD>
  prefix:        /usr/local
  exec_prefix:   ${prefix}
  bindir:        ${exec_prefix}/bin
  sbindir:       ${exec_prefix}/sbin
  libdir:        ${exec_prefix}/lib
  libexecdir:    ${exec_prefix}/libexec/apache2
  mandir:        ${prefix}/man
  sysconfdir:    ${prefix}/etc/apache2
  datadir:       ${prefix}/www
  installbuilddir: ${prefix}/share/apache2/build
  errordir:      ${datadir}/error
  iconsdir:      ${datadir}/icons
  htdocsdir:     ${datadir}/data
  manualdir:     ${prefix}/share/doc/apache2
  cgidir:        ${datadir}/cgi-bin
  includedir:    ${prefix}/include/apache2
  localstatedir: /var
  runtimedir:    ${localstatedir}/run
  logfiledir:    ${localstatedir}/log
  proxycachedir: ${datadir}/proxy
</Layout>

# Debian layout
<Layout Debian>
    prefix:        
    exec_prefix:   ${prefix}/usr
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/lib/apache2/modules
    mandir:        ${exec_prefix}/share/man
    sysconfdir:    ${prefix}/etc/apache2
    datadir:       ${exec_prefix}/share/apache2
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${prefix}/usr/share/apache2/default-site/htdocs
    manualdir:     ${htdocsdir}/manual
    cgidir:        ${prefix}/usr/lib/cgi-bin
    includedir:    ${exec_prefix}/include/apache2
    localstatedir: ${prefix}/var/lock/apache2
    statedir:      ${prefix}/var/lib/apache2
    runtimedir:    ${prefix}/var/run/apache2
    logfiledir:    ${prefix}/var/log/apache2
    proxycachedir: ${prefix}/var/cache/apache2/proxy
    infodir:       ${exec_prefix}/share/info
    installbuilddir: ${prefix}/usr/share/apache2/build
    errordir:      ${datadir}/error
</Layout>

# Generic RPM layout
<Layout RPM>
    prefix:        /usr
    exec_prefix:   ${prefix}
    bindir:        ${prefix}/bin
    sbindir:       ${prefix}/sbin
    libdir:        ${prefix}/lib
    libexecdir:    ${libdir}/httpd/modules
    mandir:        ${prefix}/share/man
    sysconfdir:    /etc/httpd/conf
    installbuilddir: ${libdir}/httpd/build
    includedir:    ${prefix}/include/httpd
    localstatedir: /var
    datadir:       ${localstatedir}/www
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/html
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    runtimedir:    ${localstatedir}/run
    statedir:      ${localstatedir}/lib/httpd
    logfiledir:    ${localstatedir}/log/httpd
    proxycachedir: ${localstatedir}/cache/httpd/cache-root
</Layout>

# AIX layout
<Layout AIX>
    prefix:        /opt/httpd
    exec_prefix:   /opt/httpd
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/sbin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/libexec
    mandir:        /usr/share/man
    sysconfdir:    /etc/httpd
    datadir:       /var/httpd
    installbuilddir: ${datadir}/build
    errordir:      ${datadir}/error
    htdocsdir:     ${datadir}/htdocs
    cgidir:        ${datadir}/cgi-bin
    iconsdir:      ${prefix}/icons
    manualdir:     ${prefix}/manual
    includedir:    ${prefix}/include
    localstatedir: /var/httpd
    statedir:      ${localstatedir}/state
    runtimedir:    ${localstatedir}/run
    logfiledir:    ${localstatedir}/logs
    proxycachedir: ${localstatedir}/proxy
</Layout>

# FHS layout
<Layout Slackware-FHS>
    prefix:          /usr
    exec_prefix:     ${prefix}
    bindir:          ${prefix}/bin
    sbindir:         ${prefix}/sbin
    libdir:          ${prefix}/lib/httpd
    libexecdir:      ${prefix}/lib/httpd/modules
    installbuilddir: ${prefix}/lib/httpd/build
    mandir:          ${prefix}/man
    sysconfdir:      /etc/httpd
    datadir:         /srv/httpd
    iconsdir:        ${datadir}/icons
    htdocsdir:       ${datadir}/htdocs
    manualdir:       ${htdocsdir}/manual
    cgidir:          ${datadir}/cgi-bin
    errordir:        ${datadir}/error
    includedir:      ${prefix}/include/httpd
    localstatedir:   /var
    runtimedir:      ${localstatedir}/run/httpd
    statedir:        ${localstatedir}/lib/httpd
    logfiledir:      ${localstatedir}/log/httpd
    proxycachedir:   ${localstatedir}/cache/httpd
</Layout>

# OpenWrt layout
<Layout OpenWrt>
    prefix:          /usr
    exec_prefix:     ${prefix}
    bindir:          ${prefix}/bin
    sbindir:         ${prefix}/sbin
    libdir:          ${prefix}/lib
    libexecdir:      ${prefix}/lib+
    mandir:          ${prefix}/share/man
    sysconfdir:      /etc+
    datadir:         ${prefix}/share+
    installbuilddir: ${datadir}/build
    errordir:        ${datadir}/error
    iconsdir:        ${datadir}/icons
    htdocsdir:       ${datadir}/htdocs
    manualdir:       /usr/share/doc/apache2/manual
    cgidir:          ${datadir}/cgi-bin
    includedir:      ${prefix}/include+
    localstatedir:   /var
    runtimedir:      ${localstatedir}/run+
    logfiledir:      ${localstatedir}/log+
    proxycachedir:   ${localstatedir}/cache/apache2
</Layout>

