In front of me some different Technologies and I'm confused between them.
GNU make, CMAKE, Qmake, Code::blocks methodology
Code::Blocks uses a custom build system, which stores its information in XML-based project files, but can optionally use external makefiles **says WIKI**
1- What's the difference between CMAKE and GNU MAKE ?
2- If I'm planning for long term relationship with linux what is the best for that ?
3- If I needed to cross-platform some apps, will I need the same technique ?
CMake generates platform specific make files. So on Linux, it wil generate files for gnu make, on windows it can generate Visual Studio solutions.
There are some other good options to consider like scons and waf, they are both Python based, cross platform, and are much more pleasant to work with than GNU Make.
CMake is a cross-platform wrapper around more traditional build systems. like make for linux and Visual Studio Solutions for windows.
"One nice feature of CMake is the ability to do out of source builds. That means you can make all your .o
files and even the binary executables without cluttering up your source tree."
I found this tutorial very helpful.