138889Sjdpmicroperl is supposed to be a really minimal perl, even more
2218822Sdimminimal than miniperl.  No Configure is needed to build microperl,
3218822Sdimon the other hand this means that interfaces between Perl and your
438889Sjdpoperating system are left very -- minimal.
5218822Sdim
638889SjdpAll this is experimental.  If you don't know what to do with microperl
738889Sjdpyou probably shouldn't.  Please don't report bugs in microperl; fix the
838889Sjdpbugs.  (Bugs reports about microperl without fixes/patches are equivalent
938889Sjdpto wishlist requests - they won't be discarded, but they likely won't get
1038889Sjdpworked on either, unless they chance to coincide with someone's personal itch)
1138889Sjdp
1238889SjdpWe assume ANSI C89 plus the following:
1338889Sjdp- <stddef.h>, <stdlib.h>
1438889Sjdp- rename()
1538889Sjdp- opendir(), readdir(), closedir() (via dirent.h)
1638889Sjdp- memchr(), memcmp(), memcpy(), memset() (via string.h)
1738889Sjdp- (a safe) putenv() (via stdlib.h)
1838889Sjdp- strtoul() (via stdlib.h)
1938889Sjdp(grep for 'define' in uconfig.sh.)
2038889SjdpAlso, Perl times() is defined to always return zeroes.
21218822Sdim
22218822SdimIf you are still reading this and you are itching to try out microperl:
2338889Sjdp
2438889Sjdp	make -f Makefile.micro
2538889Sjdp
2638889SjdpThe defaults assume a little endian LP32 platform - ie long and pointers are
27218822Sdim32 bits, so sizeof(long) and sizeof(void *) are 4
2838889SjdpIf your platform is little endian LP64 - ie long and pointers are 64 bits,
2938889Sjdpsizeof(long) and sizeof(void *) are 8, then you first need to run
3038889Sjdp
3189857Sobrien	make -f Makefile.micro regen_uconfig64
3238889Sjdp
3338889Sjdpto generate a suitable uconfig.h
3438889Sjdp
3560484SobrienIf you make changes to uconfig.sh, run
3638889Sjdp
3760484Sobrien	make -f Makefile.micro regen_uconfig
3860484Sobrien
3960484Sobriento regenerate uconfig.h.  (or regen_uconfig64 if you're editing uconfig64.sh)
4038889Sjdp
4160484Sobrien
4260484SobrienIf neither of the above default configs work on your platform, you might want
4360484Sobriento try
4460484Sobrien
4560484Sobrien	make -f Makefile.micro patch_uconfig
4660484Sobrien
4760484Sobrien*before* the "make -f Makefile.micro".  This tries to minimally patch
4860484Sobrienthe uconfig.sh using your *current* Perl so that your microperl has
4960484Sobrienthe correct basic types and sizes and byteorder.
5060484Sobrien