This is a development environment for ELKS-86 and standalone 8086 code. All you need to do is 'make' from the top directory and the main parts of the package will be made. These can be tested by use the 'ncc' program from the newly created bin subdirectory. Use 'make install' to install them. Use 'make Uninstall' to remove everything (Beware with this though!) Some other bits can be built by 'make other' and installed with 'make install-other'. If you want it to install under /usr/local instead you can specify the prefix on the first make ie: 'make PREFIX=/usr/local' this is remembered until 'make.fil' is rebuilt. The manual pages in the man subdirectory are matched to these programs, there are also some hints for using as86 well. The tests and bootblocks directories give some example code. The bcc command defaults to using /usr/bcc/include and /usr/bcc/lib/bcc the libraries _and_ include files are copied to these locations by install. This can be changed by overriding 'PREFIX=/usr' or 'LIBDIR=/usr/bcc/lib/bcc' on the initial make. Also available in the same way the 'ELKSSRC=/usr/src/elks' variable can be altered if you have ELKS on a different path. In the unlikely event you're makeing a non-cross development environment you can, on the initial make, do "make LIBPRE=/usr' to have the libraries and include files directly under /usr rather than /usr/bcc. All the versions of the library are built by make; 'normal', 'fast', 'MSDOS', 'standalone' and Linux-i386. You use the other libraries like this: 'FAST' $ bcc -Mf prog.c -o prog Caller saves $ bcc -Mc prog.c -o prog MSDOS $ bcc -Md prog.c -o prog.com Standalone $ bcc -Ms prog.c -o prog.sys Linux-i386 $ bcc -Ml prog.c -o prog The 'Fast' and 'Caller saves' versions alter the function call assember in an effort to make it smaller and faster. The 'MSDOS' version creates _small_ model (64k+64k) COM files. Because of DOS limitations the filesize is limited to about 65000 bytes but the BSS and Stack can be upto 64k on top of that. The 'standalone' version creates executables like normal ELKS a.out files but with no operating system calls, just BIOS ones. These files are suitable for running on a bare machine started by one of the boot blocks in the bootblocks subdirectory. The Linux-i386 version generates static Linux OMAGIC a.out programs, they need neither elksemu nor a.out shared libraries to run. Unfortunatly these can no longer be converted to ELF executables as Linux will not execute unpageable ELF executables. To allow conversion to ELF if you pass the '-z' flag to 'bcc -Ml' the linker will now create QMAGIC a.out executables, these are somewhat larger but can be converted with objcopy. If you want to install everything in one go just login as root an do: $ make install-all The as86 and ld86 with this are _different_ from the minimum version needed for the linux-i386 kernel and can replace them, versions before 0.12.0 will not work with this version of bcc. I _strongly_ suggest you install the kernel patch or load the module to allow transparent execution of elks executables. If you're using a post 2.1.43 or 2.0.36 kernel the module you need is the binfmt_misc driver configured like this: echo ':i86-elks:M::\x01\x03\x20\x00:\xff\xff\xff\x83:/lib/elksemu:' \ > /proc/sys/fs/binfmt_misc/register Previous versions need a special module or patch described in elksemu/README (All the options need the elksemu executable installed correctly) Copyrights ---------- The `bcc', 'as' and `ld' parts of the distribution are now covered by the GPL. The `bccfp' library now in the libc/i386fp directory is under the LGPL. (Primary copyright holder Bruce Evans) The contents of the libc and libbsd subdirectories are under the LGPL with a few noted exceptions. The programs in 'tests', elksemu, copt and the bootblocks directory are under the GPL. Dis88 is freely distributable if the source is distributed also. Unproto is freely distributable as long as Wietse Venema and the "Mathematics and Computing Science Dept. Eindhoven University of Technology. The Netherlands." is given credit. In libc the regular expression routine and the printf/scanf functions are not under LGPL, the former is 'freely distributable' the latter is public domain. See the COPYING file in this directory for the GPL and the COPYING file in the libc directory for the LGPL. -- Rob. (Robert de Bath )