Changeset: a039920c4e6d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a039920c4e6d
Modified Files:
buildtools/autogen/autogen/am.py
Branch: default
Log Message:
Look into .gemspec files to create Makefile.am.
diffs (55 lines):
diff -r 5b84ea371180 -r a039920c4e6d buildtools/autogen/autogen/am.py
--- a/buildtools/autogen/autogen/am.py Tue Jan 04 17:16:14 2011 +0100
+++ b/buildtools/autogen/autogen/am.py Wed Jan 05 10:04:15 2011 +0100
@@ -18,6 +18,7 @@
import string
import os
from codegen import find_org
+import re
#automake_ext = ['c', 'h', 'y', 'l', 'glue.c']
automake_ext = ['', 'c', 'def', 'glue.c', 'h', 'lo', 'o', 'php.c', 'pm.c',
@@ -953,6 +954,7 @@
am_deps(fd, libsmap['DEPS'], am)
def am_gem(fd, var, gem, am):
+ gemre = re.compile(r'\.files *= *\[ *(.*[^ ]) *\]')
rd = 'RUBY_DIR'
if gem.has_key('DIR'):
rd = gem['DIR'][0]
@@ -964,16 +966,32 @@
fd.write(' %s' % f[:-4])
fd.write('\n')
for f in gem['FILES']:
+ srcs = map(lambda x: x.strip('" '),
+ gemre.search(open(os.path.join(am['CWDRAW'],
f)).read()).group(1).split(', '))
+ srcs.append(f)
sf = f.replace('.', '_')
am['INSTALL'].append(sf)
am['UNINSTALL'].append(sf)
- fd.write('%s: %s\n' % (f[:-4], f))
- fd.write('\td=$(dir $<); [ "$$d" -ef . ] || (cd "$$d"; tar cf - %s
`sed -n \'/.*\.files *= *\[ */{s///;s/ *\].*//;s/"//g;s/ *, */ /g;p;}\' "%s"`)
| tar xvf - > files-to-be-cleaned\n' % (f, f))
+ fd.write('%s: %s\n' % (f[:-4], ' '.join(srcs)))
+ dirs = []
+ for src in srcs:
+ if '/' in src:
+ d = os.path.dirname(src)
+ if d not in dirs:
+ fd.write('\t[ $(srcdir) -ef . ] || mkdir -p %s\n' %
os.path.dirname(src))
+ dirs.append(d)
+ while '/' in d:
+ d = os.path.dirname(d)
+ dirs.append(d)
+ fd.write('\t[ $(srcdir) -ef . ] || cp -p $(srcdir)/%s %s\n' %
(src, src))
fd.write('\tgem build %s\n' % f)
fd.write('mostlyclean-local: mostlyclean-local-%s\n' % sf)
fd.write('.PHONY: mostlyclean-local-%s\n' % sf)
fd.write('mostlyclean-local-%s:\n' % sf)
- fd.write('\t[ ! -f files-to-be-cleaned ] || rm -f `cat
files-to-be-cleaned` files-to-be-cleaned\n')
+ for src in srcs:
+ fd.write('\t[ $(srcdir) -ef . ] || rm -f %s\n' % src)
+ for d in sorted(dirs, reverse = True):
+ fd.write('\t[ $(srcdir) -ef . ] || rmdir %s\n' % d)
fd.write('install-exec-local-%s: %s\n' % (sf, f[:-4]))
fd.write('\tmkdir -p $(DESTDIR)%s\n' % rd)
fd.write('\tgem install --local --install-dir $(DESTDIR)%s --force
--rdoc %s\n' % (rd, f[:-4]))
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list