Makefile.in revision 298845
1251881Speter#
2251881Speter# Makefile.in:  template Makefile for Subversion
3251881Speter#
4251881Speter# ====================================================================
5251881Speter#    Licensed to the Apache Software Foundation (ASF) under one
6251881Speter#    or more contributor license agreements.  See the NOTICE file
7251881Speter#    distributed with this work for additional information
8251881Speter#    regarding copyright ownership.  The ASF licenses this file
9251881Speter#    to you under the Apache License, Version 2.0 (the
10251881Speter#    "License"); you may not use this file except in compliance
11251881Speter#    with the License.  You may obtain a copy of the License at
12251881Speter#
13251881Speter#      http://www.apache.org/licenses/LICENSE-2.0
14251881Speter#
15251881Speter#    Unless required by applicable law or agreed to in writing,
16251881Speter#    software distributed under the License is distributed on an
17251881Speter#    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18251881Speter#    KIND, either express or implied.  See the License for the
19251881Speter#    specific language governing permissions and limitations
20251881Speter#    under the License.
21251881Speter# ====================================================================
22251881Speter#
23251881Speter
24251881Spetertop_builddir = .
25251881Spetertop_srcdir = @top_srcdir@
26251881Speterabs_builddir = @abs_builddir@
27251881Speterabs_srcdir = @abs_srcdir@
28251881SpeterVPATH = @top_srcdir@
29251881Speter
30251881SpeterSVN_RA_LIB_DEPS = @SVN_RA_LIB_DEPS@
31251881SpeterSVN_RA_LIB_INSTALL_DEPS = @SVN_RA_LIB_INSTALL_DEPS@
32251881SpeterSVN_RA_LIB_LINK = @SVN_RA_LIB_LINK@
33251881Speter
34251881SpeterSVN_FS_LIB_DEPS = @SVN_FS_LIB_DEPS@
35251881SpeterSVN_FS_LIB_INSTALL_DEPS = @SVN_FS_LIB_INSTALL_DEPS@
36251881SpeterSVN_FS_LIB_LINK = @SVN_FS_LIB_LINK@
37251881Speter
38251881SpeterSWIG_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig
39251881SpeterSWIG_BUILD_DIR = $(abs_builddir)/subversion/bindings/swig
40251881Speter
41251881SpeterSCHEMA_DIR = subversion/svn/schema
42251881Speter
43251881SpeterSVN_APR_LIBS = @SVN_APR_LIBS@
44251881SpeterSVN_APRUTIL_LIBS = @SVN_APRUTIL_LIBS@
45251881SpeterSVN_APR_MEMCACHE_LIBS = @SVN_APR_MEMCACHE_LIBS@
46251881SpeterSVN_DB_LIBS = @SVN_DB_LIBS@
47251881SpeterSVN_GPG_AGENT_LIBS = @SVN_GPG_AGENT_LIBS@
48251881SpeterSVN_GNOME_KEYRING_LIBS = @SVN_GNOME_KEYRING_LIBS@
49251881SpeterSVN_KWALLET_LIBS = @SVN_KWALLET_LIBS@
50251881SpeterSVN_MAGIC_LIBS = @SVN_MAGIC_LIBS@
51289180SpeterSVN_INTL_LIBS = @SVN_INTL_LIBS@
52251881SpeterSVN_SASL_LIBS = @SVN_SASL_LIBS@
53251881SpeterSVN_SERF_LIBS = @SVN_SERF_LIBS@
54251881SpeterSVN_SQLITE_LIBS = @SVN_SQLITE_LIBS@
55251881SpeterSVN_XML_LIBS = @SVN_XML_LIBS@
56251881SpeterSVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
57251881Speter
58251881SpeterLIBS = @LIBS@
59251881Speter
60251881Speterprefix = @prefix@
61251881Speterexec_prefix = @exec_prefix@
62251881Speterlibdir = @libdir@
63251881Speterfsmod_libdir = @libdir@
64251881Speterramod_libdir = @libdir@
65251881Speterbdb_libdir = @libdir@
66251881Spetergnome_keyring_libdir = @libdir@
67251881Spetergpg_agent_libdir = @libdir@
68251881Speterkwallet_libdir = @libdir@
69251881Speterserf_libdir = @libdir@
70251881Speterbindir = @bindir@
71251881Speterincludedir = @includedir@
72251881Spetermandir = @mandir@
73251881Spetersrcdir = @srcdir@
74251881Spetercanonicalized_srcdir = @canonicalized_srcdir@
75251881Speterdatadir = @datadir@
76251881Speterdatarootdir = @datarootdir@
77251881Speterlocaledir = @localedir@
78251881Speter
79251881Speter# where to install libsvn_swig_*
80251881Speterswig_py_libdir = @libdir@
81251881Speterswig_pl_libdir = @libdir@
82251881Speterswig_rb_libdir = @libdir@
83251881Speter
84251881Speter### these possibly need further discussion
85251881Speterswig_pydir = @libdir@/svn-python/libsvn
86251881Speterswig_pydir_extra = @libdir@/svn-python/svn
87251881Speterswig_pldir = @libdir@/svn-perl
88251881Speterswig_rbdir = $(SWIG_RB_SITE_ARCH_DIR)/svn/ext
89251881Spetertoolsdir = @bindir@/svn-tools
90251881Speter
91289180Speter# where to install pkg-config files
92289180Speterpkgconfig_dir = $(datadir)/pkgconfig
93289180Speter
94251881Speterjavahl_javadir = @libdir@/svn-javahl
95251881Speterjavahl_javahdir = @libdir@/svn-javahl/include
96251881Speterjavahl_libdir = @libdir@
97251881Speterjavahl_test_rootdir=$(abs_builddir)/subversion/bindings/javahl/test-work
98251881Speterjavahl_test_srcdir=$(abs_srcdir)/subversion/bindings/javahl
99251881Speter
100251881Spetergnome_auth_dir = $(abs_builddir)/subversion/libsvn_auth_gnome_keyring/.libs
101251881Speterkwallet_auth_dir = $(abs_builddir)/subversion/libsvn_auth_kwallet/.libs
102251881Speterauth_plugin_dirs = $(gnome_auth_dir):$(kwallet_auth_dir)
103251881Speter
104251881SpeterMSGFMT = @MSGFMT@
105251881SpeterMSGFMTFLAGS = @MSGFMTFLAGS@
106251881SpeterMSGMERGE = @MSGMERGE@
107251881SpeterXGETTEXT = @XGETTEXT@
108251881SpeterTRANG = @TRANG@
109251881Speter
110251881SpeterPACKAGE_NAME=@PACKAGE_NAME@
111251881SpeterPACKAGE_VERSION=@PACKAGE_VERSION@
112251881Speter
113251881SpeterCC = @CC@
114251881SpeterCXX = @CXX@
115258569SpeterCPP = @CPP@
116251881SpeterEXEEXT = @EXEEXT@
117251881Speter
118251881SpeterSHELL = @SHELL@
119251881SpeterLIBTOOL = @SVN_LIBTOOL@
120251881SpeterLTFLAGS = --tag=CC --silent
121251881SpeterLTCXXFLAGS = --tag=CXX --silent
122251881SpeterLT_CFLAGS = @LT_CFLAGS@
123251881SpeterLT_LDFLAGS = @LT_LDFLAGS@
124251881SpeterLT_SO_VERSION = @SVN_LT_SOVERSION@
125251881SpeterLT_NO_UNDEFINED = @LT_NO_UNDEFINED@
126251881SpeterLT_CXX_LIBADD = @LT_CXX_LIBADD@
127251881Speter
128251881SpeterINCLUDES = -I$(top_srcdir)/subversion/include -I$(top_builddir)/subversion \
129251881Speter           @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ @SVN_APR_MEMCACHE_INCLUDES@ \
130251881Speter           @SVN_DB_INCLUDES@ @SVN_GNOME_KEYRING_INCLUDES@ \
131251881Speter           @SVN_KWALLET_INCLUDES@ @SVN_MAGIC_INCLUDES@ \
132251881Speter           @SVN_SASL_INCLUDES@ @SVN_SERF_INCLUDES@ @SVN_SQLITE_INCLUDES@ \
133251881Speter           @SVN_XML_INCLUDES@ @SVN_ZLIB_INCLUDES@
134251881Speter
135251881SpeterAPACHE_INCLUDES = @APACHE_INCLUDES@
136251881SpeterAPACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@
137251881SpeterAPACHE_LDFLAGS = @APACHE_LDFLAGS@
138251881Speter
139289180SpeterSVN_USE_GMOCK = @SVN_USE_GMOCK@
140289180SpeterGMOCK_INCLUDES = -I@GMOCK_SRCDIR@
141289180Speter
142251881SpeterSWIG = @SWIG@
143251881SpeterSWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ -I$(SWIG_SRC_DIR)/python/libsvn_swig_py
144251881SpeterSWIG_PY_COMPILE = @SWIG_PY_COMPILE@
145251881SpeterSWIG_PY_LINK = @SWIG_PY_LINK@
146251881SpeterSWIG_PY_LIBS = @SWIG_PY_LIBS@
147251881SpeterSWIG_PL_INCLUDES = @SWIG_PL_INCLUDES@
148251881SpeterSWIG_RB_INCLUDES = @SWIG_RB_INCLUDES@ -I$(SWIG_SRC_DIR)/ruby/libsvn_swig_ruby
149251881SpeterSWIG_RB_COMPILE = @SWIG_RB_COMPILE@
150251881SpeterSWIG_RB_LINK = @SWIG_RB_LINK@
151251881SpeterSWIG_RB_LIBS = @SWIG_RB_LIBS@
152251881SpeterSWIG_RB_SITE_LIB_DIR = @SWIG_RB_SITE_LIB_DIR@
153251881SpeterSWIG_RB_SITE_ARCH_DIR = @SWIG_RB_SITE_ARCH_DIR@
154251881SpeterSWIG_RB_TEST_VERBOSE = @SWIG_RB_TEST_VERBOSE@
155251881SpeterSWIG_RB_RI_DATADIR = $(DESTDIR)$(datadir)/ri/$(RUBY_MAJOR).$(RUBY_MINOR)/site
156251881Speter
157251881SpeterCTYPESGEN = @CTYPESGEN@
158251881SpeterCTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python
159251881Speter
160251881SpeterJAVAHL_JAR=subversion/bindings/javahl/svn-javahl.jar
161251881SpeterJAVAHL_INCLUDES= @JNI_INCLUDES@ -I$(abs_builddir)/subversion/bindings/javahl/include
162251881Speter
163251881SpeterCXXHL_INCLUDES = -I$(abs_srcdir)/subversion/bindings/cxxhl/include
164251881Speter
165251881SpeterSVN_APR_CONFIG = @SVN_APR_CONFIG@
166251881SpeterSVN_APR_INCLUDES = @SVN_APR_INCLUDES@
167251881SpeterSVN_APRUTIL_CONFIG = @SVN_APRUTIL_CONFIG@
168251881SpeterSVN_APRUTIL_INCLUDES = @SVN_APRUTIL_INCLUDES@
169251881Speter
170251881SpeterMKDIR = @MKDIR@
171251881Speter
172251881SpeterDOXYGEN = @DOXYGEN@
173251881Speter
174251881Speter# The EXTRA_ parameters can be used to pass extra flags at 'make' time.
175289180SpeterCFLAGS = @CFLAGS@ @CUSERFLAGS@ $(EXTRA_CFLAGS)
176251881SpeterCMODEFLAGS = @CMODEFLAGS@
177289180SpeterCNOWARNFLAGS = @CNOWARNFLAGS@
178251881SpeterCMAINTAINERFLAGS = @CMAINTAINERFLAGS@
179289180SpeterCXXFLAGS = @CXXFLAGS@ @CXXUSERFLAGS@ $(EXTRA_CXXFLAGS)
180251881SpeterCXXMODEFLAGS = @CXXMODEFLAGS@
181289180SpeterCXXNOWARNFLAGS = @CXXNOWARNFLAGS@
182251881SpeterCXXMAINTAINERFLAGS = @CXXMAINTAINERFLAGS@
183251881Speter### A few of the CFLAGS (e.g. -Wmissing-prototypes, -Wstrict-prototypes,
184251881Speter### -Wmissing-declarations) are not valid for C++, and should be somehow
185251881Speter### suppressed (but they may come from httpd or APR).
186251881SpeterCPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS)
187251881SpeterLDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS)
188251881SpeterSWIG_LDFLAGS = @SWIG_LDFLAGS@ $(EXTRA_SWIG_LDFLAGS)
189262250SpeterSWIG_CPPFLAGS = @SWIG_CPPFLAGS@ $(EXTRA_CPPFLAGS)
190251881Speter
191251881SpeterCOMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES)
192289180SpeterCOMPILE_NOWARN = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CNOWARNFLAGS) $(CFLAGS) $(INCLUDES)
193251881SpeterCOMPILE_CXX = $(CXX) $(CXXMODEFLAGS) $(CPPFLAGS) $(CXXMAINTAINERFLAGS) $(CXXFLAGS) $(INCLUDES)
194289180SpeterCOMPILE_CXX_NOWARN = $(CXX) $(CXXMODEFLAGS) $(CPPFLAGS) $(CXXNOWARNFLAGS) $(CXXFLAGS) $(INCLUDES)
195251881SpeterLT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) $(LT_CFLAGS)
196251881SpeterLT_COMPILE_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS)
197289180SpeterLT_COMPILE_CXX_NOWARN = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX_NOWARN) $(LT_CFLAGS)
198251881Speter# Execute a command that loads libraries from the build dir
199251881SpeterLT_EXECUTE = $(LIBTOOL) $(LTFLAGS) --mode=execute `for f in $(abs_builddir)/subversion/*/*.la; do echo -dlopen $$f; done`
200251881Speter
201251881Speter# special compilation for files destined for mod_dav_svn
202251881SpeterCOMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CFLAGS) $(CMAINTAINERFLAGS) $(LT_CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c
203251881Speter
204251881Speter# special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c)
205251881SpeterCOMPILE_SWIG_PY = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) -DSWIGPYTHON $(SWIG_PY_INCLUDES) $(INCLUDES) -o $@ -c
206251881SpeterCOMPILE_SWIG_PL = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(LT_CFLAGS) $(SWIG_PL_INCLUDES) $(INCLUDES) -o $@ -c
207251881SpeterCOMPILE_SWIG_RB = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) $(SWIG_RB_INCLUDES) $(INCLUDES) -o $@ -c
208251881Speter
209251881Speter# special compilation for files destined for javahl (i.e. C++)
210251881SpeterCOMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(JAVAHL_INCLUDES) -o $@ -c
211251881SpeterCOMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
212251881SpeterCOMPILE_JAVAHL_JAVAH = $(JAVAH)
213289180SpeterCOMPILE_JAVAHL_COMPAT_JAVAC = $(JAVAC) $(JAVAC_COMPAT_FLAGS)
214251881Speter
215289180Speter# On Mac OS X, export an env variable so that the tests can run without
216289180Speter# being installed. OS X needs the DYLD_LIBRARY_PATH env variable set in
217289180Speter# order to find the libraries to link against, because we can't effectively
218289180Speter# use rpath due to way rpath is implemented in the Mach executable format.
219262250SpeterTEST_SHLIB_VAR_JAVAHL=\
220262250Speter  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
221262250Speter    for d in $(abs_builddir)/subversion/libsvn_*; do \
222262250Speter      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
223262250Speter        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
224262250Speter      else \
225262250Speter        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
226262250Speter      fi; \
227262250Speter    done; \
228262250Speter    export @SVN_APR_SHLIB_PATH_VAR@; \
229262250Speter  fi;
230289180SpeterTEST_SHLIB_VAR_SWIG_PY=\
231289180Speter  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
232289180Speter    for d in $(SWIG_PY_DIR)/libsvn_swig_py $(SWIG_PY_DIR)/../../../libsvn_*; do \
233289180Speter      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
234289180Speter        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
235289180Speter      else \
236289180Speter        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
237289180Speter      fi; \
238289180Speter    done; \
239289180Speter    export @SVN_APR_SHLIB_PATH_VAR@; \
240289180Speter  fi;
241289180SpeterTEST_SHLIB_VAR_SWIG_RB=\
242289180Speter  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
243289180Speter    for d in $(SWIG_RB_DIR)/libsvn_swig_ruby $(SWIG_RB_DIR)/../../../libsvn_*; do \
244289180Speter      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
245289180Speter        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
246289180Speter      else \
247289180Speter        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
248289180Speter      fi; \
249289180Speter    done; \
250289180Speter    export @SVN_APR_SHLIB_PATH_VAR@; \
251289180Speter  fi;
252262250Speter
253251881Speter# special compilation for files destined for cxxhl
254289180SpeterCOMPILE_CXXHL_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) -o $@ -c
255289180SpeterCOMPILE_GMOCK_CXX = $(LT_COMPILE_CXX_NOWARN) $(GMOCK_INCLUDES) -o $@ -c
256289180SpeterCOMPILE_CXXHL_GMOCK_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) $(GMOCK_INCLUDES) -o $@ -c
257251881Speter
258251881SpeterLINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
259251881SpeterLINK_LIB = $(LINK) $(LT_SO_VERSION)
260251881SpeterLINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
261251881SpeterLINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
262251881Speter
263251881Speter# special link rule for mod_dav_svn
264251881SpeterLINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS)
265251881Speter
266251881Speter# Special LDFLAGS for some libraries
267251881Speterlibsvn_auth_gnome_keyring_LDFLAGS = @libsvn_auth_gnome_keyring_LDFLAGS@
268251881Speterlibsvn_auth_kwallet_LDFLAGS = @libsvn_auth_kwallet_LDFLAGS@
269251881Speterlibsvn_client_LDFLAGS = @libsvn_client_LDFLAGS@
270251881Speterlibsvn_delta_LDFLAGS = @libsvn_delta_LDFLAGS@
271251881Speterlibsvn_diff_LDFLAGS = @libsvn_diff_LDFLAGS@
272251881Speterlibsvn_fs_LDFLAGS = @libsvn_fs_LDFLAGS@
273251881Speterlibsvn_fs_base_LDFLAGS = @libsvn_fs_base_LDFLAGS@
274251881Speterlibsvn_fs_fs_LDFLAGS = @libsvn_fs_fs_LDFLAGS@
275251881Speterlibsvn_fs_util_LDFLAGS = @libsvn_fs_util_LDFLAGS@
276251881Speterlibsvn_ra_LDFLAGS = @libsvn_ra_LDFLAGS@
277251881Speterlibsvn_ra_local_LDFLAGS = @libsvn_ra_local_LDFLAGS@
278251881Speterlibsvn_ra_serf_LDFLAGS = @libsvn_ra_serf_LDFLAGS@
279251881Speterlibsvn_ra_svn_LDFLAGS = @libsvn_ra_svn_LDFLAGS@
280251881Speterlibsvn_repos_LDFLAGS = @libsvn_repos_LDFLAGS@
281251881Speterlibsvn_subr_LDFLAGS = @libsvn_subr_LDFLAGS@
282251881Speterlibsvn_wc_LDFLAGS = @libsvn_wc_LDFLAGS@
283251881Speter
284251881Speter# Compilation of SWIG-generated C source code
285251881SpeterCOMPILE_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_PY_INCLUDES) -prefer-pic -c -o $@
286251881SpeterCOMPILE_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_RB_INCLUDES) -prefer-pic -c -o $@
287251881Speter
288251881Speter# these commands link the wrapper objects into an extension library/module
289251881SpeterLINK_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_PY_LINK) $(SWIG_LDFLAGS) -rpath $(swig_pydir) -avoid-version -module
290251881SpeterLINK_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_RB_LINK) $(SWIG_LDFLAGS) -rpath $(swig_rbdir) -avoid-version -module
291251881Speter
292251881SpeterLINK_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) $(LT_CXX_LIBADD) -rpath $(libdir)
293251881Speter
294251881SpeterINSTALL = @INSTALL@
295251881SpeterINSTALL_LIB = $(LIBTOOL) --mode=install $(INSTALL)
296251881SpeterINSTALL_FSMOD_LIB = $(INSTALL_LIB)
297251881SpeterINSTALL_RAMOD_LIB = $(INSTALL_LIB)
298251881SpeterINSTALL_APR_MEMCACHE_LIB = $(INSTALL_LIB)
299251881SpeterINSTALL_BDB_LIB = $(INSTALL_LIB)
300251881SpeterINSTALL_GPG_AGENT_LIB = $(INSTALL_LIB)
301251881SpeterINSTALL_GNOME_KEYRING_LIB = $(INSTALL_LIB)
302251881SpeterINSTALL_KWALLET_LIB = $(INSTALL_LIB)
303251881SpeterINSTALL_SERF_LIB = $(INSTALL_LIB)
304251881SpeterINSTALL_BIN = $(LIBTOOL) --mode=install $(INSTALL)
305251881SpeterINSTALL_CONTRIB = $(LIBTOOL) --mode=install $(INSTALL)
306251881SpeterINSTALL_TOOLS = $(LIBTOOL) --mode=install $(INSTALL)
307251881SpeterINSTALL_INCLUDE = $(INSTALL) -m 644
308251881SpeterINSTALL_MOD_SHARED = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
309251881SpeterINSTALL_DATA = $(INSTALL) -m 644
310251881SpeterINSTALL_LOCALE = $(INSTALL_DATA)
311251881SpeterINSTALL_APACHE_MODS = @INSTALL_APACHE_MODS@
312251881Speter
313251881Speter### this isn't correct yet
314251881SpeterINSTALL_SWIG_PY = $(INSTALL_LIB)
315251881SpeterINSTALL_SWIG_PY_LIB = $(INSTALL_LIB)
316251881SpeterINSTALL_SWIG_PL_LIB = $(INSTALL_LIB)
317251881SpeterINSTALL_SWIG_RB = $(INSTALL_LIB)
318251881SpeterINSTALL_SWIG_RB_LIB = $(INSTALL_LIB)
319251881Speter
320251881SpeterINSTALL_JAVAHL_LIB = $(INSTALL_LIB)
321251881Speter
322251881Speter# additional installation rules for the SWIG wrappers
323251881SpeterINSTALL_EXTRA_SWIG_PY=\
324251881Speter  $(MKDIR) $(DESTDIR)$(swig_pydir); \
325251881Speter  $(MKDIR) $(DESTDIR)$(swig_pydir_extra); \
326251881Speter  for i in $(abs_srcdir)/subversion/bindings/swig/python/svn/*.py; do \
327251881Speter    $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir_extra); \
328251881Speter  done; \
329251881Speter  for i in $(abs_srcdir)/subversion/bindings/swig/python/*.py; do \
330251881Speter    $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
331251881Speter  done; \
332251881Speter  if test "$(abs_srcdir)" != "$(abs_builddir)"; then \
333251881Speter    for i in $(abs_builddir)/subversion/bindings/swig/python/*.py; do \
334251881Speter      $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
335251881Speter    done; \
336251881Speter  fi; \
337251881Speter  $(PYTHON) -c 'import compileall; \
338251881Speter    compileall.compile_dir("$(DESTDIR)$(swig_pydir)", 1, "$(swig_pydir)"); \
339251881Speter    compileall.compile_dir("$(DESTDIR)$(swig_pydir_extra)", 1, \
340251881Speter    "$(swig_pydir_extra)");'
341251881Speter
342251881Speter# The path to generated and complementary source files for the SWIG
343251881Speter# bindings.
344251881SpeterSWIG_PL_DIR = $(abs_builddir)/subversion/bindings/swig/perl
345251881SpeterSWIG_PY_DIR = $(abs_builddir)/subversion/bindings/swig/python
346251881SpeterSWIG_RB_DIR = $(abs_builddir)/subversion/bindings/swig/ruby
347251881Speter
348251881Speter# The path to the source files for the SWIG bindings
349251881SpeterSWIG_PL_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/perl
350251881SpeterSWIG_PY_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/python
351251881SpeterSWIG_RB_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/ruby
352251881Speter
353251881Speter### Automate JAR creation using Makefile generator's javahl-java.jar
354251881Speter### property.  Enhance generator to support JAR installation.
355251881SpeterJAVAHL_MANIFEST_IN = $(abs_srcdir)/subversion/bindings/javahl/Manifest.in
356251881SpeterJAVAHL_MANIFEST = subversion/bindings/javahl/Manifest
357251881SpeterINSTALL_EXTRA_JAVAHL_JAVA=\
358251881Speter	sed s/%bundleVersion/$(PACKAGE_VERSION)/ $(JAVAHL_MANIFEST_IN) > $(JAVAHL_MANIFEST); \
359251881Speter	$(JAR) cfm $(JAVAHL_JAR) $(JAVAHL_MANIFEST) -C subversion/bindings/javahl/classes org; \
360251881Speter	$(INSTALL_DATA) $(JAVAHL_JAR) $(DESTDIR)$(javahl_javadir);
361251881Speter
362251881SpeterINSTALL_EXTRA_JAVAHL_LIB=@INSTALL_EXTRA_JAVAHL_LIB@
363251881Speter
364251881SpeterINSTALL_EXTRA_SWIG_RB=\
365251881Speter  @echo $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
366251881Speter  $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
367251881Speter  for i in $(abs_srcdir)/subversion/bindings/swig/ruby/svn/*.rb; do \
368251881Speter    echo $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
369251881Speter    $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
370251881Speter  done
371251881Speter
372257936SpeterAPXS = @APXS@
373286506SpeterHTTPD_VERSION = @HTTPD_VERSION@
374257936Speter
375251881SpeterPYTHON = @PYTHON@
376251881SpeterPERL = @PERL@
377251881Speter
378251881SpeterJDK = @JDK@
379251881SpeterJAVA = @JAVA@
380251881SpeterJAVAC = @JAVAC@
381251881SpeterJAVADOC = @JAVADOC@
382251881SpeterJAVAC_FLAGS = @JAVAC_FLAGS@
383289180SpeterJAVAC_COMPAT_FLAGS = @JAVAC_COMPAT_FLAGS@
384251881SpeterJAVAH = @JAVAH@
385251881SpeterJAR = @JAR@
386251881Speter
387251881SpeterJAVA_CLASSPATH=$(abs_srcdir)/subversion/bindings/javahl/src:@JAVA_CLASSPATH@
388251881Speterjavahl_java_CLASSPATH=$(JAVA_CLASSPATH)
389251881Speterjavahl_compat_CLASSPATH=$(JAVA_CLASSPATH)
390251881Speterjavahl_tests_CLASSPATH=$(JAVA_CLASSPATH)
391251881Speterjavahl_compat_tests_CLASSPATH=$(JAVA_CLASSPATH)
392251881Speter
393251881SpeterRUBY = @RUBY@
394251881SpeterRUBY_MAJOR = @RUBY_MAJOR@
395251881SpeterRUBY_MINOR = @RUBY_MINOR@
396251881SpeterRDOC = @RDOC@
397251881Speter
398251881SpeterECHO_C = @ECHO_C@
399251881SpeterECHO_N = @ECHO_N@
400251881Speter
401251881SpeterTESTS = $(TEST_PROGRAMS) @BDB_TEST_PROGRAMS@
402251881Speter
403251881Speterall: mkdir-init local-all
404251881Speterclean: local-clean
405251881Speterdistclean: local-distclean
406251881Speterextraclean: local-extraclean
407251881Speterinstall: local-install revision-install
408251881Speter
409251881Speter@INCLUDE_OUTPUTS@
410251881Speter
411251881Speterlocal-all: @BUILD_RULES@ @TRANSFORM_LIBTOOL_SCRIPTS@
412251881Speter
413251881Spetertransform-libtool-scripts: @BUILD_RULES@
414251881Speter	@$(SHELL) $(top_srcdir)/build/transform_libtool_scripts.sh
415251881Speter
416251881Speterlocale-gnu-pot:
417251881Speter	cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
418251881Speter	  $(SHELL) tools/po/po-update.sh pot
419251881Speter
420251881Speter# "make locale-gnu-po-update" updates all translations.
421251881Speter# "make locale-gnu-po-update PO=ll" updates only the ll.po file.
422251881Speterlocale-gnu-po-update:
423251881Speter	cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
424251881Speter	  $(SHELL) tools/po/po-update.sh $(PO)
425251881Speter
426251881Speter# clean everything but the bulky test output, returning the system back
427251881Speter# to before 'make' was run.
428251881Speterfast-clean: doc-clean
429251881Speter	@list='$(BUILD_DIRS)'; for i in $$list; do                   \
430251881Speter          if [ -d $$i ]; then                                        \
431251881Speter            (cd $$i && rm -f *.o *.lo *.la *.la-a *.spo *.mo &&      \
432251881Speter             rm -rf .libs);                                          \
433251881Speter          fi                                                         \
434251881Speter        done
435251881Speter	echo $(CLEAN_FILES) | xargs rm -f --
436251881Speter	find $(CTYPES_PYTHON_SRC_DIR) $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) \
437251881Speter		$(abs_srcdir)/build $(top_srcdir)/subversion/tests/cmdline/svntest \
438251881Speter		-name "*.pyc" -exec rm {} ';'
439251881Speter
440251881Speter# clean everything, returning to before './configure' was run.
441251881SpeterSVN_CONFIG_SCRIPT_FILES = @SVN_CONFIG_SCRIPT_FILES@
442251881Speterlocal-distclean: local-clean
443251881Speter	rm -fr config.cache config.log config.nice config.status \
444251881Speter	  libtool mkmf.log subversion/svn_private_config.h \
445251881Speter	  subversion/bindings/javahl/classes \
446251881Speter	  subversion/bindings/javahl/include \
447289180Speter	  subversion/libsvn_*/*.pc \
448251881Speter	$(SVN_CONFIG_SCRIPT_FILES)
449251881Speter	rm -f Makefile
450251881Speter
451251881Speter# clean everything out, returning to before './autogen.sh' was run.
452251881Speterlocal-extraclean: extraclean-bindings local-distclean
453251881Speter	rm -f $(top_srcdir)/build-outputs.mk \
454251881Speter              $(top_srcdir)/subversion/svn_private_config.h.in \
455251881Speter              $(top_srcdir)/configure \
456251881Speter              $(top_srcdir)/gen-make.opts \
457251881Speter              $(top_srcdir)/build/config.guess \
458251881Speter              $(top_srcdir)/build/config.sub \
459251881Speter              $(top_srcdir)/build/libtool.m4 \
460251881Speter              $(top_srcdir)/build/ltoptions.m4 \
461251881Speter              $(top_srcdir)/build/ltsugar.m4 \
462251881Speter              $(top_srcdir)/build/ltversion.m4 \
463251881Speter              $(top_srcdir)/build/lt~obsolete.m4 \
464251881Speter              $(top_srcdir)/build/ltmain.sh \
465251881Speter              $(top_srcdir)/build/transform_libtool_scripts.sh \
466251881Speter              $(EXTRACLEAN_FILES)
467251881Speter
468251881Speter
469251881Speter# clean everything, including test output.
470251881Speterlocal-clean: check-clean clean-bindings fast-clean
471251881Speter
472251881Speterlocal-install: @INSTALL_RULES@
473251881Speter
474251881Speterrevision-install:
475251881Speter	test -d $(DESTDIR)$(includedir)/subversion-1 || \
476251881Speter	  $(MKDIR) $(DESTDIR)$(includedir)/subversion-1
477251881Speter	(subversion/svnversion/svnversion $(top_srcdir) 2> /dev/null ||  \
478251881Speter	 svnversion $(top_srcdir) 2> /dev/null ||                        \
479251881Speter	 echo "unknown";                                                 \
480251881Speter	) > $(DESTDIR)$(includedir)/subversion-1/svn-revision.txt
481251881Speter
482251881Speterinstall-static: @INSTALL_STATIC_RULES@
483251881Speter
484251881Speter# JavaHL target aliases
485289180Speterjavahl: 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
486251881Speterinstall-javahl: javahl install-javahl-java install-javahl-javah install-javahl-lib
487251881Speterjavahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
488251881Speter
489251881Speterclean-javahl:
490289180Speter	if [ -d $(javahl_test_rootdir) ]; then \
491289180Speter	  rm -rf $(javahl_test_rootdir)/*;     \
492289180Speter	fi
493251881Speter	rm -rf $(javahl_java_PATH) $(javahl_javah_PATH) @JAVAHL_OBJDIR@
494251881Speter	rm -f $(libsvnjavahl_PATH)/*.la $(JAVAHL_JAR)
495251881Speter	rm -f $(libsvnjavahl_PATH)/*.lo
496251881Speter	rm -f $(libsvnjavahl_PATH)/*.o
497251881Speter
498251881Spetercheck-tigris-javahl: javahl-compat
499251881Speter	@FIX_JAVAHL_LIB@
500262250Speter	$(TEST_SHLIB_VAR_JAVAHL) \
501289180Speter	$(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
502251881Speter
503251881Spetercheck-apache-javahl: javahl
504251881Speter	@FIX_JAVAHL_LIB@
505262250Speter	$(TEST_SHLIB_VAR_JAVAHL) \
506289180Speter	$(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
507251881Speter
508289180Spetercheck-deprecated-authn-javahl: javahl
509289180Speter	@FIX_JAVAHL_LIB@
510289180Speter	$(TEST_SHLIB_VAR_JAVAHL) \
511289180Speter	$(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
512289180Speter
513251881Spetercheck-javahl: check-apache-javahl
514251881Speter
515289180Spetercheck-all-javahl: check-apache-javahl check-tigris-javahl check-deprecated-authn-javahl
516251881Speter
517251881Speter# "make check CLEANUP=true" will clean up directories for successful tests.
518251881Speter# "make check TESTS=subversion/tests/cmdline/basic_tests.py"
519251881Speter#  will perform only basic tests (likewise for other tests).
520251881Spetercheck: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@
521251881Speter	@if test "$(PYTHON)" != "none"; then                                 \
522251881Speter	  if test "$(CLEANUP)" != ""; then                                   \
523251881Speter	    flags="--cleanup $$flags";                                       \
524251881Speter	  fi;                                                                \
525251881Speter	  if test "$(BASE_URL)" != ""; then                                  \
526251881Speter	    flags="--url $(BASE_URL) $$flags";                               \
527251881Speter	  fi;                                                                \
528289180Speter	  if test "$(SKIP_C_TESTS)" != ""; then                              \
529289180Speter	    flags="--skip-c-tests $$flags";                                  \
530289180Speter	  fi;                                                                \
531289180Speter	  if test "$(DUMP_LOAD_CROSS_CHECK)" != ""; then                     \
532289180Speter	    flags="--dump-load-cross-check $$flags";                         \
533289180Speter	  fi;                                                                \
534251881Speter	  if test "$(FS_TYPE)" != ""; then                                   \
535251881Speter	    flags="--fs-type $(FS_TYPE) $$flags";                            \
536251881Speter	  fi;                                                                \
537251881Speter	  if test "$(HTTP_LIBRARY)" != ""; then                              \
538251881Speter	    flags="--http-library $(HTTP_LIBRARY) $$flags";                  \
539251881Speter	  fi;                                                                \
540289180Speter	  if test "$(HTTPD_VERSION)" != ""; then                             \
541289180Speter	     flags="--httpd-version $(HTTPD_VERSION) $$flags";               \
542286506Speter	  fi;                                                                \
543251881Speter	  if test "$(SERVER_MINOR_VERSION)" != ""; then                      \
544251881Speter	    flags="--server-minor-version $(SERVER_MINOR_VERSION) $$flags";  \
545251881Speter	  fi;                                                                \
546251881Speter	  if test "$(ENABLE_SASL)" != ""; then                               \
547251881Speter	    flags="--enable-sasl $$flags";                                   \
548251881Speter	  fi;                                                                \
549251881Speter	  if test "$(FSFS_SHARDING)" != ""; then                             \
550251881Speter	    flags="--fsfs-sharding $(FSFS_SHARDING) $$flags";                \
551251881Speter	  fi;                                                                \
552251881Speter	  if test "$(FSFS_PACKING)" != ""; then                              \
553251881Speter	    flags="--fsfs-packing $$flags";                                  \
554251881Speter	  fi;                                                                \
555251881Speter	  if test "$(PARALLEL)" != ""; then                                  \
556289180Speter	    flags="--parallel $(PARALLEL) $$flags";                          \
557251881Speter	  fi;                                                                \
558251881Speter	  if test "$(LOG_TO_STDOUT)" != ""; then                             \
559251881Speter	    flags="--log-to-stdout $$flags";                                 \
560251881Speter	  fi;                                                                \
561251881Speter	  if test "$(MILESTONE_FILTER)" != ""; then                          \
562251881Speter	    flags="--list --milestone-filter=$(MILESTONE_FILTER)             \
563251881Speter		   --mode-filter=$(MODE_FILTER) --log-to-stdout $$flags";    \
564251881Speter	  fi;                                                                \
565251881Speter	  if test "$(SET_LOG_LEVEL)" != ""; then                             \
566251881Speter	    flags="--set-log-level $(SET_LOG_LEVEL) $$flags";                \
567251881Speter	  fi;                                                                \
568251881Speter	  if test "$(SSL_CERT)" != ""; then                                  \
569251881Speter	    flags="--ssl-cert $(SSL_CERT) $$flags";                          \
570251881Speter	  fi;                                                                \
571251881Speter	  if test "$(HTTP_PROXY)" != ""; then                                \
572251881Speter	    flags="--http-proxy $(HTTP_PROXY) $$flags";                      \
573251881Speter	  fi;                                                                \
574289180Speter	  if test "$(EXCLUSIVE_WC_LOCKS)" != ""; then                        \
575289180Speter	    flags="--exclusive-wc-locks $$flags";                            \
576289180Speter	  fi;                                                                \
577289180Speter	  if test "$(MEMCACHED_SERVER)" != ""; then                          \
578289180Speter	    flags="--memcached-server $(MEMCACHED_SERVER) $$flags";          \
579289180Speter	  fi;                                                                \
580251881Speter	  LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)'           \
581251881Speter	  $(PYTHON) $(top_srcdir)/build/run_tests.py                         \
582251881Speter	            --config-file $(top_srcdir)/subversion/tests/tests.conf  \
583251881Speter	            $$flags                                                  \
584251881Speter	            '$(abs_srcdir)' '$(abs_builddir)' $(TESTS);              \
585251881Speter	else                                                                 \
586289180Speter	  echo "make check: Python 2.7 or greater is required,";             \
587251881Speter	  echo "            but was not detected during configure";          \
588251881Speter	  exit 1;                                                            \
589251881Speter	fi;
590251881Speter
591251881Speter# First, set up Apache as documented in
592251881Speter# subversion/tests/cmdline/README.
593251881Speterdavcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
594251881Speter	@$(MAKE) check BASE_URL=http://localhost
595251881Speter
596251881Speter# Automatically configure and run Apache httpd on a random port, and then
597251881Speter# run make check.
598251881Speterdavautocheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
599251881Speter	@# Takes MODULE_PATH, USE_HTTPV1 and SVN_PATH_AUTHZ in the environment.
600289180Speter	@APXS=$(APXS) MAKE=$(MAKE) $(SHELL) $(top_srcdir)/subversion/tests/cmdline/davautocheck.sh
601251881Speter
602251881Speter# First, run:
603251881Speter#   subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/cmdline
604251881Spetersvncheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
605251881Speter	@$(MAKE) check BASE_URL=svn://127.0.0.1
606251881Speter
607251881Speter# 'make svnserveautocheck' runs svnserve for you and kills it.
608251881Spetersvnserveautocheck: svnserve bin $(TEST_DEPS) @BDB_TEST_DEPS@
609289180Speter	@env PYTHON=$(PYTHON) THREADED=$(THREADED) MAKE=$(MAKE) \
610289180Speter	  $(SHELL) $(top_srcdir)/subversion/tests/cmdline/svnserveautocheck.sh
611251881Speter
612251881Speter# First, run:
613251881Speter#   subversion/svnserve/svnserve --listen-host "::1" -d -r `pwd`/subversion/tests/cmdline
614251881Speter
615251881Spetersvncheck6: bin $(TEST_DEPS) @BDB_TEST_DEPS@
616251881Speter	@$(MAKE) check BASE_URL=svn://\[::1\]
617251881Speter
618251881Speter# First make sure you can ssh to localhost and that "svnserve" is in
619251881Speter# the path of the resulting shell.
620251881Spetersvnsshcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
621251881Speter	@$(MAKE) check \
622251881Speter	  BASE_URL=svn+ssh://localhost`pwd`/subversion/tests/cmdline
623251881Speter
624251881Speterbdbcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
625251881Speter	@$(MAKE) check FS_TYPE=bdb
626251881Speter
627289180Speter# Produce the clang compilation database as the compile_commands.json file
628289180Speter# in the srcdir.  This is used by tools such as the YouCompleteMe vim plugin
629289180Speter# to know the compile flags for various source files so that analysis such
630289180Speter# as syntax checking, static analysis or symbol completion can be done
631289180Speter# outside the build system.  To do this it uses the tool called bear:
632289180Speter# https://github.com/rizsotto/Bear
633289180Spetercompile-commands:
634289180Speter	@bear -o $(abs_srcdir)/compile_commands.json -- $(MAKE) all
635289180Speter
636251881Speter# Create an execution coverage report from the data collected during
637251881Speter# all execution since the last reset.
638251881Spetergcov:
639251881Speter	lcov --capture -d . -b . -o gcov-lcov.dat > gcov-lcov.log
640251881Speter	genhtml gcov-lcov.dat -o gcov-report > gcov-genhtml.log
641251881Speter
642251881Speter# Reset all execution coverage counters to zero.
643251881Spetergcov-reset:
644251881Speter	lcov --zerocounters -d .
645251881Speter
646251881Speter# Remove the execution coverage data and the report.
647251881Spetergcov-clean:
648251881Speter	rm -f gcov-lcov.dat gcov-lcov.log gcov-genhtml.log
649251881Speter	rm -rf gcov-report
650289180Speter	find . -name "*.gcda" -o -name "*.gcno" -exec rm -f -- {} \;
651251881Speter
652251881Spetercheck-clean: gcov-clean
653251881Speter	if [ -d subversion/tests/cmdline/svn-test-work ]; then \
654289180Speter	  rm -rf subversion/tests/cmdline/svn-test-work/*;     \
655251881Speter	fi
656251881Speter	rm -rf subversion/tests/libsvn_fs/test-repo-*          \
657251881Speter	       subversion/tests/libsvn_fs_base/test-repo-*     \
658251881Speter	       subversion/tests/libsvn_fs_fs/test-repo-*       \
659251881Speter	       subversion/tests/libsvn_ra_local/test-repo-*    \
660251881Speter	       subversion/tests/libsvn_repos/test-repo-*       \
661251881Speter	       subversion/tests/libsvn_subr/z                  \
662251881Speter	       subversion/tests/libsvn_wc/fake-wc              \
663251881Speter	       subversion/tests/libsvn_client/test-patch*      \
664251881Speter	       subversion/tests/libsvn_client/test-*/          \
665251881Speter	       subversion/tests/libsvn_diff/B2                 \
666251881Speter	       subversion/tests/libsvn_diff/T1                 \
667251881Speter	       subversion/tests/libsvn_diff/T2                 \
668251881Speter	       subversion/tests/libsvn_diff/T3                 \
669251881Speter	       subversion/tests/svnserveautocheck.pid          \
670251881Speter	       tests.log fails.log
671251881Speter
672251881Spetermkdir-init:
673251881Speter	@list='$(BUILD_DIRS) $(SCHEMA_DIR) doc';         \
674251881Speter        for i in $$list; do                              \
675251881Speter            if [ ! -d $$i ]; then                        \
676251881Speter                $(MKDIR) $$i ;                           \
677251881Speter            fi;                                          \
678251881Speter        done
679251881Speter
680251881Speter# DOCUMENTATION RULES
681251881Speter
682251881Speter# Every single document in every format.
683251881Speterdoc: doc-api doc-javahl
684251881Speter
685251881Speter# Generate API documentation for the C libraries.
686251881Speter### This could also generate POD for swig-perl, etc.
687251881Speterdoc-api: mkdir-init
688251881Speter	( cd $(top_srcdir) && \
689251881Speter	  sed "s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \
690251881Speter	  doc/doxygen.conf | $(DOXYGEN) - )
691251881Speter
692251881Speter# Generate API documentation for the JavaHL package.
693251881Speterdoc-javahl:
694251881Speter	$(JAVADOC) -d $(abs_builddir)/doc/javadoc \
695251881Speter	  -sourcepath $(top_srcdir)/subversion/bindings/javahl/src \
696251881Speter	  -link http://java.sun.com/javase/6/docs/api/ \
697251881Speter	  org.tigris.subversion.javahl \
698289180Speter	  org.apache.subversion.javahl \
699289180Speter	  org.apache.subversion.javahl.callback \
700289180Speter	  org.apache.subversion.javahl.remote \
701289180Speter	  org.apache.subversion.javahl.types \
702289180Speter	  org.apache.subversion.javahl.util
703251881Speter
704251881Speterdoc-clean:
705289180Speter	rm -rf $(abs_builddir)/doc/doxygen
706289180Speter	rm -rf $(abs_builddir)/doc/javadoc
707251881Speter
708289180Speter# Converting from the .rnc XML schemas to various other schema formats.
709289180SpeterSCHEMAS_DTD = $(SCHEMA_DIR)/blame.dtd \
710289180Speter              $(SCHEMA_DIR)/diff.dtd \
711289180Speter              $(SCHEMA_DIR)/info.dtd \
712289180Speter              $(SCHEMA_DIR)/list.dtd \
713289180Speter              $(SCHEMA_DIR)/log.dtd \
714289180Speter              $(SCHEMA_DIR)/props.dtd \
715289180Speter              $(SCHEMA_DIR)/status.dtd
716251881Speter
717289180SpeterSCHEMAS_RNG = $(SCHEMA_DIR)/blame.rng \
718289180Speter              $(SCHEMA_DIR)/diff.rng \
719289180Speter              $(SCHEMA_DIR)/info.rng \
720289180Speter              $(SCHEMA_DIR)/list.rng \
721289180Speter              $(SCHEMA_DIR)/log.rng \
722289180Speter              $(SCHEMA_DIR)/props.rng \
723289180Speter              $(SCHEMA_DIR)/status.rng
724251881Speter
725289180SpeterSCHEMAS_XSD = $(SCHEMA_DIR)/blame.xsd \
726289180Speter              $(SCHEMA_DIR)/diff.xsd \
727289180Speter              $(SCHEMA_DIR)/info.xsd \
728289180Speter              $(SCHEMA_DIR)/list.xsd \
729289180Speter              $(SCHEMA_DIR)/log.xsd \
730289180Speter              $(SCHEMA_DIR)/props.xsd \
731289180Speter              $(SCHEMA_DIR)/status.xsd
732251881Speter
733289180Speterschema: mkdir-init schema-rng schema-dtd schema-xsd
734251881Speter
735251881Speterschema-rng: $(SCHEMAS_RNG)
736251881Speterschema-dtd: $(SCHEMAS_DTD)
737251881Speterschema-xsd: $(SCHEMAS_XSD)
738251881Speter
739251881Speter$(SCHEMAS_RNG) $(SCHEMAS_DTD) $(SCHEMAS_XSD): $(SCHEMA_DIR)/common.rnc
740251881Speter
741251881Speterschema-clean:
742251881Speter	(cd $(SCHEMA_DIR) && rm -f *.rng *.dtd *.xsd)
743251881Speter
744251881Speter#
745251881Speter# Implicit rules for creating outputs from input files
746251881Speter#
747251881Speter.SUFFIXES:
748251881Speter.SUFFIXES: .c .cpp .lo .o .la-a .la \
749251881Speter           .po .spo .mo .rnc .rng .dtd .xsd .sql .h
750251881Speter
751251881Speter.sql.h:
752251881Speter	$(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
753251881Speter
754251881Speter.c.o:
755251881Speter	$(COMPILE) -o $@ -c $<
756251881Speter
757251881Speter.cpp.o:
758251881Speter	$(COMPILE_CXX) -o $@ -c $<
759251881Speter
760251881Speter.c.lo:
761251881Speter	$(LT_COMPILE) -o $@ -c $<
762251881Speter
763251881Speter.cpp.lo:
764251881Speter	$(LT_COMPILE_CXX) -o $@ -c $<
765251881Speter
766251881Speter.la.la-a:
767251881Speter	sed "/library_names/s/'.*'/''/" $< > $@
768251881Speter
769251881Speter
770251881Speter# Strip the Content-Type: header from the po file if we don't have a
771251881Speter# gettext that supports bind_textdomain_codeset, so it doesn't try
772251881Speter# to convert our UTF-8 .po files to the locale encoding.
773251881Speter@NO_GETTEXT_CODESET@.po.spo:
774251881Speter@NO_GETTEXT_CODESET@	sed \
775251881Speter@NO_GETTEXT_CODESET@	'/^"Content-Type: text\/plain; charset=UTF-8\\n"$$/d' \
776251881Speter@NO_GETTEXT_CODESET@	$< > $@
777251881Speter
778251881Speter@NO_GETTEXT_CODESET@.spo.mo:
779251881Speter@NO_GETTEXT_CODESET@	$(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
780251881Speter
781251881Speter# For systems with bind_textdomain_codeset, just leave the Content-Type:
782251881Speter# header alone.
783251881Speter@GETTEXT_CODESET@.po.mo:
784251881Speter@GETTEXT_CODESET@	$(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
785251881Speter
786251881Speter.rnc.rng:
787251881Speter	@TRANG@ $< $@
788251881Speter
789251881Speter.rnc.dtd:
790251881Speter	@TRANG@ $< $@
791251881Speter
792251881Speter.rnc.xsd:
793251881Speter	@TRANG@ $< $@
794251881Speter
795251881Speterinstall-docs: install-man
796251881Speter
797251881Spetermanroot = $(mandir)/man
798251881Speterinstall-man:
799251881Speter	@list='$(MANPAGES)';                                               \
800251881Speter        for i in $$list; do                                                \
801251881Speter          if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i;               \
802251881Speter          else file=$$i; fi;                                               \
803251881Speter          ext=`echo $$i | sed -e 's/^.*\\.//'`;                            \
804251881Speter          $(MKDIR) $(DESTDIR)$(manroot)$$ext;                              \
805251881Speter          inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`;                   \
806251881Speter          inst=`echo $$inst | sed -e 's/^.*\///'`;                         \
807251881Speter          inst=`echo $$inst`.$$ext;                                        \
808251881Speter          echo "$(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst";  \
809251881Speter          $(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst;         \
810251881Speter        done
811251881Speter
812251881Speterinstall-swig-py: install-swig-py-lib
813251881Speterinstall-swig-rb: install-swig-rb-lib
814251881Speter
815251881Speterclean-bindings: clean-swig clean-ctypes-python clean-javahl
816251881Speter
817251881Speterextraclean-bindings: clean-swig extraclean-swig-headers \
818251881Speter			extraclean-swig-py extraclean-swig-rb \
819251881Speter			extraclean-swig-pl \
820251881Speter			clean-ctypes-python clean-javahl \
821251881Speter
822251881Speterclean-swig: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
823251881Speter	@rm -f .swig_checked
824251881Speter
825251881SpeterEXTRACLEAN_SWIG_HEADERS=rm -f $(SWIG_SRC_DIR)/proxy/*.swg
826251881Speter
827251881Speterclean-swig-headers:
828251881Speter	if test -z "$(RELEASE_MODE)"; then \
829251881Speter	  $(EXTRACLEAN_SWIG_HEADERS); \
830251881Speter	fi
831251881Speter
832251881Speterextraclean-swig-headers: clean-swig-headers
833251881Speter	$(EXTRACLEAN_SWIG_HEADERS)
834251881Speter
835251881Speter$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in
836251881Speter	./config.status subversion/bindings/swig/perl/native/Makefile.PL
837251881Speter
838251881Speter$(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
839289180Speter	cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL PREFIX=$(prefix)
840251881Speter
841251881Speter# There is a "readlink -f" command on some systems for the same purpose,
842251881Speter# but it's not as portable (e.g. Mac OS X doesn't have it).  These should
843251881Speter# only be used where Python/Perl are known to be available.
844251881SpeterREADLINK_PY=$(PYTHON) -c 'import sys,os; print(os.path.realpath(sys.argv[1]))'
845251881SpeterREADLINK_PL=$(PERL) -e 'use Cwd; print Cwd::realpath(shift)'
846251881Speter
847251881Speterswig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
848251881Speter  $(SWIG_PL_DIR)/native/Makefile
849251881Speterswig-pl: $(swig-pl_DEPS)
850251881Speter	if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \
851251881Speter	  ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \
852251881Speter	fi
853251881Speter	cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)"
854251881Speter
855251881Spetercheck-swig-pl: swig-pl swig-pl-lib
856251881Speter	cd $(SWIG_PL_DIR)/native; $(MAKE) test
857251881Speter
858251881Speterinstall-swig-pl: swig-pl install-swig-pl-lib
859251881Speter	cd $(SWIG_PL_DIR)/native; $(MAKE) install
860251881Speter
861251881SpeterEXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \
862251881Speter                         $(SWIG_PL_SRC_DIR)/native/core.c
863251881Speter
864251881Speter# Running Makefile.PL at this point *fails* (cannot find ..../.libs) so if the
865251881Speter# Makefile does not exist, DO NOT try to make it. But, if it doesn't exist,
866251881Speter# then the directory is probably clean anyway.
867251881Speterclean-swig-pl:
868251881Speter	if test -z "$(RELEASE_MODE)"; then \
869251881Speter	  $(EXTRACLEAN_SWIG_PL); \
870251881Speter	fi
871251881Speter	for d in $(SWIG_PL_DIR)/libsvn_swig_perl; \
872251881Speter	do \
873251881Speter	  cd $$d; \
874251881Speter	  rm -rf *.lo *.la *.o .libs; \
875251881Speter	done
876251881Speter	if [ -f "$(SWIG_PL_DIR)/native/Makefile" ]; then \
877251881Speter	  cd $(SWIG_PL_DIR)/native; $(MAKE) clean; \
878251881Speter	fi
879251881Speter
880251881Speterextraclean-swig-pl: clean-swig-pl
881251881Speter	$(EXTRACLEAN_SWIG_PL)
882251881Speter
883251881Speter$(SWIG_PY_DIR)/libsvn:
884251881Speter	mkdir $(SWIG_PY_DIR)/libsvn
885251881Speter
886251881Spetercopy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsvn
887251881Speter	@for f in $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/*.py; do \
888251881Speter	  ! [ -f "$$f" ] || cp -pf $$f $(SWIG_PY_DIR)/libsvn; \
889251881Speter	done
890251881Speter	@touch $(SWIG_PY_DIR)/libsvn/__init__.py
891251881Speter
892251881Speterswig-py: autogen-swig-py copy-swig-py
893251881Speter
894251881Spetercheck-swig-py: swig-py
895251881Speter	$(TEST_SHLIB_VAR_SWIG_PY) \
896251881Speter	cd $(SWIG_PY_DIR); \
897251881Speter	  $(PYTHON) $(SWIG_PY_SRC_DIR)/tests/run_all.py
898251881Speter
899251881SpeterEXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_SRC_DIR)/svn_*.c $(SWIG_PY_SRC_DIR)/core.c \
900251881Speter                          $(SWIG_PY_SRC_DIR)/[a-z]*.py
901251881Speterclean-swig-py:
902251881Speter	rm -rf $(SWIG_PY_DIR)/libsvn
903251881Speter	if test -z "$(RELEASE_MODE)"; then \
904251881Speter	  $(EXTRACLEAN_SWIG_PY); \
905251881Speter	fi
906251881Speter	for d in $(SWIG_PY_DIR) $(SWIG_PY_DIR)/libsvn_swig_py; \
907251881Speter	do \
908251881Speter	  cd $$d && rm -rf *.lo *.la *.o *.pyc .libs; \
909251881Speter	done
910251881Speter	find $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) -name "*.pyc" -exec rm {} ';'
911251881Speter
912251881Speterextraclean-swig-py: clean-swig-py
913251881Speter	$(EXTRACLEAN_SWIG_PY)
914251881Speter
915251881Speterswig-rb: autogen-swig-rb
916251881Speter
917251881Spetercheck-swig-rb: swig-rb svnserve
918251881Speter	$(TEST_SHLIB_VAR_SWIG_RB) \
919251881Speter	cd $(SWIG_RB_DIR); \
920298845Sdim	  check_rb() { \
921298845Sdim	    $(RUBY) -I $(SWIG_RB_SRC_DIR) $(SWIG_RB_SRC_DIR)/test/run-test.rb "$$@"; \
922298845Sdim	  }; \
923298845Sdim	  if check_rb --help 2>&1 | grep -q -- --collector; then \
924298845Sdim	    check_rb --collector=dir --verbose=$(SWIG_RB_TEST_VERBOSE); \
925298845Sdim	  elif [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
926298845Sdim	    check_rb --verbose=$(SWIG_RB_TEST_VERBOSE); \
927298845Sdim	  else \
928298845Sdim	    check_rb; \
929251881Speter          fi
930251881Speter
931251881SpeterEXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c
932251881Speter
933251881Speterclean-swig-rb:
934251881Speter	rm -rf $(SWIG_RB_DIR)/test/repos $(SWIG_RB_DIR)/test/wc
935251881Speter	if test -z "$(RELEASE_MODE)"; then \
936251881Speter	  $(EXTRACLEAN_SWIG_RB); \
937251881Speter	fi
938251881Speter	for d in $(SWIG_RB_DIR) $(SWIG_RB_DIR)/libsvn_swig_ruby; \
939251881Speter	do \
940251881Speter	  cd $$d; \
941251881Speter	  rm -rf *.lo *.la *.o .libs; \
942251881Speter	done
943251881Speter
944251881Speterextraclean-swig-rb: clean-swig-rb
945251881Speter	$(EXTRACLEAN_SWIG_RB)
946251881Speter
947251881Speterinstall-swig-rb-doc:
948251881Speter	$(RDOC) --all --ri --op "$(SWIG_RB_RI_DATADIR)" "$(SWIG_RB_SRC_DIR)/svn"
949251881Speter
950251881Speter# ctypes-python make targets
951251881Speterctypes-python: local-all
952258569Speter	$(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)"
953251881Speter
954251881Speterinstall-ctypes-python: ctypes-python
955251881Speter	cd $(CTYPES_PYTHON_SRC_DIR); \
956251881Speter	  $(PYTHON) setup.py install --prefix="$(DESTDIR)$(prefix)"
957251881Speter
958251881Spetercheck-ctypes-python: ctypes-python
959251881Speter	cd $(CTYPES_PYTHON_SRC_DIR); \
960251881Speter	  $(LT_EXECUTE) $(PYTHON) test/run_all.py
961251881Speter
962251881Speter# If any of those files exists, run ctypes' 'setup.py clean'.  We don't run
963251881Speter# it otherwise because it spams stdout+stderr; see r1479326.
964251881Speterclean-ctypes-python:
965251881Speter	cd $(CTYPES_PYTHON_SRC_DIR);            \
966251881Speter	  for b in build csvn/core/functions.py svn_all.py svn_all2.py ; do \
967251881Speter	    if [ -e "$$b" ] ; then              \
968251881Speter	      $(PYTHON) setup.py clean --all;   \
969251881Speter	      break;                            \
970251881Speter	    fi;                                 \
971251881Speter	  done
972251881Speter
973251881Speter# manually describe a dependency, which we won't otherwise detect
974251881Spetersubversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-metadata.sql
975251881Spetersubversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-checks.sql
976251881Speter
977251881Speter# Compatibility symlink.
978251881Speter# This runs after the target of the same name in build-outputs.mk.
979251881SpeterINSTALL_EXTRA_TOOLS=\
980251881Speter  $(MKDIR) $(DESTDIR)$(bindir); \
981251881Speter  test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
982251881Speter  ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
983251881Speter  if test "$(DESTDIR)$(bindir)" != "$(DESTDIR)$(toolsdir)"; then \
984253734Speter    ln -sf $(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
985289180Speter    ln -sf $(bindir)/svnbench$(EXEEXT) $(DESTDIR)$(toolsdir)/svn-bench$(EXEEXT); \
986251881Speter  fi
987