I'm trying to install libiconv-1.13.1 on a solaris 9 system that
currently has v1.9 installed, but I run into an error during both 'make
check' and 'make install'. ...

I'm using
./configure --prefix=/opt/local
make
make check
make install prefix=/opt/local/software/libiconv-1.13.1

Modifying the prefix variable at install time, after a different prefix has
already been hardwired into the shared libraries and executables, is not
supported. (It is also not mentioned in the INSTALL.generic file.)
If you want to install the package in /opt/local/software/libiconv-1.13.1
you can do it like this:
./configure --prefix=/opt/local/software/libiconv-1.13.1
make
make check
make install
If you want to have it in both /opt/local and
/opt/local/software/libiconv-1.13.1,
you can configure and install it twice; but be sure to do "make distclean"
in between.
If you want to use a "staged" installed, you can either use the DESTDIR
variable or the GNU source installer by Claudio Fontana. But this may not work
right if you have an older version of GNU libiconv installed (due to the way the
linker works on some platforms). So in this case better install the newer
libiconv first, then "make distclean", then you can do the staged install.
Bruno

We've been using stow for many years to distribute binaries to our
various servers and the way that I've found that works best is

./configure --prefix=/opt/local
make
make install prefix=/opt/local/software/packagename

The distribution package gets put into /opt/local/software/packagename
and then stow links it into /opt/local, which is first in our executable
search path. This works without any tweaking about 95% of the time.
When it needs tweaking, it just involves moving subdirectories in the
distribution tree up 2 levels.

I'll try DESTDIR, but it seems to me that I've tried it in the past and
it didn't produce stowable results.