summaryrefslogtreecommitdiffstats
path: root/php-ext-snappy-pr4.patch
blob: d304a955eb1dcb5f06d02e189e1f5e7fad9f0b46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
From 0416fc87704f29badb669915ad78e1c3084e2fcd Mon Sep 17 00:00:00 2001
From: Remi Collet <fedora@famillecollet.com>
Date: Tue, 6 Sep 2016 15:51:14 +0200
Subject: [PATCH] add support for build with sytem library

---
 config.m4       | 41 ++++++++++++++++++++++++++++++++++-------
 snappy.c        |  6 +++++-
 tests/info.phpt |  2 +-
 3 files changed, 40 insertions(+), 9 deletions(-)

diff --git a/config.m4 b/config.m4
index 94837ec..2d06e98 100644
--- a/config.m4
+++ b/config.m4
@@ -25,10 +25,40 @@ PHP_ARG_ENABLE(snappy, whether to enable snappy support,
 [  --enable-snappy           Enable snappy support])
 
 PHP_ARG_WITH(snappy-includedir, for snappy header,
-[  --with-snappy-includedir=DIR  snappy header files], yes)
+[  --with-snappy-includedir=DIR  snappy header files], no, no)
 
 if test "$PHP_SNAPPY" != "no"; then
 
+  AC_MSG_CHECKING([searching for libsnappy])
+
+  if test "$PHP_SNAPPY_INCLUDEDIR" != "no"; then
+    for i in $PHP_SNAPPY_INCLUDEDIR /usr/local /usr; do
+      if test -r $i/include/snappy-c.h; then
+        LIBSNAPPY_CFLAGS="-I$i/include"
+        LIBSNAPPY_LIBDIR="$i/$PHP_LIBDIR"
+        AC_MSG_RESULT(found in $i)
+        break
+      fi
+    done
+    if test -z "$LIBSNAPPY_LIBDIR"; then
+      AC_MSG_RESULT(not found)
+      AC_MSG_ERROR(Please reinstall the snappy library distribution)
+    fi
+    PHP_CHECK_LIBRARY(snappy, snappy_compress,
+    [
+      PHP_ADD_LIBRARY_WITH_PATH(snappy, $LIBSNAPPY_LIBDIR, SNAPPY_SHARED_LIBADD)
+      AC_DEFINE(HAVE_LIBSNAPPY,1,[ ])
+    ], [
+      AC_MSG_ERROR(could not find usable libsnappy)
+    ], [
+      -L$LIBSNAPPY_LIBDIR
+    ])
+
+    PHP_SUBST(SNAPPY_SHARED_LIBADD)
+    PHP_NEW_EXTENSION(snappy, snappy.c, $ext_shared,, $LIBSNAPPY_CFLAGS)
+  else
+    AC_MSG_RESULT(use bundled version)
+
   dnl compiler C++:
   PHP_REQUIRE_CXX()
 
@@ -121,10 +151,7 @@ if test "$PHP_SNAPPY" != "no"; then
 
   PHP_NEW_EXTENSION(snappy, snappy.c $SNAPPY_SOURCES, $ext_shared)
 
-  ifdef([PHP_INSTALL_HEADERS],
-  [
-    PHP_INSTALL_HEADERS([ext/snappy/], [php_snappy.h])
-  ], [
-    PHP_ADD_MAKEFILE_FRAGMENT
-  ])
+  PHP_ADD_BUILD_DIR($ext_builddir/snappy, 1)
+  PHP_ADD_INCLUDE([$ext_srcdir/snappy])
+  fi
 fi
diff --git a/snappy.c b/snappy.c
index b76fae9..9ffba4b 100644
--- a/snappy.c
+++ b/snappy.c
@@ -9,7 +9,7 @@
 #include "php_snappy.h"
 
 /* snappy */
-#include "snappy/snappy-c.h"
+#include <snappy-c.h>
 
 static ZEND_FUNCTION(snappy_compress);
 static ZEND_FUNCTION(snappy_uncompress);
@@ -33,7 +33,11 @@ PHP_MINFO_FUNCTION(snappy)
     php_info_print_table_start();
     php_info_print_table_row(2, "Snappy support", "enabled");
     php_info_print_table_row(2, "Extension Version", SNAPPY_EXT_VERSION);
+#ifdef HAVE_LIBSNAPPY
+    php_info_print_table_row(2, "Snappy Version", "system library");
+#else
     php_info_print_table_row(2, "Snappy Version", SNAPPY_LIB_VERSION);
+#endif
     php_info_print_table_end();
 }
 
diff --git a/tests/info.phpt b/tests/info.phpt
index 98939aa..f163823 100644
--- a/tests/info.phpt
+++ b/tests/info.phpt
@@ -14,5 +14,5 @@ snappy
 
 Snappy support => enabled
 Extension Version => %d.%d.%d
-Snappy Version => %d.%d.%d
+Snappy Version => %s
 %a