host-i686-pc-cygwin/zlib/Makefile分析
来源:互联网 发布:汽车行业大数据专家 编辑:程序博客网 时间:2024/05/19 08:01
快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
gcc-
configure –target=bfin-uclinux-gnu
Blackfin系列DSP
Cygwin gcc
欢迎转载,但请保留作者信息
在cygwin gcc
本文就是分析这个动态生成的host-i686-pc-cygwin/ zlib /Makefile。
all目标的依赖关系为:
all: all-am
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) all-multi
在这里直接略过Makefile这个依赖关系。
$(LIBRARIES)这个目标将生成一个libz.a的静态库。
$(LTLIBRARIES)则没有定义,直接略过。
1.1 $(LIBRARIES)
LIBRARIES的定义为:
LIBRARIES = $(toolexeclib_LIBRARIES)
toolexeclib_LIBRARIES = libz.a
因而这个目标就变成了libz.a。
libz.a: $(libz_a_OBJECTS) $(libz_a_DEPENDENCIES)
-rm -f libz.a
$(libz_a_AR) libz.a $(libz_a_OBJECTS) $(libz_a_LIBADD)
$(RANLIB) libz.a
其中libz_a_DEPENDENCIES变量没有定义,直接略过。
上述这段脚本将这些生成的.o文件链接生成一个libz.a的文件。
1.1.1 $(libz_a_OBJECTS)
这个变量的定义为:
am__objects_1 = libz_a-adler32.$(OBJEXT) libz_a-compress.$(OBJEXT) /
libz_a-crc32.$(OBJEXT) libz_a-deflate.$(OBJEXT) /
libz_a-gzio.$(OBJEXT) libz_a-infback.$(OBJEXT) /
libz_a-inffast.$(OBJEXT) libz_a-inflate.$(OBJEXT) /
libz_a-inftrees.$(OBJEXT) libz_a-trees.$(OBJEXT) /
libz_a-uncompr.$(OBJEXT) libz_a-zutil.$(OBJEXT)
am_libz_a_OBJECTS = $(am__objects_1)
libz_a_OBJECTS = $(am_libz_a_OBJECTS)
因而libz.a目标将依赖于以下几个.o文件的生成。
1.1.1.1 libz_a-adler32.o
这个目标定义为:
libz_a-adler32.o: adler32.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-adler32.o `test -f 'adler32.c' || echo '$(srcdir)/'`adler32.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.2 libz_a-compress.o
这个目标定义为:
libz_a-compress.o: compress.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-compress.o `test -f 'compress.c' || echo '$(srcdir)/'`compress.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.3 libz_a-crc32.o
这个目标定义为:
libz_a-crc32.o: crc32.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-crc32.o `test -f 'crc32.c' || echo '$(srcdir)/'`crc32.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.4 libz_a-deflate.o
这个目标定义为:
libz_a-deflate.o: deflate.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-deflate.o `test -f 'deflate.c' || echo '$(srcdir)/'`deflate.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.5 libz_a-gzio.o
这个目标定义为:
libz_a-gzio.o: gzio.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-gzio.o `test -f 'gzio.c' || echo '$(srcdir)/'`gzio.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.6 libz_a-infback.o
这个目标定义为:
libz_a-infback.o: infback.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-infback.o `test -f 'infback.c' || echo '$(srcdir)/'`infback.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.7 libz_a-inffast.o
这个目标定义为:
libz_a-inffast.o: inffast.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-inffast.o `test -f 'inffast.c' || echo '$(srcdir)/'`inffast.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.8 libz_a-inflate.o
这个目标定义为:
libz_a-inflate.o: inflate.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-inflate.o `test -f 'inflate.c' || echo '$(srcdir)/'`inflate.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.9 libz_a-inftrees.o
这个目标定义为:
libz_a-inftrees.o: inftrees.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-inftrees.o `test -f 'inftrees.c' || echo '$(srcdir)/'`inftrees.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.10 libz_a-trees.o
这个目标定义为:
libz_a-trees.o: trees.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-trees.o `test -f 'trees.c' || echo '$(srcdir)/'`trees.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.11 libz_a-uncompr.o
这个目标定义为:
libz_a-uncompr.o: uncompr.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-uncompr.o `test -f 'uncompr.c' || echo '$(srcdir)/'`uncompr.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.1.1.12 libz_a-zutil.o
这个目标定义为:
libz_a-zutil.o: zutil.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libz_a_CFLAGS) $(CFLAGS) -c -o libz_a-zutil.o `test -f 'zutil.c' || echo '$(srcdir)/'`zutil.c
没什么特殊的东西,就是生成一个.o文件而已。
这里的几个变量定义为:
DEFS = -DPACKAGE_NAME=/"/" -DPACKAGE_TARNAME=/"/" -DPACKAGE_VERSION=/"/" -DPACKAGE_STRING=/"/" -DPACKAGE_BUGREPORT=/"/" -DPACKAGE=/"zlib/" -DVERSION=/"
DEFAULT_INCLUDES = -
1.2 all-multi
这个目标定义为:
# GNU Make needs to see an explicit $(MAKE) variable in the command it
# runs to enable its job server during parallel builds. Hence the
# comments below.
all-multi:
$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
从注释中可以清楚地知道它的作用,直接略过。
参考资料
host-i686-pc-cygwin/libiberty/Makefile解析(
host-i686-pc-cygwin/fixincludes/Makefile分析(
- host-i686-pc-cygwin/zlib/Makefile分析
- host-i686-pc-cygwin/fixincludes/Makefile分析
- host-i686-pc-cygwin/libcpp/Makefile分析
- host-i686-pc-cygwin/libdecnumber/Makefile分析
- host-i686-pc-cygwin/gcc/Makefile分析
- host-i686-pc-cygwin/libiberty/Makefile解析
- 在vs2008下使用cygwin(2):i686-pc-cygwin/newlib/Makefile分析
- 在vs2008下使用cygwin(3):i686-pc-cygwin/newlib/libc/Makefile分析
- 在vs2008下使用cygwin(4):i686-pc-cygwin/newlib/libc/argz/Makefile分析
- 在vs2008下使用cygwin(5):i686-pc-cygwin/newlib/libc/stdlib/Makefile分析
- 在vs2008下使用cygwin(6):i686-pc-cygwin/newlib/libc/ctype/Makefile分析
- 在vs2008下使用cygwin(7):i686-pc-cygwin/newlib/libc/search/Makefile分析
- 在vs2008下使用cygwin(8):i686-pc-cygwin/newlib/libc/stdio/Makefile分析
- 在vs2008下使用cygwin(9):i686-pc-cygwin/newlib/libc/stdio64/Makefile分析
- 在vs2008下使用cygwin(10):i686-pc-cygwin/newlib/libc/string/Makefile分析
- 在vs2008下使用cygwin(11):i686-pc-cygwin/newlib/libc/signal/Makefile分析
- 在vs2008下使用cygwin(12):i686-pc-cygwin/newlib/libc/time/Makefile分析
- 在vs2008下使用cygwin(13):i686-pc-cygwin/newlib/libc/locale/Makefile分析
- 存储过程计算报表
- C#轻松打造vista透明窗口(xp系统无任何vista主题)(汤贞营作品)
- 常用的JPA标记 hibernate annotation 参考
- Beauty every where
- 修改注册表添加信任站点及启用Activex控件(转载)
- host-i686-pc-cygwin/zlib/Makefile分析
- OO实现ALV TABLE 三:ALV的功能设计
- 我的flex学习经验
- CSDN、CNBLOGS使用Windows Live Writer客户端发布日志时相关配置
- Socket编程中select()的妙用
- 算法问题------思路和知识---如何获得波音747的重量
- 君子务本
- 大大方方补肾,平平常常做人 - 肾虚的症状和治疗
- 编程练习——二叉查找树(BinarySearchTree)