LID File Keywords
A LID file consists of a series of keyword/value pairs.
Library:
Files:
Associates a set of files with the library named by the Library: keyword. This keyword can appear one or more times per LID file. Every file specified is considered to be associated with the library.
The order in which the designated source files are specified with the Files: keyword in the LID file determines the initialization order across the files within the defined library.
Start-Module:, Start-Function:
Taken together, these keywords specify a function that acts as an entry point to the library. They are used only when the library provides the glue for a standalone application. The module-name must be defined in this library, though function-name need not be exported. These keywords are optional and both must appear to specify the entry point.
The start function is called after the top level initializations of the library have completed. The function is passed no arguments; any startup parameters that are required should be made available through additional query functions.
Note that Start-Module: and Start-Function: are not strictly necessary to start an application, since the application could instead begin with the execution of a top-level function call during library initialization. However, distinguishing the start function using these keywords makes it easy to distinguish the loading phase from the running phase of an application.
COMMENT: Start-Module: and Start-Function: aren't currently implemented, but are going to be. 7/3/97 NEALD
Keywords:
Any number of phrases, separated by commas, that are relevant to the description or use of the library.
Description:
A description of the library. The intention of this keyword is to provide a fuller, less concise description than that given by the Synopsis: keyword.
C-Source-Files:
Identifies one or more C source files which are to be included as part of the library. Dylan environments copy these files to their build area and ensure that they are compiled by the appropriate batch file. The filenames specified must include the .c suffix.
C-Header-Files:
Identifies one or more C header files included as part of the library. Dylan environments copy these files to their build area and ensure that they are compiled by the appropriate batch file. Any files specified using the C-Source-Files: or RC-Files: keywords depend on these header files in order to decide when they need to be recompiled. The file names given here must include the .h suffix.
C-Object-Files:
Identifies one or more C object files included as part of the library. Dylan environments copy these files to their build area and ensure that they are compiled by the appropriate batch file and linked into the final shared library or executable output files. The file names given here must include the .o or .obj suffix.
RC-Files:
Identifies one or more resource files to be included as part of the library. Dylan environments copy these files to their build area and ensure that they are compiled by the appropriate batch file. The resulting resource object files are included in the linked shared library or executable output files built for the library. The file names given here must include the .rc suffix.
C-Libraries:
Identifies one or more C libraries to be included in the link phase when building the .DLL or .EXE for the library. You can use this keyword to specify arbitrary linker options as well as libraries.
Unlike the other keywords described in this section, the C-Libraries: keyword propagates to dependent libraries.
For example, suppose library A uses library B, and the LID file or library B specifies
C-Libraries: foo.lib
In this case, both library A and library B are linked against foo.lib.
Executable:
Specifies the name of the executable (that is, .DLL or .EXE) file to be generated for this library.
The suffix (.DLL, .EXE) should not be included in the name as the appropriate suffix will be added automatically.
If this keyword is not specified, the compiler generates a default name for the executable from the name of the library. With some library names, particularly when you are building a DLL, you may need to specify this keyword to override the default name and avoid conflicts with other DLLs from a third party.
Base-Address:
Specifies the base address of the DLL built from this Dylan library. The address must be a hexadecimal value. For convenience, you can use either Dylan (#xNNNNNNNN) or C (0xNNNNNNNN) notation when specifying the address.
This base address is ignored when building a .EXE file.
If this keyword is not specified, the compiler will compute a default base address for the library. However, it is possible for more than one library to end up with the same default base address. If an application uses any of these libraries, all but one of them will have to be relocated when the application starts. This process is automatic, but cuts down on the amount of sharing, increases your application's memory footprint, and slows down load time. In such circumstances, you may want to give one or more libraries an explicit base address using this keyword.
Linker-Options:
Specifies additional options and libraries to be passed to the linker when building this DLL or EXE. Unlike the C-Libraries: keyword, the options and libraries specified here apply only to this Dylan library; they are not propagated to any libraries which use this library.
