best make system?

im starting a project that is going to take a lot of files, and wanted to get started on the build system, so i can just update it as i go. the five solutions i know of are:
compile.sh
./configure && make && make install
qmake
cmake
writing make files by hand

questions:
1) which of these do you guys recommend for big projects? ive used cmake for a small irc bot before but never for anything big

2) are there any others i didnt list?

edit: i also want to be able to keep error logs, so it would be great if i can integrate this into the build script:
&> MacroForDateTime.log
Last edited on
closed account (3hM2Nwbp)
In my humblest of opinions, the best make system is often the one that is provided with your IDE.
I would say CMake for any project you intend to distribute and hand-written Makefiles for projects that aren't intended to be distributed or just aren't at that stage yet.
I prefer scons. I often don't use an IDE.
@luc: i dont use an ide. @chrisname: ok cool. @cq: whats scons?
It's a python-based replacement for autotools.
I preffer CMake.

When I started, I managed to whip up a "semi-universal" (semi, because it will compile anything that doesn't require 3rd-party libraries, and if you need third-party libraries, you'll have to add a few modifications to it yourself) CMakelists.txt script which I use to compile EVERYTHING.

The advantages to this script are tremendous: there is darn near zero work involved in adding new files or changing the build options.

I am currently using it right now for a huge project, and it's really nice. You can get it here, if you wish to use it:
https://gist.github.com/BeenEncoded/913a08b9e9760e2a6b4f

It currently supports boost and NCurses on Linux. Minor adjustments may need to be made for Mac or Windows (only if you're useing third party libraries, though).

Use:

If you put all of your source files into a single folder, you can name them whatever you want, make subfolders, etc... Adding new files is as simple as creating them and re-generating the makefile.
Topic archived. No new replies allowed.