author:Brüggemann Eddie <>
release:Nov 15, 2017


mk-project is a C and C++ project builder, with a nice G.U.I, which generate at first a big, big do it all, Makefile.

So that you can create a project and keep the tree of your project, which reflect the UNIX file system tree.

note:mk-project does not claim to replace the auto-tools but it is build on the top in the spirit of development instead of distributing.

In addition vim or others T.U.I editors users,

can use the entire program by editing their source files into the Terminals ‣ Edit terminal which is a notebook, you can adding as many terminals you want.

Else mk-project is a tool done to ease the development process of C or C++ programs and a good bridge for the distributing process. Especially with the autotools.

mk-project is a T.D.E (Terminal Developement Environment):

an utility used for the development of programs with many functionalities !

mk-project is based on the make tool which on his turn, use severals utilities, for providing many features

and so many useful make targets.

Callable through a terminal, in preference (or through the G.U.I from mk-project: targets ‣ *).

mk-project is an Environment in the terms of his wide field of targets which aren’t statically at all.

But dynamically configurable, changeable and self-build-able and so that the grass becomes greener...

The targets are short string easy to remember and so you can make work

  • your computer, through the terminals
  • and mostly your head through remembering, configuring, modifying and creating targets.

And not become an I.D.E (Integrated Development Environment) zombie thrashing his head and knows !

But a proud well informed programmer which knows exactly how his system and environment works which can easily automate the task using the make syntax.


You can edit the Makefile by hand at your convenience, of course !


But I think It’s better for some generic targets to include them directly

into the template file(s) you will find at $(pkgdatadir): /usr(/local/share/mk-project/templates/*

So that you get it every time you generate a new project.

warning:If you do this: you must take care of escaping the ‘%’ with a ‘%’ character : “%%”.

But think to notify the developers,

to inform them about your add-on(s) if you think it’s reliable and usable for others.

What provide mk-project


At the time i write this documentation mk-project support:

the C and C++ programming language.

“I invite all the community to work together to take in charge more languages...”

file:see this document for participating (You can become from the simple contributor to the entire coauthor).
  • mk-project provide at first a solid base for building a work,

    through a big Makefile, which can be edited manually in respect of the following few conventions:


  • Configuration settings are set through the string:

    • F For false (disable option).
    • T for true (enable option).
  • Some few others variables:

    The variable $(SRC_FILES) is build from the variable $(SRC_DIR) which value is always: ./src.

    This mean if you want to add files manually (if you doesn’t use the GUI for this task) to your Makefile,

    do it properly by using the $(SRC_DIR) variable:

    SRC_DIR   = ./src
    SRC_FILES = ${SRC_DIR}/my_file${EXT_SRC} \

    So you will add file(s) relative to the ./src directory where source file(s) have to reside.

    note:Otherwise simply use the G.U.I for adding file(s) Project -> Add file(s) to project.
  • A building system for your source files.

  • Many tools for machine code investigation:

    From the simple -g option setting by a GNU-Compiler for debbuging with gdb, through disassemble the machine code files and executable tracing, to profiling the entire work.

  • For the documentation mk-project support the sphinx documentation generator.

    The sphinx documentation targets support many output formats:

    • info files.
    • man (manual pages).
    • HTML, single HTML, and texi HTML documentation.
    • PDF and LATEXPDF files.
    • XML files.
    • LATEX files.
    • EPUB files.

    And many more through sphinx like: qthelp, applehelp, xml, json or devhelp per example.

mk-project provide a simple G.U.I composing of terminals and a menu-bar.

At first you can use the menu items to perform some actions like:

  • Generate a new project: Project -> New Project.

    Then you have to configure your project answering some basics questions like:

    • Programming language.
    • Program name
    • Project folder (in which the new project will be generate).

    And some others according to your settings.

Once the new project is generated you can access to the make targets either through the mk-project G.U.I menu-bar (simple click on the wanted target to execute it !).

Or from the terminal of mk-project or any else terminal at the condition to be in the Makefile current folder.

note:Simply type $ make help to get the list of available targets.


If you add some user-targets, to the Makefile(s), think at adding them to the $ make help output.

So that mk-project can auto-detect your target and list it to add it as menu item to the make targets.

If you add a bash comment on the same line it will be displayed as tool-tip by overfly the menu items.

warning:Simply think to limit your entry at terminal maximal size: 79 characters.

So mk-project provide another terminals ordered in tabs which you can add, remove, and configuring.

For purpose of terminals editor users like vi, ed, emacs which can be easily launch an instance their favorite terminal editor in every tab all that continuing using the mk-project interface.

Finally you can switch between the single terminals -> make terminal (which should stay in the Makefile current folder) and the terminals -> edit terminals terminals using the menu radio items.

How mk-project works

note:The answers is simply all is make in Makefiles, which will make you the development easier.

mk-project doesn’t claim to replace an IDE or others building tools but only give you an alternative

which you can entirely adapt to your requirement.


For being true the make tool implementation and the way it make you the life easier

without forgetting your TTY Knows has impress me so that

I couldn’t develop a good project without it

or in others words:

If the make tool have never exist I would invent it...


Developer:Brüggemann Eddie
Documenter:Brüggemann Eddie


Become one !!!

The future of mk-project

mk-project: mic-on !!!


The idea is to sit in front of the interface of mk-project (microphone on !),

writing the source code from your last creation:

And to say execute: make exec, or the target you want...

The program could react by analyzing your voice entry and executing the target !!!

So that the build is automate by (simple) voice recognition.

So you can write your program with your hands


build it with by emitting a simple order so that the program execute the corresponding target,

if recognize...

What do you think about it ?

note:We could enhance mk-project in the way of Speech recognition...