プログラムを開発しているときは、完成までに何回もコンパイルをする必要 がある。プログラムが大きな場合、コンパイルに時間がかかる。そこで、プロ グラムを分割して記述し、各々機械語にコンパイルしておいて、最後に全体を リンクするという分割コンパイルが行われる。
例えば、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) |