Makefiles: use actual archive managers

There is no reason to not use an archive manager to build our
executables.  If there really are systems which don't have any kind of
archive manager, we can simply link all the objects.

This also drops any use of configure to detect library objects.
Instead just use HAVE_* and let the archive manager delete them.

A lot of additional functions could be declared library functions and
reorganized.

***FIX*** Mkfiles/*.mak have not yet been updated.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
diff --git a/lib/snprintf.c b/lib/snprintf.c
index 01734dc..95bfc31 100644
--- a/lib/snprintf.c
+++ b/lib/snprintf.c
@@ -12,6 +12,8 @@
 
 #include "nasmlib.h"
 
+#if !defined(HAVE_SNPRINTF) && !defined(HAVE__SNPRINTF)
+
 int snprintf(char *str, size_t size, const char *format, ...)
 {
     va_list ap;
@@ -23,3 +25,5 @@
 
     return rv;
 }
+
+#endif