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