Makefile.in revision 299742
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