X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=doc%2Fhtml%2Fcdl-guide%2Fref.compile.html;fp=doc%2Fhtml%2Fcdl-guide%2Fref.compile.html;h=0000000000000000000000000000000000000000;hb=739c21725ce2774a605a0f1de3edaac2c43aea0f;hp=8db4d041e303c17f4596dee01b29064ed320b449;hpb=ae71e0fa8076a1b59600b3a0ea10155a2cb534ae;p=karo-tx-redboot.git diff --git a/doc/html/cdl-guide/ref.compile.html b/doc/html/cdl-guide/ref.compile.html deleted file mode 100644 index 8db4d041..00000000 --- a/doc/html/cdl-guide/ref.compile.html +++ /dev/null @@ -1,460 +0,0 @@ - - - - - - - - -compile -
The eCos Component Writer's Guide
PrevNext

compile

Name

Property compile -- List the source files that should be built if this option -is active and enabled.

Synopsis

cdl_option <name> {
-    compile [-library=libxxx.a] <list of files>
-    …
-}

Description

The compile property allows component developers to specify source -files which should be compiled and added to one of the target -libraries. Usually each source file will end up the library -libtarget.a. It is possible for component writers -to specify an alternative library for an entire package using the -library property. Alternatively -the desired library can be specified on the compile line itself. For -example, to add a particular source file to the -libextras.a library the following could be used:

cdl_package CYGPKG_IO_SERIAL {
-    …
-    compile -library=libextras.a common/tty.c
-}

Details of the build process including such issues as compiler flags -and the order in which things happen can be found in -Chapter 4.

compile properties can occur in any of cdl_option, -cdl_component, cdl_package or cdl_interface. A compile -property has effect if and only if the entity that contains it is -active and enabled. Typically the body of a cdl_package will define -any source files that need to be built irrespective of individual -options, and each cdl_component, cdl_option, and cdl_interface -will define source files that are more specific. A single compile -property can list any number of source files, all destined for the -same library. A cdl_option or other entity can contain multiple -compile properties, each of which can specify a different library. -It is possible for a given source file to be specified in compile -properties for several different options, in which case the source -file will get built if any of these options are active and enabled.

If the package follows the directory -layout conventions then the configuration tools will search for -the specified source files first in the -src subdirectory of the -package, then relative to the package directory itself.

Note: A shortcoming of the current specification of compile properties is -that there is no easy way to specify source files that should be built -unless an option is enabled. It would sometimes be useful to be able -to say: “if option A is enabled then compile -file x.c, otherwise compile file -y.c. There are two simple ways of achieving this:

  • Always compile y.c, typically by listing it in -the body of the cdl_package, but use -#ifndef A to produce an empty object file if -option A is not enabled. This has the big -disadvantage that the file always gets compiled and hence for some -configurations builds will take longer than necessary.

  • Use a calculated option whose value is !A, and -have a compile y.c property in its body. This -has the big disadvantage of adding another calculated option to the -configuration.

It is likely that this will be resolved in the future, possibly by -using some sort of expression as the argument to a compile property.

Note: Currently it is not possible to control the priority of a compile -property, in other words the order in which a file gets compiled -relative to other build steps. This functionality might prove useful -for complicated packages and should be added.

Example

cdl_package CYGPKG_INFRA {
-    display       "Infrastructure"
-    include_dir   cyg/infra
-    description   "
-        Common types and useful macros.
-        Tracing and assertion facilities.
-        Package startup options." 
-
-    compile startup.cxx prestart.cxx pkgstart.cxx userstart.cxx \
-            dummyxxmain.cxx memcpy.c memset.c delete.cxx \
-            diag.cxx tcdiag.cxx
-}

See Also

Properties make, -make_object and -library.


PrevHomeNext
calculatedUpdefault_value
\ No newline at end of file