Thread: Make systems

  1. #1
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875

    Make systems

    This is as much a survey question as anything: I would like to know what your favorite make system is and why. I have worked with a number of them over the years though in recent history I have been leaning more towards those that work in cross-platform environments.

    My "go-to" make system is CMake CMake - Cross Platform Make
    Pros: Easy for new programmers to grasp, works remarkably well across Win/Lin/Mac, well documented.
    Cons: Not as well known.

    Second choice is SCons. Written in Python (a language I know), works well on non-standard platforms. Cons: I cannot name anything specific but have had issues with it in the past with dealing with loadable libraries (DLL on Windows, Shared objects on Linux).

    I have worked with autoconf/automake in the past and can generally get the job done but it has one heck of a learning curve (compared to the others).

    Bakefiles: when doing a wxWindows app this is pretty much the defacto standard for building and since it is just XML, it is easy to work with. Works well on Win/Lin/Mac. Cons are that it is not that well known or documented.


    How about you?

    Peace

    Jeff
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Noel Llopis has a few rather old blog entries on this topic:
    The Quest for the Perfect Build System (June 2005)
    The Quest for the Perfect Build System (Part 2) (September 2005)
    Bad News for Scons Fans (September 2008)

    I have been looking at Waf as an alternative to SCons, but so far not much work with it (since I only use these tools for rather small hobby projects, so my requirements are quite low).
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Woof, woof! zacs7's Avatar
    Join Date
    Mar 2007
    Location
    Australia
    Posts
    3,459
    CMake doens't fix much of the problems with make... IMO it's horrible, they didn't need to invent a syntax. Even if they did, it could have been much simpler. And per-target defines are hideous and unsupported (there is no direct, simple way of doing them).

    I'm going to chuck my vote in for Bakefile, seriously it's wonderful. What do you mean not well documented? It's perfectly documented... https://www.bakefile.org/doc/index.html

  4. #4
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875
    Quote Originally Posted by zacs7 View Post
    CMake doens't fix much of the problems with make... IMO it's horrible, they didn't need to invent a syntax. Even if they did, it could have been much simpler. And per-target defines are hideous and unsupported (there is no direct, simple way of doing them).

    I'm going to chuck my vote in for Bakefile, seriously it's wonderful. What do you mean not well documented? It's perfectly documented... https://www.bakefile.org/doc/index.html
    One key thing that CMake brings to the table is the fact that it is far more approachable by non-Makefile-oriented people such as Windows and Mac folks. Sometimes you have to make the choice between a make system that can make anywhere and one that can be quickly understood by any programmer. What is right for my situation is almost certainly not right for everyone. I never meant to claim that it is better than any other system, just one that I know and have used for many years with great success whereas Makefiles themselves have proven to be debugging nightmares.

    WRT the Bakefiles, I really do like them. By documentation I simply meant that there is a published book on getting the most out of CMake whereas there isn't one that I know of for Bakefiles.

    @LL: I am looking into Waf....the more you know the more you know...

    Peace
    Jeff
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  5. #5
    Registered User
    Join Date
    Oct 2006
    Posts
    250
    qmake ftw!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. How to make a Packet sniffer/filter?
    By shown in forum C++ Programming
    Replies: 2
    Last Post: 02-22-2009, 09:51 PM
  2. "Cannot make pipe"
    By crepincdotcom in forum C Programming
    Replies: 5
    Last Post: 08-16-2004, 12:43 PM
  3. HELP!wanting to make full screen game windowed
    By rented in forum Game Programming
    Replies: 3
    Last Post: 06-11-2004, 04:19 AM
  4. make all rule
    By duffy in forum C Programming
    Replies: 9
    Last Post: 09-11-2003, 01:05 PM
  5. Replies: 6
    Last Post: 04-20-2002, 06:35 PM