apr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gst...@apache.org
Subject cvs commit: apr/test testvsn.c .cvsignore Makefile.in
Date Sun, 11 Nov 2001 07:23:57 GMT
gstein      01/11/10 23:23:57

  Modified:    misc/unix Makefile.in
               test     .cvsignore Makefile.in
  Added:       include  apr_version.h
               misc/unix version.c
               test     testvsn.c
  Log:
  Add versioning mechanisms/APIs to APR.
  
  Revision  Changes    Path
  1.1                  apr/include/apr_version.h
  
  Index: apr_version.h
  ===================================================================
  /* ====================================================================
   * 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
   * <http://www.apache.org/>.
   */
  
  #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 */
  
  
  
  1.29      +1 -1      apr/misc/unix/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/apr/misc/unix/Makefile.in,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- Makefile.in	2001/01/09 11:06:01	1.28
  +++ Makefile.in	2001/11/11 07:23:57	1.29
  @@ -1,7 +1,7 @@
   
   TARGETS = \
   	start.lo getopt.lo otherchild.lo errorcodes.lo rand.lo \
  -	uuid.lo getuuid.lo
  +	uuid.lo getuuid.lo version.lo
   
   # bring in rules.mk for standard functionality
   @INCLUDE_RULES@
  
  
  
  1.1                  apr/misc/unix/version.c
  
  Index: version.c
  ===================================================================
  /* ====================================================================
   * 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
   * <http://www.apache.org/>.
   */
  
  #include "apr_version.h"
  
  APR_DECLARE(void) apr_version(apr_version_t *pvsn)
  {
      pvsn->major = APR_MAJOR_VERSION;
      pvsn->minor = APR_MINOR_VERSION;
      pvsn->patch = APR_PATCH_VERSION;
  #ifdef APR_IS_DEV_VERSION
      pvsn->is_dev = 1;
  #else
      pvsn->is_dev = 0;
  #endif
  }
  
  APR_DECLARE(const char *) apr_version_string(void)
  {
      return APR_VERSION_STRING;
  }
  
  
  
  1.31      +1 -0      apr/test/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/apr/test/.cvsignore,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- .cvsignore	2001/09/24 04:17:25	1.30
  +++ .cvsignore	2001/11/11 07:23:57	1.31
  @@ -48,3 +48,4 @@
   testuser
   test.fil
   testprocmutex
  +testvsn
  
  
  
  1.68      +5 -1      apr/test/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/apr/test/Makefile.in,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- Makefile.in	2001/09/19 20:08:05	1.67
  +++ Makefile.in	2001/11/11 07:23:57	1.68
  @@ -30,7 +30,8 @@
   	teststr@EXEEXT@ \
   	testuser@EXEEXT@ \
           testsockets@EXEEXT@ \
  -	testprocmutex@EXEEXT@
  +	testprocmutex@EXEEXT@ \
  +	testvsn@EXEEXT@
   
   TARGETS = $(PROGRAMS)
   
  @@ -144,5 +145,8 @@
   
   testprocmutex@EXEEXT@: testprocmutex.lo $(LOCAL_LIBS)
   	$(LINK) testprocmutex.lo $(LOCAL_LIBS) $(ALL_LIBS)
  +
  +testvsn@EXEEXT@: testvsn.lo $(LOCAL_LIBS)
  +	$(LINK) testvsn.lo $(LOCAL_LIBS) $(ALL_LIBS)
   
   # DO NOT REMOVE
  
  
  
  1.1                  apr/test/testvsn.c
  
  Index: testvsn.c
  ===================================================================
  /* ====================================================================
   * 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
   * <http://www.apache.org/>.
   */
  
  #include <stdio.h>
  
  #include "apr_version.h"
  
  
  int main(int argc, char **argv)
  {
      apr_version_t vsn;
  
      printf("compiled integer form: %d.%d.%d%s\ncompiled string form:  %s\n",
             APR_MAJOR_VERSION, APR_MINOR_VERSION, APR_PATCH_VERSION,
  #ifdef APR_IS_DEV_VERSION
             "-dev",
  #else
             "",
  #endif
             APR_VERSION_STRING);
  
      apr_version(&vsn);
      printf("runtime integer form:  %d.%d.%d%s\nruntime string form:   %s\n",
             vsn.major, vsn.minor, vsn.patch,
             vsn.is_dev ? "-dev" : "",
             apr_version_string());
  
      return 0;
  }
  
  
  

Mime
View raw message