diff --git c/libcody/Makefile.in w/libcody/Makefile.in
index 28ed3a22299..a0722f9a385 100644
--- c/libcody/Makefile.in
+++ w/libcody/Makefile.in
@@ -48,6 +48,7 @@ SHELL := $(shell which zsh 2>/dev/null >/dev/null && echo zsh \
 # We have to place the -I paths last, so that building will see -I paths to us
 CXX := $(filter-out -I%,@CXX@)
 AR := @AR@
+RANLIB := @RANLIB@
 INSTALL := $(srcdir)/build-aux/install-sh
 
 # C++ compiler options
diff --git c/libcody/Makesub.in w/libcody/Makesub.in
index 0bfe6f6c1b3..6ae49d6c793 100644
--- c/libcody/Makesub.in
+++ w/libcody/Makesub.in
@@ -19,6 +19,7 @@ all:: libcody.a
 
 libcody.a: $(LIBCODY.O)
 	$(AR) -cr $@ $^
+	$(RANLIB) $@
 
 clean::
 	rm -f $(LIBCODY.O) $(LIBCODY.O:.o=.d)
diff --git c/libcody/configure w/libcody/configure
index b9967a1cd8d..af3a3074a35 100755
--- c/libcody/configure
+++ w/libcody/configure
@@ -590,6 +590,7 @@ LIBOBJS
 ALOY
 DOXYGEN
 AR
+RANLIB
 EXCEPTIONS
 PICFLAG
 CONFIG_FILES
@@ -2791,6 +2792,98 @@ fi
 
 ac_config_headers="$ac_config_headers config.h"
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
diff --git c/libcody/configure.ac w/libcody/configure.ac
index 511fe261b45..598e585a91b 100644
--- c/libcody/configure.ac
+++ w/libcody/configure.ac
@@ -76,6 +76,7 @@ AC_SUBST(PICFLAG)
 NMS_ENABLE_EXCEPTIONS
 
 AC_CONFIG_HEADERS([config.h])
+AC_PROG_RANLIB
 AC_CHECK_TOOL([AR],[ar])
 AC_CHECK_PROG([DOXYGEN],[doxygen],[doxygen],[: NOTdoxygen])
 AC_CHECK_PROG([ALOY],[aloy],[aloy],[: Joust testsuite missing])
