2 # Makefile.in: template Makefile for Subversion
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
13 # http://www.apache.org/licenses/LICENSE-2.0
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
21 # ====================================================================
25 top_srcdir = @top_srcdir@
26 abs_builddir = @abs_builddir@
27 abs_srcdir = @abs_srcdir@
30 SVN_RA_LIB_DEPS = @SVN_RA_LIB_DEPS@
31 SVN_RA_LIB_INSTALL_DEPS = @SVN_RA_LIB_INSTALL_DEPS@
32 SVN_RA_LIB_LINK = @SVN_RA_LIB_LINK@
34 SVN_FS_LIB_DEPS = @SVN_FS_LIB_DEPS@
35 SVN_FS_LIB_INSTALL_DEPS = @SVN_FS_LIB_INSTALL_DEPS@
36 SVN_FS_LIB_LINK = @SVN_FS_LIB_LINK@
38 SWIG_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig
39 SWIG_BUILD_DIR = $(abs_builddir)/subversion/bindings/swig
41 SCHEMA_DIR = subversion/svn/schema
43 SVN_APR_LIBS = @SVN_APR_LIBS@
44 SVN_APRUTIL_LIBS = @SVN_APRUTIL_LIBS@
45 SVN_APR_MEMCACHE_LIBS = @SVN_APR_MEMCACHE_LIBS@
46 SVN_DB_LIBS = @SVN_DB_LIBS@
47 SVN_GPG_AGENT_LIBS = @SVN_GPG_AGENT_LIBS@
48 SVN_GNOME_KEYRING_LIBS = @SVN_GNOME_KEYRING_LIBS@
49 SVN_KWALLET_LIBS = @SVN_KWALLET_LIBS@
50 SVN_MAGIC_LIBS = @SVN_MAGIC_LIBS@
51 SVN_SASL_LIBS = @SVN_SASL_LIBS@
52 SVN_SERF_LIBS = @SVN_SERF_LIBS@
53 SVN_SQLITE_LIBS = @SVN_SQLITE_LIBS@
54 SVN_XML_LIBS = @SVN_XML_LIBS@
55 SVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
60 exec_prefix = @exec_prefix@
62 fsmod_libdir = @libdir@
63 ramod_libdir = @libdir@
65 gnome_keyring_libdir = @libdir@
66 gpg_agent_libdir = @libdir@
67 kwallet_libdir = @libdir@
68 serf_libdir = @libdir@
70 includedir = @includedir@
73 canonicalized_srcdir = @canonicalized_srcdir@
75 datarootdir = @datarootdir@
76 localedir = @localedir@
78 # where to install libsvn_swig_*
79 swig_py_libdir = @libdir@
80 swig_pl_libdir = @libdir@
81 swig_rb_libdir = @libdir@
83 ### these possibly need further discussion
84 swig_pydir = @libdir@/svn-python/libsvn
85 swig_pydir_extra = @libdir@/svn-python/svn
86 swig_pldir = @libdir@/svn-perl
87 swig_rbdir = $(SWIG_RB_SITE_ARCH_DIR)/svn/ext
88 toolsdir = @bindir@/svn-tools
90 javahl_javadir = @libdir@/svn-javahl
91 javahl_javahdir = @libdir@/svn-javahl/include
92 javahl_libdir = @libdir@
93 javahl_test_rootdir=$(abs_builddir)/subversion/bindings/javahl/test-work
94 javahl_test_srcdir=$(abs_srcdir)/subversion/bindings/javahl
96 gnome_auth_dir = $(abs_builddir)/subversion/libsvn_auth_gnome_keyring/.libs
97 kwallet_auth_dir = $(abs_builddir)/subversion/libsvn_auth_kwallet/.libs
98 auth_plugin_dirs = $(gnome_auth_dir):$(kwallet_auth_dir)
101 MSGFMTFLAGS = @MSGFMTFLAGS@
102 MSGMERGE = @MSGMERGE@
103 XGETTEXT = @XGETTEXT@
106 PACKAGE_NAME=@PACKAGE_NAME@
107 PACKAGE_VERSION=@PACKAGE_VERSION@
114 LIBTOOL = @SVN_LIBTOOL@
115 LTFLAGS = --tag=CC --silent
116 LTCXXFLAGS = --tag=CXX --silent
117 LT_CFLAGS = @LT_CFLAGS@
118 LT_LDFLAGS = @LT_LDFLAGS@
119 LT_SO_VERSION = @SVN_LT_SOVERSION@
120 LT_NO_UNDEFINED = @LT_NO_UNDEFINED@
121 LT_CXX_LIBADD = @LT_CXX_LIBADD@
123 INCLUDES = -I$(top_srcdir)/subversion/include -I$(top_builddir)/subversion \
124 @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ @SVN_APR_MEMCACHE_INCLUDES@ \
125 @SVN_DB_INCLUDES@ @SVN_GNOME_KEYRING_INCLUDES@ \
126 @SVN_KWALLET_INCLUDES@ @SVN_MAGIC_INCLUDES@ \
127 @SVN_SASL_INCLUDES@ @SVN_SERF_INCLUDES@ @SVN_SQLITE_INCLUDES@ \
128 @SVN_XML_INCLUDES@ @SVN_ZLIB_INCLUDES@
130 APACHE_INCLUDES = @APACHE_INCLUDES@
131 APACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@
132 APACHE_LDFLAGS = @APACHE_LDFLAGS@
135 SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ -I$(SWIG_SRC_DIR)/python/libsvn_swig_py
136 SWIG_PY_COMPILE = @SWIG_PY_COMPILE@
137 SWIG_PY_LINK = @SWIG_PY_LINK@
138 SWIG_PY_LIBS = @SWIG_PY_LIBS@
139 SWIG_PL_INCLUDES = @SWIG_PL_INCLUDES@
140 SWIG_RB_INCLUDES = @SWIG_RB_INCLUDES@ -I$(SWIG_SRC_DIR)/ruby/libsvn_swig_ruby
141 SWIG_RB_COMPILE = @SWIG_RB_COMPILE@
142 SWIG_RB_LINK = @SWIG_RB_LINK@
143 SWIG_RB_LIBS = @SWIG_RB_LIBS@
144 SWIG_RB_SITE_LIB_DIR = @SWIG_RB_SITE_LIB_DIR@
145 SWIG_RB_SITE_ARCH_DIR = @SWIG_RB_SITE_ARCH_DIR@
146 SWIG_RB_TEST_VERBOSE = @SWIG_RB_TEST_VERBOSE@
147 SWIG_RB_RI_DATADIR = $(DESTDIR)$(datadir)/ri/$(RUBY_MAJOR).$(RUBY_MINOR)/site
149 CTYPESGEN = @CTYPESGEN@
150 CTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python
152 JAVAHL_JAR=subversion/bindings/javahl/svn-javahl.jar
153 JAVAHL_INCLUDES= @JNI_INCLUDES@ -I$(abs_builddir)/subversion/bindings/javahl/include
155 CXXHL_INCLUDES = -I$(abs_srcdir)/subversion/bindings/cxxhl/include
157 SVN_APR_CONFIG = @SVN_APR_CONFIG@
158 SVN_APR_INCLUDES = @SVN_APR_INCLUDES@
159 SVN_APRUTIL_CONFIG = @SVN_APRUTIL_CONFIG@
160 SVN_APRUTIL_INCLUDES = @SVN_APRUTIL_INCLUDES@
166 # The EXTRA_ parameters can be used to pass extra flags at 'make' time.
167 CFLAGS = @CFLAGS@ $(EXTRA_CFLAGS)
168 CMODEFLAGS = @CMODEFLAGS@
169 CMAINTAINERFLAGS = @CMAINTAINERFLAGS@
170 CXXFLAGS = @CXXFLAGS@ $(EXTRA_CXXFLAGS)
171 CXXMODEFLAGS = @CXXMODEFLAGS@
172 CXXMAINTAINERFLAGS = @CXXMAINTAINERFLAGS@
173 ### A few of the CFLAGS (e.g. -Wmissing-prototypes, -Wstrict-prototypes,
174 ### -Wmissing-declarations) are not valid for C++, and should be somehow
175 ### suppressed (but they may come from httpd or APR).
176 CPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS)
177 LDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS)
178 SWIG_LDFLAGS = @SWIG_LDFLAGS@ $(EXTRA_SWIG_LDFLAGS)
180 COMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES)
181 COMPILE_CXX = $(CXX) $(CXXMODEFLAGS) $(CPPFLAGS) $(CXXMAINTAINERFLAGS) $(CXXFLAGS) $(INCLUDES)
182 LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) $(LT_CFLAGS)
183 LT_COMPILE_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS)
185 # Execute a command that loads libraries from the build dir
186 LT_EXECUTE = $(LIBTOOL) $(LTFLAGS) --mode=execute `for f in $(abs_builddir)/subversion/*/*.la; do echo -dlopen $$f; done`
188 # special compilation for files destined for mod_dav_svn
189 COMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CFLAGS) $(CMAINTAINERFLAGS) $(LT_CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c
191 # special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c)
192 COMPILE_SWIG_PY = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) -DSWIGPYTHON $(SWIG_PY_INCLUDES) $(INCLUDES) -o $@ -c
193 COMPILE_SWIG_PL = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(LT_CFLAGS) $(SWIG_PL_INCLUDES) $(INCLUDES) -o $@ -c
194 COMPILE_SWIG_RB = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) $(SWIG_RB_INCLUDES) $(INCLUDES) -o $@ -c
196 # special compilation for files destined for javahl (i.e. C++)
197 COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(JAVAHL_INCLUDES) -o $@ -c
198 COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
199 COMPILE_JAVAHL_JAVAH = $(JAVAH)
201 # special compilation for files destined for cxxhl
202 COMPILE_CXXHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(CXXHL_INCLUDES) -o $@ -c
204 LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
205 LINK_LIB = $(LINK) $(LT_SO_VERSION)
206 LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
207 LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
209 # special link rule for mod_dav_svn
210 LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS)
212 # Special LDFLAGS for some libraries
213 libsvn_auth_gnome_keyring_LDFLAGS = @libsvn_auth_gnome_keyring_LDFLAGS@
214 libsvn_auth_kwallet_LDFLAGS = @libsvn_auth_kwallet_LDFLAGS@
215 libsvn_client_LDFLAGS = @libsvn_client_LDFLAGS@
216 libsvn_delta_LDFLAGS = @libsvn_delta_LDFLAGS@
217 libsvn_diff_LDFLAGS = @libsvn_diff_LDFLAGS@
218 libsvn_fs_LDFLAGS = @libsvn_fs_LDFLAGS@
219 libsvn_fs_base_LDFLAGS = @libsvn_fs_base_LDFLAGS@
220 libsvn_fs_fs_LDFLAGS = @libsvn_fs_fs_LDFLAGS@
221 libsvn_fs_util_LDFLAGS = @libsvn_fs_util_LDFLAGS@
222 libsvn_ra_LDFLAGS = @libsvn_ra_LDFLAGS@
223 libsvn_ra_local_LDFLAGS = @libsvn_ra_local_LDFLAGS@
224 libsvn_ra_serf_LDFLAGS = @libsvn_ra_serf_LDFLAGS@
225 libsvn_ra_svn_LDFLAGS = @libsvn_ra_svn_LDFLAGS@
226 libsvn_repos_LDFLAGS = @libsvn_repos_LDFLAGS@
227 libsvn_subr_LDFLAGS = @libsvn_subr_LDFLAGS@
228 libsvn_wc_LDFLAGS = @libsvn_wc_LDFLAGS@
230 # Compilation of SWIG-generated C source code
231 COMPILE_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_PY_INCLUDES) -prefer-pic -c -o $@
232 COMPILE_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_RB_INCLUDES) -prefer-pic -c -o $@
234 # these commands link the wrapper objects into an extension library/module
235 LINK_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_PY_LINK) $(SWIG_LDFLAGS) -rpath $(swig_pydir) -avoid-version -module
236 LINK_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_RB_LINK) $(SWIG_LDFLAGS) -rpath $(swig_rbdir) -avoid-version -module
238 LINK_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) $(LT_CXX_LIBADD) -rpath $(libdir)
241 INSTALL_LIB = $(LIBTOOL) --mode=install $(INSTALL)
242 INSTALL_FSMOD_LIB = $(INSTALL_LIB)
243 INSTALL_RAMOD_LIB = $(INSTALL_LIB)
244 INSTALL_APR_MEMCACHE_LIB = $(INSTALL_LIB)
245 INSTALL_BDB_LIB = $(INSTALL_LIB)
246 INSTALL_GPG_AGENT_LIB = $(INSTALL_LIB)
247 INSTALL_GNOME_KEYRING_LIB = $(INSTALL_LIB)
248 INSTALL_KWALLET_LIB = $(INSTALL_LIB)
249 INSTALL_SERF_LIB = $(INSTALL_LIB)
250 INSTALL_BIN = $(LIBTOOL) --mode=install $(INSTALL)
251 INSTALL_CONTRIB = $(LIBTOOL) --mode=install $(INSTALL)
252 INSTALL_TOOLS = $(LIBTOOL) --mode=install $(INSTALL)
253 INSTALL_INCLUDE = $(INSTALL) -m 644
254 INSTALL_MOD_SHARED = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
255 INSTALL_DATA = $(INSTALL) -m 644
256 INSTALL_LOCALE = $(INSTALL_DATA)
257 INSTALL_APACHE_MODS = @INSTALL_APACHE_MODS@
259 ### this isn't correct yet
260 INSTALL_SWIG_PY = $(INSTALL_LIB)
261 INSTALL_SWIG_PY_LIB = $(INSTALL_LIB)
262 INSTALL_SWIG_PL_LIB = $(INSTALL_LIB)
263 INSTALL_SWIG_RB = $(INSTALL_LIB)
264 INSTALL_SWIG_RB_LIB = $(INSTALL_LIB)
266 INSTALL_JAVAHL_LIB = $(INSTALL_LIB)
268 # additional installation rules for the SWIG wrappers
269 INSTALL_EXTRA_SWIG_PY=\
270 $(MKDIR) $(DESTDIR)$(swig_pydir); \
271 $(MKDIR) $(DESTDIR)$(swig_pydir_extra); \
272 for i in $(abs_srcdir)/subversion/bindings/swig/python/svn/*.py; do \
273 $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir_extra); \
275 for i in $(abs_srcdir)/subversion/bindings/swig/python/*.py; do \
276 $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
278 if test "$(abs_srcdir)" != "$(abs_builddir)"; then \
279 for i in $(abs_builddir)/subversion/bindings/swig/python/*.py; do \
280 $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
283 $(PYTHON) -c 'import compileall; \
284 compileall.compile_dir("$(DESTDIR)$(swig_pydir)", 1, "$(swig_pydir)"); \
285 compileall.compile_dir("$(DESTDIR)$(swig_pydir_extra)", 1, \
286 "$(swig_pydir_extra)");'
288 # export an env variable so that the tests can run without being installed
289 TEST_SHLIB_VAR_SWIG_PY=\
290 if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
291 for d in $(SWIG_PY_DIR)/libsvn_swig_py $(SWIG_PY_DIR)/../../../libsvn_*; do \
292 if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
293 @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
295 @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
298 export @SVN_APR_SHLIB_PATH_VAR@; \
301 # The path to generated and complementary source files for the SWIG
303 SWIG_PL_DIR = $(abs_builddir)/subversion/bindings/swig/perl
304 SWIG_PY_DIR = $(abs_builddir)/subversion/bindings/swig/python
305 SWIG_RB_DIR = $(abs_builddir)/subversion/bindings/swig/ruby
307 # The path to the source files for the SWIG bindings
308 SWIG_PL_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/perl
309 SWIG_PY_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/python
310 SWIG_RB_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/ruby
312 ### Automate JAR creation using Makefile generator's javahl-java.jar
313 ### property. Enhance generator to support JAR installation.
314 JAVAHL_MANIFEST_IN = $(abs_srcdir)/subversion/bindings/javahl/Manifest.in
315 JAVAHL_MANIFEST = subversion/bindings/javahl/Manifest
316 INSTALL_EXTRA_JAVAHL_JAVA=\
317 sed s/%bundleVersion/$(PACKAGE_VERSION)/ $(JAVAHL_MANIFEST_IN) > $(JAVAHL_MANIFEST); \
318 $(JAR) cfm $(JAVAHL_JAR) $(JAVAHL_MANIFEST) -C subversion/bindings/javahl/classes org; \
319 $(INSTALL_DATA) $(JAVAHL_JAR) $(DESTDIR)$(javahl_javadir);
321 INSTALL_EXTRA_JAVAHL_LIB=@INSTALL_EXTRA_JAVAHL_LIB@
323 INSTALL_EXTRA_SWIG_RB=\
324 @echo $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
325 $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
326 for i in $(abs_srcdir)/subversion/bindings/swig/ruby/svn/*.rb; do \
327 echo $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
328 $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
331 # export an env variable so that the tests can run without being installed
332 TEST_SHLIB_VAR_SWIG_RB=\
333 if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
334 for d in $(SWIG_PY_DIR)/libsvn_swig_rb $(SWIG_PY_DIR)/../../../libsvn_*; do \
335 if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
336 @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
338 @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
341 export @SVN_APR_SHLIB_PATH_VAR@; \
353 JAVAC_FLAGS = @JAVAC_FLAGS@
357 JAVA_CLASSPATH=$(abs_srcdir)/subversion/bindings/javahl/src:@JAVA_CLASSPATH@
358 javahl_java_CLASSPATH=$(JAVA_CLASSPATH)
359 javahl_compat_CLASSPATH=$(JAVA_CLASSPATH)
360 javahl_tests_CLASSPATH=$(JAVA_CLASSPATH)
361 javahl_compat_tests_CLASSPATH=$(JAVA_CLASSPATH)
364 RUBY_MAJOR = @RUBY_MAJOR@
365 RUBY_MINOR = @RUBY_MINOR@
371 TESTS = $(TEST_PROGRAMS) @BDB_TEST_PROGRAMS@
373 all: mkdir-init local-all
375 distclean: local-distclean
376 extraclean: local-extraclean
377 install: local-install revision-install
381 local-all: @BUILD_RULES@ @TRANSFORM_LIBTOOL_SCRIPTS@
383 transform-libtool-scripts: @BUILD_RULES@
384 @$(SHELL) $(top_srcdir)/build/transform_libtool_scripts.sh
387 cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
388 $(SHELL) tools/po/po-update.sh pot
390 # "make locale-gnu-po-update" updates all translations.
391 # "make locale-gnu-po-update PO=ll" updates only the ll.po file.
392 locale-gnu-po-update:
393 cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
394 $(SHELL) tools/po/po-update.sh $(PO)
396 # clean everything but the bulky test output, returning the system back
397 # to before 'make' was run.
398 fast-clean: doc-clean
399 @list='$(BUILD_DIRS)'; for i in $$list; do \
400 if [ -d $$i ]; then \
401 (cd $$i && rm -f *.o *.lo *.la *.la-a *.spo *.mo && \
405 echo $(CLEAN_FILES) | xargs rm -f --
406 find $(CTYPES_PYTHON_SRC_DIR) $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) \
407 $(abs_srcdir)/build $(top_srcdir)/subversion/tests/cmdline/svntest \
408 -name "*.pyc" -exec rm {} ';'
410 # clean everything, returning to before './configure' was run.
411 SVN_CONFIG_SCRIPT_FILES = @SVN_CONFIG_SCRIPT_FILES@
412 local-distclean: local-clean
413 rm -fr config.cache config.log config.nice config.status \
414 libtool mkmf.log subversion/svn_private_config.h \
415 subversion/bindings/javahl/classes \
416 subversion/bindings/javahl/include \
417 $(SVN_CONFIG_SCRIPT_FILES)
420 # clean everything out, returning to before './autogen.sh' was run.
421 local-extraclean: extraclean-bindings local-distclean
422 rm -f $(top_srcdir)/build-outputs.mk \
423 $(top_srcdir)/subversion/svn_private_config.h.in \
424 $(top_srcdir)/configure \
425 $(top_srcdir)/gen-make.opts \
426 $(top_srcdir)/build/config.guess \
427 $(top_srcdir)/build/config.sub \
428 $(top_srcdir)/build/libtool.m4 \
429 $(top_srcdir)/build/ltoptions.m4 \
430 $(top_srcdir)/build/ltsugar.m4 \
431 $(top_srcdir)/build/ltversion.m4 \
432 $(top_srcdir)/build/lt~obsolete.m4 \
433 $(top_srcdir)/build/ltmain.sh \
434 $(top_srcdir)/build/transform_libtool_scripts.sh \
438 # clean everything, including test output.
439 local-clean: check-clean clean-bindings fast-clean
441 local-install: @INSTALL_RULES@
444 test -d $(DESTDIR)$(includedir)/subversion-1 || \
445 $(MKDIR) $(DESTDIR)$(includedir)/subversion-1
446 (subversion/svnversion/svnversion $(top_srcdir) 2> /dev/null || \
447 svnversion $(top_srcdir) 2> /dev/null || \
449 ) > $(DESTDIR)$(includedir)/subversion-1/svn-revision.txt
451 install-static: @INSTALL_STATIC_RULES@
453 # JavaHL target aliases
454 javahl: mkdir-init javahl-java javahl-javah javahl-callback-javah javahl-types-javah javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
455 install-javahl: javahl install-javahl-java install-javahl-javah install-javahl-lib
456 javahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
459 rm -rf $(javahl_java_PATH) $(javahl_javah_PATH) @JAVAHL_OBJDIR@
460 rm -fr $(javahl_test_rootdir)
461 rm -f $(libsvnjavahl_PATH)/*.la $(JAVAHL_JAR)
462 rm -f $(libsvnjavahl_PATH)/*.lo
463 rm -f $(libsvnjavahl_PATH)/*.o
465 check-tigris-javahl: javahl-compat
467 $(JAVA) "-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
469 check-apache-javahl: javahl
471 $(JAVA) "-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
473 check-javahl: check-apache-javahl
475 check-all-javahl: check-apache-javahl check-tigris-javahl
477 # "make check CLEANUP=true" will clean up directories for successful tests.
478 # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
479 # will perform only basic tests (likewise for other tests).
480 check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@
481 @if test "$(PYTHON)" != "none"; then \
483 if test "$(CLEANUP)" != ""; then \
484 flags="--cleanup $$flags"; \
486 if test "$(BASE_URL)" != ""; then \
487 flags="--url $(BASE_URL) $$flags"; \
489 if test "$(FS_TYPE)" != ""; then \
490 flags="--fs-type $(FS_TYPE) $$flags"; \
492 if test "$(HTTP_LIBRARY)" != ""; then \
493 flags="--http-library $(HTTP_LIBRARY) $$flags"; \
495 if test "$(SERVER_MINOR_VERSION)" != ""; then \
496 flags="--server-minor-version $(SERVER_MINOR_VERSION) $$flags"; \
498 if test "$(ENABLE_SASL)" != ""; then \
499 flags="--enable-sasl $$flags"; \
501 if test "$(FSFS_SHARDING)" != ""; then \
502 flags="--fsfs-sharding $(FSFS_SHARDING) $$flags"; \
504 if test "$(FSFS_PACKING)" != ""; then \
505 flags="--fsfs-packing $$flags"; \
507 if test "$(PARALLEL)" != ""; then \
508 flags="--parallel $$flags"; \
510 if test "$(LOG_TO_STDOUT)" != ""; then \
511 flags="--log-to-stdout $$flags"; \
513 if test "$(MILESTONE_FILTER)" != ""; then \
514 flags="--list --milestone-filter=$(MILESTONE_FILTER) \
515 --mode-filter=$(MODE_FILTER) --log-to-stdout $$flags"; \
517 if test "$(SET_LOG_LEVEL)" != ""; then \
518 flags="--set-log-level $(SET_LOG_LEVEL) $$flags"; \
520 if test "$(SSL_CERT)" != ""; then \
521 flags="--ssl-cert $(SSL_CERT) $$flags"; \
523 if test "$(HTTP_PROXY)" != ""; then \
524 flags="--http-proxy $(HTTP_PROXY) $$flags"; \
526 LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)' \
527 $(PYTHON) $(top_srcdir)/build/run_tests.py \
528 --config-file $(top_srcdir)/subversion/tests/tests.conf \
530 '$(abs_srcdir)' '$(abs_builddir)' $(TESTS); \
532 echo "make check: Python 2.5 or greater is required,"; \
533 echo " but was not detected during configure"; \
537 # First, set up Apache as documented in
538 # subversion/tests/cmdline/README.
539 davcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
540 @$(MAKE) check BASE_URL=http://localhost
542 # Automatically configure and run Apache httpd on a random port, and then
544 davautocheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
545 @# Takes MODULE_PATH, USE_HTTPV1 and SVN_PATH_AUTHZ in the environment.
546 @APXS=$(APXS) $(top_srcdir)/subversion/tests/cmdline/davautocheck.sh
549 # subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/cmdline
550 svncheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
551 @$(MAKE) check BASE_URL=svn://127.0.0.1
553 # 'make svnserveautocheck' runs svnserve for you and kills it.
554 svnserveautocheck: svnserve bin $(TEST_DEPS) @BDB_TEST_DEPS@
555 @env PYTHON=$(PYTHON) THREADED=$(THREADED) \
556 $(top_srcdir)/subversion/tests/cmdline/svnserveautocheck.sh
559 # subversion/svnserve/svnserve --listen-host "::1" -d -r `pwd`/subversion/tests/cmdline
561 svncheck6: bin $(TEST_DEPS) @BDB_TEST_DEPS@
562 @$(MAKE) check BASE_URL=svn://\[::1\]
564 # First make sure you can ssh to localhost and that "svnserve" is in
565 # the path of the resulting shell.
566 svnsshcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
568 BASE_URL=svn+ssh://localhost`pwd`/subversion/tests/cmdline
570 bdbcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
571 @$(MAKE) check FS_TYPE=bdb
573 # Create an execution coverage report from the data collected during
574 # all execution since the last reset.
576 lcov --capture -d . -b . -o gcov-lcov.dat > gcov-lcov.log
577 genhtml gcov-lcov.dat -o gcov-report > gcov-genhtml.log
579 # Reset all execution coverage counters to zero.
581 lcov --zerocounters -d .
583 # Remove the execution coverage data and the report.
585 rm -f gcov-lcov.dat gcov-lcov.log gcov-genhtml.log
587 find . -name "*.gcda" -o -name "*.gcno" -print0 | xargs -0 rm -f --
589 check-clean: gcov-clean
590 if [ -d subversion/tests/cmdline/svn-test-work ]; then \
591 find subversion/tests/cmdline/svn-test-work -mindepth 1 -maxdepth 1 \
592 -print0 | xargs -0 rm -rf --; \
594 rm -rf subversion/tests/libsvn_fs/test-repo-* \
595 subversion/tests/libsvn_fs_base/test-repo-* \
596 subversion/tests/libsvn_fs_fs/test-repo-* \
597 subversion/tests/libsvn_ra_local/test-repo-* \
598 subversion/tests/libsvn_repos/test-repo-* \
599 subversion/tests/libsvn_subr/z \
600 subversion/tests/libsvn_wc/fake-wc \
601 subversion/tests/libsvn_client/test-patch* \
602 subversion/tests/libsvn_client/test-*/ \
603 subversion/tests/libsvn_diff/B2 \
604 subversion/tests/libsvn_diff/T1 \
605 subversion/tests/libsvn_diff/T2 \
606 subversion/tests/libsvn_diff/T3 \
607 subversion/tests/svnserveautocheck.pid \
611 @list='$(BUILD_DIRS) $(SCHEMA_DIR) doc'; \
612 for i in $$list; do \
613 if [ ! -d $$i ]; then \
618 # DOCUMENTATION RULES
620 # Every single document in every format.
621 doc: doc-api doc-javahl
623 # Generate API documentation for the C libraries.
624 ### This could also generate POD for swig-perl, etc.
626 ( cd $(top_srcdir) && \
627 sed "s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \
628 doc/doxygen.conf | $(DOXYGEN) - )
630 # Generate API documentation for the JavaHL package.
632 $(JAVADOC) -d $(abs_builddir)/doc/javadoc \
633 -sourcepath $(top_srcdir)/subversion/bindings/javahl/src \
634 -link http://java.sun.com/javase/6/docs/api/ \
635 org.tigris.subversion.javahl \
636 org.apache.subversion.javahl \
637 org.apache.subversion.javahl.callback \
638 org.apache.subversion.javahl.types
641 rm -rf $(top_srcdir)/doc/doxygen
642 rm -rf $(top_srcdir)/doc/javadoc
644 # Converting from the .rnc XML shcemas to various other schema formats.
645 SCHEMAS_DTD = $(SCHEMA_DIR)/blame.dtd $(SCHEMA_DIR)/info.dtd \
646 $(SCHEMA_DIR)/list.dtd $(SCHEMA_DIR)/log.dtd \
647 $(SCHEMA_DIR)/status.dtd $(SCHEMA_DIR)/props.dtd
649 SCHEMAS_RNG = $(SCHEMA_DIR)/blame.rng $(SCHEMA_DIR)/info.rng \
650 $(SCHEMA_DIR)/list.rng $(SCHEMA_DIR)/log.rng \
651 $(SCHEMA_DIR)/status.rng $(SCHEMA_DIR)/props.rng
653 SCHEMAS_XSD = $(SCHEMA_DIR)/blame.xsd $(SCHEMA_DIR)/info.xsd \
654 $(SCHEMA_DIR)/list.xsd $(SCHEMA_DIR)/log.xsd \
655 $(SCHEMA_DIR)/status.xsd $(SCHEMA_DIR)/props.xsd
657 schema: schema-rng schema-dtd schema-xsd
659 schema-rng: $(SCHEMAS_RNG)
660 schema-dtd: $(SCHEMAS_DTD)
661 schema-xsd: $(SCHEMAS_XSD)
663 $(SCHEMAS_RNG) $(SCHEMAS_DTD) $(SCHEMAS_XSD): $(SCHEMA_DIR)/common.rnc
666 (cd $(SCHEMA_DIR) && rm -f *.rng *.dtd *.xsd)
669 # Implicit rules for creating outputs from input files
672 .SUFFIXES: .c .cpp .lo .o .la-a .la \
673 .po .spo .mo .rnc .rng .dtd .xsd .sql .h
676 $(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
679 $(COMPILE) -o $@ -c $<
682 $(COMPILE_CXX) -o $@ -c $<
685 $(LT_COMPILE) -o $@ -c $<
688 $(LT_COMPILE_CXX) -o $@ -c $<
691 sed "/library_names/s/'.*'/''/" $< > $@
694 # Strip the Content-Type: header from the po file if we don't have a
695 # gettext that supports bind_textdomain_codeset, so it doesn't try
696 # to convert our UTF-8 .po files to the locale encoding.
697 @NO_GETTEXT_CODESET@.po.spo:
698 @NO_GETTEXT_CODESET@ sed \
699 @NO_GETTEXT_CODESET@ '/^"Content-Type: text\/plain; charset=UTF-8\\n"$$/d' \
700 @NO_GETTEXT_CODESET@ $< > $@
702 @NO_GETTEXT_CODESET@.spo.mo:
703 @NO_GETTEXT_CODESET@ $(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
705 # For systems with bind_textdomain_codeset, just leave the Content-Type:
707 @GETTEXT_CODESET@.po.mo:
708 @GETTEXT_CODESET@ $(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
719 install-docs: install-man
721 manroot = $(mandir)/man
723 @list='$(MANPAGES)'; \
724 for i in $$list; do \
725 if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
727 ext=`echo $$i | sed -e 's/^.*\\.//'`; \
728 $(MKDIR) $(DESTDIR)$(manroot)$$ext; \
729 inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
730 inst=`echo $$inst | sed -e 's/^.*\///'`; \
731 inst=`echo $$inst`.$$ext; \
732 echo "$(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst"; \
733 $(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst; \
736 install-swig-py: install-swig-py-lib
737 install-swig-rb: install-swig-rb-lib
739 clean-bindings: clean-swig clean-ctypes-python clean-javahl
741 extraclean-bindings: clean-swig extraclean-swig-headers \
742 extraclean-swig-py extraclean-swig-rb \
744 clean-ctypes-python clean-javahl \
746 clean-swig: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
749 EXTRACLEAN_SWIG_HEADERS=rm -f $(SWIG_SRC_DIR)/proxy/*.swg
752 if test -z "$(RELEASE_MODE)"; then \
753 $(EXTRACLEAN_SWIG_HEADERS); \
756 extraclean-swig-headers: clean-swig-headers
757 $(EXTRACLEAN_SWIG_HEADERS)
759 $(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in
760 ./config.status subversion/bindings/swig/perl/native/Makefile.PL
762 $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
763 cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
765 # There is a "readlink -f" command on some systems for the same purpose,
766 # but it's not as portable (e.g. Mac OS X doesn't have it). These should
767 # only be used where Python/Perl are known to be available.
768 READLINK_PY=$(PYTHON) -c 'import sys,os; print(os.path.realpath(sys.argv[1]))'
769 READLINK_PL=$(PERL) -e 'use Cwd; print Cwd::realpath(shift)'
771 swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
772 $(SWIG_PL_DIR)/native/Makefile
773 swig-pl: $(swig-pl_DEPS)
774 if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \
775 ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \
777 cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)"
779 check-swig-pl: swig-pl swig-pl-lib
780 cd $(SWIG_PL_DIR)/native; $(MAKE) test
782 install-swig-pl: swig-pl install-swig-pl-lib
783 cd $(SWIG_PL_DIR)/native; $(MAKE) install
785 EXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \
786 $(SWIG_PL_SRC_DIR)/native/core.c
788 # Running Makefile.PL at this point *fails* (cannot find ..../.libs) so if the
789 # Makefile does not exist, DO NOT try to make it. But, if it doesn't exist,
790 # then the directory is probably clean anyway.
792 if test -z "$(RELEASE_MODE)"; then \
793 $(EXTRACLEAN_SWIG_PL); \
795 for d in $(SWIG_PL_DIR)/libsvn_swig_perl; \
798 rm -rf *.lo *.la *.o .libs; \
800 if [ -f "$(SWIG_PL_DIR)/native/Makefile" ]; then \
801 cd $(SWIG_PL_DIR)/native; $(MAKE) clean; \
804 extraclean-swig-pl: clean-swig-pl
805 $(EXTRACLEAN_SWIG_PL)
807 $(SWIG_PY_DIR)/libsvn:
808 mkdir $(SWIG_PY_DIR)/libsvn
810 copy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsvn
811 @for f in $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/*.py; do \
812 ! [ -f "$$f" ] || cp -pf $$f $(SWIG_PY_DIR)/libsvn; \
814 @touch $(SWIG_PY_DIR)/libsvn/__init__.py
816 swig-py: autogen-swig-py copy-swig-py
818 check-swig-py: swig-py
819 $(TEST_SHLIB_VAR_SWIG_PY) \
821 $(PYTHON) $(SWIG_PY_SRC_DIR)/tests/run_all.py
823 EXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_SRC_DIR)/svn_*.c $(SWIG_PY_SRC_DIR)/core.c \
824 $(SWIG_PY_SRC_DIR)/[a-z]*.py
826 rm -rf $(SWIG_PY_DIR)/libsvn
827 if test -z "$(RELEASE_MODE)"; then \
828 $(EXTRACLEAN_SWIG_PY); \
830 for d in $(SWIG_PY_DIR) $(SWIG_PY_DIR)/libsvn_swig_py; \
832 cd $$d && rm -rf *.lo *.la *.o *.pyc .libs; \
834 find $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) -name "*.pyc" -exec rm {} ';'
836 extraclean-swig-py: clean-swig-py
837 $(EXTRACLEAN_SWIG_PY)
839 swig-rb: autogen-swig-rb
841 check-swig-rb: swig-rb svnserve
842 $(TEST_SHLIB_VAR_SWIG_RB) \
844 if [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
845 $(RUBY) -I $(SWIG_RB_SRC_DIR) \
846 $(SWIG_RB_SRC_DIR)/test/run-test.rb \
847 --verbose=$(SWIG_RB_TEST_VERBOSE); \
849 $(RUBY) -I $(SWIG_RB_SRC_DIR) \
850 $(SWIG_RB_SRC_DIR)/test/run-test.rb; \
853 EXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c
856 rm -rf $(SWIG_RB_DIR)/test/repos $(SWIG_RB_DIR)/test/wc
857 if test -z "$(RELEASE_MODE)"; then \
858 $(EXTRACLEAN_SWIG_RB); \
860 for d in $(SWIG_RB_DIR) $(SWIG_RB_DIR)/libsvn_swig_ruby; \
863 rm -rf *.lo *.la *.o .libs; \
866 extraclean-swig-rb: clean-swig-rb
867 $(EXTRACLEAN_SWIG_RB)
870 $(RDOC) --all --ri --op "$(SWIG_RB_RI_DATADIR)" "$(SWIG_RB_SRC_DIR)/svn"
872 # ctypes-python make targets
873 ctypes-python: local-all
874 $(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)"
876 install-ctypes-python: ctypes-python
877 cd $(CTYPES_PYTHON_SRC_DIR); \
878 $(PYTHON) setup.py install --prefix="$(DESTDIR)$(prefix)"
880 check-ctypes-python: ctypes-python
881 cd $(CTYPES_PYTHON_SRC_DIR); \
882 $(LT_EXECUTE) $(PYTHON) test/run_all.py
884 # If any of those files exists, run ctypes' 'setup.py clean'. We don't run
885 # it otherwise because it spams stdout+stderr; see r1479326.
887 cd $(CTYPES_PYTHON_SRC_DIR); \
888 for b in build csvn/core/functions.py svn_all.py svn_all2.py ; do \
889 if [ -e "$$b" ] ; then \
890 $(PYTHON) setup.py clean --all; \
895 # manually describe a dependency, which we won't otherwise detect
896 subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-metadata.sql
897 subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-checks.sql
899 # Compatibility symlink.
900 # This runs after the target of the same name in build-outputs.mk.
901 INSTALL_EXTRA_TOOLS=\
902 $(MKDIR) $(DESTDIR)$(bindir); \
903 test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
904 ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
905 if test "$(DESTDIR)$(bindir)" != "$(DESTDIR)$(toolsdir)"; then \
906 ln -sf $(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \