A: Yes, actually.
I'd like to see the whole setup program depricated as we go on with development. It really just serves two purposes: (1) an interactive guide through the too-complicated install process, and (2) (most important for your question) it takes a handful of site-specific numbers and strings and writes them into all the files which were installed.
This was considered a good idea at the time, as it meant that any random customer's copy of xreqadm would always point back to our server and know how to talk to it, without needing to answer calls from people who couldn't configure their clients, etc.
However, I'm starting to think that it would have been easier to just hard-code a path to a configuration file somewhere in the build process and allow run-time overrides to that. (Remember that originally we were only able to give out binary copies, not sources.)
Anyway, the point is that if you had another way to get your site values into the program when it's compiled, you'd never need to run setup at all.
Here's how you do that:
(This is a sort of an unadvertised feature, so I haven't tested it with the latest release, but I know of no reason it shoulnd't work with the changes most recently made.)
In the src directory, you'll notice various config.* files. These define what site parameters will be installed by "setup". The default one used is config.conf, which looks like this:
string 1 32 reqadm.mydomain.com#REQADM server hostname \____/ | \/ \_________________/ \____________________/ | | | | | type ID maxsize value setup prompt number 1 6688 REQADM server TCP port number \____/ | | \___________________________/ | | | | type ID value setup promptYou'll also note the src directory has some other config files, like config.internal - internally built copies
When you run ./configure to create a build directory, you can give it the following options:
-d use config.internal, don't require setup -e use config.exp, don't require setup -dc foo use config.foo, don't require setupUsing these options causes configure to arrange the Makefile so that the binaries are built with the contents of the config.* file (which will always be copied as "config.conf" in the build directory) in a ready-to-use form, rather than just a placeholder for "setup" to fill in.
In other words, you can execute immediately after building the new binaries.
so: