I am working on the first project I have ever developed under the GNU build environment. I am trying to get the package to build on as many OS's as possible. It is being developed on Linux and now I am trying to get it to build on Solaris. I would like to have it work with the Cygnus environment as well if possible. I have run into a problem that I can solve, but I don't know how to get the GNU environment to help me solve it for both Linux and Solaris, but it seems like autoconf, configure, and automake ought to be able to offer something. I use threads and sockets in the code. On Linux, that just compiles and works. Matter of fact, it requires that there NOT be a -lsocket switch. On Solaris, it needs the -lsocket to link. Similarly, WAIT_ANY is a defined constant on Linux, but not on Solaris for waitpid; gettext is not present on Solaris, but is on Linux; semaphore do not require the -lrt on Linux linker command, but Solaris does; I am sure there are more things lurking as well. How do other people solve these issues?