Linking order |
|
- Specify relative paths to directories.
- Specify files to be included in the project, including .HTML, in FILES and OBJS.
- Specify used .CGI files with their relative paths in CGI.
- Define file name of the result that will always get compiled if any of the sources change.
- Prepare include files with IP and MAC addresses, insert declarations into the code.
- A list of individual compiler invocations on input files (incl. .HTML) with appropriate parameters follows.
- www8051.o is created last. It contains all prepared .OBJ files and used library functions.
- Resulting www8051.o is split to binary files for EEPROM and FLASH and stored into .EEP and .ROM
- Resulting www8051.hex may be created, containing .ROM from zero address and .EEP from 2000h (8kB) - most programmers consider this to be the internal EEPROM.
Communication routines that talk to the Realtek 8019AS controller, and others, consist of many source files; however, the result is stored in 2 libraries. Two binary versions for use with examples are provided:
- First configuration supports 2 TCP stacks, active establishing of connection on the 1st stack, and serial line support. Its name contains "23".
- Second configuration is compiled with support for 1 TCP stack and no serial line support. Its name contains "80".
Pre-compiled, renamed libraries libw.a and libk.a are:
- libw80.a – General subroutines, such as math, code dumps, etc., intended for one port. Default port number is 80 (http), but can be changed.
- libk80.a – Network subroutines, such as virtual TCP/IP stack handling, etc.
- libw23.a – General subroutines, such as math, code dumps, etc., intended for two ports. Default port numbers are 23 (telnet) and 80 (http), but can be changed.
- libk23.a – Network subroutines, such as virtual TCP/IP stack handling, etc.
More details about libraries are in the descriptions of the development system, libk and libw.
Linker accepts several conventions for specifying library names on command line:
- Libraries are searched for in the directories specified by –L.
- Library names are shortened, leading "lib" and trailing ".a" are omitted. Library name is specified by –l. For example, to link libk80.a, linker command line would contain –lk80.
As already mentioned, libk must be linked before libw since libk uses several functions from libw and linking is not recursive. (It is within a single library, though, so it does not matter in which order are modules added to a library.)
Makefile is processed from the top down. If an item is missing and needs to be created (compiled), processing starts again from the top.
Finally, re-read the paragraph about creating www8051.o in Makefile Structure - everything should be clear now.
| Web51 description | News | FAQ | ORDER FORM | DOWNLOAD | Links |
| (c)Copyright 2000 - 2002, HW server & Radek Benedikt
Web51@HW.cz, Web51.HW.cz |
|