# Generated automatically from Makefile.in by configure.
abs_srcdir=@api_srcdir@
abs_builddir=@api_builddir@
VPATH = @srcdir@

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

INCLUDES = @API_INCLUDES@ @APR_INCLUDES@

TARGET_LIB = libapriconv.la
SUBDIRS = .

EXPORT_FILES = $(abs_srcdir)/include/*.h $(abs_srcdir)/lib/*.h
TARGET_EXPORTS = apriconv.exports

CLEAN_TARGETS = exports.c

# May need to do something for apriconv.exports
TARGETS = $(TARGET_LIB)

OBJECTS_all = iconv_module.lo iconv.lo iconv_int.lo iconv_uc.lo \
        iconv_ces.lo iconv_ces_euc.lo iconv_ces_iso2022.lo api_version.lo \
        iconv_ccs.lo exports.lo

# bring in rules.mk for standard functionality
@INCLUDE_RULES@
# replace build-outputs.mk
OBJECTS_unix = $(OBJECTS_all)
 
OBJECTS_aix = $(OBJECTS_all)
 
OBJECTS_beos = $(OBJECTS_all)
 
OBJECTS_os2 = $(OBJECTS_all)
 
OBJECTS_os390 = $(OBJECTS_all)
# end replace

$(TARGET_LIB): $(OBJECTS)
	$(LINK) @APR_LIB_TARGET@

exports.c:
	$(AWK) -f $(abs_srcdir)/build/make_exports.awk $(EXPORT_FILES) > $@

export_vars.h:
	$(AWK) -f $(abs_srcdir)/build/make_var_export.awk $(EXPORT_FILES) > $@

$(TARGET_EXPORTS): exports.c export_vars.h
	@echo "#! lib@APR_LIBNAME@.so" > $@
	@echo "* This file was AUTOGENERATED at build time." >> $@
	@echo "* Please do not edit by hand." >> $@
	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' >> $@
