OpenOffice中makefile文件描述

来源:互联网 发布:数据库漏洞防范 编辑:程序博客网 时间:2024/06/02 02:11

dmake工具使用makefile.mk(dmake是openoffice编译工具)。

下面的部分描述一般的makefile.mk的文件结构:

  • makefile.mk 文件的一般结构
  • 生成的对象文件和库
  • 生成的资源文件
  • 生成的应用
  • 生成的共享库和动态链接库
  • makefile文件的内部结构
    • settings.mk 文件
    • target.mk 文件
  • 设置附加选项
  • 额外目标的创建
    • Add Targets to all
    • Adding Targets to a Makefile That Include Targets
    • Declaring Dependencies Before Adding Targets

makefile.mk 文件的一般结构

makefile文件一般的结构如下:

PRJ=..PRJNAME=SWTARGET=core.include:settings.mk# use the predefined macros.include:target.mk      

下面的表格描述在上面中用到的宏:


宏函数描述PRJ此宏描述了现在模块的根目录的相对位置PRJNAME此宏指定模块的名称,此名称必须是唯一的。TARGET该宏指定一个标识符为当前目录在模块内该名称必须是唯一的或者在输出文件或者solver树种文件名可能会发生冲突

生成对象文件和库

下表描述了用于生成对象文件和库文件这些宏中的x表示在1到9之间的数字指定支持多达9不同的库


宏函数描述OBJFILES=$(OBJ)$/file1.obj $(OBJ)$/file.obj 
SLOFILES=$(SLO)$/file1.obj $(SLO)$/file.obj
你必须设置这个宏来从以下源文件生成相应的目标文件:
  • file.cxx
  • file1.cxx

这个宏确保build过程创建编译器需要的对象文件,这些对象文件在输出树的obj或者slo目录下。在linux,Solaris和Mac OS X下,obj目录下创建假的.obj文件和.ofiles文件。

You can use these targets can be used to compile C and C++ sources found in different locations. See the rules.mk file for details.

 可以使用这些目标文件用来编译不同的位置C和C++代码文件的详细信息请参阅rules.mk

build过程通常从目标文件的输出树的lib子目录下创建一个库。库的名称是变量$TARGET的值。在linux,Solaris和Mac OS X下,obj目录下仅创建假的.obj文件。

LIBTARGET=NO当不想编译一个库的时候可以设置此宏。LIBxTARGET=$(LB)$/name.lib

可以使用这种格式的多个库宏编译库,这些库包含所有对象目录中的文件或合并不同的库

LIBxARCHIV=$(LB)$/libname.a

设置支持的静态链接库,linux,Solaris和 Mac OS X支持此宏。

LIBxOBJFILES指定绑定链接库的目标文件。LIBxFILES指定链接到链接库的更多文件(further files)

生成的资源文件

下面的表格描述了用于产生资源文件的宏,德文语言资源文件默认编译。为支持其他的地区,环境变量UPDATER必须设置为YES,同时相应的地区环境变量RES_language也必须设置。

宏名称中的x代表1--9数字,这说明支持最多9个不同的资源文件。


宏功能描述SRCFILES=file1.src file2.src

必须设置这个宏产生资源文件。需要从这些文件中创建一个资源文件,会在输出树的srs子目录中创建$(TARGET).srs文件,例如:

SRCTARGET = $(SRS)$/$(TARGET).srs

SRSxNAMES SRSxFILES可以使用这些宏支持编译不同的srs文件。RESLIBxNAME RESLIBxSRSFILES可以使用这些宏编译资dll文件。

生成的应用

下表显示的用于产生应用的宏。


宏功能描述APPxTARGET

表示应用的文件名。应用总是build到输出树的bin目录下。

APPxOBJS表示链接到应用程序的对象文件。不要用这个宏编译对象,因为它是不承认的依赖。APPxSTDLIBS

表示链接到应用的输入库。这些都是标准库,例如.a和.so文件。

APPxLIBS

表示从相同的模块链接到应用的库。对UNIX,这些为对象文件的简单的文本列表,而不是正常的二进制库。

APPxDEF表示一个定义文件,如果在链接时,你使用一个,仅win32中使用。APPxDEPN表示依赖。APPxRES表示系统资源,仅在win32中。APPxICON表示应用图标,仅在win32中。

生成的共享库和动态链接库

下面表格描述用于产生恭喜库或者动态链接库(DLLS)的宏。


宏功能描述SHLxTARGET

表示共享库的文件名。

在win32中,共享库总是编译为 $(shlxtarget).dll,创建到输出树bin目录下。

在UNIX。共享库编译为lib$(shlxtarget).so,放到lib目录下。

UPD and DLLPOSTFIX

提供平台和发布独立的应用: 

在windows NT上,bla$(UPD)$(DLLPOSTFIX) 在发布599的时候会生成 bla599mi.dll

SHLxOBJS

指定创建库的对象文件。

SHLxSTDLIBS

导入库链接

SHLxLIBS

指定的库从相同模块到放到共享库

SHLxDEF

指定的导出符合文件,仅仅支持win32系统。

SHLxDEPN

指示依赖

SHLxRES

使用此宏的系统依赖资源

SHLxIMPLIB

指定创建的导入文件,仅仅支持win32平台。

DEFxNAME

指定定义文件的名称,通常是一个类似的共享库的名称。

DEFxDEPN

指示定义文件依赖。

DEFLIBxNAME

指定库名称解析的符合,仅仅支持win32平台。

DEFxDES

定义文件的说明

DEFxEXPORTyy

符号名称。y在宏中的范围为1-99。

DEFxEXPORTFILE

文件导出的符合。


下略,有空继续翻译。

原文地址:http://www.openoffice.org/tools/build_env_mkfiles.html

原创粉丝点击