LSB Software Development Kit (SDK) is a set of tools based on the idea of using special header files and libraries during application build that would guarantee program external dependencies don't contain non-portable interfaces which are either absent in many systems or have different functionality among different implementations.
The main purpose of the LSB SDK is to help developers to create applications compliant with the Linux Standard Base. SDK allows to build programs that meet requirements of any standard version, starting with 3.0. In addition, the toolset can be used to build applications for legacy distributions in situations when native tools in the system where the build is performed introduce dependencies for application files that cannot be satisfied by older systems (e.g., too fresh versions of symbols, new sections of ELF files, etc.).
LSB SDK contains three main components:
- header files;
- stub shared libraries;
- C and C++ compiler wrappers (lsbcc and lsbc++).
LSB SDK header files provide declarations of functions that were ever included in LSB. Visibility of declarations depends on value of __LSB_VERSION__ constant, which corresponds to the version of LSB the build is performed in accordance with. This constant is defined by lsbcc/lsbc++ on the basis of appropriate options and environment variables.
The header files also contain declarations of all types and constants required for proper function usage and macro definitions that don't introduce dependencies on non-standardized functions.
Stub libraries only export functions included in LSB. For every supported LSB version, SDK contains a separate set of stubs.
lsbcc and lsbc++ are wrappers that invoke system compiler and linker with specific options that allow to build binaries corresponding to certain LSB version - in particular, they force using header files and libraries from the SDK.
In addition, LSB SDK contains makelsbpkg script to facilitate creation of RPM packages that meet LSB requirements.
LSB SDK can be smoothly integrated into Eclipse IDE by means of the appropriate plugin.
More details about LSB SDK can be found in the LSB Book.