IT Central Station is now PeerSpot: Here's why

GNU Make OverviewUNIXBusinessApplication

Buyer's Guide

Download the Build Automation Buyer's Guide including reviews and more. Updated: June 2022

What is GNU Make?
Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files.
GNU Make Video

Archived GNU Make Reviews (more than two years old)

Filter by:
Filter Reviews
Industry
Loading...
Filter Unavailable
Company Size
Loading...
Filter Unavailable
Job Level
Loading...
Filter Unavailable
Rating
Loading...
Filter Unavailable
Considered
Loading...
Filter Unavailable
Order by:
Loading...
  • Date
  • Highest Rating
  • Lowest Rating
  • Review Length
Search:
Showingreviews based on the current filters. Reset all filters
it_user790464 - PeerSpot reviewer
Software Engineer at a tech vendor with 11-50 employees
Real User
Full-featured syntax allows building strategies as simple or as complex as needed
Pros and Cons
  • "GNU Make is such an essential tool that it is almost impossible to imagine working without it. Not having it, developers would probably have to resort to doing everything manually or via shell scripts."
  • "Makefiles are extremely easy to work with using any preferred editor. GNU Make can be run directly from the terminal, not requiring any time wasted on clicking."
  • "Full-featured syntax allows building strategies as simple or as complex as one wishes, and declarative approach fits the task really well. Wide adoption also means that everybody knows what GNU Make is and how to use it."
  • "I have not encountered any scalability issues with GNU Make. It is as scalable as the project's structure is, and then some."
  • "Vanilla GNU Make does not support any kind of colored output. A wrapper named colormake exists to work around this, but native (opt-in) support would be welcome."

How has it helped my organization?

GNU Make is such an essential tool that it is almost impossible to imagine working without it. Not having it, developers would probably have to resort to doing everything manually or via shell scripts. Tools such as automake and various IDEs that depend on GNU Make would be rendered useless.

What is most valuable?

Lack of any GUI, full-featured declarative syntax, wide adoption. Makefiles are extremely easy to work with using any preferred editor. GNU Make can be run directly from the terminal, not requiring any time wasted on clicking. Full-featured syntax allows building strategies as simple or as complex as one wishes, and declarative approach fits the task really well. Wide adoption also means that everybody knows what GNU Make is and how to use it.

What needs improvement?

Vanilla GNU Make does not support any kind of colored output. A wrapper named colormake exists to work around this, but native (opt-in) support would be welcome.

For how long have I used the solution?

More than five years.
Buyer's Guide
Build Automation
June 2022
Find out what your peers are saying about GNU, Jenkins, JetBrains and others in Build Automation. Updated: June 2022.
608,010 professionals have used our research since 2012.

What do I think about the stability of the solution?

No, I have not encountered any stability issues with GNU Make. It is one of the most stable tools I have ever used.

What do I think about the scalability of the solution?

No, I have not encountered any scalability issues with GNU Make. It is as scalable as the project's structure is, and then some. And if yet not enough, there's Automake.

How are customer service and support?

There is no technical support. As with all GNU software, GNU Make is distributed "as-is" with no warranty and no support package. Documentation for GNU Make and a plethora of advice and examples on the Web make support unneeded anyway.

Which solution did I use previously and why did I switch?

I did not used anything different before. GNU Make was always there for me.

How was the initial setup?

Very straightforward. Just learn basics of GNU Make language and you're ready to go. Then learn more to be more terse or efficient with it.

What's my experience with pricing, setup cost, and licensing?

GNU Make is free and open source software. Free as in "freedom." Just download the last version from your repository if you don't have it yet.

Which other solutions did I evaluate?

No, I did not evaluate other options. GNU Make is the standard tool, and I wished to work with it, as such.

What other advice do I have?

GNU Make is an extremely helpful and automatic building tool, useful in many diverse appliances. It is extremely hard to imagine contemporary C/C++ development without help of GNU Make. Read the docs. You'll be surprised at how much GNU Make can actually do when used correctly. It is definitely worth the time to read through the documentation and try out different concepts.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
it_user790461 - PeerSpot reviewer
Senior Software Engineer at a tech services company with 201-500 employees
Real User
Open source, straightforward setup, good for building projects

How has it helped my organization?

Built projects.

What is most valuable?

Building projects.

What needs improvement?

Tabs. GNU Make requires using the Tab symbol as the first symbol of command line for execution. In some text editors this can be problematic, as they automatically insert spaces instead of tabs.

For how long have I used the solution?

More than five years.

What do I think about the stability of the solution?

No stability issues.

What do I think about the scalability of the solution?

No scalability issues.

How are customer service and technical support?

There’s no support for this product, it’s open source.

Which solution did I use previously and why did I switch?

No previous solution.

How was the initial setup?

Extremely straightforward.

What's my experience with pricing, setup cost, and licensing?

There is no price for this product. No licensing. It’s open-source.

Which other solutions did I evaluate?

Ant. But GNU Make is significantly better in my opinion.

What other advice do I have?

I think this product has all you need.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Buyer's Guide
Build Automation
June 2022
Find out what your peers are saying about GNU, Jenkins, JetBrains and others in Build Automation. Updated: June 2022.
608,010 professionals have used our research since 2012.
it_user1227 - PeerSpot reviewer
Tech Support Staff at a tech company with 51-200 employees
Consultant
GNU make is a basic build automation tool for generating build binaries. Not suitable for projects with circular dependencies.

Valuable Features:

GNU make is a build automation utility for running builds on various Linux flavored platforms. It can easily build targets and can be integrated with other build automation utilities for this platform. It avoids rebuilding unneeded targets and thus saves time and improves overall efficiency. GNU make build process supports nesting of make files. You can easily specify a particular static pattern rule for compilation of source packages. You can do multiple level of code optimization during compilation using the optimization flags. Also, It can support various types of make file names using the flag option available.

Room for Improvement:

GNU make has just the basic build automation features and is not smart enough to handle complex build issues e.g. it cannot handle circular dependency in the makefiles and requires you to manually fix them. Also it cannot generate builds targeted for different platform and requires the end user to use some other third party tool for the same. GNU make is a bad candidate for builds that require incremental builds often, as it does not support this feature. Due to all these features it is recommended for small to medium projects only and is not suitable for very complex and heavy projects which requires various circular dependency etc.

Other Advice:

Free and open source build automation tool suitable for small to medium projects. It is available on almost all platforms. You can easily nest make files for multiple levels and nonstandard make file names are also supported with the help of the flag option. Makefiles contains various rules to execute, various include and library directives which aids in the compilation process. It uses time stamping feature to determine which modules needs a rebuild and executes them. Suffers from circular dependency and is not capable of handling very complex projects.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
it_user1158 - PeerSpot reviewer
Developer at a tech company with 51-200 employees
Vendor
A *nix Build automation tool suitable for smaller projects, lacks scalability and performance

Valuable Features:

- One of the most popular build automation tools that are specially used on various *nix platforms. - Build process is divided into various "Rules" which makes it very user friendly. Rules essentially contain dependency lists, files, targets, etc. - Avoids rebuilding targets - Has support for integrating with third party dependency builder tools, like Automake, from the GNU Project. - Apart from the default makefile names, it supports non-standard makefile names using the -f or - - file flag option. - Supports use of nested makefile usage. - Supports optimized code compilation through various -O flags passed to the compiler through makefile.

Room for Improvement:

- Since builds targeted for a particular platform cannot be run on a different platform, "Make" doesn't have the inbuilt functionality of tailoring a build targeted to a platform. It relies on other tools like AutoConf for platform based build customizations. - Recursive make might result in circular dependency. - Make parsers don't follow the standard model, as parsing a makefile without reading it is not possible. - Writing makefiles is not easy as it requires a basic knowledge of make syntax. - One major weakness of the make is its limited support for “if” conditionals. Writing make commands involving AND, OR, etc. is very cumbersome. - Make has no data types, other than strings. There is no Boolean type. - Make’s reliability is very poor and is not suitable for larger or incremental builds. - Not being able to list any dependency to make will lead to a compilation failure. Each and every dependency has to be declared explicitly. - Editing target files during build has an unpredictable impact on the build. - Due to buggy makefiles containing circular dependency, target files get rebuilt even though none of its targets have changed since the last build.

Other Advice:

One of the best things about GNU Make is that, it is available on almost all Linux platforms. Once you know the basic syntax of the Make file, you can start writing your own makefiles. Because writing makefiles for bigger projects with circular dependency is a very complex task, it is recommended to use alternative build automation tools. It's highly popular for smaller projects of lesser complexity.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
it_user1065 - PeerSpot reviewer
Senior Manager of Data Center at a integrator with 51-200 employees
Vendor
GNU Make is a UNIX hacker's toolkit to manipulate and build executables

Valuable Features:

Pros of GNU make- 1) It can use, delete, and regenerate intermediate files which do not need to be saved with a package 2) The -o -v option used along with make 3) Specify extra makefiles to be read using an environment variable through GNU make 4) Specify static pattern rules for source package compilation 5) Static pattern and search rules with vpath searches

Room for Improvement:

Few cons of GNU make 1) Problems in fulfilling dependency with different kernel versions 2) Poor reliability for larger or incremental builds 3) Differentiates between two files on basis of time stamps and not the contents of the files 4) Environment variable inheritance and dependencies

Other Advice:

Make tool, originally made for the GNU operating system, helps in the generation of executable from the main program source files. Make enables the installation of a program on the nix (unix,linux) platform through a process of running the configure command followed by make and then make install command. It automatically determines which modules of a program to recompile and automatically compiles them. It works on makefile database and last modification time stamps to update particular modules. The GNU make reads the makefile in the current destination directory and begins processing rules. The make files from GNU make basically contain explicit rules, implicit rules, comments and directives.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
Buyer's Guide
Download our free Build Automation Report and find out what your peers are saying about GNU, Jenkins, JetBrains, and more!
Updated: June 2022
Product Categories
Build Automation
Buyer's Guide
Download our free Build Automation Report and find out what your peers are saying about GNU, Jenkins, JetBrains, and more!