Make "unix" target be crossplatform and support x86, x64, ARM hosts.
diff --git a/unix/mpconfig.h b/unix/mpconfig.h
index a358d7d..3d0dc8a 100644
--- a/unix/mpconfig.h
+++ b/unix/mpconfig.h
@@ -8,10 +8,22 @@
 
 // type definitions for the specific machine
 
-#define BYTES_PER_WORD (8)
+#ifdef __LP64__
+typedef long machine_int_t; // must be pointer size
+typedef unsigned long machine_uint_t; // must be pointer size
+#define UINT_FMT "%lu"
+#define INT_FMT "%ld"
+#else
+// These are definitions for machines where sizeof(int) == sizeof(void*),
+// regardless for actual size.
+typedef int machine_int_t; // must be pointer size
+typedef unsigned int machine_uint_t; // must be pointer size
+#define UINT_FMT "%u"
+#define INT_FMT "%d"
+#endif
 
-typedef int64_t machine_int_t; // must be pointer size
-typedef uint64_t machine_uint_t; // must be pointer size
+#define BYTES_PER_WORD sizeof(machine_int_t)
+
 typedef void *machine_ptr_t; // must be of pointer size
 typedef const void *machine_const_ptr_t; // must be of pointer size
 typedef double machine_float_t;