2 # Makefile.in: template Makefile for Subversion
4 # ====================================================================
5 # Copyright (c) 2000-2006 CollabNet. All rights reserved.
7 # This software is licensed as described in the file COPYING, which
8 # you should have received as part of this distribution. The terms
9 # are also available at http://subversion.tigris.org/license-1.html.
10 # If newer versions of this license are posted there, you may use a
11 # newer version instead, at your option.
13 # This software consists of voluntary contributions made by many
14 # individuals. For exact contribution history, see the revision
15 # history and logs, available at http://subversion.tigris.org/.
16 # ====================================================================
20 top_srcdir
= @top_srcdir@
21 abs_builddir
= @abs_builddir@
22 abs_srcdir
= @abs_srcdir@
25 SVN_RA_LIB_DEPS
= @SVN_RA_LIB_DEPS@
26 SVN_RA_LIB_INSTALL_DEPS
= @SVN_RA_LIB_INSTALL_DEPS@
27 SVN_RA_LIB_LINK
= @SVN_RA_LIB_LINK@
29 SVN_FS_LIB_DEPS
= @SVN_FS_LIB_DEPS@
30 SVN_FS_LIB_INSTALL_DEPS
= @SVN_FS_LIB_INSTALL_DEPS@
31 SVN_FS_LIB_LINK
= @SVN_FS_LIB_LINK@
33 SWIG_SRC_DIR
= $(abs_srcdir
)/subversion
/bindings
/swig
34 SWIG_BUILD_DIR
= $(abs_builddir
)/subversion
/bindings
/swig
36 SVN_EXTERNAL_PROJECT_SUBDIRS
= @SVN_EXTERNAL_PROJECT_SUBDIRS@
38 SCHEMA_DIR
= subversion
/svn
/schema
40 NEON_LIBS
= @NEON_LIBS@
41 SVN_APR_LIBS
= @SVN_APR_LIBS@
42 SVN_APRUTIL_LIBS
= @SVN_APRUTIL_LIBS@
44 SVN_SERF_LIBS
= @SVN_SERF_LIBS@
45 SVN_SQLITE_LIBS
= @SVN_SQLITE_LIBS@
46 SVN_SASL_LIBS
= @SVN_SASL_LIBS@
47 SVN_ZLIB_LIBS
= @SVN_ZLIB_LIBS@
52 exec_prefix = @
exec_prefix@
54 fsmod_libdir
= @
libdir@
55 ramod_libdir
= @
libdir@
56 neon_libdir
= @
libdir@
58 serf_libdir
= @
libdir@
60 includedir = @
includedir@
64 localedir
= @localedir@
66 # where to install libsvn_swig_*
67 swig_py_libdir
= @
libdir@
68 swig_pl_libdir
= @
libdir@
69 swig_rb_libdir
= @
libdir@
71 ### these possibly need further discussion
72 swig_pydir
= @
libdir@
/svn-python
/libsvn
73 swig_pydir_extra
= @
libdir@
/svn-python
/svn
74 swig_pldir
= @
libdir@
/svn-perl
75 swig_rbdir
= $(SWIG_RB_SITE_ARCH_DIR
)/svn
/ext
76 contribdir
= @
bindir@
/svn-contrib
77 toolsdir
= @
bindir@
/svn-tools
79 javahl_javadir
= @
libdir@
/svn-javahl
80 javahl_javahdir
= @
libdir@
/svn-javahl
/include
81 javahl_libdir
= @
libdir@
82 javahl_test_rootdir
=$(abs_builddir
)/subversion
/bindings
/javahl
/test-work
85 MSGFMTFLAGS
= @MSGFMTFLAGS@
90 PACKAGE_NAME
=@PACKAGE_NAME@
91 PACKAGE_VERSION
=@PACKAGE_VERSION@
98 LIBTOOL
= @SVN_LIBTOOL@
99 LTFLAGS
= @SVN_LT_CCTAG@
--silent
100 LTCXXFLAGS
= @SVN_LT_CXXTAG@
--silent
101 LT_LDFLAGS
= @LT_LDFLAGS@
102 LT_NO_UNDEFINED
= @LT_NO_UNDEFINED@
103 LT_CXX_LIBADD
= @LT_CXX_LIBADD@
105 INCLUDES
= -I
$(top_srcdir
)/subversion
/include -I
$(top_builddir
)/subversion \
106 @SVN_NEON_INCLUDES@ \
107 @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ @SVN_SERF_INCLUDES@ \
108 @SVN_SASL_INCLUDES@ @SVN_ZLIB_INCLUDES@ @SVN_SQLITE_INCLUDES@
110 APACHE_INCLUDES
= @APACHE_INCLUDES@
111 APACHE_TARGET
= @APACHE_TARGET@
112 APACHE_LIBEXECDIR
= $(DESTDIR
)@APACHE_LIBEXECDIR@
113 APACHE_LDFLAGS
= @APACHE_LDFLAGS@
116 SWIG_PY_INCLUDES
= @SWIG_PY_INCLUDES@
-I
$(SWIG_SRC_DIR
)/python
/libsvn_swig_py
117 SWIG_PY_COMPILE
= @SWIG_PY_COMPILE@
118 SWIG_PY_LINK
= @SWIG_PY_LINK@
119 SWIG_PY_LIBS
= @SWIG_PY_LIBS@
120 SWIG_PL_INCLUDES
= @SWIG_PL_INCLUDES@
121 SWIG_RB_INCLUDES
= @SWIG_RB_INCLUDES@
-I
$(SWIG_SRC_DIR
)/ruby
/libsvn_swig_ruby
122 SWIG_RB_COMPILE
= @SWIG_RB_COMPILE@
123 SWIG_RB_LINK
= @SWIG_RB_LINK@
124 SWIG_RB_LIBS
= @SWIG_RB_LIBS@
125 SWIG_RB_SITE_LIB_DIR
= @SWIG_RB_SITE_LIB_DIR@
126 SWIG_RB_SITE_ARCH_DIR
= @SWIG_RB_SITE_ARCH_DIR@
127 SWIG_RB_TEST_VERBOSE
= @SWIG_RB_TEST_VERBOSE@
128 SWIG_RB_RI_DATADIR
= $(DESTDIR
)$(datadir)/ri
/$(RUBY_MAJOR
).
$(RUBY_MINOR
)/site
130 JAVAHL_INCLUDES
= @JNI_INCLUDES@
-I
$(abs_builddir
)/subversion
/bindings
/javahl
/include
132 SVN_APR_INCLUDES
= @SVN_APR_INCLUDES@
133 SVN_APR_PREFIX
= @SVN_APR_PREFIX@
134 SVN_APRUTIL_INCLUDES
= @SVN_APRUTIL_INCLUDES@
135 SVN_APRUTIL_PREFIX
= @SVN_APRUTIL_PREFIX@
137 SVN_SERF_INCLUDES
= @SVN_SERF_INCLUDES@
138 SVN_SERF_PREFIX
= @SVN_SERF_PREFIX@
140 SVN_ZLIB_PREFIX
= @SVN_ZLIB_PREFIX@
141 SVN_ZLIB_INCLUDES
= @SVN_ZLIB_INCLUDES@
145 # The EXTRA_ parameters can be used to pass extra flags at 'make' time.
146 CFLAGS
= @CFLAGS@
$(EXTRA_CFLAGS
)
147 CXXFLAGS
= @CXXFLAGS@
$(EXTRA_CXXFLAGS
)
148 ### A few of the CFLAGS (e.g. -Wmissing-prototypes, -Wstrict-prototypes,
149 ### -Wmissing-declarations) are not valid for C++, and should be somehow
150 ### suppressed (but they may come from httpd or APR).
151 CPPFLAGS
= @CPPFLAGS@
$(EXTRA_CPPFLAGS
)
152 LDFLAGS
= @LDFLAGS@
$(EXTRA_LDFLAGS
)
154 COMPILE
= $(CC
) $(CPPFLAGS
) $(CFLAGS
) $(INCLUDES
)
155 COMPILE_CXX
= $(CXX
) $(CPPFLAGS
) $(CXXFLAGS
) $(INCLUDES
)
156 LT_COMPILE
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(COMPILE
)
158 # special compilation for files destined for mod_dav_svn
159 COMPILE_APACHE_MOD
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(CC
) $(CPPFLAGS
) $(CFLAGS
) $(APACHE_INCLUDES
) $(INCLUDES
) -o
$@
-c
161 # special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c)
162 COMPILE_SWIG_PY
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_PY_COMPILE
) $(CPPFLAGS
) -DSWIGPYTHON
$(CFLAGS
) $(SWIG_PY_INCLUDES
) $(INCLUDES
) -o
$@
-c
163 COMPILE_SWIG_PL
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(CC
) $(CPPFLAGS
) $(CFLAGS
) $(SWIG_PL_INCLUDES
) $(INCLUDES
) -o
$@
-c
164 COMPILE_SWIG_RB
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_RB_COMPILE
) $(CPPFLAGS
) $(CFLAGS
) $(SWIG_RB_INCLUDES
) $(INCLUDES
) -o
$@
-c
166 # special compilation for files destined for javahl (i.e. C++)
167 COMPILE_JAVAHL_CXX
= $(LIBTOOL
) $(LTCXXFLAGS
) --mode
=compile
$(COMPILE_CXX
) $(JAVAHL_INCLUDES
) -o
$@
-c
168 COMPILE_JAVAHL_JAVAC
= $(JAVAC
) $(JAVAC_FLAGS
)
169 COMPILE_JAVAHL_JAVAH
= $(JAVAH
)
171 LINK
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(CC
) $(LT_LDFLAGS
) $(CFLAGS
) $(LDFLAGS
) -rpath
$(libdir)
173 # special link rule for mod_dav_svn
174 LINK_APACHE_MOD
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(CC
) $(LT_LDFLAGS
) $(CFLAGS
) $(LDFLAGS
) -rpath
$(APACHE_LIBEXECDIR
) -avoid-version
-module
$(APACHE_LDFLAGS
)
176 # Compilation of SWIG-generated C source code
177 COMPILE_PY_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_PY_COMPILE
) $(CPPFLAGS
) $(SWIG_PY_INCLUDES
) -prefer-pic
-c
-o
$@
178 COMPILE_RB_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_RB_COMPILE
) $(CPPFLAGS
) $(SWIG_RB_INCLUDES
) -prefer-pic
-c
-o
$@
180 # these commands link the wrapper objects into an extension library/module
181 LINK_PY_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(SWIG_PY_LINK
) $(SWIG_LDFLAGS
) -rpath
$(swig_pydir
) -avoid-version
-module
182 LINK_RB_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(SWIG_RB_LINK
) $(SWIG_LDFLAGS
) -rpath
$(swig_rbdir
) -avoid-version
-module
184 LINK_JAVAHL_CXX
= $(LIBTOOL
) $(LTCXXFLAGS
) --mode
=link
$(CXX
) $(LT_LDFLAGS
) $(CXXFLAGS
) $(LDFLAGS
) $(LT_CXX_LIBADD
) -rpath
$(libdir)
187 INSTALL_LIB
= $(LIBTOOL
) --mode
=install $(INSTALL
)
188 INSTALL_FSMOD_LIB
= $(INSTALL_LIB
)
189 INSTALL_RAMOD_LIB
= $(INSTALL_LIB
)
190 INSTALL_BDB_LIB
= $(INSTALL_LIB
)
191 INSTALL_NEON_LIB
= $(INSTALL_LIB
)
192 INSTALL_SERF_LIB
= $(INSTALL_LIB
)
193 INSTALL_BIN
= $(LIBTOOL
) --mode
=install $(INSTALL
)
194 INSTALL_CONTRIB
= $(LIBTOOL
) --mode
=install $(INSTALL
)
195 INSTALL_TOOLS
= $(LIBTOOL
) --mode
=install $(INSTALL
)
196 INSTALL_INCLUDE
= $(INSTALL
) -m
644
197 INSTALL_MOD_SHARED
= @APXS@
-i
-S LIBEXECDIR
="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
198 INSTALL_MOD_STATIC
= $(INSTALL
) -m
644
199 INSTALL_DATA
= $(INSTALL
) -m
644
200 INSTALL_LOCALE
= $(INSTALL_DATA
)
202 ### this isn't correct yet
203 INSTALL_SWIG_PY
= $(INSTALL_LIB
)
204 INSTALL_SWIG_PY_LIB
= $(INSTALL_LIB
)
205 INSTALL_SWIG_PL_LIB
= $(INSTALL_LIB
)
206 INSTALL_SWIG_RB
= $(INSTALL_LIB
)
207 INSTALL_SWIG_RB_LIB
= $(INSTALL_LIB
)
209 INSTALL_JAVAHL_LIB
= $(INSTALL_LIB
)
211 # additional installation rules for the SWIG wrappers
212 INSTALL_EXTRA_SWIG_PY
=\
213 $(MKDIR
) $(DESTDIR
)$(swig_pydir
); \
214 $(MKDIR
) $(DESTDIR
)$(swig_pydir_extra
); \
215 for i in
$(abs_srcdir
)/subversion
/bindings
/swig
/python
/svn
/*.py
; do \
216 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(swig_pydir_extra
); \
218 for i in
$(abs_srcdir
)/subversion
/bindings
/swig
/python
/*.py
; do \
219 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(swig_pydir
); \
221 if
test "$(abs_srcdir)" != "$(abs_builddir)"; then \
222 for i in
$(abs_builddir
)/subversion
/bindings
/swig
/python
/*.py
; do \
223 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(swig_pydir
); \
226 $(PYTHON
) -c
'import compileall; \
227 compileall.compile_dir("$(DESTDIR)$(swig_pydir)", 1, "$(swig_pydir)"); \
228 compileall.compile_dir("$(DESTDIR)$(swig_pydir_extra)", 1, \
229 "$(swig_pydir_extra)");'
231 # The path to generated and complementary source files for the SWIG
233 SWIG_PL_DIR
= $(abs_builddir
)/subversion
/bindings
/swig
/perl
234 SWIG_PY_DIR
= $(abs_builddir
)/subversion
/bindings
/swig
/python
235 SWIG_RB_DIR
= $(abs_builddir
)/subversion
/bindings
/swig
/ruby
237 # The path to the source files for the SWIG bindings
238 SWIG_PL_SRC_DIR
= $(abs_srcdir
)/subversion
/bindings
/swig
/perl
239 SWIG_PY_SRC_DIR
= $(abs_srcdir
)/subversion
/bindings
/swig
/python
240 SWIG_RB_SRC_DIR
= $(abs_srcdir
)/subversion
/bindings
/swig
/ruby
242 ### Automate JAR creation using Makefile generator's javahl-java.jar
243 ### property. Enhance generator to support JAR installation.
244 INSTALL_EXTRA_JAVAHL_JAVA
=\
245 $(JAR
) cf subversion
/bindings
/javahl
/svn-javahl.jar
-C subversion
/bindings
/javahl
/classes org
; \
246 $(INSTALL_DATA
) subversion
/bindings
/javahl
/svn-javahl.jar
$(DESTDIR
)$(javahl_javadir
);
248 INSTALL_EXTRA_JAVAHL_LIB
=@INSTALL_EXTRA_JAVAHL_LIB@
250 INSTALL_EXTRA_SWIG_RB
=\
251 @echo
$(MKDIR
) $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
252 $(MKDIR
) $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
253 for i in
$(abs_srcdir
)/subversion
/bindings
/swig
/ruby
/svn
/*.rb
; do \
254 echo
$(INSTALL_DATA
) "$$i" $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
255 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
267 JAVAC_FLAGS
= @JAVAC_FLAGS@
271 JAVA_CLASSPATH
=@JAVA_CLASSPATH@
272 javahl_java_CLASSPATH
=$(JAVA_CLASSPATH
)
273 javahl_tests_CLASSPATH
=$(JAVA_CLASSPATH
)
276 RUBY_MAJOR
= @RUBY_MAJOR@
277 RUBY_MINOR
= @RUBY_MINOR@
283 TESTS
= $(TEST_PROGRAMS
) @BDB_TEST_PROGRAMS@
285 all: external-all local-all
286 clean: external-clean local-clean
287 distclean: external-distclean local-distclean
288 extraclean
: external-extraclean local-extraclean
289 install: external-install local-install revision-install
293 local-all
: @BUILD_RULES@
296 cd
$(abs_srcdir
) && XGETTEXT
="$(XGETTEXT)" MSGMERGE
="$(MSGMERGE)" \
297 tools
/po
/po-update.sh pot
299 # "make locale-gnu-po-update" updates all translations.
300 # "make locale-gnu-po-update PO=ll" updates only the ll.po file.
301 locale-gnu-po-update
:
302 cd
$(abs_srcdir
) && XGETTEXT
="$(XGETTEXT)" MSGMERGE
="$(MSGMERGE)" \
303 tools
/po
/po-update.sh
$(PO
)
305 # clean everything but the bulky test output, returning the system back
306 # to before 'make' was run.
307 fast-clean
: doc-clean
308 @list
='$(BUILD_DIRS)'; for i in
$$list; do \
309 echo
"Cleaning $$i ..." ; \
310 (cd
$$i && rm -f
*.o
*.lo
*.la
*.la-a
*.spo
*.mo
&& \
314 find
$(abs_srcdir
) -name
"*.pyc" -exec
rm {} ';'
316 # clean all but bulky test output, returning to before './configure' was run.
317 SVN_CONFIG_SCRIPT_FILES
= @SVN_CONFIG_SCRIPT_FILES@
318 fast-distclean
: fast-clean
319 rm -f Makefile config.cache config.log config.status libtool \
320 subversion
/svn_private_config.h \
321 $(SVN_CONFIG_SCRIPT_FILES
)
323 # clean everything out, returning to before './autogen.sh' was run.
324 local-extraclean
: local-distclean extraclean-swig
325 rm -f
$(top_srcdir
)/build-outputs.mk \
326 $(top_srcdir
)/subversion
/svn_private_config.h.in \
327 $(top_srcdir
)/configure \
328 $(top_srcdir
)/build
/config.guess \
329 $(top_srcdir
)/build
/config.sub \
330 $(top_srcdir
)/build
/libtool.m4 \
331 $(top_srcdir
)/build
/ltmain.sh
333 # clean everything, including test output.
334 local-clean
: fast-clean check-clean clean-swig
336 # clean everything, including test output.
337 local-distclean
: fast-distclean check-clean
339 local-install
: @INSTALL_RULES@
341 ### HACK!! Find a better way to do this
343 subversion
/svnversion
/svnversion
$(top_srcdir
) /repos
/svn
/trunk
> $(DESTDIR
)$(includedir)/subversion-1
/svn-revision.txt
345 install-static
: @INSTALL_STATIC_RULES@
347 # JavaHL target aliases
348 javahl
: mkdir-init javahl-java javahl-javah javahl-lib @JAVAHL_TESTS_TARGET@
349 install-javahl
: install-javahl-java install-javahl-javah install-javahl-lib
352 rm -rf
$(javahl_java_PATH
) $(javahl_javah_PATH
) @JAVAHL_OBJDIR@
353 rm -fr
$(javahl_test_rootdir
)
354 rm -f
$(libsvnjavahl_PATH
)/*.la
355 rm -f
$(libsvnjavahl_PATH
)/*.lo
356 rm -f
$(libsvnjavahl_PATH
)/*.o
359 @if
[ -z
"@JAVAHL_TESTS_TARGET@" ]; then \
360 echo
"--with-junit flag must be passed to configure"; \
364 $(JAVA
) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path
=@JAVAHL_OBJDIR@
:$(libdir) -classpath
$(javahl_tests_PATH
):$(javahl_tests_CLASSPATH
) "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
366 # "make check CLEANUP=true" will clean up directories for successful tests.
367 # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
368 # will perform only basic tests (likewise for other tests).
369 check: $(TEST_DEPS
) @BDB_TEST_DEPS@
370 @if
test "$(PYTHON)" != "none"; then \
372 if
test "$(CLEANUP)" != ""; then \
373 flags
="--cleanup $$flags"; \
375 if
test "$(BASE_URL)" != ""; then \
376 flags
="--url $(BASE_URL) $$flags"; \
378 if
test "$(FS_TYPE)" != ""; then \
379 flags
="--fs-type $(FS_TYPE) $$flags"; \
381 if
test "$(HTTP_LIBRARY)" != ""; then \
382 flags
="--http-library $(HTTP_LIBRARY) $$flags"; \
384 if
test "$(SERVER_MINOR_VERSION)" != ""; then \
385 flags
="--server-minor-version $(SERVER_MINOR_VERSION) $$flags"; \
387 if
test "$(ENABLE_SASL)" != ""; then \
388 flags
="--enable-sasl $$flags"; \
390 if
test "$(PARALLEL)" != ""; then \
391 flags
="--parallel $$flags"; \
393 $(PYTHON
) $(top_srcdir
)/build
/run_tests.py
$$flags \
394 '$(abs_srcdir)' '$(abs_builddir)' $(TESTS
); \
396 echo
"make check: Python 2.2 or greater is required,"; \
397 echo
" but was not detected during configure"; \
401 # First, set up Apache as documented in
402 # subversion/tests/cmdline/README.
404 @
$(MAKE
) check BASE_URL
=http
://localhost
406 # Automatically configure and run Apache httpd on a random port, and then
409 @APXS
=$(APXS
) bash
$(top_srcdir
)/subversion
/tests
/cmdline
/davautocheck.sh
412 # subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/cmdline
414 @
$(MAKE
) check BASE_URL
=svn
://127.0.0.1
416 # 'make svnserveautocheck' runs svnserve for you and kills it.
417 svnserveautocheck
: svnserve
418 bash
$(top_srcdir
)/subversion
/tests
/cmdline
/svnserveautocheck.sh
421 # subversion/svnserve/svnserve --listen-host "::1" -d -r `pwd`/subversion/tests/cmdline
424 @
$(MAKE
) check BASE_URL
=svn
://\
[::1\
]
426 # First make sure you can ssh to localhost and that "svnserve" is in
427 # the path of the resulting shell.
430 BASE_URL
=svn
+ssh
://localhost
`pwd`/subversion
/tests
/cmdline
433 @
$(MAKE
) check FS_TYPE
=bdb
436 rm -rf subversion
/tests
/cmdline
/svn-test-work \
437 subversion
/tests
/libsvn_fs
/test-repo-
* \
438 subversion
/tests
/libsvn_fs_base
/test-repo-
* \
439 subversion
/tests
/libsvn_ra_local
/test-repo-
* \
440 subversion
/tests
/libsvn_repos
/test-repo-
* \
441 subversion
/tests
/libsvn_subr
/z \
442 subversion
/tests
/svnserveautocheck.pid \
446 @list
='$(BUILD_DIRS) $(SCHEMA_DIR) doc'; \
447 for i in
$$list; do \
448 if
[ ! -d
$$i ]; then \
449 echo
"$(MKDIR) $$i" ; \
454 # recursive targets to handle external projects (e.g. APR, Neon)
455 external-all external-install
:
456 @target
=`echo $@ | sed s/external-//`; \
457 list
='$(SVN_EXTERNAL_PROJECT_SUBDIRS)'; \
458 for i in
$$list; do \
459 echo
"------ making $$target in $$i"; \
460 (cd
$$i && $(MAKE
) $$target) || exit
1; \
461 echo
"------ completed $$target in $$i"; \
464 ### apr-util relies on generated files in apr, so reverse the
465 ### list so that it is cleaned before apr.
466 external-clean external-distclean
:
467 @target
=`echo $@ | sed s/external-//`; \
468 list
='$(SVN_EXTERNAL_PROJECT_SUBDIRS)'; \
469 for i in
$$list; do \
470 revlist
="$$i $$revlist"; \
472 for i in
$$revlist; do \
473 echo
"------ making $$target in $$i"; \
474 (cd
$$i && $(MAKE
) $$target) || exit
1; \
475 echo
"------ completed $$target in $$i"; \
478 ### temporary hack. Neon does not have an "extraclean" and neither does db
479 ### If we don't have extraclean -- do the next best thing.
481 @list
='$(SVN_EXTERNAL_PROJECT_SUBDIRS)'; \
482 for i in
$$list; do \
483 revlist
="$$i $$revlist"; \
485 for i in
$$revlist; do \
486 if
test "$$i" = "neon" ||
test "$$i" = "db/dist"; then \
487 echo
"------ making distclean(no extraclean) in $$i"; \
488 (cd
$$i && $(MAKE
) distclean) || exit
1; \
489 echo
"------ completed distclean(no extraclean) in $$i"; \
491 echo
"------ making extraclean in $$i"; \
492 (cd
$$i && $(MAKE
) extraclean
) || exit
1; \
493 echo
"------ completed extraclean in $$i"; \
498 # DOCUMENTATION RULES
500 # Every single document in every format.
501 doc
: doc-misc-docs doc-api doc-javahl
503 # Generate API documentation for the C libraries.
504 ### This could also generate POD for swig-perl, etc.
506 ( cd
$(top_srcdir
) && \
507 sed
"s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \
508 doc
/doxygen.conf | doxygen
- )
510 # Generate API documentation for the JavaHL package.
512 $(JAVADOC
) -d
$(top_srcdir
)/doc
/javadoc \
513 -sourcepath
$(top_srcdir
)/subversion
/bindings
/javahl
/src \
514 -link http
://java.sun.com
/javase
/6/docs
/api
/ \
515 org.tigris.subversion.javahl
517 # Build all types of a certain doc.
518 doc-misc-docs
: doc-misc-docs-html doc-misc-docs-pdf doc-misc-docs-ps
520 # Build all docs of a certain type.
521 doc-all-html
: doc-misc-docs-html
522 doc-all-pdf
: doc-misc-docs-pdf
523 doc-all-ps
: doc-misc-docs-ps
525 # Assumes you have {xsltproc, fop, stylesheets} installed.
527 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) all-html
529 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) pdf
531 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) ps
534 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) clean
535 rm -rf
$(top_srcdir
)/doc
/doxygen
536 rm -rf
$(top_srcdir
)/doc
/javadoc
538 # Converting from the .rnc XML shcemas to various other schema formats.
539 SCHEMAS_DTD
= $(SCHEMA_DIR
)/blame.dtd
$(SCHEMA_DIR
)/info.dtd \
540 $(SCHEMA_DIR
)/list.dtd
$(SCHEMA_DIR
)/log.dtd \
541 $(SCHEMA_DIR
)/status.dtd
$(SCHEMA_DIR
)/props.dtd
543 SCHEMAS_RNG
= $(SCHEMA_DIR
)/blame.rng
$(SCHEMA_DIR
)/info.rng \
544 $(SCHEMA_DIR
)/list.rng
$(SCHEMA_DIR
)/log.rng \
545 $(SCHEMA_DIR
)/status.rng
$(SCHEMA_DIR
)/props.rng
547 SCHEMAS_XSD
= $(SCHEMA_DIR
)/blame.xsd
$(SCHEMA_DIR
)/info.xsd \
548 $(SCHEMA_DIR
)/list.xsd
$(SCHEMA_DIR
)/log.xsd \
549 $(SCHEMA_DIR
)/status.xsd
$(SCHEMA_DIR
)/props.xsd
551 schema
: schema-rng schema-dtd schema-xsd
553 schema-rng
: $(SCHEMAS_RNG
)
554 schema-dtd
: $(SCHEMAS_DTD
)
555 schema-xsd
: $(SCHEMAS_XSD
)
557 $(SCHEMAS_RNG
) $(SCHEMAS_DTD
) $(SCHEMAS_XSD
): $(SCHEMA_DIR
)/common.rnc
560 (cd
$(SCHEMA_DIR
) && rm -f
*.rng
*.dtd
*.xsd
)
563 # Implicit rules for creating outputs from input files
566 .SUFFIXES
: .c .lo .o .la-a .la \
567 .po .spo .mo .rnc .rng .dtd .xsd
570 $(COMPILE
) -o
$@
-c
$<
573 $(LT_COMPILE
) -o
$@
-c
$<
576 sed
"/library_names/s/'.*'/''/" $< > $@
579 # Strip the Content-Type: header from the po file if we don't have a
580 # gettext that supports bind_textdomain_codeset, so it doesn't try
581 # to convert our UTF-8 .po files to the locale encoding.
582 @NO_GETTEXT_CODESET@.po.spo
:
583 @NO_GETTEXT_CODESET@ sed \
584 @NO_GETTEXT_CODESET@
'/^"Content-Type: text\/plain; charset=UTF-8\\n"$$/d' \
585 @NO_GETTEXT_CODESET@
$< > $@
587 @NO_GETTEXT_CODESET@.spo.mo
:
588 @NO_GETTEXT_CODESET@
$(MSGFMT
) $(MSGFMTFLAGS
) -o
$@
$<
590 # For systems with bind_textdomain_codeset, just leave the Content-Type:
592 @GETTEXT_CODESET@.po.mo
:
593 @GETTEXT_CODESET@
$(MSGFMT
) $(MSGFMTFLAGS
) -o
$@
$<
604 install-docs
: install-man
606 manroot
= $(mandir)/man
608 @list
='$(MANPAGES)'; \
609 for i in
$$list; do \
610 if
test -f
$(srcdir)/$$i; then file
=$(srcdir)/$$i; \
612 ext
=`echo $$i | sed -e 's/^.*\\.//'`; \
613 $(MKDIR
) $(DESTDIR
)$(manroot
)$$ext; \
614 inst
=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
615 inst
=`echo $$inst | sed -e 's/^.*\///'`; \
616 inst
=`echo $$inst`.
$$ext; \
617 echo
"$(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst"; \
618 $(INSTALL_DATA
) $$file $(DESTDIR
)$(manroot
)$$ext/$$inst; \
621 install-swig-py
: install-swig-py-lib
622 install-swig-rb
: install-swig-rb-lib
624 clean-swig
: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
625 extraclean-swig
: extraclean-swig-headers extraclean-swig-py \
626 extraclean-swig-rb extraclean-swig-pl
628 EXTRACLEAN_SWIG_HEADERS
=rm -f
$(SWIG_SRC_DIR
)/proxy
/*.swg
631 if
test -z
"$(RELEASE_MODE)"; then \
632 $(EXTRACLEAN_SWIG_HEADERS
); \
635 extraclean-swig-headers
: clean-swig-headers
636 $(EXTRACLEAN_SWIG_HEADERS
)
638 $(SWIG_PL_DIR
)/native
/Makefile.PL
: $(SWIG_SRC_DIR
)/perl
/native
/Makefile.PL.in
639 .
/config.status subversion
/bindings
/swig
/perl
/native
/Makefile.PL
641 $(SWIG_PL_DIR
)/native
/Makefile
: $(SWIG_PL_DIR
)/native
/Makefile.PL
642 cd
$(SWIG_PL_DIR
)/native
; $(PERL
) Makefile.PL
644 swig-pl_DEPS
= autogen-swig-pl libsvn_client libsvn_delta libsvn_diff \
645 libsvn_fs libsvn_ra libsvn_repos libsvn_subr libsvn_wc libsvn_swig_perl \
646 $(SWIG_PL_DIR
)/native
/Makefile
647 swig-pl
: $(swig-pl_DEPS
)
648 if
test "$(SWIG_PL_DIR)" != "$(SWIG_PL_SRC_DIR)"; then \
649 ln
-sf
$(SWIG_PL_SRC_DIR
)/native
/*.c
$(SWIG_PL_DIR
)/native
; \
651 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
)
653 check-swig-pl
: swig-pl swig-pl-lib
654 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
) test
656 install-swig-pl
: swig-pl install-swig-pl-lib
657 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
) install
659 EXTRACLEAN_SWIG_PL
=rm -f
$(SWIG_PL_SRC_DIR
)/native
/svn_
*.c \
660 $(SWIG_PL_SRC_DIR
)/native
/core.c
662 # Running Makefile.PL at this point *fails* (cannot find ..../.libs) so if the
663 # Makefile does not exist, DO NOT try to make it. But, if it doesn't exist,
664 # then the directory is probably clean anyway.
666 if
test -z
"$(RELEASE_MODE)"; then \
667 $(EXTRACLEAN_SWIG_PL
); \
669 for d in
$(SWIG_PL_DIR
)/libsvn_swig_perl
; \
672 rm -rf
*.lo
*.la
*.o .libs
; \
674 if
[ -f
"$(SWIG_PL_DIR)/native/Makefile" ]; then \
675 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
) clean; \
678 extraclean-swig-pl
: clean-swig-pl
679 $(EXTRACLEAN_SWIG_PL
)
681 $(SWIG_PY_DIR
)/libsvn
:
682 mkdir
$(SWIG_PY_DIR
)/libsvn
684 copy-swig-py
: autogen-swig-py
$(SWIG_PY_DIR
)/libsvn
685 @cp
-pf
$(SWIG_PY_SRC_DIR
)/*.py
$(SWIG_PY_DIR
)/libsvn
687 swig-py
: autogen-swig-py copy-swig-py
689 check-swig-py
: swig-py
691 $(PYTHON
) $(SWIG_PY_SRC_DIR
)/tests
/run_all.py
693 EXTRACLEAN_SWIG_PY
=rm -rf
$(SWIG_PY_SRC_DIR
)/svn_
*.c
$(SWIG_PY_SRC_DIR
)/core.c \
694 $(SWIG_PY_SRC_DIR
)/[a-z
]*.py
696 rm -rf
$(SWIG_PY_DIR
)/libsvn
697 if
test -z
"$(RELEASE_MODE)"; then \
698 $(EXTRACLEAN_SWIG_PY
); \
700 for d in
$(SWIG_PY_DIR
) $(SWIG_PY_DIR
)/libsvn_swig_py
; \
702 cd
$$d && rm -rf
*.lo
*.la
*.o
*.pyc .libs
; \
704 find
$(SWIG_PY_SRC_DIR
) $(SWIG_PY_DIR
) -name
"*.pyc" -exec
rm {} ';'
706 extraclean-swig-py
: clean-swig-py
707 $(EXTRACLEAN_SWIG_PY
)
709 swig-rb
: autogen-swig-rb
711 check-swig-rb
: swig-rb svnserve
713 $(RUBY
) -I
$(SWIG_RB_SRC_DIR
) \
714 $(SWIG_RB_SRC_DIR
)/test/run-test.rb \
715 --verbose
=$(SWIG_RB_TEST_VERBOSE
)
717 EXTRACLEAN_SWIG_RB
=rm -f
$(SWIG_RB_SRC_DIR
)/svn_
*.c
$(SWIG_RB_SRC_DIR
)/core.c
720 rm -rf
$(SWIG_RB_DIR
)/test/repos
$(SWIG_RB_DIR
)/test/wc
721 if
test -z
"$(RELEASE_MODE)"; then \
722 $(EXTRACLEAN_SWIG_RB
); \
724 for d in
$(SWIG_RB_DIR
) $(SWIG_RB_DIR
)/libsvn_swig_ruby
; \
727 rm -rf
*.lo
*.la
*.o .libs
; \
730 extraclean-swig-rb
: clean-swig-rb
731 $(EXTRACLEAN_SWIG_RB
)
734 $(RDOC
) --all --ri
--op
"$(SWIG_RB_RI_DATADIR)" "$(SWIG_RB_SRC_DIR)/svn"