|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| ar/ | H | 29-Oct-2013 | - | 2,223 | 1,651 |
| as/ | H | 03-May-2022 | - | 14,591 | 12,333 |
| bcc/ | H | 03-May-2022 | - | 20,247 | 17,525 |
| bin86/ | H | 03-May-2022 | - | 298 | 207 |
| bootblocks/ | H | 03-May-2022 | - | 9,293 | 7,561 |
| copt/ | H | 29-Oct-2013 | - | 2,351 | 1,861 |
| cpp/ | H | 03-May-2022 | - | 2,671 | 2,288 |
| dis88/ | H | 03-May-2022 | - | 3,327 | 2,185 |
| doselks/ | H | 03-May-2022 | - | 1,146 | 875 |
| elksemu/ | H | 03-May-2022 | - | 1,576 | 1,206 |
| ld/ | H | 29-Oct-2013 | - | 6,388 | 5,196 |
| libbsd/ | H | 03-May-2022 | - | 1,011 | 685 |
| libc/ | H | 03-May-2022 | - | 32,359 | 25,079 |
| man/ | H | 29-Oct-2013 | - | 1,078 | 1,019 |
| tests/ | H | 03-May-2022 | - | 2,469 | 2,092 |
| unproto/ | H | 03-May-2022 | - | 3,974 | 2,245 |
| COPYING | H A D | 29-Oct-2013 | 17.6 KiB | 340 | 281 |
| Changes | H A D | 29-Oct-2013 | 23.5 KiB | 609 | 408 |
| Contributors | H A D | 29-Oct-2013 | 1 KiB | 34 | 25 |
| GNUmakefile | H A D | 29-Oct-2013 | 234 | 14 | 6 |
| MAGIC | H A D | 29-Oct-2013 | 1.2 KiB | 41 | 33 |
| Makefile | H A D | 03-May-2022 | 2.3 KiB | 72 | 55 |
| Mk_dist | H A D | 29-Oct-2013 | 5.6 KiB | 216 | 149 |
| README | H A D | 29-Oct-2013 | 5.8 KiB | 135 | 105 |
| ifdef.c | H A D | 29-Oct-2013 | 9.9 KiB | 506 | 416 |
| libcompat | H A D | 29-Oct-2013 | 410 | 25 | 18 |
| makefile.in | H A D | 03-May-2022 | 9.8 KiB | 375 | 230 |
| mkcompile | H A D | 03-May-2022 | 2.3 KiB | 89 | 72 |
README
1This is a development environment for ELKS-86 and standalone 8086 code.
2
3All you need to do is 'make' from the top directory and the main parts
4of the package will be made. These can be tested by using the 'ncc'
5program from the newly created bin subdirectory. (ncc is a varient of
6the bcc driver program that doesn't need to be installed to be used).
7
8Use 'make install' to install them.
9
10Some other bits can be built by 'make other' and installed with
11'make install-other'.
12
13Note the the make files for the libraries can only be run using
14GNU-make but version 3.82 has a bug (No. 30612) that prevents this
15working properly.
16
17If you want it to install under /usr/local instead you can specify
18the prefix on the first make ie: 'make PREFIX=/usr/local' this is
19remembered until 'make.fil' is rebuilt.
20
21The manual pages in the man subdirectory are matched to these programs,
22there are also some hints for using as86 well. The tests and bootblocks
23directories give some example code.
24
25The bcc command defaults to using /usr/lib/bcc/include and /usr/lib/bcc
26the libraries _and_ include files are copied to these locations by
27install. This can be changed by overriding 'PREFIX=/usr/...' or
28'LIBDIR=/usr/...' on the initial make. Also available in the
29same way are the BINDIR, INCLDIR, ASLDDIR, MANDIR and ELSESRC.
30The 'ELKSSRC=/usr/src/elks' variable can be altered if you have ELKS on
31path different from the default or ELKSSRC=/dev/null uses the supplied
32ELKS headers. The ASLDDIR variable can be used to move as86 and ld86
33into the LIBDIR with 'ASLDDIR=$(LIBDIR)'. The final '/include' is added
34to the end of INCLDIR.
35
36In the unlikely event you're makeing a non-cross development environment
37you can, on the initial make, do "make PREFIX=/' to have the libraries
38and include files in 'Native' locations.
39
40Note: These prefix options only effect the 'bcc.c' driver program and
41 the install scripts, all the others get their paths from bcc.c.
42 The ELKSSRC location can, however, greatly effect how the ELKS
43 libraries are built.
44
45If you don't want to install in the locations specified above there
46is also a DIST= argument to make install that is used to specify the
47distribution root to install to.
48
49The last option is not to install at all. All the executables in the
50bin directory can be moved to whereever you wish except for bcc and ncc.
51To use bcc at any other location you can create a symlink from your
52new location to the 'ncc' executable and it will be able to find
53the libraries in the build directory:
54
55eg:
56 cp ar86 elksemu objdump86 $HOME/bin/.
57 cp as86 as86_encap ld86 $HOME/bin/. # Optional.
58 ln -s `pwd`/ncc $HOME/bin/bcc
59
60All the versions of the library are built by make; 'normal', 'fast',
61'MSDOS', 'standalone' and Linux-i386.
62
63You use the other libraries like this:
64 'FAST' $ bcc -Mf prog.c -o prog
65 Caller saves $ bcc -Mc prog.c -o prog
66 MSDOS $ bcc -Md prog.c -o prog.com
67 Standalone $ bcc -Ms prog.c -o prog.sys
68 Linux-i386 $ bcc -Ml prog.c -o prog
69
70The 'Fast' and 'Caller saves' versions alter the function call assember
71in an effort to make it smaller and faster.
72
73The 'MSDOS' version creates _small_ model (64k+64k) COM files. Because
74of DOS limitations the filesize is limited to about 65000 bytes but
75the BSS and Stack can be upto 64k on top of that.
76
77The 'standalone' version creates executables like normal ELKS a.out
78files but with no operating system calls, just BIOS ones. These
79files are suitable for running on a bare machine started by one of
80the boot blocks in the bootblocks subdirectory. If you add a '-d'
81option to the link stage the a.out header will be removed.
82
83The Linux-i386 version generates static Linux OMAGIC a.out programs,
84they need neither elksemu nor a.out shared libraries to run. Unfortunatly
85these can no longer be converted to ELF executables as Linux will not
86execute unpageable ELF executables. To allow conversion to ELF if you
87pass the '-z' flag to 'bcc -Ml' the linker will now create QMAGIC a.out
88executables, these are somewhat larger but can be converted with objcopy.
89
90If you want to install everything in one go just login as root an do:
91$ make install-all
92
93The as86 and ld86 with this are _different_ from the minimum version
94needed for the linux-i386 kernel and can replace them, versions before
950.12.0 will not work with this version of bcc.
96
97I suggest you install the kernel patch or load the module to allow
98transparent execution of elks executables. If you're using a post
992.1.43 or 2.0.36 kernel the only module you need is the binfmt_misc
100driver configured like this:
101
102echo ':i86-elks:M::\x01\x03\x20\x00:\xff\xff\xff\x83:/usr/bin/elksemu:' \
103 > /proc/sys/fs/binfmt_misc/register
104
105The elksemu executable must be stored in /usr/bin/elksemu or the above
106line adjusted.
107
108Previous kernel versions need a special module or patch described in
109elksemu/README (All the options need the elksemu executable installed
110correctly)
111
112Copyrights
113----------
114The `bcc', 'as' and `ld' parts of the distribution are now covered by
115the GPL. The `bccfp' library now in the libc/i386fp directory is under
116the LGPL. (Primary copyright holder Bruce Evans)
117
118The contents of the libc and libbsd subdirectories are under the LGPL
119with a few noted exceptions. The programs in 'tests', elksemu, copt
120and the bootblocks directory are under the GPL. Dis88 is freely
121distributable if the source is distributed also. Unproto is freely
122distributable as long as Wietse Venema <wietse@wzv.win.tue.nl> and the
123"Mathematics and Computing Science Dept. Eindhoven University of
124Technology. The Netherlands." is given credit.
125
126In libc the regular expression routine and the printf/scanf functions are
127not under LGPL, the former is 'freely distributable' the latter is public
128domain.
129
130See the COPYING file in this directory for the GPL and the COPYING file
131in the libc directory for the LGPL.
132
133--
134Rob. (Robert de Bath <robert$@debath.co.uk>)
135