We no longer have any of the "Ports collection Makefile for...." lines, so they do not need to be explained. Differential: https://reviews.freebsd.org/D23589 Submitted by: salvadore (based on) Reviewed by: mat
124 lines
3.8 KiB
Text
124 lines
3.8 KiB
Text
---
|
|
title: Chapter 14. A Sample Makefile
|
|
prev: books/porters-handbook/porting-dads
|
|
next: books/porters-handbook/order
|
|
---
|
|
|
|
[[porting-samplem]]
|
|
= A Sample [.filename]#Makefile#
|
|
:doctype: book
|
|
:toc: macro
|
|
:toclevels: 1
|
|
:icons: font
|
|
:sectnums:
|
|
:sectnumlevels: 6
|
|
:source-highlighter: rouge
|
|
:experimental:
|
|
:skip-front-matter:
|
|
:xrefstyle: basic
|
|
:relfileprefix: ../
|
|
:outfilesuffix:
|
|
:sectnumoffset: 14
|
|
|
|
include::shared/mirrors.adoc[]
|
|
include::shared/authors.adoc[]
|
|
include::shared/releases.adoc[]
|
|
include::shared/en/mailing-lists.adoc[]
|
|
include::shared/en/teams.adoc[]
|
|
include::shared/en/urls.adoc[]
|
|
|
|
toc::[]
|
|
|
|
Here is a sample [.filename]#Makefile# that can be used to create a new port. Make sure to remove all the extra comments (ones between brackets).
|
|
|
|
The format shown is the recommended one for ordering variables, empty lines between sections, and so on. This format is designed so that the most important information is easy to locate. We recommend using <<porting-portlint,portlint>> to check the [.filename]#Makefile#.
|
|
|
|
[.programlisting]
|
|
....
|
|
# $FreeBSD$
|
|
[ ^^^^^^^^^ This will be automatically replaced with RCS ID string by SVN
|
|
when it is committed to our repository. If upgrading a port, do not alter
|
|
this line back to "$FreeBSD$". SVN deals with it automatically.]
|
|
|
|
[section to describe the port itself and the master site - PORTNAME
|
|
and PORTVERSION or the DISTVERSION* variables are always first,
|
|
followed by CATEGORIES, and then MASTER_SITES, which can be followed
|
|
by MASTER_SITE_SUBDIR. PKGNAMEPREFIX and PKGNAMESUFFIX, if needed,
|
|
will be after that. Then comes DISTNAME, EXTRACT_SUFX and/or
|
|
DISTFILES, and then EXTRACT_ONLY, as necessary.]
|
|
PORTNAME= xdvi
|
|
DISTVERSION= 18.2
|
|
CATEGORIES= print
|
|
[do not forget the trailing slash ("/")!
|
|
if not using MASTER_SITE_* macros]
|
|
MASTER_SITES= ${MASTER_SITE_XCONTRIB}
|
|
MASTER_SITE_SUBDIR= applications
|
|
PKGNAMEPREFIX= ja-
|
|
DISTNAME= xdvi-pl18
|
|
[set this if the source is not in the standard ".tar.gz" form]
|
|
EXTRACT_SUFX= .tar.Z
|
|
|
|
[section for distributed patches -- can be empty]
|
|
PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/
|
|
PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz
|
|
[If the distributed patches were not made relative to ${WRKSRC},
|
|
this may need to be tweaked]
|
|
PATCH_DIST_STRIP= -p1
|
|
|
|
[maintainer; *mandatory*! This is the person who is volunteering to
|
|
handle port updates, build breakages, and to whom a users can direct
|
|
questions and bug reports. To keep the quality of the Ports Collection
|
|
as high as possible, we do not accept new ports that are assigned to
|
|
"ports@FreeBSD.org".]
|
|
MAINTAINER= asami@FreeBSD.org
|
|
COMMENT= DVI Previewer for the X Window System
|
|
|
|
[license -- should not be empty]
|
|
LICENSE= BSD2CLAUSE
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
[dependencies -- can be empty]
|
|
RUN_DEPENDS= gs:print/ghostscript
|
|
|
|
[If it requires GNU make, not /usr/bin/make, to build...]
|
|
USES= gmake
|
|
[If it is an X application and requires "xmkmf -a" to be run...]
|
|
USES= imake
|
|
|
|
[this section is for other standard bsd.port.mk variables that do not]
|
|
belong to any of the above]
|
|
[If it asks questions during configure, build, install...]
|
|
IS_INTERACTIVE= yes
|
|
[If it extracts to a directory other than ${DISTNAME}...]
|
|
WRKSRC= ${WRKDIR}/xdvi-new
|
|
[If it requires a "configure" script generated by GNU autoconf to be run]
|
|
GNU_CONFIGURE= yes
|
|
[et cetera.]
|
|
|
|
[If it requires options, this section is for options]
|
|
OPTIONS_DEFINE= DOCS EXAMPLES FOO
|
|
OPTIONS_DEFAULT= FOO
|
|
[If options will change the files in plist]
|
|
OPTIONS_SUB=yes
|
|
|
|
FOO_DESC= Enable foo support
|
|
|
|
FOO_CONFIGURE_ENABLE= foo
|
|
|
|
[non-standard variables to be used in the rules below]
|
|
MY_FAVORITE_RESPONSE= "yeah, right"
|
|
|
|
[then the special rules, in the order they are called]
|
|
pre-fetch:
|
|
i go fetch something, yeah
|
|
|
|
post-patch:
|
|
i need to do something after patch, great
|
|
|
|
pre-install:
|
|
and then some more stuff before installing, wow
|
|
|
|
[and then the epilogue]
|
|
|
|
.include <bsd.port.mk>
|
|
....
|