From c6fb54d21a1ce858ffbe4d5178c14d3d1fc54027 Mon Sep 17 00:00:00 2001 From: gstein Date: Sat, 21 Feb 2004 00:31:49 +0000 Subject: Fix the generation of the build-outputs.mk file. That file must remain platform independent since it gets included with the tarball, and the tarball is targeted for all platforms. In this new scheme, the build-outputs.mk includes symbols named OBJECTS_ which specifies the necessary object files for each platform. The apr_rules.mk(.in) file then pulls in the right symbol for the configured platform. Since apr-util directly uses apr_rules.mk, then it picks up the same logic with no change. The build.conf was altered to include a set of platform-independent files, and subdirectories which contain per-platform subdirectories. This was needed to help out the logic which selects object files based on whether a platform is present in each source subdir. (and if a platform subdir is not present, then "parent" gets used instead; e.g. use 'unix' if 'beos' is not in the subdir) Lastly, configure.in was updated to select the appropriate set of objects for the build. * build.conf: (paths): remove per-platform symbols (platform_dirs): new option to list the dirs which have platform subdirs * configure.in: - define and substitute OBJECTS_PLATFORM to reference the platform specific set of objects, which get defined in build-outputs.mk * build/apr_rules.mk.in: - define OBJECTS in terms of the substituted OBJECTS_PLATFORM symbol * build/gen-build.py: (PLATFORMS): the various platforms found in APR. unused, actually. (MAKE_PLATFORMS): the platforms which use a Makefile, and what default platform should be used if SUBDIR/ is not present. (main): update logic to generate multiple OBJECTS_* symbols. this now includes logic to deal with subdirs which may not have a platform subdir for the platform in question, thus needing to default to another. (write_objects): some code factored out of main() to process a list of source files into dependencies lines in the makefile. (get_files): no more need to substitute for {platform}, and simplified some of the .split() stuff. (get_platform): no longer required. we generate for all platforms. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64914 13f79535-47bb-0310-9956-ffa450edef68 --- build.conf | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'build.conf') diff --git a/build.conf b/build.conf index 8d9c84181..0522a1bb7 100644 --- a/build.conf +++ b/build.conf @@ -4,26 +4,19 @@ [options] +# paths to platform-independent .c files to build 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 +# directories that have platform-specific code in them. the resulting +# pattern will be: SUBDIR/PLATFORM/*.c +platform_dirs = + atomic dso file_io locks memory misc mmap network_io poll random + shmem support threadproc time user + +# all the public headers headers = include/*.h # aplibtool is manually built by the configure process -- cgit v1.2.1