Menu

Status

Brad Lanam

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
    • Handle sub-directories
  • 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


Related

Wiki: GettingHelp
Wiki: Home
Wiki: Overview