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_SASL_LIBS
= @SVN_SASL_LIBS@
46 SVN_ZLIB_LIBS
= @SVN_ZLIB_LIBS@
51 exec_prefix = @
exec_prefix@
53 fsmod_libdir
= @
libdir@
54 ramod_libdir
= @
libdir@
55 neon_libdir
= @
libdir@
57 serf_libdir
= @
libdir@
59 includedir = @
includedir@
63 localedir
= @localedir@
65 # where to install libsvn_swig_*
66 swig_py_libdir
= @
libdir@
67 swig_pl_libdir
= @
libdir@
68 swig_rb_libdir
= @
libdir@
70 ### these possibly need further discussion
71 swig_pydir
= @
libdir@
/svn-python
/libsvn
72 swig_pydir_extra
= @
libdir@
/svn-python
/svn
73 swig_pldir
= @
libdir@
/svn-perl
74 swig_rbdir
= $(SWIG_RB_SITE_ARCH_DIR
)/svn
/ext
75 contribdir
= @
bindir@
/svn-contrib
76 toolsdir
= @
bindir@
/svn-tools
78 javahl_javadir
= @
libdir@
/svn-javahl
79 javahl_javahdir
= @
libdir@
/svn-javahl
/include
80 javahl_libdir
= @
libdir@
81 javahl_test_rootdir
=$(abs_builddir
)/subversion
/bindings
/javahl
/test-work
84 MSGFMTFLAGS
= @MSGFMTFLAGS@
89 PACKAGE_NAME
=@PACKAGE_NAME@
90 PACKAGE_VERSION
=@PACKAGE_VERSION@
97 LIBTOOL
= @SVN_LIBTOOL@
98 LTFLAGS
= --tag
=CC
--silent
99 LTCXXFLAGS
= --tag
=CXX
--silent
100 LT_LDFLAGS
= @LT_LDFLAGS@
101 LT_NO_UNDEFINED
= @LT_NO_UNDEFINED@
102 LT_CXX_LIBADD
= @LT_CXX_LIBADD@
104 INCLUDES
= -I
$(top_srcdir
)/subversion
/include -I
$(top_builddir
)/subversion \
105 @SVN_NEON_INCLUDES@ \
106 @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ @SVN_SERF_INCLUDES@ \
107 @SVN_SASL_INCLUDES@ @SVN_ZLIB_INCLUDES@
109 APACHE_INCLUDES
= @APACHE_INCLUDES@
110 APACHE_TARGET
= @APACHE_TARGET@
111 APACHE_LIBEXECDIR
= $(DESTDIR
)@APACHE_LIBEXECDIR@
112 APACHE_LDFLAGS
= @APACHE_LDFLAGS@
115 SWIG_PY_INCLUDES
= @SWIG_PY_INCLUDES@
-I
$(SWIG_SRC_DIR
)/python
/libsvn_swig_py
116 SWIG_PY_COMPILE
= @SWIG_PY_COMPILE@
117 SWIG_PY_LINK
= @SWIG_PY_LINK@
118 SWIG_PY_LIBS
= @SWIG_PY_LIBS@
119 SWIG_PL_INCLUDES
= @SWIG_PL_INCLUDES@
120 SWIG_RB_INCLUDES
= @SWIG_RB_INCLUDES@
-I
$(SWIG_SRC_DIR
)/ruby
/libsvn_swig_ruby
121 SWIG_RB_COMPILE
= @SWIG_RB_COMPILE@
122 SWIG_RB_LINK
= @SWIG_RB_LINK@
123 SWIG_RB_LIBS
= @SWIG_RB_LIBS@
124 SWIG_RB_SITE_LIB_DIR
= @SWIG_RB_SITE_LIB_DIR@
125 SWIG_RB_SITE_ARCH_DIR
= @SWIG_RB_SITE_ARCH_DIR@
126 SWIG_RB_TEST_VERBOSE
= @SWIG_RB_TEST_VERBOSE@
127 SWIG_RB_RI_DATADIR
= $(DESTDIR
)$(datadir)/ri
/$(RUBY_MAJOR
).
$(RUBY_MINOR
)/site
129 JAVAHL_INCLUDES
= @JNI_INCLUDES@
-I
$(abs_builddir
)/subversion
/bindings
/javahl
/include
131 SVN_APR_INCLUDES
= @SVN_APR_INCLUDES@
132 SVN_APR_PREFIX
= @SVN_APR_PREFIX@
133 SVN_APRUTIL_INCLUDES
= @SVN_APRUTIL_INCLUDES@
134 SVN_APRUTIL_PREFIX
= @SVN_APRUTIL_PREFIX@
136 SVN_SERF_INCLUDES
= @SVN_SERF_INCLUDES@
137 SVN_SERF_PREFIX
= @SVN_SERF_PREFIX@
139 SVN_ZLIB_PREFIX
= @SVN_ZLIB_PREFIX@
140 SVN_ZLIB_INCLUDES
= @SVN_ZLIB_INCLUDES@
144 # The EXTRA_ parameters can be used to pass extra flags at 'make' time.
145 CFLAGS
= @CFLAGS@
$(EXTRA_CFLAGS
)
146 CXXFLAGS
= @CXXFLAGS@
$(EXTRA_CXXFLAGS
)
147 ### A few of the CFLAGS (e.g. -Wmissing-prototypes, -Wstrict-prototypes,
148 ### -Wmissing-declarations) are not valid for C++, and should be somehow
149 ### suppressed (but they may come from httpd or APR).
150 CPPFLAGS
= @CPPFLAGS@
$(EXTRA_CPPFLAGS
)
151 LDFLAGS
= @LDFLAGS@
$(EXTRA_LDFLAGS
)
153 COMPILE
= $(CC
) $(CPPFLAGS
) $(CFLAGS
) $(INCLUDES
)
154 COMPILE_CXX
= $(CXX
) $(CPPFLAGS
) $(CXXFLAGS
) $(INCLUDES
)
155 LT_COMPILE
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(COMPILE
)
157 # special compilation for files destined for mod_dav_svn
158 COMPILE_APACHE_MOD
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(CC
) $(CPPFLAGS
) $(CFLAGS
) $(APACHE_INCLUDES
) $(INCLUDES
) -o
$@
-c
160 # special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c)
161 COMPILE_SWIG_PY
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_PY_COMPILE
) $(CPPFLAGS
) -DSWIGPYTHON
$(CFLAGS
) $(SWIG_PY_INCLUDES
) $(INCLUDES
) -o
$@
-c
162 COMPILE_SWIG_PL
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(CC
) $(CPPFLAGS
) $(CFLAGS
) $(SWIG_PL_INCLUDES
) $(INCLUDES
) -o
$@
-c
163 COMPILE_SWIG_RB
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_RB_COMPILE
) $(CPPFLAGS
) $(CFLAGS
) $(SWIG_RB_INCLUDES
) $(INCLUDES
) -o
$@
-c
165 # special compilation for files destined for javahl (i.e. C++)
166 COMPILE_JAVAHL_CXX
= $(LIBTOOL
) $(LTCXXFLAGS
) --mode
=compile
$(COMPILE_CXX
) $(JAVAHL_INCLUDES
) -o
$@
-c
167 COMPILE_JAVAHL_JAVAC
= $(JAVAC
) $(JAVAC_FLAGS
)
168 COMPILE_JAVAHL_JAVAH
= $(JAVAH
)
170 LINK
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(CC
) $(LT_LDFLAGS
) $(CFLAGS
) $(LDFLAGS
) -rpath
$(libdir)
172 # special link rule for mod_dav_svn
173 LINK_APACHE_MOD
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(CC
) $(LT_LDFLAGS
) $(CFLAGS
) $(LDFLAGS
) -rpath
$(APACHE_LIBEXECDIR
) -avoid-version
-module
$(APACHE_LDFLAGS
)
175 # Compilation of SWIG-generated C source code
176 COMPILE_PY_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_PY_COMPILE
) $(CPPFLAGS
) $(SWIG_PY_INCLUDES
) -prefer-pic
-c
-o
$@
177 COMPILE_RB_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=compile
$(SWIG_RB_COMPILE
) $(CPPFLAGS
) $(SWIG_RB_INCLUDES
) -prefer-pic
-c
-o
$@
179 # these commands link the wrapper objects into an extension library/module
180 LINK_PY_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(SWIG_PY_LINK
) $(SWIG_LDFLAGS
) -rpath
$(swig_pydir
) -avoid-version
-module
181 LINK_RB_WRAPPER
= $(LIBTOOL
) $(LTFLAGS
) --mode
=link
$(SWIG_RB_LINK
) $(SWIG_LDFLAGS
) -rpath
$(swig_rbdir
) -avoid-version
-module
183 LINK_JAVAHL_CXX
= $(LIBTOOL
) $(LTCXXFLAGS
) --mode
=link
$(CXX
) $(LT_LDFLAGS
) $(CXXFLAGS
) $(LDFLAGS
) $(LT_CXX_LIBADD
) -rpath
$(libdir)
186 INSTALL_LIB
= $(LIBTOOL
) --mode
=install $(INSTALL
)
187 INSTALL_FSMOD_LIB
= $(INSTALL_LIB
)
188 INSTALL_RAMOD_LIB
= $(INSTALL_LIB
)
189 INSTALL_BDB_LIB
= $(INSTALL_LIB
)
190 INSTALL_NEON_LIB
= $(INSTALL_LIB
)
191 INSTALL_SERF_LIB
= $(INSTALL_LIB
)
192 INSTALL_BIN
= $(LIBTOOL
) --mode
=install $(INSTALL
)
193 INSTALL_CONTRIB
= $(LIBTOOL
) --mode
=install $(INSTALL
)
194 INSTALL_TOOLS
= $(LIBTOOL
) --mode
=install $(INSTALL
)
195 INSTALL_INCLUDE
= $(INSTALL
) -m
644
196 INSTALL_MOD_SHARED
= @APXS@
-i
-S LIBEXECDIR
="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
197 INSTALL_MOD_STATIC
= $(INSTALL
) -m
644
198 INSTALL_DATA
= $(INSTALL
) -m
644
199 INSTALL_LOCALE
= $(INSTALL_DATA
)
201 ### this isn't correct yet
202 INSTALL_SWIG_PY
= $(INSTALL_LIB
)
203 INSTALL_SWIG_PY_LIB
= $(INSTALL_LIB
)
204 INSTALL_SWIG_PL_LIB
= $(INSTALL_LIB
)
205 INSTALL_SWIG_RB
= $(INSTALL_LIB
)
206 INSTALL_SWIG_RB_LIB
= $(INSTALL_LIB
)
208 INSTALL_JAVAHL_LIB
= $(INSTALL_LIB
)
210 # additional installation rules for the SWIG wrappers
211 INSTALL_EXTRA_SWIG_PY
=\
212 $(MKDIR
) $(DESTDIR
)$(swig_pydir
); \
213 $(MKDIR
) $(DESTDIR
)$(swig_pydir_extra
); \
214 for i in
$(abs_srcdir
)/subversion
/bindings
/swig
/python
/svn
/*.py
; do \
215 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(swig_pydir_extra
); \
217 for i in
$(abs_srcdir
)/subversion
/bindings
/swig
/python
/*.py
; do \
218 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(swig_pydir
); \
220 if
test "$(abs_srcdir)" != "$(abs_builddir)"; then \
221 for i in
$(abs_builddir
)/subversion
/bindings
/swig
/python
/*.py
; do \
222 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(swig_pydir
); \
225 $(PYTHON
) -c
'import compileall; \
226 compileall.compile_dir("$(DESTDIR)$(swig_pydir)", 1, "$(swig_pydir)"); \
227 compileall.compile_dir("$(DESTDIR)$(swig_pydir_extra)", 1, \
228 "$(swig_pydir_extra)");'
230 # The path to generated and complementary source files for the SWIG
232 SWIG_PL_DIR
= $(abs_builddir
)/subversion
/bindings
/swig
/perl
233 SWIG_PY_DIR
= $(abs_builddir
)/subversion
/bindings
/swig
/python
234 SWIG_RB_DIR
= $(abs_builddir
)/subversion
/bindings
/swig
/ruby
236 # The path to the source files for the SWIG bindings
237 SWIG_PL_SRC_DIR
= $(abs_srcdir
)/subversion
/bindings
/swig
/perl
238 SWIG_PY_SRC_DIR
= $(abs_srcdir
)/subversion
/bindings
/swig
/python
239 SWIG_RB_SRC_DIR
= $(abs_srcdir
)/subversion
/bindings
/swig
/ruby
241 ### Automate JAR creation using Makefile generator's javahl-java.jar
242 ### property. Enhance generator to support JAR installation.
243 INSTALL_EXTRA_JAVAHL_JAVA
=\
244 $(JAR
) cf subversion
/bindings
/javahl
/svn-javahl.jar
-C subversion
/bindings
/javahl
/classes org
; \
245 $(INSTALL_DATA
) subversion
/bindings
/javahl
/svn-javahl.jar
$(DESTDIR
)$(javahl_javadir
);
247 INSTALL_EXTRA_JAVAHL_LIB
=@INSTALL_EXTRA_JAVAHL_LIB@
249 INSTALL_EXTRA_SWIG_RB
=\
250 @echo
$(MKDIR
) $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
251 $(MKDIR
) $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
252 for i in
$(abs_srcdir
)/subversion
/bindings
/swig
/ruby
/svn
/*.rb
; do \
253 echo
$(INSTALL_DATA
) "$$i" $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
254 $(INSTALL_DATA
) "$$i" $(DESTDIR
)$(SWIG_RB_SITE_LIB_DIR
)/svn
; \
266 JAVAC_FLAGS
= @JAVAC_FLAGS@
270 JAVA_CLASSPATH
=@JAVA_CLASSPATH@
271 javahl_java_CLASSPATH
=$(JAVA_CLASSPATH
)
272 javahl_tests_CLASSPATH
=$(JAVA_CLASSPATH
)
275 RUBY_MAJOR
= @RUBY_MAJOR@
276 RUBY_MINOR
= @RUBY_MINOR@
282 TESTS
= $(TEST_PROGRAMS
) @BDB_TEST_PROGRAMS@
284 all: external-all local-all
285 clean: external-clean local-clean
286 distclean: external-distclean local-distclean
287 extraclean
: external-extraclean local-extraclean
288 install: external-install local-install revision-install
292 local-all
: @BUILD_RULES@
295 cd
$(abs_srcdir
) && XGETTEXT
="$(XGETTEXT)" MSGMERGE
="$(MSGMERGE)" \
296 tools
/po
/po-update.sh pot
298 # "make locale-gnu-po-update" updates all translations.
299 # "make locale-gnu-po-update PO=ll" updates only the ll.po file.
300 locale-gnu-po-update
:
301 cd
$(abs_srcdir
) && XGETTEXT
="$(XGETTEXT)" MSGMERGE
="$(MSGMERGE)" \
302 tools
/po
/po-update.sh
$(PO
)
304 # clean everything but the bulky test output, returning the system back
305 # to before 'make' was run.
306 fast-clean
: doc-clean
307 @list
='$(BUILD_DIRS)'; for i in
$$list; do \
308 echo
"Cleaning $$i ..." ; \
309 (cd
$$i && rm -f
*.o
*.lo
*.la
*.la-a
*.spo
*.mo
&& \
313 find
$(abs_srcdir
) -name
"*.pyc" -exec
rm {} ';'
315 # clean all but bulky test output, returning to before './configure' was run.
316 SVN_CONFIG_SCRIPT_FILES
= @SVN_CONFIG_SCRIPT_FILES@
317 fast-distclean
: fast-clean
318 rm -f Makefile config.cache config.log config.status libtool \
319 subversion
/svn_private_config.h \
320 $(SVN_CONFIG_SCRIPT_FILES
)
322 # clean everything out, returning to before './autogen.sh' was run.
323 local-extraclean
: local-distclean extraclean-swig
324 rm -f
$(top_srcdir
)/build-outputs.mk \
325 $(top_srcdir
)/subversion
/svn_private_config.h.in \
326 $(top_srcdir
)/configure \
327 $(top_srcdir
)/build
/config.guess \
328 $(top_srcdir
)/build
/config.sub \
329 $(top_srcdir
)/build
/libtool.m4 \
330 $(top_srcdir
)/build
/ltoptions.m4 \
331 $(top_srcdir
)/build
/ltsugar.m4 \
332 $(top_srcdir
)/build
/ltversion.m4 \
333 $(top_srcdir
)/build
/lt~obsolete.m4 \
334 $(top_srcdir
)/build
/ltmain.sh
336 # clean everything, including test output.
337 local-clean
: fast-clean check-clean clean-swig
339 # clean everything, including test output.
340 local-distclean
: fast-distclean check-clean
342 local-install
: @INSTALL_RULES@
344 ### HACK!! Find a better way to do this
346 subversion
/svnversion
/svnversion
$(top_srcdir
) /repos
/svn
/trunk
> $(DESTDIR
)$(includedir)/subversion-1
/svn-revision.txt
348 install-static
: @INSTALL_STATIC_RULES@
350 # JavaHL target aliases
351 javahl
: mkdir-init javahl-java javahl-javah javahl-lib @JAVAHL_TESTS_TARGET@
352 install-javahl
: install-javahl-java install-javahl-javah install-javahl-lib
355 rm -rf
$(javahl_java_PATH
) $(javahl_javah_PATH
) @JAVAHL_OBJDIR@
356 rm -fr
$(javahl_test_rootdir
)
357 rm -f
$(libsvnjavahl_PATH
)/*.la
358 rm -f
$(libsvnjavahl_PATH
)/*.lo
359 rm -f
$(libsvnjavahl_PATH
)/*.o
362 @if
[ -z
"@JAVAHL_TESTS_TARGET@" ]; then \
363 echo
"--with-junit flag must be passed to configure"; \
367 $(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
369 # "make check CLEANUP=true" will clean up directories for successful tests.
370 # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
371 # will perform only basic tests (likewise for other tests).
372 check: $(TEST_DEPS
) @BDB_TEST_DEPS@
373 @if
test "$(PYTHON)" != "none"; then \
375 if
test "$(CLEANUP)" != ""; then \
376 flags
="--cleanup $$flags"; \
378 if
test "$(BASE_URL)" != ""; then \
379 flags
="--url $(BASE_URL) $$flags"; \
381 if
test "$(FS_TYPE)" != ""; then \
382 flags
="--fs-type $(FS_TYPE) $$flags"; \
384 if
test "$(HTTP_LIBRARY)" != ""; then \
385 flags
="--http-library $(HTTP_LIBRARY) $$flags"; \
387 if
test "$(SERVER_MINOR_VERSION)" != ""; then \
388 flags
="--server-minor-version $(SERVER_MINOR_VERSION) $$flags"; \
390 if
test "$(ENABLE_SASL)" != ""; then \
391 flags
="--enable-sasl $$flags"; \
393 if
test "$(PARALLEL)" != ""; then \
394 flags
="--parallel $$flags"; \
396 $(PYTHON
) $(top_srcdir
)/build
/run_tests.py
$$flags \
397 '$(abs_srcdir)' '$(abs_builddir)' $(TESTS
); \
399 echo
"make check: Python 2.2 or greater is required,"; \
400 echo
" but was not detected during configure"; \
404 # First, set up Apache as documented in
405 # subversion/tests/cmdline/README.
407 @
$(MAKE
) check BASE_URL
=http
://localhost
409 # Automatically configure and run Apache httpd on a random port, and then
412 @APXS
=$(APXS
) bash
$(top_srcdir
)/subversion
/tests
/cmdline
/davautocheck.sh
415 # subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/cmdline
417 @
$(MAKE
) check BASE_URL
=svn
://127.0.0.1
419 # 'make svnserveautocheck' runs svnserve for you and kills it.
420 svnserveautocheck
: svnserve
421 bash
$(top_srcdir
)/subversion
/tests
/cmdline
/svnserveautocheck.sh
424 # subversion/svnserve/svnserve --listen-host "::1" -d -r `pwd`/subversion/tests/cmdline
427 @
$(MAKE
) check BASE_URL
=svn
://\
[::1\
]
429 # First make sure you can ssh to localhost and that "svnserve" is in
430 # the path of the resulting shell.
433 BASE_URL
=svn
+ssh
://localhost
`pwd`/subversion
/tests
/cmdline
436 @
$(MAKE
) check FS_TYPE
=bdb
439 rm -rf subversion
/tests
/cmdline
/svn-test-work \
440 subversion
/tests
/libsvn_fs
/test-repo-
* \
441 subversion
/tests
/libsvn_fs_base
/test-repo-
* \
442 subversion
/tests
/libsvn_ra_local
/test-repo-
* \
443 subversion
/tests
/libsvn_repos
/test-repo-
* \
444 subversion
/tests
/libsvn_subr
/z \
445 subversion
/tests
/svnserveautocheck.pid \
449 @list
='$(BUILD_DIRS) $(SCHEMA_DIR) doc'; \
450 for i in
$$list; do \
451 if
[ ! -d
$$i ]; then \
452 echo
"$(MKDIR) $$i" ; \
457 # recursive targets to handle external projects (e.g. APR, Neon)
458 external-all external-install
:
459 @target
=`echo $@ | sed s/external-//`; \
460 list
='$(SVN_EXTERNAL_PROJECT_SUBDIRS)'; \
461 for i in
$$list; do \
462 echo
"------ making $$target in $$i"; \
463 (cd
$$i && $(MAKE
) $$target) || exit
1; \
464 echo
"------ completed $$target in $$i"; \
467 ### apr-util relies on generated files in apr, so reverse the
468 ### list so that it is cleaned before apr.
469 external-clean external-distclean
:
470 @target
=`echo $@ | sed s/external-//`; \
471 list
='$(SVN_EXTERNAL_PROJECT_SUBDIRS)'; \
472 for i in
$$list; do \
473 revlist
="$$i $$revlist"; \
475 for i in
$$revlist; do \
476 echo
"------ making $$target in $$i"; \
477 (cd
$$i && $(MAKE
) $$target) || exit
1; \
478 echo
"------ completed $$target in $$i"; \
481 ### temporary hack. Neon does not have an "extraclean" and neither does db
482 ### If we don't have extraclean -- do the next best thing.
484 @list
='$(SVN_EXTERNAL_PROJECT_SUBDIRS)'; \
485 for i in
$$list; do \
486 revlist
="$$i $$revlist"; \
488 for i in
$$revlist; do \
489 if
test "$$i" = "neon" ||
test "$$i" = "db/dist"; then \
490 echo
"------ making distclean(no extraclean) in $$i"; \
491 (cd
$$i && $(MAKE
) distclean) || exit
1; \
492 echo
"------ completed distclean(no extraclean) in $$i"; \
494 echo
"------ making extraclean in $$i"; \
495 (cd
$$i && $(MAKE
) extraclean
) || exit
1; \
496 echo
"------ completed extraclean in $$i"; \
501 # DOCUMENTATION RULES
503 # Every single document in every format.
504 doc
: doc-misc-docs doc-api doc-javahl
506 # Generate API documentation for the C libraries.
507 ### This could also generate POD for swig-perl, etc.
509 ( cd
$(top_srcdir
) && \
510 sed
"s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \
511 doc
/doxygen.conf | doxygen
- )
513 # Generate API documentation for the JavaHL package.
515 $(JAVADOC
) -d
$(top_srcdir
)/doc
/javadoc \
516 -sourcepath
$(top_srcdir
)/subversion
/bindings
/javahl
/src \
517 -link http
://java.sun.com
/javase
/6/docs
/api
/ \
518 org.tigris.subversion.javahl
520 # Build all types of a certain doc.
521 doc-misc-docs
: doc-misc-docs-html doc-misc-docs-pdf doc-misc-docs-ps
523 # Build all docs of a certain type.
524 doc-all-html
: doc-misc-docs-html
525 doc-all-pdf
: doc-misc-docs-pdf
526 doc-all-ps
: doc-misc-docs-ps
528 # Assumes you have {xsltproc, fop, stylesheets} installed.
530 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) all-html
532 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) pdf
534 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) ps
537 cd
$(top_srcdir
)/doc
/misc-docs
&& $(MAKE
) clean
538 rm -rf
$(top_srcdir
)/doc
/doxygen
539 rm -rf
$(top_srcdir
)/doc
/javadoc
541 # Converting from the .rnc XML shcemas to various other schema formats.
542 SCHEMAS_DTD
= $(SCHEMA_DIR
)/blame.dtd
$(SCHEMA_DIR
)/info.dtd \
543 $(SCHEMA_DIR
)/list.dtd
$(SCHEMA_DIR
)/log.dtd \
544 $(SCHEMA_DIR
)/status.dtd
$(SCHEMA_DIR
)/props.dtd
546 SCHEMAS_RNG
= $(SCHEMA_DIR
)/blame.rng
$(SCHEMA_DIR
)/info.rng \
547 $(SCHEMA_DIR
)/list.rng
$(SCHEMA_DIR
)/log.rng \
548 $(SCHEMA_DIR
)/status.rng
$(SCHEMA_DIR
)/props.rng
550 SCHEMAS_XSD
= $(SCHEMA_DIR
)/blame.xsd
$(SCHEMA_DIR
)/info.xsd \
551 $(SCHEMA_DIR
)/list.xsd
$(SCHEMA_DIR
)/log.xsd \
552 $(SCHEMA_DIR
)/status.xsd
$(SCHEMA_DIR
)/props.xsd
554 schema
: schema-rng schema-dtd schema-xsd
556 schema-rng
: $(SCHEMAS_RNG
)
557 schema-dtd
: $(SCHEMAS_DTD
)
558 schema-xsd
: $(SCHEMAS_XSD
)
560 $(SCHEMAS_RNG
) $(SCHEMAS_DTD
) $(SCHEMAS_XSD
): $(SCHEMA_DIR
)/common.rnc
563 (cd
$(SCHEMA_DIR
) && rm -f
*.rng
*.dtd
*.xsd
)
566 # Implicit rules for creating outputs from input files
569 .SUFFIXES
: .c .lo .o .la-a .la \
570 .po .spo .mo .rnc .rng .dtd .xsd
573 $(COMPILE
) -o
$@
-c
$<
576 $(LT_COMPILE
) -o
$@
-c
$<
579 sed
"/library_names/s/'.*'/''/" $< > $@
582 # Strip the Content-Type: header from the po file if we don't have a
583 # gettext that supports bind_textdomain_codeset, so it doesn't try
584 # to convert our UTF-8 .po files to the locale encoding.
585 @NO_GETTEXT_CODESET@.po.spo
:
586 @NO_GETTEXT_CODESET@ sed \
587 @NO_GETTEXT_CODESET@
'/^"Content-Type: text\/plain; charset=UTF-8\\n"$$/d' \
588 @NO_GETTEXT_CODESET@
$< > $@
590 @NO_GETTEXT_CODESET@.spo.mo
:
591 @NO_GETTEXT_CODESET@
$(MSGFMT
) $(MSGFMTFLAGS
) -o
$@
$<
593 # For systems with bind_textdomain_codeset, just leave the Content-Type:
595 @GETTEXT_CODESET@.po.mo
:
596 @GETTEXT_CODESET@
$(MSGFMT
) $(MSGFMTFLAGS
) -o
$@
$<
607 install-docs
: install-man
609 manroot
= $(mandir)/man
611 @list
='$(MANPAGES)'; \
612 for i in
$$list; do \
613 if
test -f
$(srcdir)/$$i; then file
=$(srcdir)/$$i; \
615 ext
=`echo $$i | sed -e 's/^.*\\.//'`; \
616 $(MKDIR
) $(DESTDIR
)$(manroot
)$$ext; \
617 inst
=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
618 inst
=`echo $$inst | sed -e 's/^.*\///'`; \
619 inst
=`echo $$inst`.
$$ext; \
620 echo
"$(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst"; \
621 $(INSTALL_DATA
) $$file $(DESTDIR
)$(manroot
)$$ext/$$inst; \
624 install-swig-py
: install-swig-py-lib
625 install-swig-rb
: install-swig-rb-lib
627 clean-swig
: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
628 extraclean-swig
: extraclean-swig-headers extraclean-swig-py \
629 extraclean-swig-rb extraclean-swig-pl
631 EXTRACLEAN_SWIG_HEADERS
=rm -f
$(SWIG_SRC_DIR
)/proxy
/*.swg
634 if
test -z
"$(RELEASE_MODE)"; then \
635 $(EXTRACLEAN_SWIG_HEADERS
); \
638 extraclean-swig-headers
: clean-swig-headers
639 $(EXTRACLEAN_SWIG_HEADERS
)
641 $(SWIG_PL_DIR
)/native
/Makefile.PL
: $(SWIG_SRC_DIR
)/perl
/native
/Makefile.PL.in
642 .
/config.status subversion
/bindings
/swig
/perl
/native
/Makefile.PL
644 $(SWIG_PL_DIR
)/native
/Makefile
: $(SWIG_PL_DIR
)/native
/Makefile.PL
645 cd
$(SWIG_PL_DIR
)/native
; $(PERL
) Makefile.PL
647 swig-pl_DEPS
= autogen-swig-pl libsvn_swig_perl \
648 $(SWIG_PL_DIR
)/native
/Makefile
649 swig-pl
: $(swig-pl_DEPS
)
650 if
test "$(SWIG_PL_DIR)" != "$(SWIG_PL_SRC_DIR)"; then \
651 ln
-sf
$(SWIG_PL_SRC_DIR
)/native
/*.c
$(SWIG_PL_DIR
)/native
; \
653 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
)
655 check-swig-pl
: swig-pl swig-pl-lib
656 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
) test
658 install-swig-pl
: swig-pl install-swig-pl-lib
659 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
) install
661 EXTRACLEAN_SWIG_PL
=rm -f
$(SWIG_PL_SRC_DIR
)/native
/svn_
*.c \
662 $(SWIG_PL_SRC_DIR
)/native
/core.c
664 # Running Makefile.PL at this point *fails* (cannot find ..../.libs) so if the
665 # Makefile does not exist, DO NOT try to make it. But, if it doesn't exist,
666 # then the directory is probably clean anyway.
668 if
test -z
"$(RELEASE_MODE)"; then \
669 $(EXTRACLEAN_SWIG_PL
); \
671 for d in
$(SWIG_PL_DIR
)/libsvn_swig_perl
; \
674 rm -rf
*.lo
*.la
*.o .libs
; \
676 if
[ -f
"$(SWIG_PL_DIR)/native/Makefile" ]; then \
677 cd
$(SWIG_PL_DIR
)/native
; $(MAKE
) clean; \
680 extraclean-swig-pl
: clean-swig-pl
681 $(EXTRACLEAN_SWIG_PL
)
683 $(SWIG_PY_DIR
)/libsvn
:
684 mkdir
$(SWIG_PY_DIR
)/libsvn
686 copy-swig-py
: autogen-swig-py
$(SWIG_PY_DIR
)/libsvn
687 @cp
-pf
$(SWIG_PY_SRC_DIR
)/*.py
$(SWIG_PY_DIR
)/libsvn
689 swig-py
: autogen-swig-py copy-swig-py
691 check-swig-py
: swig-py
693 $(PYTHON
) $(SWIG_PY_SRC_DIR
)/tests
/run_all.py
695 EXTRACLEAN_SWIG_PY
=rm -rf
$(SWIG_PY_SRC_DIR
)/svn_
*.c
$(SWIG_PY_SRC_DIR
)/core.c \
696 $(SWIG_PY_SRC_DIR
)/[a-z
]*.py
698 rm -rf
$(SWIG_PY_DIR
)/libsvn
699 if
test -z
"$(RELEASE_MODE)"; then \
700 $(EXTRACLEAN_SWIG_PY
); \
702 for d in
$(SWIG_PY_DIR
) $(SWIG_PY_DIR
)/libsvn_swig_py
; \
704 cd
$$d && rm -rf
*.lo
*.la
*.o
*.pyc .libs
; \
706 find
$(SWIG_PY_SRC_DIR
) $(SWIG_PY_DIR
) -name
"*.pyc" -exec
rm {} ';'
708 extraclean-swig-py
: clean-swig-py
709 $(EXTRACLEAN_SWIG_PY
)
711 swig-rb
: autogen-swig-rb
713 check-swig-rb
: swig-rb svnserve
715 $(RUBY
) -I
$(SWIG_RB_SRC_DIR
) \
716 $(SWIG_RB_SRC_DIR
)/test/run-test.rb \
717 --verbose
=$(SWIG_RB_TEST_VERBOSE
)
719 EXTRACLEAN_SWIG_RB
=rm -f
$(SWIG_RB_SRC_DIR
)/svn_
*.c
$(SWIG_RB_SRC_DIR
)/core.c
722 rm -rf
$(SWIG_RB_DIR
)/test/repos
$(SWIG_RB_DIR
)/test/wc
723 if
test -z
"$(RELEASE_MODE)"; then \
724 $(EXTRACLEAN_SWIG_RB
); \
726 for d in
$(SWIG_RB_DIR
) $(SWIG_RB_DIR
)/libsvn_swig_ruby
; \
729 rm -rf
*.lo
*.la
*.o .libs
; \
732 extraclean-swig-rb
: clean-swig-rb
733 $(EXTRACLEAN_SWIG_RB
)
736 $(RDOC
) --all --ri
--op
"$(SWIG_RB_RI_DATADIR)" "$(SWIG_RB_SRC_DIR)/svn"