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