# # Makefile.in: template Makefile for Subversion # # ==================================================================== # Copyright (c) 2000-2003 CollabNet. All rights reserved. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at http://subversion.tigris.org/license-1.html. # If newer versions of this license are posted there, you may use a # newer version instead, at your option. # # This software consists of voluntary contributions made by many # individuals. For exact contribution history, see the revision # history and logs, available at http://subversion.tigris.org/. # ==================================================================== # 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 ### these should go away; gen-make should place this into BUILD_DIRS SWIG_DIRS = subversion/bindings/swig/python \ subversion/bindings/swig/java \ subversion/bindings/swig/java/org \ subversion/bindings/swig/java/org/tigris \ subversion/bindings/swig/java/org/tigris/subversion \ subversion/bindings/swig/java/org/tigris/subversion/swig 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@ 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@ # where to install libsvn_swig_* swig_py_libdir= @libdir@ swig_java_libdir= @libdir@ ### these possibly need further discussion swig_pydir = @libdir@/svn-python/svn swig_javadir = @libdir@/svn-java ### should search for these... MAKEINFO = @MAKEINFO@ TEXI2DVI = texi2dvi DVIPS = dvips DVIPDF = dvipdf CC = @CC@ SHELL = @SHELL@ LIBTOOL = @SVN_LIBTOOL@ LTFLAGS = --silent LT_LDFLAGS = @LT_LDFLAGS@ INCLUDES = @SVN_EXTRA_INCLUDES@ @SVN_NEON_INCLUDES@ \ @SVN_DB_INCLUDES@ @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ APACHE_INCLUDES = @APACHE_INCLUDES@ APACHE_TARGET = @APACHE_TARGET@ APACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@ SWIG = @SWIG@ SWIG_INCLUDES = -I$(SWIG_SRC_DIR) \ -I$(abs_srcdir)/subversion/include \ $(SVN_APR_INCLUDES) SWIG_LDFLAGS = @SWIG_LDFLAGS@ SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ SWIG_PY_COMPILE = @SWIG_PY_COMPILE@ SWIG_PY_LINK = @SWIG_PY_LINK@ SWIG_JAVA_INCLUDES = @SWIG_JAVA_INCLUDES@ SWIG_JAVA_COMPILE = $(CC) -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC SWIG_JAVA_LINK = $(CC) -shared 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) # special compilation for files destined for mod_dav_svn COMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c # special compilation for files destined for libsvn_swig_* (e.g. swigutil_*.c) COMPILE_SWIG_PY = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) -DSWIGPYTHON $(CFLAGS) $(SWIG_PY_INCLUDES) $(INCLUDES) -o $@ -c COMPILE_SWIG_JAVA = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(SWIG_JAVA_INCLUDES) $(INCLUDES) -o $@ -c LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir) # special link rule for mod_dav_svn LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module # these commands run SWIG to generate wrapper source files (*.c) ### should we protect against swig not being available? RUN_SWIG_PY = $(SWIG) -c -python -noproxy $(SWIG_INCLUDES) $(SWIG_PY_INCLUDES) -o $@ RUN_SWIG_JAVA = cd ${SWIG_SRC_DIR}/java/org/tigris/subversion/swig && $(SWIG) -c -java -noproxy -package 'org.tigris.subversion.swig' $(SWIG_INCLUDES) -o ${abs_builddir}/$@ # Compilation of SWIG-generated C source code COMPILE_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(SWIG_INCLUDES) $(SWIG_PY_INCLUDES) -prefer-pic -c -o $@ COMPILE_JAVA_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_JAVA_COMPILE) -DSWIGJAVA $(SWIG_INCLUDES) $(SWIG_JAVA_INCLUDES) -prefer-pic -c -o $@ # these commands link the wrapper objects into an extension library/module LINK_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_PY_LINK) $(SWIG_LDFLAGS) -rpath $(swig_pydir) -avoid-version -module LINK_JAVA_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_JAVA_LINK) $(SWIG_LDFLAGS) -rpath $(swig_javadir) -avoid-version -module INSTALL = @INSTALL@ INSTALL_LIB = $(LIBTOOL) --mode=install $(INSTALL) INSTALL_BASE_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 ### this isn't correct yet INSTALL_SWIG_PY = $(INSTALL_LIB) INSTALL_SWIG_PY_LIB = $(INSTALL_LIB) INSTALL_SWIG_JAVA = $(INSTALL_LIB) INSTALL_SWIG_JAVA_LIB = $(INSTALL_LIB) # additional installation rules for the SWIG wrappers INSTALL_EXTRA_SWIG_PY=$(top_srcdir)/build/copy-swig-py.sh "$(PYTHON)" "$(INSTALL_DATA)" "${SWIG_SRC_DIR}/python/svn" "$(DESTDIR)$(swig_pydir)" INSTALL_EXTRA_SWIG_JAVA=: APXS = @APXS@ PYTHON = @PYTHON@ JDK = @JDK@ JAVAC = @JAVAC@ 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 revision-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 svn-config # 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@ ### HACK!! Find a better way to do this revision-install: subversion/svnversion/svnversion $(top_srcdir) /repos/svn/trunk > $(DESTDIR)$(includedir)/subversion-1/svn-revision.txt install-static: @INSTALL_STATIC_RULES@ check: $(TEST_DEPS) @FS_TEST_DEPS@ @$(PYTHON) $(top_srcdir)/build/pycheck.py; \ flags="--verbose"; \ if test "$(CLEANUP)" != ""; then \ flags="--cleanup $$flags"; \ fi; \ if test "$(BASE_URL)" != ""; then \ flags="--url $(BASE_URL) $$flags"; \ fi; \ $(PYTHON) $(top_srcdir)/build/run_tests.py $$flags \ '$(abs_srcdir)' '$(abs_builddir)' '$(PYTHON)' '$(SHELL)' \ $(TEST_PROGRAMS) @FS_TEST_PROGRAMS@ # First, set up Apache as documented in # subversion/tests/clients/cmdline/README. davcheck: @make check BASE_URL=http://localhost # First, run: # subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/clients/cmdline svncheck: @make check BASE_URL=svn://localhost 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-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; ### apr-util relies on generated files in apr, so reverse the ### list so that it is cleaned before apr. external-clean external-distclean: @target=`echo $@ | sed s/external-//`; \ list='$(EXTERNAL_PROJECT_DIRS)'; \ for i in $$list; do \ revlist="$$i $$revlist"; \ done; \ for i in $$revlist; 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 \ revlist="$$i $$revlist"; \ done; \ for i in $$revlist; 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 java-api: @$(MAKE) -C $(abs_srcdir)/subversion/bindings/java "JAVAC=$(JAVAC)" # # 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