any good tool for makefile generation?
Solution 1
Other suggestions you may want to consider:
-
Scons is a cross-platform, cross-compiler build library, uses Python scripting for the build systems. Used in a variety of large projects, and performs very well.
-
CMake is also pretty sweet.
-
Finally, if all else fails...
Solution 2
Try Automatic Makefile Generator.
It has support for the following compilers:
- Borland 3.1
- Borland 5.0
- Borland 5.0, 16 bit
- Borland 5.5
- Borland 5.6
- Borland 5.8
- CC
- GNU g++
- GNU g++, dynamic library
- Intel 5, 6, 7 for Linux
- Intel 5, 6, 7 for Linux, dynamic library
- Intel 5, 6, 7 for Windows
- Intel 8,9,10 for Linux
- Intel 8,9,10 for Linux, dynamic library
- Intel 8,9 for Windows
- Intel 10 for Windows
- Visual C++ 5
- Visual C++ 6, 7, 7.1
- Visual C++ 8
- Open Watcom
- Watcom 10A
- Watcom 10A, 16 bit
Solution 3
I've used Bakefile before with some success. It's fairly simple and seems to work well.
Solution 4
I would vote for OMake. It fixes all complains I had with GNU make:
- it's a full-blown language.
- uses MD5 instead of timestamps.
- provides a minimal shell which implements the most useful Unix commands on all platforms: find, sed, AWK, etc.
- works with either Unix or DOS style pathnames.
- extensively documented.
- supports parallel builds.
- fast.
Solution 5
CMake is the only tool which can actually generate real Visual Studio projects (i.e., not "Makefile"-projects which call out to an external tool), and which automatically recreates the projects when the build input file (CMakeLists.txt) changes.
SCons performance issues are well-known and a thoroughly debated topic on the SCons mailing lists.
Comments
-
Serge almost 2 years
I'm looking for a tool which can generate makefile for a C/C++ project for different compilers (gcc, microsoft vc++, borland etc) and different platforms (Win, Linux, Mac).
-
kirbyfan64sos over 9 yearsYet another dead SO link! I manually went to your GitHub page, and what I see there as CodeMate is a Fortran-only build something. Did you create another project with the same name? This looks like it might be what you meant.