Path: blob/main/documentation/content/ja/books/porters-handbook/makefile/_index.adoc
18099 views
---
title: 第5ç« Makefile ã®äœæ
prev: books/porters-handbook/slow
next: books/porters-handbook/special
showBookMenu: true
weight: 5
params:
path: "/books/porters-handbook/makefile/"
---
[[makefile]]
= [.filename]#Makefile# ã®äœæ
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 5
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/porters-handbook/
ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]
ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
[.filename]#Makefile# ã®äœæã¯éåžžã«åçŽã§ãã ç¹°ãè¿ããŸãããå§ãããŸãã«æ¢åã®äŸãèŠãŠããããšãæšå¥šããŸãã ãŸãããã®ãã³ãããã¯ã«ã¯ <<porting-samplem,Makefile ã®ãµã³ãã«>>ããããŸãã ãããèŠãŠãMakefile å
ã®å€æ°ã®é çªã 空è¡ãå
¥ãããšãããªã©ã®åèã«ããŠãã ããã ãããããšä»ã®äººã
ã«ãèªã¿ããããã®ãšãªããŸãã
ã§ã¯ã[.filename]#Makefile# ãèšèšãããšãã« åé¡ãšãªããšãããé ã«è¿œã£ãŠèŠãŠã¿ãŸãããã
[[makefile-source]]
== ãªãªãžãã«ã®ãœãŒã¹
ãœãŒã¹ã¯ [.filename]#foozolix-1.2.tar.gz# ãšãã£ãååã® æšæºç㪠gzip ããã tar ãã¡ã€ã«ã®åœ¢åŒã§ `DISTDIR` ã«çœ®ãããŠããŸãã? ãããªã£ãŠããã°ã次ã®ã¹ãããã«é²ããŸãã ç°ãªã£ãŠããå Žåã«ã¯ã倿° `DISTNAME`, `EXTRACT_CMD`, `EXTRACT_BEFORE_ARGS`, `EXTRACT_AFTER_ARGS`, `EXTRACT_SUFX`, `DISTFILES` ã®ãã¡ ããã€ããæžãæããå¿
èŠããããŸãã ã©ãã ã倿Žããªããšãããªããã¯ããã® port ã®é
åžãã¡ã€ã«ã ã©ã®çšåºŠæšæºããããã¯ãªããŠãããã«ãããŸã (æãããããã®ã¯ gzip ã§ã¯ãªãæ®éã® compress ã³ãã³ãã§ tar ãã¡ã€ã«ãå§çž®ãããŠããå Žåã§ããã®ãšã㯠`EXTRACT_SUFX=.tar.Z` ãšããã ãã§ã)ã
ææªã®å Žåã«ã¯ãèªåã§ `do-extract` ã¿ãŒã²ãããäœæããŠã ããã©ã«ããäžæžãããããšãã§ããŸãã ãããããããŸã§ããå¿
èŠãããããšã¯ãã£ãã«ãªãã§ãããã
[[makefile-naming]]
== ååã®ä»ãæ¹
Port ã® [.filename]#Makefile# ã®ã¯ããã®éšåã§ port ã«ååãã€ããããŒãžã§ã³çªå·ãèšè¿°ããé©åãªã«ããŽãªã«èŒããŸãã
=== `PORTNAME` ããã³ `PORTVERSION`
`PORTNAME` ã«ã¯ port ã®ååã®åºå¹¹éšåãå
¥ãã `PORTVERSION` ã«ã¯ port ã®ããŒãžã§ã³çªå·ãå
¥ããŸãã
=== `PORTREVISION` ããã³ `PORTEPOCH`
==== `PORTREVISION`
`PORTREVISION` 倿°ã¯å調å¢å ããå€ã§ãã `PORTVERSION` ãå¢å ããæ (ã€ãŸãã æ°ãããªãã£ã·ã£ã«ãã³ããŒãªãªãŒã¹ãè¡ãªãããæ) ã«ã¯ ãã€ã§ã 0 ã«ãªã»ãããããŸãã ãŸãããã®å€ã 0 ã§ãªãå Žåã«ã¯ package åã«è¿œå ãããŸãã `PORTREVISION` ã®å€æŽã¯ã(äŸãã° man:pkg_version[1] çã®) èªååããŒã«ãã æ°ã㪠package ãå
¥æã§ããããšã瀺ãã®ã«äœ¿ãããŸãã
ãã® port ããäœããã package ã®å
å®¹ãæ§é 㫠倧ããªåœ±é¿ãäžãã倿Žãè¡ãªã£ãæã«ã¯ã `PORTREVISION` ãå¢ãããŠãã ããã
`PORTREVISION` ãäžããå¿
èŠããã倿Žã®äŸ:
* ã»ãã¥ãªãã£äžã®è匱æ§ããã°ãä¿®æ£ããããããŸã㯠ãã® port ã«æ°ããæ©èœã远å ããããã®ãããã®è¿œå ã
* package ã®ã³ã³ãã€ã«æãªãã·ã§ã³ã®æå¹åã ç¡å¹åã®ããã® port ã® [.filename]#Makefile# ã®å€æŽã
* ãããã³ã°ãªã¹ãã®å€æŽããpackage ã®ã€ã³ã¹ããŒã«æã® æåã®å€æŽ (ããšãã°ãssh ã®ãã¹ãããŒã®ãã㪠package ã® åæããŒã¿ãçæããã¹ã¯ãªããã®å€æŽãªã©)ã
* ãã® port ãäŸåããå
±æã©ã€ãã©ãªã®ããŒãžã§ã³ã äžããå Žå (æ°ããããŒãžã§ã³ã®å
±æã©ã€ãã©ãªã ã€ã³ã¹ããŒã«ãããåŸã«ããã®ã©ã€ãã©ãªã«äŸåããŠãã å€ã package ãã€ã³ã¹ããŒã«ã詊ã¿ãå Žåã ãã® package ã¯æ°ãã libfoo.(x+1) ã§ã¯ãªã å€ã libfoo.x ãæ¢ãããšãããããã€ã³ã¹ããŒã«ã«å€±æããŸãã (蚳泚: ãã®ãããPORTREVISION ãäžãã package ã äœæããå¿
èŠãããããã§ã))ã
* ã²ããã« port é
åžãã¡ã€ã«ã®å€æŽãè¡ãªããã ãã®æ©èœã«å€§ããªå€åããã£ãå Žåã ã€ãŸãã[.filename]#distinfo# ã®ä¿®æ£ã å¿
èŠãšãããããªé
åžãã¡ã€ã«ã®å€æŽãè¡ãªããã æ°æ§ã®ããŒãžã§ã³ã® `diff -ru` ãåããš äºçްãšã¯èšããªã倿Žãèªããããã«ããããããã ãªãªãžãã«ã®ããŒãžã§ã³çªå·ã倿ŽãããŠããªãããšãã `PORTVERSION` ã®å€æŽã¯é£ããå Žåã
PORTREVISION ãäžããå¿
èŠã®ç¡ã倿Žã®äŸ:
* çæããã package ã«æ©èœã®å€åãèµ·ããªããã㪠port ã¹ã±ã«ãã³ã®ã¹ã¿ã€ã«å€æŽã
* çæããã package ã«åœ±é¿ããªããã㪠`MASTER_SITES` ãã®ä»ã® port ã«å¯Ÿããæ©èœå€æŽã
* 誀æ€ã®ä¿®æ£ãªã©ã®äºçްãªå€æŽã§ããã® package ã®ãŠãŒã¶ã ã¢ããã°ã¬ãŒããå¿
èŠãšããã»ã©ã«ã¯éèŠã§ãªããããã
* 以åã«ã¯ã³ã³ãã€ã«ãéããªãã£ã package ã ãã«ãå¯èœã«ããããã®ä¿®æ£ (ãã® port ã以åã«ãã«ãå¯èœã ã£ã ãã©ãããã©ãŒã ã«ãããŠããã®å€æŽã«ããäœããã®æ©èœç㪠éããçºçããªãå Žåã«éããŸã)ã `PORTREVISION` 㯠package ã®å
容ãåæ ãããã®ãªã®ã§ããã® package ã以åã«ãã«ãå¯èœã§ãªãã£ãã®ãªãã倿Žã瀺ãããã«ã `PORTREVISION` ã å¢ããå¿
èŠã¯ãããŸããã
çµéšçãªå€ææ¹æ³ãšããŠã¯ããã port ã«ã³ãããããã倿Žã (ããã匷åãä¿®æ£ã«ãããã®ã§ãããæ°ãã package ã«ãã å®è³ªçãªå¹èœã§ãã)ãã¢ããããŒãããããšã«ããã 誰ããå©çãåãããããªäœããã©ããããŸã宿çã« ports ããªãŒãæŽæ°ããŠããäººã«æŽæ°ã匷å¶ãããšããããšã«å€ãããèªåããŠã¿ãããšã§ãã ããçãã€ãšã¹ã§ããã°ã `PORTREVISION` ãäžããã¹ãã§ãããã
==== `PORTEPOCH`
ãœãããŠã§ã¢ã®ãã³ãã FreeBSD ã® port äœæè
ã¯ã 以åã®ãã®ãããå°ããæ°åã®ããŒãžã§ã³çªå·ãã€ãããœãããŠã§ã¢ããªãªãŒã¹ãããšãã£ãã äœã銬鹿ããããšãããããšãæã
ãããŸãã äŸãããããšããã port ã foo-20000801 ãã foo-1.0 ã«ãªããšãã£ãå
·åã§ã (æ°åãšããŠèŠããš 20000801 㯠1 ããã倧ããããã ééã£ãŠåè
ã®æ¹ãæ°ããããŒãžã§ã³ãšããŠæ±ãããŠããŸããŸã)ã
ãã®ãããªå Žåã«ã¯ `PORTEPOCH` ããŒãžã§ã³ãå¢ãããŠãã ããã äžã®ã»ã¯ã·ã§ã³ 0 ã§èª¬æããããã«ã `PORTEPOCH` ããŒãã§ãªãå Žåã«ã¯ã ãããããã±ãŒãžåã®åŸãã«ã€ããããŸãã絶察㫠`PORTEPOCH` ãæžããããããŒãã«ãªã»ããããŠã¯ãããŸããã ãããªããšã以åã«äœæããã package ãšã®æ¯èŒã«å€±æãã (ã€ãŸãããã® package ãå€ããªã£ãŠããããšãããããªã) ããã§ã: æ°ããããŒãžã§ã³çªå· (äžã®äŸã§ã¯``1.0,1``) 㯠äŸç¶ãšããŠåã®ããŒãžã§ã³çªå· (20000801) ããã æ°åãšããŠã¯å°ããã®ã§ãããèªååããŒã«ã ãµãã£ãã¯ã¹ `,1` ãç¹å¥æ±ãããããšã§ã 以åã® package ã«ã¯æç€ºãããŠããªããµãã£ãã¯ã¹ `,0` ãããæ°ããããšãããããŸãã
誀ã£ãŠ `PORTEPOCH` ãåé€ããããªã»ããããããããšãçµããã®ãªãæ²åã«èŠèãããŸãã äžèšã®è°è«ãçè§£ã§ããªããªãã ããããŸã§è°è«ããã©ããã¡ãŒãªã³ã°ãªã¹ãã§è³ªåããŠãã ããã
倧倿°ã® ports ã§ã¯ã`PORTEPOCH` ã å¿
èŠã«ãªãããšã¯ ãŸãç¡ããã®ãšèããããŠããŸãã ãŸããæ³šææ·±ã `PORTVERSION` ã䜿çšããããšã§ã ãã®ãœãããŠã§ã¢ã®å°æ¥ã®ãªãªãŒã¹ãããŒãžã§ã³æ§é ã倿Žããå¿
èŠãåºãŠããå Žåã«ãã å€ãã®å Žååãã£ãŠå¯Ÿå¿ããŠããããšãã§ããã§ãããã ãããã"ã¹ãããã·ã§ãã"ãªãªãŒã¹ã®ããã«ã ãªãã£ã·ã£ã«ãªããŒãžã§ã³çªå·ãæããªããã³ããŒãªãªãŒã¹ãè¡ãªãããæã«ã¯ã FreeBSD çã® port äœè
ã«ããã±ã¢ãå¿
èŠã«ãªããŸãã ãããã£ããªãªãŒã¹ã«å¯Ÿãã ãªãªãŒã¹æ¥ä»ã䜿ã£ãã©ãã«ãä»ããããšããèªæã«ããããããšãããã§ããããã ãããããšæ°ãã"ãªãã£ã·ã£ã«"ãªãªãŒã¹ãè¡ãªãããæã«ã äžã®äŸã§ç€ºãããããªåé¡ãèµ·ããããšã§ãããã
äŸãã°ããããœãããŠã§ã¢ã®ã¹ãããã·ã§ãããªãªãŒã¹ã 20000917 ã«è¡ãªããã以åã®ããŒãžã§ã³çªå·ã 1.2 ã ã£ããšãããšã ãã®ã¹ãããã·ã§ããã® `PORTVERSION` ã«ã¯ 20000917 ã§ã¯ãªã 1.2.20000917 ãäœãããã®ãããªçªå·ã æå®ããã®ãè¯ãã§ãããã ããããŠããã°ãäŸãã°ããŒãžã§ã³çªå· 1.3 ãšããŠåŸç¶ã®ãªãªãŒã¹ã è¡ãªãããå Žåã«ãã倧å°é¢ä¿ã厩ãããã«ããããã§ãã
==== `PORTREVISION` ãš `PORTEPOCH` ã®äœ¿ãæ¹ã®äŸ
`gtkmumble` ã® port, ããŒãžã§ã³ `0.10` ã ports collection ã«ã³ããããããŸãã
[.programlisting]
....
PORTNAME= gtkmumble
PORTVERSION= 0.10
....
`PKGNAME` 㯠`gtkmumble-0.10` ã«ãªããŸãã
ããŒã«ã«ãª FreeBSD ããããå¿
èŠãšãã ã»ãã¥ãªãã£ããŒã«ãçºèŠãããŸããã ããã«åãã㊠`PORTREVISION` ãå¢ãããŸãã
[.programlisting]
....
PORTNAME= gtkmumble
PORTVERSION= 0.10
PORTREVISION= 1
....
`PKGNAME` 㯠`gtkmumble-0.10_1` ã«ãªããŸãã
ãã³ããã `0.2` ãšããçªå·ãæ¯ããã æ°ããŒãžã§ã³ããªãªãŒã¹ãããŸã (ããã«ããã äœè
㯠`0.10` ãšããçªå·ã "0.9 ã®æ¬¡ãšããæå³ã§ã¯ãªã"ã å®éã«ã¯ `0.1.0` ã®ã€ãã㧠䜿çšããŠããããšãããããŸã - ããããä»ããé
ããã)ã æ°ãããã€ããŒããŒãžã§ã³ `2` ã¯æ°åãšããŠä»¥åã®ããŒãžã§ã³çªå· `10` ããå°ããã®ã§ã 匷å¶çã«æ°ãã package "ã®æ¹ãæ°ãã"ãšèªèããããã `PORTEPOCH` ãå¢ããå¿
èŠããããŸãã ããã¯æ°ãããã³ããŒãªãªãŒã¹ãªã®ã§ã `PORTREVISION` 㯠0 ã«ãªã»ãã (ãŸã㯠[.filename]#Makefile# ããåé€) ãããŸãã
[.programlisting]
....
PORTNAME= gtkmumble
PORTVERSION= 0.2
PORTEPOCH= 1
....
`PKGNAME` 㯠`gtkmumble-0.2,1` ã«ãªããŸãã
次ã®ãªãªãŒã¹ã¯ 0.3 ã§ãã `PORTEPOCH` ã¯æžå°ããããšãç¡ãããã ä»åºŠã®ããŒãžã§ã³å€æ°ã¯æ¬¡ã®ããã«ãªããŸã:
[.programlisting]
....
PORTNAME= gtkmumble
PORTVERSION= 0.3
PORTEPOCH= 1
....
`PKGNAME` 㯠`gtkmumble-0.3,1` ã«ãªããŸãã
[NOTE]
====
ããããã®ã¢ããã°ã¬ãŒãã«ãã£ãŠ `PORTEPOCH` ã `0` ã« ãªã»ããããããšãããšã`3` ã¯æ°åãšã㊠`10` ãããå°ããããã `gtkmumble-0.10_1` ã® package ãã€ã³ã¹ããŒã«ãã誰ã㯠`gtkmumble-0.3` ã® package ã®æ¹ãæ°ããããšã«æ°ãã€ããªãããšã«ãªãã§ãããã ãããããããã `PORTEPOCH` ãå°å
¥ãããèå¿ãªçç±ã§ãã
====
=== `PKGNAMEPREFIX` ããã³ `PKGNAMESUFFIX`
äºã€ã®ãªãã·ã§ã³å€æ° `PKGNAMEPREFIX` ãš `PKGNAMESUFFIX` ã¯ã `PORTNAME` ããã³ `PORTVERSION` ãšçµåããã `PKGNAME` ã `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}` ãšããŠå®çŸ©ããŸãã ãã®æã<<porting-pkgname,é©å㪠package åãéžã¶ããã® ã¬ã€ãã©ã€ã³>>ã«æ²¿ã£ãŠãããã©ããã確èªããŠãã ããã ç¹ã«ã`PORTVERSION` äžã« ãã€ãã³ (`-`) ã䜿çšããããšã¯__çŠæ¢__ãããŠããŸãã ãŸããpackage åã« _language-_ ããã㯠_-compiled.specifics_ éšåã å«ãŸããå Žåããããã `PKGNAMEPREFIX` ãš `PKGNAMESUFFIX` ã䜿çšããŠãã ããã ãããã `PORTNAME` ã®äžéšãšããŠã¯ãããŸããã
[[porting-pkgname]]
=== package åã«ã€ããŠã®èŠå
package ã®ååã¯ä»¥äžã®ã«ãŒã«ã«ãããã£ãŠã€ããŠãã ããã ãã㯠package ã®ãã£ã¬ã¯ããªãèŠãããããããã§ã æ¢ã«äœåãã®ããã±ãŒãžããããŸããã ç®ãçããŠããŸãããã ãšãŠãŒã¶ã¯ãã£ãœãåãã§ãããã
package ã®ååã¯ä»¥äžã®ããã«ããŠãã ããã [.filename]#èšèª-åå-ãªãã·ã§ã³ããŒãžã§ã³.çªå·#
package å㯠`${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}` ãšããããã«å®çŸ©ãããŠããŸãã 倿°ããã®æžåŒãšé©åããŠããããšã確èªããŠãã ããã
. FreeBSD ã¯ãŠãŒã¶ã®æ
£ã芪ããã èšèªã®ãµããŒãã«åãå
¥ããŠããŸãã ç¹å®ã®èšèªã®ããã® port ã® package åã«ã¯ _èšèª-_ ã« ISO-639 ã§å®çŸ©ãããŠããèšèªåã®ç¥ç§°ãå
¥ããŠãã ããã ããšãã°æ¥æ¬èªãªã `ja`ã ãã·ã¢èªãªã `ru`ã ãããã èªãªã `vi`ã äžåœèªãªã `zh`ã éåœèªãªãã° `ko`ã ãã€ãèªãªã `de` ãšãã£ãå
·åã§ãã
+
port ãããèšèªå°åã«ç¹åãããã®ã§ããå Žåã«ã¯ã ããã«äºæåã®åœåã³ãŒããä»å ããŠãã ããã ããšãã°åè¡åœè±èªå㯠`en_US` ãšãªãã ã¹ã€ã¹ã®ãã©ã³ã¹èªå㯠`fr_CH` ãšãªããŸãã
+
_èšèª-_ éšåã¯ã `PKGNAMEPREFIX` 倿°ã« å®çŸ©ãããªããã°ãªããŸããã
. [.filename]##åå##ã®éšåã®æåã®æåã¯ å°æåã§ãªããã°ãªããŸããã (ååã®æ®ãã®éšåã¯å€§æåãå«ãã§ããŠãæ§ããªãããã 倧æåãå«ãã ãœãããŠã§ã¢åã倿ããéã®èŠåã¯ã ããªãèªèº«ã®è£éã«ä»»ãããŠããŸãã) `perl 5` ã®ã¢ãžã¥ãŒã«ã§ã¯å
é ã« `p5-` ãä»ãã äºéã³ãã³ (`::`) ã®ã»ãã¬ãŒã¿ããã€ãã³ (`-`) ã«çœ®ããããç¿æ
£ã«ãªã£ãŠããŸãã ããšãã° `Data::Dumper` 㯠`p5-Data-Dumper` ã«ãªããŸãã ãŸãããã®ãœãããŠã§ã¢ã®ååãšããŠé垞䜿ããããã®ã«çªå·ã ãã€ãã³ããããã¯äžç·ãå
¥ã£ãŠããå Žåã«ã¯ã ãããã䜿ãããšãæ§ããŸãã (``kinput2``ãªã©)ã
. ã³ã³ãã€ã«æã«ç°å¢å€æ°ã `make` ã®åŒæ°ãªã©ã§<<porting-masterdir,ããŒãã³ãŒããããããã©ã«ã>>ãå€ããŠã³ã³ãã€ã«ã§ããå Žåã _-compiled.specifics_ ã«ãã®ã³ã³ãã€ã«æã®ããã©ã«ããå
¥ããŠãã ãã (ãã€ãã³ã¯ãã£ãŠããªããŠãããŸããŸãã)ã çšçŽã®ãµã€ãºããããã¯ãã©ã³ãã®è§£å床ãªã©ãããã«ããããŸãã
+
_-compiled.specifics_ éšåã¯ã `PKGNAMESUFFIX` 倿°ã«å®çŸ©ãããªããã°ãªããŸããã
. ããŒãžã§ã³çªå·ã¯æ°åãšã¢ã«ãã¡ããããããªãã ããªãªã (.) ã§åºåããŸãã ã¢ã«ãã¡ãããã¯äºæå以äžç¶ããŠã¯ãããŸããã å¯äžã®äŸå€ã¯"ãããã¬ãã«"ãæå³ããæåå `pl` ã§ã ãã以å€ã«ããŒãžã§ã³çªå·ããŸã£ããã€ããŠããªãå Žåã«ã®ã¿äœ¿ãããšãã§ããŸãã ãããœãããŠã§ã¢ã®ããŒãžã§ã³ã« "alpha", "beta", "rc" ã "pre" ãšãã£ãæååãå«ãŸãããªãã ããªãªãã®åŸã«æåã®äžæåããšã£ãŠãã ããã ãããã®åŸã«ãããã«ããŒãžã§ã³æååãç¶ãå Žåã«ã¯ã äžæåã®ã¢ã«ãã¡ãããã®åŸã«ããªãªããã€ããã«çªå·ãç¶ããŸãã
+
ãã®èãæ¹ã¯ã ããŒãžã§ã³æååãèŠãŠç°¡åã« ports ã䞊ã¹ãããããã«ããããã®ãã®ã§ãã ç¹ã«ãããŒãžã§ã³çªå·ã®åéšåãå¿
ãããªãªãã§åºåãããŠããããšã ãŸãæ¥ä»ã®éšåãããŒãžã§ã³æååã®äžéšãšãªã£ãŠããå Žåã«ã¯ `yyyy.mm.dd` ãšããæžåŒã䜿ã£ãŠããããšã確èªããŠãã ããã `dd.mm.yyyy` ãã2000 幎åé¡ã«å¯Ÿå¿ããŠããªã `yy.mm.dd` ãšããæžåŒã䜿ã£ãŠã¯ãããŸããã
ã§ã¯ã``DISTNAME``ãæ£ãã ``PKGNAME`` ã«çŽãäŸãèŠãŠã¿ãŸããã:
以äžã¯ããœãããŠã§ã¢ã®äœè
ãæ±ºããååãã é©å㪠package åã«å€æããæ¹æ³ã瀺ãã (å®éã®) äŸã§ãã
[.informaltable]
[cols="1,1,1,1,1,1", frame="none", options="header"]
|===
| é
åžå
| PKGNAMEPREFIX
| PORTNAME
| PKGNAMESUFFIX
| PORTVERSION
| çç±
|mule-2.2.2
|(空)
|mule
|(空)
|2.2.2
|倿Žã®å¿
èŠã¯ãããŸãã
|XFree86-3.3.6
|(空)
|XFree86
|(空)
|3.3.6
|倿Žã®å¿
èŠã¯ãããŸãã
|EmiClock-1.0.2
|(空)
|emiclock
|(空)
|1.0.2
|ããã°ã©ã äžã€ã ãã®æã¯å°æåã®ã¿
|rdist-1.3alpha
|(空)
|rdist
|(空)
|1.3.a
|`alpha` ã®ãããªæååã¯äœ¿ããªã
|es-0.9-beta1
|(空)
|es
|(空)
|0.9.b1
|`alpha` ã®ãããªæååã¯äœ¿ããªã
|mailman-2.0rc3
|(空)
|mailman
|(空)
|2.0.r3
|`rc` ã®ãããªæååã¯äœ¿ããªã
|v3.3beta021.src
|(空)
|tiff
|(空)
|3.3
|ãªããªãã§ããã ;)
|tvtwm
|(空)
|tvtwm
|(空)
|pl11
|ããŒãžã§ã³çªå·ã¯å¿
ãå¿
èŠ
|piewm
|(空)
|piewm
|(空)
|1.0
|åäž
|xvgr-2.10pl1
|(空)
|xvgr
|(空)
|2.10.1
|`pl` ã䜿ããã®ã¯ã ä»ã«ã¡ãžã£ãŒ/ãã€ããŒããŒãžã§ã³çªå·ããªãå Žåã®ã¿
|gawk-2.15.6
|ja-
|gawk
|(空)
|2.15.6
|æ¥æ¬èªããŒãžã§ã³
|psutils-1.13
|(空)
|psutils
|-letter
|1.13
|ã³ã³ãã€ã«æã«çšçŽã®ãµã€ãºãæå®
|pkfonts
|(空)
|pkfonts
|300
|1.0
|300dpiãã©ã³ãçšã® package
|===
ãªãªãžãã«ã®ãœãŒã¹ã«ãŸã£ããããŒãžã§ã³æ
å ±ãèŠåœãããã ãŸãåäœè
ãæ°ããããŒãžã§ã³ããªãªãŒã¹ããå¯èœæ§ãäœããšãã«ã¯ã ããŒãžã§ã³çªå·ãšã㊠`1.0` ã䜿ãã°ããã§ããã (äžèšã® `piewm` ã®äŸãããã«ããããŸã)ã ããã§ãªãå Žåã«ã¯åäœè
ã«èãããæ¥ä» (`yyyy.mm.dd`) ã䜿ããªã©ããŠãã ããã
[[makefile-categories]]
== ã«ããŽãªåé¡
=== `CATEGORIES`
ããã±ãŒãžãäœæããããš [.filename]#/usr/ports/packages/All# ã«çœ®ãããäžã€ä»¥äžã® [.filename]#/usr/ports/packages# ã®ãµããã£ã¬ã¯ããªãããªã³ã¯ã匵ãããŸãã ãããã®ãµããã£ã¬ã¯ããªã®åç§°ã¯ã`CATEGORIES` 倿°ã§æå®ãããŸããããã¯ããŠãŒã¶ã FTP ãµã€ãã CDROM ã®ããã±ãŒãžã®å±±ããæ¢ãåºãã®ã容æã«ããããã®ãã®ã§ãã æ¢åã®<<porting-categories,ã«ããŽãª>>ãåç
§ããŠã ããªãã® port ã«ãµãããããã®ãéžãã§ãã ããã
ãŸãããã®ãªã¹ãã¯ããã® port ã ports ããªãŒã®ã©ãã«ã€ã³ããŒããããããæ±ºå®ããŸãã ããã«è€æ°ã®ã«ããŽãªãæå®ãããšãport ã®ãã¡ã€ã«ã¯æåã®ã«ããŽãªåã®ãµããã£ã¬ã¯ããªã«çœ®ãããããšã«ãªããŸãã é©åãªã«ããŽãªã®éžææ¹æ³ã«ã€ããŠã¯<<porting-categories,ã«ããŽãª>>ç¯ãã芧ãã ããã
ããªããäœæãã port ããæ¬åœã«æ¢åã®ã©ã®ã«ããŽãªã«ãåœãŠã¯ãŸããªãå Žåã«ã¯ã æ°ãã«ã«ããŽãªåãäœæããããšãã§ããŸãã ãã®å Žåãæ°ããã«ããŽãªãææ¡ããã¡ãŒã«ã {freebsd-ports} å®ã«éã£ãŠãã ããã ããããäžè¬çã«ã¯ããªããææ¡ããã«ããŽãªã«ããŠã¯ãŸã ports ãäžæ¡ãã§ã¯ããŸãªãå Žåã§ãªããã°ã ããªãã®ææ¡ã¯åŽäžãããã§ãããã
[NOTE]
====
æã
ãã«ããŽãªã 2 éå±€æ§é ãã äœãä»ã®ããŒã¯ãŒããå©çšããæ§é ã«åæ§æããããšãææ¡ãã人ãããŸãã 仿¥ãŸã§ããã®ææ¡ã¯ã©ããå®çŸããŸããã§ããã ãªããªãããã®æ§æãå®çŸããããšã¯ç°¡åãªã®ã§ãããæ¢åã® Ports Collection å
šäœãæ§æããªããããã®ã«åãããŠæ¹ä¿®ããåŽåã¯ã æ§ãç®ã«ãã£ãŠãæ°ãé ããªããã®ã ããã§ãã ããããã¢ã€ãã£ã¢ãéãåã«ã ãããã®ææ¡ã®æŽå²ãã¡ãŒãªã³ã°ãªã¹ãã®ã¢ãŒã«ã€ãã§èª¿ã¹ãŠãã ããã ããã«ãåäœãããããã¿ã€ãã瀺ããšèšãããã®ã«å¯ŸããæºåãããŠãããŸãããã
====
[[porting-categories]]
=== çŸåšã®ã«ããŽãªã®ãªã¹ã
ããã«çŸåšã® port ã®ã«ããŽãªã®äžèЧã瀺ããŸãã ã¢ã¹ã¿ãªã¹ã¯(`*`) ãä»ããŠãããã®ã¯ä»®æ³ (_virtual_) ã«ããŽãªã§ã - ãããã«ã¯å¯Ÿå¿ãããµããã£ã¬ã¯ããªã port ããªãŒã«ã¯ãããŸããã ãããã¯ç¬¬ 2 ã®è£å©çãªã«ããŽãªãšããŠã æ€çŽ¢ç®çã«ãã䜿ãããŸããã
[NOTE]
====
ä»®æ³ã«ããŽãªã§ãªããã®ã¯ã ãã®ãµããã£ã¬ã¯ããªå
ã® [.filename]#pkg/COMMENT# ã«äžè¡ã®èšè¿°ããããŸã (äŸ: [.filename]#archivers/pkg/COMMENT#)ã
====
[.informaltable]
[cols="1,1,1", frame="none", options="header"]
|===
| ã«ããŽãª
| 説æ
| Notes
|[.filename]#accessibility#
|é害ãæã£ããŠãŒã¶ã®åœ¹ã«ç«ã€ ports
|
|[.filename]#afterstep*#
|http://www.afterstep.org[AfterStep] ãŠã£ã³ããŠãããŒãžã£ããµããŒããã ports
|
|[.filename]#arabic#
|ã¢ã©ãã¢èªãµããŒã
|
|[.filename]#archivers#
|ã¢ãŒã«ã€ãçšããŒã«
|
|[.filename]#astro#
|倩æåŠé¢é£ã® ports
|
|[.filename]#audio#
|ãµãŠã³ãããµããŒããã ports
|
|[.filename]#benchmarks#
|ãã³ãããŒã¯ãŠãŒãã£ãªãã£
|
|[.filename]#biology#
|çç©åŠé¢é£ã®ãœãããŠã§ã¢
|
|[.filename]#cad#
|CAD ããŒã«
|
|[.filename]#chinese#
|äžåœèªãµããŒã
|
|[.filename]#comms#
|éä¿¡ãœãããŠã§ã¢
|ã»ãšãã©ã¯ã·ãªã¢ã«ããŒãçšã®ãœãããŠã§ã¢
|[.filename]#converters#
|æåã³ãŒã倿
|
|[.filename]#databases#
|ããŒã¿ããŒã¹
|
|[.filename]#deskutils#
|ã³ã³ãã¥ãŒã¿ãçºæããã以åã«æºäžã§äœ¿ãããŠããéå
·
|(蚳泚: ãããããã¹ã¯ããããŠãŒãã£ãªãã£ã®ããš)
|[.filename]#devel#
|éçºãŠãŒãã£ãªãã£
|åã«ã©ã€ãã©ãªã ãããšããã ãã§ã ã©ãããŠãããã«çœ®ããªããã°ãªããªãçç±ãããã®ã§ãªãéãã ã©ã€ãã©ãªãããã«å«ããªãã§ãã ããã
|[.filename]#dns#
|DNS é¢é£ãœãããŠã§ã¢
|
|[.filename]#editors#
|äžè¬çãªãšãã£ã¿
|ç¹æ®ãªãšãã£ã¿ã¯ãããããµããããã»ã¯ã·ã§ã³ã«å
¥ããŸã (ããšãã°æ°åŒãšãã£ã¿ã¯ [.filename]#math# ã§ã)ã
|[.filename]#elisp#
|Emacs-lisp ã® ports
|
|[.filename]#emulators#
|ä»ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã çšã®ãšãã¥ã¬ãŒã¿
|端æ«ãšãã¥ã¬ãŒã¿ã¯ããã«__å«ãŸããŸãã__ - X ããŒã¹ã®ãã®ã¯ [.filename]#x11# ã«ã ããã¹ãããŒã¹ã®ãã®ã¯æ©èœã«ãã£ãŠ [.filename]#comms# ã [.filename]#misc# ã«åé¡ãããŸãã
|[.filename]#finance#
|éèã財åäŒèšé¢é£ã®ã¢ããªã±ãŒã·ã§ã³ã
|
|[.filename]#french#
|ãã©ã³ã¹èªãµããŒã
|
|[.filename]#ftp#
|FTP ã¯ã©ã€ã¢ã³ããšãµãŒããŠãŒãã£ãªãã£
|port ã FTP ãš HTTP ã®äž¡æ¹ã«å¯Ÿå¿ããŠããã°ã [.filename]#ftp# ã«å
¥ãã第 2 ã«ããŽãªã [.filename]#www# ãšããŸãã
|[.filename]#games#
|ã²ãŒã
|
|[.filename]#german#
|ãã€ãèªãµããŒã
|
|[.filename]#gnome*#
|http://www.gnome.org[GNOME] ãããžã§ã¯ãã® ports
|
|[.filename]#graphics#
|ã°ã©ãã£ãã¯ãŠãŒãã£ãªãã£
|
|[.filename]#haskell*#
|Haskell èšèªé¢é£ã®ãœãããŠã§ã¢ã
|
|[.filename]#hebrew#
|ããã©ã€èªãµããŒã
|
|[.filename]#hungarian#
|ãã³ã¬ãªãŒèªãµããŒã
|
|[.filename]#ipv6*#
|IPv6 é¢é£ã®ãœãããŠã§ã¢
|
|[.filename]#irc#
|ã€ã³ã¿ãŒããããªã¬ãŒãã£ãã (IRC) çšãŠãŒãã£ãªãã£
|
|[.filename]#japanese#
|æ¥æ¬èªãµããŒã
|
|[.filename]#java#
|Java èšèªé¢é£ã®ãœãããŠã§ã¢
|
|[.filename]#kde*#
|http://www.kde.org[K Desktop Environment (kde)] ãããžã§ã¯ãã® ports
|
|[.filename]#korean#
|éåœèªãµããŒã
|
|[.filename]#lang#
|ããã°ã©ãã³ã°èšèª
|
|[.filename]#linux*#
|Linux ã¢ããªã±ãŒã·ã§ã³ãšãµããŒããŠãŒãã£ãªãã£
|
|[.filename]#lisp*#
|Lisp èšèªé¢é£ã®ãœãããŠã§ã¢
|
|[.filename]#mail#
|ã¡ãŒã«ãœãããŠã§ã¢
|
|[.filename]#math#
|æ°å€èšç®ãœãããŠã§ã¢ããã®ä»ã®æ°åŠãœãããŠã§ã¢
|
|[.filename]#mbone#
|MBone ã¢ããªã±ãŒã·ã§ã³
|
|[.filename]#misc#
|çš®ã
ã®ãŠãŒãã£ãªãã£
|åºæ¬çã«ä»ã®ã«ããŽãªã«å±ããªããã®ã§ãã ããã¯ä»ã®ä»®æ³ã§ãªãã«ããŽãªã䌎ããªããå¯äžã®ã«ããŽãªã§ãã `misc` ãšä»ã®ã«ããŽãªã `CATEGORIES` è¡ã«æžãããŠããå Žåã `misc` ãåé€ããŠä»ã®ãµããã£ã¬ã¯ããªã«ãããŠè¯ããšããæå³ã«ãªããŸãã ãã®ã«ããŽãªã«çœ®ããã ports ã¯èŠèœãšãããããã®ã§ã å¯èœãªéã `misc` ãããµããããã«ããŽãªãæ¢ããŠãã ããã
|[.filename]#multimedia#
|ãã«ãã¡ãã£ã¢ãœãããŠã§ã¢
|
|[.filename]#net#
|çš®ã
ã®ãããã¯ãŒã¯ãœãããŠã§ã¢
|
|[.filename]#net-mgmt#
|ãããã¯ãŒã¯ç®¡çãœãããŠã§ã¢
|
|[.filename]#news#
|USENET ãã¥ãŒã¹ãœãããŠã§ã¢
|
|[.filename]#offix*#
|http://leb.net/OffiX/[OffiX] suite ã® ports
|
|[.filename]#palm#
|http://www.palm.com/[Palm(TM)] ã·ãªãŒãºããµããŒããããœãããŠã§ã¢
|
|[.filename]#parallel*#
|䞊åèšç®ãè¡ãã¢ããªã±ãŒã·ã§ã³
|
|[.filename]#pear*#
|Pear PHP ãã¬ãŒã ã¯ãŒã¯é¢é£ã® ports
|
|[.filename]#perl5*#
|å®è¡ã« Perl ããŒãžã§ã³ 5 ãå¿
èŠãšãã ports
|
|[.filename]#picobsd#
|http://people.FreeBSD.org/~picobsd/[PicoBSD] ããµããŒãããããã® ports
|
|[.filename]#plan9*#
|http://www.cs.bell-labs.com/plan9dist/[Plan9] ã«ç±æ¥ããããŸããŸãªãœãããŠã§ã¢
|
|[.filename]#polish#
|ããŒã©ã³ãèªãµããŒã
|
|[.filename]#portuguese#
|ãã«ãã¬ã«èªãµããŒã
|
|[.filename]#print#
|å°å·ãœãããŠã§ã¢
|DTP çšããŒã« (ãã¬ãã¥ãŒã¢ãªã©) ãããã«åé¡ãããŸãã
|[.filename]#python*#
|http://www.python.org/[Python] èšèªé¢é£ã®ãœãããŠã§ã¢
|
|[.filename]#ruby*#
|http://www.ruby-lang.org/[Ruby] èšèªé¢é£ã®ãœãããŠã§ã¢
|
|[.filename]#russian#
|ãã·ã¢èªãµããŒã
|
|[.filename]#science#
|[.filename]#astro# ã [.filename]#biology#, [.filename]#math# çã ä»ã®ã«ããŽãªã«ã¯ããŠã¯ãŸããªãç§åŠé¢é£ã® ports
|
|[.filename]#security#
|ã»ãã¥ãªãã£é¢é£ã®ãŠãŒãã£ãªãã£
|
|[.filename]#shells#
|ã³ãã³ãã©ã€ã³ã·ã§ã«
|
|[.filename]#sysutils#
|ã·ã¹ãã ãŠãŒãã£ãªãã£
|
|[.filename]#tcl76*#
|å®è¡ã« Tcl ããŒãžã§ã³ 7.6 ãå¿
èŠãšãã ports
|
|[.filename]#tcl80*#
|å®è¡ã« Tcl ããŒãžã§ã³ 8.0 ãå¿
èŠãšãã ports
|
|[.filename]#tcl81*#
|å®è¡ã« Tcl ããŒãžã§ã³ 8.1 ãå¿
èŠãšãã ports
|
|[.filename]#tcl82*#
|å®è¡ã« Tcl ããŒãžã§ã³ 8.2 ãå¿
èŠãšãã ports
|
|[.filename]#tcl83*#
|å®è¡ã« Tcl ããŒãžã§ã³ 8.3 ãå¿
èŠãšãã ports
|
|[.filename]#textproc#
|ããã¹ãåŠçãŠãŒãã£ãªãã£
|DTP ããŒã«ã¯ããã§ã¯ãªãã[.filename]#print# ã«åé¡ãããŸãã
|[.filename]#tk42*#
|å®è¡ã« Tk ããŒãžã§ã³ 4.2 ãå¿
èŠãšãã ports
|
|[.filename]#tk80*#
|å®è¡ã« Tk ããŒãžã§ã³ 8.0 ãå¿
èŠãšãã ports
|
|[.filename]#tk81*#
|å®è¡ã« Tk ããŒãžã§ã³ 8.1 ãå¿
èŠãšãã ports
|
|[.filename]#tk82*#
|å®è¡ã« Tk ããŒãžã§ã³ 8.2 ãå¿
èŠãšãã ports
|
|[.filename]#tk83*#
|å®è¡ã« Tk ããŒãžã§ã³ 8.3 ãå¿
èŠãšãã ports
|
|[.filename]#tkstep80*#
|å®è¡ã« TkSTEP ããŒãžã§ã³ 8.0 ãå¿
èŠãšãã ports
|
|[.filename]#ukrainian#
|ãŠã¯ã©ã€ãèªãµããŒã
|
|[.filename]#vietnamese#
|ãããã èªãµããŒã
|
|[.filename]#windowmaker*#
|WindowMaker ãŠã£ã³ããŠãããŒãžã£ããµããŒããã ports
|
|[.filename]#www#
|World Wide Web é¢é£ã®ãœãããŠã§ã¢
|HTML èšèªãµããŒããããã«åé¡ãããŸãã
|[.filename]#x11#
|X ãŠã£ã³ããŠã·ã¹ãã ãšãã®é¢é£ãœãããŠã§ã¢
|ãã®ã«ããŽãªã¯ã çŽæ¥ãŠã£ã³ããŠã·ã¹ãã ããµããŒããããœãããŠã§ã¢ã®ã¿ã察象ãšãããã®ã§ãã éåžžã® X ã¢ããªã±ãŒã·ã§ã³ãããã«åé¡ããªãã§ãã ããã ã»ãšãã©ã¯ä»ã® [.filename]#x11-*# ã«ããŽãª (äžèšåç
§) ã«åé¡ãããã¹ãã§ãã ããªãã® port ã X ã¢ããªã±ãŒã·ã§ã³ã§ã `USE_XLIB` ãå®çŸ©ã (`USE_IMAKE` ãå®çŸ©ãããšèªåçã«å®çŸ©ãããŸã)ã é©åãªã«ããŽãªã«åé¡ããŠãã ããã
|[.filename]#x11-clocks#
|X11 çšæèš
|
|[.filename]#x11-fm#
|X11 çšãã¡ã€ã«ãããŒãžã£
|
|[.filename]#x11-fonts#
|X11 ãã©ã³ããšãã©ã³ããŠãŒãã£ãªãã£
|
|[.filename]#x11-servers#
|X11 ãµãŒã
|
|[.filename]#x11-toolkits#
|X11 ããŒã«ããã
|
|[.filename]#x11-wm#
|X11 ãŠã£ã³ããŠãããŒãžã£
|
|[.filename]#zope*#
|http://www.zope.org/[Zope] ãµããŒã
|
|===
=== é©åãªã«ããŽãªã®éžæ
å€ãã®ã«ããŽãªã«éãªãã®ã§ã ã©ãã"第äž"ã«ããŽãªã«ããããæ±ºããªããã°ãªããªãããšããã³ãã³ããã§ãããã ãããããŸã決ããã«ãŒã«ãããã€ããããŸãã 以äžã¯ãã®åªå
é ã®ãªã¹ãã§ãåªå
床ã®é«ããã®ããäœããã®ã®é ã«æžããŠãããŸãã
* èšèªç¹æã®ã«ããŽãªããŸãæåã§ãã ããšãã°æ¥æ¬èªã® X11 ã®ãã©ã³ããã€ã³ã¹ããŒã«ãã port ã®å Žåã `CATEGORIES` è¡ã¯ [.filename]#japanese x11-fonts# ãšãªãã§ãããã
* ããç¹åŸŽçãªã«ããŽãªãã äžè¬çãªã«ããŽãªããåªå
ãããŸãã ããšãã°ãHTML ãšãã£ã¿ã®å Žå㯠[.filename]#www editors# ãšãªããŸãã ãããéé ã«ã¯ããªãã§ãã ããã ãŸãã port ã [.filename]#irc#, [.filename]#mail#, [.filename]#mbone#, [.filename]#news#, [.filename]#security#, [.filename]#www# ã®ããããã«å±ããå Žåã«ã¯ [.filename]#net# ã¯æé»ã®ãã¡ã«å«ãŸããŸãã®ã§ãå
¥ããã¹ãã§ã¯ãããŸããã
* [.filename]#x11# ã第äºã«ããŽãªã«ããã®ã¯ç¬¬äžã«ããŽãªãèªç¶èšèªã®å Žåã®ã¿ã«ããŠãã ããã ç¹ã« X ã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ [.filename]#x11# ãæå®ããªãã§ãã ããã
* Emacs ã®ã¢ãŒãã¯ã ãã®ã¢ãŒãã§å¯Ÿå¿ããŠããã¢ããªã±ãŒã·ã§ã³ãšåã ports ã«ããŽãªã«çœ®ãããã«ããŠã [.filename]#editors# ã«ã¯çœ®ããªãã§ãã ããã äŸãã°ãããããã°ã©ãã³ã°èšèªã®ãœãŒã¹ãã¡ã€ã«ãç·šéããããã® Emacs ã¢ãŒãã¯ã [.filename]#lang# ã«çœ®ãã¹ãã§ãã
* ãããããªãã® port ãä»ã®ã©ã®ã«ããŽãªã«ãå±ããªãå Žåã«ã¯ [.filename]#misc# ã«ããŠãã ããã
ãããããªããã«ããŽãªã«ã€ããŠèªä¿¡ãæãŠãªãå Žåã«ã¯ã ãã®ããšã man:send-pr[1] ããæã«æžãå ããŠãã ããã ããããã°ã€ã³ããŒãããåã«ããã«ã€ããŠè°è«ã§ããŸã (ããããªããã³ããã¿ãŒã§ããã°ã ãã®ããšã {freebsd-ports} ã«éã£ãŠå
ã«è°è«ããããã«ããŠãã ããã æ°ãã port ãééã£ãã«ããŽãªã« import ãããŠã ããç§»åãããããšãããŸãã«å€ãã®ã§ãããããªããšã ãœãŒã¹ãªããžããªã®ãã¹ã¿ãŒãäžèŠã§å¥œãŸãããªãèšãæ¹ãããŠããŸããŸãã
[[makefile-distfiles]]
== é
åžãã¡ã€ã«
[.filename]#Makefile# ã®ç¬¬äºã®éšåã§ã¯ã ãã® port ããã«ãããããã«ããŠã³ããŒãããªããã°ãªããªããã¡ã€ã«ãšã ãããã©ãããããŠã³ããŒãã§ããã説æããŠããŸãã
=== `DISTNAME`
`DISTNAME` ã¯è£œäœè
ãæ±ºãããœãããŠã§ã¢ã®ååã§ãã ããã©ã«ãã§ã¯ `DISTNAME` 㯠`${PORTNAME}-${PORTVERSION}` ã«ãªããŸãã®ã§ã å¿
èŠã«ãªå Žåã ãæžãæããããã«ããŠãã ããã `DISTNAME` ã¯äºã€ã®å Žæã§ãã䜿ãããŸããã äžã€ç®ã¯é
åžãã¡ã€ã«ãªã¹ã (`DISTFILES`) ã®ããã©ã«ã `${DISTNAME} ${EXTRACT_SUFX}` ã§ãäºã€ç®ã¯é
åžãã¡ã€ã«ãå±éããããµããã£ã¬ã¯ã㪠`WRKSRC` ã®ããã©ã«ã [.filename]#work/${DISTNAME}# ã§ãã
[NOTE]
====
`PKGNAMEPREFIX` ã `PKGNAMESUFFIX` 㯠`DISTNAME` ã«åœ±é¿ãäžããŸããã ãŸããå
ã®ãœãŒã¹ã¢ãŒã«ã€ãã `${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}` ãšãã ååã§ã¯ãªãã®ã«ã`WRKSRC` ã [.filename]#work/${PORTNAME}-${PORTVERSION}# ãšèšå®ããŠãããªãããããã `DISTNAME` ã¯ãã®ãŸãŸã«ããŠããå¿
èŠãããããšã«æ³šæããŠãã ãã - `DISTNAME` ãš `WRKSRC` ã®äž¡æ¹ã (ãã㊠ãããã `EXTRACT_SUFX` ã) ã»ããããããã¯ã`DISTFILES` ãå®çŸ©ããæ¹ãæ¥œã§ãããã
====
=== `MASTER_SITES`
å
ã«ãªãé
åžãã¡ã€ã«ãæã瀺ããFTP/HTTP ã® URL ã®ãã¡ã€ã«åãé€ããéšåã `MASTER_SITES` ã«èšå®ããŸãã æåŸã«ã¹ã©ãã·ã¥ ([.filename]#/#) ãã€ããããšããå¿ããªã!
ãã®ã·ã¹ãã äžã«é
åžãã¡ã€ã«ãèŠã€ãããªãã£ãå Žåã `make` ãã¯ã㯠`FETCH` ã䜿ã£ãŠãã®å€æ°ã«æå®ããããµã€ãããé
åžãã¡ã€ã«ãååŸããããšããŸãã
ãã®ãªã¹ãã«ã¯ã ã§ããã°ç°ãªã倧éžã«ååšããè€æ°ã®ãµã€ããå
¥ããŠããããšãæšå¥šãããŠããŸãã ããã«ãããåºåãããã¯ãŒã¯ã®ãã©ãã«ã«å¯Ÿããèæ§ãé«ããããšãã§ããŸãã ããã«ç§ãã¡ã¯ãèªåçã«æãè¿ããã¹ã¿ãµã€ãã倿ããŠã ããããåã£ãŠããã¡ã«ããºã ã®å°å
¥ãèšç»ããŠããŸãã è€æ°ã®ãµã€ããããã°ããã®åçµã倧ããå©ããããšã«ãªããŸãã
å
ã«ãªã tar ãã¡ã€ã«ã X-contrib ã GNU, Perl CPAN çã®æåãªã¢ãŒã«ã€ããµã€ãã«çœ®ãããŠããå Žåã«ã¯ã `MASTER_SITE_*` ã䜿ã£ãŠãããã®ãµã€ããç°¡æœã« (äŸãã° `MASTER_SITE_XCONTRIB` ãšãã `MASTER_SITE_PERL_CPAN` ã®ããã«) æå®ããããšãã§ããŸãã `MASTER_SITES` ã ãããã®å€æ°ã®äžã€ã«ã»ãããã ãµã€ãå
ã§ã®ãã¹ã `MASTER_SITE_SUBDIR` ã«æå®ããã ãã§ãã 以äžã«äŸã瀺ããŸãã
[.programlisting]
....
MASTER_SITES= ${MASTER_SITE_XCONTRIB}
MASTER_SITE_SUBDIR= applications
....
ãããã®å€æ°ã¯ [.filename]#/usr/ports/Mk/bsd.sites.mk# ã§å®çŸ©ãããŠããŸãã ãã€ã§ãæ°ããé
ç®ã远å ãããŠè¡ããŸãã®ã§ã port ãæåºããåã« ãã®ãã¡ã€ã«ã®ææ°çã ãã§ãã¯ããããã«å¿æããŠãã ããã
ãŠãŒã¶ã¯ [.filename]#/etc/make.conf# äžã§ `MASTER_SITE_*` 倿°ãäžæžãããããšãã§ããŸãã ããããããšã§ããããã®æåãªã¢ãŒã«ã€ããã®ãã®ã§ã¯ãªãã 奜ã¿ã®ãã©ãŒãµã€ãã䜿çšããããšãã§ããŸãã
=== `EXTRACT_SUFX`
é
åžãã¡ã€ã«ã 1 ã€ã§ã å§çž®æ¹åŒã瀺ãã®ã«æ®éãšç°ãªãæ¥å°ŸèŸã䜿ã£ãŠãããã `EXTRACT_SUFX` ãèšå®ããŠãã ããã
äŸãã°ãé
åžãã¡ã€ã«ãããäžè¬ç㪠[.filename]#foo.tar.gz# ã§ã¯ãªãã [.filename]#foo.tgz# ãšãªã£ãŠãããã æ¬¡ã®ããã«æžããŸãã
[.programlisting]
....
DISTNAME= foo
EXTRACT_SUFX= .tgz
....
`USE_BZIP2` ãš `USE_ZIP` 倿°ãèšå®ãããšã`EXTRACT_SUFX` ã¯å¿
èŠã«å¿ããŠèªåçã« `.bz2` ãŸã㯠`.zip` ã«èšå®ãããŸãã ã©ã¡ããèšå®ãããŠããªããã°ã`EXTRACT_SUFX` 㯠`.tar.gz` ã«èšå®ãããŸãã
[NOTE]
====
`EXTRACT_SUFX` ãš `DISTFILES` ãäž¡æ¹èšå®ããå¿
èŠã¯ãããŸããã
====
=== `DISTFILES`
æã
ãããŠã³ããŒããããã¡ã€ã«ã®åç§°ã port ã®åç§°ãšãŸã£ãã䌌ãŠããªãããšããããŸããããšãã°ã [.filename]#source.tar.gz# ãªã©ãšåã¥ããããŠããããšãããã§ãããã ã»ãã«ããœãŒã¹ã³ãŒããããã€ãã®ã¢ãŒã«ã€ãã«åãããŠããŠã ãã®ãã¹ãŠãããŠã³ããŒãããªããã°ãªããªããªããªãããšããããŸãã
ãã®å Žåã`DISTFILES` ã«ãããŠã³ããŒãããªããã°ãªããªããã¡ã€ã«ãã¹ãŠã®ãªã¹ããã ã¹ããŒã¹ã§åºåã£ãŠèšå®ããŠãã ããã
[.programlisting]
....
DISTFILES= source1.tar.gz source2.tar.gz
....
æç€ºçã«èšå®ãããŠããªãå Žåã `DISTFILES` 㯠`${DISTNAME}${EXTRACT_SUFX}` ã«èšå®ãããŸãã
=== `EXTRACT_ONLY`
`DISTFILES` ã®äžéšã ããå±éãã¹ã (äŸãã°ãäžæ¹ããœãŒã¹ã³ãŒãã§ãããäžæ¹ã¯å§çž®ãããŠããªãææžãšãã) å Žåãå±éããªããã°ãªããªããã¡ã€ã«åã `EXTRACT_ONLY` ã«èšå®ããŠãã ããã
[.programlisting]
....
DISTFILES= source.tar.gz manual.html
EXTRACT_ONLY= source.tar.gz
....
__ã©ã®__``DISTFILES`` ãå±éãã¹ãã§ã¯__ãªã__ãªãã `EXTRACT_ONLY` ã«ç©ºæååãèšå®ããŠãã ããã
[.programlisting]
....
EXTRACT_ONLY=
....
[[porting-patchfiles]]
=== `PATCHFILES`
ãã® port ãé
åžãã¡ã€ã«ã®ä»ã« FTP ã HTTP ã§æã«å
¥ã远å ããããå¿
èŠãšããå Žåã«ã¯ã `PATCHFILES` ã«ã¯ãã®ãããã®ãã¡ã€ã«åãã `PATCH_SITES` ã«ã¯ãã®ãã¡ã€ã«ã眮ãããŠãããã£ã¬ã¯ããªã® URL ãã»ããããŠãã ããã(æžãæ¹ã¯ `MASTER_SITES` ãšåãã§ãã)
ãã®ãããã«èšé²ãããŠãããã¡ã€ã«åã«äœèšãªãã¹åãã€ããŠããŠã ãœãŒã¹ããªãŒã®ããããã£ã¬ã¯ã㪠(ã€ãŸã `WKRSRC`) ããã®çžå¯Ÿãã¹ã«ãªã£ãŠããªãå Žåã«ã¯ã ããã«å¿ãã `PATCH_DIST_STRIP` ãæå®ããŠãã ããã ããšãã°ããããå
ã®ãã¹ãŠã®ãã¡ã€ã«åã®å
é ã«ãäœèšãª `foozolix-1.0/` ãã€ããŠããå Žåã«ã¯ã `PATCH_DIST_STRIP=-p1` ãšããŠãã ããã
ãããã®ãããã¯å§çž®ãããŠããŠã倧äžå€«ã§ãã ãã¡ã€ã«åã [.filename]#.gz# ã [.filename]#.Z# ã§çµããå Žåã«ã¯ãèªåçã«å±éãããããã«ãªã£ãŠããŸãã
ãããããããããã¥ã¡ã³ãçãã®ä»ã®ãã¡ã€ã«ãšäžç·ã« gzip ããã tar ãã¡ã€ã«ã§é
åžãããŠããå Žåã«ã¯ãåã« `PATCHFILES` ã䜿ãã ãã§ã¯ããŸããããŸããã ãã®ãããªå Žåã«ã¯ããã®ãããã® tar ãã¡ã€ã«ã®ååãšå Žæã `DISTFILES` ãš `MASTER_SITES` ã«è¿œå ããŠãããŸãã ããããã`EXTRA_PATCHES` 倿°ã«ãããã®ããããæå®ããã°ã [.filename]#bsd.port.mk# ã èªåçã«ããããé©çšããŠãããŸãã ç¹ã«æ³šæãå¿
èŠãªã®ã¯ãããããã¡ã€ã«ã `PATCHDIR` ãã£ã¬ã¯ããªã«ã³ããŒ__ããŠã¯ãªããªã__ããšã§ã - (蚳泚: port ã CD-ROM äžã«çœ®ãããŠããçã®å Žåã«ã¯ã) ãã®ãã£ã¬ã¯ããªã«ã¯æžã蟌ã¿ãã§ããªããããããŸããã
[NOTE]
====
ãããæ®éã® gzip ã compress ããã tar ãã¡ã€ã«ã§ããã°ã éåžžã®ãœãŒã¹ãã¡ã€ã«ãšäžç·ã«ãããé©çšæãŸã§ã«å±éãããŠããŸãã®ã§ã æç€ºçã«å±éããå¿
èŠã¯ãããŸããã ãããããã `DISTFILES` ã«è¿œå ããå Žåã«ã¯ãããããå«ããã¡ã€ã«ãå±éãããéã«ã ãã®ãã£ã¬ã¯ããªã«ããäœããäžæžãããªãããã«æ³šæããŠãã ããã ããã«ãã³ããŒãããããããã¡ã€ã«ãåé€ããã³ãã³ãã `pre-clean` ã¿ãŒã²ããã«è¿œå ããããšãå¿ããªãã§ãã ããã
====
[[porting-master-sites-n]]
=== ç°ãªããµã€ãããµããã£ã¬ã¯ããªããã®è€æ°ã®é
åžãã¡ã€ã«ãŸãã¯ããã (`MASTER_SITES:n`)
(ããã¯ãããã"é«åºŠãªè©±é¡"ã§ãã ãã®ææžãåããŠèªã人ã¯ã æåã¯ãã®ç¯ãé£ã°ããŠãããã§ããã)ã
ãã®ç¯ã¯ `MASTER_SITES:n` ã `MASTER_SITES_NN` ãšåŒã°ããååŸæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã ããã§ã¯ããã®æ¹åŒã `MASTER_SITES:n` ãšåŒã³ãŸãã
ãŸããèæ¯ãå°ã説æããŠãããŸããããOpenBSD ã«ã¯ã`DISTFILES` ãš `PATCHFILES` 倿°ã®äž¡æ¹ã«çŽ æµãªæ©èœããããŸãããã¡ã€ã«ããããã®äž¡æ¹ãšãã åŸãã« `:n` (`n` 㯠`[0-9]` ã®ã©ããã«ãªããŸã) ãã€ããŠã°ã«ãŒããæç€ºã§ããŸããããšãã°ã
[.programlisting]
....
DISTFILES= alpha:0 beta:1
....
OpenBSD ã§ã¯ãé
åžãã¡ã€ã« [.filename]#alpha# ã¯ãéåžžã® `MASTER_SITES` ã§ã¯ãªã `MASTER_SITES0` ã«ã [.filename]#beta# 㯠`MASTER_SITES1` ã«çµã³ä»ããããŸãã
ããã¯ãæ£ããããŠã³ããŒããµã€ããééãªãæ¢ã矜ç®ã«ãªãã®ãæžãããã è峿·±ãæ©èœã§ãã
`DISTFILES` ã«ãã¡ã€ã«ã 2 ã€æå®ããã`MASTER_SITES` ã 20 ãµã€ããã£ãŠããµã€ãã¯ãã®ãããé
ãã [.filename]#beta# 㯠`MASTER_SITES` äžã®ãã¹ãŠã®ãµã€ãã«çœ®ãããŠããŸããã [.filename]#alpha# 㯠20 çªç®ã®ãµã€ãã«ãããªããšããå ŽåãèããŠãã ããã ã¡ã³ãããããããããã®ããšãç¥ã£ãŠãããã ãã¹ãŠã®ãµã€ãã確èªããã®ã¯ç¡é§ã ãšæããŸããã? 楜ãã鱿«ã®ã¯ããŸããšããããã«ã¯ãããŸãããã
ã€ã¡ãŒãžã§ããããä»åºŠã¯ `DISTFILES` ã `MASTER_SITES` ããã£ã𿲢山ããã®ãæ³åããŠãã ããã "distfiles 調æ»ãã€ã¹ã¿"ã¯ã ãããã¯ãŒã¯è² è·ãç·©åãããããšãåã¶ã«éããããŸããã
次ç¯ããã¯ãFreeBSD ã«ããããã®ã¢ã€ãã£ã¢ã®å®è£
ã«ã€ããŠèª¬æããŸãã OpenBSD ã®èãæ¹ãå€å°æ¹è¯ããŠããŸãã
=== ç°¡åãªèª¬æ
ãã®ç¯ã§ã¯ãè€æ°ã®é
åžãã¡ã€ã«ãããããã ç°ãªããµã€ãããµããã£ã¬ã¯ããªãã现ããåããŠååŸããç°¡åãªèšå®ã瀺ããŸãã ããã§ã¯ãåçŽåãã `MASTER_SITES:n` ã®äœ¿ãæ¹ã説æããŸããã»ãšãã©ã®å Žé¢ã§ã¯ããã§ååã§ãã ããã«è©³ããããšãç¥ããããã°ã次ã®ç¯ããèªã¿ãã ããã
ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠã¯ã ããã€ãã®ç°ãªããµã€ãããããŠã³ããŒãããè€æ°ã®é
åžãã¡ã€ã«ãããªã£ãŠãããã®ããããŸãã ããšãã°ãGhostscript ã¯ãäžæ žéšã®ããã°ã©ã ãšã ãŠãŒã¶ã®ããªã³ã¿ã«å¿ããŠäœ¿ãåãããã倿°ã®ãã©ã€ããã¡ã€ã«ãããªã£ãŠããŸãã ãã®ãã©ã€ããã¡ã€ã«ã®äžéšã¯äžæ žéšãšå
±ã«é
åžãããŸããã å€ãã¯ããŸããŸãªãµã€ãããããŠã³ããŒãããªããã°ãªããŸããã
ããã«å¯Ÿå¿ããããã`DISTFILES` ã®åé
ç®ã®åŸãã«ã¯ãã³ãã³ãš"ã¿ã°å" ãã€ããããããã«ãªã£ãŠããŸãã`MASTER_SITES` ã«èšå®ãããŠããããããã®ãµã€ãã®æ«å°Ÿã«ããã³ãã³ãšã ãã®ãµã€ãããããŠã³ããŒããã¹ããã¡ã€ã«ã瀺ãããã®ã¿ã°ãå ããŸãã
ããšãã°ããœãŒã¹ã³ãŒãã [.filename]#source1.tar.gz# ãš [.filename]#source2.tar.gz# ã® 2 ã€ã«åããããŠããŠã 2 ã€ã®å¥ã®ãµã€ãããããŠã³ããŒãããªããã°ãªããªãã¢ããªã±ãŒã·ã§ã³ãèããŠã¿ãŸãããã ãã® port ã® [.filename]#Makefile# ã«ã¯ã<<ports-master-sites-n-example-simple-use-one-file-per-site>> ã®ãããªè¡ããããšããŸãã
[[ports-master-sites-n-example-simple-use-one-file-per-site]]
.åãµã€ãã« 1 ã€ãã¡ã€ã«ãããå Žåã®ãç°¡å㪠`MASTER_SITES:n` ã®äœ¿çšæ³
[example]
====
[.programlisting]
....
MASTER_SITES= ftp://ftp.example1.com/:source1 \
ftp://ftp.example2.com/:source2
DISTFILES= source1.tar.gz:source1 \
source2.tar.gz:source2
....
====
è€æ°ã®é
åžãã¡ã€ã«ã«åãã¿ã°ãã€ããŠããŠãããŸããŸããã å
ã»ã©ã®äŸã«ç¶ããŠã3 çªç®ã®é
åžãã¡ã€ã« [.filename]#source3.tar.gz# ããã£ãŠã `ftp.example2.com` ããããŠã³ããŒããã¹ãã ãšããŸãããã [.filename]#Makefile# 㯠<<ports-master-sites-n-example-simple-use-more-than-one-file-per-site>> ã®ããã«ãªããŸãã
[[ports-master-sites-n-example-simple-use-more-than-one-file-per-site]]
.åãµã€ãã« 1 ã€ä»¥äžãã¡ã€ã«ãããå Žåã®ãç°¡å㪠`MASTER_SITES:n` ã®äœ¿çšæ³
[example]
====
[.programlisting]
....
MASTER_SITES= ftp://ftp.example1.com/:source1 \
ftp://ftp.example2.com/:source2
DISTFILES= source1.tar.gz:source1 \
source2.tar.gz:source2 \
source3.tar.gz:source2
....
====
=== 詳ãã説æ
åãããŸããã åç¯ã®äŸã§ã¯ããªãã®èŠæ±ãæºè¶³ã§ããªãã£ãããã§ããã ãã®ç¯ã§ã¯ããã¡ã€ã«ã®ååŸã现ããå¶åŸ¡ããä»çµã¿ `MASTER_SITES:n` ãã©ãåãããšããããå©çšããããã« ports ãã©ã倿Žããã°ãããã詳ãã説æããŸãã
. èŠçŽ ã®æ«å°Ÿã« `:n` ãã€ããããšãã§ããŸãã ããã§ã_n_ 㯠`[^:,]+` ã€ãŸããæŠå¿µäžã¯ãããªãæåãšæ°åãããªãæååã§ãããã®ã§ããã ãããããšããŠã¯ãåœé¢ã¯ `[a-zA-Z_][0-9a-zA-Z_]+` ã«å¶éããŸãã
+
ããã«ãæååã®ãããã¯å€§æåãšå°æåãåºå¥ããŸãã ã€ãŸãã`n` ãš `N` ã¯å¥ã®æåãšããŠæ±ãããŸãã
+
ãããã `default`, `all`, `ALL` ã¯ç¹å¥ãªæå³ãäžããããŠããã®ã§ã æ«å°Ÿã«ä»å ããã®ã«ã¯äœ¿ããŸãã (ããã¯ã<<porting-master-sites-n-what-changes-in-port-targets, ii>> é
ã§å
éšçã«å©çšãããŠããŸã)ã ããã«ã`DEFAULT` ã¯ç¹å¥ãªæå³ãæã€åèªã§ã (<<porting-master-sites-n-DEFAULT-group,3>> ã®é
ã確èªããŠãã ãã)ã
. `:n` ãã€ããèŠçŽ ã¯ãã°ã«ãŒã `n` ã«å±ãã `:m` ãã€ããèŠçŽ ã¯ãã°ã«ãŒã `m` ã«å±ãããšããããšã«ãªããŸãã
+
[[porting-master-sites-n-DEFAULT-group]]
. æ¥å°ŸèŸãã€ããŠããªãèŠçŽ ã¯ã°ã«ãŒãã«å±ããŸããã ããã¯ãç¹å¥ãªã°ã«ãŒã `DEFAULT` ã«å±ããŠãããšããŠæ±ãããŸãã èŠçŽ ã®åŸãã« `DEFAULT` ãã€ããã®ã¯ããã®èŠçŽ ã `DEFAULT` ãšãã以å€ã®ã°ã«ãŒãã«åæã«å²ãåœãŠããã®ã§ãªããã°ã åé·ã«éããŸãã (<<porting-master-sites-n-comma-operator,5>> ã®é
ã確èªããŠãã ãã)ã
+
次ã®äŸã¯ã©ã¡ããåãæå³ã§ããã æåã®æ¹ã奜ãŸããã§ãã
+
[.programlisting]
....
MASTER_SITES= alpha
MASTER_SITES= alpha:DEFAULT
....
+
. ã°ã«ãŒãã¯çžäºæä»ã§ã¯ãããŸããã ã²ãšã€ã®èŠçŽ ãåæã«è€æ°ã®ã°ã«ãŒãã«å±ããããšãã§ãã ã²ãšã€ã®ã°ã«ãŒãã«ã¯è€æ°ã®èŠçŽ ãå±ããããšãã äœãå²ãåœãŠãªãããšãã§ããŸãã åãã°ã«ãŒãã§äœåãæå®ãããèŠçŽ ã¯ã åã«è€æ°åæå®ãããèŠçŽ ãšããããšã«ãªããŸãã
+
[[porting-master-sites-n-comma-operator]]
. ããèŠçŽ ãåæã«ããã€ãã®ã°ã«ãŒãã«æå±ããããæã¯ã ã«ã³ãæŒç®å (`,`) ã䜿ããŸãã
+
ãã®éœåºŠå¥ã®æ¥å°ŸèŸãã€ããŠç¹°ãè¿ããããã«ã äžåºŠã ãæ¥å°ŸèŸãæå®ããŠè€æ°ã®ã°ã«ãŒããæå®ã§ããŸãã ããšãã°ã`:m,n,o` ãšæžããšããã®èŠçŽ ã¯ã°ã«ãŒã `m`, `n` ããã³ `o` ã«å±ããããšã瀺ããŸãã
+
以äžã®äŸã¯ãã¹ãŠåçã§ããã æåŸã®åœ¢åŒããã£ãšãããã§ãããã
+
[.programlisting]
....
MASTER_SITES= alpha alpha:SOME_SITE
MASTER_SITES= alpha:DEFAULT alpha:SOME_SITE
MASTER_SITES= alpha:SOME_SITE,DEFAULT
MASTER_SITES= alpha:DEFAULT,SOME_SITE
....
. ä»»æã®ã°ã«ãŒãå
ã®ãµã€ãã¯ã `MASTER_SORT_AWK` ã«ãã£ãŠæŽåãããŸãã `MASTER_SITES` ãš `PATCH_SITES` å
ã®ãã¹ãŠã®ã°ã«ãŒãã«ã€ããŠãåæ§ã«æŽåãããŸãã
[[porting-master-sites-n-group-semantics]]
. ã°ã«ãŒãã®æŠå¿µã¯ã倿° `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES` ããã³ `PATCHFILES` ã«ãããŠããäžèšã®ææ³ã«åŸã£ãŠäœ¿ããŸãã
.. `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR` ããã³ `PATCH_SITE_SUBDIR` ã®ãã¹ãŠã®èŠçŽ ã¯ã¹ã©ãã·ã¥ `/` èšå·ã§çµç«¯ãããŠããªããã°ãªããŸããã ããèŠçŽ ãã©ããã®ã°ã«ãŒãã«å±ããŠãããªãã ã°ã«ãŒãã®æ¥å°ŸèŸ `:n` ã¯ãçµç«¯èšå· `/` ã®ããåŸã«ããªããã°ãªããŸããã `MASTER_SITES:n` ã®ä»çµã¿ã§ã¯ãçµç«¯èšå· `/` ãããããšã§ã `:n` ãèŠçŽ ã®æå¹ãªäžéšã§ããå Žåãšã `:n` ãã°ã«ãŒã `n` ã瀺ãå Žåã®æ··åãé¿ããããšãã§ããŸãã 以åã¯ã `MASTER_SITE_SUBDIR` ãš `PATCH_SITE_SUBDIR` èŠçŽ ã®ãããã«ãããŠãçµç«¯èšå· `/` ã¯äžèŠã ã£ãã®ã§ãäºææ§ãä¿ã€ããã«ã æ¥å°ŸèŸã®çŽåã®æåã `/` ã§ãªããã°ã èŠçŽ ã®æ¥å°ŸèŸã `:n` ã§ãã£ãŠãã ã°ã«ãŒãã®æ¥å°Ÿèªã§ã¯ãªãã èŠçŽ ã®æå¹ãªäžéšåãšããŠæ±ãããŸãã <<ports-master-sites-n-example-detailed-use-master-site-subdir>> ãš <<ports-master-sites-n-example-detailed-use-complete-example-master-sites>> ã®äž¡æ¹ãã芧ãã ããã
+
[[ports-master-sites-n-example-detailed-use-master-site-subdir]]
.`MASTER_SITE_SUBDIR` ã«ããã `MASTER_SITES:n` ã®è©³çްãªäœ¿çšæ³
[example]
====
[.programlisting]
....
MASTER_SITE_SUBDIR= old:n new/:NEW
....
*** ã°ã«ãŒã `DEFAULT` ã«å±ãããã£ã¬ã¯ã㪠-> old:n
*** ã°ã«ãŒã `NEW` ã«å±ãããã£ã¬ã¯ã㪠-> new
====
+
[[ports-master-sites-n-example-detailed-use-complete-example-master-sites]]
.ã«ã³ãæŒç®åãè€æ°ã®ãã¡ã€ã«ãè€æ°ã®ãµã€ãã è€æ°ã®ãµããã£ã¬ã¯ããªãšåããã `MASTER_SITES:n` ã®è©³çްãªäœ¿çšæ³
[example]
====
[.programlisting]
....
MASTER_SITES= http://site1/%SUBDIR%/ http://site2/:DEFAULT \
http://site3/:group3 http://site4/:group4 \
http://site5/:group5 http://site6/:group6 \
http://site7/:DEFAULT,group6 \
http://site8/%SUBDIR%/:group6,group7 \
http://site9/:group8
DISTFILES= file1 file2:DEFAULT file3:group3 \
file4:group4,group5,group6 file5:grouping \
file6:group7
MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \
directory-one/:group6,DEFAULT \
directory
....
äžã®äŸã¯ã次ã®ãããªçްããåããååŸãå®çŸããŸãã ãµã€ãã¯ãå©çšãããé çªã§æããããŠããŸãã
*** [.filename]#file1# ã¯æ¬¡ã®ãµã€ãããååŸãããŸãã
**** `MASTER_SITE_OVERRIDE`
**** http://site1/directory/
**** http://site1/directory-one/
**** http://site1/directory-trial:1/
**** http://site2/
**** http://site7/
**** `MASTER_SITE_BACKUP`
*** [.filename]#file2# ã¯ã[.filename]#file1# ãšåãã°ã«ãŒãã«å±ããŠããã®ã§ã ãŸã£ããåãããã«ååŸãããŸãã
**** `MASTER_SITE_OVERRIDE`
**** http://site1/directory/
**** http://site1/directory-one/
**** http://site1/directory-trial:1/
**** http://site2/
**** http://site7/
**** `MASTER_SITE_BACKUP`
*** [.filename]#file3# ã¯æ¬¡ã®ãµã€ãããååŸãããŸãã
**** `MASTER_SITE_OVERRIDE`
**** http://site3/
**** `MASTER_SITE_BACKUP`
*** [.filename]#file4# ã¯æ¬¡ã®ãµã€ãããååŸãããŸãã
**** `MASTER_SITE_OVERRIDE`
**** http://site4/
**** http://site5/
**** http://site6/
**** http://site7/
**** http://site8/directory-one/
**** `MASTER_SITE_BACKUP`
*** [.filename]#file5# ã¯æ¬¡ã®ãµã€ãããååŸãããŸãã
**** `MASTER_SITE_OVERRIDE`
**** `MASTER_SITE_BACKUP`
*** [.filename]#file6# ã¯æ¬¡ã®ãµã€ãããååŸãããŸãã
**** `MASTER_SITE_OVERRIDE`
**** http://site8/directory-one/
**** `MASTER_SITE_BACKUP`
====
. `MASTER_SITE_SOURCEFORGE` ã®ããã«ã[.filename]#bsd.sites.mk# ã§å®çŸ©ãããç¹å¥ãªå€æ°ãã°ã«ãŒãã«å²ãåœãŠãã«ã¯ã©ãããã°ããã§ãã?
+
<<ports-master-sites-n-example-detailed-use-master-site-sourceforge>> ãã芧ãã ããã
+
[[ports-master-sites-n-example-detailed-use-master-site-sourceforge]]
.`MASTER_SITE_SOURCEFORGE` ãšåããã `MASTER_SITES:n` ã®è©³ããäœ¿çšæ³
[example]
====
[.programlisting]
....
MASTER_SITES= http://site1/ ${MASTER_SITE_SOURCEFORGE:S/$/:sourceforge,TEST/}
DISTFILES= something.tar.gz:sourceforge
....
====
+
[.filename]#something.tar.gz# ã¯ã`MASTER_SITE_SOURCEFORGE` ã«å«ãŸãããããããµã€ãããååŸãããŸãã
. ããã `PATCH*` 倿°ãšçµã¿åãããŠäœ¿ãã«ã¯ã©ãããã°ããã§ãããã?
+
ãã¹ãŠã®äŸã§ `MASTER*` 倿°ã䜿ã£ãŠããŸããã<<ports-master-sites-n-example-detailed-use-patch-sites>> ã«ããããã«ã`PATCH*` 倿°ã«å¯ŸããŠããŸã£ããåãããã«åããŸãã
+
[[ports-master-sites-n-example-detailed-use-patch-sites]]
.`PATCH_SITES` ãšåããã `MASTER_SITES:n` ã®ç°¡åãªäœ¿çšæ³
[example]
====
[.programlisting]
....
PATCH_SITES= http://site1/ http://site2/:test
PATCHFILES= patch1:test
....
====
=== ports ã«ã€ããŠäœã倿Žãããäœãå€ãããªãã®ã§ãããã?
[lowerroman]
. çŸåšã®ãã¹ãŠã® ports ã¯ãã®ãŸãŸå€ãããŸããã `MASTER_SITES:n` æ©èœã®ã³ãŒãã¯ã<<porting-master-sites-n-group-semantics,7>> ã§è¿°ã¹ãææ³ã«åŸã `:n` ã®ãããªåœ¢åŒãåŸãã«ã€ããèŠçŽ ãããå Žåã ãåäœããŸãã
[[porting-master-sites-n-what-changes-in-port-targets]]
. port ã make ããéã®ã¿ãŒã²ããã«ã倿Žã¯ãããŸããã `checksum`, `makesum`, `patch`, `configure`, `build` çã§ãã ãã¡ããã`do-fetch`, `fetch-list`, `master-sites` ãããã `patch-sites` ã¯äŸå€ã§ãã
** `do-fetch` ã¯ãæ°ããã°ã«ãŒãåãã®æ¥å°ŸèŸã®ã€ãã `DISTFILES` ãš `PATCHFILES` ãèšå®ããŸãããããããã察å¿ãã `MASTER_SITES` ãš `PATCH_SITES` ãå©çšããããã«å¯Ÿå¿ãã `MASTER_SITE_SUBDIR` ãš `PATCH_SITE_SUBDIR` ãå©çšããŸãã<<ports-master-sites-n-example-detailed-use-complete-example-master-sites>> ãã芧ãã ããã
** `fetch-list` ã¯ã`do-fetch` ãšåãããã«ã°ã«ãŒããå©çšãããšããããšãé€ããŠã以åã® `fetch-list` ã®ããã«åäœããŸãã
** `master-sites` ããã³ `patch-sites` ã¯ã (å€ãããŒãžã§ã³ãšäºææ§ããªããªã) `DEFAULT` ã°ã«ãŒãã®èŠçŽ ãè¿ãã ãã«ãªã£ãŠããŸãã å®éã¯ããããã `master-sites-default` ããã³ `patch-sites-default` ãšããã¿ãŒã²ãããå®è¡ããŸãã
+
ããã«ã `MASTER_SITES` ã `PATCH_SITES` ãçŽæ¥ç¢ºèªãããããã `master-sites-all` ãŸã㯠`patch-sites-all` ã®ã©ã¡ããã®ã¿ãŒã²ãããäœ¿ãæ¹ãããã§ãã ãŸããå°æ¥ã®ããŒãžã§ã³ã§ãçŽæ¥ç¢ºèªãã§ãããã©ããã¯ä¿èšŒãããŠããŸããã ãããæ°èŠ port ã¿ãŒã²ããã«ã€ããŠã¯ã<<porting-master-sites-n-new-port-targets-master-sites-all,B>> ã®é
ãã確èªãã ããã
. æ°èŠã® port ã¿ãŒã²ãã
.. `MASTER_SITES` ããã³ `PATCH_SITES` ã®ããããã«ã€ããŠã ã°ã«ãŒã _n_ ã®èŠçŽ ã衚瀺ãã `master-sites-_n_` ããã³ `patch-sites-_n_` ã¿ãŒã²ããããããŸããããšãã°ã `master-sites-DEFAULT` ããã³ `patch-sites-DEFAULT` ã®ãããã `DEFAULT` ã°ã«ãŒãã®èŠçŽ ãè¿ãã `master-sites-test` ããã³ `patch-sites-test` 㯠`test` ã°ã«ãŒãã®èŠçŽ ãè¿ããŸãã
[[porting-master-sites-n-new-port-targets-master-sites-all]]
.. 以åã® `master-sites` ããã³ `patch-sites` ãè¡ã£ãŠããäœæ¥ãè¡ã `master-sites-all` ããã³ `patch-sites-all` ãšããæ°ããªã¿ãŒã²ããããããŸãã ãããã®ã¿ãŒã²ããã¯ã ãã¹ãŠã®ã°ã«ãŒãã®èŠçŽ ããã¹ãŠãåãã°ã«ãŒãã«å±ããŠãããã®ããã«è¿ããŸãã ãã ãã `master-sites-all` ããã³ `patch-sites-all` ã®ããããã«ã€ããŠã `DISTFILES` ã `PATCHFILES` ã§å®çŸ©ãããŠããã°ã«ãŒããšåãæ°ã ã `MASTER_SITE_BACKUP` ãš `MASTER_SITE_OVERRIDE` ã衚瀺ããŸãã
=== `DIST_SUBDIR`
[.filename]#/usr/ports/distfiles# ãã£ã¬ã¯ããªå
ãããŸãæ£ããããªãããã«ããŠãã ããã ããããã®ãã¡ã€ã«ãåã£ãŠãã port ããä»ã® port ãšååã®è¡çªãèµ·ããæãã®ãããã¡ã€ã« ([.filename]#Makefile# ãªã©) ãããå Žåã«ã¯ã `DIST_SUBDIR` ã« port ã®åå (`${PORTNAME}` ã `${PKGNAMEPREFIX}${PORTNAME}` ã䜿ããšããã§ããã) ãå
¥ããŠãã ããããããš `DISTDIR` ãããã©ã«ãã® [.filename]#/usr/ports/distfiles# ãã [.filename]#/usr/ports/distfiles/DIST_SUBDIR# ã«å€æŽããã åã£ãŠãããã¡ã€ã«ã¯ãã¹ãŠãã®ãµããã£ã¬ã¯ããªã®äžã«çœ®ãããããã«ãªããŸãã
ãŸãã ãã¡ã€ã«ãåã£ãŠãããšãã«ããã¯ã¢ãããµã€ããšããŠäœ¿ããã [.filename]#ftp.FreeBSD.org# ã®ãã£ã¬ã¯ããªåã«ããã®å€æ°ã®å€ã䜿ãããŸã (`Makefile` ã®äžã§ `DISTDIR` ãæç€ºçã«æå®ããå Žåã ããŒã«ã«ã®ãã¡ã€ã«ã眮ããšããã¯å€ãããŸããã ãã®ãµã€ãã®ãã£ã¬ã¯ããªåã¯å€ãããŸããã å¿
ã `DIST_SUBDIR` ã䜿ãããã«ããŠãã ãã)ã
[NOTE]
====
ãã®å€æ°ã¯ [.filename]#Makefile# äžã§æç€ºçã«æå®ããã `MASTER_SITES` ã«ã¯åœ±é¿ããŸããã
====
[[makefile-maintainer]]
== `MAINTAINER`
ããªãã®ã¡ãŒã«ã¢ãã¬ã¹ãããã«å
¥ããŠãã ããã ãé¡ãããŸãã _:-)_
`MAINTAINER` ã®å€ã¯ãã³ã¡ã³ãéšã®ãªãåäžã®ã¢ãã¬ã¹ããåãä»ããããŸããã `[email protected]` ãšãã圢åŒãå©çšããŠãã ããããã®é
ç®ã«ã¯ã ããªãã®æ¬åãªã©ã®èª¬æçšã®ããã¹ãã¯äžåãããªãã§ãã ããã (ããããŠãããã [.filename]#bsd.port.mk# ãæ··ä¹±ããã ãã§ã)ãããããæ
å ±ã¯ [.filename]#pkg-descr# ã«æžããŠãã ããã
ä¿å®æ
åœè
(maintainer) ã®è²¬ä»»ã«é¢ãã詳现説æã¯ã extref:{developers-handbook}[Makefile äžã® MAINTAINER, POLICIES-MAINTAINER] ã® ã»ã¯ã·ã§ã³ãåç
§ããŠãã ããã
Port ã®ã¡ã³ããããŠãŒã¶ããã®æŽæ°èŠæ±ã« (äž»ãªå
¬äŒæ¥ãé€ããŠ) 2 é±éè¿çããªãã£ããã ä¿å®æ
åœè
ã®æã¡æéãåãããšã¿ãªããŠã ä¿å®æ
åœè
ã®æç€ºçãªäºæ¿ãªãã«æŽæ°ããŠæ§ããŸããã ä¿å®æ
åœè
ã 3 ã¶æä»¥å
ã«è¿çããªãå Žåã¯ã ãã®ä¿å®æ
åœè
ã¯ç¡æã§äžåšã«ããŠãããšã¿ãªããŠã åé¡ãšãªã£ãŠãã port ã®ä¿å®æ
åœè
ãå
¥ãæ¿ããŠãæ§ããŸããã äŸå€ãšãªãã¯ã{portmgr} ãŸã㯠{security-officer} ãä¿å®ããŠãããã®ã§ãããã®ã°ã«ãŒããä¿å®ããŠãã port ã«å¯ŸããŠã¯èš±å¯ãåŸãã«ã³ãããããŠã¯ãããŸããã
{portmgr} ã¯ãäœãçç±ãããã°ã 誰ããä¿å®æ
åœããå€ããããå¥ã®æ¹ãæ
åœè
ã«ããæš©å©ãæã¡ãŸãã {security-officer} ã¯ãã»ãã¥ãªãã£äžã®çç±ã§ã ä¿å®æ
åœè
ã®æš©éãå¥å¥ªãããæ
åœè
ã倿Žããæš©å©ãæã¡ãŸãã
[[makefile-comment]]
== `COMMENT`
ãã® port ã® 1 è¡ã®èª¬æã§ãã ã³ã¡ã³ãã«ã¯ããã±ãŒãžå (ããœãããŠã§ã¢ã®ããŒãžã§ã³) ã__å
¥ããªãã§ãã ãã__ã ã³ã¡ã³ãã¯å€§æåã§å§ããæåŸã«ããªãªãã¯ä»ããªãã§ãã ããã ããšãã°ããããªå
·åã§ãã
[.programlisting]
....
COMMENT= A cat chasing a mouse all over the screen
....
[.filename]#Makefile# äžã§ã COMMENT 倿°ã¯ MAINTAINER 倿°ã®çŽåŸã«ãããŠãã ããã
COMMENT è¡ã¯ãport ã® 1 è¡ã®èŠçŽãšããŠãŠãŒã¶ã«ç€ºãããã®ã§ã 70 æåæªæºã«æããããã«ããŠãã ããã
[[makefile-depend]]
== äŸåé¢ä¿
å€ãã® port ã¯ä»ã® port ã«äŸåããŠããŸãã å¿
èŠãªãã®ãã¹ãŠããŠãŒã¶ã®ãã·ã³äžã«ååšããããšã ä¿èšŒããããã«äœ¿çšå¯èœãªã7 ã€ã®å€æ°ãçšæãããŠããŸãã ããããã±ãŒã¹ã®ããã«ãããããèšå®ãããäŸå倿°ã«å ãã ããã€ãã®äŸåé¢ä¿ã®å¶åŸ¡ã®ããã®å€æ°ããããŸãã
=== `LIB_DEPENDS`
ãã® port ãå¿
èŠãšããå
±æã©ã€ãã©ãªãããã®å€æ°ã§æå®ããŸãã (蚳泚: libc çãæšæºã®ã©ã€ãã©ãªã¯æå®ããå¿
èŠããããŸããã) ãã㯠__lib:dir__``:target`` ãšãã çµã®ãªã¹ãã§ãã __lib__ ãå
±æã©ã€ãã©ãªã®ååã __dir__ ã ãã®ã©ã€ãã©ãªãèŠã€ãããªãå Žåã« ã€ã³ã¹ããŒã«ããã port ã®ãã£ã¬ã¯ããªã __target__ã ãã®ãã£ã¬ã¯ããªã§åŒã°ããã¿ãŒã²ããã§ãã ããšãã°ã
[.programlisting]
....
LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg:install
....
ãšæå®ãããŠããå ŽåããŸãã¡ãžã£ãŒããŒãžã§ã³ã 9 ã® jpeg å
±æã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããŠãããã©ããã確èªããŸãã ã€ã³ã¹ããŒã«ãããŠããªãå Žåã«ã¯ãports ããªãŒã® [.filename]#graphics/jpeg# ãµããã£ã¬ã¯ããªã«ç§»åãã _target_ ã®ã³ã³ãã€ã«ãšã€ã³ã¹ããŒã«ãè¡ãªããŸãã _target_ ã®éšåã¯ã ããã `DEPENDS_TARGET` (ããã©ã«ãã§ã¯ `install`) ãš çãããšãã«ã¯çç¥ããããšãã§ããŸãã
[NOTE]
====
å
é ã® _lib_ ã®éšå㯠`ldconfig -r | grep -wF` ãžã®åŒæ°ã«ãªããŸãã ãã®å€æ°ã«ã¯æ£èŠè¡šçŸãå
¥ããªãããã«ããŠãã ããã
====
ãã®äŸåé¢ä¿ã®ãã§ãã¯ã¯ã `extract` ã¿ãŒã²ãããš `install` ã¿ãŒã²ããã®äžã§ã2 åè¡ãªãããŸãã (蚳泚: ããã¯ããã® port ããã«ããããã·ã³ãšã€ã³ã¹ããŒã«ããããã·ã³ãéãå Žåã ã©ã¡ãã®ãã·ã³ã§ããã®ã©ã€ãã©ãªãå©çšã§ããããšã確èªããããã§ã)ã åæ§ã«ãäŸåããã©ã€ãã©ãªã®åå㯠package äžã«ãæžã蟌ãŸããŠããŠã man:pkg_add[1] å®è¡æã«ãã®ã©ã€ãã©ãªããŠãŒã¶ã®ã·ã¹ãã ã«ååšããŠããªããã°ã èªåçã«ã€ã³ã¹ããŒã«ãããŸãã
=== `RUN_DEPENDS`
ãã® port ã®å®è¡æã«å¿
èŠãšãªãããã°ã©ã ã ãŸãã¯ãã¡ã€ã«ããããšãã«ã¯ãã®å€æ°ã§æå®ããŸãããã㯠__path:dir__``:target`` ãšããçµã®ãªã¹ãã§ãã _path_ ããã¡ã€ã«ãŸãã¯ããã°ã©ã ã®ååã _dir_ ã ãããèŠã€ãããªãå Žåã«ã€ã³ã¹ããŒã«ããã port ã®ãã£ã¬ã¯ããªã _target_ ã ãã®ãã£ã¬ã¯ããªã§åŒã°ããã¿ãŒã²ããã§ãã _path_ ã®æåã®æåãã¹ã©ãã·ã¥ (`/`) ã®å Žåã«ã¯ãã¡ã€ã«ããã£ã¬ã¯ããªãšã¿ãªãã ååšãããã©ãã `test -e` ã䜿ã£ãŠãã§ãã¯ããŸãã ããã§ãªãå Žåã«ã¯å®è¡å¯èœãã¡ã€ã«ã§ãããšèããŠã ãã®ããã°ã©ã ããŠãŒã¶ã®ãµãŒããã¹äžã«ãããã©ãã `which -s` ã䜿ã£ãŠç¢ºèªããŸãã
ããšãã° Makefile ã«ä»¥äžã®ããã«æžããŠãããšããŸãã
[.programlisting]
....
RUN_DEPENDS= ${LOCALBASE}/etc/innd:${PORTSDIR}/news/inn \
wish8.0:${PORTSDIR}/x11-toolkits/tk80
....
ãŸãã[.filename]#/usr/local/etc/innd# ãšãããã¡ã€ã«ããã£ã¬ã¯ããªãååšããã確èªããŸãã ååšããªãå Žåã«ã¯ãports ããªãŒã® [.filename]#news/inn# ãšãããµããã£ã¬ã¯ããªã§ ãã«ããšã€ã³ã¹ããŒã«ãè¡ãªããŸãã ããã«ã`wish8.0` ãšããããã°ã©ã ããŠãŒã¶ã®ãµãŒããã¹äžã«ãããã©ããæ¢ããŸãã ãªãå Žåã«ã¯åãã ports ããªãŒã® [.filename]#x11-toolkits/tk80# ãšãããµããã£ã¬ã¯ããªã§ã³ã³ãã€ã«ãšã€ã³ã¹ããŒã«ãè¡ãªããŸãã
[NOTE]
====
ãã®äŸã§ã`innd` ã¯å®éã«ã¯ããã°ã©ã ã§ãã ãã®ããã«ãããã°ã©ã ã§ãã£ãŠãäžè¬ãŠãŒã¶ã®ãµãŒããã¹ã« å«ãŸããŠãããšã¯èãã«ãããšããã«çœ®ãããŠãããã®ã®å Žåã«ã¯ã 絶察ãã¹ã§æå®ããŠãã ããã
====
ãã®äŸåé¢ä¿ã¯ `install` ã¿ãŒã²ããäžã§ãã§ãã¯ãããŸãã ãŸããman:pkg_add[1] ã«ããã€ã³ã¹ããŒã«ã®éã«ããã® package ãäŸåãããã®ããŠãŒã¶ã®ã·ã¹ãã ã«ååšããªãå Žåã«ã¯èªåçã«è¿œå ã€ã³ã¹ããŒã«ã§ããããã«ã äŸåãããã®ã®ååã package äžã«èšé²ãããŸãã _target_ ã®éšåã `DEPENDS_TARGET` ãšåãå Žåã«ã¯ã _target_ ã®éšåãçç¥ããããšãã§ããŸãã
=== `BUILD_DEPENDS`
ãã® port ã®ãã«ãæã«å¿
èŠãšãªãããã°ã©ã ã ãŸãã¯ãã¡ã€ã«ããããšãã«ã¯ãã®å€æ°ã§æå®ããŸãã `RUN_DEPENDS` ãšåæ§ã«ããã㯠__path:dir__``:target`` ãšããçµã®ãªã¹ãã§ããããšãã°ã
[.programlisting]
....
BUILD_DEPENDS=unzip:${PORTSDIR}/archivers/unzip
....
ãšæå®ãããŠããå ŽåããŸã `unzip` ãšããååã®ããã°ã©ã ãã€ã³ã¹ããŒã«ãããŠãããã©ããã確èªããŸãã ã€ã³ã¹ããŒã«ãããŠããªãå Žåã«ã¯ ports ããªãŒã® [.filename]#archivers/unzip# ãµããã£ã¬ã¯ããªã«ç§»åãã ãã«ããšã€ã³ã¹ããŒã«ãè¡ãªããŸãã
[NOTE]
====
ããã§èšã"ãã«ã"ãšã¯ã ãã¡ã€ã«ã®å±éããã³ã³ãã€ã«ãŸã§ã®ãã¹ãŠã®åŠçãæå³ããŸãã ãã®äŸåé¢ä¿ã¯ã`extract` ã¿ãŒã²ããã®äžã§ãã§ãã¯ãããŸãã _target_ ã®éšåã¯ã `DEPENDS_TARGET` ãšåãå Žåã«ã¯çç¥ããããšãã§ããŸãã
====
=== `FETCH_DEPENDS`
ãã® port ãåã£ãŠããã®ã«å¿
èŠãšãªãããã°ã©ã ã ãŸãã¯ãã¡ã€ã«ããããšãã«ã¯ãã®å€æ°ã§æå®ããŸãã äžã®äºã€ãšåæ§ã«ããã㯠__path:dir__``:target`` ãšããçµã®ãªã¹ãã§ããããšãã°ã
[.programlisting]
....
FETCH_DEPENDS=ncftp2:${PORTSDIR}/net/ncftp2
....
ãšæå®ãããŠããã°ã`ncftp2` ãšããååã®ããã°ã©ã ãæ¢ããŸãã èŠã€ãããªãå Žåã«ã¯ãports ããªãŒã® [.filename]#net/ncftp2# ãµããã£ã¬ã¯ããªã§ãã«ããšã€ã³ã¹ããŒã«ãè¡ãªããŸãã
ãã®äŸåé¢ä¿ã¯ `fetch` ã¿ãŒã²ããäžã§ãã§ãã¯ãããŸãã _target_ ã®éšåã¯ã `DEPENDS_TARGET` ãšåãå Žåã«ã¯çç¥ããããšãã§ããŸãã
=== `EXTRACT_DEPENDS`
ãã®å€æ°ã«ã¯ããã® port ã®å±éã«å¿
èŠãªå®è¡ãã¡ã€ã«ããä»ã®ãã¡ã€ã«ãæå®ããŸãã åã®å€æ°ãšåããããã㯠__path:dir__``:target`` ã®ã¿ãã«ã®äžèЧã§ããããšãã°ã
[.programlisting]
....
EXTRACT_DEPENDS=
unzip:${PORTSDIR}/archivers/unzip
....
ã¯ã`unzip` ãšããå®è¡åœ¢åŒã®ãã¡ã€ã«ããããã©ãã確èªãã èŠã€ãããªããã°ãports ããªãŒã® [.filename]#archivers/unzip# ãµããã£ã¬ã¯ããªã«éããŠãã«ãããã³ã€ã³ã¹ããŒã«ãè¡ããŸãã
äŸåé¢ä¿ã¯ `extract` ã¿ãŒã²ããã«ãããŠç¢ºèªãããŸãã _target_ éšåã `DEPENDS_TARGET` ãšåããªããçããŠæ§ããŸããã
[NOTE]
====
ãã®å€æ°ã¯ãå±éãåããŠããã (ããã©ã«ãã§ã¯ `gzip` ãä»®å®ããŠããŸã)ã <<use-vars>> ã§èª¬æãããŠãã `USE_ZIP` ã `USE_BZIP2` ã䜿ã£ãŠãåããªãå Žåã«ã ã䜿ã£ãŠãã ããã
====
=== `PATCH_DEPENDS`
ãã®å€æ°ã¯ããã® port ãããããåœãŠãéã«å¿
èŠãšããå®è¡ãã¡ã€ã«ãä»ã®ãã¡ã€ã«ãæå®ããŸãã åã®å€æ°ãšåããããã㯠__path:dir__``:target`` ã®ã¿ãã«ã®äžèЧã§ããããšãã°ã
[.programlisting]
....
PATCH_DEPENDS=
${NONEXISTENT}:${PORTSDIR}/java/jfc:extract
....
ã¯ãports ããªãŒã® [.filename]#java/jfc# ãµããã£ã¬ã¯ããªã«ç§»åããŠã ãã«ãããã³ã€ã³ã¹ããŒã«ãè¡ããŸãã
äŸåé¢ä¿ã¯ã`patch` ã¿ãŒã²ããã«ãããŠç¢ºèªãããŸãã_target_ éšåã `DEPENDS_TARGET` ãšåããªãçç¥ããŠæ§ããŸããã
=== `DEPENDS`
äžèšã®ãããã«ãããŠã¯ãŸããªããããªäŸåé¢ä¿ãããå Žåã ãŸãã¯ä»ã® port ãã€ã³ã¹ããŒã«ãããŠããã ãã§ã¯ãªã ãœãŒã¹ãå±éãããŠããå¿
èŠãããå Žåã«ã¯ããã®å€æ°ã䜿ããŸãã ããã¯äžèšã®åã€ãšéããç¹ã«"確èª"ãããã®ã ãããŸããã®ã§ã __dir__``:target`` ãšãã圢åŒã®ãªã¹ãã«ãªããŸãã _target_ ã®éšå㯠`DEPENDS_TARGET` ãšåãå Žåã«ã¯çç¥ããããšãã§ããŸãã
[[use-vars]]
=== `USE_*`
å€ãã® ports ã«å
±éã®äŸåé¢ä¿ãã«ãã»ã«åããããã«ã ããã€ãã®å€æ°ãååšããŠããŸãã
.`USE_*` 倿°
[cols="1,1", frame="none", options="header"]
|===
| 倿°
| æå³
|`USE_BZIP2`
|ãã® port ã® tarball 㯠`bzip2` ã§å§çž®ãããŠããŸãã
|`USE_ZIP`
|ãã® port ã® tarball 㯠`zip` ã§å§çž®ãããŠããŸãã
|`USE_GMAKE`
|ãã® port ããã«ãããã®ã« `gmake` ãå¿
èŠã§ãã
|`USE_PERL5`
|ãã® port ããã«ãããŠã€ã³ã¹ããŒã«ããã®ã« `perl 5` ãå¿
èŠã§ãã `perl` ã«é¢é£ããŠèšå®å¯èœãªä»ã®å€æ°ã«ã€ããŠã¯ crossref:special[using-perl, perl ã®å©çš] ãã芧ãã ããã
|`USE_X_PREFIX`
|ãã® port 㯠`PREFIX` ã§ã¯ãªã `X11BASE` ã«ã€ã³ã¹ããŒã«ãããŸãã X11 ã«é¢é£ããŠèšå®å¯èœãªä»ã®å€æ°ã«ã€ããŠã¯ã crossref:special[using-x11, X11 ã®å©çš] ãã芧ãã ããã
|`USE_AUTOMAKE`
|ãã® port ã®ãã«ãã« GNU `automake` ã䜿ãããŸãã`automake` ã«é¢ããä»ã«èšå®å¯èœãªå€æ°ã«ã€ããŠã¯ã crossref:special[using-automake, `automake` - `autoconf` ããã³ libtool ã®å©çš] ãã芧ãã ããã
|`USE_AUTOCONF`
|ãã® port ã®ãã«ãã« GNU `autoconf` ã䜿ãããŸãã`autoconf` ã«é¢ããä»ã«èšå®å¯èœãªå€æ°ã«ã€ããŠã¯ã crossref:special[using-automake, `automake` - `autoconf` ããã³ libtool ã®å©çš] ãã芧ãã ããã
|`USE_LIBTOOL`
|ãã® port ã®ãã«ãã« GNU `libtool` ã䜿ãããŸãã`libtool` ã«é¢ããä»ã«èšå®å¯èœãªå€æ°ã«ã€ããŠã¯ã crossref:special[using-automake, `automake` - `autoconf` ããã³ libtool ã®å©çš] ãã芧ãã ããã
|`GMAKE`
|`gmake` ã `PATH` ã«å
¥ã£ãŠããªãå Žåã®ãã«ãã¹
|`USE_BISON`
|ãã® port ã®ãã«ãã« `bison` ã䜿ãããŸãã
|`USE_SDL`
|ãã® port ã®ãã«ããå®è¡ã« `SDL` ã䜿ãããŸãã `USE_SDL` ã®äœ¿ãæ¹ã«ã€ããŠã詳ãã㯠crossref:special[using-sdl,SDL ã®å©çš] ãã芧ãã ããã
|`NO_INSTALL_MANPAGES`
|`install.man` ã¿ãŒã²ããã䜿ããŸããã
|===
ãã® ports ã X Window System ãå¿
èŠãšããã®ã§ããã°ã `USE_XLIB=yes` ãå®çŸ©ããŠãã ãã (ãã㯠`USE_IMAKE` ãå®çŸ©ãããŠããã°èªåçã«å®çŸ©ãããŸã)ã BSD `make` ã§ã¯ãªã GNU `make` ãå¿
èŠãšããå Žåã«ã¯ `USE_GMAKE=yes` ãã GNU autoconf ãå®è¡ããå¿
èŠãããå Žåã«ã¯ `USE_AUTOCONF=yes` ãã ææ°ã® qt toolkit ã䜿çšããå Žåã«ã¯ `USE_QT=yes` ãã `perl` èšèªã®ããŒãžã§ã³ 5 ãå¿
èŠãšããå Žåã«ã¯ `USE_PERL5=yes` ãå®çŸ©ããŠãã ãã (ç¹ã«æåŸã®ãã®ã¯éèŠã§ãã FreeBSD ã®ããŒãžã§ã³ã«ãããåºæ¬ã·ã¹ãã ã« `perl5` ãå«ãŸããŠããããããªãã£ããããŸã)ã
=== äŸåé¢ä¿ã«é¢ããæ³šæ
äžã§è¿°ã¹ãããã«ãäŸåãã ports ãå¿
èŠã«ãªã£ããšãã«åŒã°ããããã©ã«ãã®ã¿ãŒã²ãã㯠`DEPENDS_TARGET` ã§ããã®ããã©ã«ã㯠`install` ã§ãã ããã¯ãŠãŒã¶ã䜿çšãã倿°ã§ããã port ã® [.filename]#Makefile# ã§å®çŸ©ãããã®ã§ã¯ãããŸããã ããããã® port ãç¹å¥ãªæ¹æ³ã§äŸåé¢ä¿ãæ±ãå¿
èŠãããå Žåã«ã¯ã `DEPENDS_TARGET` ãåå®çŸ©ããã®ã§ã¯ãªã `*_DEPENDS` 倿°ã® `:target` éšåã䜿çšããŠãã ããã
`make clean` ãšå
¥åãããšãã«ã¯ã ãã® port ãäŸåãã port ãèªåçã« clean ãããŸãã ãããªããªãããã«ãããå Žåã«ã¯ã ç°å¢å€æ° `NOCLEANDEPENDS` ãèšå®ããŠãã ãããKDE, GNOME ã Mozilla ã®ããã«ãåãã«ãããã®ã«æéãããã port ã«äŸåããŠããå Žåã¯ç¹ã«æãŸãããããããŸããã
ç¡æ¡ä»¶ã«ä»ã® port ã«äŸåãããã«ã¯ã `BUILD_DEPENDS` ã `RUN_DEPENDS` ã®æåã®ãã£ãŒã«ãã« `${NONEXISTENT}` ãšãã倿°ãæå®ããŠãã ããã ããã¯ãä»ã® port ã®ãœãŒã¹ãå¿
èŠãªãšãã®ã¿äœ¿çšããŠãã ããã ã¿ãŒã²ãããæå®ããããšã§ã ã³ã³ãã€ã«ã®æéãç¯çŽã§ããå ŽåããããŸãã ããšãã°
[.programlisting]
....
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/graphics/jpeg:extract
....
ãšãããšãåžžã« `jpeg` port ã®ãã£ã¬ã¯ããªã«è¡ã£ãŠãœãŒã¹ã®å±éãè¡ãªããŸãã
ããªããããããããšãä»ã®æ¹æ³ã§ã¯ã§ããªãå Žå以å€ã«ã¯ `DEPENDS` ã䜿ããªãã§ãã ããã ããã¯åžžã«ä»ã® port ã®äœæãè¡ãªã (ããã«ããã©ã«ãã§ã¯ ã€ã³ã¹ããŒã«ãè¡ãªã)ãpackage ãŸã§äœæããŸãã ãã®åäœãæ¬åœã«ææã®ãã®ã§ãããã ããã `BUILD_DEPENDS` ãš `RUN_DEPENDS` ã«æžãã¹ãã§ããã - å°ãªããšãæå³ãæç¢ºã«ããããšãã§ããŸãã
=== ãªãã·ã§ã³éžæå¯èœãªäŸåã©ã€ãã©ãª
巚倧ãªã¢ããªã±ãŒã·ã§ã³ã®äžã«ã¯ã è€æ°ã®ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ã§ãã«ãããããšãã§ãããã®ããããŸãã ã€ãŸããããã€ãã®å€éšã©ã€ãã©ãªãã¢ããªã±ãŒã·ã§ã³ã®äžã®ã ãããã®ãå©çšå¯èœãªå Žåã«ã ãããæ¡åŒµæ©èœãšããŠäœ¿çšããããã«èšå®ããããšãã§ãããšããããšã§ãã ãããã®ã©ã€ãã©ãªãã¢ããªã±ãŒã·ã§ã³ãã å¿
ããã ãã¹ãŠã®ãŠãŒã¶ãå¿
èŠãšããŠããããã§ã¯ãããŸããã®ã§ãports ã·ã¹ãã ã§ã¯ã©ã®ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ããã«ããããã¹ããã port äœè
ãæ±ºããããã«äœ¿ããããã¯ãçšæããŠããŸãã ããããé©åã«ãµããŒãããããšã«ããããŠãŒã¶ãããããŒã«ãããã port 1 ã€åã®ã³ã¹ãã§ 2 ã€ãŸãã¯ãã以äžã® port ãæäŸããã®ãšåæ§ã®å¹çåãè¡ãªãããšãå¯èœã§ãã
ãããã®ããã¯ã®ãã¡ã§æãç°¡åã«äœ¿ãããã®ã¯ `WITHOUT_X11` ã§ãããã ãã® port ã X Window System ã®ãµããŒããããšã ãµããŒããªãã®èšå®ã§ãã«ãã§ããã®ã§ããã°ã é垞㯠X Window System ãµããŒãããã§ãã«ãããã¹ãã§ãããã ãã«ãæã« `WITHOUT_X11` ãå®çŸ©ãããŠããã°ã ãã®æã¯ X Window System ãµããŒããªãã®ããŒãžã§ã³ã ãã«ããããã¹ãã§ãã
GNOME ç°å¢ã®æ§ã
ãªããŒããããã®ãããªãã (ããã¯) ãæã£ãŠããŸããããããã¯å¹Ÿå䜿ãã«ãããã®ã§ãã [.filename]#Makefile# äžã§ ãã®ç®çã«äœ¿çšããã倿°ã¯ `WANT_*` ãš `HAVE_*` ã«ãªããŸãã ãã®ã¢ããªã±ãŒã·ã§ã³ãã 以äžã«ç€ºãããŠããäŸåã©ã€ãã©ãªã®äžã€ã«ã€ããŠã ãµããŒãããããªãã®äž¡æ¹ã§ãã«ãã§ããå Žåã [.filename]#Makefile# ã«ã¯ `WANT_PKG` ãã»ããããå¿
èŠããããŸãã ãããŠããã«ãæã« `HAVE_PKG` ãå®çŸ©ãããŠããã° `PKG` ã䜿ãããŒãžã§ã³ããã«ããããããšã«ãªããŸãã
çŸåšããã®ãããªåœ¢ã§ãµããŒããããŠãã `WANT_*` 倿°ã¯ã `WANT_GLIB`, `WANT_GTK`, `WANT_ESOUND`, `WANT_IMLIB`, ãã㊠`WANT_GNOME` ã§ãã
=== èŽåœçãªäŸåã®åŸªç°
[IMPORTANT]
====
Ports ããªãŒã«åŸªç°ããäŸåæ§ãæã¡èŸŒãŸãªãã§ãã ãã!
====
Ports ã®æ§ç¯æè¡ã¯åŸªç°äŸåæ§ã蚱容ããŠããŸããã 埪ç°äŸåãããŠããŸããšããã¡ãŸã¡ã©ããã®èª°ããã€ã³ã¹ããŒã«ããŠãã FreeBSD ãé§ç®ã«ããŠããŸãããã®æ°ã¯ãŸãããéã«å¢ããŠè¡ããŸãã ãã®åé¡ã¯èŠä»ããã®ãéåžžã«é£ããã§ãã åé¡ããããããªå Žåã¯ããã®å€æŽãè¡ãåã« `cd /usr/ports; make index` ãå®è¡ããããã«ããŠãã ããã ãã®åŠçã¯å€ããã·ã³ã§ã¯ããªãé
ããããããŸãããã (ããªããå«ããŠ) å€ãã®äººããã®åŠçãè¡ã£ãŠåãããšã«ãªããã«æžãŸããããã§ãããã
[[makefile-wrkdir]]
== äœæ¥ãã£ã¬ã¯ããªã®æå®
ããããã® port ã¯äœæ¥ãã£ã¬ã¯ããªã«å±éãããã®ã§ã äœæ¥ãã£ã¬ã¯ããªã¯æžã蟌ã¿å¯èœã§ãªããã°ãªããŸããã Ports ã·ã¹ãã ã¯ãããã©ã«ãã§ã¯ `DISTFILES` ã `${DISTNAME}` ãšãããã£ã¬ã¯ããªã«å±éããããšæ³å®ããŸãã ã€ãŸããæ¬¡ã®ããã«èšå®ããŠãããã
[.programlisting]
....
PORTNAME= foo
PORTVERSION= 1.0
....
ãã® port ã®é
åžãã¡ã€ã«ã®å
容ã¯ãæäžäœã®ãã£ã¬ã¯ããªã [.filename]#foo-1.0# ã§ã æ®ãã®ãã¡ã€ã«ã¯ãã®ãã£ã¬ã¯ããªã®äžã«çœ®ãããŠãããšããããšã§ãã
ããã§ãªãå Žåã«äžæžãã§ãã倿°ããããããããŸãã
=== `WRKSRC`
ãã®å€æ°ã¯ã ã¢ããªã±ãŒã·ã§ã³ã®é
åžãã¡ã€ã«ãå±éãããæã«äœæããããã£ã¬ã¯ããªã®åç§°ã瀺ããŸãã åã®äŸã§ã([.filename]#foo-1.0# ã§ã¯ãªã) [.filename]#foo# ãšãããã£ã¬ã¯ããªã«å±éããããªãã
[.programlisting]
....
WRKSRC= ${WRKDIR}/foo
....
ãŸãã¯ã
[.programlisting]
....
WRKSRC= ${WRKDIR}/${PORTNAME}
....
ãšæžããŠãã ããã
=== `NO_WRKSUBDIR`
ãã® port ããµããã£ã¬ã¯ããªã«å±éããªãã®ã§ããã°ã ããã瀺ãããã« `NO_WRKSUBDIR` ãèšå®ããŠãã ããã
[.programlisting]
....
NO_WRKSUBDIR= yes
....
[[conflicts]]
== `CONFLICTS`
ããªããäœæããŠãã package ãä»ã® packageãš (ãã¡ã€ã«ã®è¡çªãå®è¡æã®éäºææ§ã«ãã) å
±åã§ããªãã®ã§ããã°ã`CONFLICTS` 倿°ã«ãã® package ã®åç§°ãæããŠãã ããã `*` ã `?` ã®ãããªã·ã§ã«ã®è£å®ãå©çšã§ããŸããpackage å㯠[.filename]#/var/db/pkg# ã«ããã®ãšåã圢åŒã§äžŠã¹ãŠãã ããã
[[makefile-build]]
== ãã«ãã®ã¡ã«ããºã
ãã®ãœãããŠã§ã¢ããã«ãã®éã« GNU `make` ã䜿ãå Žåã«ã¯ã`USE_GMAKE=yes` ãã»ããããŠãã ããã `configure` ã䜿ãå Žåã«ã¯ã `HAS_CONFIGURE=yes` ãã»ããããŠãã ããã GNU `configure` ã䜿ãå Žåã«ã¯ã `GNU_CONFIGURE=yes` ãã»ããããŠãã ãã (ããã«ãã `HAS_CONFIGURE` ãã»ãããããŸã)ã `configure` ã«è¿œå ã®åŒæ°ãæž¡ãããå Žåã«ã¯ã 远å éšåã `CONFIGURE_ARGS` ã«æå®ããŠãã ããã (ããã©ã«ãã®åŒæ°ãªã¹ãã¯ãGNU `configure` ã§ã¯ `--prefix=${PREFIX}` ã«ã GNU ã§ãªã `configure` ã§ã¯ç©ºãªã¹ãã«ãªããŸãã) GNU `autoconf` ã䜿ãå Žåã«ã¯ã `USE_AUTOCONF=yes` ãã»ããããŠãã ããã ããã«ãã `GNU_CONFIGURE` ãã»ããããã `configure` ãå®è¡ããåã« `autoconf` ãå®è¡ãããŸãã
[NOTE]
====
ãããã®ããã±ãŒãžã GNU `configure` ã䜿ã£ãŠããŠãäœæãããå®è¡åœ¢åŒã®ãã¡ã€ã«ã [.filename]#i386-portbld-freebsd4.7-#_appname_ ã®ãããª"å¥åŠãª"åç§°ã ã£ãå Žåã¯ãããã« `CONFIGURE_TARGET` ãäžæžãããŠãæ°ããããŒãžã§ã³ã® `autoconf` ã§çæãããã¹ã¯ãªãããèŠæ±ããæ¹æ³ã§ã¿ãŒã²ãããæå®ããå¿
èŠããããŸãã [.filename]#Makefile# ã® `GNU_CONFIGURE=yes` è¡ã®ããåŸã«æ¬¡ã®è¡ã远å ããŠãã ããã
`CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}`
====
ãã®ãœãããŠã§ã¢ã X Window System ã®ã¢ããªã±ãŒã·ã§ã³ãªã©ã§ã `imake` ã䜿ã£ãŠ [.filename]#Imakefile# ãã [.filename]#Makefile# ãäœæããå Žåã«ã¯ã `USE_IMAKE=yes` ãæå®ããŠãã ããã ãããããšã³ã³ãã£ã°ã¬ãŒã·ã§ã³ã¹ããŒãžã§èªåçã« `xmkmf -a` ãå®è¡ãããŸãã ãã `-a` ãã©ã°ãåé¡ãåŒãèµ·ãããªãã ããã« `XMKMF=xmkmf` ãã»ããããŠãã ããã ããããã® port ã `imake` ã䜿çšããããã©ã `install.man` ã¿ãŒã²ãããæããªãå Žåã«ã¯ã `NO_INSTALL_MANPAGES=yes` ãã»ããããŠãã ããã ã€ãã§ã«ããã®ãœãããŠã§ã¢ã®äœè
ãæ¢ãåºããŠå
«ã€è£ãã«ãããšããã§ãããã _(-_-#)_
ãã®ãœãããŠã§ã¢ã®å
ã
ã® [.filename]#Makefile# ã `all` 以å€ã®ãã®ãã¡ã€ã³ã®ã¿ãŒã²ãããšããŠããå Žåã«ã¯ãããã `ALL_TARGET` ã«æå®ããŠãã ããã `install` ãš `INSTALL_TARGET` ãåæ§ã§ãã