Compiling C Program using Make
- Using the example in Part 2, instead of compiling line by line, we can create a make file that will follow certain compiling instructions.
- The format for the make file is:
- The file is usually called Makefile
- The Makefile of previous tvm program will be as follows:
tvm2: tvm2.o finlib.o
gcc tvm2.o finlib.o -lm -o tvm2
tvm2.o: tvm2.c fin.h
gcc -c tvm2.c
finlib.o: finfn.c fin.h
gcc -c finfn.c -o finlib.o
rm -f tvm2 tvm2.o finlib.o
- This is the more explicit way to instruct the make program how to compile line by line.
- Please note that the final program must come first before compilation of object. It is a drill down approach.
- After the make file is written, you can package all the program and Makefile together.
- To compile the program just type #make
- To remove the compiled program and object type #make clean
- However, we need not be so explicit because make program know how to compile programs.
- See the example below:
tvm: tvm.o finfn.o fin.h
rm -f tvm tvm.o finfn.o
- CFLAGS refers to compile flags
- LDFLAGS refers to linking flags
- By indicating our target program and the dependencies, the make program will compile the program and link them appropriately using the flags indicated.
- Since the custom library need not compile every time, we can include the main C program and the object file of the library.
- The Makefile will be slightly different, as follows:
tvm: tvm.o finlib.o fin.h
rm -f tvm tvm.o
- We don’t supply finfn.c but we supply a precompiled object file finlib.o.