/* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2000-2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * . */ #ifndef APR_VERSION_H #define APR_VERSION_H #include "apr.h" #ifdef __cplusplus extern "C" { #endif /* APR's Version There are several different mechanisms for accessing the version. There is a string form, and a set of numbers; in addition, there are constants which can be compiled into your application, and you can query the library being used for its actual version. Note that it is possible for an application to detect that it has been compiled against a different version of APR by use of the compile-time constants and the use of the run-time query function. ### we have not defined source/binary compatibility guidelines yet and ### how those map against these (release) version numbers. a strawman ### would be the following text: APR is binary-compatible (an app compiled against one version does not need to be recompiled to work against another version) for the same MAJOR and MINOR versions. APR is source-compatible (an app needs to be recompiled, but will work the same) for the same MAJOR version. If the MAJOR version changes, then an application may need source changes. Note that APR is defined to be forward compatible only, meaning that a given application will be compatible with APR releases moving forward in time. An application may not be compatible with earlier versions of an APR library (even if the major and minor versions match). This restriction is because a later version of APR can introduce new APIs. */ /* The numeric compile-time version constants. These constants are the authoritative version numbers for APR. */ #define APR_MAJOR_VERSION 0 #define APR_MINOR_VERSION 9 #define APR_PATCH_VERSION 0 /* This symbol is defined for internal, "development" copies of APR. This symbol will be #undef'd for releases. */ #define APR_IS_DEV_VERSION /* The formatted string of APR's version */ #define APR_VERSION_STRING \ APR_STRINGIFY(APR_MAJOR_VERSION) "." \ APR_STRINGIFY(APR_MINOR_VERSION) "." \ APR_STRINGIFY(APR_PATCH_VERSION) \ APR_IS_DEV_STRING /* The numeric version information is broken out into fields within this structure. */ typedef struct { int major; int minor; int patch; int is_dev; } apr_version_t; /* Return APR's version information information in a numeric form. @param pvsn Pointer to a version structure for returning the version information. */ APR_DECLARE(void) apr_version(apr_version_t *pvsn); /* Return APR's version information as a string. */ APR_DECLARE(const char *) apr_version_string(void); /* Internal: helper macros for stringifying the version numbers */ #define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n) #define APR_STRINGIFY_HELPER(n) #n /* Internal: string form of the "is dev" flag */ #ifdef APR_IS_DEV_VERSION #define APR_IS_DEV_STRING "-dev" #else #define APR_IS_DEV_STRING "" #endif #ifdef __cplusplus } #endif #endif /* APR_VERSION_H */