gstein 2004/02/05 02:16:27 Modified: . .cvsignore Makefile.in buildconf configure.in build apr_rules.mk.in . .cvsignore Makefile.in buildconf configure.in Added: . build.conf build gen-build.py . build.conf build gen-uri-delims.py Removed: atomic/os390 Makefile.in atomic/unix Makefile.in build Makefile.in dso/aix Makefile.in dso/beos Makefile.in dso/os2 Makefile.in dso/os390 Makefile.in dso/unix Makefile.in file_io/os2 Makefile.in file_io/unix Makefile.in locks/beos Makefile.in locks/os2 Makefile.in locks/unix Makefile.in memory/unix Makefile.in misc/unix Makefile.in mmap/unix Makefile.in network_io/beos Makefile.in network_io/os2 Makefile.in network_io/unix Makefile.in passwd Makefile.in poll/os2 Makefile.in poll/unix Makefile.in random/unix Makefile.in shmem/beos Makefile.in shmem/os2 Makefile.in shmem/unix Makefile.in strings Makefile.in support/unix Makefile.in tables Makefile.in threadproc/beos Makefile.in threadproc/os2 Makefile.in threadproc/unix Makefile.in time/unix Makefile.in user/unix Makefile.in buckets Makefile.in crypto Makefile.in dbm Makefile.in dbm/sdbm Makefile.in encoding Makefile.in hooks Makefile.in ldap Makefile.in misc Makefile.in strmatch Makefile.in uri Makefile.in xlate Makefile.in xml Makefile.in Log: First whack at switching to a single top-level make. This adds a dependency upon Python at packaging time, but not at end-user config/build time. As far as I can tell, the build continues to function properly. (out-of-dir config/make not tested, and apr-iconv prolly needs some work) The buildconf scripts now generate a build-outputs.mk file which is included by the root's Makefile (via the build/gen-build.py script). bulid-outputs.mk specifies all of the various files present in the distribution. The top-level Makefiles were simplified to use an $(OBJECTS) symbol rather than 'find'ing them. Similarly, a $(HEADERS) symbol is used for the exports. The corresponding delete-* targets were eliminated since we have a precise set of inputs. The subdirs' Makefiles were removed since they are no longer called/used. The apr-util/uri Makefile was responsible for compiling a C program to generate the uri_delims.h file. That process was replaced by a Python script to generate the header (called by buildconf). The .c and .dsp were left for the Windows build to continue, but that should be revamped. build/apr_rules.mk was revamped somewhat to avoid recursion, but a lot of cleanup is still needed. Much of the recursive/local/x- logic is no longer needed and can be elimianated. rules.mk was created for inclusion by N makefiles, but that isn't really true any more, so it could probably be tossed (caveat: test/Makefile). Saved for a phase 2. Some additional work was added to properly clean up files in */build/, rather than relying on a makefile in there. Revision Changes Path 1.18 +1 -0 apr/.cvsignore Index: .cvsignore =================================================================== RCS file: /home/cvs/apr/.cvsignore,v retrieving revision 1.17 retrieving revision 1.18 diff -u -u -r1.17 -r1.18 --- .cvsignore 1 Feb 2004 16:42:44 -0000 1.17 +++ .cvsignore 5 Feb 2004 10:16:20 -0000 1.18 @@ -32,3 +32,4 @@ *.vcproj autom4te.cache ltcf-c.sh +build-outputs.mk 1.92 +15 -40 apr/Makefile.in Index: Makefile.in =================================================================== RCS file: /home/cvs/apr/Makefile.in,v retrieving revision 1.91 retrieving revision 1.92 diff -u -u -r1.91 -r1.92 --- Makefile.in 3 Feb 2004 10:08:20 -0000 1.91 +++ Makefile.in 5 Feb 2004 10:16:20 -0000 1.92 @@ -10,14 +10,14 @@ # Macros for supporting directories # INCDIR=./include -INCDIR1=../include -INCLUDES=-I$(INCDIR) -I$(INCDIR1) +OSDIR=$(INCDIR)/arch/@OSDIR@ +DEFOSDIR=$(INCDIR)/arch/@DEFAULT_OSDIR@ +INCLUDES=-I$(INCDIR) -I$(OSDIR) -I$(DEFOSDIR) # # Macros for target determination # -SUBDIRS=@SUBDIRS@ -CLEAN_SUBDIRS= . test build +CLEAN_SUBDIRS= test INSTALL_SUBDIRS=@INSTALL_SUBDIRS@ TARGET_LIB = lib@APR_LIBNAME@.la @@ -26,16 +26,18 @@ # Rules for building specific targets, starting with 'all' for # building the entire package. # -TARGETS = delete-lib $(TARGET_LIB) delete-exports export_vars.h apr.exp +TARGETS = $(TARGET_LIB) export_vars.h apr.exp # bring in rules.mk for standard functionality @INCLUDE_RULES@ +@INCLUDE_OUTPUTS@ CLEAN_TARGETS = apr-config.out apr.exp exports.c export_vars.h DISTCLEAN_TARGETS = config.cache config.log config.status \ include/apr.h include/arch/unix/apr_private.h \ - libtool apr-config -EXTRACLEAN_TARGETS = configure aclocal.m4 include/arch/unix/apr_private.h.in + libtool apr-config build/apr_rules.mk +EXTRACLEAN_TARGETS = configure aclocal.m4 include/arch/unix/apr_private.h.in \ + build-outputs.mk build/ltcf-c.sh build/ltmain.sh build/libtool.m4 prefix=@prefix@ exec_prefix=@exec_prefix@ @@ -48,17 +50,6 @@ top_srcdir=@apr_srcdir@ top_blddir=@apr_builddir@ -EXPORT_FILES = $(top_srcdir)/include/*.h - -delete-lib: - @if test -f $(TARGET_LIB); then \ - for i in $(SUBDIRS); do objects="$$objects $$i/*.@so_ext@"; done ; \ - if test -n "`find $$objects -newer $(TARGET_LIB)`"; then \ - echo Found newer objects. Will relink $(TARGET_LIB). ; \ - echo $(RM) -f $(TARGET_LIB) ; \ - $(RM) -f $(TARGET_LIB) ; \ - fi \ - fi # Create apr-config script suitable for the install tree apr-config.out: apr-config @@ -102,27 +93,14 @@ done \ fi -$(TARGET_LIB): - @for i in $(SUBDIRS); do objects="$$objects $$i/*.@so_ext@"; done ; \ - tmpcmd="$(LINK) @lib_target@ $(ALL_LIBS)"; \ - echo $$tmpcmd; \ - $$tmpcmd && touch $@ - -delete-exports: - @if test -f apr.exp; then \ - headers="`find include/*.h -newer apr.exp`" ; \ - if test -n "$$headers"; then \ - echo Found newer headers. Will rebuild apr.exp. ; \ - echo $(RM) -f apr.exp exports.c export_vars.h ; \ - $(RM) -f apr.exp exports.c export_vars.h ; \ - fi \ - fi +$(TARGET_LIB): $(OBJECTS) + $(LINK) @lib_target@ $(ALL_LIBS) -exports.c: - $(AWK) -f $(top_srcdir)/build/make_exports.awk $(EXPORT_FILES) > $@ +exports.c: $(HEADERS) + $(AWK) -f $(top_srcdir)/build/make_exports.awk $^ > $@ -export_vars.h: - $(AWK) -f $(top_srcdir)/build/make_var_export.awk $(EXPORT_FILES) > $@ +export_vars.h: $(HEADERS) + $(AWK) -f $(top_srcdir)/build/make_var_export.awk $^ > $@ apr.exp: exports.c export_vars.h @echo "#! lib@APR_LIBNAME@.so" > $@ @@ -142,6 +120,3 @@ # DO NOT REMOVE docs: $(INCDIR)/*.h - -.PHONY: delete-lib delete-exports -.NOTPARALLEL: delete-lib delete-exports 1.28 +3 -0 apr/buildconf Index: buildconf =================================================================== RCS file: /home/cvs/apr/buildconf,v retrieving revision 1.27 retrieving revision 1.28 diff -u -u -r1.27 -r1.28 --- buildconf 15 Jan 2004 14:12:58 -0000 1.27 +++ buildconf 5 Feb 2004 10:16:20 -0000 1.28 @@ -118,4 +118,7 @@ # Remove autoconf 2.5x's cache directory rm -rf autom4te*.cache +echo "Generating 'make' outputs ..." +build/gen-build.py make + exit 0 1.568 +12 -41 apr/configure.in Index: configure.in =================================================================== RCS file: /home/cvs/apr/configure.in,v retrieving revision 1.567 retrieving revision 1.568 diff -u -u -r1.567 -r1.568 --- configure.in 1 Feb 2004 16:42:44 -0000 1.567 +++ configure.in 5 Feb 2004 10:16:20 -0000 1.568 @@ -178,15 +178,15 @@ [ use_libtool=$withval ], [ use_libtool="yes" ] ) if test "x$use_libtool" = "xyes"; then - lt_compile='$(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) -c $< && touch $@' + lt_compile='$(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) -o $@ -c $< && touch $@' LT_VERSION="-version-info `$get_version libtool $version_hdr APR`" link="\$(LIBTOOL) \$(LTFLAGS) --mode=link \$(LT_LDFLAGS) \$(COMPILE) ${LT_VERSION} \$(ALL_LDFLAGS) -o \$@" so_ext='lo' - lib_target='-rpath $(libdir) $$objects' - export_lib_target='-rpath \$(libdir) \$\$objects' + lib_target='-rpath $(libdir) $(OBJECTS)' + export_lib_target='-rpath \$(libdir) \$(OBJECTS)' else - lt_compile='$(COMPILE) -c $<' - link='$(AR) cr $(TARGET_LIB) $$objects; $(RANLIB) $(TARGET_LIB)' + lt_compile='$(COMPILE) -o $@ -c $<' + link='$(AR) cr $(TARGET_LIB) $(OBJECTS); $(RANLIB) $(TARGET_LIB)' so_ext='o' lib_target='' export_lib_target='' @@ -1873,24 +1873,10 @@ AC_SUBST(LIBTOOL_LIBS) echo "${nl}Construct Makefiles and header files." -MAKEFILE1="Makefile strings/Makefile passwd/Makefile tables/Makefile build/Makefile" -SUBDIRS="strings passwd tables " -for dir in $apr_modules -do - test -d $dir || $MKDIR $dir - if test -f $srcdir/$dir/$OSDIR/Makefile.in; then - MAKEFILE2="$MAKEFILE2 $dir/$OSDIR/Makefile " - SUBDIRS="$SUBDIRS $dir/$OSDIR " - else - MAKEFILE2="$MAKEFILE2 $dir/$DEFAULT_OSDIR/Makefile " - SUBDIRS="$SUBDIRS $dir/$DEFAULT_OSDIR " - fi -done - +MAKEFILES="Makefile" if test -d $srcdir/test; then - MAKEFILE3="test/Makefile test/internal/Makefile" + MAKEFILES="$MAKEFILES test/Makefile test/internal/Makefile" fi -AC_SUBST(SUBDIRS) # # BSD/OS (BSDi) needs to use a different include syntax in the Makefiles @@ -1900,16 +1886,20 @@ # Check whether they've installed GNU make if make --version > /dev/null 2>&1; then INCLUDE_RULES="include $apr_buildout/apr_rules.mk" + INCLUDE_OUTPUTS="include build-outputs.mk" else # BSDi make INCLUDE_RULES=".include \"$apr_buildout/apr_rules.mk\"" + INCLUDE_OUTPUTS=".include \"build-outputs.mk\"" fi ;; *) INCLUDE_RULES="include $apr_buildout/apr_rules.mk" + INCLUDE_OUTPUTS="include build-outputs.mk" ;; esac AC_SUBST(INCLUDE_RULES) +AC_SUBST(INCLUDE_OUTPUTS) SAVE_FILES="include/apr.h include/arch/unix/apr_private.h" @@ -1921,7 +1911,7 @@ test -d $dir || $MKDIR $dir AC_OUTPUT([ - $MAKEFILE1 $MAKEFILE2 $MAKEFILE3 + $MAKEFILES include/apr.h build/apr_rules.mk apr-config @@ -1935,22 +1925,3 @@ done chmod +x apr-config ]) - -dnl ----------------------------- Fixup Makefiles for VPATH support - -changequote({,}) - -if test -n "$USE_VPATH"; then - for makefile in $MAKEFILE1 $MAKEFILE2 $MAKEFILE3; do - cat $makefile | \ - sed \ - -e 's#-I\($(INCDIR[0-9]*)\)#-I\1 -I$(srcdir)/\1#g' \ - -e 's#-I\($(OSDIR[0-9]*)\)#-I\1 -I$(srcdir)/\1#g' \ - -e 's#-I\($(DEFOSDIR[0-9]*)\)#-I\1 -I$(srcdir)/\1#g' \ - > tmp - cp tmp $makefile - done - rm -f tmp -fi - -changequote([,]) 1.1 apr/build.conf Index: build.conf =================================================================== # # Configuration file for APR. Used by APR/build/gen-build.py # [options] paths = atomic/{platform}/*.c dso/{platform}/*.c file_io/{platform}/*.c locks/{platform}/*.c memory/{platform}/*.c misc/{platform}/*.c mmap/{platform}/*.c network_io/{platform}/*.c passwd/*.c poll/{platform}/*.c random/{platform}/*.c shmem/{platform}/*.c strings/*.c support/{platform}/*.c tables/*.c threadproc/{platform}/*.c time/{platform}/*.c user/{platform}/*.c headers = include/*.h # aplibtool is manually built by the configure process # build/aplibtool.c # we have a recursive makefile for the test files (for now) # test/*.c 1.2 +14 -7 apr/build/apr_rules.mk.in Index: apr_rules.mk.in =================================================================== RCS file: /home/cvs/apr/build/apr_rules.mk.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -u -r1.1 -r1.2 --- apr_rules.mk.in 4 Feb 2003 20:56:16 -0000 1.1 +++ apr_rules.mk.in 5 Feb 2004 10:16:21 -0000 1.2 @@ -140,9 +140,9 @@ all-recursive depend-recursive: @otarget=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; \ + list='$(SOURCE_DIRS)'; \ for i in $$list; do \ - if test -d "$$i"; then \ + if test -f "$$i/Makefile"; then \ target="$$otarget"; \ echo "Making $$target in $$i"; \ if test "$$i" = "."; then \ @@ -161,9 +161,9 @@ clean-recursive distclean-recursive extraclean-recursive: @otarget=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS) $(CLEAN_SUBDIRS)'; \ + list='$(CLEAN_SUBDIRS)'; \ for i in $$list; do \ - if test -d "$$i"; then \ + if test -f "$$i/Makefile"; then \ target="$$otarget"; \ echo "Making $$target in $$i"; \ if test "$$i" = "."; then \ @@ -182,10 +182,17 @@ # autoconf 2.5x is creating a 'autom4te.cache' directory # In case someone ran autoconf by hand, get rid of that directory -# aswell. +# as well. local-clean: x-local-clean - $(RM) -f *.o *.lo *.a *.la *.so *.obj $(CLEAN_TARGETS) $(PROGRAMS) - $(RM) -rf .libs autom4te.cache + @list='. $(SOURCE_DIRS)'; \ + for i in $$list; do \ + echo $(RM) -f $$i/*.o $$i/*.lo $$i/*.a $$i/*.la $$i/*.so $$i/*.obj; \ + $(RM) -f $$i/*.o $$i/*.lo $$i/*.a $$i/*.la $$i/*.so $$i/*.obj; \ + echo $(RM) -rf $$i/.libs; \ + $(RM) -rf $$i/.libs; \ + done + $(RM) -f $(CLEAN_TARGETS) $(PROGRAMS) + $(RM) -rf autom4te.cache local-distclean: local-clean x-local-distclean $(RM) -f Makefile $(DISTCLEAN_TARGETS) 1.1 apr/build/gen-build.py Index: gen-build.py =================================================================== #!/usr/bin/env python # # USAGE: gen-build.py TYPE # # where TYPE is one of: make, dsp, vcproj # # It reads build.conf from the current directory, and produces its output # into the current directory. # import os import ConfigParser import getopt import string import glob import re #import ezt def main(): parser = ConfigParser.ConfigParser() parser.read('build.conf') dirs = { } files = get_files(parser.get('options', 'paths')) headers = get_files(parser.get('options', 'headers')) # compute the relevant headers, along with the implied includes legal_deps = map(os.path.basename, headers) h_deps = { } for fname in headers: h_deps[os.path.basename(fname)] = extract_deps(fname, legal_deps) resolve_deps(h_deps) f = open('build-outputs.mk', 'w') f.write('# DO NOT EDIT. AUTOMATICALLY GENERATED.\n\n') objects = [ ] for file in files: assert file[-2:] == '.c' obj = file[:-2] + '.lo' objects.append(obj) dirs[os.path.dirname(file)] = None # what headers does this file include, along with the implied headers deps = extract_deps(file, legal_deps) for hdr in deps.keys(): deps.update(h_deps.get(hdr, {})) f.write('%s: %s %s\n' % (obj, file, string.join(deps.keys(), ' '))) f.write('\nOBJECTS = %s\n\n' % string.join(objects)) f.write('HEADERS = %s\n\n' % string.join(headers)) f.write('SOURCE_DIRS = %s\n\n' % string.join(dirs.keys())) def extract_deps(fname, legal_deps): "Extract the headers this file includes." deps = { } for line in open(fname).readlines(): if line[:8] != '#include': continue inc = _re_include.match(line).group(1) if inc in legal_deps: deps[inc] = None return deps _re_include = re.compile('#include *["<](.*)[">]') def resolve_deps(header_deps): "Alter the provided dictionary to flatten includes-of-includes." altered = 1 while altered: altered = 0 for hdr, deps in header_deps.items(): print hdr, deps start = len(deps) for dep in deps.keys(): deps.update(header_deps.get(dep, {})) if len(deps) != start: altered = 1 def get_files(patterns): patterns = string.replace(patterns, '{platform}', get_platform()) patterns = string.split(string.strip(patterns)) files = [ ] for pat in patterns: files.extend(glob.glob(pat)) return files def get_platform(): return 'unix' if __name__ == '__main__': main() 1.18 +1 -0 apr-util/.cvsignore Index: .cvsignore =================================================================== RCS file: /home/cvs/apr-util/.cvsignore,v retrieving revision 1.17 retrieving revision 1.18 diff -u -u -r1.17 -r1.18 --- .cvsignore 12 Nov 2003 22:24:34 -0000 1.17 +++ .cvsignore 5 Feb 2004 10:16:25 -0000 1.18 @@ -33,3 +33,4 @@ *.sto *.vcproj autom4te.cache +build-outputs.mk 1.79 +14 -39 apr-util/Makefile.in Index: Makefile.in =================================================================== RCS file: /home/cvs/apr-util/Makefile.in,v retrieving revision 1.78 retrieving revision 1.79 diff -u -u -r1.78 -r1.79 --- Makefile.in 3 Feb 2004 09:56:01 -0000 1.78 +++ Makefile.in 5 Feb 2004 10:16:25 -0000 1.79 @@ -17,20 +17,23 @@ TARGET_LIB = lib@APRUTIL_LIBNAME@.la INSTALL_SUBDIRS = @APR_XML_DIR@ -TARGETS = delete-lib $(TARGET_LIB) delete-exports aprutil.exp export_vars.h +TARGETS = $(TARGET_LIB) aprutil.exp export_vars.h # bring in rules.mk for standard functionality @INCLUDE_RULES@ +@INCLUDE_OUTPUTS@ -SUBDIRS = buckets crypto dbm encoding hooks ldap uri xml misc strmatch xlate -CLEAN_SUBDIRS = . test +CLEAN_SUBDIRS = test CLEAN_TARGETS = exports.c export_vars.h aprutil.exp DISTCLEAN_TARGETS = config.cache config.log config.status libtool \ include/private/apu_config.h include/private/apu_private.h \ include/private/apu_select_dbm.h include/apr_ldap.h include/apu.h \ - export_vars.sh apu-config -EXTRACLEAN_TARGETS = configure aclocal.m4 include/private/apu_config.h.in + export_vars.sh apu-config build/rules.mk +EXTRACLEAN_TARGETS = configure aclocal.m4 include/private/apu_config.h.in \ + exports.c export_vars.h uri/uri_delims.h build-outputs.mk \ + build/apr_common.m4 build/find_apr.m4 build/install.sh \ + build/config.guess build/config.sub prefix=@prefix@ exec_prefix=@exec_prefix@ @@ -40,17 +43,6 @@ top_srcdir=@abs_srcdir@ top_blddir=@abs_builddir@ -EXPORT_FILES = $(top_srcdir)/include/*.h - -delete-lib: - @if test -f $(TARGET_LIB); then \ - objects="`find $(SUBDIRS) -name expat -prune -o -name '*.@so_ext@' -a -newer $(TARGET_LIB) -print`" ; \ - if test -n "$$objects"; then \ - echo Found newer objects. Will relink $(TARGET_LIB). ; \ - echo $(RM) -f $(TARGET_LIB) ; \ - $(RM) -f $(TARGET_LIB) ; \ - fi; \ - fi install: $(TARGET_LIB) if [ ! -d $(DESTDIR)$(includedir) ]; then \ @@ -75,27 +67,14 @@ $(LIBTOOL) --mode=install cp apu-config $(DESTDIR)$(bindir) chmod 755 $(DESTDIR)$(bindir)/apu-config -$(TARGET_LIB): - @objects="`find $(SUBDIRS) -name expat -prune -o -name 'gen_uri_delims.@so_ext@' -prune -o -name '*.@so_ext@' -print`"; \ - tmpcmd="$(LINK) @lib_target@ @EXTRA_OS_LINK@"; \ - echo $$tmpcmd; \ - $$tmpcmd && touch $@ - -delete-exports: - @if test -f aprutil.exp; then \ - headers="`find include/*.h -newer aprutil.exp -print`" ; \ - if test -n "$$headers"; then \ - echo Found newer headers. Will rebuild aprutil.exp. ; \ - echo $(RM) -f aprutil.exp exports.c export_vars.h ; \ - $(RM) -f aprutil.exp exports.c export_vars.h; \ - fi \ - fi +$(TARGET_LIB): $(OBJECTS) + $(LINK) @lib_target@ $(ALL_LIBS) -exports.c: - $(AWK) -f @APR_SOURCE_DIR@/build/make_exports.awk $(EXPORT_FILES) > $@ +exports.c: $(HEADERS) + $(AWK) -f @APR_SOURCE_DIR@/build/make_exports.awk $^ > $@ -export_vars.h: - $(AWK) -f @APR_SOURCE_DIR@/build/make_var_export.awk $(EXPORT_FILES) > $@ +export_vars.h: $(HEADERS) + $(AWK) -f @APR_SOURCE_DIR@/build/make_var_export.awk $^ > $@ aprutil.exp: exports.c export_vars.h @echo "#! libaprutil.so" > $@ @@ -109,7 +88,3 @@ check: $(TARGET_LIB) (cd test && $(MAKE) check) - - -.PHONY: delete-lib delete-exports -.NOTPARALLEL: delete-lib delete-exports 1.11 +13 -0 apr-util/buildconf Index: buildconf =================================================================== RCS file: /home/cvs/apr-util/buildconf,v retrieving revision 1.10 retrieving revision 1.11 diff -u -u -r1.10 -r1.11 --- buildconf 3 Feb 2004 10:32:32 -0000 1.10 +++ buildconf 5 Feb 2004 10:16:25 -0000 1.11 @@ -59,6 +59,19 @@ fi # +# Generate the URI delimiter table +# +### this is so stupidly static, that I'm not sure why we generate it... +echo "Generating uri_delims.h ..." +build/gen-uri-delims.py > uri/uri_delims.h + +# +# Generate build-outputs.mk for the build systme +# +echo "Generating 'make' outputs ..." +$apr_src_dir/build/gen-build.py make + +# # If Expat has been bundled, then go and configure the thing # if test -d xml/expat; then 1.72 +5 -1 apr-util/configure.in Index: configure.in =================================================================== RCS file: /home/cvs/apr-util/configure.in,v retrieving revision 1.71 retrieving revision 1.72 diff -u -u -r1.71 -r1.72 --- configure.in 16 Nov 2003 23:00:45 -0000 1.71 +++ configure.in 5 Feb 2004 10:16:25 -0000 1.72 @@ -166,15 +166,19 @@ # Check whether they've installed GNU make if make --version > /dev/null 2>&1; then INCLUDE_RULES="include $abs_builddir/build/rules.mk" + INCLUDE_OUTPUTS="include build-outputs.mk" else INCLUDE_RULES=".include \"$abs_builddir/build/rules.mk\"" + INCLUDE_OUTPUTS=".include \"build-outputs.mk\"" fi ;; *) INCLUDE_RULES="include $abs_builddir/build/rules.mk" + INCLUDE_OUTPUTS="include build-outputs.mk" ;; esac AC_SUBST(INCLUDE_RULES) +AC_SUBST(INCLUDE_OUTPUTS) if test -d ./test; then test_Makefile="test/Makefile" @@ -187,7 +191,7 @@ dnl dnl everthing is done. -MAKEFILES="Makefile buckets/Makefile crypto/Makefile dbm/Makefile dbm/sdbm/Makefile encoding/Makefile hooks/Makefile ldap/Makefile uri/Makefile xml/Makefile misc/Makefile strmatch/Makefile xlate/Makefile $test_Makefile" +MAKEFILES="Makefile $test_Makefile" AC_OUTPUT([ export_vars.sh apu-config 1.1 apr-util/build.conf Index: build.conf =================================================================== # # Configuration file for APRUTIL. Used by APR/build/gen-build.py # [options] paths = buckets/*.c crypto/*.c dbm/*.c dbm/sdbm/*.c encoding/*.c hooks/*.c ldap/*.c misc/*.c uri/apr_uri.c xml/*.c strmatch/*.c xlate/*.c headers = include/*.h # gen_uri_delim.c # we have a recursive makefile for the test files (for now) # test/*.c 1.1 apr-util/build/gen-uri-delims.py Index: gen-uri-delims.py =================================================================== #!/usr/bin/env python # # generates a table of 256 values, where certain characters are # marked "interesting" for the uri parsing process. # # USAGE: # $ gen-uri-delims.py > uri/uri_delims.h # # typically invoked by the "buildconf" script # import sys import string write = sys.stdout.write write('/* this file is automatically generated by gen-uri-delims.py, ' 'do not edit */\n') write('static const unsigned char uri_delims[256] = {') values = [ '0' ] * 256 values[ord(':')] = 'T_COLON' values[ord('/')] = 'T_SLASH' values[ord('?')] = 'T_QUESTION' values[ord('#')] = 'T_HASH' values[0] = 'T_NUL' while values: write('\n %s' % string.join(values[:20], ',')) del values[:20] if values: write(',') write('\n};\n')