Ec symbol loader generator
ecs [-t target-platform]
[-name] [-console] [-dynamiclib|-staticlib] input [input]* -o output [-symbols intermediate-dir]
ecs generates a symbol loader for an eC module (shared/static library or executable).
The symbol loader is what allow for eC runtime module importing and ejection, as well as its reflection capabilities. It is an eC source file with a .main.ec suffix, which must itself be compiled and linked into the target.
ecs also takes care of the eC Distributed Objects binding mechanism and will include the client and/or server bindings as appropriate within the symbol loader source file.
Additionally, ecs takes care of assembling the individual internationalizable string catalogs (.bowl) into translation templates (.pot). The generated translation templates are compatible with the GNU gettext format. Translations however are handled internally by the Ecere runtime library, and can be embedded within eC libraries and executables under the locale/ module resources folder using the Ecere Archiver (ear).
For an executable, the symbol loader implements the program's entry point at the C level (main() function). For shared libraries, the symbol loader implements an exported __ecereDll_Load function. For static libraries, the symbol loader implements a __ecereDll_Load_[module-name] function.
The input list of files specified should include all symbol files (.sym), import files (.imp) and partial translation string catalogs (.bowl) produced by ecp and ecc for every eC source file within the project.
-o output
The location and name for the symbol loader generated.
The name is normally module-name.main.ec
-t target-platform
Where target-platform is one of: win32 linux apple
(Defaults to the host platform if not specified)
-console Specifies that this application is a console application (Windows only)
-dynamiclib Specifies that this module is a dynamic (shared) library
-staticlib Specifies that this module is a static library
-name module-name
Name to be used for static library entry point, internally by the eC Distributed Objects bindings, as well as for the generated translation template (locale/module-name.pot). (Defaults to the output file name stripped of the main.ec suffix)
-symbols intermediate-dir
Specifies the location of the intermediate directory. Note: Currently this is only used to check the currently built config, and only generate translation template (.pot) if we are building Release. Since the output file name could be checked instead, this option should probably be phased out entirely as it is otherwise not required for ecs.