| CLEAN_TARGETS = gen_test_char test_char.h \ | |
| ApacheCoreOS2.def httpd.exp export_files \ | |
| exports.c export_vars.h | |
| SUBDIRS = mpm | |
| LTLIBRARY_NAME = libmain.la | |
| LTLIBRARY_SOURCES = \ | |
| config.c log.c main.c vhost.c util.c util_etag.c util_fcgi.c \ | |
| util_script.c util_md5.c util_cfgtree.c util_ebcdic.c util_time.c \ | |
| connection.c listen.c util_mutex.c \ | |
| mpm_common.c mpm_unix.c mpm_fdqueue.c \ | |
| util_charset.c util_cookies.c util_debug.c util_xml.c \ | |
| util_filter.c util_pcre.c util_regex.c $(EXPORTS_DOT_C) \ | |
| scoreboard.c error_bucket.c protocol.c core.c request.c ssl.c provider.c \ | |
| eoc_bucket.c eor_bucket.c headers_bucket.c core_filters.c \ | |
| util_expr_parse.c util_expr_scan.c util_expr_eval.c | |
| LTLIBRARY_DEPENDENCIES = test_char.h | |
| 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 | |
| ifdef CC_FOR_BUILD | |
| gen_test_char: gen_test_char.c | |
| $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $< | |
| else | |
| gen_test_char_OBJECTS = gen_test_char.lo | |
| gen_test_char: $(gen_test_char_OBJECTS) | |
| $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS) | |
| endif | |
| test_char.h: gen_test_char | |
| ./gen_test_char > test_char.h | |
| util.lo: test_char.h | |
| EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) | |
| EXPORT_DIRS_APR = $(APR_INCLUDEDIR) $(APU_INCLUDEDIR) | |
| # If export_files is a dependency here, but we remove it during this stage, | |
| # when exports.c is generated, make will not detect that export_files is no | |
| # longer here and deadlock. So, export_files can't be a dependency of | |
| # delete-exports. | |
| delete-exports: | |
| @if test -f exports.c; then \ | |
| if test -f export_files; then \ | |
| files=`cat export_files`; \ | |
| headers="`find $$files -newer exports.c`"; \ | |
| if test -n "$$headers"; then \ | |
| echo Found newer headers. Will rebuild exports.c.; \ | |
| echo rm -f exports.c export_files; \ | |
| rm -f exports.c export_files; \ | |
| fi; \ | |
| else \ | |
| rm -f exports.c; \ | |
| fi; \ | |
| fi | |
| export_files: | |
| ( for dir in $(EXPORT_DIRS); do \ | |
| ls $$dir/*.h ; \ | |
| done; \ | |
| echo "$(top_srcdir)/server/core.h"; \ | |
| echo "$(top_srcdir)/server/mpm_fdqueue.h"; \ | |
| for dir in $(EXPORT_DIRS_APR); do \ | |
| ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \ | |
| done; \ | |
| ) | sed -e s,//,/,g | sort -u > $@ | |
| exports.c: export_files | |
| $(AWK) -f $(top_srcdir)/build/make_exports.awk `cat $?` > $@ | |
| export_vars.h: export_files | |
| $(AWK) -f $(top_srcdir)/build/make_var_export.awk `cat $?` > $@ | |
| # 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' >> $@ | |
| # developer stuff | |
| # (we really don't expect end users to use these targets!) | |
| # | |
| util_expr_scan.c util_expr_parse.c util_expr_parse.h: util_expr_scan.l util_expr_parse.y | |
| bison -pap_expr_yy --defines=$(builddir)/util_expr_parse.h \ | |
| -o $(builddir)/util_expr_parse.c $(srcdir)/util_expr_parse.y | |
| flex -Pap_expr_yy -o $(builddir)/util_expr_scan.c $(srcdir)/util_expr_scan.l | |
| set -e ; \ | |
| builddir_uc=$$(echo "$(builddir)"|tr a-z/.- A-Z___ ) ; \ | |
| for f in util_expr_scan.c util_expr_parse.c util_expr_parse.h ; do \ | |
| sed -e "s|\"$(builddir)/|\"|g" -e "s|$$builddir_uc||g" \ | |
| < $(builddir)/$$f > \ | |
| $(builddir)/$$f.$$$$ && \ | |
| mv $(builddir)/$$f.$$$$ $(builddir)/$$f ; \ | |
| done | |
| # work around flex bug | |
| # http://sourceforge.net/tracker/?func=detail&aid=3029024&group_id=97492&atid=618177 | |
| perl -0777 -p -i -e 's,\n(void|int) ap_expr_yy[gs]et_column[^\n]+\)\n.*?\n\},,gs' \ | |
| $(builddir)/util_expr_scan.c |