
CLEAN_TARGETS = gen_test_char test_char.h gen_uri_delims uri_delims.h \
	ApacheCoreOS2.def
DISTCLEAN_TARGETS = httpd.exp
EXTRACLEAN_TARGETS = exports.c export_vars.h

SUBDIRS = mpm

LTLIBRARY_NAME    = libmain.la
LTLIBRARY_SOURCES = \
    test_char.h \
	config.c log.c main.c vhost.c util.c \
	util_script.c util_md5.c util_cfgtree.c util_ebcdic.c util_time.c \
	rfc1413.c connection.c listen.c \
	mpm_common.c util_charset.c util_debug.c util_xml.c \
	util_filter.c exports.c buildmark.c scoreboard.c \
	error_bucket.c protocol.c core.c request.c

TARGETS = delete-exports $(LTLIBRARY_NAME) $(CORE_IMPLIB_FILE) export_vars.h httpd.exp

include $(top_builddir)/build/rules.mk
include $(top_srcdir)/build/library.mk

gen_test_char_OBJECTS = gen_test_char.lo util_debug.lo
gen_test_char: $(gen_test_char_OBJECTS)
	$(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)

test_char.h: gen_test_char
	./gen_test_char > test_char.h

util.lo: test_char.h

EXPORT_FILES = $(top_srcdir)/include/*.h \
       $(top_srcdir)/os/$(OS_DIR)/*.h \
       $(top_srcdir)/srclib/apr/include/*.h \
       $(top_srcdir)/srclib/apr-util/include/*.h \
       $(top_srcdir)/modules/http/*.h

delete-exports:
	@if test -f exports.c; then \
		    headers="`find $(EXPORT_FILES) -newer exports.c`" ; \
		    if test -n "$$headers"; then \
		        echo Found newer headers. Will rebuild exports.c. ; \
		        echo rm -f exports.c ; \
		        rm -f exports.c ; \
		    fi \
	fi

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

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

# wtf does this have to be explicit????
exports.lo: exports.c

# Rule to make def file for OS/2 core dll
ApacheCoreOS2.def: exports.c export_vars.h $(top_srcdir)/os/$(OS_DIR)/core_header.def
	cat $(top_srcdir)/os/$(OS_DIR)/core_header.def > $@
	$(CPP) $< $(ALL_CPPFLAGS) $(ALL_INCLUDES) | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$$/  "\1"/' >> $@
	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep "^[a-z]" | sed -e 's/^\(.*\)$$/  "\1"/' >> $@

# Rule to make exp file for AIX DSOs
httpd.exp: exports.c export_vars.h
	@echo "#! ." > $@
	@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_" | grep -v apr_ | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep -v apr_ | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' >> $@
