HiMake - the build tool that builds the Kongsberg missile software
summary
HiMake is an enterprise build system used since 2002 to compile Kongsberg missile software; it generates native makefiles from concise HMK package descriptions and then runs the platform's make. It enforces deterministic toolchains to avoid ABI and one‑definition‑rule problems, supports cross‑compiles to VxWorks, Integrity and embedded Linux, and outputs Doxygen, JSON compilation DB and IDE/static‑analysis projects. A header dependency‑finder indexes headers across package sets and HiMake verifies no duplicate exported headers. Two‑stage package builds plus automatic exclusion (xl2) prunes the rebuild graph for fast incremental builds.
AI-written summary · about
chapters (32)
- 0:00Intro
- 1:42HiMake design goals
- 2:12Enterprise build system
- 3:02Support multiple tools & multiple platforms
- 3:52Features
- 6:07Build Description File
- 9:13Usage examples
- 10:14HiMake Platform
- 10:44Centrally controlled configuration files
- 13:35Identifiers map to paths
- 14:40A Package DAG (Directed Acyclic Graph)
- 16:37Keywords specify the task
- 17:33A Keyword with a complex task
- 19:03Dependency Finder
- 20:16Catch possible ODR violations . Two Packages specify export of the same
- 21:11Handle renaming of source files or executables
- 23:04Recursive Make Considered Harmful
- 26:34Rebuild minimum set of Packages
- 27:15Xauto (prune DAG automatically)
- 29:56Reduce no. of directories to search for include files
- 30:45Header files are exported
- 31:35Everything is a Package Modify build by changing the DAG
- 31:51Package Types
- 32:27Keywords may add Implicit Dependencies
- 33:42Platform adds include directory
- 35:29Platform adds link time dependencies
- 37:52Platform specifies OS Abstraction Layer
- 40:09Build Saneness
- 40:57Virtual Package to check build precondition
- 42:45License Reporting
- 43:48Security Classification Reporting
- 45:01Conclusion
related talks
29mGot Make?
13mMake Me Up...Before You Go Go ♫♪♬
27mModern alternatives to make
54mCMake for the Impatient
01h 04mBetter CMake: A World Tour of Build Systems - Better C++ Builds
10mFastbuild
26mBuilding for Heterogeneous Systems
01h 12mA Common Package Specification: Getting Build Tools to Talk to Each Other: Lessons Learned From Making Thousands of Binaries Consumable by Any Build System
