pkgconfig support done (need to write example)
authorBrian Aker <brian@tangent.org>
Thu, 1 Nov 2007 09:57:39 +0000 (02:57 -0700)
committerBrian Aker <brian@tangent.org>
Thu, 1 Nov 2007 09:57:39 +0000 (02:57 -0700)
wrote wrapper for freeing memcached_stat_st structures
moved my_errno to be chached_errno (aka removed conflict with MySQL)

15 files changed:
ChangeLog
configure.ac [new file with mode: 0644]
configure.in [deleted file]
include/memcached.h
lib/Makefile.am
lib/memcached_connect.c
lib/memcached_io.c
lib/memcached_stats.c
src/memcat.c
src/memcp.c
src/memflush.c
src/memrm.c
support/Makefile.am
support/libmemcached.pc.in [new file with mode: 0644]
tests/test.c

index df62657eed75c2d5fe5a4aca709bf67a17e7fdcb..8b2f9a8a50d2f38c7217e7412b62e30a7f58aa58 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
   * Adding support for CRC hash method 
   * Adding support for UNIX sockets
   * Added additional HASHing methods of FNV1_64,FNV1A_64, FNV1_32, FNV1A_32
+  * Added pkgconfig support
+  * Fixed conflict with defined type in MySQL
 
 0.7 Tue Oct 30 09:24:05 PDT 2007
   * Poved to poll() from select()
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..5d392ca
--- /dev/null
@@ -0,0 +1,72 @@
+AC_INIT(src/memcat.c)
+AC_CONFIG_AUX_DIR(config)
+AM_CONFIG_HEADER(include/libmemcached_config.h)
+
+MEMCACHED_LIBRARY_NAME=libmemcached
+
+#release versioning
+MEMCACHED_MAJOR_VERSION=0
+MEMCACHED_MINOR_VERSION=8
+MEMCACHED_MICRO_VERSION=0
+
+#API version
+MEMCACHED_API_VERSION=1.0
+AC_SUBST(MEMCACHED_API_VERSION)
+
+#shared library versioning
+MEMCACHED_LIBRARY_VERSION=1:0:0
+#                         | | |
+#                  +------+ | +---+
+#                  |        |     |
+#                 current:revision:age
+#                  |        |     |
+#                  |        |     +- increment if interfaces have been added
+#                  |        |        set to zero if interfaces have been removed or changed
+#                  |        +- increment if source code has changed
+#                  |           set to zero if current is incremented
+#                  +- increment if interfaces have been added, removed or changed
+
+AC_SUBST(MEMCACHED_LIBRARY_VERSION)
+
+PACKAGE=$MEMCACHED_LIBRARY_NAME
+AC_SUBST(MEMCACHED_LIBRARY_NAME)
+
+MEMCACHED_VERSION=$MEMCACHED_MAJOR_VERSION.$MEMCACHED_MINOR_VERSION.$MEMCACHED_MICRO_VERSION
+MEMCACHED_RELEASE=$MEMCACHED_MAJOR_VERSION.$MEMCACHED_MINOR_VERSION
+AC_SUBST(MEMCACHED_RELEASE)
+AC_SUBST(MEMCACHED_VERSION)
+
+VERSION=$MEMCACHED_VERSION
+
+AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
+
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+AM_SANITY_CHECK
+LIBTOOL="$LIBTOOL --preserve-dup-deps"
+AC_SUBST(LIBTOOL)dnl
+AC_LANG_CPLUSPLUS
+
+sinclude(config/debug.m4)
+sinclude(config/dtrace.m4)
+
+# We only support GCC and Sun's forte at the moment
+if test "$GCC" = "yes"
+then
+  if test "$ENABLE_DEBUG" = "yes"
+  then
+    CFLAGS="-Wall -ggdb -DHAVE_DEBUG"
+  else
+    CFLAGS="-Wall -O3"
+  fi
+else
+  CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -fast -m64"
+  LDFLAGS="-lsocket -lnsl"
+  DTRACEFLAGS="-64"
+fi
+
+AC_C_CONST
+AC_TYPE_SIZE_T
+AC_CHECK_HEADERS(limits.h syslimits.h)
+AC_OUTPUT(Makefile src/Makefile tests/Makefile docs/Makefile lib/Makefile include/Makefile support/Makefile support/libmemcached.pc)
diff --git a/configure.in b/configure.in
deleted file mode 100644 (file)
index 241212e..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-AC_INIT(src/memcat.c)
-AC_CONFIG_AUX_DIR(config)
-AM_CONFIG_HEADER(include/libmemcached_config.h)
-AM_INIT_AUTOMAKE("libmemcached", 0.8)
-
-AC_PROG_CC
-AC_PROG_LIBTOOL
-LIBTOOL="$LIBTOOL --preserve-dup-deps"
-AC_SUBST(LIBTOOL)dnl
-
-sinclude(config/debug.m4)
-sinclude(config/dtrace.m4)
-
-# We only support GCC and Sun's forte at the moment
-if test "$GCC" = "yes"
-then
-  if test "$ENABLE_DEBUG" = "yes"
-  then
-    CFLAGS="-Wall -ggdb -DHAVE_DEBUG"
-  else
-    CFLAGS="-Wall -O3"
-  fi
-else
-  CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -fast -m64"
-  LDFLAGS="-lsocket -lnsl"
-  DTRACEFLAGS="-64"
-fi
-
-AC_C_CONST
-AC_TYPE_SIZE_T
-AC_CHECK_HEADERS(limits.h syslimits.h)
-AC_OUTPUT(Makefile src/Makefile tests/Makefile docs/Makefile lib/Makefile include/Makefile support/Makefile)
index a859b22117d4f2ae4d7484ed5ded2902521aae88..cff65513236d297bed9dc7c1c750f4f2bb98e9c9 100644 (file)
@@ -28,7 +28,6 @@ typedef struct memcached_server_st memcached_server_st;
 #define SMALL_STRING_LEN 1024
 #define HUGE_STRING_LEN 8196
 #define MEMCACHED_MAX_KEY 251 /* We add one to have it null terminated */
-//#define MEMCACHED_MAX_BUFFER 8196
 #define MEMCACHED_MAX_BUFFER HUGE_STRING_LEN
 
 typedef enum {
@@ -151,7 +150,7 @@ struct memcached_st {
   char write_buffer[MEMCACHED_MAX_BUFFER];
   size_t write_buffer_offset;
   char connected;
-  int my_errno;
+  int cached_errno;
   unsigned long long flags;
   int send_size;
   int recv_size;
@@ -174,6 +173,7 @@ memcached_return memcached_decrement(memcached_st *ptr,
                                      char *key, size_t key_length,
                                      unsigned int offset,
                                      unsigned int *value);
+void memcached_stat_free(memcached_st *, memcached_stat_st *);
 memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_return *error);
 memcached_return memcached_stat_servername(memcached_stat_st *stat, char *args, 
                                            char *hostname, unsigned int port);
index 46534a5afb2189a64374e13d85977d2e8beb676a..acb5fe56dd3b4bd26a755f5699b2a38ce68d9aa5 100644 (file)
@@ -46,6 +46,7 @@ libmemcached_la_SOURCES = crc.c \
                           memcached_strerror.c \
                          memcached_verbosity.c 
 libmemcached_la_LIBADD =
+libmemcached_la_LDFLAGS = -version-info $(MEMCACHED_LIBRARY_VERSION) -release $(MEMCACHED_RELEASE)
 
 if HAVE_DTRACE
   libmemcached_la_LIBADD += libmemcached_probes.o
index f30971261ac4fce229e471395af38e4aec16b09a..68b9c9398b82dc49d3ef6bee7dea479942dac5d7 100644 (file)
@@ -16,7 +16,7 @@ static memcached_return unix_socket_connect(memcached_st *ptr, unsigned int serv
   {
     if ((ptr->hosts[server_key].fd= socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
     {
-      ptr->my_errno= errno;
+      ptr->cached_errno= errno;
       return MEMCACHED_CONNECTION_SOCKET_CREATE_FAILURE;
     }
 
@@ -27,7 +27,7 @@ static memcached_return unix_socket_connect(memcached_st *ptr, unsigned int serv
     addrlen= strlen(servAddr.sun_path) + sizeof(servAddr.sun_family);
 
 test_connect:
-    if (connect(ptr->hosts[server_key].fd, (struct sockaddr_un *)&servAddr, sizeof(servAddr)) < 0)
+    if (connect(ptr->hosts[server_key].fd, (struct sockaddr *)&servAddr, sizeof(servAddr)) < 0)
     {
       switch (errno) {
         /* We are spinning waiting on connect */
@@ -38,7 +38,7 @@ test_connect:
       case EISCONN: /* We were spinning waiting on connect */
         break;
       default:
-        ptr->my_errno= errno;
+        ptr->cached_errno= errno;
         return MEMCACHED_ERRNO;
       }
       ptr->connected++;
@@ -59,7 +59,7 @@ static memcached_return tcp_connect(memcached_st *ptr, unsigned int server_key)
 
     if ((h= gethostbyname(ptr->hosts[server_key].hostname)) == NULL)
     {
-      ptr->my_errno= h_errno;
+      ptr->cached_errno= h_errno;
       return MEMCACHED_HOST_LOCKUP_FAILURE;
     }
 
@@ -70,7 +70,7 @@ static memcached_return tcp_connect(memcached_st *ptr, unsigned int server_key)
     /* Create the socket */
     if ((ptr->hosts[server_key].fd= socket(AF_INET, SOCK_STREAM, 0)) < 0)
     {
-      ptr->my_errno= errno;
+      ptr->cached_errno= errno;
       return MEMCACHED_CONNECTION_SOCKET_CREATE_FAILURE;
     }
 
@@ -117,7 +117,7 @@ test_connect:
       case EISCONN: /* We were spinning waiting on connect */
         break;
       default:
-        ptr->my_errno= errno;
+        ptr->cached_errno= errno;
         return MEMCACHED_ERRNO;
       }
       ptr->connected++;
index d2c803f3dd690393431a3b3af3a358a45324edf4..54844be445956547705d779bc1eb30934a4b0f1d 100644 (file)
@@ -62,7 +62,7 @@ ssize_t memcached_io_read(memcached_st *ptr, unsigned  int server_key,
             break;
           default:
             {
-              ptr->my_errno= errno;
+              ptr->cached_errno= errno;
               return -1;
             }
           }
@@ -156,7 +156,7 @@ ssize_t memcached_io_flush(memcached_st *ptr, unsigned int server_key)
         }
         /* Yes, we want to fall through */
       default:
-        ptr->my_errno= errno;
+        ptr->cached_errno= errno;
         return -1;
       }
     }
index f71deb46c4d713a3acc7ee297c0d8edfc0a7f6e4..e90f1c0f1a1921902a17f659395d97fd6573d636 100644 (file)
@@ -345,3 +345,8 @@ char ** memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st *stat,
 
   return list;
 }
+
+void memcached_stat_free(memcached_st *ptr, memcached_stat_st *stat)
+{
+  free(stat);
+}
index 057a585c8e7f61332c23090b0fc273f6c166abbc..1ee024279620ac982066d865f2948d13992a3b8b 100644 (file)
@@ -71,8 +71,8 @@ int main(int argc, char *argv[])
     {
       fprintf(stderr, "memcat: %s: memcache error %s", 
               argv[optind], memcached_strerror(memc, rc));
-      if (memc->my_errno)
-       fprintf(stderr, " system error %s", strerror(memc->my_errno));
+      if (memc->cached_errno)
+       fprintf(stderr, " system error %s", strerror(memc->cached_errno));
       fprintf(stderr, "\n");
     }
     optind++;
index 0eb210a701c13dd45ec10c29ceeeba8bd31a877e..09d7e9119b0ec75b30085efe6f11c8eff248ecf8 100644 (file)
@@ -119,8 +119,8 @@ int main(int argc, char *argv[])
     {
       fprintf(stderr, "memcp: %s: memcache error %s", 
              ptr, memcached_strerror(memc, rc));
-      if (memc->my_errno)
-       fprintf(stderr, " system error %s", strerror(memc->my_errno));
+      if (memc->cached_errno)
+       fprintf(stderr, " system error %s", strerror(memc->cached_errno));
       fprintf(stderr, "\n");
     }
 
index 075875a2d2778616b2361cd88dd66ebf896391bf..3c47fc3cd24e22c80479d7313167f2ce81881bd5 100644 (file)
@@ -45,8 +45,8 @@ int main(int argc, char *argv[])
   {
     fprintf(stderr, "memflush: memcache error %s", 
            memcached_strerror(memc, rc));
-    if (memc->my_errno)
-      fprintf(stderr, " system error %s", strerror(memc->my_errno));
+    if (memc->cached_errno)
+      fprintf(stderr, " system error %s", strerror(memc->cached_errno));
     fprintf(stderr, "\n");
   }
 
index acfbf53fd9bf62d60eb176bc1f9397773c141d74..09f58ea4d76b83eeeca69c02798b0cb11b5c982f 100644 (file)
@@ -50,8 +50,8 @@ int main(int argc, char *argv[])
     {
       fprintf(stderr, "memrm: %s: memcache error %s", 
              argv[optind], memcached_strerror(memc, rc));
-      if (memc->my_errno)
-       fprintf(stderr, " system error %s", strerror(memc->my_errno));
+      if (memc->cached_errno)
+       fprintf(stderr, " system error %s", strerror(memc->cached_errno));
       fprintf(stderr, "\n");
     }
 
index 103bd2576fed3e83777ec4390e7f9db22bc907e8..34c4cc985bf0afbe8cb1877412cedbf8060e6dcd 100644 (file)
@@ -1 +1,4 @@
 EXTRA_DIST = libmemcached.spec set_benchmark.sh
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libmemcached.pc
diff --git a/support/libmemcached.pc.in b/support/libmemcached.pc.in
new file mode 100644 (file)
index 0000000..cb9d8c3
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libmemcached
+Description: libmemcached C library.
+Version: @VERSION@
+Libs: -L${libdir} -lmemcached
+Cflags: -I${includedir}/@MEMCACHED_LIBRARY_NAME@
+
index 7b8c462e247380f326811caaf6184e7b60fe828e..523f303401a5497d8943cb5ded9790afd02c2482 100644 (file)
@@ -477,7 +477,7 @@ void get_stats(memcached_st *memc)
    free(list);
  }
 
free(stat);
memcached_stat_free(NULL, stat);
 }
 
 void add_host_test(memcached_st *memc)