host-i686-pc-cygwin/fixincludes/Makefile分析

快乐虾

http://blog.csdn.net/lights_joy/

lights@hb165.com

   

 

本文适用于

gcc- 4.3.1

configure –target=bfin-uclinux-gnu

Blackfin系列DSP

Cygwin gcc 3.4.4

   

 

欢迎转载,但请保留作者信息

 

 

cygwin gcc 3.4.4 环境下构建交叉编译器bfin-uclinux-gcc时,首先执行的是configure –target=bfin-uclinux-gnu命令,然后执行make操作,它将创建host-i686-pc-cygwin/ fixincludes子目录,并调用fixincludes /configure脚本生成Makefile,然后在主控Makefile中调用make生成目标,此时传递进来的目标为all

本文就是分析这个动态生成的host-i686-pc-cygwin/ fixincludes /Makefile

all目标的依赖关系为:

all : oneprocess fixinc.sh mkheaders

 

1.1    oneprocess

这个依赖关系定义为:

oneprocess : full-stamp

full-stamp : $(ALLOBJ) $(LIBIBERTY)

       $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBIBERTY)

       $(STAMP) $@

在这里LIBIBERTY的定义为:

LIBIBERTY=../libiberty/libiberty.a

因为libiberty.a已经先于此目标生成,这个依赖关系可略过。

ALLOBJ变量的值则为:

ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o /

      fixlib.o fixopts.o

在此Makefile中,并没有为这些文件定义显式的规则,只是定义了一个通用的规则:

.c.o:

       $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $<

在这个规则中,需要注意FIXINC_CFLAGS的定义:

INCLUDES = - I. -I$(srcdir) -I../include -I$(srcdir)/../include

FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES)

在生成所需要的.O文件后,oneprocess这段脚本将它们链接成fixincl.exe。然后生成一个full-stamp的内容为空的文件。

FI的定义为:

FI  = fixincl.exe

当然,这个目标在vs2005中是无法生成的。

1.2    fixinc.sh

这个目标定义为:

fixinc.sh : fixinc.in mkfixinc.sh Makefile

       srcdir="$(srcdir)" $(SHELL) $(srcdir)/mkfixinc.sh $(target)

在这里fixinc.inmkfixinc.sh都是gcc- 4.3.1 /fixincludes目录下的文件。

这个目标的脚本将在host-i686-pc-cygwin/fixincludes目录下生成一个fixinc.sh的脚本。

 

1.3    mkheaders

这个目标定义为:

mkheaders: mkheaders.almost $(srcdir)/../gcc/BASE-VER

       sed -e 's/@gcc_version@/$(gcc_version)/' < $< > $@T

       mv -f $@T $@

mkheaders.almost: $(srcdir)/mkheaders.in config.status

       CONFIG_FILES=mkheaders.almost:mkheaders.in /

       CONFIG_HEADERS= ./config.status

这个目标的脚本将在host-i686-pc-cygwin/fixincludes目录下生成一个mkheaders的脚本。

 

 

 

参考资料

host-i686-pc-cygwin/libiberty/Makefile解析( 2008-8-19 )

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值