阅读:1357回复:2
一个makefile的问题
TOP= ..
ARCH = $(TOP)/arch/embed BUILD = $(TOP)/build/embed O = embed.o CC = m68k-pic-coff-gcc -fpic OBJCOPY = m68k-pic-coff-objcopy LD = m68k-pic-coff-ld --embedded-relocs LIBGCC = `$(CC) -v 2>&1 | grep specs | sed -e \"s/Reading specs from //\" | sed -e s/specs/libgcc.a/` STARTUP = $(ARCH)/crt0.o CFLAGS = -O2 -m68000 -g -fno-builtin -msoft-float -D__linux__ -DEMBED -I$(TOP)/../lib/include COFF2FLT = coff2flt LINKM = $(LD) -T $(ARCH)/user.ld $(STARTUP) $^ $(TOP)/../lib/libc.a $(TOP)/../lib/libmf.a $(LIBGCC) -o $@.coff && $(COFF2FLT) -o $@ $@.coff $(LDFLAGS) STAMP = $(TOP)/version/stamp.$(O) EXEC = $(BUILD)/handpad OBJS = hand.$(O) ../gui/graphic.o CFLAGS += all:: $(EXEC) handpad.stamp: $(OBJS) $(EXEC): hand.stamp.$(O) $(STAMP) $(OBJS) $(LINKM) 此MAKEFILE 是将一个hand.c文件编译并同graphic.o(已存在)连接 产生handpad 我有几个问题,还请各位高手指点指点 1. LIBGCC 有何用,其中 $(CC)-v 2<&1 ,-v 2<&1 为何意思?grep specs 有何用处? sed 什么意思?这些之间加上管道符号,有何用? 2,怎么不见到编译,就直接连接啊? 3,在 LINKM中 && 是什么么意思? 4. CFLAGS += 中 +=是何意思? 在下先谢过大家了 |
|
沙发#
发布于:2003-02-10 10:05
TOP= .. 呵呵, 这么多问题。 建议还是看看GNU MAKE手册吧, 在www.gnu.org下可以找到, 中文的好象也有, 不过我没看, 也不知道翻译的好不好 |
|
|
板凳#
发布于:2003-02-14 12:51
en
|
|