Makefile for add, sub, mul, and div programs in C



What is a Makefile?

A makefile is a unique file used in many programming projects to produce executable programs automatically by compiling and linking them. It provides instructions on linking and compiling a program, along with a list of source file dependencies and building commands. The program called make is what reads a Makefile and runs the required commands.

General format of Makefile

  • Specify the compiler (gcc for C programming and g++ for C++ programming).
  • Specify the compiler flags.
  • Define target executables.
  • Define default target (all).
  • Compile and link source files to executables.(can also be done using object files).
  • Clean target to remove executable.

Lets see example of makefile for addition, subtraction, multiplication, and division programs in C.

Makefile for add, sub, mul, and div Programs

# Compiler to use
CC = gcc

# Compiler flags
CFLAGS = -Wall -g

# Target executable names
TARGETS = add sub mul div

# Default target when running "make"
all: $(TARGETS)

run_add:add
@./add

run_sub:sub
@./sub

run_mul:mul
@./mul

run_div:div
@./div

# Rule for creating the addition program
add: add.c
@$(CC) $(CFLAGS) -o add add.c

# Rule for creating the subtraction program
sub: sub.c
@$(CC) $(CFLAGS) -o sub sub.c

# Rule for creating the multiplication program
mul: mul.c
@$(CC) $(CFLAGS) -o mul mul.c

# Rule for creating the division program
div: div.c
@$(CC) $(CFLAGS) -o div div.c

# Clean up object files and executables
clean:
rm -f $(TARGETS)

Makefile Execution Explanation

  • CC = gcc: This line sets gcc as the compiler to be used for compiling the C programs.
  • CFLAGS = -Wall -g: Here, -Wall enables all warnings which helps to identify potential issues in the code. -g generates debugging information with tools like gdb.
  • Here, TARGETS is a variable which contains names of executables. later which we can refer to all targets with $(TARGETS) rather than typing each name repeatedly.
  • all: This is the default target that runs when make is called without any specific instruction.
  • add: add.c: It defines the rule to compile add.c into an executable add
    @$(CC) $(CFLAGS) -o add add.c runs the compiler command with gcc and specified flags (-Wall -g) to create the add executable. Similarly for other operations.
  • run_<operation> allows to compile and run each program run_add compiles add if it is not already built. ./add runs the add executable. @ is used before that to suppress the output. Similarly for other programs.
  • clean target is used to remove the compiled executables.

Here are the programs for addition, subtraction, multiplication and division programs in C.

Program Files

add.c

#include <stdio.h>
int main() {
  int a, b;
  printf("Enter two integers to add: ");
  scanf("%d %d", &a, &b);
  printf("Sum: %d
", a + b); return 0; }

sub.c

#include <stdio.h>
int main() {
  int a, b;
  printf("Enter two integers to subtract: ");
  scanf("%d %d", &a, &b);
  printf("Difference: %d
", a - b); return 0; }

mul.c

#include <stdio.h>
int main() {
  int a, b;
  printf("Enter two integers to multiply: ");
  scanf("%d %d", &a, &b);
  printf("Product: %d
", a * b); return 0; }

div.c

#include <stdio.h>
int main() {
  int a, b;
  printf("Enter two integers to divide: ");
  scanf("%d %d", &a, &b);
  if (b != 0)
    printf("Quotient: %d
", a / b); else printf("Error: Division by zero.
"); return 0; }

Here Makefile and its related programs are under one directory.

run make for specific operations.


Updated on: 2024-11-12T17:36:54+05:30

175 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements