快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
Cygwin-1.16
Vs2008
欢迎转载,但请保留作者信息
这个Makefile由上一级目录的makefile调用make all执行。All目标定义为:
all: all-am
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA)
LIBRARIES = $(noinst_LIBRARIES)
noinst_LIBRARIES = lib.a
LTLIBRARIES = $(noinst_LTLIBRARIES)
noinst_LTLIBRARIES未定义
DATA = $(noinst_DATA)
noinst_DATA =
因而此目标将依赖于lib.a目标,其定义为:
lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
-rm -f lib.a
$(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
$(RANLIB) lib.a
在生成所需要的目标文件后,上述脚本将它们打包成lib.a文件。
由于有以下定义:
lib_a_OBJECTS = $(am_lib_a_OBJECTS)
am__objects_1 = lib_a-bsearch.$(OBJEXT) lib_a-qsort.$(OBJEXT)
am__objects_2 = lib_a-hash.$(OBJEXT) /
lib_a-hash_bigkey.$(OBJEXT) /
lib_a-hash_buf.$(OBJEXT) /
lib_a-hash_func.$(OBJEXT) /
lib_a-hash_log2.$(OBJEXT) /
lib_a-hash_page.$(OBJEXT) /
lib_a-hcreate.$(OBJEXT) /
lib_a-hcreate_r.$(OBJEXT) /
lib_a-tdelete.$(OBJEXT) /
lib_a-tdestroy.$(OBJEXT) /
lib_a-tfind.$(OBJEXT) /
lib_a-tsearch.$(OBJEXT) /
lib_a-twalk.$(OBJEXT)
am_lib_a_OBJECTS = $(am__objects_1) /
$(am__objects_2)
因而此目标有以下的依赖关系。
1.1.1.1 lib_a-bsearch.$(OBJEXT)
这个目标定义为:
lib_a-bsearch.o: bsearch.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-bsearch.o `test -f 'bsearch.c' || echo '$(srcdir)/'`bsearch.c
直接编译即可。
Vc提供了bsearch函数,略过此文件。
1.1.1.2 lib_a-qsort.$(OBJEXT)
这个目标定义为:
lib_a-qsort.o: qsort.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-qsort.o `test -f 'qsort.c' || echo '$(srcdir)/'`qsort.c
直接编译即可。
Vc提供了qsort函数,略过此文件。
1.1.1.3 lib_a-hash.$(OBJEXT)
这个目标定义为:
lib_a-hash.o: hash.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hash.o `test -f 'hash.c' || echo '$(srcdir)/'`hash.c
直接编译即可。
1.1.1.4 lib_a-hash_bigkey.$(OBJEXT)
这个目标定义为:
lib_a-hash_bigkey.o: hash_bigkey.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hash_bigkey.o `test -f 'hash_bigkey.c' || echo '$(srcdir)/'`hash_bigkey.c
直接编译即可。
1.1.1.5 lib_a-hash_buf.$(OBJEXT)
这个目标定义为:
lib_a-hash_buf.o: hash_buf.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hash_buf.o `test -f 'hash_buf.c' || echo '$(srcdir)/'`hash_buf.c
直接编译即可。
1.1.1.6 lib_a-hash_func.$(OBJEXT)
这个目标定义为:
lib_a-hash_func.o: hash_func.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hash_func.o `test -f 'hash_func.c' || echo '$(srcdir)/'`hash_func.c
直接编译即可。
1.1.1.7 lib_a-hash_log2.$(OBJEXT)
这个目标定义为:
lib_a-hash_log2.o: hash_log2.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hash_log2.o `test -f 'hash_log2.c' || echo '$(srcdir)/'`hash_log2.c
直接编译即可。
1.1.1.8 lib_a-hash_page.$(OBJEXT)
这个目标定义为:
lib_a-hash_page.o: hash_page.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hash_page.o `test -f 'hash_page.c' || echo '$(srcdir)/'`hash_page.c
直接编译即可。
1.1.1.9 lib_a-hcreate.$(OBJEXT)
这个目标定义为:
lib_a-hcreate.o: hcreate.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hcreate.o `test -f 'hcreate.c' || echo '$(srcdir)/'`hcreate.c
直接编译即可。
1.1.1.10 lib_a-hcreate_r.$(OBJEXT)
这个目标定义为:
lib_a-hcreate_r.o: hcreate_r.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-hcreate_r.o `test -f 'hcreate_r.c' || echo '$(srcdir)/'`hcreate_r.c
直接编译即可。
1.1.1.11 lib_a-tdelete.$(OBJEXT)
这个目标定义为:
lib_a-tdelete.o: tdelete.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tdelete.o `test -f 'tdelete.c' || echo '$(srcdir)/'`tdelete.c
直接编译即可。
1.1.1.12 lib_a-tdestroy.$(OBJEXT)
这个目标定义为:
lib_a-tdestroy.o: tdestroy.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tdestroy.o `test -f 'tdestroy.c' || echo '$(srcdir)/'`tdestroy.c
直接编译即可。
1.1.1.13 lib_a-tfind.$(OBJEXT)
这个目标定义为:
lib_a-tfind.o: tfind.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tfind.o `test -f 'tfind.c' || echo '$(srcdir)/'`tfind.c
直接编译即可。
1.1.1.14 lib_a-tsearch.$(OBJEXT)
这个目标定义为:
lib_a-tsearch.o: tsearch.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-tsearch.o `test -f 'tsearch.c' || echo '$(srcdir)/'`tsearch.c
直接编译即可。
1.1.1.15 lib_a-twalk.$(OBJEXT)
这个目标定义为:
lib_a-twalk.o: twalk.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-twalk.o `test -f 'twalk.c' || echo '$(srcdir)/'`twalk.c
直接编译即可。
参考资料
在vs2008下使用cygwin(1):前言( 2008-10-16 )
在vs2008下使用cygwin(2):i686-pc-cygwin/newlib/Makefile分析( 2008-10-16 )
在vs2008下使用cygwin(3):i686-pc-cygwin/newlib/libc/Makefile分析( 2008-10-16 )
在vs2008下使用cygwin(4):i686-pc-cygwin/newlib/libc/argz/Makefile分析( 2008-10-16 )
在vs2008下使用cygwin(5):i686-pc-cygwin/newlib/libc/stdlib/Makefile分析( 2008-10-16 )
在vs2008下使用cygwin(6):i686-pc-cygwin/newlib/libc/ctype/Makefile分析( 2008-10-16 )