プログラムを開発しているときは、完成までに何回もコンパイルをする必要 がある。プログラムが大きな場合、コンパイルに時間がかかる。そこで、プロ グラムを分割して記述し、各々機械語にコンパイルしておいて、最後に全体を リンクするという分割コンパイルが行われる。
例えば、GLSC を使った、myprog.c, sub1.c, sub2.c を コンパイルしてリンクするには、
oyabun% cc -O -c myprog.c |
oyabun% cc -O -c sub1.c |
こういうのを自動化するのが、make である。これは、一連の手順 を
| 簡単な Makefile |
myprog: myprog.o sub1.o sub2.o
cc -O -o myprog myprog.o sub1.o sub2.o -lglscd -lX11 -lm
myprog.o: myprog.c
cc -O -c myprog.c
sub1.o: sub1.c
cc -O -c sub1.c
sub2.o: sub2.c
cc -O -c sub2.c
|
oyabun% make |
make には、色々な仕掛けがあり、例えば私なら
| 少し工夫した Makefile |
CC = cc
CFLAGS = -O
OBJS = myprog.o sub1.o sub2.o
default: myprog
myprog: $(OBJS)
$(CC) $(CFLAGS) -o $@ $(OBJS) -lglscd -lX11 -lm
myprog.o: myprog.c
sub1.o: sub1.c
sub2.o: sub2.c
clean:
rm -f $(OBJS)
|