Ben Reser wrote on Thu, Aug 15, 2013 at 21:27:40 -0700:
> Probably should fix 1.7.x to not try to use the none command when ruby
> isn't detected and to emit a proper error message.
FWIW, this is reproducible in trunk,
% RUBY=none ./configure
% make
% make swig-rb
I've looked into a patch. Attached is what I came up with. I'm not
sure there isn't a simpler way, so posting here. The idea of the patch
is to prefix a '.swig_checked-rb' to both instances of the 'swig-rb'
targets and to check $(RUBY) in there, so 'make swig-rb' might generate
swig wrappers (if $(SWIG) != 'none') but will then fail when it gets to
the part that require a 'ruby' binary.
With the patch applied, I get:
% ./autogen.sh >/dev/null && rm -f config.cache && RUBY=none ../*ce -q && make
-sj4
% make swig-rb
Ruby not found by configure
make: *** [.swig_checked-rb] Error 1
zsh: exit 2 make swig-rb
Index: Makefile.in
===================================================================
--- Makefile.in (revision 1515085)
+++ Makefile.in (working copy)
@@ -768,6 +768,7 @@ extraclean-bindings: clean-swig extraclean-swig-he
clean-swig: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
@rm -f .swig_checked
+ @rm -f .swig_checked-pl .swig_checked-rb .swig_checked-py
EXTRACLEAN_SWIG_HEADERS=rm -f $(SWIG_SRC_DIR)/proxy/*.swg
@@ -793,7 +794,7 @@ READLINK_PL=$(PERL) -e 'use Cwd; print Cwd::realpa
swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
$(SWIG_PL_DIR)/native/Makefile
-swig-pl: $(swig-pl_DEPS)
+swig-pl: .swig_checked-pl $(swig-pl_DEPS)
if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \
ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \
fi
@@ -836,7 +837,7 @@ copy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsv
done
@touch $(SWIG_PY_DIR)/libsvn/__init__.py
-swig-py: autogen-swig-py copy-swig-py
+swig-py: .swig_checked-py autogen-swig-py copy-swig-py
check-swig-py: swig-py
$(TEST_SHLIB_VAR_SWIG_PY) \
@@ -859,7 +860,7 @@ clean-swig-py:
extraclean-swig-py: clean-swig-py
$(EXTRACLEAN_SWIG_PY)
-swig-rb: autogen-swig-rb
+swig-rb: .swig_checked-rb autogen-swig-rb
check-swig-rb: swig-rb svnserve
$(TEST_SHLIB_VAR_SWIG_RB) \
Index: autogen.sh
===================================================================
--- autogen.sh (revision 1515085)
+++ autogen.sh (working copy)
@@ -143,6 +143,7 @@ if test -n "$RELEASE_MODE"; then
# Remove the .swig_checked file
rm -f .swig_checked
+ rm -f .swig_checked-pl .swig_checked-rb .swig_checked-py
fi
if test -n "$SKIP_DEPS"; then
Index: build/generator/gen_make.py
===================================================================
--- build/generator/gen_make.py (revision 1515085)
+++ build/generator/gen_make.py (working copy)
@@ -355,6 +355,9 @@ class Generator(gen_base.GeneratorBase):
outputs = [ ]
+ if itype in ['swig-rb', 'swig-py', 'swig-pl']:
+ outputs.append('.swig_checked-' + itype[5:])
+
for t in i_targets:
if hasattr(t, 'filename'):
outputs.append(t.filename)
Index: build/generator/templates/build-outputs.mk.ezt
===================================================================
--- build/generator/templates/build-outputs.mk.ezt (revision 1515085)
+++ build/generator/templates/build-outputs.mk.ezt (working copy)
@@ -90,6 +90,21 @@ autogen-swig: autogen-swig-[swig_langs.short]
fi
@touch .swig_checked
+.swig_checked-rb:
+ @if test "$(RUBY)" = "none"; then \
+ echo "Ruby not found by configure" >&2; exit 1; \
+ fi
+ @touch .swig_checked-rb
+.swig_checked-pl:
+ @if test "$(PERL)" = "none"; then \
+ echo "Perl not found by configure" >&2; exit 1; \
+ fi
+ @touch .swig_checked-pl
+.swig_checked-py:
+ @if test "$(PYTHON)" = "none"; then \
+ echo "Python not found by configure" >&2; exit 1; \
+ fi
+ @touch .swig_checked-py
########################################
# Section 5: Individual target build rules
Index: configure.ac
===================================================================
--- configure.ac (revision 1515085)
+++ configure.ac (working copy)
@@ -1544,6 +1544,7 @@ AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
# Ensure that SWIG is checked after reconfiguration.
rm -f .swig_checked
+rm -f .swig_checked-pl .swig_checked-rb .swig_checked-py
dnl Provide ${host} for use in compiled code (for svn --version)
AC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}",
Index: .
===================================================================
--- . (revision 1515085)
+++ . (working copy)
Property changes on: .
___________________________________________________________________
Modified: svn:ignore
## -8,6 +8,9 ##
libtool
.gdb_history
.swig_checked
+.swig_checked-py
+.swig_checked-pl
+.swig_checked-rb
*.orig
*.rej
TAGS