No Make
Producing a makefile for a C or C ++ program is tedious, especially because of the very special syntax of this file, which dates back to ancient computers.
One found now that it was more convenient to produce a CMake file from which a makefile file can be generated automatically. But that does not simplify the work and we see that there are hundreds of tutorials on the web to help build this new configuration file for generating configuration files.
To put it simply, I wrote No Make, a program that finds the dependencies of each source file by itself and compiles them, before generating the executable program.
No Make checks for each source file if there is an object file already generated or if the source is newer than the object file, and it compiles the source only in this case.
One can however with the option -a choose to regenerate the whole project. In both cases with one command:
nomake source
ou:
nomake -a source
"source" is the name of the source code of the file containing the "main" function. The extension is optional. It must include the header files of the sources on which it depends, which themselves must also have #include for their dependencies. Another constraint is that all source files must have the same extension, ".c" or ".cpp".
No Make first builds a list of all the necessary files, based on the include commands, and compiles the sources starting with the ones with the least dependencies and ending with the one with the most.
To display the list of options, just type the name of the program:
nomake
Personalizing
The nomake.ini file is a simple text file which contains a list of options to adapt nomake to your compiler and your project:
- compiler: Compiler name and options (the option for the source file is handled by the program).
- linker: Name of the linker and options. The list of object files is managed by the program).
- extension: name of the extension of the object files.
- libs: list of additional files to include.
Example:
compiler=@cl.exe /nologo /O2 /c /D "_UNIX" /Ip:\antlr-2.7.7\lib\cpp\antlr\ /Ip:\antlr-2.7.7\lib\cpp\ /EHsc
linker=@link.exe /nologo /OUT:ccw.exe
extension= .obj
libs=antlr.a
Download
The source code is included. License: Apache 2.0
Works by default with Visual C on Windows.
See also: