OpenOffice中makefile文件描述

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=SW

TARGET=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

windows下安装perl模块方法和必备软件nmake dmake devcpp: 方式一: 将 nmake.exe 放到system32目录下 用一下方式: perl Makefile.pl nmake nmake test nmake install 如果成功,将不用看下面内容。 方式二: 手动编译方式 优点:通吃所有模块 缺点:有点麻烦 具体步骤:1安装编译器2设置编译器的环境变量3可能安装dmake 具体方法:如下 1.首先要有个c编译器,推荐dev-cpp(开源免费的,网上自己搜索),记得要下含有mingw的就是了(不懂c,下载含有mingw的因为这个版本的bin目录里有gcc.exe等工具). 1.1安装好了编译器之后,要能在cmd以命令方式运行的话,必须要设置环境变量,在winxp[我的电脑]->[属性]->[高级]->[环境变量]里设置,只需要在path里加个你路径,比如你的安装路径是c:\dev-cpp,那你就要加上c:\dev-cpp\bin (path有很多其他的路径,之间记得用;隔开 )弄完好,在cmd运行gcc -v 显示出内容表示编译器安装成功,并且可以用命令行编译. 2.编译步骤,在cpan上下载需要的模块,比如Win32::SerialPort,下载好了解压,在cmd进入这个目录(简单的dos命令应该知道吧),就用常见的方法: perl Makefile.pl make make test make install 如果成功,将不用看下面内容。 方式三: 使用方式二make很可能会出现错误,不能编译,找了很多原因,有高人介绍了解决办法,就是下载一个叫dmake的工具,解压缩,将里面的dmake.exe和startup的文件夹(好象是这个名字)一起复制到c:\dev-cpp\bin 里(因为这个目录注册到环境变量里的),之后安装改成: perl Makefile.pl dmake dmake test dmake install 注意: 如果安装过oracle10g你将会发现出现版本冲突的情况。 解决方案如下:修改%PERL5LIB%环境变量,修改为perl所在目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值