Index: build/generator/gen_base.py =================================================================== --- build/generator/gen_base.py (revision 17486) +++ build/generator/gen_base.py (working copy) @@ -553,7 +553,8 @@ self.filename = build_path_join(self.path, lib_filename) ifile = SWIGSource(ipath) - cfile = SWIGObject(build_path_join(self.path, cname), self.lang) + cfile = SWIGObject(build_path_join('$(top_srcdir)', self.path, cname), + self.lang) ofile = SWIGObject(build_path_join(self.path, oname), self.lang) # the .c file depends upon the .i file Index: build/generator/gen_make.py =================================================================== --- build/generator/gen_make.py (revision 17487) +++ build/generator/gen_make.py (working copy) @@ -195,18 +195,10 @@ source_dir = build_path_dirname(source) opts = self.swig.opts[objname.lang] if not self.release_mode: - self.ofile.write('%s: %s\n' % (objname, deps) + + self.ofile.write('$(top_srcdir)/%s: %s\n' % (objname, deps) + '\t$(SWIG) $(SWIG_INCLUDES) %s ' % opts + '-o $@ $(top_srcdir)/%s\n' % source ) - self.ofile.write( - 'autogen-swig-%s: copy-swig-%s\n' % (short[objname.lang], objname) + - 'copy-swig-%s: %s\n' % (objname, objname) + - '\t@if test $(abs_srcdir) != $(abs_builddir) -a ' + - '-r $(abs_srcdir)/%s -a ' % objname + - '! -r $(abs_builddir)/%s; then ' % objname + - 'cp -pf $(abs_srcdir)/%s $(abs_builddir)/%s; fi\n' % (objname, objname) - ) self.ofile.write('\n')