Find the bitsize includes automatically; document new build procedure.

diff --git a/include/bits32/limits.h b/include/bits32/limits.h
deleted file mode 100644
index f90e524..0000000
--- a/include/bits32/limits.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * bits32/limits.h
- */
-
-#ifndef _BITSIZE_LIMITS_H
-#define _BITSIZE_LIMITS_H
-
-#define LONG_BIT	32
-
-#define LONG_MIN	(-2147483647L-1)
-#define LONG_MAX	2147483647L
-#define ULONG_MAX	4294967295UL
-
-#endif /* _BITSIZE_LIMITS_H */
diff --git a/include/bits32/stddef.h b/include/bits32/stddef.h
deleted file mode 100644
index 36d267c..0000000
--- a/include/bits32/stddef.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * bits32/stddef.h
- */
-
-#ifndef _BITSIZE_STDDEF_H
-#define _BITSIZE_STDDEF_H
-
-#define _SIZE_T
-typedef unsigned int size_t;
-#define _PTRDIFF_T
-typedef signed int   ptrdiff_t;
-
-#endif /* _BITSIZE_STDDEF_H */
diff --git a/include/bits32/stdint.h b/include/bits32/stdint.h
deleted file mode 100644
index 40b4649..0000000
--- a/include/bits32/stdint.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * bits32/stdint.h
- */
-
-#ifndef _BITSIZE_STDINT_H
-#define _BITSIZE_STDINT_H
-
-typedef signed char 		int8_t;
-typedef short int		int16_t;
-typedef int			int32_t;
-typedef long long int		int64_t;
-
-typedef unsigned char 		uint8_t;
-typedef unsigned short int	uint16_t;
-typedef unsigned int		uint32_t;
-typedef unsigned long long int	uint64_t;
-
-typedef int			int_fast16_t;
-typedef int			int_fast32_t;
-
-typedef unsigned int		uint_fast16_t;
-typedef unsigned int		uint_fast32_t;
-
-typedef int			intptr_t;
-typedef unsigned int		uintptr_t;
-
-#define __INT64_C(c)   c ## LL
-#define __UINT64_C(c)  c ## ULL
-
-#define __PRI64_RANK   "ll"
-#define __PRIFAST_RANK ""
-#define __PRIPTR_RANK  ""
-
-#endif /* _BITSIZE_STDINT_H */
diff --git a/include/bits32/stdintconst.h b/include/bits32/stdintconst.h
deleted file mode 100644
index 8157dd0..0000000
--- a/include/bits32/stdintconst.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * bits32/stdintconst.h
- */
-
-#ifndef _BITSIZE_STDINTCONST_H
-#define _BITSIZE_STDINTCONST_H
-
-#define INT_FAST16_C(c)	 INT32_C(c)
-#define INT_FAST32_C(c)  INT32_C(c)
-
-#define UINT_FAST16_C(c) UINT32_C(c)
-#define UINT_FAST32_C(c) UINT32_C(c)
-
-#define INTPTR_C(c)	 INT32_C(c)
-#define UINTPTR_C(c)	 UINT32_C(c)
-#define PTRDIFF_C(c)     INT32_C(c)
-
-#endif /* _BITSIZE_STDINTCONST_H */
diff --git a/include/bits32/stdintlimits.h b/include/bits32/stdintlimits.h
deleted file mode 100644
index b44fe01..0000000
--- a/include/bits32/stdintlimits.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * bits32/stdintlimits.h
- */
-
-#ifndef _BITSIZE_STDINTLIMITS_H
-#define _BITSIZE_STDINTLIMITS_H
-
-#define INT_FAST16_MIN	INT32_MIN
-#define INT_FAST32_MIN	INT32_MIN
-#define INT_FAST16_MAX	INT32_MAX
-#define INT_FAST32_MAX	INT32_MAX
-#define UINT_FAST16_MAX UINT32_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-
-#define INTPTR_MIN	INT32_MIN
-#define INTPTR_MAX	INT32_MAX
-#define UINTPTR_MAX	UINT32_MAX
-
-#define PTRDIFF_MIN	INT32_MIN
-#define PTRDIFF_MAX	INT32_MAX
-
-#endif /* _BITSIZE_STDINTLIMITS_H */
diff --git a/include/bits64/limits.h b/include/bits64/limits.h
deleted file mode 100644
index 7b20da0..0000000
--- a/include/bits64/limits.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * bits64/limits.h
- */
-
-#ifndef _BITSIZE_LIMITS_H
-#define _BITSIZE_LIMITS_H
-
-#define LONG_BIT	64
-
-#define LONG_MIN	(-9223372036854775807L-1)
-#define LONG_MAX	9223372036854775807L
-#define ULONG_MAX	18446744073709551615UL
-
-#endif /* _BITSIZE_LIMITS_H */
diff --git a/include/bits64/stddef.h b/include/bits64/stddef.h
deleted file mode 100644
index 3e72621..0000000
--- a/include/bits64/stddef.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * bits64/stddef.h
- */
-
-#ifndef _BITSIZE_STDDEF_H
-#define _BITSIZE_STDDEF_H
-
-#define _SIZE_T
-typedef unsigned long size_t;
-#define _PTRDIFF_T
-typedef signed long   ptrdiff_t;
-
-#endif /* _BITSIZE_STDDEF_H */
diff --git a/include/bits64/stdint.h b/include/bits64/stdint.h
deleted file mode 100644
index f569f52..0000000
--- a/include/bits64/stdint.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * bits64/stdint.h
- */
-
-#ifndef _BITSIZE_STDINT_H
-#define _BITSIZE_STDINT_H
-
-typedef signed char 		int8_t;
-typedef short int		int16_t;
-typedef int			int32_t;
-typedef long long int		int64_t;
-
-typedef unsigned char 		uint8_t;
-typedef unsigned short int	uint16_t;
-typedef unsigned int		uint32_t;
-typedef unsigned long int	uint64_t;
-
-typedef long int		int_fast16_t;
-typedef long int		int_fast32_t;
-
-typedef unsigned long int	uint_fast16_t;
-typedef unsigned long int	uint_fast32_t;
-
-typedef long int		intptr_t;
-typedef unsigned long int	uintptr_t;
-
-#define __INT64_C(c)  c ## L
-#define __UINT64_C(c) c ## UL
-
-#define __PRI64_RANK	"l"
-#define __PRIFAST_RANK  "l"
-#define __PRIPTR_RANK	"l"
-
-#endif /* _BITSIZE_STDINT_H */
-
-
diff --git a/include/bits64/stdintconst.h b/include/bits64/stdintconst.h
deleted file mode 100644
index 65f2db0..0000000
--- a/include/bits64/stdintconst.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * bits64/stdintconst.h
- */
-
-#ifndef _BITSIZE_STDINTCONST_H
-#define _BITSIZE_STDINTCONST_H
-
-#define INT_FAST16_C(c)	 INT64_C(c)
-#define INT_FAST32_C(c)  INT64_C(c)
-
-#define UINT_FAST16_C(c) UINT64_C(c)
-#define UINT_FAST32_C(c) UINT64_C(c)
-
-#define INTPTR_C(c)	 INT64_C(c)
-#define UINTPTR_C(c)	 UINT64_C(c)
-#define PTRDIFF_C(c)     INT64_C(c)
-
-#endif /* _BITSIZE_STDINTCONST_H */
diff --git a/include/bits64/stdintlimits.h b/include/bits64/stdintlimits.h
deleted file mode 100644
index d110d17..0000000
--- a/include/bits64/stdintlimits.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * bits64/stdintlimits.h
- */
-
-#ifndef _BITSIZE_STDINTLIMITS_H
-#define _BITSIZE_STDINTLIMITS_H
-
-#define INT_FAST16_MIN	INT64_MIN
-#define INT_FAST32_MIN	INT64_MIN
-#define INT_FAST16_MAX	INT64_MAX
-#define INT_FAST32_MAX	INT64_MAX
-#define UINT_FAST16_MAX UINT64_MAX
-#define UINT_FAST32_MAX UINT64_MAX
-
-#define INTPTR_MIN	INT64_MIN
-#define INTPTR_MAX	INT64_MAX
-#define UINTPTR_MAX	UINT64_MAX
-
-#define PTRDIFF_MIN	INT64_MIN
-#define PTRDIFF_MAX	INT64_MAX
-
-#endif /* _BITSIZE_STDINTLIMITS_H */
diff --git a/klibc/Makefile b/klibc/Makefile
index 86518c2..efb86a9 100644
--- a/klibc/Makefile
+++ b/klibc/Makefile
@@ -3,7 +3,8 @@
 CC	= $(CROSS)gcc
 LD      = $(CROSS)ld
 REQFLAGS = -nostdinc -iwithprefix include -I. \
-	  -I./arch/$(ARCH)/include -I./include -I./linux/include \
+	  -I./arch/$(ARCH)/include -I./include/bits$(BITSIZE) \
+	  -I./include -I./linux/include \
 	  -Wall
 CFLAGS  = $(OPTFLAGS) $(REQFLAGS)
 LDFLAGS =
diff --git a/klibc/README b/klibc/README
index 4032f55..8942aba 100644
--- a/klibc/README
+++ b/klibc/README
@@ -12,18 +12,20 @@
    the include/asm symlink set up for the architecture you're
    compiling for, and include/linux/autoconf.h must exist.
 
-b) Create a symlink in the include directory called "bitsize" pointing
-   either to the "bits32" or the "bits64" directory, depending on the
-   architecture you're compiling for.
+b) Change ARCH in the main Makefile to match your architecture.
+   If you're cross-compiling, set CROSS to your toolchain prefix.
 
-c) Change ARCH and OPTFLAGS in the main Makefile to match your
-   architecture.  If you're cross-compiling, set CROSS to your
-   toolchain prefix.
+c) Type "make" and pray...
 
-d) Type "make" and pray...
-
-e) Try the "hello", "minihello" and "testvsnp" programs... they should
-   run.
+d) Try the test programs:
+       microhello
+       minihello
+       hello
+       testvsnp
+       getenvtest
+       getopttest
+       malloctest
+       minips
 
 Contact me at <hpa@zytor.com> for more info.