# mk-project¶

author: Brüggemann Eddie mk-project 1.0.0 C June 22, 2016

## Presentation¶

mk-project is a tool done to ease the development process 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, libaries, modules, documentations (in many formats, man pages, info books or pages), and so soon...

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

and so many make targets.

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

because of the wide number of targets provided and some take argument(s).

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 creatable 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, configurating, 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.

So mk-project wants to make you the development easier without forgetting our computational roots (TTY knows) !

Through providing you, through a big Makefile, which is generate, entirely, according to your settings,

the easiest way of build all in one.

You can edit the Makefile at your convienence, of course !

Note

But think to notify the developers,

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.

Note

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...


## What provide mk-project¶

Note

At the time i write this documentation mk-project support only 3 differents programming languages:

• C or C++ and python.

That's poor 3 language, but "I invite all the community to work together to take in charge more languages..."

• 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:

Note

• 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: ./source.

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 = ./source SRC_FILES =${SRC_DIR}/my_file${EXT_SRC} \${SRC_DIR}/subfolder/my_file${EXT_SRC}  So you will add file(s) relativ to the ./source 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 ((Ctrl + a)). • 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. • A support for Markdown, ReST and texinfo for building the documentation of your work is provided. The documentation targets support many output formats: • info files. • man (manual pages). • HTML, HTML5, and texi HTML documentation. • PDF and DVIPDF files. • ODT files. • XML files. • LATEX files. • EPUB files (epub3 is used). note: the docbook and latex format are used internaly. mk-project provide a simple G.U.I composing of terminals and a menubar. At first you can use the menu items to perform some actions like: • Generate a new project: Project -> New Project ((Ctrl + n)). Then you have to configurate 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 menubar (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.

Warning

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 tooltip by overfly the menu items.

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

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

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 (Ctrl + m) (which should stay in the Makefile current folder) and the terminals -> edit terminals (Ctrl + m) 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.

## Author(s)¶

Developers: Brüggemann Eddie Brüggemann Eddie

Become one !!!

## The futur of mk-project¶

### mk-projectmic-on !!!¶

Note

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 analysing your voice entry and executing the target !!!

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