./configure : Show all missing packages at once
The simple approach in your case is to install the open-vm-tools
package.
To address your question, there is no fool-proof way of listing all missing packages at once, mostly because this wasn’t designed in and configure
scripts allow their authors to do anything — so there’s no way to know in advance how to continue and whether continuing is safe. An example of the kind of issue you could run into is tests which build upon the results of previous tests; e.g. check for an installed program, fail if it isn’t installed, and use it in subsequent tests if it is. Continuing if the program is absent isn’t going to give very useful results.
However, in many cases you can get useful results by tweaking configure
to not exit when it encounters an error. Typically, this involves replacing AC_MSG_ERROR
with AC_MSG_WARN
, in configure.ac
and any M4 library used by configure.ac
:
sed -i 's/AC_MSG_ERROR/AC_MSG_WARN/g' configure.ac m4/*.m4
autoreconf -i
./configure ...
and look for “WARNING:” messages.
You should of course restore configure.ac
and the M4 libraries before you attempt to build the software “properly”.
Looking at this more generally, there are other ways to determine dependencies. In many cases, they’re listed in the documentation (README
, INSTALL
...), sometimes even with corresponding package names for popular distributions. Another useful place to look is configure
itself, either by running ./configure --help
or by reading configure.ac
(or CMakeLists.txt
or meson.build
or whatever file is appropriate for the build tool being used). If the software you’re looking at is packaged in a Linux distribution, you can look at the metadata there too, although it will only correspond to the version of the software being packaged, and will reflect the maintainer’s packaging choices (apt showsrc ...
in Debian derivatives).
This answer is meant to show a quick way of installing missing dependencies on Debian and Ubuntu (which, if I understand it correctly, is what you actually want to achieve), but does not address your question about making ./configure
report all dependencies at once.
If the software you want to build is already in the repositories (which is the case with open-vm-tools
in Ubuntu, for instance), you can do:
$ apt-get build-dep <packagename>
This will install all the dependencies needed to build that particular version of the package. This is admittedly not the same since the dependency list may somewhat differ between the two versions, but should install the majority (or all) of the missing dependencies.