top_builddir = . top_srcdir = @top_srcdir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ VPATH = @top_srcdir@ SVN_RA_LIB_DEPS = @SVN_RA_LIB_DEPS@ SVN_RA_LIB_LINK = @SVN_RA_LIB_LINK@ DESIGN_DIR = doc/programmer/design BOOK_TOP = doc/book BOOK_DIR = ${BOOK_TOP}/book MDOCS_DIR = ${BOOK_TOP}/misc-docs DOC_DIRS = $(DESIGN_DIR) $(BOOK_DIR) $(MDOCS_DIR) SWIG_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig SWIG_BUILD_DIR = $(abs_builddir)/subversion/bindings/swig SWIG_DIRS = subversion/bindings/swig \ subversion/bindings/swig/python \ subversion/bindings/swig/python/svn EXTERNAL_PROJECT_DIRS = @SVN_SUBDIRS@ NEON_LIBS = @NEON_LIBS@ SVN_APR_LIBS = @SVN_APR_LIBS@ SVN_APRUTIL_LIBS = @SVN_APRUTIL_LIBS@ SVN_DB_LIBS = @SVN_DB_LIBS@ SVN_XMLRPC_LIBS = @SVN_XMLRPC_LIBS@ LIBS = @LIBS@ prefix = @prefix@ exec_prefix = @exec_prefix@ libdir = @libdir@ base_libdir = @libdir@ fs_libdir= @libdir@ bindir = @bindir@ fs_bindir=@bindir@ includedir = @includedir@ mandir = @mandir@ srcdir = @srcdir@ infodir = @infodir@ swig_py_libdir= @libdir@ ### should search for these... MAKEINFO = @MAKEINFO@ TEXI2DVI = texi2dvi DVIPS = dvips DVIPDF = dvipdf CC = @CC@ SHELL = @SHELL@ LIBTOOL = $(SHELL) $(abs_builddir)/libtool LTFLAGS = --silent LT_LDFLAGS = INCLUDES = @SVN_EXTRA_INCLUDES@ @SVN_NEON_INCLUDES@ \ @SVN_DB_INCLUDES@ @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ \ @SVN_XMLRPC_INCLUDES@ APACHE_INCLUDES = @APACHE_INCLUDES@ APACHE_TARGET = @APACHE_TARGET@ APACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@ SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ SVN_APR_INCLUDES = @SVN_APR_INCLUDES@ SVN_APR_PREFIX = @SVN_APR_PREFIX@ MKDIR = @MKDIR@ # the EXTRA_ exist so that extra flags can be passed at 'make' time CFLAGS = @CFLAGS@ $(EXTRA_CFLAGS) CPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS) LDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS) COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES) LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) COMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c $< # special SWIG compilation COMPILE_SWIG_PY = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) -DSWIGPYTHON $(CFLAGS) $(SWIG_PY_INCLUDES) $(INCLUDES) -o $@ -c $< LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(LT_LDFLAGS) $(CC) $(CFLAGS) $(LDFLAGS) -rpath $(libdir) LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(LT_LDFLAGS) $(CC) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) INSTALL = @INSTALL@ INSTALL_LIB = $(LIBTOOL) --mode=install $(INSTALL) INSTALL_BASE_LIB = $(INSTALL_LIB) INSTALL_PIPE_LIB = $(INSTALL_LIB) INSTALL_FS_LIB = $(INSTALL_LIB) INSTALL_BIN = $(LIBTOOL) --mode=install $(INSTALL) INSTALL_FS_BIN = $(INSTALL_BIN) INSTALL_INCLUDE = $(INSTALL) -m 644 INSTALL_MOD_SHARED = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@ INSTALL_MOD_STATIC = $(INSTALL) -m 644 INSTALL_DATA = $(INSTALL) -m 644 INSTALL_SWIG_PY_LIB = $(INSTALL_LIB) APXS = @APXS@ PYTHON = @PYTHON@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ all: external-all local-all clean: external-clean local-clean distclean: external-distclean local-distclean extraclean: external-extraclean local-extraclean install: external-install local-install @INCLUDE_OUTPUTS@ local-all: @BUILD_RULES@ @SWIG_BUILD_RULES@ # clean everything but the bulky test output, returning the system back # to before 'make' was run. fast-clean: doc-clean @list='$(BUILD_DIRS)'; for i in $$list; do \ echo "Cleaning $$i ..." ; \ (cd $$i && rm -f *.o *.lo *.la *.la-a && rm -rf .libs) ; \ done rm -f $(CLEAN_FILES) # clean all but bulky test output, returning to before './configure' was run. fast-distclean: fast-clean rm -f Makefile config.cache config.log config.status libtool \ svn_private_config.h # clean everything out, returning to before './autogen.sh' was run. local-extraclean: local-distclean rm -f build-outputs.mk svn_private_config.h.in configure \ ac-helpers/config.guess ac-helpers/config.sub \ ac-helpers/libtool.m4 ac-helpers/ltconfig \ ac-helpers/ltmain.sh # clean everything, including test output. local-clean: fast-clean check-clean # clean everything, including test output. local-distclean: fast-distclean check-clean local-install: @INSTALL_RULES@ @SWIG_INSTALL_RULES@ \ @SVN_RA_PIPE_INSTALL_RULES@ @SVNPIPE_INSTALL_RULES@ install-static: @INSTALL_STATIC_RULES@ check: $(TEST_DEPS) @FS_TEST_DEPS@ @$(PYTHON) $(top_srcdir)/build/pycheck.py ; \ if test "$(BASE_URL)" != ""; then \ base_url="--url $(BASE_URL)"; \ else \ base_url=""; \ fi; \ $(PYTHON) $(top_srcdir)/build/run_tests.py $$base_url \ '$(abs_srcdir)' '$(abs_builddir)' '$(PYTHON)' '$(SHELL)' \ $(TEST_PROGRAMS) @FS_TEST_PROGRAMS@ check-clean: rm -rf subversion/tests/clients/cmdline/repositories \ subversion/tests/clients/cmdline/working_copies \ subversion/tests/clients/cmdline/local_tmp \ subversion/tests/libsvn_fs/test-repo-* \ subversion/tests/libsvn_repos/test-repo-* \ subversion/tests/libsvn_subr/z \ tests.log mkdir-init: @list='$(BUILD_DIRS) $(DOC_DIRS) $(SWIG_DIRS)'; for i in $$list doc; do \ echo "mkdir $$i" ; \ $(MKDIR) $$i ; \ done # recursive targets to handle external projects (e.g. APR, Neon) external-all external-clean external-distclean external-install: @target=`echo $@ | sed s/external-//`; \ list='$(EXTERNAL_PROJECT_DIRS)'; \ for i in $$list; do \ echo "------ making $$target in $$i"; \ (cd $$i && $(MAKE) $$target) || exit 1; \ echo "------ completed $$target in $$i"; \ done; ### temporary hack. Neon does not have an "extraclean" and neither does db ### If we don't have extraclean -- do the next best thing. external-extraclean: @list='$(EXTERNAL_PROJECT_DIRS)'; \ for i in $$list; do \ if test "$$i" = "neon" || test "$$i" = "db/dist"; then \ echo "------ making distclean(no extraclean) in $$i"; \ (cd $$i && $(MAKE) distclean) || exit 1; \ echo "------ completed distclean(no extraclean) in $$i"; \ else \ echo "------ making extraclean in $$i"; \ (cd $$i && $(MAKE) extraclean) || exit 1; \ echo "------ completed extraclean in $$i"; \ fi; \ done; # DOCUMENTATION RULES # Every single document in every format. doc: doc-design doc-book doc-misc-docs # Build all types of a certain doc. doc-book: doc-book-html doc-book-pdf doc-book-ps doc-misc-docs: doc-misc-docs-html doc-misc-docs-pdf doc-misc-docs-ps doc-design: doc-design-info doc-design-html doc-design-txt # Build all docs of a certain type. doc-all-html: doc-design-html doc-book-html doc-misc-docs-html doc-all-pdf: doc-design-pdf doc-book-pdf dock-misc-docs-pdf doc-all-ps: doc-design-ps doc-book-ps dock-misc-docs-ps doc-all-info: doc-design-info # Different outputs for the 'design' document, written in texinfo. # Assumes you have {makeinfo, texi2dvi, dvips, dvipdf} installed. doc-design-info: doc/programmer/design/svn-design.info doc-design-html: doc/programmer/design/svn-design.html doc-design-txt: doc/programmer/design/svn-design.txt doc-design-dvi: doc/programmer/design/svn-design.dvi doc-design-ps: doc/programmer/design/svn-design.ps doc-design-pdf: doc/programmer/design/svn-design.pdf # Different outputs for the main Subversion 'book', written in docbook. # Assumes you have {xsltproc, fop, stylesheets} installed. doc-book-html: cd ${BOOK_TOP} && make book-html doc-book-pdf: cd ${BOOK_TOP} && make book-pdf doc-book-ps: cd ${BOOK_TOP} && make book-ps # Different outputs for the misc docs. # Assumes you have {xsltproc, fop, stylesheets} installed. doc-misc-docs-html: cd ${BOOK_TOP} && make misc-docs-html doc-misc-docs-pdf: cd ${BOOK_TOP} && make misc-docs-pdf doc-misc-docs-ps: cd ${BOOK_TOP} && make misc-docs-ps doc-clean: for d in $(DOC_DIRS); \ do \ (cd $$d; \ rm -f *.info *.info-[1-9] \ *.aux *.cp *.fn *.ky *.log *.pg *.toc \ *.tp *.vr \ *.dvi *.txt *.html *.ps *.pdf *.fo); \ done swig-py-ext: (cd $(SWIG_SRC_DIR)/python; \ $(PYTHON) setup.py \ -I$(SWIG_SRC_DIR) \ -I$(abs_srcdir)/subversion/include $(SVN_APR_INCLUDES) \ -S$(SWIG_SRC_DIR) \ -L$(prefix)/lib -L$(SVN_APR_PREFIX)/lib \ build --build-base=$(SWIG_BUILD_DIR)/python/build) install-swig-py-ext: (cd $(SWIG_BUILD_DIR)/python; \ $(PYTHON) $(SWIG_SRC_DIR)/python/setup.py \ -S$(SWIG_SRC_DIR) \ install --prefix $(prefix)) ### Build a tarball. dist: ./dist.sh # # Implicit rules for creating outputs from input files # .SUFFIXES: .SUFFIXES: .c .lo .o .la-a .la .texi .info .dvi .txt .html .ps .pdf .c.o: $(COMPILE) -o $@ -c $< .c.lo: $(LT_COMPILE) -o $@ -c $< .la.la-a: sed "/library_names/s/'.*'/''/" $< > $@ .texi.info: $(MAKEINFO) -I `dirname $<` -o $@ $< .texi.dvi: wd=`pwd` ; cd `dirname $@` ; $(TEXI2DVI) $$wd/$< .texi.txt: $(MAKEINFO) -I `dirname $<` --no-headers -o $@ $< .texi.html: $(MAKEINFO) -I `dirname $<` --no-split --html -o $@ $< .dvi.ps: $(DVIPS) $< -o $@ .dvi.pdf: $(DVIPDF) $< $@ install-docs: install-man @INSTALL_INFO@ manroot = $(mandir)/man install-man: @list='$(MANPAGES)'; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ $(MKDIR) $(DESTDIR)$(manroot)$$ext; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst`.$$ext; \ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst"; \ $(INSTALL_DATA) $$file $(DESTDIR)$(manroot)$$ext/$$inst; \ done install-info: doc-all-info $(MKDIR) $(DESTDIR)$(infodir) @list='$(INFOPAGES)'; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ inst=`echo $$file | sed -e 's/^.*\///'`; \ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(infodir)/$$inst"; \ $(INSTALL_DATA) $$file $(DESTDIR)$(infodir)/$$inst; \ done