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