##                      _             _ 
##  _ __ ___   ___   __| |    ___ ___| |  mod_ssl
## | '_ ` _ \ / _ \ / _` |   / __/ __| |  Apache Interface to OpenSSL
## | | | | | | (_) | (_| |   \__ \__ \ |  www.modssl.org
## |_| |_| |_|\___/ \__,_|___|___/___/_|  ftp.modssl.org
##                      |_____|         
##  Makefile.libdir 
##  Apache 1.3 Configuration mechanism indicator file
##

This is a place-holder which indicates to Apache's Configure script that it
shouldn't provide the default targets when building the Makefile in this
directory.  Instead it'll just prepend all the important variable definitions,
and copy the Makefile.tmpl onto the end.

