Makefile

A good utility one should know.

Makefile Construct

USE_UCLIBC=1

INSTDIR = $(prefix)/bin

INSTMODE = 0755

PROGS = sum

SRCS = main.c input.c sum.c output.c

OBJS = main.o input.o sum.o output.o

CFLAGS += -Wall

all: $(PROGS)

$(PROGS): $(OBJS)

$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

install: $(PROGS)

$(INSTALL) -d $(INSTDIR)

$(INSTALL) -m $(INSTMODE) $(PROGS) $(INSTDIR)

clean:

rm -rf $(PROGS) *.o core

The files looks like ...

main.c

#include"input.h"

#include"output.h"

int main()

{

int a=0;

a=input();

output(a);

return 0;

}

input.c

#include"input.h"

int input()

{

int a,b;

printf("Enter numbers..\n1ST: ");

scanf("%d",&a);

printf("2ND: ");

scanf("%d",&b);

return sum(a,b);

}

input.h

#include<stdio.h>

#include"sum.h"

#ifndef INPUT

#define INPUT

int input();

#endif

sum.c

#include"sum.h"

int sum(int a, int b)

{

return (a+b);

}

sum.h

#ifndef SUM

#define SUM

int sum(int ,int );

#endif

output.c

#include"output.h"

void output(int sum)

{

printf("SUM: %d \n",sum);

}

output.h

#include<stdio.h>

#ifndef OUTPUT

#define OUTPUT

void output(int);

#endif

and output looks like:

nandan@nandan:~/make_test$ make

cc -Wall -c -o main.o main.c

cc -Wall -c -o input.o input.c

cc -Wall -c -o sum.o sum.c

cc -Wall -c -o output.o output.c

cc main.o input.o sum.o output.o -o sum

nandan@nandan:~/make_test$ ./sum

Enter numbers..

1ST: 1

2ND: 2

SUM: 3