Wiki Home
Status
2026-7-11 pre-alpha 0.3
check_include_dependencies, check_include_guards, check_include_compile are working.
Currently, the pre-alpha code will only create a configuration file.
Testing
mkc is developed on Linux, and tested on Linux, Windows, MacOS and FreeBSD.
If you have a system that you want regularly tested, please let me know.
Goals
- Goals
- Straightforward, understandable algol-like syntax.
Both cmake and mkconfig have weird syntax.
Use a grammar so that the syntax is regular and extendable.
- UTF-8 support.
- Cross platform support.
- Be able to associate checks with particular profiles/targets.
- Modern language support.
Despite wanting to use mkc for di on legacy systems, I think
it is better to just skip that and assume some modernity.
- Phase 1
- Check for compiler flags. (partial)
- Check for link flags. (partial)
- Complete: Check for headers.
Mostly not needed for modern systems.
- Check for library functions. (c: complete; c++ not implemented)
- Complete: Check for defines.
- Complete: Check for types.
- Complete: Check for structure members.
- Complete: Check size of types.
- Complete: Check if constant.
- Complete: Be able to name the checks.
- Complete: Configure a file.
- Complete: Very simple file support (variable=something).
- Complete: Package support (via pkg-config files).
- Complete: Variable cache. The usual invalidation problems.
- Complete: Check the number of arguments a function requires.
- Attributes:
- Complete: alternates
- Complete: compile flags
- Complete: headers
- Complete: link flags
- Statements:
- check_include_compilation
- Complete: check_include_dependencies
- Complete: check_include_guards
- Complete: foreach
- Complete: function
- Complete: include
- Complete: print
- Complete: set
- Complete: while
- Test with the libmp4tag package.
- Test with mkc.
- Phase 2
- Generate Makefiles
This will be difficult.
- Build executables.
- Build shared libraries.
- Test with libmp4tag.
- Phase 3
- Test with di.
di checks a lot of stuff. Many checks will be missing.
Start adding these checks in.
- Test with mkc.
- Test with libmp4tag.
- Phase 4
- Phase 5
- Test with di.
- Test with mkc.
- Start testing with BallroomDJ 4.
- At this point, an alpha release could be made.
- Phase 5
- Installation process.
- Test with libmp4tag.
- Test with di.
- Test with mkc.
- Test with BallroomDJ 4.
- alpha release.
- Phase 6
- Test with BallroomDJ 4.
- Test with libmp4tag.
- Test with di.
- Test with mkc.
- beta release.
Wiki Home