#
# Top-level Makefile for APRUTIL
#

TARGET_LIB = libaprutil.la
TARGET_EXPORTS = aprutil.exports

TARGETS = delete-lib $(TARGET_LIB) delete-exports $(TARGET_EXPORTS)

# bring in rules.mk for standard functionality
@INCLUDE_RULES@

SUBDIRS = buckets crypto dbm encoding hooks uri xml misc
CLEAN_SUBDIRS = . test build

CLEAN_TARGETS = $(TARGET_EXPORTS)
DISTCLEAN_TARGETS = config.cache config.log config.status libtool \
	include/private/apu_config.h include/private/apu_private.h \
	include/private/apu_select_dbm.h include/apu.h export_vars.sh
EXTRACLEAN_TARGETS = configure aclocal.m4 include/private/apu_config.h.in

prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@

delete-lib:
	@if test -f $(TARGET_LIB); then \
	    objects="`find $(SUBDIRS) -name expat -prune -o -name '*.@so_ext@' -a -newer $(TARGET_LIB) -print`" ; \
	    if test -n "$$objects"; then \
		echo Found newer objects. Will relink $(TARGET_LIB). ; \
		echo $(RM) -f $(TARGET_LIB) ; \
		$(RM) -f $(TARGET_LIB) ; \
	    fi; \
	fi

install: $(TARGET_LIB)
	if [ ! -d $(includedir) ]; then \
	    @APR_SOURCE_DIR@/build/mkdir.sh $(includedir); \
	fi; \
	cp include/*.h $(includedir); \
	if [ ! -d $(libdir) ]; then \
	    @APR_SOURCE_DIR@/build/mkdir.sh $(libdir); \
	fi; \
	$(LIBTOOL) --mode=install cp $(TARGET_LIB) $(libdir)

$(TARGET_LIB):
	@objects="`find $(SUBDIRS) -name expat -prune -o -name '*.@so_ext@' -print`"; \
	    $(LINK) @lib_target@ @EXPAT_LINK@

delete-exports:
	@if test -f $(TARGET_EXPORTS); then \
	    headers="`find include/*.h -newer $(TARGET_EXPORTS) -print`" ; \
	    if test -n "$$headers"; then \
		echo Found newer headers. Will rebuild $(TARGET_EXPORTS). ; \
		echo $(RM) -f $(TARGET_EXPORTS) ; \
		$(RM) -f $(TARGET_EXPORTS) ; \
	    fi \
	fi

$(TARGET_EXPORTS):
	$(AWK) -f @APR_SOURCE_DIR@/build/make_export.awk include/*.h > $@ ;

docs:
	mkdir ./docs
	perl @APR_SOURCE_DIR@/build/scandoc.pl -i./build/default.pl -p./docs/ ./include/*.h


.PHONY: delete-lib delete-exports
