An application or library is primarily composed of a named makefile in a matching named directory. Applications and libraries do not require source files but can simply be named placeholders for a collection of functionality or perhaps just build options.
Application Makefile Location Requirements
All applications can be found under Wiced-SDK/Apps/ and are separated into different groups (demo, snip, test, wwd). When building a particular application the user identifies the chosen application within the build string with the syntax: <app group>.<app name>
The WICED build system uses the decimal place (.) to separate the app group from the app name and then loads the corresponding application makefile.
The user is free to create additional groups which can be useful for separating proprietary code from the main WICED code base. This can be useful when porting from one SDK release to another as the user can simply copy and paste their custom group directory into the new SDK and continue development.
Library Makefile Location Requirements
All libraries can be found under Wiced-SDK/Library/ and are also grouped into different directories (daemons, protocols, etc) however as they are not identified in the build string there is no specific directory depth limit or requirement. The user is free to create their own libraries in whatever directory structure as long as it has Wiced-SDK/Library as the parent directory.
If the user needs to modify an existing library to better suit their requirements it is recommended that the library is duplicated and given a new name to ease the effort required when porting from one SDK release to another. If that library is modified in the new SDK release the user can easily view the difference between the two revisions and choose to duplicate the modification in their custom library.
Makefile Naming Requirements
Within the directory of an application or library, there MUST exist a makefile with the same name as the top level directory and ending in ".mk"