ProKit
The ProteanOS Development Kit for building, packaging, and managing embedded software.

What is ProKit?
ProKit is our build system. Instead of wrestling with cross-compilers, linkers, and packaging tools manually, ProKit wraps it all up in simple commands that handle the messy details for you.
Point it at your source code, tell it what platform you're targeting, and it figures out the rest.
What's Inside
ProKit includes:
- Build driver: Runs the compiler with the right flags for your target
- Package tools: Creates and manages packages per the Source Package Format
- Environment setup: Scripts for switching between different target configs
- Dependency resolver: Figures out what order to build things in
- Quality checks: Validates packages against format requirements
Basic Commands
Most common operations:
Building
cd ~/packages/example-package
prokit build
# Verbose output
prokit build --verbosePackaging
prokit package
# Custom output directory
prokit package --output ~/packages/output/Inspecting
# Show package metadata
prokit info package-name.opk
# List package contents
prokit list package-name.opk
# Verify package integrity
prokit verify package-name.opkTypical Workflow
- Set up: Source the ProKit environment script
- Get source: Clone or create your source + metadata (control file, build rules)
- Configure: Pick your target architecture
- Build:
prokit build - Test: Try it on hardware or an emulator
- Package:
prokit package - Share: Send patches for review
Configuration
Customize ProKit via:
~/.config/prokit/config— Your personal settings./prokit.conf— Per-project settings- Environment variables:
PROKIT_TARGET,PROKIT_SYSROOT, etc.
Getting Started
New to ProKit? Do this:
- Follow the install guide
- Build the example packages to verify everything works
- Read the package format spec
- Modify an existing package to learn the build system
- Package something new
Contributing
To contribute packages or ProKit improvements:
- Follow coding standards
- Test on relevant platforms
- Send patches to proteanos-dev
- Respond to feedback
ProKit FAQ
What is the difference between ProKit and a regular compiler toolchain?
ProKit wraps the toolchain with additional functionality for packaging, dependency management, and cross-compilation configuration. It handles the complexity of targeting embedded platforms.
Can I use ProKit for native (non-cross) compilation?
Yes, ProKit can build packages for the host system as well as cross-compile for embedded targets. Specify the target appropriately in your configuration.
How do I add support for a new target architecture?
Adding a new architecture involves configuring toolchain settings and may require porting work. See the porting guide for details on adding platform support.
Where are build artifacts stored?
By default, build outputs are placed in a build/ subdirectory within the package source tree. This can be configured per-project or globally.
How do I debug build failures?
Use the --verbose flag to see detailed build output. Check the build log for specific error messages. Common issues include missing dependencies and incorrect environment setup.