I asked a similar question some time ago, see Building non-UI programs, e.g., command-line tools, servers, etc