Makefile and GNU make for C / C++ Projects on Linux systems
3.4 (178 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,269 students enrolled

Makefile and GNU make for C / C++ Projects on Linux systems

Makefile and GNU make for C / C++ Projects / Embedded on Linux Systems tutorial. Advanced build of C / C++ programming.
3.4 (178 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,269 students enrolled
Last updated 7/2020
Current price: $64.99 Original price: $99.99 Discount: 35% off
9 minutes left at this price!
30-Day Money-Back Guarantee
This course includes
  • 2 hours on-demand video
  • 4 articles
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Understanding of build process automation for software product
  • Understanding of tasks required to manage the software product
  • Explanation of various GNU make utility features for efficient automation
  • How to write Makefile
  • Demo of make utility features with appropriate Makefile and other files
  • Knowledge to understand the existing build process
  • Knowledge to define the build process for new product
  • 45 Quiz questions for better understanding of Makefile and GNU make
Course content
Expand all 43 lectures 01:57:21
+ Introduction to make Utility and Makefile
12 lectures 39:45
Commands of Building Project
Simple Makefile
Processing of Makefile
Tasks other than build in Makefile
Parts of Makefile
Including another Makefile
Running make and Naming of Makefile

Quiz questions for Introduction to make Utility and Makefile

Quiz 1
14 questions
Exercise 1
+ Rules
17 lectures 36:53
What is Rule
Rule Syntax
Types of Prerequisites
Wildcard Examples
wildcard Function
Automatic Variables
Building target using automatic variables
Finding Prerequisites
vpath directive
VPATH demo
Phony Targets 2
Rule without Commands and Prerequisites
Empty Target File

Quiz questions for Rules

Quiz - 2
18 questions
Exercise 2
+ Commands
12 lectures 38:25
Commands in Rules
Command Syntax
Continuation of Command Line
How to use variables in command
Displaying commands
Command Errors
Use of make in command
Communicating options to a Sub-make
Displaying the directory information
Empty Commands

Quiz questions for Commands

Quiz 3
13 questions
Exercise 3
+ Bonus Lecture
1 lecture 00:35
Recommended Course and offer on my other courses
  • Exposure to Linux or GNUStep and MINGW environment
  • Basic understanding of build process of software product
  • Understanding of variety of tasks that are required for software product
  • Free GNU make tool on Linux/Unix

This "Makefile and GNU make" course is unique and not available anywhere else. Its a must(have to skill) for defining the build process for new product and understanding for maintenance of existing product.

Subtitles are provided with this course.

Why learn Makefile and GNU make

  • Must have skill for Software Development/Maintenance

  • Every Project has Build activity

  • There are separate Build and Release teams

  • Automation of Build is must for big real and complex projects

  • First step to get complex product to release

  • Necessary to understand the working of Product

  • Better management of product

  • Fresh engineers require better understanding of system

  • To understand cmake generated makefile

  • Well prepared for interview

Build process is one of the most important activity in development and support of software product. Software products have grown with unbelievable number of files. Now most of the big software products require separate team for build activity. Similarly there are lot of tasks required for managing the software products. Whether it is a development from scratch or maintenance of existing product, build process has to be defined and understood properly. Makefile and GNU make are used heavily from years for software product build automation.

The complexity of build process and numerous tasks to maintain the software product require efficient automation. Makefile and GNU make in linux/unix provides great features to automate the build process and tasks in efficient way. Use of Makefile in C / C++ projects is very common and GNU make is most favorite tool of developers for building the complex projects.

This "Makefile and GNU make on Linux and Unix" tutorial explains all the features provided by the GNU make utility. The course explains how to create the Makefile, how to run the Makefile, rules, phony target and various activity of building project in Makefile by using the features provided by GNU make.

All the features explained have been shown with appropriate Makefile examples and other required files. Automation of build process and tasks have been explained and demonstration is provided for the same.

In this Makefile and GNU make course, I have used Free GNUStep and MINGW on Windows as environment but it can be done on any Linux/Unix system or other system for variety of applications for automation of build process and tasks.

GNU make manual/documentation will be good to explore to get more details and this Makefile course will be good help to move ahead.

Examples are taken for small C programs but simple programs of any other language like C++/Java/Python/Ruby/golang etc can be taken to learn and build automation of projects and tasks. Also the same can be applied for Docker/Embedded System etc.

Makefile books/tutorial are not much available to developers, this "Makefile and GNU make on Linux and Unix" course is already helping lot of developers and will make good foundation. Also it will be a good complement to any Makefile book/tutorial. This Makefile course will also help you to understand CMake generated makefiles.

What Students Say-

"Very good course for those who want to work on makefile. Although I was using gnu make in my work since many years, I had not explored all it's options. This course explains all the options with great detail. Thanks for creating such a wonderful course."

"I have used several build systems in the past decades and somehow missed Linux make. Last year I started to go deeper in Linux and moved my development projects from Windows to Linux.

Make utility has kept coming up time to time. Now, I am in a need of a simple build system to compile SASS projects, move Web-client files back and forth and deploy PHP files under various web servers. I chose gnu make because it has been always there (at least since 40 years) and I think it is going to be there for a long time on most platforms that counts (to me).

So, I tried to learn it on my own with a trial-and-error approach as well as from various blogs. I even started to read a makefile book solely dedicated to this topic. In vain. To be honest, the more I read about gnu make the more cryptic it got to seem to me.

Luckily, Suresh's training managed to shed a light on the foundations which are basically quite simple. I really like his gradual approach through light examples by keeping those makefiles as straightforward as possible. Obviously, the course is for mere dummies and there is a lot to learn after the course over real life applications.

All, in all, I found this course the best starter on this topic."

"Nice course"

"Nice explanation"


"Very informative"

"Good explanation in short time."

"Great intro on Makefile."

"wonderful review."

"The instructor did well."

"yes , the Course is very Simple and to the Point"

"Good course for me - learned just what I was looking for, thanks"

"This course provides a great overview, very useful for people, who are fresh in GNU Makefile tool."

"I liked the presentation style and course content."

"instructor makes great effort to explain the topics and provide terrific examples. Definitely learned a lot."

"Very helpful course. Understandable material, right order of the topics, enough practical examples and good explanation."

"I think it is very good explained and it is easy to follow since the material is presented step by step, examples are also good."

"This was a comprehensive course on using make. I thought that the instructor was very knowledgeable and did a great job covering different features of GNU make utility."

"This is exactly what you need to learn gnu Make with no worries about anything being left out.

In fact, I had been taking a course on another site and they glossed over GNU Make so much that I came back to Udemy looking for a real course on the subject. This is it!

The Instructor sets up a couple of examples right away and reuses them as the complexity of what's being discussed increases - this is very helpful.

He's very thorough in demonstrating every line of code - at points you might think there are TOO MANY examples (how often can you say that about a course?) , but I would encourage you to stick with it - the repetition really drives the points home and gets you familiar with the unfamiliar syntax of GNU Make."

"This is pretty short course without any practical tasks, but it really answered all my questions regarding GNU make and gave me a good base to continue study."

"Mr. Suresh has a solid, firm knowledge of the subjects approached in the course. It's a very easy going course which flows in a pleasant way.

The way he presents the course is quite dynamic and enjoyable. I've been wanting to specialize myself in the subject of the course for quite a while already. Have bought a few books on the subject, read them all, but have only barely scratched the surface. I really feel now that I'm finally going to have a deeper grasp of it, thanks to Suresh's course."

So what are you waiting for, click on Buy button to enroll now and start learning.

Who this course is for:
  • Students
  • Software Developers/Engineers
  • Software/Solution Architects
  • Technical Managers