Index: Makefile.in =================================================================== --- Makefile.in (revision 17934) +++ Makefile.in (working copy) @@ -607,7 +607,7 @@ extraclean-swig: extraclean-swig-headers extraclean-swig-py \ extraclean-swig-rb extraclean-swig-pl -EXTRACLEAN_SWIG_HEADERS=rm -f $(SWIG_SRC_DIR)/proxy/*.swg +EXTRACLEAN_SWIG_HEADERS=rm -f $(SWIG_BUILD_DIR)/proxy/*.swg clean-swig-headers: if test -z "$(RELEASE_MODE)"; then \ @@ -627,7 +627,8 @@ libsvn_fs libsvn_ra libsvn_repos libsvn_subr libsvn_wc libsvn_swig_perl \ $(SWIG_PL_DIR)/native/Makefile swig-pl: $(swig-pl_DEPS) - if test "$(SWIG_PL_DIR)" != "$(SWIG_PL_SRC_DIR)"; then \ + if test "$(SWIG_PL_DIR)" != "$(SWIG_PL_SRC_DIR)" && \ + ! test -z "$(RELEASE_MODE)"; then \ ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \ fi cd $(SWIG_PL_DIR)/native; $(MAKE) @@ -638,8 +639,8 @@ install-swig-pl: swig-pl install-swig-pl-lib cd $(SWIG_PL_DIR)/native; $(MAKE) install -EXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \ - $(SWIG_PL_SRC_DIR)/native/core.c +EXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_DIR)/native/svn_*.c \ + $(SWIG_PL_DIR)/native/core.c # Running Makefile.PL at this point *fails* (cannot find ..../.libs) so if the # Makefile does not exist, DO NOT try to make it. But, if it doesn't exist, @@ -664,7 +665,12 @@ mkdir $(SWIG_PY_DIR)/libsvn copy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsvn - @cp -pf $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/libsvn + @if test -z "$(RELEASE_MODE)"; then \ + cp -pf $(SWIG_PY_SRC_DIR)/__init__.py $(SWIG_PY_DIR)/libsvn; \ + cp -pf $(SWIG_PY_DIR)/*.py $(SWIG_PY_DIR)/libsvn; \ + else \ + cp -pf $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/libsvn; \ + fi swig-py: autogen-swig-py copy-swig-py @@ -672,8 +678,8 @@ cd $(SWIG_PY_DIR); \ $(PYTHON) $(SWIG_PY_SRC_DIR)/tests/run_all.py -EXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_SRC_DIR)/svn_*.c $(SWIG_PY_SRC_DIR)/core.c \ - $(SWIG_PY_SRC_DIR)/[a-z]*.py +EXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_DIR)/svn_*.c $(SWIG_PY_DIR)/core.c \ + $(SWIG_PY_DIR)/[a-z]*.py clean-swig-py: rm -rf $(SWIG_PY_DIR)/libsvn if test -z "$(RELEASE_MODE)"; then \ @@ -696,7 +702,7 @@ $(SWIG_RB_SRC_DIR)/test/run-test.rb \ --verbose=$(SWIG_RB_TEST_VERBOSE) -EXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c +EXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_DIR)/svn_*.c $(SWIG_RB_DIR)/core.c clean-swig-rb: rm -rf $(SWIG_RB_DIR)/test/repos $(SWIG_RB_DIR)/test/wc Index: build/generator/gen_base.py =================================================================== --- build/generator/gen_base.py (revision 17934) +++ build/generator/gen_base.py (working copy) @@ -264,13 +264,14 @@ self.source_generated = 0 class SWIGObject(ObjectFile): - def __init__(self, filename, lang): + def __init__(self, filename, lang, release_mode): ObjectFile.__init__(self, filename) self.lang = lang self.lang_abbrev = lang_abbrev[lang] ### hmm. this is Makefile-specific self.compile_cmd = '$(COMPILE_%s_WRAPPER)' % string.upper(self.lang_abbrev) - self.source_generated = 1 + if not release_mode: + self.source_generated = 1 class HeaderFile(DependencyNode): def __init__(self, filename, classname = None, compile_cmd = None): @@ -518,6 +519,7 @@ self.lang = lang self.desc = self.desc + ' for ' + lang_full_name[lang] self.include_runtime = options.get('include-runtime') == 'yes' + self.release_mode = gen_obj.release_mode ### hmm. this is Makefile-specific self.link_cmd = '$(LINK_%s_WRAPPER)' % string.upper(lang_abbrev[lang]) @@ -552,12 +554,14 @@ self.path = build_path_join(self.path, self.lang) if self.lang == "perl": self.path = build_path_join(self.path, "native") + self.gen_obj.target_dirs.append(self.path) self.filename = build_path_join(self.path, lib_filename) ifile = SWIGSource(ipath) - cfile = SWIGObject(build_path_join('$(top_srcdir)', self.path, cname), - self.lang) - ofile = SWIGObject(build_path_join(self.path, oname), self.lang) + cpath = build_path_join(self.path, cname) + cfile = SWIGObject(cpath, self.lang, self.release_mode) + opath = build_path_join(self.path, oname) + ofile = SWIGObject(opath, self.lang, self.release_mode) # the .c file depends upon the .i file self.gen_obj.graph.add(DT_SWIG_C, cfile, ifile) Index: build/generator/swig/header_wrappers.py =================================================================== --- build/generator/swig/header_wrappers.py (revision 17934) +++ build/generator/swig/header_wrappers.py (working copy) @@ -30,16 +30,16 @@ """Write makefile rules for generating SWIG wrappers for Subversion header files.""" wrapper_fnames = [] - python_script = '$(abs_srcdir)/build/generator/swig/header_wrappers.py' - makefile.write('GEN_SWIG_WRAPPER = cd $(top_srcdir) && $(PYTHON)' + - ' %s build.conf $(SWIG)\n\n' % python_script) + python_script = '$(top_srcdir)/build/generator/swig/header_wrappers.py' + makefile.write('GEN_SWIG_WRAPPER = $(PYTHON) %s' % python_script + + ' $(top_srcdir)/build.conf $(SWIG)\n\n') for fname in self.includes: wrapper_fname = build_path_join(self.proxy_dir, self.proxy_filename(build_path_basename(fname))) wrapper_fnames.append(wrapper_fname) makefile.write( '%s: %s %s\n' % (wrapper_fname, fname, python_script) + - '\t$(GEN_SWIG_WRAPPER) %s\n\n' % fname + '\t$(GEN_SWIG_WRAPPER) $(top_srcdir)/%s\n\n' % fname ) makefile.write('SWIG_WRAPPERS = %s\n\n' % string.join(wrapper_fnames)) for short_name in self.short.values(): Index: build/generator/swig/external_runtime.py =================================================================== --- build/generator/swig/external_runtime.py (revision 17934) +++ build/generator/swig/external_runtime.py (working copy) @@ -22,9 +22,10 @@ def write_makefile_rules(self, makefile): """Write the makefile rules for generating external runtimes""" + script_dir = '$(top_srcdir)/build/generator/swig/external_runtime.py' makefile.write( - 'GEN_SWIG_RUNTIME = cd $(top_srcdir) && $(PYTHON)' + - ' build/generator/swig/external_runtime.py build.conf $(SWIG)\n\n' + 'GEN_SWIG_RUNTIME = $(PYTHON) %s' % script_dir + + ' $(top_srcdir)/build.conf $(SWIG)\n\n' ) for lang in self.langs: out = self._output_file(lang) Index: build/generator/swig/checkout_swig_header.py =================================================================== --- build/generator/swig/checkout_swig_header.py (revision 17934) +++ build/generator/swig/checkout_swig_header.py (working copy) @@ -20,9 +20,9 @@ def write_makefile_rules(self, makefile): """Write makefile rules to checkout files""" - script_path = 'build/generator/swig/checkout_swig_header.py' - conf = '$(abs_srcdir)/build.conf' - makefile.write('CHECKOUT_SWIG = cd $(top_srcdir) && $(PYTHON)' + + script_path = '$(top_srcdir)/build/generator/swig/checkout_swig_header.py' + conf = '$(top_srcdir)/build.conf' + makefile.write('CHECKOUT_SWIG = $(PYTHON)' + ' %s %s $(SWIG)\n\n' % (script_path, conf)) checkout_locations = [] for path in self.swig_checkout_files: