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@
51251881SpeterSVN_SASL_LIBS = @SVN_SASL_LIBS@
52251881SpeterSVN_SERF_LIBS = @SVN_SERF_LIBS@
53251881SpeterSVN_SQLITE_LIBS = @SVN_SQLITE_LIBS@
54251881SpeterSVN_XML_LIBS = @SVN_XML_LIBS@
55251881SpeterSVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
56251881Speter
57251881SpeterLIBS = @LIBS@
58251881Speter
59251881Speterprefix = @prefix@
60251881Speterexec_prefix = @exec_prefix@
61251881Speterlibdir = @libdir@
62251881Speterfsmod_libdir = @libdir@
63251881Speterramod_libdir = @libdir@
64251881Speterbdb_libdir = @libdir@
65251881Spetergnome_keyring_libdir = @libdir@
66251881Spetergpg_agent_libdir = @libdir@
67251881Speterkwallet_libdir = @libdir@
68251881Speterserf_libdir = @libdir@
69251881Speterbindir = @bindir@
70251881Speterincludedir = @includedir@
71251881Spetermandir = @mandir@
72251881Spetersrcdir = @srcdir@
73251881Spetercanonicalized_srcdir = @canonicalized_srcdir@
74251881Speterdatadir = @datadir@
75251881Speterdatarootdir = @datarootdir@
76251881Speterlocaledir = @localedir@
77251881Speter
78251881Speter# where to install libsvn_swig_*
79251881Speterswig_py_libdir = @libdir@
80251881Speterswig_pl_libdir = @libdir@
81251881Speterswig_rb_libdir = @libdir@
82251881Speter
83251881Speter### these possibly need further discussion
84251881Speterswig_pydir = @libdir@/svn-python/libsvn
85251881Speterswig_pydir_extra = @libdir@/svn-python/svn
86251881Speterswig_pldir = @libdir@/svn-perl
87251881Speterswig_rbdir = $(SWIG_RB_SITE_ARCH_DIR)/svn/ext
88251881Spetertoolsdir = @bindir@/svn-tools
89251881Speter
90251881Speterjavahl_javadir = @libdir@/svn-javahl
91251881Speterjavahl_javahdir = @libdir@/svn-javahl/include
92251881Speterjavahl_libdir = @libdir@
93251881Speterjavahl_test_rootdir=$(abs_builddir)/subversion/bindings/javahl/test-work
94251881Speterjavahl_test_srcdir=$(abs_srcdir)/subversion/bindings/javahl
95251881Speter
96251881Spetergnome_auth_dir = $(abs_builddir)/subversion/libsvn_auth_gnome_keyring/.libs
97251881Speterkwallet_auth_dir = $(abs_builddir)/subversion/libsvn_auth_kwallet/.libs
98251881Speterauth_plugin_dirs = $(gnome_auth_dir):$(kwallet_auth_dir)
99251881Speter
100251881SpeterMSGFMT = @MSGFMT@
101251881SpeterMSGFMTFLAGS = @MSGFMTFLAGS@
102251881SpeterMSGMERGE = @MSGMERGE@
103251881SpeterXGETTEXT = @XGETTEXT@
104251881SpeterTRANG = @TRANG@
105251881Speter
106251881SpeterPACKAGE_NAME=@PACKAGE_NAME@
107251881SpeterPACKAGE_VERSION=@PACKAGE_VERSION@
108251881Speter
109251881SpeterCC = @CC@
110251881SpeterCXX = @CXX@
111251881SpeterEXEEXT = @EXEEXT@
112251881Speter
113251881SpeterSHELL = @SHELL@
114251881SpeterLIBTOOL = @SVN_LIBTOOL@
115251881SpeterLTFLAGS = --tag=CC --silent
116251881SpeterLTCXXFLAGS = --tag=CXX --silent
117251881SpeterLT_CFLAGS = @LT_CFLAGS@
118251881SpeterLT_LDFLAGS = @LT_LDFLAGS@
119251881SpeterLT_SO_VERSION = @SVN_LT_SOVERSION@
120251881SpeterLT_NO_UNDEFINED = @LT_NO_UNDEFINED@
121251881SpeterLT_CXX_LIBADD = @LT_CXX_LIBADD@
122251881Speter
123251881SpeterINCLUDES = -I$(top_srcdir)/subversion/include -I$(top_builddir)/subversion \
124251881Speter           @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ @SVN_APR_MEMCACHE_INCLUDES@ \
125251881Speter           @SVN_DB_INCLUDES@ @SVN_GNOME_KEYRING_INCLUDES@ \
126251881Speter           @SVN_KWALLET_INCLUDES@ @SVN_MAGIC_INCLUDES@ \
127251881Speter           @SVN_SASL_INCLUDES@ @SVN_SERF_INCLUDES@ @SVN_SQLITE_INCLUDES@ \
128251881Speter           @SVN_XML_INCLUDES@ @SVN_ZLIB_INCLUDES@
129251881Speter
130251881SpeterAPACHE_INCLUDES = @APACHE_INCLUDES@
131251881SpeterAPACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@
132251881SpeterAPACHE_LDFLAGS = @APACHE_LDFLAGS@
133251881Speter
134251881SpeterSWIG = @SWIG@
135251881SpeterSWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ -I$(SWIG_SRC_DIR)/python/libsvn_swig_py
136251881SpeterSWIG_PY_COMPILE = @SWIG_PY_COMPILE@
137251881SpeterSWIG_PY_LINK = @SWIG_PY_LINK@
138251881SpeterSWIG_PY_LIBS = @SWIG_PY_LIBS@
139251881SpeterSWIG_PL_INCLUDES = @SWIG_PL_INCLUDES@
140251881SpeterSWIG_RB_INCLUDES = @SWIG_RB_INCLUDES@ -I$(SWIG_SRC_DIR)/ruby/libsvn_swig_ruby
141251881SpeterSWIG_RB_COMPILE = @SWIG_RB_COMPILE@
142251881SpeterSWIG_RB_LINK = @SWIG_RB_LINK@
143251881SpeterSWIG_RB_LIBS = @SWIG_RB_LIBS@
144251881SpeterSWIG_RB_SITE_LIB_DIR = @SWIG_RB_SITE_LIB_DIR@
145251881SpeterSWIG_RB_SITE_ARCH_DIR = @SWIG_RB_SITE_ARCH_DIR@
146251881SpeterSWIG_RB_TEST_VERBOSE = @SWIG_RB_TEST_VERBOSE@
147251881SpeterSWIG_RB_RI_DATADIR = $(DESTDIR)$(datadir)/ri/$(RUBY_MAJOR).$(RUBY_MINOR)/site
148251881Speter
149251881SpeterCTYPESGEN = @CTYPESGEN@
150251881SpeterCTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python
151251881Speter
152251881SpeterJAVAHL_JAR=subversion/bindings/javahl/svn-javahl.jar
153251881SpeterJAVAHL_INCLUDES= @JNI_INCLUDES@ -I$(abs_builddir)/subversion/bindings/javahl/include
154251881Speter
155251881SpeterCXXHL_INCLUDES = -I$(abs_srcdir)/subversion/bindings/cxxhl/include
156251881Speter
157251881SpeterSVN_APR_CONFIG = @SVN_APR_CONFIG@
158251881SpeterSVN_APR_INCLUDES = @SVN_APR_INCLUDES@
159251881SpeterSVN_APRUTIL_CONFIG = @SVN_APRUTIL_CONFIG@
160251881SpeterSVN_APRUTIL_INCLUDES = @SVN_APRUTIL_INCLUDES@
161251881Speter
162251881SpeterMKDIR = @MKDIR@
163251881Speter
164251881SpeterDOXYGEN = @DOXYGEN@
165251881Speter
166251881Speter# The EXTRA_ parameters can be used to pass extra flags at 'make' time.
167251881SpeterCFLAGS = @CFLAGS@ $(EXTRA_CFLAGS)
168251881SpeterCMODEFLAGS = @CMODEFLAGS@
169251881SpeterCMAINTAINERFLAGS = @CMAINTAINERFLAGS@
170251881SpeterCXXFLAGS = @CXXFLAGS@ $(EXTRA_CXXFLAGS)
171251881SpeterCXXMODEFLAGS = @CXXMODEFLAGS@
172251881SpeterCXXMAINTAINERFLAGS = @CXXMAINTAINERFLAGS@
173251881Speter### A few of the CFLAGS (e.g. -Wmissing-prototypes, -Wstrict-prototypes,
174251881Speter### -Wmissing-declarations) are not valid for C++, and should be somehow
175251881Speter### suppressed (but they may come from httpd or APR).
176251881SpeterCPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS)
177251881SpeterLDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS)
178251881SpeterSWIG_LDFLAGS = @SWIG_LDFLAGS@ $(EXTRA_SWIG_LDFLAGS)
179251881Speter
180251881SpeterCOMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES)
181251881SpeterCOMPILE_CXX = $(CXX) $(CXXMODEFLAGS) $(CPPFLAGS) $(CXXMAINTAINERFLAGS) $(CXXFLAGS) $(INCLUDES)
182251881SpeterLT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) $(LT_CFLAGS)
183251881SpeterLT_COMPILE_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS)
184251881Speter
185251881Speter# Execute a command that loads libraries from the build dir
186251881SpeterLT_EXECUTE = $(LIBTOOL) $(LTFLAGS) --mode=execute `for f in $(abs_builddir)/subversion/*/*.la; do echo -dlopen $$f; done`
187251881Speter
188251881Speter# special compilation for files destined for mod_dav_svn
189251881SpeterCOMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CFLAGS) $(CMAINTAINERFLAGS) $(LT_CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c
190251881Speter
191251881Speter# special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c)
192251881SpeterCOMPILE_SWIG_PY = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) -DSWIGPYTHON $(SWIG_PY_INCLUDES) $(INCLUDES) -o $@ -c
193251881SpeterCOMPILE_SWIG_PL = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(LT_CFLAGS) $(SWIG_PL_INCLUDES) $(INCLUDES) -o $@ -c
194251881SpeterCOMPILE_SWIG_RB = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) $(SWIG_RB_INCLUDES) $(INCLUDES) -o $@ -c
195251881Speter
196251881Speter# special compilation for files destined for javahl (i.e. C++)
197251881SpeterCOMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(JAVAHL_INCLUDES) -o $@ -c
198251881SpeterCOMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
199251881SpeterCOMPILE_JAVAHL_JAVAH = $(JAVAH)
200251881Speter
201251881Speter# special compilation for files destined for cxxhl
202251881SpeterCOMPILE_CXXHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(CXXHL_INCLUDES) -o $@ -c
203251881Speter
204251881SpeterLINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
205251881SpeterLINK_LIB = $(LINK) $(LT_SO_VERSION)
206251881SpeterLINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
207251881SpeterLINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
208251881Speter
209251881Speter# special link rule for mod_dav_svn
210251881SpeterLINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS)
211251881Speter
212251881Speter# Special LDFLAGS for some libraries
213251881Speterlibsvn_auth_gnome_keyring_LDFLAGS = @libsvn_auth_gnome_keyring_LDFLAGS@
214251881Speterlibsvn_auth_kwallet_LDFLAGS = @libsvn_auth_kwallet_LDFLAGS@
215251881Speterlibsvn_client_LDFLAGS = @libsvn_client_LDFLAGS@
216251881Speterlibsvn_delta_LDFLAGS = @libsvn_delta_LDFLAGS@
217251881Speterlibsvn_diff_LDFLAGS = @libsvn_diff_LDFLAGS@
218251881Speterlibsvn_fs_LDFLAGS = @libsvn_fs_LDFLAGS@
219251881Speterlibsvn_fs_base_LDFLAGS = @libsvn_fs_base_LDFLAGS@
220251881Speterlibsvn_fs_fs_LDFLAGS = @libsvn_fs_fs_LDFLAGS@
221251881Speterlibsvn_fs_util_LDFLAGS = @libsvn_fs_util_LDFLAGS@
222251881Speterlibsvn_ra_LDFLAGS = @libsvn_ra_LDFLAGS@
223251881Speterlibsvn_ra_local_LDFLAGS = @libsvn_ra_local_LDFLAGS@
224251881Speterlibsvn_ra_serf_LDFLAGS = @libsvn_ra_serf_LDFLAGS@
225251881Speterlibsvn_ra_svn_LDFLAGS = @libsvn_ra_svn_LDFLAGS@
226251881Speterlibsvn_repos_LDFLAGS = @libsvn_repos_LDFLAGS@
227251881Speterlibsvn_subr_LDFLAGS = @libsvn_subr_LDFLAGS@
228251881Speterlibsvn_wc_LDFLAGS = @libsvn_wc_LDFLAGS@
229251881Speter
230251881Speter# Compilation of SWIG-generated C source code
231251881SpeterCOMPILE_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_PY_INCLUDES) -prefer-pic -c -o $@
232251881SpeterCOMPILE_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_RB_INCLUDES) -prefer-pic -c -o $@
233251881Speter
234251881Speter# these commands link the wrapper objects into an extension library/module
235251881SpeterLINK_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_PY_LINK) $(SWIG_LDFLAGS) -rpath $(swig_pydir) -avoid-version -module
236251881SpeterLINK_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_RB_LINK) $(SWIG_LDFLAGS) -rpath $(swig_rbdir) -avoid-version -module
237251881Speter
238251881SpeterLINK_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) $(LT_CXX_LIBADD) -rpath $(libdir)
239251881Speter
240251881SpeterINSTALL = @INSTALL@
241251881SpeterINSTALL_LIB = $(LIBTOOL) --mode=install $(INSTALL)
242251881SpeterINSTALL_FSMOD_LIB = $(INSTALL_LIB)
243251881SpeterINSTALL_RAMOD_LIB = $(INSTALL_LIB)
244251881SpeterINSTALL_APR_MEMCACHE_LIB = $(INSTALL_LIB)
245251881SpeterINSTALL_BDB_LIB = $(INSTALL_LIB)
246251881SpeterINSTALL_GPG_AGENT_LIB = $(INSTALL_LIB)
247251881SpeterINSTALL_GNOME_KEYRING_LIB = $(INSTALL_LIB)
248251881SpeterINSTALL_KWALLET_LIB = $(INSTALL_LIB)
249251881SpeterINSTALL_SERF_LIB = $(INSTALL_LIB)
250251881SpeterINSTALL_BIN = $(LIBTOOL) --mode=install $(INSTALL)
251251881SpeterINSTALL_CONTRIB = $(LIBTOOL) --mode=install $(INSTALL)
252251881SpeterINSTALL_TOOLS = $(LIBTOOL) --mode=install $(INSTALL)
253251881SpeterINSTALL_INCLUDE = $(INSTALL) -m 644
254251881SpeterINSTALL_MOD_SHARED = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
255251881SpeterINSTALL_DATA = $(INSTALL) -m 644
256251881SpeterINSTALL_LOCALE = $(INSTALL_DATA)
257251881SpeterINSTALL_APACHE_MODS = @INSTALL_APACHE_MODS@
258251881Speter
259251881Speter### this isn't correct yet
260251881SpeterINSTALL_SWIG_PY = $(INSTALL_LIB)
261251881SpeterINSTALL_SWIG_PY_LIB = $(INSTALL_LIB)
262251881SpeterINSTALL_SWIG_PL_LIB = $(INSTALL_LIB)
263251881SpeterINSTALL_SWIG_RB = $(INSTALL_LIB)
264251881SpeterINSTALL_SWIG_RB_LIB = $(INSTALL_LIB)
265251881Speter
266251881SpeterINSTALL_JAVAHL_LIB = $(INSTALL_LIB)
267251881Speter
268251881Speter# additional installation rules for the SWIG wrappers
269251881SpeterINSTALL_EXTRA_SWIG_PY=\
270251881Speter  $(MKDIR) $(DESTDIR)$(swig_pydir); \
271251881Speter  $(MKDIR) $(DESTDIR)$(swig_pydir_extra); \
272251881Speter  for i in $(abs_srcdir)/subversion/bindings/swig/python/svn/*.py; do \
273251881Speter    $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir_extra); \
274251881Speter  done; \
275251881Speter  for i in $(abs_srcdir)/subversion/bindings/swig/python/*.py; do \
276251881Speter    $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
277251881Speter  done; \
278251881Speter  if test "$(abs_srcdir)" != "$(abs_builddir)"; then \
279251881Speter    for i in $(abs_builddir)/subversion/bindings/swig/python/*.py; do \
280251881Speter      $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
281251881Speter    done; \
282251881Speter  fi; \
283251881Speter  $(PYTHON) -c 'import compileall; \
284251881Speter    compileall.compile_dir("$(DESTDIR)$(swig_pydir)", 1, "$(swig_pydir)"); \
285251881Speter    compileall.compile_dir("$(DESTDIR)$(swig_pydir_extra)", 1, \
286251881Speter    "$(swig_pydir_extra)");'
287251881Speter
288251881Speter# export an env variable so that the tests can run without being installed
289251881SpeterTEST_SHLIB_VAR_SWIG_PY=\
290251881Speter  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
291251881Speter    for d in $(SWIG_PY_DIR)/libsvn_swig_py $(SWIG_PY_DIR)/../../../libsvn_*; do \
292251881Speter      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
293251881Speter        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
294251881Speter      else \
295251881Speter        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
296251881Speter      fi; \
297251881Speter    done; \
298251881Speter    export @SVN_APR_SHLIB_PATH_VAR@; \
299251881Speter  fi;
300251881Speter
301251881Speter# The path to generated and complementary source files for the SWIG
302251881Speter# bindings.
303251881SpeterSWIG_PL_DIR = $(abs_builddir)/subversion/bindings/swig/perl
304251881SpeterSWIG_PY_DIR = $(abs_builddir)/subversion/bindings/swig/python
305251881SpeterSWIG_RB_DIR = $(abs_builddir)/subversion/bindings/swig/ruby
306251881Speter
307251881Speter# The path to the source files for the SWIG bindings
308251881SpeterSWIG_PL_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/perl
309251881SpeterSWIG_PY_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/python
310251881SpeterSWIG_RB_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig/ruby
311251881Speter
312251881Speter### Automate JAR creation using Makefile generator's javahl-java.jar
313251881Speter### property.  Enhance generator to support JAR installation.
314251881SpeterJAVAHL_MANIFEST_IN = $(abs_srcdir)/subversion/bindings/javahl/Manifest.in
315251881SpeterJAVAHL_MANIFEST = subversion/bindings/javahl/Manifest
316251881SpeterINSTALL_EXTRA_JAVAHL_JAVA=\
317251881Speter	sed s/%bundleVersion/$(PACKAGE_VERSION)/ $(JAVAHL_MANIFEST_IN) > $(JAVAHL_MANIFEST); \
318251881Speter	$(JAR) cfm $(JAVAHL_JAR) $(JAVAHL_MANIFEST) -C subversion/bindings/javahl/classes org; \
319251881Speter	$(INSTALL_DATA) $(JAVAHL_JAR) $(DESTDIR)$(javahl_javadir);
320251881Speter
321251881SpeterINSTALL_EXTRA_JAVAHL_LIB=@INSTALL_EXTRA_JAVAHL_LIB@
322251881Speter
323251881SpeterINSTALL_EXTRA_SWIG_RB=\
324251881Speter  @echo $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
325251881Speter  $(MKDIR) $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
326251881Speter  for i in $(abs_srcdir)/subversion/bindings/swig/ruby/svn/*.rb; do \
327251881Speter    echo $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
328251881Speter    $(INSTALL_DATA) "$$i" $(DESTDIR)$(SWIG_RB_SITE_LIB_DIR)/svn; \
329251881Speter  done
330251881Speter
331251881Speter# export an env variable so that the tests can run without being installed
332251881SpeterTEST_SHLIB_VAR_SWIG_RB=\
333251881Speter  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
334251881Speter    for d in $(SWIG_PY_DIR)/libsvn_swig_rb $(SWIG_PY_DIR)/../../../libsvn_*; do \
335251881Speter      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
336251881Speter        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
337251881Speter      else \
338251881Speter        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
339251881Speter      fi; \
340251881Speter    done; \
341251881Speter    export @SVN_APR_SHLIB_PATH_VAR@; \
342251881Speter  fi;
343251881Speter 
344251881SpeterAPXS = @APXS@ 
345251881Speter
346251881SpeterPYTHON = @PYTHON@
347251881SpeterPERL = @PERL@
348251881Speter
349251881SpeterJDK = @JDK@
350251881SpeterJAVA = @JAVA@
351251881SpeterJAVAC = @JAVAC@
352251881SpeterJAVADOC = @JAVADOC@
353251881SpeterJAVAC_FLAGS = @JAVAC_FLAGS@
354251881SpeterJAVAH = @JAVAH@
355251881SpeterJAR = @JAR@
356251881Speter
357251881SpeterJAVA_CLASSPATH=$(abs_srcdir)/subversion/bindings/javahl/src:@JAVA_CLASSPATH@
358251881Speterjavahl_java_CLASSPATH=$(JAVA_CLASSPATH)
359251881Speterjavahl_compat_CLASSPATH=$(JAVA_CLASSPATH)
360251881Speterjavahl_tests_CLASSPATH=$(JAVA_CLASSPATH)
361251881Speterjavahl_compat_tests_CLASSPATH=$(JAVA_CLASSPATH)
362251881Speter
363251881SpeterRUBY = @RUBY@
364251881SpeterRUBY_MAJOR = @RUBY_MAJOR@
365251881SpeterRUBY_MINOR = @RUBY_MINOR@
366251881SpeterRDOC = @RDOC@
367251881Speter
368251881SpeterECHO_C = @ECHO_C@
369251881SpeterECHO_N = @ECHO_N@
370251881Speter
371251881SpeterTESTS = $(TEST_PROGRAMS) @BDB_TEST_PROGRAMS@
372251881Speter
373251881Speterall: mkdir-init local-all
374251881Speterclean: local-clean
375251881Speterdistclean: local-distclean
376251881Speterextraclean: local-extraclean
377251881Speterinstall: local-install revision-install
378251881Speter
379251881Speter@INCLUDE_OUTPUTS@
380251881Speter
381251881Speterlocal-all: @BUILD_RULES@ @TRANSFORM_LIBTOOL_SCRIPTS@
382251881Speter
383251881Spetertransform-libtool-scripts: @BUILD_RULES@
384251881Speter	@$(SHELL) $(top_srcdir)/build/transform_libtool_scripts.sh
385251881Speter
386251881Speterlocale-gnu-pot:
387251881Speter	cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
388251881Speter	  $(SHELL) tools/po/po-update.sh pot
389251881Speter
390251881Speter# "make locale-gnu-po-update" updates all translations.
391251881Speter# "make locale-gnu-po-update PO=ll" updates only the ll.po file.
392251881Speterlocale-gnu-po-update:
393251881Speter	cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
394251881Speter	  $(SHELL) tools/po/po-update.sh $(PO)
395251881Speter
396251881Speter# clean everything but the bulky test output, returning the system back
397251881Speter# to before 'make' was run.
398251881Speterfast-clean: doc-clean
399251881Speter	@list='$(BUILD_DIRS)'; for i in $$list; do                   \
400251881Speter          if [ -d $$i ]; then                                        \
401251881Speter            (cd $$i && rm -f *.o *.lo *.la *.la-a *.spo *.mo &&      \
402251881Speter             rm -rf .libs);                                          \
403251881Speter          fi                                                         \
404251881Speter        done
405251881Speter	echo $(CLEAN_FILES) | xargs rm -f --
406251881Speter	find $(CTYPES_PYTHON_SRC_DIR) $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) \
407251881Speter		$(abs_srcdir)/build $(top_srcdir)/subversion/tests/cmdline/svntest \
408251881Speter		-name "*.pyc" -exec rm {} ';'
409251881Speter
410251881Speter# clean everything, returning to before './configure' was run.
411251881SpeterSVN_CONFIG_SCRIPT_FILES = @SVN_CONFIG_SCRIPT_FILES@
412251881Speterlocal-distclean: local-clean
413251881Speter	rm -fr config.cache config.log config.nice config.status \
414251881Speter	  libtool mkmf.log subversion/svn_private_config.h \
415251881Speter	  subversion/bindings/javahl/classes \
416251881Speter	  subversion/bindings/javahl/include \
417251881Speter	$(SVN_CONFIG_SCRIPT_FILES)
418251881Speter	rm -f Makefile
419251881Speter
420251881Speter# clean everything out, returning to before './autogen.sh' was run.
421251881Speterlocal-extraclean: extraclean-bindings local-distclean
422251881Speter	rm -f $(top_srcdir)/build-outputs.mk \
423251881Speter              $(top_srcdir)/subversion/svn_private_config.h.in \
424251881Speter              $(top_srcdir)/configure \
425251881Speter              $(top_srcdir)/gen-make.opts \
426251881Speter              $(top_srcdir)/build/config.guess \
427251881Speter              $(top_srcdir)/build/config.sub \
428251881Speter              $(top_srcdir)/build/libtool.m4 \
429251881Speter              $(top_srcdir)/build/ltoptions.m4 \
430251881Speter              $(top_srcdir)/build/ltsugar.m4 \
431251881Speter              $(top_srcdir)/build/ltversion.m4 \
432251881Speter              $(top_srcdir)/build/lt~obsolete.m4 \
433251881Speter              $(top_srcdir)/build/ltmain.sh \
434251881Speter              $(top_srcdir)/build/transform_libtool_scripts.sh \
435251881Speter              $(EXTRACLEAN_FILES)
436251881Speter
437251881Speter
438251881Speter# clean everything, including test output.
439251881Speterlocal-clean: check-clean clean-bindings fast-clean
440251881Speter
441251881Speterlocal-install: @INSTALL_RULES@
442251881Speter
443251881Speterrevision-install:
444251881Speter	test -d $(DESTDIR)$(includedir)/subversion-1 || \
445251881Speter	  $(MKDIR) $(DESTDIR)$(includedir)/subversion-1
446251881Speter	(subversion/svnversion/svnversion $(top_srcdir) 2> /dev/null ||  \
447251881Speter	 svnversion $(top_srcdir) 2> /dev/null ||                        \
448251881Speter	 echo "unknown";                                                 \
449251881Speter	) > $(DESTDIR)$(includedir)/subversion-1/svn-revision.txt
450251881Speter
451251881Speterinstall-static: @INSTALL_STATIC_RULES@
452251881Speter
453251881Speter# JavaHL target aliases
454251881Speterjavahl: mkdir-init javahl-java javahl-javah javahl-callback-javah javahl-types-javah javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
455251881Speterinstall-javahl: javahl install-javahl-java install-javahl-javah install-javahl-lib
456251881Speterjavahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
457251881Speter
458251881Speterclean-javahl:
459251881Speter	rm -rf $(javahl_java_PATH) $(javahl_javah_PATH) @JAVAHL_OBJDIR@
460251881Speter	rm -fr $(javahl_test_rootdir)
461251881Speter	rm -f $(libsvnjavahl_PATH)/*.la $(JAVAHL_JAR)
462251881Speter	rm -f $(libsvnjavahl_PATH)/*.lo
463251881Speter	rm -f $(libsvnjavahl_PATH)/*.o
464251881Speter
465251881Spetercheck-tigris-javahl: javahl-compat
466251881Speter	@FIX_JAVAHL_LIB@
467251881Speter	$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
468251881Speter
469251881Spetercheck-apache-javahl: javahl
470251881Speter	@FIX_JAVAHL_LIB@
471251881Speter	$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
472251881Speter
473251881Spetercheck-javahl: check-apache-javahl
474251881Speter
475251881Spetercheck-all-javahl: check-apache-javahl check-tigris-javahl
476251881Speter
477251881Speter# "make check CLEANUP=true" will clean up directories for successful tests.
478251881Speter# "make check TESTS=subversion/tests/cmdline/basic_tests.py"
479251881Speter#  will perform only basic tests (likewise for other tests).
480251881Spetercheck: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@
481251881Speter	@if test "$(PYTHON)" != "none"; then                                 \
482251881Speter	  flags="--verbose";                                                 \
483251881Speter	  if test "$(CLEANUP)" != ""; then                                   \
484251881Speter	    flags="--cleanup $$flags";                                       \
485251881Speter	  fi;                                                                \
486251881Speter	  if test "$(BASE_URL)" != ""; then                                  \
487251881Speter	    flags="--url $(BASE_URL) $$flags";                               \
488251881Speter	  fi;                                                                \
489251881Speter	  if test "$(FS_TYPE)" != ""; then                                   \
490251881Speter	    flags="--fs-type $(FS_TYPE) $$flags";                            \
491251881Speter	  fi;                                                                \
492251881Speter	  if test "$(HTTP_LIBRARY)" != ""; then                              \
493251881Speter	    flags="--http-library $(HTTP_LIBRARY) $$flags";                  \
494251881Speter	  fi;                                                                \
495251881Speter	  if test "$(SERVER_MINOR_VERSION)" != ""; then                      \
496251881Speter	    flags="--server-minor-version $(SERVER_MINOR_VERSION) $$flags";  \
497251881Speter	  fi;                                                                \
498251881Speter	  if test "$(ENABLE_SASL)" != ""; then                               \
499251881Speter	    flags="--enable-sasl $$flags";                                   \
500251881Speter	  fi;                                                                \
501251881Speter	  if test "$(FSFS_SHARDING)" != ""; then                             \
502251881Speter	    flags="--fsfs-sharding $(FSFS_SHARDING) $$flags";                \
503251881Speter	  fi;                                                                \
504251881Speter	  if test "$(FSFS_PACKING)" != ""; then                              \
505251881Speter	    flags="--fsfs-packing $$flags";                                  \
506251881Speter	  fi;                                                                \
507251881Speter	  if test "$(PARALLEL)" != ""; then                                  \
508251881Speter	    flags="--parallel $$flags";                                      \
509251881Speter	  fi;                                                                \
510251881Speter	  if test "$(LOG_TO_STDOUT)" != ""; then                             \
511251881Speter	    flags="--log-to-stdout $$flags";                                 \
512251881Speter	  fi;                                                                \
513251881Speter	  if test "$(MILESTONE_FILTER)" != ""; then                          \
514251881Speter	    flags="--list --milestone-filter=$(MILESTONE_FILTER)             \
515251881Speter		   --mode-filter=$(MODE_FILTER) --log-to-stdout $$flags";    \
516251881Speter	  fi;                                                                \
517251881Speter	  if test "$(SET_LOG_LEVEL)" != ""; then                             \
518251881Speter	    flags="--set-log-level $(SET_LOG_LEVEL) $$flags";                \
519251881Speter	  fi;                                                                \
520251881Speter	  if test "$(SSL_CERT)" != ""; then                                  \
521251881Speter	    flags="--ssl-cert $(SSL_CERT) $$flags";                          \
522251881Speter	  fi;                                                                \
523251881Speter	  if test "$(HTTP_PROXY)" != ""; then                                \
524251881Speter	    flags="--http-proxy $(HTTP_PROXY) $$flags";                      \
525251881Speter	  fi;                                                                \
526251881Speter	  LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)'           \
527251881Speter	  $(PYTHON) $(top_srcdir)/build/run_tests.py                         \
528251881Speter	            --config-file $(top_srcdir)/subversion/tests/tests.conf  \
529251881Speter	            $$flags                                                  \
530251881Speter	            '$(abs_srcdir)' '$(abs_builddir)' $(TESTS);              \
531251881Speter	else                                                                 \
532251881Speter	  echo "make check: Python 2.5 or greater is required,";             \
533251881Speter	  echo "            but was not detected during configure";          \
534251881Speter	  exit 1;                                                            \
535251881Speter	fi;
536251881Speter
537251881Speter# First, set up Apache as documented in
538251881Speter# subversion/tests/cmdline/README.
539251881Speterdavcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
540251881Speter	@$(MAKE) check BASE_URL=http://localhost
541251881Speter
542251881Speter# Automatically configure and run Apache httpd on a random port, and then
543251881Speter# run make check.
544251881Speterdavautocheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
545251881Speter	@# Takes MODULE_PATH, USE_HTTPV1 and SVN_PATH_AUTHZ in the environment.
546251881Speter	@APXS=$(APXS) $(top_srcdir)/subversion/tests/cmdline/davautocheck.sh
547251881Speter
548251881Speter# First, run:
549251881Speter#   subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/cmdline
550251881Spetersvncheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
551251881Speter	@$(MAKE) check BASE_URL=svn://127.0.0.1
552251881Speter
553251881Speter# 'make svnserveautocheck' runs svnserve for you and kills it.
554251881Spetersvnserveautocheck: svnserve bin $(TEST_DEPS) @BDB_TEST_DEPS@
555251881Speter	@env PYTHON=$(PYTHON) THREADED=$(THREADED) \
556251881Speter	  $(top_srcdir)/subversion/tests/cmdline/svnserveautocheck.sh
557251881Speter
558251881Speter# First, run:
559251881Speter#   subversion/svnserve/svnserve --listen-host "::1" -d -r `pwd`/subversion/tests/cmdline
560251881Speter
561251881Spetersvncheck6: bin $(TEST_DEPS) @BDB_TEST_DEPS@
562251881Speter	@$(MAKE) check BASE_URL=svn://\[::1\]
563251881Speter
564251881Speter# First make sure you can ssh to localhost and that "svnserve" is in
565251881Speter# the path of the resulting shell.
566251881Spetersvnsshcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
567251881Speter	@$(MAKE) check \
568251881Speter	  BASE_URL=svn+ssh://localhost`pwd`/subversion/tests/cmdline
569251881Speter
570251881Speterbdbcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
571251881Speter	@$(MAKE) check FS_TYPE=bdb
572251881Speter
573251881Speter# Create an execution coverage report from the data collected during
574251881Speter# all execution since the last reset.
575251881Spetergcov:
576251881Speter	lcov --capture -d . -b . -o gcov-lcov.dat > gcov-lcov.log
577251881Speter	genhtml gcov-lcov.dat -o gcov-report > gcov-genhtml.log
578251881Speter
579251881Speter# Reset all execution coverage counters to zero.
580251881Spetergcov-reset:
581251881Speter	lcov --zerocounters -d .
582251881Speter
583251881Speter# Remove the execution coverage data and the report.
584251881Spetergcov-clean:
585251881Speter	rm -f gcov-lcov.dat gcov-lcov.log gcov-genhtml.log
586251881Speter	rm -rf gcov-report
587251881Speter	find . -name "*.gcda" -o -name "*.gcno" -print0 | xargs -0 rm -f --
588251881Speter
589251881Spetercheck-clean: gcov-clean
590251881Speter	if [ -d subversion/tests/cmdline/svn-test-work ]; then \
591251881Speter	  find subversion/tests/cmdline/svn-test-work -mindepth 1 -maxdepth 1 \
592251881Speter               -print0 | xargs -0 rm -rf --;   \
593251881Speter	fi
594251881Speter	rm -rf subversion/tests/libsvn_fs/test-repo-*          \
595251881Speter	       subversion/tests/libsvn_fs_base/test-repo-*     \
596251881Speter	       subversion/tests/libsvn_fs_fs/test-repo-*       \
597251881Speter	       subversion/tests/libsvn_ra_local/test-repo-*    \
598251881Speter	       subversion/tests/libsvn_repos/test-repo-*       \
599251881Speter	       subversion/tests/libsvn_subr/z                  \
600251881Speter	       subversion/tests/libsvn_wc/fake-wc              \
601251881Speter	       subversion/tests/libsvn_client/test-patch*      \
602251881Speter	       subversion/tests/libsvn_client/test-*/          \
603251881Speter	       subversion/tests/libsvn_diff/B2                 \
604251881Speter	       subversion/tests/libsvn_diff/T1                 \
605251881Speter	       subversion/tests/libsvn_diff/T2                 \
606251881Speter	       subversion/tests/libsvn_diff/T3                 \
607251881Speter	       subversion/tests/svnserveautocheck.pid          \
608251881Speter	       tests.log fails.log
609251881Speter
610251881Spetermkdir-init:
611251881Speter	@list='$(BUILD_DIRS) $(SCHEMA_DIR) doc';         \
612251881Speter        for i in $$list; do                              \
613251881Speter            if [ ! -d $$i ]; then                        \
614251881Speter                $(MKDIR) $$i ;                           \
615251881Speter            fi;                                          \
616251881Speter        done
617251881Speter
618251881Speter# DOCUMENTATION RULES
619251881Speter
620251881Speter# Every single document in every format.
621251881Speterdoc: doc-api doc-javahl
622251881Speter
623251881Speter# Generate API documentation for the C libraries.
624251881Speter### This could also generate POD for swig-perl, etc.
625251881Speterdoc-api: mkdir-init
626251881Speter	( cd $(top_srcdir) && \
627251881Speter	  sed "s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \
628251881Speter	  doc/doxygen.conf | $(DOXYGEN) - )
629251881Speter
630251881Speter# Generate API documentation for the JavaHL package.
631251881Speterdoc-javahl:
632251881Speter	$(JAVADOC) -d $(abs_builddir)/doc/javadoc \
633251881Speter	  -sourcepath $(top_srcdir)/subversion/bindings/javahl/src \
634251881Speter	  -link http://java.sun.com/javase/6/docs/api/ \
635251881Speter	  org.tigris.subversion.javahl \
636251881Speter      org.apache.subversion.javahl \
637251881Speter      org.apache.subversion.javahl.callback \
638251881Speter      org.apache.subversion.javahl.types
639251881Speter
640251881Speterdoc-clean:
641251881Speter	rm -rf $(top_srcdir)/doc/doxygen
642251881Speter	rm -rf $(top_srcdir)/doc/javadoc
643251881Speter
644251881Speter# Converting from the .rnc XML shcemas to various other schema formats.
645251881SpeterSCHEMAS_DTD = $(SCHEMA_DIR)/blame.dtd $(SCHEMA_DIR)/info.dtd \
646251881Speter              $(SCHEMA_DIR)/list.dtd $(SCHEMA_DIR)/log.dtd \
647251881Speter              $(SCHEMA_DIR)/status.dtd $(SCHEMA_DIR)/props.dtd
648251881Speter
649251881SpeterSCHEMAS_RNG = $(SCHEMA_DIR)/blame.rng $(SCHEMA_DIR)/info.rng \
650251881Speter              $(SCHEMA_DIR)/list.rng $(SCHEMA_DIR)/log.rng \
651251881Speter              $(SCHEMA_DIR)/status.rng $(SCHEMA_DIR)/props.rng
652251881Speter
653251881SpeterSCHEMAS_XSD = $(SCHEMA_DIR)/blame.xsd $(SCHEMA_DIR)/info.xsd \
654251881Speter              $(SCHEMA_DIR)/list.xsd $(SCHEMA_DIR)/log.xsd \
655251881Speter              $(SCHEMA_DIR)/status.xsd $(SCHEMA_DIR)/props.xsd
656251881Speter
657251881Speterschema: schema-rng schema-dtd schema-xsd
658251881Speter
659251881Speterschema-rng: $(SCHEMAS_RNG)
660251881Speterschema-dtd: $(SCHEMAS_DTD)
661251881Speterschema-xsd: $(SCHEMAS_XSD)
662251881Speter
663251881Speter$(SCHEMAS_RNG) $(SCHEMAS_DTD) $(SCHEMAS_XSD): $(SCHEMA_DIR)/common.rnc
664251881Speter
665251881Speterschema-clean:
666251881Speter	(cd $(SCHEMA_DIR) && rm -f *.rng *.dtd *.xsd)
667251881Speter
668251881Speter#
669251881Speter# Implicit rules for creating outputs from input files
670251881Speter#
671251881Speter.SUFFIXES:
672251881Speter.SUFFIXES: .c .cpp .lo .o .la-a .la \
673251881Speter           .po .spo .mo .rnc .rng .dtd .xsd .sql .h
674251881Speter
675251881Speter.sql.h:
676251881Speter	$(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
677251881Speter
678251881Speter.c.o:
679251881Speter	$(COMPILE) -o $@ -c $<
680251881Speter
681251881Speter.cpp.o:
682251881Speter	$(COMPILE_CXX) -o $@ -c $<
683251881Speter
684251881Speter.c.lo:
685251881Speter	$(LT_COMPILE) -o $@ -c $<
686251881Speter
687251881Speter.cpp.lo:
688251881Speter	$(LT_COMPILE_CXX) -o $@ -c $<
689251881Speter
690251881Speter.la.la-a:
691251881Speter	sed "/library_names/s/'.*'/''/" $< > $@
692251881Speter
693251881Speter
694251881Speter# Strip the Content-Type: header from the po file if we don't have a
695251881Speter# gettext that supports bind_textdomain_codeset, so it doesn't try
696251881Speter# to convert our UTF-8 .po files to the locale encoding.
697251881Speter@NO_GETTEXT_CODESET@.po.spo:
698251881Speter@NO_GETTEXT_CODESET@	sed \
699251881Speter@NO_GETTEXT_CODESET@	'/^"Content-Type: text\/plain; charset=UTF-8\\n"$$/d' \
700251881Speter@NO_GETTEXT_CODESET@	$< > $@
701251881Speter
702251881Speter@NO_GETTEXT_CODESET@.spo.mo:
703251881Speter@NO_GETTEXT_CODESET@	$(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
704251881Speter
705251881Speter# For systems with bind_textdomain_codeset, just leave the Content-Type:
706251881Speter# header alone.
707251881Speter@GETTEXT_CODESET@.po.mo:
708251881Speter@GETTEXT_CODESET@	$(MSGFMT) $(MSGFMTFLAGS) -o $@ $<
709251881Speter
710251881Speter.rnc.rng:
711251881Speter	@TRANG@ $< $@
712251881Speter
713251881Speter.rnc.dtd:
714251881Speter	@TRANG@ $< $@
715251881Speter
716251881Speter.rnc.xsd:
717251881Speter	@TRANG@ $< $@
718251881Speter
719251881Speterinstall-docs: install-man
720251881Speter
721251881Spetermanroot = $(mandir)/man
722251881Speterinstall-man:
723251881Speter	@list='$(MANPAGES)';                                               \
724251881Speter        for i in $$list; do                                                \
725251881Speter          if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i;               \
726251881Speter          else file=$$i; fi;                                               \
727251881Speter          ext=`echo $$i | sed -e 's/^.*\\.//'`;                            \
728251881Speter          $(MKDIR) $(DESTDIR)$(manroot)$$ext;                              \
729251881Speter          inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`;                   \
730251881Speter          inst=`echo $$inst | sed -e 's/^.*\///'`;                         \
731251881Speter          inst=`echo $$inst`.$$ext;                                        \
732251881Speter          echo "$(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst";  \
733251881Speter          $(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst;         \
734251881Speter        done
735251881Speter
736251881Speterinstall-swig-py: install-swig-py-lib
737251881Speterinstall-swig-rb: install-swig-rb-lib
738251881Speter
739251881Speterclean-bindings: clean-swig clean-ctypes-python clean-javahl
740251881Speter
741251881Speterextraclean-bindings: clean-swig extraclean-swig-headers \
742251881Speter			extraclean-swig-py extraclean-swig-rb \
743251881Speter			extraclean-swig-pl \
744251881Speter			clean-ctypes-python clean-javahl \
745251881Speter
746251881Speterclean-swig: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
747251881Speter	@rm -f .swig_checked
748251881Speter
749251881SpeterEXTRACLEAN_SWIG_HEADERS=rm -f $(SWIG_SRC_DIR)/proxy/*.swg
750251881Speter
751251881Speterclean-swig-headers:
752251881Speter	if test -z "$(RELEASE_MODE)"; then \
753251881Speter	  $(EXTRACLEAN_SWIG_HEADERS); \
754251881Speter	fi
755251881Speter
756251881Speterextraclean-swig-headers: clean-swig-headers
757251881Speter	$(EXTRACLEAN_SWIG_HEADERS)
758251881Speter
759251881Speter$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in
760251881Speter	./config.status subversion/bindings/swig/perl/native/Makefile.PL
761251881Speter
762251881Speter$(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
763251881Speter	cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
764251881Speter
765251881Speter# There is a "readlink -f" command on some systems for the same purpose,
766251881Speter# but it's not as portable (e.g. Mac OS X doesn't have it).  These should
767251881Speter# only be used where Python/Perl are known to be available.
768251881SpeterREADLINK_PY=$(PYTHON) -c 'import sys,os; print(os.path.realpath(sys.argv[1]))'
769251881SpeterREADLINK_PL=$(PERL) -e 'use Cwd; print Cwd::realpath(shift)'
770251881Speter
771251881Speterswig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
772251881Speter  $(SWIG_PL_DIR)/native/Makefile
773251881Speterswig-pl: $(swig-pl_DEPS)
774251881Speter	if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \
775251881Speter	  ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \
776251881Speter	fi
777251881Speter	cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)"
778251881Speter
779251881Spetercheck-swig-pl: swig-pl swig-pl-lib
780251881Speter	cd $(SWIG_PL_DIR)/native; $(MAKE) test
781251881Speter
782251881Speterinstall-swig-pl: swig-pl install-swig-pl-lib
783251881Speter	cd $(SWIG_PL_DIR)/native; $(MAKE) install
784251881Speter
785251881SpeterEXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \
786251881Speter                         $(SWIG_PL_SRC_DIR)/native/core.c
787251881Speter
788251881Speter# Running Makefile.PL at this point *fails* (cannot find ..../.libs) so if the
789251881Speter# Makefile does not exist, DO NOT try to make it. But, if it doesn't exist,
790251881Speter# then the directory is probably clean anyway.
791251881Speterclean-swig-pl:
792251881Speter	if test -z "$(RELEASE_MODE)"; then \
793251881Speter	  $(EXTRACLEAN_SWIG_PL); \
794251881Speter	fi
795251881Speter	for d in $(SWIG_PL_DIR)/libsvn_swig_perl; \
796251881Speter	do \
797251881Speter	  cd $$d; \
798251881Speter	  rm -rf *.lo *.la *.o .libs; \
799251881Speter	done
800251881Speter	if [ -f "$(SWIG_PL_DIR)/native/Makefile" ]; then \
801251881Speter	  cd $(SWIG_PL_DIR)/native; $(MAKE) clean; \
802251881Speter	fi
803251881Speter
804251881Speterextraclean-swig-pl: clean-swig-pl
805251881Speter	$(EXTRACLEAN_SWIG_PL)
806251881Speter
807251881Speter$(SWIG_PY_DIR)/libsvn:
808251881Speter	mkdir $(SWIG_PY_DIR)/libsvn
809251881Speter
810251881Spetercopy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsvn
811251881Speter	@for f in $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/*.py; do \
812251881Speter	  ! [ -f "$$f" ] || cp -pf $$f $(SWIG_PY_DIR)/libsvn; \
813251881Speter	done
814251881Speter	@touch $(SWIG_PY_DIR)/libsvn/__init__.py
815251881Speter
816251881Speterswig-py: autogen-swig-py copy-swig-py
817251881Speter
818251881Spetercheck-swig-py: swig-py
819251881Speter	$(TEST_SHLIB_VAR_SWIG_PY) \
820251881Speter	cd $(SWIG_PY_DIR); \
821251881Speter	  $(PYTHON) $(SWIG_PY_SRC_DIR)/tests/run_all.py
822251881Speter
823251881SpeterEXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_SRC_DIR)/svn_*.c $(SWIG_PY_SRC_DIR)/core.c \
824251881Speter                          $(SWIG_PY_SRC_DIR)/[a-z]*.py
825251881Speterclean-swig-py:
826251881Speter	rm -rf $(SWIG_PY_DIR)/libsvn
827251881Speter	if test -z "$(RELEASE_MODE)"; then \
828251881Speter	  $(EXTRACLEAN_SWIG_PY); \
829251881Speter	fi
830251881Speter	for d in $(SWIG_PY_DIR) $(SWIG_PY_DIR)/libsvn_swig_py; \
831251881Speter	do \
832251881Speter	  cd $$d && rm -rf *.lo *.la *.o *.pyc .libs; \
833251881Speter	done
834251881Speter	find $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) -name "*.pyc" -exec rm {} ';'
835251881Speter
836251881Speterextraclean-swig-py: clean-swig-py
837251881Speter	$(EXTRACLEAN_SWIG_PY)
838251881Speter
839251881Speterswig-rb: autogen-swig-rb
840251881Speter
841251881Spetercheck-swig-rb: swig-rb svnserve
842251881Speter	$(TEST_SHLIB_VAR_SWIG_RB) \
843251881Speter	cd $(SWIG_RB_DIR); \
844251881Speter          if [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
845251881Speter            $(RUBY) -I $(SWIG_RB_SRC_DIR) \
846251881Speter              $(SWIG_RB_SRC_DIR)/test/run-test.rb \
847251881Speter	      --verbose=$(SWIG_RB_TEST_VERBOSE); \
848251881Speter          else \
849251881Speter	    $(RUBY) -I $(SWIG_RB_SRC_DIR) \
850251881Speter	      $(SWIG_RB_SRC_DIR)/test/run-test.rb; \
851251881Speter          fi
852251881Speter
853251881SpeterEXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c
854251881Speter
855251881Speterclean-swig-rb:
856251881Speter	rm -rf $(SWIG_RB_DIR)/test/repos $(SWIG_RB_DIR)/test/wc
857251881Speter	if test -z "$(RELEASE_MODE)"; then \
858251881Speter	  $(EXTRACLEAN_SWIG_RB); \
859251881Speter	fi
860251881Speter	for d in $(SWIG_RB_DIR) $(SWIG_RB_DIR)/libsvn_swig_ruby; \
861251881Speter	do \
862251881Speter	  cd $$d; \
863251881Speter	  rm -rf *.lo *.la *.o .libs; \
864251881Speter	done
865251881Speter
866251881Speterextraclean-swig-rb: clean-swig-rb
867251881Speter	$(EXTRACLEAN_SWIG_RB)
868251881Speter
869251881Speterinstall-swig-rb-doc:
870251881Speter	$(RDOC) --all --ri --op "$(SWIG_RB_RI_DATADIR)" "$(SWIG_RB_SRC_DIR)/svn"
871251881Speter
872251881Speter# ctypes-python make targets
873251881Speterctypes-python: local-all
874251881Speter	$(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)"
875251881Speter
876251881Speterinstall-ctypes-python: ctypes-python
877251881Speter	cd $(CTYPES_PYTHON_SRC_DIR); \
878251881Speter	  $(PYTHON) setup.py install --prefix="$(DESTDIR)$(prefix)"
879251881Speter
880251881Spetercheck-ctypes-python: ctypes-python
881251881Speter	cd $(CTYPES_PYTHON_SRC_DIR); \
882251881Speter	  $(LT_EXECUTE) $(PYTHON) test/run_all.py
883251881Speter
884251881Speter# If any of those files exists, run ctypes' 'setup.py clean'.  We don't run
885251881Speter# it otherwise because it spams stdout+stderr; see r1479326.
886251881Speterclean-ctypes-python:
887251881Speter	cd $(CTYPES_PYTHON_SRC_DIR);            \
888251881Speter	  for b in build csvn/core/functions.py svn_all.py svn_all2.py ; do \
889251881Speter	    if [ -e "$$b" ] ; then              \
890251881Speter	      $(PYTHON) setup.py clean --all;   \
891251881Speter	      break;                            \
892251881Speter	    fi;                                 \
893251881Speter	  done
894251881Speter
895251881Speter# manually describe a dependency, which we won't otherwise detect
896251881Spetersubversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-metadata.sql
897251881Spetersubversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-checks.sql
898251881Speter
899251881Speter# Compatibility symlink.
900251881Speter# This runs after the target of the same name in build-outputs.mk.
901251881SpeterINSTALL_EXTRA_TOOLS=\
902251881Speter  $(MKDIR) $(DESTDIR)$(bindir); \
903251881Speter  test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
904251881Speter  ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
905251881Speter  if test "$(DESTDIR)$(bindir)" != "$(DESTDIR)$(toolsdir)"; then \
906253734Speter    ln -sf $(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
907251881Speter  fi
908