linux make

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:22:49
CC=gcc
CPPFLAGS=
CFLAGS=-O2 -pipe
LDFLAGS=-s
PREFIX=/usr

all : prog1 prog2

prog1 : prog1.o
$(CC) $(LDFLAGS) -o prog1 prog1.o

prog1.o : prog1.c
$(CC) -c $(CFLAGS) prog1.c

prog2 : prog2.o
$(CC) $(CFLAGS) $(LDFLAGS) -o prog2 prog2.o

prog2.o : prog2.c
$(CC) -c $(CPPFLAGS) $(CFLAGS) prog2.c

clean :
rm -f *.{o,a} prog{1,2}

install : prog1 prog2
if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
cp -f prog1 $(PREFIX)/bin/prog1
cp -f prog2 $(PREFIX)/bin/prog2

check test : prog1 prog2
prog1 < sample1.ref > sample1.rz
prog1 < sample2.ref > sample3.rz
cmp sample1.ok sample1.rz
cmp sample2.ok sample2.rz
上面是一个简单的makefile的例子,谁能帮解释一下最后面的check test那块的每行的具体含义呢?谢谢

prog1 < sample1.ref > sample1.rz
prog1 < sample2.ref > sample3.r
执行prog1,标准输入重定向为sample1.ref和sample2.ref,然后再把标准输出重定向到sample1.rz和sample2.rz

cmp sample1.ok sample1.rz
cmp sample2.ok sample2.rz
然后应该是把正确结果与prog1输出的结果进行比较进行比较