README 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. This is a development environment for ELKS-86 and standalone 8086 code.
  2. All you need to do is 'make' from the top directory and the main parts
  3. of the package will be made. These can be tested by using the 'ncc'
  4. program from the newly created bin subdirectory. (ncc is a varient of
  5. the bcc driver program that doesn't need to be installed to be used).
  6. Use 'make install' to install them.
  7. Some other bits can be built by 'make other' and installed with
  8. 'make install-other'.
  9. If you want it to install under /usr/local instead you can specify
  10. the prefix on the first make ie: 'make PREFIX=/usr/local' this is
  11. remembered until 'make.fil' is rebuilt.
  12. The manual pages in the man subdirectory are matched to these programs,
  13. there are also some hints for using as86 well. The tests and bootblocks
  14. directories give some example code.
  15. The bcc command defaults to using /usr/bcc/include and /usr/bcc/lib/bcc
  16. the libraries _and_ include files are copied to these locations by
  17. install. This can be changed by overriding 'PREFIX=/usr' or
  18. 'LIBDIR=/usr/bcc/lib/bcc' on the initial make. Also available in the
  19. same way the 'ELKSSRC=/usr/src/elks' variable can be altered if you
  20. have ELKS on a different path.
  21. In the unlikely event you're makeing a non-cross development environment
  22. you can, on the initial make, do "make LIBPRE=/usr' to have the libraries
  23. and include files directly under /usr rather than /usr/bcc.
  24. Note: These prefix options only effect the 'bcc.c' driver program and
  25. the install scripts, all the others get their paths from bcc.c.
  26. The ELKSSRC location can, however, greatly effect how the ELKS
  27. libraries are built.
  28. All the versions of the library are built by make; 'normal', 'fast',
  29. 'MSDOS', 'standalone' and Linux-i386.
  30. You use the other libraries like this:
  31. 'FAST' $ bcc -Mf prog.c -o prog
  32. Caller saves $ bcc -Mc prog.c -o prog
  33. MSDOS $ bcc -Md prog.c -o prog.com
  34. Standalone $ bcc -Ms prog.c -o prog.sys
  35. Linux-i386 $ bcc -Ml prog.c -o prog
  36. The 'Fast' and 'Caller saves' versions alter the function call assember
  37. in an effort to make it smaller and faster.
  38. The 'MSDOS' version creates _small_ model (64k+64k) COM files. Because
  39. of DOS limitations the filesize is limited to about 65000 bytes but
  40. the BSS and Stack can be upto 64k on top of that.
  41. The 'standalone' version creates executables like normal ELKS a.out
  42. files but with no operating system calls, just BIOS ones. These
  43. files are suitable for running on a bare machine started by one of
  44. the boot blocks in the bootblocks subdirectory. If you add a '-d'
  45. option to the link stage the a.out header will be removed.
  46. The Linux-i386 version generates static Linux OMAGIC a.out programs,
  47. they need neither elksemu nor a.out shared libraries to run. Unfortunatly
  48. these can no longer be converted to ELF executables as Linux will not
  49. execute unpageable ELF executables. To allow conversion to ELF if you
  50. pass the '-z' flag to 'bcc -Ml' the linker will now create QMAGIC a.out
  51. executables, these are somewhat larger but can be converted with objcopy.
  52. If you want to install everything in one go just login as root an do:
  53. $ make install-all
  54. The as86 and ld86 with this are _different_ from the minimum version
  55. needed for the linux-i386 kernel and can replace them, versions before
  56. 0.12.0 will not work with this version of bcc.
  57. I _strongly_ suggest you install the kernel patch or load the module
  58. to allow transparent execution of elks executables. If you're using
  59. a post 2.1.43 or 2.0.36 kernel the only module you need is the binfmt_misc
  60. driver configured like this:
  61. echo ':i86-elks:M::\x01\x03\x20\x00:\xff\xff\xff\x83:/lib/elksemu:' \
  62. > /proc/sys/fs/binfmt_misc/register
  63. The elksemu executable must be stored in /lib/elksemu or the above
  64. line adjusted.
  65. Previous versions need a special module or patch described in elksemu/README
  66. (All the options need the elksemu executable installed correctly)
  67. Copyrights
  68. ----------
  69. The `bcc', 'as' and `ld' parts of the distribution are now covered by
  70. the GPL. The `bccfp' library now in the libc/i386fp directory is under
  71. the LGPL. (Primary copyright holder Bruce Evans)
  72. The contents of the libc and libbsd subdirectories are under the LGPL
  73. with a few noted exceptions. The programs in 'tests', elksemu, copt
  74. and the bootblocks directory are under the GPL. Dis88 is freely
  75. distributable if the source is distributed also. Unproto is freely
  76. distributable as long as Wietse Venema <wietse@wzv.win.tue.nl> and the
  77. "Mathematics and Computing Science Dept. Eindhoven University of
  78. Technology. The Netherlands." is given credit.
  79. In libc the regular expression routine and the printf/scanf functions are
  80. not under LGPL, the former is 'freely distributable' the latter is public
  81. domain.
  82. See the COPYING file in this directory for the GPL and the COPYING file
  83. in the libc directory for the LGPL.
  84. --
  85. Rob. (Robert de Bath <rdebath@poboxes.com>)