1
2CLEAN_TARGETS = gen_test_char test_char.h \
3	ApacheCoreOS2.def httpd.exp export_files \
4	exports.c export_vars.h
5
6SUBDIRS = mpm
7
8LTLIBRARY_NAME    = libmain.la
9LTLIBRARY_SOURCES = \
10    test_char.h \
11	config.c log.c main.c vhost.c util.c \
12	util_script.c util_md5.c util_cfgtree.c util_ebcdic.c util_time.c \
13	connection.c listen.c \
14	mpm_common.c util_charset.c util_debug.c util_xml.c \
15	util_filter.c util_pcre.c exports.c \
16	scoreboard.c error_bucket.c protocol.c core.c request.c provider.c \
17	eoc_bucket.c core_filters.c
18
19TARGETS = delete-exports $(LTLIBRARY_NAME) $(CORE_IMPLIB_FILE) export_vars.h httpd.exp
20
21include $(top_builddir)/build/rules.mk
22include $(top_srcdir)/build/library.mk
23
24gen_test_char_OBJECTS = gen_test_char.lo
25gen_test_char: $(gen_test_char_OBJECTS)
26	$(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
27
28test_char.h: gen_test_char
29	./gen_test_char > test_char.h
30
31util.lo: test_char.h
32
33EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) $(top_srcdir)/modules/http
34EXPORT_DIRS_APR = $(APR_INCLUDEDIR) $(APU_INCLUDEDIR)
35
36# If export_files is a dependency here, but we remove it during this stage,
37# when exports.c is generated, make will not detect that export_files is no
38# longer here and deadlock.  So, export_files can't be a dependency of
39# delete-exports.
40delete-exports:
41	@if test -f exports.c; then \
42	    if test -f export_files; then \
43	        files=`cat export_files`; \
44	        headers="`find $$files -newer exports.c`"; \
45	        if test -n "$$headers"; then \
46	           echo Found newer headers. Will rebuild exports.c.; \
47	           echo rm -f exports.c export_files; \
48	           rm -f exports.c export_files; \
49	        fi; \
50	    else \
51	        rm -f exports.c; \
52	    fi; \
53	fi
54
55export_files:
56	tmp=export_files_unsorted.txt; \
57	rm -f $$tmp && touch $$tmp; \
58	for dir in $(EXPORT_DIRS); do \
59	    ls $$dir/*.h >> $$tmp; \
60	done; \
61	for dir in $(EXPORT_DIRS_APR); do \
62	    (ls $$dir/ap[ru].h $$dir/ap[ru]_*.h >> $$tmp 2>/dev/null); \
63	done; \
64	sort -u $$tmp > $@; \
65	rm -f $$tmp
66
67exports.c: export_files
68	$(AWK) -f $(top_srcdir)/build/make_exports.awk `cat $?` > $@
69
70export_vars.h: export_files
71	$(AWK) -f $(top_srcdir)/build/make_var_export.awk `cat $?` > $@
72
73# Rule to make def file for OS/2 core dll
74ApacheCoreOS2.def: exports.c export_vars.h $(top_srcdir)/os/$(OS_DIR)/core_header.def
75	cat $(top_srcdir)/os/$(OS_DIR)/core_header.def > $@
76	$(CPP) $< $(ALL_CPPFLAGS) $(ALL_INCLUDES) | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$$/  "\1"/' >> $@
77	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep "^[a-z]" | sed -e 's/^\(.*\)$$/  "\1"/' >> $@
78
79# Rule to make exp file for AIX DSOs
80httpd.exp: exports.c export_vars.h
81	@echo "#! ." > $@
82	@echo "* This file was AUTOGENERATED at build time." >> $@
83	@echo "* Please do not edit by hand." >> $@
84	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | grep -v apr_ | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
85	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep -v apr_ | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' >> $@
86