|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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_<plat> 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/<platform> 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
|
|
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.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64891 13f79535-47bb-0310-9956-ffa450edef68
|