summaryrefslogtreecommitdiffstats
path: root/xmldiff-system-diffmark.patch
blob: 7443064983a2efcdefbcb0d67fde6e5822e617f0 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Index: config.m4
===================================================================
--- config.m4	(révision 331572)
+++ config.m4	(copie de travail)
@@ -2,11 +2,13 @@
 dnl config.m4 for extension xmldiff
 
 PHP_ARG_ENABLE(xmldiff, whether to enable xmldiff support,
-[  --enable-xmldiff           Enable xmldiff support])
+[  --enable-xmldiff        Enable xmldiff support])
+PHP_ARG_WITH(libdiffmark, whether to use system diffmark library,
+[  --with-libdiffmark=DIR  XMLDiff: diffmark install prefix], no, no)
 
 if test -z "$PHP_LIBXML_DIR"; then
   PHP_ARG_WITH(libxml-dir, libxml2 install dir,
-  [  --with-libxml-dir=DIR     XMLDiff: libxml2 install prefix], no, no)
+  [  --with-libxml-dir=DIR   XMLDiff: libxml2 install prefix], no, no)
 fi
 
 if test "$PHP_XMLDIFF" != "no"; then
@@ -21,45 +23,83 @@
     AC_MSG_ERROR([XMLDiff extension requires DOM extension])
   fi
 
-  PHP_DIFFMARK_SOURCES="diffmark/lib/compare.cc \
-    diffmark/lib/diff.cc \
-    diffmark/lib/link.cc \
-    diffmark/lib/merge.cc \
-    diffmark/lib/namespacecollector.cc \
-    diffmark/lib/nspace.cc \
-    diffmark/lib/target.cc \
-    diffmark/lib/xbuffer.cc \
-    diffmark/lib/xdoc.cc \
-    diffmark/lib/xutil.cc"
+  if test "$PHP_LIBDIFFMARK" != "no"; then
+    SEARCH_PATH="/usr /usr/local"
+    SEARCH_FOR="/include/diffmark/diff.hh"
+    AC_MSG_CHECKING([for diffmark headers])
+    if test -r $PHP_LIBDIFFMARK/$SEARCH_FOR; then # path given as parameter
+      LIBDIFFMARK_DIR=$PHP_LIBDIFFMARK
+    else
+      for i in $SEARCH_PATH ; do
+        if test -r $i/$SEARCH_FOR; then
+          LIBDIFFMARK_DIR=$i
+        fi
+      done
+    fi
+  
+    if test -z "$LIBDIFFMARK_DIR"; then
+      AC_MSG_RESULT([not found])
+      AC_MSG_ERROR([The required diffmark library was not found.])
+    else
+      AC_MSG_RESULT(found in $LIBDIFFMARK_DIR)
+    fi
 
+    PHP_ADD_INCLUDE($LIBDIFFMARK_DIR/include/diffmark)
+    AC_DEFINE(HAVE_LIBDIFFMARK,1,[Use system diffmark library])
+    PHP_ADD_LIBRARY_WITH_PATH(diffmark, $LIBDIFFMARK_DIR/lib, XMLDIFF_SHARED_LIBADD) 
 
-  PHP_SETUP_LIBXML(XMLDIFF_SHARED_LIBADD, [
-    AC_DEFINE(HAVE_XMLDIFF,1,[ ])
-    PHP_SUBST(XMLDIFF_SHARED_LIBADD)
-    PHP_NEW_EXTENSION(xmldiff, $PHP_DIFFMARK_SOURCES xmldiff.cpp, $ext_shared)
-    PHP_ADD_EXTENSION_DEP(xmldiff, dom, true)
-    PHP_ADD_EXTENSION_DEP(xmldiff, libxml, true)
-    PHP_ADD_BUILD_DIR($ext_builddir/diffmark/lib)
-    PHP_ADD_INCLUDE($ext_srcdir/diffmark/lib)
-    PHP_ADD_INCLUDE($ext_builddir/diffmark/lib)
-    PHP_ADD_INCLUDE($ext_srcdir/simplexml_compat)
-    PHP_ADD_INCLUDE($ext_builddir/simplexml_compat)
-    PHP_INSTALL_HEADERS([ext/xmldiff/php_xmldiff.h])
-    PHP_INSTALL_HEADERS([diffmark/lib/compare.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/compareimpl.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/diff.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/lcs.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/lcsimpl.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/link.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/merge.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/namespacecollector.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/nspace.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/target.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/xbuffer.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/xdoc.hh])
-    PHP_INSTALL_HEADERS([diffmark/lib/xutil.hh])
-  ], [
-    AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.])
-  ])
+    PHP_SETUP_LIBXML(XMLDIFF_SHARED_LIBADD, [
+      AC_DEFINE(HAVE_XMLDIFF,1,[ ])
+      PHP_SUBST(XMLDIFF_SHARED_LIBADD)
+      PHP_NEW_EXTENSION(xmldiff, xmldiff.cpp, $ext_shared)
+      PHP_ADD_EXTENSION_DEP(xmldiff, dom, true)
+      PHP_ADD_EXTENSION_DEP(xmldiff, libxml, true)
+      PHP_ADD_INCLUDE($ext_srcdir/simplexml_compat)
+      PHP_ADD_INCLUDE($ext_builddir/simplexml_compat)
+      PHP_INSTALL_HEADERS([ext/xmldiff/php_xmldiff.h])
+    ], [
+      AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.])
+    ])
+  else
+    PHP_DIFFMARK_SOURCES="diffmark/lib/compare.cc \
+      diffmark/lib/diff.cc \
+      diffmark/lib/link.cc \
+      diffmark/lib/merge.cc \
+      diffmark/lib/namespacecollector.cc \
+      diffmark/lib/nspace.cc \
+      diffmark/lib/target.cc \
+      diffmark/lib/xbuffer.cc \
+      diffmark/lib/xdoc.cc \
+      diffmark/lib/xutil.cc"
 
+    PHP_SETUP_LIBXML(XMLDIFF_SHARED_LIBADD, [
+      AC_DEFINE(HAVE_XMLDIFF,1,[ ])
+      PHP_SUBST(XMLDIFF_SHARED_LIBADD)
+      PHP_NEW_EXTENSION(xmldiff, $PHP_DIFFMARK_SOURCES xmldiff.cpp, $ext_shared)
+      PHP_ADD_EXTENSION_DEP(xmldiff, dom, true)
+      PHP_ADD_EXTENSION_DEP(xmldiff, libxml, true)
+      PHP_ADD_BUILD_DIR($ext_builddir/diffmark/lib)
+      PHP_ADD_INCLUDE($ext_srcdir/diffmark/lib)
+      PHP_ADD_INCLUDE($ext_builddir/diffmark/lib)
+      PHP_ADD_INCLUDE($ext_srcdir/simplexml_compat)
+      PHP_ADD_INCLUDE($ext_builddir/simplexml_compat)
+      PHP_INSTALL_HEADERS([ext/xmldiff/php_xmldiff.h])
+      PHP_INSTALL_HEADERS([diffmark/lib/compare.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/compareimpl.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/diff.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/lcs.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/lcsimpl.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/link.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/merge.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/namespacecollector.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/nspace.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/target.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/xbuffer.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/xdoc.hh])
+      PHP_INSTALL_HEADERS([diffmark/lib/xutil.hh])
+    ], [
+      AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.])
+    ])
+  fi
+
 fi