Share via


Feature Dependencies

During the platform creation and customization process, Platform Builder calls the Cesysgen Configuration File (Cesysgen.bat). This tool specifies what Sysgen variables the Nmake tool (Nmake.exe) uses to create the platform, which results in the inclusion or exclusion of features in your platform configuration. You can also determine what dependencies a feature has by examining Cesysgen.bat.

For more information, see Cesysgen Batch File.

If you attempt to remove a specific feature from your configuration, and Platform Builder brings it back in, this means that another feature is dependent on the feature in order to function. To remove the feature from your configuration, you must remove all features that depend on it in order to function properly.

For example, modem support requires Point-to-Point Protocol (PPP) in order to function properly, so setting SYSGEN_MODEM will bring in SYSGEN_PPP by dependency.

For information about how to check the dependencies of a feature, see How to Check the Dependencies of a Feature.

The set of features available in the Catalog for platform customization depends on one of the two core configurations, either HLBASE, for headless devices, or IABASE, for display-based devices. Some features may not be included in a core OS configuration because the configuration is built with the assumption that the feature is always included, or because the configuration does not support the feature.

During the Sysgen phase, a filtering program filters header (.h), binary image builder (BIB), and registry (.reg) files that correspond to these features according to IF/ENDIF comments that divide these files into components. Then the filtering program copies the filtered versions of these files to your platform directory. However, if you include PREPROCESSDEFFILE in a sources file, the module-definition (.def) file for the binary that you are building will be filtered before the linker processes the file.

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 will be 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%\Public\MyPlatform\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 will be stripped out during the Sysgen phase unless the TIMER component is added to GWES_COMPONENTS. Then the filtered file is copied to %_WINCEROOT%\Public\MyPlatform\Cesysgen\Sdk\Inc.

Component lists with _MODULES in their names become link targets for Sysgen makefiles, which are typically located in %_WINCEROOT%\Public\Deptree\Cesysgen\Makefile. The components in these lists determine which Platform Builder libraries become binaries. For example, if you have added the NETUI component to CE_MODULES in Cesysgen.bat, during the Sysgen phase, the Nmake tool creates a makefile for the component. For information about the Nmake tool, see Nmake Tool. For information about makefiles, see Makefile File.

If you are creating your platform in the integrated development environment (IDE), catalog feature (CEC) files configure the environment variables that control this componentization in Cesysgen.bat. You cannot set these variables directly in the IDE, reducing the risk of conflicts.

You can customize features after you add them to your platform by modifying the registry settings associated with that feature. For information about customization available for each feature, see About Windows CE .NET.

The default registry settings for each feature are stored in either %_WINCEROOT%\Public\deptree\oak\files\deptree.reg, or in %_WINCEROOT%\Platform\MyBSP\Files\Platform.reg.

You can override the default registry settings on a per-workspace basis by modifying the workspace's registry files. The workspace registry file is in %_PROJECTROOT%\oak\files\project.reg.

See Also

Feature Management | Command-Line Feature Dependencies | Resolving an IDE Feature Dependency |Registry Settings

 Last updated on Friday, October 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.