Build shared library when linking executables dynamically
Dynamically linking executables will fail without a shared library unless the executables do not depend on the library or there is no library. If there is no library, building shared libraries comes at no cost. If there is a library, the executables usually depend on it, so it makes sense to --enable-shared. If the user passes --disable-shared, it will still be honored, but a warning will be produced.