Catalog Item Dependencies (Windows Embedded CE 6.0)

1/6/2010

During OS design creation and customization, Platform Builder calls the Cesysgen tool (Cesysgen.bat), which uses Sysgen variables during the Sysgen phase of the build process to determine the inclusion or exclusion of Catalog items in your OS design.

For more information about the relationship between Catalog items and Sysgen variables, see Sysgen Variables.

Determining the inclusion or exclusion of Catalog items in your OS design is accomplished with the logic contained in Cesysgen.bat that specifies which other Catalog items a specific Catalog item requires. You can determine the dependencies of a Catalog item by examining Cesysgen.bat. For more information, see Cesysgen Batch File.

If you remove a specific Catalog item from your OS design and Platform Builder brings the Catalog item back into your OS design, this means that another Catalog item requires the Catalog item to function. To remove a Catalog item from your OS design, you must first remove all Catalog items that depend on it.

For example, modem support requires Point-to-Point Protocol (PPP) to function properly. This means that including the Catalog item for modem support also sets the Sysgen variable, SYSGEN_MODEM. This results in the setting of the Sysgen variable SYSGEN_PPP for PPP by dependency.

Some features might not be included in an OS design because the design is built with the assumption that the Catalog item is always included, or because the OS design does not support the Catalog item. For example, an OS design based on a Tiny Kernel design template might not have wireless networking functionality because it is not supported by default.

During the Sysgen phase, a filtering program filters header (.h), binary image builder (.bib), and registry (.reg) files that correspond to these Catalog items according to IF and ENDIF statements that divide these files into components. Then the filtering program copies the filtered versions of these files to %_WINCEROOT%\OSDesigns\<MyOSDesign>.

The following code example shows comments from the header file %_WINCEROOT%\Public\Common\Oak\Inc\Netui.h.

//@CESYSGEN IF CE_MODULES_NETUI
//@CESYSGEN ENDIF

Any code inside this IF/ENDIF statement is stripped out during the Sysgen phase unless the NETUI component is added to CE_MODULES in Cesysgen.bat. Then the filtered file is copied to %_WINCEROOT%\OSDesigns\<MyOSDesign>\Cesysgen\Oak\Inc.

The following code example shows comments from the header file %_WINCEROOT%\Public\Common\Sdk\Inc\Winuser.h.

// @CESYSGEN IF GWES_TIMER
// @CESYSGEN ENDIF

Any code inside this IF/ENDIF statement is stripped out during the Sysgen phase unless the TIMER component is added to GWES_COMPONENTS. Then the filtered file is copied to %_WINCEROOT%\Public\<MyOSDesign>\Cesysgen\Sdk\Inc.

Component lists with _MODULES in their names become link targets for Sysgen makefile files, which are typically in %_WINCEROOT%\Public\DependencyTree\Cesysgen\Makefile. The components in these lists determine which Platform Builder libraries become binaries.

For example, if you add the NETUI component to CE_MODULES in Cesysgen.bat, during the Sysgen phase the Nmake tool performs the makefile file actions required to build the component.

For information about the Nmake tool, see Nmake Tool. For information about makefiles, see Makefile File.

You can customize a Catalog item after you add it to your OS design by modifying the registry settings associated with that Catalog item. For information about customization available for each Catalog item, see Windows Embedded CE Architecture.

The default registry settings for each Catalog item are stored in either %_WINCEROOT%\Public\DependencyTree\Oak\Files\DependencyTree.reg, or in %_WINCEROOT%\Platform\MyBSP\Files\Platform.reg.

You can override the default registry settings on a per-OS design basis by modifying the OS design's registry files. The OS design's major registry file is in %_PROJECTROOT%\Oak\Files\Project.reg.

See Also

Concepts

Catalog Item Management
Command-Line Catalog Item Dependencies
Resolving an IDE Catalog Item Dependency