hansource
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2003-10-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1357回复:2

一个makefile的问题

楼主#
更多 发布于:2003-02-10 02:38
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 += 中 +=是何意思?
在下先谢过大家了


hometown
驱动大牛
驱动大牛
  • 注册日期2002-10-24
  • 最后登录2004-05-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-10 10:05
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 += 中 +=是何意思?
在下先谢过大家了


 


呵呵, 这么多问题。 建议还是看看GNU MAKE手册吧, 在www.gnu.org下可以找到, 中文的好象也有, 不过我没看, 也不知道翻译的好不好
How fair and how pleasant art thou, O love, for delights!This thy stature is like to a palm tree, and thy breasts to clusters of grapes.I said, I will go up to the palm tree, I will take hold of the boughs thereof: now also thy breasts shall be as clusters of the vine, and the smell of thy nose like apples;And the roof of thy mouth like the best wine for my beloved, that goeth down sweetly, causing the lips of those that are asleep to speak.
callmefire
驱动牛犊
驱动牛犊
  • 注册日期2002-12-05
  • 最后登录2003-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-14 12:51
en
游客

返回顶部