关于makefile,多谢!
看了一些关于makefile的资料,大部分告诉的都是写一些比较规整的东西,现在手头上有一个Apache.mk文件,确实看不懂,哪位大哥大姐帮忙看一下,多谢。这个东西的文件结构是,Apache文件夹中有xerces-c-src_2_6_0.tar、 xerces-c-src2_2_0.tar两个压缩文档,文件夹Xerces-C++,里面应该是头文件及库文件, 还有三个文件Apache.mk、Apache.mo、Apache.ms。源文件为:1 include $(VROOT)/sde/sdecommon.mk
2
3 VERSION = 2.0
4 VENDOR = The Apache Software Foundatation http://www.apache.org
5
6 INST_LOC := $(VROOT)/obj/$(SEL_TARGET)/sde/Apache/Xerces-C++/2.2/lib
7 INST_LOC2 := $(VROOT)/obj/$(SEL_TARGET)/sde/opt/LSS/lib
8 LXINST_LOC := $(VROOT)/obj/$(SEL_TARGET)/sde/Apache
9 LX_XERCES_SRC_2_6_0 := $(VROOT)/sde/Apache/xerces-c-src_2_6_0.tar.gz
10 LX_XERCES_REL_PATH := Xerces-C++/2.6
11
12 FILE_LST := \
13 libxerces-c.so \
14 libxerces-c.so.22.0 \
15 libxerces-c.so.22 \
16 $(ENDLIST)
17
18 LXFILE_LST := \
19 libxerces-c.so \
20 libxerces-c.so.26.0 \
21 libxerces-c.so.26 \
22 $(ENDLIST)
23
24 for file $(FILE_LST)
25 $(INST_LOC)/$(file) :FILEINSTALL: $(VROOT)/sde/Apache/Xerces-C++/2.2/lib/libxerces-c.so.22.0
26 SEL=solaris8_sparc
27
28 $(INST_LOC2)/$(file) :FILEINSTALL: $(VROOT)/sde/Apache/Xerces-C++/2.2/lib/libxerces-c.so.22.0
29 SEL=solaris8_sparc
30
31 end
32
33 LXinstall2.6.0 :LOC_DEF: install_Apache
34 SEL=linux_ppc
35 SEL=linux_i386
36
37 if "$(SELECTORS)" == "linux_ppc"
38 LXinstall2.6.0: $(LX_XERCES_SRC_2_6_0) (MVcc) (MVCC) .VIRTUAL
39 rm -rf $(LX_XERCES_REL_PATH)
40 $(MKPATH)$(LX_XERCES_REL_PATH)
41 cp $(*:N=*$(LX_XERCES_SRC_2_6_0:B:S):P=A) $(LX_XERCES_REL_PATH)/.
42 rm -f $(LX_XERCES_REL_PATH)/xerces-c-src_2_6_0.tar
43 $(GUNZIP) $(LX_XERCES_REL_PATH)/xerces-c-src_2_6_0.tar.gz
44 cd $(LX_XERCES_REL_PATH)
45 tar xvf xerces-c-src_2_6_0.tar
46 cd ../..
47 export XERCESCROOT=$(ROOT)/obj/$(SEL_TARGET)/sde/Apache/linux_ppc/Xerces-C++/2.6/xerces-c-src_2_6_0
48 cd $(ROOT)/obj/$(SEL_TARGET)/sde/Apache/linux_ppc/Xerces-C++/2.6/xerces-c-src_2_6_0/src/xercesc
49 mv runConfigure runConfigure.ofc
50 sed -e 's?g++?$(MVCC)?' runConfigure.ofc > runConfigure
51 chmod 755 runConfigure
52 mv Makefile.incl Makefile.incl.ofc
53 sed -e 's?-L/usr/lib??' Makefile.incl.ofc > Makefile.incl
54 autoconf
55 runConfigure -plinux -c$(MVcc) -x$(MVCC) -minmem -nsocket -tnative -rpthread -C--build=`config.guess` -C--host=i68 6-unknown-linux-gnu -C--target=powerpc-unknown-linux-gnu
56 $(LXGMAKE)
57 else
58 LXinstall2.6.0: $(LX_XERCES_SRC_2_6_0) .VIRTUAL
59 $(MKPATH)$(LX_XERCES_REL_PATH); \
60 cp $(*:N=*$(LX_XERCES_SRC_2_6_0:B:S):P=A) $(LX_XERCES_REL_PATH)/. ; \
61 rm -f $(LX_XERCES_REL_PATH)/xerces-c-src_2_6_0.tar; \
62 $(GUNZIP) $(LX_XERCES_REL_PATH)/xerces-c-src_2_6_0.tar.gz ; \
63 cd $(LX_XERCES_REL_PATH); \
64 tar xvf xerces-c-src_2_6_0.tar; \
65 cd ../..; \
66 export XERCESCROOT=$(ROOT)/obj/$(SEL_TARGET)/sde/Apache/$(SEL_TARGET)/Xerces-C++/2.6/xerces-c-src_2_6_0; \
67 cd $(ROOT)/obj/$(SEL_TARGET)/sde/Apache/$(SEL_TARGET)/Xerces-C++/2.6/xerces-c-src_2_6_0/src/xercesc; \
68 autoconf; \
69 runConfigure -plinux -c$(RHcc) -x$(RHCC) -minmem -nsocket -tnative -rpthread
70 $(LXGMAKE)
71 end
72
73 /* Need to make a dependency to have the tarfile untared before
74* a copy of the products is performed. Therefore, linux_ppc_hosted
75* is used as the copy selector to force the untar to be complete first
76*/
77 linux_ppc_hosted : linux_ppc
78 for file $(LXFILE_LST)
79 $(INST_LOC2)/$(file) :FILEINSTALL: $(VROOT)/obj/$(SEL_TARGET)/sde/Apache/linux_ppc/Xerces-C++/2.6/xerces-c-src_2_6 _0/lib/$(file)
80 SEL=linux_ppc_hosted
81 end
82
83 linux_i386_copy : linux_i386
84 for file $(LXFILE_LST)
85 $(INST_LOC2)/$(file) :FILEINSTALL: $(VROOT)/obj/$(SEL_TARGET)/sde/Apache/$(SEL_TARGET)/Xerces-C++/2.6/xerces-c-src _2_6_0/lib/$(file)
86 SEL=linux_i386_copy
87 end
哪位可以告诉我它大体说了个什么事,多谢。
另外还有,*.mk文件到底是个什么东西,就是makefile吗?然后剩下的那两个ms及mo文件是干什么的? 首先纠正你一个概念。
Unix文件系统不区分文本文件与二进制文件,而且大部分程序不以后缀名区分文件类型。
include子句,就是把其他文件插入到include语句所在的位置。
其它的你慢慢读吧。有什么不会的请继续提问。
页:
[1]