blob: a26a0465eb0fe4363dffc4249d25c31429758b14 [file] [log] [blame]
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 \
subversion/bindings/swig/java \
subversion/bindings/swig/java/build \
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@
swig_py_libdir= @libdir@
swig_java_libdir= @libdir@
### this isn't right
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 = $(SHELL) $(abs_builddir)/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_PY_SETUP_LDFLAGS = @SWIG_PY_SETUP_LDFLAGS@
SWIG_JAVA_INCLUDES = @SWIG_JAVA_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 $<
COMPILE_SWIG_JAVA = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) -DSWIGPYTHON $(CFLAGS) $(SWIG_JAVA_INCLUDES) $(INCLUDES) -o $@ -c $<
LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module
RUN_SWIG_PY = $(SWIG) -c -python -noproxy $(SWIG_INCLUDES) $(SWIG_PY_INCLUDES) -o $@ $<
RUN_SWIG_JAVA = $(SWIG) -c -java -noproxy -module 'Subversion' -package 'org.tigris.subversion.swig' $(SWIG_INCLUDES) -o $@ $<
COMPILE_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(SWIG_INCLUDES) $(SWIG_PY_INCLUDES) -prefer-pic -c -o $@ $<
COMPILE_JAVA_WRAPPER = \
echo "ERROR: compilation of Java wrappers not yet supported" ; exit 1
LINK_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_PY_LINK) $(SWIG_LDFLAGS) -rpath $(swig_pydir) -avoid-version -module
LINK_JAVA_WRAPPER = \
echo "ERROR: linking of Java wrappers not yet supported" ; exit 1
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)
APXS = @APXS@
PYTHON = @PYTHON@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
PYTHON_DISTUTIL = $(SWIG_SRC_DIR)/python/setup.py \
-I$(SWIG_SRC_DIR) \
-I$(abs_srcdir)/subversion/include $(SVN_APR_INCLUDES) \
-S$(SWIG_SRC_DIR) \
-s"$(SWIG)" \
-L$(SVN_APR_PREFIX)/lib \
-L$(abs_builddir)/subversion/libsvn_client/.libs \
-L$(abs_builddir)/subversion/libsvn_delta/.libs \
-L$(abs_builddir)/subversion/libsvn_fs/.libs \
-L$(abs_builddir)/subversion/libsvn_ra/.libs \
-L$(abs_builddir)/subversion/libsvn_repos/.libs \
-L$(abs_builddir)/subversion/libsvn_wc/.libs \
-L$(abs_builddir)/subversion/libsvn_subr/.libs \
-L$(abs_builddir)/subversion/bindings/swig/.libs \
$(SWIG_PY_SETUP_LDFLAGS)
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 swig-clean
# clean everything, including test output.
local-distclean: fast-distclean check-clean swig-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 ; \
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@
davcheck:
@make check BASE_URL=http://localhost
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
swig-assert-available:
@if test -z "$(SWIG)" || test "$(SWIG)" = "none"; then \
echo 'SWIG variable not defined; this rule is unavailable' >&2; \
echo 'Re-run configure --with-swig' >&2; \
exit 1; \
fi
swig-clean: swig-py-ext-clean swig-java-ext-clean
swig-py-ext: swig-assert-available
cd $(SWIG_BUILD_DIR)/python; \
$(PYTHON) $(PYTHON_DISTUTIL) build $(DISTUTIL_PARAM)
install-swig-py-ext: swig-assert-available
cd $(SWIG_BUILD_DIR)/python; \
$(PYTHON) $(PYTHON_DISTUTIL) install $(DISTUTIL_PARAM) --prefix=$(DESTDIR)$(prefix)
swig-py-ext-clean:
rm -rf $(SWIG_BUILD_DIR)/python/build
swig-java-ext: swig-assert-available mkdir-init
cd $(SWIG_SRC_DIR)/java/org/tigris/subversion/swig; \
for source in $(SWIG_SRC_DIR)/*.i; do \
target="`echo -n $$source | sed 's!^.*/\(.*\)\.i$$!\1.c!'`"; \
$(SWIG) -c -java -noproxy -module 'Subversion' \
-package 'org.tigris.subversion.swig' \
-I$(SWIG_SRC_DIR) \
-I$(abs_srcdir)/subversion/include $(SVN_APR_INCLUDES) \
-o $(SWIG_SRC_DIR)/java/build/$$target $$source; \
done
swig-java-ext-clean:
rm -rf $(SWIG_SRC_DIR)/java
### 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