Makefile.in revision 362181
1#
2# Makefile.in:  template Makefile for Subversion
3#
4# ====================================================================
5#    Licensed to the Apache Software Foundation (ASF) under one
6#    or more contributor license agreements.  See the NOTICE file
7#    distributed with this work for additional information
8#    regarding copyright ownership.  The ASF licenses this file
9#    to you under the Apache License, Version 2.0 (the
10#    "License"); you may not use this file except in compliance
11#    with the License.  You may obtain a copy of the License at
12#
13#      http://www.apache.org/licenses/LICENSE-2.0
14#
15#    Unless required by applicable law or agreed to in writing,
16#    software distributed under the License is distributed on an
17#    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18#    KIND, either express or implied.  See the License for the
19#    specific language governing permissions and limitations
20#    under the License.
21# ====================================================================
22#
23
24top_builddir = .
25top_srcdir = @top_srcdir@
26abs_builddir = @abs_builddir@
27abs_srcdir = @abs_srcdir@
28VPATH = @top_srcdir@
29
30SVN_RA_LIB_DEPS = @SVN_RA_LIB_DEPS@
31SVN_RA_LIB_INSTALL_DEPS = @SVN_RA_LIB_INSTALL_DEPS@
32SVN_RA_LIB_LINK = @SVN_RA_LIB_LINK@
33
34SVN_FS_LIB_DEPS = @SVN_FS_LIB_DEPS@
35SVN_FS_LIB_INSTALL_DEPS = @SVN_FS_LIB_INSTALL_DEPS@
36SVN_FS_LIB_LINK = @SVN_FS_LIB_LINK@
37
38SWIG_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig
39SWIG_BUILD_DIR = $(abs_builddir)/subversion/bindings/swig
40
41SCHEMA_DIR = subversion/svn/schema
42
43SVN_APR_LIBS = @SVN_APR_LIBS@
44SVN_APRUTIL_LIBS = @SVN_APRUTIL_LIBS@
45SVN_APR_MEMCACHE_LIBS = @SVN_APR_MEMCACHE_LIBS@
46SVN_DB_LIBS = @SVN_DB_LIBS@
47SVN_GPG_AGENT_LIBS = @SVN_GPG_AGENT_LIBS@
48SVN_GNOME_KEYRING_LIBS = @SVN_GNOME_KEYRING_LIBS@
49SVN_KWALLET_LIBS = @SVN_KWALLET_LIBS@
50SVN_MAGIC_LIBS = @SVN_MAGIC_LIBS@
51SVN_INTL_LIBS = @SVN_INTL_LIBS@
52SVN_SASL_LIBS = @SVN_SASL_LIBS@
53SVN_SERF_LIBS = @SVN_SERF_LIBS@
54SVN_SQLITE_LIBS = @SVN_SQLITE_LIBS@
55SVN_XML_LIBS = @SVN_XML_LIBS@
56SVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
57SVN_LZ4_LIBS = @SVN_LZ4_LIBS@
58SVN_UTF8PROC_LIBS = @SVN_UTF8PROC_LIBS@
59SVN_MACOS_PLIST_LIBS = @SVN_MACOS_PLIST_LIBS@
60SVN_MACOS_KEYCHAIN_LIBS = @SVN_MACOS_KEYCHAIN_LIBS@
61
62LIBS = @LIBS@
63
64prefix = @prefix@
65exec_prefix = @exec_prefix@
66libdir = @libdir@
67fsmod_libdir = @libdir@
68ramod_libdir = @libdir@
69bdb_libdir = @libdir@
70gnome_keyring_libdir = @libdir@
71gpg_agent_libdir = @libdir@
72kwallet_libdir = @libdir@
73serf_libdir = @libdir@
74bindir = @bindir@
75includedir = @includedir@
76mandir = @mandir@
77srcdir = @srcdir@
78canonicalized_srcdir = @canonicalized_srcdir@
79datadir = @datadir@
80datarootdir = @datarootdir@
81localedir = @localedir@
82
83# where to install SVN++
84svnxx_libdir = @libdir@
85
86# where to install libsvn_swig_*
87swig_py_libdir = @libdir@
88swig_pl_libdir = @libdir@
89swig_rb_libdir = @libdir@
90
91### these possibly need further discussion
92swig_pydir = @libdir@/svn-python/libsvn
93swig_pydir_extra = @libdir@/svn-python/svn
94swig_pldir = @libdir@/svn-perl
95swig_rbdir = $(SWIG_RB_SITE_ARCH_DIR)/svn/ext
96toolsdir = @bindir@/svn-tools
97
98# where to install pkg-config files
99pkgconfig_dir = $(datadir)/pkgconfig
100
101javahl_javadir = @libdir@/svn-javahl
102javahl_javahdir = @libdir@/svn-javahl/include
103javahl_libdir = @libdir@
104javahl_test_rootdir=$(abs_builddir)/subversion/bindings/javahl/test-work
105javahl_test_srcdir=$(abs_srcdir)/subversion/bindings/javahl
106
107gnome_auth_dir = $(abs_builddir)/subversion/libsvn_auth_gnome_keyring/.libs
108kwallet_auth_dir = $(abs_builddir)/subversion/libsvn_auth_kwallet/.libs
109auth_plugin_dirs = $(gnome_auth_dir):$(kwallet_auth_dir)
110
111MSGFMT = @MSGFMT@
112MSGFMTFLAGS = @MSGFMTFLAGS@
113MSGMERGE = @MSGMERGE@
114XGETTEXT = @XGETTEXT@
115TRANG = @TRANG@
116
117PACKAGE_NAME=@PACKAGE_NAME@
118PACKAGE_VERSION=@PACKAGE_VERSION@
119
120CC = @CC@
121CXX = @CXX@
122CPP = @CPP@
123EXEEXT = @EXEEXT@
124
125SHELL = @SHELL@
126LIBTOOL = @SVN_LIBTOOL@
127LTFLAGS = --tag=CC --silent
128LTCXXFLAGS = --tag=CXX --silent
129LT_CFLAGS = @LT_CFLAGS@
130LT_LDFLAGS = @LT_LDFLAGS@
131LT_SO_VERSION = @SVN_LT_SOVERSION@
132LT_NO_UNDEFINED = @LT_NO_UNDEFINED@
133LT_CXX_LIBADD = @LT_CXX_LIBADD@
134
135INCLUDES = -I$(top_srcdir)/subversion/include -I$(top_builddir)/subversion \
136           @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ @SVN_APR_MEMCACHE_INCLUDES@ \
137           @SVN_DB_INCLUDES@ @SVN_GNOME_KEYRING_INCLUDES@ \
138           @SVN_KWALLET_INCLUDES@ @SVN_MAGIC_INCLUDES@ \
139           @SVN_SASL_INCLUDES@ @SVN_SERF_INCLUDES@ @SVN_SQLITE_INCLUDES@ \
140           @SVN_XML_INCLUDES@ @SVN_ZLIB_INCLUDES@ @SVN_LZ4_INCLUDES@ \
141           @SVN_UTF8PROC_INCLUDES@
142
143APACHE_INCLUDES = @APACHE_INCLUDES@
144APACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@
145APACHE_LDFLAGS = @APACHE_LDFLAGS@
146
147BOOST_TEST_CPPFLAGS = @BOOST_CPPFLAGS@ -DBOOST_TEST_DYN_LINK -DBOOST_TEST_NO_MAIN
148BOOST_TEST_LDFLAGS = @BOOST_LDFLAGS@ @BOOST_UNIT_TEST_FRAMEWORK_LIB@
149
150SWIG = @SWIG@
151SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ @SVN_PY3C_INCLUDES@ -I$(SWIG_SRC_DIR)/python/libsvn_swig_py
152SWIG_PY_COMPILE = @SWIG_PY_COMPILE@
153SWIG_PY_LINK = @SWIG_PY_LINK@
154SWIG_PY_LIBS = @SWIG_PY_LIBS@
155SWIG_PY_ERRMSG = @SWIG_PY_ERRMSG@
156SWIG_PL_INCLUDES = @SWIG_PL_INCLUDES@
157SWIG_PL_ERRMSG = @SWIG_PL_ERRMSG@
158SWIG_RB_INCLUDES = @SWIG_RB_INCLUDES@ -I$(SWIG_SRC_DIR)/ruby/libsvn_swig_ruby
159SWIG_RB_COMPILE = @SWIG_RB_COMPILE@
160SWIG_RB_LINK = @SWIG_RB_LINK@
161SWIG_RB_LIBS = @SWIG_RB_LIBS@
162SWIG_RB_SITE_LIB_DIR = @SWIG_RB_SITE_LIB_DIR@
163SWIG_RB_SITE_ARCH_DIR = @SWIG_RB_SITE_ARCH_DIR@
164SWIG_RB_TEST_VERBOSE = @SWIG_RB_TEST_VERBOSE@
165SWIG_RB_RI_DATADIR = $(DESTDIR)$(datadir)/ri/$(RUBY_MAJOR).$(RUBY_MINOR)/site
166SWIG_RB_ERRMSG = @SWIG_RB_ERRMSG@
167
168CTYPESGEN = @CTYPESGEN@
169CTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python
170
171JAVAHL_JAR=subversion/bindings/javahl/svn-javahl.jar
172JAVAHL_INCLUDES= @JNI_INCLUDES@ -I$(abs_builddir)/subversion/bindings/javahl/include
173
174SVN_BUILD_SVNXX = @SVN_BUILD_SVNXX@
175SVN_BUILD_SVNXX_TESTS = @SVN_BUILD_SVNXX_TESTS@
176SVNXX_INCLUDES = -I$(abs_srcdir)/subversion/bindings/cxx/include
177
178SVN_APR_CONFIG = @SVN_APR_CONFIG@
179SVN_APR_INCLUDES = @SVN_APR_INCLUDES@
180SVN_APRUTIL_CONFIG = @SVN_APRUTIL_CONFIG@
181SVN_APRUTIL_INCLUDES = @SVN_APRUTIL_INCLUDES@
182
183MKDIR = @MKDIR@
184
185DOXYGEN = @DOXYGEN@
186
187# The EXTRA_ parameters can be used to pass extra flags at 'make' time.
188CFLAGS = @CFLAGS@ @CUSERFLAGS@ $(EXTRA_CFLAGS)
189CMODEFLAGS = @CMODEFLAGS@
190CNOWARNFLAGS = @CNOWARNFLAGS@
191CMAINTAINERFLAGS = @CMAINTAINERFLAGS@
192CXXFLAGS = @CXXFLAGS@ @CXXUSERFLAGS@ $(EXTRA_CXXFLAGS)
193CXXMODEFLAGS = @CXXMODEFLAGS@
194CXXNOWARNFLAGS = @CXXNOWARNFLAGS@
195CXXMAINTAINERFLAGS = @CXXMAINTAINERFLAGS@
196### A few of the CFLAGS (e.g. -Wmissing-prototypes, -Wstrict-prototypes,
197### -Wmissing-declarations) are not valid for C++, and should be somehow
198### suppressed (but they may come from httpd or APR).
199CPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS)
200LDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS)
201SWIG_LDFLAGS = @SWIG_LDFLAGS@ $(EXTRA_SWIG_LDFLAGS)
202SWIG_FEATURES = @SWIG_FEATURES@
203SWIG_PY_FEATURES = @SWIG_PY_FEATURES@
204SWIG_PL_FEATURES = @SWIG_PL_FEATURES@
205SWIG_RB_FEATURES = @SWIG_RB_FEATURES@
206SWIG_PY_OPTS = @SWIG_PY_OPTS@
207
208COMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES)
209COMPILE_NOWARN = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CNOWARNFLAGS) $(CFLAGS) $(INCLUDES)
210COMPILE_CXX = $(CXX) $(CXXMODEFLAGS) $(CPPFLAGS) $(CXXMAINTAINERFLAGS) $(CXXFLAGS) $(INCLUDES)
211COMPILE_CXX_NOWARN = $(CXX) $(CXXMODEFLAGS) $(CPPFLAGS) $(CXXNOWARNFLAGS) $(CXXFLAGS) $(INCLUDES)
212LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) $(LT_CFLAGS)
213LT_COMPILE_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS)
214LT_COMPILE_CXX_NOWARN = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX_NOWARN) $(LT_CFLAGS)
215# Execute a command that loads libraries from the build dir
216LT_EXECUTE = $(LIBTOOL) $(LTFLAGS) --mode=execute `for f in $(abs_builddir)/subversion/*/*.la; do echo -dlopen $$f; done`
217
218# special compilation for files destined for mod_dav_svn
219COMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CFLAGS) $(CMAINTAINERFLAGS) $(LT_CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c -shared
220COMPILE_SHARED_ONLY_LIB = $(LT_COMPILE) -o $@ -c -shared
221COMPILE_SHARED_ONLY_CXX_LIB = $(LT_COMPILE_CXX) -o $@ -c -shared
222
223# special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c)
224COMPILE_SWIG_PY = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) -DSWIGPYTHON $(SWIG_PY_INCLUDES) $(INCLUDES) -o $@ -c
225COMPILE_SWIG_PL = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(LT_CFLAGS) $(SWIG_PL_INCLUDES) $(INCLUDES) -o $@ -c
226COMPILE_SWIG_RB = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) $(SWIG_RB_INCLUDES) $(INCLUDES) -o $@ -c
227
228# special compilation for files destined for javahl (i.e. C++)
229COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(JAVAHL_INCLUDES) -o $@ -c
230COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
231COMPILE_JAVAHL_COMPAT_JAVAC = $(JAVAC) $(JAVAC_COMPAT_FLAGS)
232
233# On Mac OS X, export an env variable so that the tests can run without
234# being installed. OS X needs the DYLD_LIBRARY_PATH env variable set in
235# order to find the libraries to link against, because we can't effectively
236# use rpath due to way rpath is implemented in the Mach executable format.
237TEST_SHLIB_VAR_JAVAHL=\
238  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
239    for d in $(abs_builddir)/subversion/libsvn_*; do \
240      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
241        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
242      else \
243        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
244      fi; \
245    done; \
246    export @SVN_APR_SHLIB_PATH_VAR@; \
247  fi;
248TEST_SHLIB_VAR_SWIG_PY=\
249  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
250    for d in $(SWIG_PY_DIR)/libsvn_swig_py $(SWIG_PY_DIR)/../../../libsvn_*; do \
251      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
252        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
253      else \
254        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
255      fi; \
256    done; \
257    export @SVN_APR_SHLIB_PATH_VAR@; \
258  fi;
259TEST_SHLIB_VAR_SWIG_RB=\
260  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
261    for d in $(SWIG_RB_DIR)/libsvn_swig_ruby $(SWIG_RB_DIR)/../../../libsvn_*; do \
262      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
263        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
264      else \
265        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
266      fi; \
267    done; \
268    export @SVN_APR_SHLIB_PATH_VAR@; \
269  fi;
270
271# special compilation for files destined for SVN++
272COMPILE_SVNXX = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) -o $@ -c
273COMPILE_SVNXX_TEST = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) $(BOOST_TEST_CPPFLAGS) -o $@ -c
274
275LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
276LINK_LIB = $(LINK) $(LT_SO_VERSION)
277LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
278LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
279LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS)
280
281# special link rule for mod_dav_svn
282LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS) -shared
283
284# Special LDFLAGS for some libraries
285libsvn_client_LDFLAGS = @libsvn_client_LDFLAGS@
286libsvn_delta_LDFLAGS = @libsvn_delta_LDFLAGS@
287libsvn_diff_LDFLAGS = @libsvn_diff_LDFLAGS@
288libsvn_fs_LDFLAGS = @libsvn_fs_LDFLAGS@
289libsvn_fs_base_LDFLAGS = @libsvn_fs_base_LDFLAGS@
290libsvn_fs_fs_LDFLAGS = @libsvn_fs_fs_LDFLAGS@
291libsvn_fs_util_LDFLAGS = @libsvn_fs_util_LDFLAGS@
292libsvn_ra_LDFLAGS = @libsvn_ra_LDFLAGS@
293libsvn_ra_local_LDFLAGS = @libsvn_ra_local_LDFLAGS@
294libsvn_ra_serf_LDFLAGS = @libsvn_ra_serf_LDFLAGS@
295libsvn_ra_svn_LDFLAGS = @libsvn_ra_svn_LDFLAGS@
296libsvn_repos_LDFLAGS = @libsvn_repos_LDFLAGS@
297libsvn_subr_LDFLAGS = @libsvn_subr_LDFLAGS@
298libsvn_wc_LDFLAGS = @libsvn_wc_LDFLAGS@
299shared_only_LDFLAGS = @shared_only_LDFLAGS@
300
301LINK_SHARED_ONLY_LIB = $(LINK_LIB) $(shared_only_LDFLAGS) -shared
302LINK_SHARED_ONLY_CXX_LIB = $(LINK_CXX_LIB) $(shared_only_LDFLAGS) -shared
303
304# Compilation of SWIG-generated C source code
305COMPILE_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_PY_INCLUDES) -prefer-pic -c -o $@
306COMPILE_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_RB_INCLUDES) -prefer-pic -c -o $@
307
308# these commands link the wrapper objects into an extension library/module
309LINK_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_PY_LINK) $(SWIG_LDFLAGS) -rpath $(swig_pydir) -avoid-version -module
310LINK_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_RB_LINK) $(SWIG_LDFLAGS) -rpath $(swig_rbdir) -avoid-version -module
311
312LINK_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) $(LT_CXX_LIBADD) -rpath $(libdir)
313
314INSTALL = @INSTALL@
315INSTALL_LIB = $(LIBTOOL) --mode=install $(INSTALL)
316INSTALL_FSMOD_LIB = $(INSTALL_LIB)
317INSTALL_RAMOD_LIB = $(INSTALL_LIB)
318INSTALL_APR_MEMCACHE_LIB = $(INSTALL_LIB)
319INSTALL_BDB_LIB = $(INSTALL_LIB)
320INSTALL_GPG_AGENT_LIB = $(INSTALL_LIB)
321INSTALL_GNOME_KEYRING_LIB = $(INSTALL_LIB)
322INSTALL_KWALLET_LIB = $(INSTALL_LIB)
323INSTALL_SERF_LIB = $(INSTALL_LIB)
324INSTALL_BIN = $(LIBTOOL) --mode=install $(INSTALL)
325INSTALL_CONTRIB = $(LIBTOOL) --mode=install $(INSTALL)
326INSTALL_TOOLS = $(LIBTOOL) --mode=install $(INSTALL)
327INSTALL_INCLUDE = $(INSTALL) -m 644
328INSTALL_MOD_SHARED = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
329INSTALL_DATA = $(INSTALL) -m 644
330INSTALL_LOCALE = $(INSTALL_DATA)
331INSTALL_APACHE_MODS = @INSTALL_APACHE_MODS@
332
333INSTALL_SVNXX_LIB = $(INSTALL_LIB)
334
335### this isn't correct yet
336INSTALL_SWIG_PY = $(INSTALL_LIB)
337INSTALL_SWIG_PY_LIB = $(INSTALL_LIB)
338INSTALL_SWIG_PL_LIB = $(INSTALL_LIB)
339INSTALL_SWIG_RB = $(INSTALL_LIB)
340INSTALL_SWIG_RB_LIB = $(INSTALL_LIB)
341
342INSTALL_JAVAHL_LIB = $(INSTALL_LIB)
343
344# additional installation rules for the SWIG wrappers
345INSTALL_EXTRA_SWIG_PY=\
346  $(MKDIR) $(DESTDIR)$(swig_pydir); \
347  $(MKDIR) $(DESTDIR)$(swig_pydir_extra); \
348  for i in $(abs_srcdir)/subversion/bindings/swig/python/svn/*.py; do \
349    $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir_extra); \
350  done; \
351  for i in $(abs_srcdir)/subversion/bindings/swig/python/*.py; do \
352    $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
353  done; \
354  if test "$(abs_srcdir)" != "$(abs_builddir)"; then \
355    for i in $(abs_builddir)/subversion/bindings/swig/python/*.py; do \
356      $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
357    done; \
358  fi; \
359  $(PYTHON) -c 'import compileall; \
360    compileall.compile_dir("$(DESTDIR)$(swig_pydir)", 1, "$(swig_pydir)"); \
361    compileall.compile_dir("$(DESTDIR)$(swig_pydir_extra)", 1, \
362    "$(swig_pydir_extra)");'
363
364# The path to generated and complementary source files for the SWIG
365# bindings.
366SWIG_PL_DIR = $(abs_builddir)/subversion/bindings/swig/perl
367SWIG_PY_DIR = $(abs_builddir)/subversion/bindings/swig/python
368SWIG_RB_DIR = $(abs_builddir)/subversion/bindings/swig/ruby
369
370# The path to the source files for the SWIG bindings
371SWIG_PL_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/perl
372SWIG_PY_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/python
373SWIG_RB_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/ruby
374
375### Automate JAR creation using Makefile generator's javahl-java.jar
376### property.  Enhance generator to support JAR installation.
377JAVAHL_MANIFEST_IN = $(abs_srcdir)/subversion/bindings/javahl/Manifest.in
378JAVAHL_MANIFEST = subversion/bindings/javahl/Manifest
379INSTALL_EXTRA_JAVAHL_JAVA=\
380	sed s/%bundleVersion/$(PACKAGE_VERSION)/ $(JAVAHL_MANIFEST_IN) > $(JAVAHL_MANIFEST); \
381	$(JAR) cfm $(JAVAHL_JAR) $(JAVAHL_MANIFEST) -C subversion/bindings/javahl/classes org; \
382	$(INSTALL_DATA) $(JAVAHL_JAR) $(DESTDIR)$(javahl_javadir);
383
384INSTALL_EXTRA_JAVAHL_LIB=@INSTALL_EXTRA_JAVAHL_LIB@
385
386INSTALL_EXTRA_SWIG_RB=\
387  @echo $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
388  $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
389  for i in $(abs_srcdir)/subversion/bindings/swig/ruby/svn/*.rb; do \
390    echo $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
391    $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
392  done
393
394APXS = @APXS@
395HTTPD_VERSION = @HTTPD_VERSION@
396HTTPD_WHITELIST = @HTTPD_WHITELIST@
397
398PYTHON = @PYTHON@
399PERL = @PERL@
400
401JDK = @JDK@
402JAVA = @JAVA@
403JAVAC = @JAVAC@
404JAVADOC = @JAVADOC@
405JAVAC_FLAGS = @JAVAC_FLAGS@
406JAVAC_COMPAT_FLAGS = @JAVAC_COMPAT_FLAGS@
407JAR = @JAR@
408
409JAVA_CLASSPATH=$(abs_srcdir)/subversion/bindings/javahl/src:@JAVA_CLASSPATH@
410javahl_java_CLASSPATH=$(JAVA_CLASSPATH)
411javahl_compat_CLASSPATH=$(JAVA_CLASSPATH)
412javahl_tests_CLASSPATH=$(JAVA_CLASSPATH)
413javahl_compat_tests_CLASSPATH=$(JAVA_CLASSPATH)
414
415RUBY = @RUBY@
416RUBY_MAJOR = @RUBY_MAJOR@
417RUBY_MINOR = @RUBY_MINOR@
418RDOC = @RDOC@
419
420ECHO_C = @ECHO_C@
421ECHO_N = @ECHO_N@
422
423TESTS = $(TEST_PROGRAMS) @BDB_TEST_PROGRAMS@
424
425all: mkdir-init local-all
426clean: local-clean
427distclean: local-distclean
428extraclean: local-extraclean
429install: local-install revision-install
430
431@INCLUDE_OUTPUTS@
432
433local-all: @BUILD_RULES@ @TRANSFORM_LIBTOOL_SCRIPTS@
434
435transform-libtool-scripts: @BUILD_RULES@
436	@$(SHELL) $(top_srcdir)/build/transform_libtool_scripts.sh
437
438locale-gnu-pot:
439	cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
440	  $(SHELL) tools/po/po-update.sh pot
441
442# "make locale-gnu-po-update" updates all translations.
443# "make locale-gnu-po-update PO=ll" updates only the ll.po file.
444locale-gnu-po-update:
445	cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
446	  $(SHELL) tools/po/po-update.sh $(PO)
447
448# clean everything but the bulky test output, returning the system back
449# to before 'make' was run.
450fast-clean: doc-clean
451	@list='$(BUILD_DIRS)'; for i in $$list; do                   \
452          if [ -d $$i ]; then                                        \
453            (cd $$i && rm -f *.o *.lo *.la *.la-a *.spo *.mo &&      \
454             rm -rf .libs);                                          \
455          fi                                                         \
456        done
457	echo $(CLEAN_FILES) | xargs rm -f --
458	find $(CTYPES_PYTHON_SRC_DIR) $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) \
459		$(abs_srcdir)/build $(top_srcdir)/subversion/tests/cmdline/svntest \
460		-name "*.pyc" -exec rm {} ';'
461
462# clean everything, returning to before './configure' was run.
463SVN_CONFIG_SCRIPT_FILES = @SVN_CONFIG_SCRIPT_FILES@
464local-distclean: local-clean
465	rm -fr config.cache config.log config.nice config.status \
466	  libtool mkmf.log subversion/svn_private_config.h \
467	  subversion/bindings/javahl/classes \
468	  subversion/bindings/javahl/include \
469	  subversion/libsvn_*/*.pc \
470	$(SVN_CONFIG_SCRIPT_FILES)
471	rm -f Makefile
472
473# clean everything out, returning to before './autogen.sh' was run.
474local-extraclean: extraclean-bindings local-distclean
475	rm -f $(top_srcdir)/build-outputs.mk \
476              $(top_srcdir)/subversion/svn_private_config.h.in \
477              $(top_srcdir)/configure \
478              $(top_srcdir)/gen-make.opts \
479              $(top_srcdir)/build/config.guess \
480              $(top_srcdir)/build/config.sub \
481              $(top_srcdir)/build/libtool.m4 \
482              $(top_srcdir)/build/ltoptions.m4 \
483              $(top_srcdir)/build/ltsugar.m4 \
484              $(top_srcdir)/build/ltversion.m4 \
485              $(top_srcdir)/build/lt~obsolete.m4 \
486              $(top_srcdir)/build/ltmain.sh \
487              $(top_srcdir)/build/transform_libtool_scripts.sh \
488              $(EXTRACLEAN_FILES)
489
490
491# clean everything, including test output.
492local-clean: check-clean clean-bindings fast-clean
493
494local-install: @INSTALL_RULES@
495
496revision-install:
497	test -d $(DESTDIR)$(includedir)/subversion-1 || \
498	  $(MKDIR) $(DESTDIR)$(includedir)/subversion-1
499	(subversion/svnversion/svnversion $(top_srcdir) 2> /dev/null ||  \
500	 svnversion $(top_srcdir) 2> /dev/null ||                        \
501	 echo "unknown";                                                 \
502	) > $(DESTDIR)$(includedir)/subversion-1/svn-revision.txt
503
504install-static: @INSTALL_STATIC_RULES@
505
506# JavaHL target aliases
507javahl: mkdir-init javahl-java javahl-callback-java javahl-remote-java javahl-types-java javahl-util-java javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
508install-javahl: javahl install-javahl-java install-javahl-lib
509javahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
510
511clean-javahl:
512	if [ -d $(javahl_test_rootdir) ]; then \
513	  rm -rf $(javahl_test_rootdir)/*;     \
514	fi
515	rm -rf $(javahl_java_PATH) $(javahl_javah_PATH) @JAVAHL_OBJDIR@
516	rm -f $(libsvnjavahl_PATH)/*.la $(JAVAHL_JAR)
517	rm -f $(libsvnjavahl_PATH)/*.lo
518	rm -f $(libsvnjavahl_PATH)/*.o
519
520check-tigris-javahl: javahl-compat
521	@FIX_JAVAHL_LIB@
522	$(TEST_SHLIB_VAR_JAVAHL) \
523	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
524
525check-apache-javahl: javahl
526	@FIX_JAVAHL_LIB@
527	$(TEST_SHLIB_VAR_JAVAHL) \
528	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
529
530check-deprecated-authn-javahl: javahl
531	@FIX_JAVAHL_LIB@
532	$(TEST_SHLIB_VAR_JAVAHL) \
533	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" org.apache.subversion.javahl.RunTests
534
535check-javahl: check-apache-javahl
536
537check-all-javahl: check-apache-javahl check-tigris-javahl check-deprecated-authn-javahl
538
539check-svnxx: svnxx-tests
540	$(abs_builddir)/$(svnxx_tests_PATH)/svnxx-tests$(EXEEXT)
541
542# "make check CLEANUP=true" will clean up directories for successful tests.
543# "make check TESTS=subversion/tests/cmdline/basic_tests.py"
544#  will perform only basic tests (likewise for other tests).
545check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@
546	@if test "$(PYTHON)" != "none"; then                                 \
547	  if test "$(CLEANUP)" != ""; then                                   \
548	    flags="--cleanup $$flags";                                       \
549	  fi;                                                                \
550	  if test "$(BASE_URL)" != ""; then                                  \
551	    flags="--url $(BASE_URL) $$flags";                               \
552	  fi;                                                                \
553	  if test "$(SKIP_C_TESTS)" != ""; then                              \
554	    flags="--skip-c-tests $$flags";                                  \
555	  fi;                                                                \
556	  if test "$(DUMP_LOAD_CROSS_CHECK)" != ""; then                     \
557	    flags="--dump-load-cross-check $$flags";                         \
558	  fi;                                                                \
559	  if test "$(FS_TYPE)" != ""; then                                   \
560	    flags="--fs-type $(FS_TYPE) $$flags";                            \
561	  fi;                                                                \
562	  if test "$(HTTP_LIBRARY)" != ""; then                              \
563	    flags="--http-library $(HTTP_LIBRARY) $$flags";                  \
564	  fi;                                                                \
565	  if test "$(HTTPD_VERSION)" != ""; then                             \
566	     flags="--httpd-version $(HTTPD_VERSION) $$flags";               \
567	  fi;                                                                \
568	  if test "$(HTTPD_WHITELIST)" != ""; then                           \
569	     flags="--httpd-whitelist $(HTTPD_WHITELIST) $$flags";           \
570	  fi;                                                                \
571	  if test "$(SERVER_MINOR_VERSION)" != ""; then                      \
572	    flags="--server-minor-version $(SERVER_MINOR_VERSION) $$flags";  \
573	  fi;                                                                \
574	  if test "$(ENABLE_SASL)" != ""; then                               \
575	    flags="--enable-sasl $$flags";                                   \
576	  fi;                                                                \
577	  if test "$(FSFS_SHARDING)" != ""; then                             \
578	    flags="--fsfs-sharding $(FSFS_SHARDING) $$flags";                \
579	  fi;                                                                \
580	  if test "$(FSFS_PACKING)" != ""; then                              \
581	    flags="--fsfs-packing $$flags";                                  \
582	  fi;                                                                \
583	  if test "$(PARALLEL)" != ""; then                                  \
584	    flags="--parallel $(PARALLEL) $$flags";                          \
585	  fi;                                                                \
586	  if test "$(GLOBAL_SCHEDULER)" != ""; then                          \
587	    flags="--global-scheduler $$flags";                              \
588	  fi;                                                                \
589	  if test "$(LOG_TO_STDOUT)" != ""; then                             \
590	    flags="--log-to-stdout $$flags";                                 \
591	  fi;                                                                \
592	  if test "$(MILESTONE_FILTER)" != ""; then                          \
593	    flags="--list --milestone-filter=$(MILESTONE_FILTER)             \
594		   --mode-filter=$(MODE_FILTER) --log-to-stdout $$flags";    \
595	  fi;                                                                \
596	  if test "$(SET_LOG_LEVEL)" != ""; then                             \
597	    flags="--set-log-level $(SET_LOG_LEVEL) $$flags";                \
598	  fi;                                                                \
599	  if test "$(SSL_CERT)" != ""; then                                  \
600	    flags="--ssl-cert $(SSL_CERT) $$flags";                          \
601	  fi;                                                                \
602	  if test "$(HTTP_PROXY)" != ""; then                                \
603	    flags="--http-proxy $(HTTP_PROXY) $$flags";                      \
604	  fi;                                                                \
605	  if test "$(EXCLUSIVE_WC_LOCKS)" != ""; then                        \
606	    flags="--exclusive-wc-locks $$flags";                            \
607	  fi;                                                                \
608	  if test "$(MEMCACHED_SERVER)" != ""; then                          \
609	    flags="--memcached-server $(MEMCACHED_SERVER) $$flags";          \
610	  fi;                                                                \
611	  if test "$(FSFS_COMPRESSION)" != ""; then                          \
612	    flags="--fsfs-compression $(FSFS_COMPRESSION) $$flags";          \
613	  fi;                                                                \
614	  if test "$(FSFS_DIR_DELTIFICATION)" != ""; then                    \
615	    flags="--fsfs-dir-deltification $(FSFS_DIR_DELTIFICATION) $$flags";\
616	  fi;                                                                \
617	  if test "$(ALLOW_REMOTE_HTTP_CONNECTION)" != ""; then              \
618	    flags="--allow-remote-http-connection $$flags";                  \
619	  fi;                                                                \
620	  if test "$(SVN_BIN_DIR)" != ""; then                               \
621	    flags="--bin $(SVN_BIN_DIR) $$flags";                            \
622	  fi;                                                                \
623	  LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)'           \
624	  $(PYTHON) $(top_srcdir)/build/run_tests.py                         \
625	            --config-file $(top_srcdir)/subversion/tests/tests.conf  \
626	            $$flags                                                  \
627	            '$(abs_srcdir)' '$(abs_builddir)' $(TESTS);              \
628	else                                                                 \
629	  echo "make check: Python 2.7 or greater is required,";             \
630	  echo "            but was not detected during configure";          \
631	  exit 1;                                                            \
632	fi;
633
634# First, set up Apache as documented in
635# subversion/tests/cmdline/README.
636davcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
637	@$(MAKE) check BASE_URL=http://localhost
638
639# Automatically configure and run Apache httpd on a random port, and then
640# run make check.
641davautocheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
642	@# Takes MODULE_PATH, USE_HTTPV1 and SVN_PATH_AUTHZ in the environment.
643	@APXS=$(APXS) MAKE=$(MAKE) $(SHELL) $(top_srcdir)/subversion/tests/cmdline/davautocheck.sh
644
645# First, run:
646#   subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/cmdline
647svncheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
648	@$(MAKE) check BASE_URL=svn://127.0.0.1
649
650# 'make svnserveautocheck' runs svnserve for you and kills it.
651svnserveautocheck: svnserve bin $(TEST_DEPS) @BDB_TEST_DEPS@
652	@env PYTHON=$(PYTHON) THREADED=$(THREADED) MAKE=$(MAKE) \
653	  $(SHELL) $(top_srcdir)/subversion/tests/cmdline/svnserveautocheck.sh
654
655# First, run:
656#   subversion/svnserve/svnserve --listen-host "::1" -d -r `pwd`/subversion/tests/cmdline
657
658svncheck6: bin $(TEST_DEPS) @BDB_TEST_DEPS@
659	@$(MAKE) check BASE_URL=svn://\[::1\]
660
661# First make sure you can ssh to localhost and that "svnserve" is in
662# the path of the resulting shell.
663svnsshcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
664	@$(MAKE) check \
665	  BASE_URL=svn+ssh://localhost`pwd`/subversion/tests/cmdline
666
667bdbcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
668	@$(MAKE) check FS_TYPE=bdb
669
670# Produce the clang compilation database as the compile_commands.json file
671# in the srcdir.  This is used by tools such as the YouCompleteMe vim plugin
672# to know the compile flags for various source files so that analysis such
673# as syntax checking, static analysis or symbol completion can be done
674# outside the build system.  To do this it uses the tool called bear:
675# https://github.com/rizsotto/Bear
676compile-commands:
677	@bear -o $(abs_srcdir)/compile_commands.json -- $(MAKE) all
678
679# Create an execution coverage report from the data collected during
680# all execution since the last reset.
681gcov:
682	lcov --capture -d . -b . -o gcov-lcov.dat > gcov-lcov.log
683	genhtml gcov-lcov.dat -o gcov-report > gcov-genhtml.log
684
685# Reset all execution coverage counters to zero.
686gcov-reset:
687	lcov --zerocounters -d .
688
689# Remove the execution coverage data and the report.
690gcov-clean:
691	rm -f gcov-lcov.dat gcov-lcov.log gcov-genhtml.log
692	rm -rf gcov-report
693	find . \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f -- {} \;
694
695check-clean: gcov-clean
696	if [ -d subversion/tests/cmdline/svn-test-work ]; then \
697	  rm -rf subversion/tests/cmdline/svn-test-work/*;     \
698	fi
699	rm -rf subversion/tests/libsvn_fs/test-repo-*          \
700	       subversion/tests/libsvn_fs_base/test-repo-*     \
701	       subversion/tests/libsvn_fs_fs/test-repo-*       \
702	       subversion/tests/libsvn_fs_x/test-repo-*        \
703	       subversion/tests/libsvn_ra_local/test-repo-*    \
704	       subversion/tests/libsvn_repos/test-repo-*       \
705	       subversion/tests/libsvn_subr/z                  \
706	       subversion/tests/libsvn_wc/fake-wc              \
707	       subversion/tests/libsvn_client/test-patch*      \
708	       subversion/tests/libsvn_client/test-*/          \
709	       subversion/tests/libsvn_diff/B2                 \
710	       subversion/tests/libsvn_diff/T1                 \
711	       subversion/tests/libsvn_diff/T2                 \
712	       subversion/tests/libsvn_diff/T3                 \
713	       subversion/tests/cmdline/httpd-*                \
714	       subversion/tests/cmdline/svnserve-*             \
715	       tests.log fails.log
716
717mkdir-init:
718	@list='$(BUILD_DIRS) $(SCHEMA_DIR) doc';         \
719        for i in $$list; do                              \
720            if [ ! -d $$i ]; then                        \
721                $(MKDIR) $$i ;                           \
722            fi;                                          \
723        done
724
725# DOCUMENTATION RULES
726
727# Every single document in every format.
728doc: doc-api doc-javahl
729
730# Generate API documentation for the C libraries.
731### This could also generate POD for swig-perl, etc.
732doc-api: mkdir-init
733	( cd $(top_srcdir) && \
734	  sed "s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \
735	  doc/doxygen.conf | $(DOXYGEN) - )
736
737# Generate API documentation for the JavaHL package.
738doc-javahl:
739	$(JAVADOC) -d $(abs_builddir)/doc/javadoc \
740	  -sourcepath $(top_srcdir)/subversion/bindings/javahl/src \
741	  -link http://java.sun.com/javase/6/docs/api/ \
742	  org.tigris.subversion.javahl \
743	  org.apache.subversion.javahl \
744	  org.apache.subversion.javahl.callback \
745	  org.apache.subversion.javahl.remote \
746	  org.apache.subversion.javahl.types \
747	  org.apache.subversion.javahl.util
748
749doc-clean:
750	rm -rf $(abs_builddir)/doc/doxygen
751	rm -rf $(abs_builddir)/doc/javadoc
752
753# Converting from the .rnc XML schemas to various other schema formats.
754SCHEMAS_DTD = $(SCHEMA_DIR)/blame.dtd \
755              $(SCHEMA_DIR)/diff.dtd \
756              $(SCHEMA_DIR)/info.dtd \
757              $(SCHEMA_DIR)/list.dtd \
758              $(SCHEMA_DIR)/log.dtd \
759              $(SCHEMA_DIR)/props.dtd \
760              $(SCHEMA_DIR)/status.dtd
761
762SCHEMAS_RNG = $(SCHEMA_DIR)/blame.rng \
763              $(SCHEMA_DIR)/diff.rng \
764              $(SCHEMA_DIR)/info.rng \
765              $(SCHEMA_DIR)/list.rng \
766              $(SCHEMA_DIR)/log.rng \
767              $(SCHEMA_DIR)/props.rng \
768              $(SCHEMA_DIR)/status.rng
769
770SCHEMAS_XSD = $(SCHEMA_DIR)/blame.xsd \
771              $(SCHEMA_DIR)/diff.xsd \
772              $(SCHEMA_DIR)/info.xsd \
773              $(SCHEMA_DIR)/list.xsd \
774              $(SCHEMA_DIR)/log.xsd \
775              $(SCHEMA_DIR)/props.xsd \
776              $(SCHEMA_DIR)/status.xsd
777
778schema: mkdir-init schema-rng schema-dtd schema-xsd
779
780schema-rng: $(SCHEMAS_RNG)
781schema-dtd: $(SCHEMAS_DTD)
782schema-xsd: $(SCHEMAS_XSD)
783
784$(SCHEMAS_RNG) $(SCHEMAS_DTD) $(SCHEMAS_XSD): $(SCHEMA_DIR)/common.rnc
785
786schema-clean:
787	(cd $(SCHEMA_DIR) && rm -f *.rng *.dtd *.xsd)
788
789#
790# Implicit rules for creating outputs from input files
791#
792.SUFFIXES:
793.SUFFIXES: .c .cpp .lo .o .la-a .la \
794           .po .spo .mo .rnc .rng .dtd .xsd .sql .h
795
796.sql.h:
797	$(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
798
799.c.o:
800	$(COMPILE) -o $@ -c $<
801
802.cpp.o:
803	$(COMPILE_CXX) -o $@ -c $<
804
805.c.lo:
806	$(LT_COMPILE) -o $@ -c $<
807
808.cpp.lo:
809	$(LT_COMPILE_CXX) -o $@ -c $<
810
811.la.la-a:
812	sed "/library_names/s/'.*'/''/" $< > $@
813
814
815# Strip the Content-Type: header from the po file if we don't have a
816# gettext that supports bind_textdomain_codeset, so it doesn't try
817# to convert our UTF-8 .po files to the locale encoding.
818@NO_GETTEXT_CODESET@.po.spo:
819@NO_GETTEXT_CODESET@	sed \
820@NO_GETTEXT_CODESET@	'/^"Content-Type: text\/plain; charset=UTF-8\\n"$$/d' \
821@NO_GETTEXT_CODESET@	$< > $@
822
823@NO_GETTEXT_CODESET@.spo.mo:
824@NO_GETTEXT_CODESET@	$(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
825
826# For systems with bind_textdomain_codeset, just leave the Content-Type:
827# header alone.
828@GETTEXT_CODESET@.po.mo:
829@GETTEXT_CODESET@	$(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
830
831.rnc.rng:
832	@TRANG@ $< $@
833
834.rnc.dtd:
835	@TRANG@ $< $@
836
837.rnc.xsd:
838	@TRANG@ $< $@
839
840install-docs: install-man
841
842manroot = $(mandir)/man
843install-man:
844	@list='$(MANPAGES)';                                               \
845        for i in $$list; do                                                \
846          if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i;               \
847          else file=$$i; fi;                                               \
848          ext=`echo $$i | sed -e 's/^.*\\.//'`;                            \
849          $(MKDIR) $(DESTDIR)$(manroot)$$ext;                              \
850          inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`;                   \
851          inst=`echo $$inst | sed -e 's/^.*\///'`;                         \
852          inst=`echo $$inst`.$$ext;                                        \
853          echo "$(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst";  \
854          $(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst;         \
855        done
856
857install-swig-py: install-swig-py-lib
858install-swig-rb: install-swig-rb-lib
859
860clean-bindings: clean-swig clean-ctypes-python clean-javahl
861
862extraclean-bindings: clean-swig extraclean-swig-headers \
863			extraclean-swig-py extraclean-swig-rb \
864			extraclean-swig-pl \
865			clean-ctypes-python clean-javahl \
866
867clean-swig: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
868	@rm -f .swig_checked
869
870EXTRACLEAN_SWIG_HEADERS=rm -f $(SWIG_SRC_DIR)/proxy/*.swg
871
872clean-swig-headers:
873	if test -z "$(RELEASE_MODE)"; then \
874	  $(EXTRACLEAN_SWIG_HEADERS); \
875	fi
876
877extraclean-swig-headers: clean-swig-headers
878	$(EXTRACLEAN_SWIG_HEADERS)
879
880$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in
881	./config.status subversion/bindings/swig/perl/native/Makefile.PL
882
883$(SWIG_PL_DIR)/native/Makefile: libsvn_swig_perl $(SWIG_PL_DIR)/native/Makefile.PL
884	cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL PREFIX=$(prefix)
885
886# There is a "readlink -f" command on some systems for the same purpose,
887# but it's not as portable (e.g. Mac OS X doesn't have it).  These should
888# only be used where Python/Perl are known to be available.
889READLINK_PY=$(PYTHON) -c 'import sys,os; print(os.path.realpath(sys.argv[1]))'
890READLINK_PL=$(PERL) -e 'use Cwd; print Cwd::realpath(shift)'
891
892swig-pl: autogen-swig-pl $(SWIG_PL_DIR)/native/Makefile
893	if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \
894	  for f in $(SWIG_PL_SRC_DIR)/native/*.c ; do \
895	     if [ -e "$$f" ] ; then \
896	       ln -sf "$$f" $(SWIG_PL_DIR)/native; \
897	    fi; \
898	  done; \
899	fi
900	cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)"
901
902check-swig-pl: swig-pl swig-pl-lib
903	cd $(SWIG_PL_DIR)/native; $(MAKE) test
904
905install-swig-pl: swig-pl install-swig-pl-lib
906	cd $(SWIG_PL_DIR)/native; $(MAKE) install
907
908EXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \
909                         $(SWIG_PL_SRC_DIR)/native/core.c
910
911# Running Makefile.PL at this point *fails* (cannot find ..../.libs) so if the
912# Makefile does not exist, DO NOT try to make it. But, if it doesn't exist,
913# then the directory is probably clean anyway.
914clean-swig-pl:
915	rm -f .swig_pl_checked
916	if test -z "$(RELEASE_MODE)"; then \
917	  $(EXTRACLEAN_SWIG_PL); \
918	fi
919	for d in $(SWIG_PL_DIR)/libsvn_swig_perl; \
920	do \
921	  cd $$d; \
922	  rm -rf *.lo *.la *.o .libs; \
923	done
924	if [ -f "$(SWIG_PL_DIR)/native/Makefile" ]; then \
925	  cd $(SWIG_PL_DIR)/native; $(MAKE) clean; \
926	fi
927
928extraclean-swig-pl: clean-swig-pl
929	$(EXTRACLEAN_SWIG_PL)
930
931$(SWIG_PY_DIR)/libsvn:
932	mkdir $(SWIG_PY_DIR)/libsvn
933
934copy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsvn
935	@for f in $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/*.py; do \
936	  ! [ -f "$$f" ] || cp -pf $$f $(SWIG_PY_DIR)/libsvn; \
937	done
938	@cd $(SWIG_PY_DIR)/libsvn;ln -sf ../.libs/*.so .
939	@touch $(SWIG_PY_DIR)/libsvn/__init__.py
940
941swig-py: autogen-swig-py copy-swig-py
942
943check-swig-py: swig-py
944	$(TEST_SHLIB_VAR_SWIG_PY) \
945	cd $(SWIG_PY_DIR); \
946	  $(PYTHON) $(SWIG_PY_SRC_DIR)/tests/run_all.py
947
948EXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_DIR)/svn_*.c $(SWIG_PY_DIR)/core.c \
949                          $(SWIG_PY_DIR)/[a-z]*.py
950clean-swig-py:
951	rm -f .swig_py_checked
952	rm -rf $(SWIG_PY_DIR)/libsvn
953	if test -z "$(RELEASE_MODE)"; then \
954	  $(EXTRACLEAN_SWIG_PY); \
955	fi
956	for d in $(SWIG_PY_DIR) $(SWIG_PY_DIR)/libsvn_swig_py; \
957	do \
958	  cd $$d && rm -rf *.lo *.la *.o *.pyc .libs; \
959	done
960	find $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) -name "*.pyc" -exec rm {} ';'
961
962extraclean-swig-py: clean-swig-py
963	$(EXTRACLEAN_SWIG_PY)
964
965swig-rb: autogen-swig-rb
966
967check-swig-rb: swig-rb svnserve
968	$(TEST_SHLIB_VAR_SWIG_RB) \
969	cd $(SWIG_RB_DIR); \
970	  check_rb() { \
971	    $(RUBY) -I $(SWIG_RB_SRC_DIR) $(SWIG_RB_SRC_DIR)/test/run-test.rb "$$@"; \
972	  }; \
973	  if check_rb --help 2>&1 | grep -q -- --collector; then \
974	    check_rb --collector=dir --verbose=$(SWIG_RB_TEST_VERBOSE); \
975	  elif [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
976	    check_rb --verbose=$(SWIG_RB_TEST_VERBOSE); \
977	  else \
978	    check_rb; \
979          fi
980
981EXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c
982
983clean-swig-rb:
984	rm -f .swig_rb_checked
985	rm -rf $(SWIG_RB_DIR)/test/repos $(SWIG_RB_DIR)/test/wc
986	if test -z "$(RELEASE_MODE)"; then \
987	  $(EXTRACLEAN_SWIG_RB); \
988	fi
989	for d in $(SWIG_RB_DIR) $(SWIG_RB_DIR)/libsvn_swig_ruby; \
990	do \
991	  cd $$d; \
992	  rm -rf *.lo *.la *.o .libs; \
993	done
994
995extraclean-swig-rb: clean-swig-rb
996	$(EXTRACLEAN_SWIG_RB)
997
998install-swig-rb-doc:
999	$(RDOC) --all --ri --op "$(SWIG_RB_RI_DATADIR)" "$(SWIG_RB_SRC_DIR)/svn"
1000
1001# ctypes-python make targets
1002ctypes-python: local-all
1003	$(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)" "$(CPP)"
1004
1005install-ctypes-python: ctypes-python
1006	cd $(CTYPES_PYTHON_SRC_DIR); \
1007	  $(PYTHON) setup.py install --prefix="$(DESTDIR)$(prefix)"
1008
1009check-ctypes-python: ctypes-python
1010	cd $(CTYPES_PYTHON_SRC_DIR); \
1011	  $(LT_EXECUTE) $(PYTHON) test/run_all.py
1012
1013# If any of those files exists, run ctypes' 'setup.py clean'.  We don't run
1014# it otherwise because it spams stdout+stderr; see r1479326.
1015clean-ctypes-python:
1016	cd $(CTYPES_PYTHON_SRC_DIR);            \
1017	  for b in build csvn/core/functions.py svn_all.py svn_all2.py ; do \
1018	    if [ -e "$$b" ] ; then              \
1019	      $(PYTHON) setup.py clean --all;   \
1020	      break;                            \
1021	    fi;                                 \
1022	  done
1023
1024# manually describe a dependency, which we won't otherwise detect
1025subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-metadata.sql
1026subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-checks.sql
1027
1028# Compatibility symlink.
1029# This runs after the target of the same name in build-outputs.mk.
1030INSTALL_EXTRA_TOOLS=\
1031  $(MKDIR) $(DESTDIR)$(bindir); \
1032  test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
1033  ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
1034  if test "$(DESTDIR)$(bindir)" != "$(DESTDIR)$(toolsdir)"; then \
1035    ln -sf $(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
1036    ln -sf $(bindir)/svnbench$(EXEEXT) $(DESTDIR)$(toolsdir)/svn-bench$(EXEEXT); \
1037  fi; \
1038  printf '\043\041/bin/sh\n%s\n' \
1039    'exec $(bindir)/svnfsfs stats $${2:+"-M"} $${2:+"$$2"} "$$1"' \
1040    > $(DESTDIR)$(toolsdir)/fsfs-stats$(EXEEXT) && \
1041  chmod +x $(DESTDIR)$(toolsdir)/fsfs-stats$(EXEEXT)
1042# \043\041 is a "#!".  It's written this way because gmake and bmake disagree on
1043# how to include a literal '#' in a command, and because '!' is special to some
1044# shells.
1045