第十六章.一个简单的Makefile

这里有一个简单的Makefile.你可以在他的基础上创建你自己的Makefile.确定你删除掉所有的无关内容(括号中的那些)!

推荐你按照下面的格式创建Makefile(包括变量的顺序,段与段之间的空行等),这样的格式可以使内容更加的清晰.我们推荐你使用portlint 开检查你的Makefile.


    [header...使我们更容易的分辨你的port]
    # New ports collection makefile for:   xdvi
    ["version required"一行只在您的PORTVERSION变量没有足够明确的描述这个port]
    # Date created:                26 May 1995
    [一般Whom一行是第一个做出port的porter,也就是第一个创建Makefile的.并且请记住在以后的port升级
     时,不能修改这一行的名字.]
    # Whom:                        Satoshi Asami <asami@FreeBSD.org>
    #
    # $FreeBSD$
    [ ^^^^^^^^^ 这一行会被CVS自动的以RCS ID字符串替代.如果你是升级一个已有的port,请不要修改原有
      Makefile的这一行,CVS会自动的处理]
    #
    
    [这一段主要是对这个port的描述,PORTNAME和PORTVERSION总是在最前的.接着是CATEGORIES,
     MASTER_SITES,然后是MASTER_SITE_SUBDIR PKGNAMEPREFIX 和 PKGNAMESUFFIX,如果有需要,可以加上
     DISTNAME, EXTRACT_SUFX  DISTFILES 还有EXTRACT_ONLY]
    PORTNAME=      xdvi [port名]
    PORTVERSION=   18.2 [版本号]
    CATEGORIES=    print [在FreeBSD安装盘目录类别]
    [如果你没有使用MASTER_SITE_*宏定义,不要忘记"/"]
    MASTER_SITES=  ${MASTER_SITE_XCONTRIB}
    MASTER_SITE_SUBDIR= applications
    PKGNAMEPREFIX= ja-
    DISTNAME=      xdvi-pl18
    [如果源代码不是tar.gz的包,设置这一行]
    EXTRACT_SUFX=  .tar.Z
    
    [定义这个port的patch,如果没有patch,可以为空]
    PATCH_SITES=   ftp://ftp.sra.co.jp/pub/X11/japanese/
    PATCHFILES=    xdvi-18.patch1.gz xdvi-18.patch2.gz
    
    [为了bug的报告和一些问题的解答,porter可以留下自己的mail地址,如果你不想公开你的mail
     请设置为ports@FreeBSD.org]
    MAINTAINER=    asami@FreeBSD.org
    
    [依赖关系,可以为空]
    RUN_DEPENDS=   gs:${PORTSDIR}/print/ghostscript
    LIB_DEPENDS=   Xpm.5:${PORTSDIR}/graphics/xpm
    
    [这一段与上面的内容关系不大,主要是一些bsd.port.mk的变量]

    [如果在configure, build, install等过程中需要和使用者交互,要求回答问题]
    IS_INTERACTIVE=        yes
    [不解压到${DISTNAME}而是解压到另外的目录]
    WRKSRC=                ${WRKDIR}/xdvi-new
    [If the distributed patches were not made relative to ${WRKSRC}, you
     may need to tweak this]
    PATCH_DIST_STRIP=      -p1
    [如果需要有GNU autoconf生成一个"configure"脚本]
    GNU_CONFIGURE= yes
    [如果需要GNU make编译,而不是/usr/bin/make]
    USE_GMAKE=     yes
    [如果是X应用程序,并且需要xmkmf -a来运行]
    USE_IMAKE=     yes

    
    [以下是一些特殊的规则,顺序调用]
    pre-fetch:
            要到web取回...
    
    post-patch:
            patch后要作...
    
    pre-install:
            安装前,要...
    
    [最后一定要]
    .include <bsd.port.mk>
关于FreeBSD ports系统, e-mail <ports@FreeBSD.org>.
关于本文档, e-mail <doc@FreeBSD.org>.