You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by John Mark Vandenberg <ja...@gmail.com> on 2006/04/15 03:41:21 UTC
[patch 03/17] build conf
The changes to gen-build.py permit any platform to inherit files from the
platforms specified in the second parameter in MAKE_PLATFORMS.
This patch needs more work before it is committed.
Index: build.conf
===================================================================
--- build.conf.orig
+++ build.conf
@@ -24,3 +24,24 @@ headers = include/*.h
# we have a recursive makefile for the test files (for now)
# test/*.c
+
+[win32]
+
+inherit =
+ filepath_util
+ fullrw
+ fileacc
+ copy
+ tempdir
+ mktemp
+ errorcodes
+ getopt
+ inet_pton
+ inet_ntop
+ sockaddr
+ select
+ apr_pools # the empty memory/win32 directory makes this necessary
+ global_mutex
+ version
+ otherchild
+
Index: build/gen-build.py
===================================================================
--- build/gen-build.py.orig
+++ build/gen-build.py
@@ -29,6 +29,7 @@ MAKE_PLATFORMS = [
('beos', 'unix'),
('os2', 'unix'),
('os390', 'unix'),
+ ('win32', 'unix'),
]
# note: MAKE_PLATFORMS is an ordered set. we want to generate unix symbols
# first, so that the later platforms can reference them.
@@ -66,8 +67,29 @@ def main():
group = [ '$(OBJECTS_all)' ]
for subdir in string.split(parser.get('options', 'platform_dirs')):
+ try:
+ inherit = string.split(parser.get(platform, 'inherit'))
+ except ConfigParser.NoSectionError:
+ inherit = None;
+
+ inherited_files = []
+ inherited_objects = []
+ if inherit:
+ path = '%s/%s' % (subdir, parent)
+ if os.path.exists(path):
+ for file in inherit:
+ file = '%s/%s.c' % (path,file)
+ if os.path.isfile(file):
+ inherited_files.append(file)
+ if inherited_files:
+ inherited_objects, _unused = write_objects(f, legal_deps, h_deps, inherited_files)
+ inherited_symname = 'OBJECTS_%s_%s_inherit' % (subdir, platform)
+ f.write('\n%s = %s\n\n' % (inherited_symname, string.join(inherited_objects)))
+ group.append('$(%s)' % inherited_symname)
+
path = '%s/%s' % (subdir, platform)
- if not os.path.exists(path):
+
+ if not inherited_files and not os.path.exists(path):
# this subdir doesn't have a subdir for this platform, so we'll
# use the parent-platform's set of symbols
if parent:
@@ -164,7 +186,8 @@ def resolve_deps(header_deps):
def get_files(patterns):
files = [ ]
for pat in string.split(patterns):
- files.extend(glob.glob(pat))
+ for file in glob.glob(pat):
+ files.extend([file.replace('\\','/')])
return files
--
Re: [patch 03/17] build conf
Posted by Justin Erenkrantz <ju...@erenkrantz.com>.
On 4/14/06, John Mark Vandenberg <ja...@gmail.com> wrote:
> The changes to gen-build.py permit any platform to inherit files from the
> platforms specified in the second parameter in MAKE_PLATFORMS.
>
> This patch needs more work before it is committed.
I went a different route - reading the libapr.dsp file instead, but
this general concept is now in r421038.
Thanks. -- justin