Email 1:

You need to use gmake rather than /usr/ccs/bin/make.

First build pfft++, changing fastimpRelease/pfft++/def.makefile 
to use /usr/local/bin/gcc, assuming you've installed it there:

  # if you installed the newer version gcc and g++, it will be in here
  GCC_ROOT         = /usr/local/bin
  # the default place for gcc and g++
  #GCC_ROOT         = /usr/bin

and set LD_ROOT to /usr/ccs/bin, the Solaris native ld:

  LD_ROOT         = /usr/ccs/bin

Since there is no need for ranlib on Solaris, I just changed 
it to touch the lib instead:

  RANLIB          = /usr/bin/touch

Make these same changes to fastimpRelease/fastImp/def.makefile.
You also need to modify fastimpRelease/fastImp/src/SuperLU/SRC/supermatrix.h,
inserting the following series of #undefs prior to the definition
of Dtype_t:

#ifdef _S
#undef _S
#endif
#ifdef _D
#undef _D
#endif
#ifdef _C
#undef _C
#endif
#ifdef _Z
#undef _Z
#endif
typedef enum {
    _S,         /* single */
    _D,         /* double */
    _C,         /* single complex */
    _Z          /* double complex */
} Dtype_t;

This is necessary because, on Solaris, symbols like `_S'
are defined as macros /usr/include/iso/ctype_iso.h.
With that change, fastImp builds nicely.

-SEan

------------------------
Email 2:

I forgot to mention one other change - in FastImp/src/surf/surfMain.h,
I changed #include <getopt.h> to <stdlib.h>. Solaris doesn't have a 
separate getopt.h, and i think <stdlib.h> will define getopt() on most
posix platforms.

-SEan