1 This directory contains the makefile logic for the Ravenports universal
2 package builder system. The individual port makefiles are generated
3 and thus should conform to the definitions documented below.
4 Please ensure editor is set to 8-column hard tabs before modification.
6 --------------------------------------------------------------------------
8 --------------------------------------------------------------------------
10 RAVENBASE Ravenports base for hierarchy
12 WRKDIRPREFIX Root of the temporary working directory hierarchy
13 Default: /usr/obj/raven
14 DISTDIR Directory to store original distribution sources
15 Default: ${RAVENBASE}/distfiles
17 --------------------------------------------------------------------------
18 -- Operating System Definitions (overridable)
19 --------------------------------------------------------------------------
21 ARCH The architecture of the target machine, such as
22 would be returned by "uname -p".
23 ARCH_STANDARD All variations of ia64 are called "x86_64" and
24 all variations of ia64 are called "i386". This
25 may differ from ARCH definition.
26 OPSYS The name of the operating system, such as would
27 be returned by "uname -s".
28 OSVERSION An OS-specific kernel version.
29 FreeBSD can return with "uname -K"
30 OSREL The version of the release/dev branch of the
31 operating system using two points.
32 MAJOR The <major> release of operating system. It is
33 not simply OSREL:R (it may be same as OSREL)
35 --------------------------------------------------------------------------
36 -- Port identifiers and directories
37 --------------------------------------------------------------------------
39 NAMEBASE The unique first segment of the package origin
40 triplet. It must be defined by the generated
42 VERSION Version of the port, usually identical to the
43 version designated by the vendor
44 REVISION Iteration of port at the defined version
46 EPOCH Whenever versions numerically regress, the epoch
47 must be incremented to show the older version is
48 actually the newest. The epoch can never regress.
50 KEYWORDS At least one keyword from the list below must be
51 used to describe the functionality of the port.
52 There are no limits to how many keywords are used.
53 VARIANT Specified by ravenadm tool as part of build command
54 Must conform to options listed in buildsheet.
55 Default: standard (but always override)
56 PKGNAME_<SPKG> Name of generated package minus extension. It is
57 always defined as: ${NB}__${VAR}__${SPKG}-${VER}
58 where NB=NAMEBASE, VAR=VARIANT, SPKG=subpackage,
60 TWO_PART_ID Port reference, always defined as:
61 ${NAMEBASE}-${VARIANT}
62 DISTNAME Used for default definition of WRKSRC and github
63 distributions. Default: ${NAMEBASE}-${VERSION}
64 WRKDIR Temporary working directory to build the port
65 Defined as ${WRKDIRPREFIX}/${NAMEBASE} (no override)
66 WRKSRC Subdirectory to where distribution extracts
67 Defined as ${WRKDIR}/${DISTNAME} (no override)
68 see DIRTY_EXTRACT_<#> as well.
69 DIRTY_EXTRACT_<#> Define to indicate that dist. file does not extract
70 into a directory, so create ${WRKDIR}/${NAMEBASE}_<#>
71 and unpack to there. if DIRTY_EXTRACT_1 set, WRKSRC
72 gets defined to ${WRKDIR}/${NAMEBASE}_1
73 DIST_SUBDIR Optional private subdirectory of ${DISTDIR}.
74 Used for tidiness and reroll disambiguity.
75 STD_DOCDIR The only location for non-man page documentation
76 Defined: ${PREFIX}/share/doc/${NAMEBASE} (no override)
77 DESKTOPDIR Directory to install desktop entries in
78 Default: ${PREFIX}/share/applications
79 ./patches Port subdirectory containing common additional
80 patches made by port maintainer.
81 ./opsys Port subdirectory containing OS-specific patches and
82 files. ravenadm dynamically selects the right ones.
83 ./files Port subdirectory containing additional common
85 ./scripts Port subdirectory containing auxilliary scripts.
87 --------------------------------------------------------------------------
88 -- Related to distribution
89 --------------------------------------------------------------------------
91 DF_INDEX List of integers corresponding to complete set
92 of distfiles to used in the current configuration.
93 May be empty string if there are no distfiles
94 DISTFILE_<#> Full filename plus mandatory group identifier.
95 .e.g. mysql-5.6.35.tar.gz:main
97 --------------------------------------------------------------------------
99 --------------------------------------------------------------------------
101 FORCE_FETCH_LIST Used by scripts to specify which distfiles to
102 unconditionally refetch. Not used by humans.
104 DL_SITE_BACKUP Backup locations(s) for distribution and patch
105 files if not locally cached and attempts to fetch
106 from DL_SITES and PATCH_SITES fail.
107 Default: TBD (currently unset)
108 DL_SITE_OVERRIDE If set, prepend DL_SITES* with this value
109 DL_SITE_DISABLE Exclusively use official backup site for downloads
110 FETCH_REGET Times to retry fetching after checksum errors.
112 SKIP_CHECKSUM If defined, allows fetching a file that is not
113 listed in the distinfo file. This can never be
114 present the port makefile
116 --------------------------------------------------------------------------
118 --------------------------------------------------------------------------
120 EXTRACT_HEAD_<#> Extract command and leading arguments for
121 distfile <#>. Default: "${TAR} -xf"
122 EXTRACT_TAIL_<#> Trailing arguments for extract command for
123 distfile <#>. Default: "--no-same-owner
124 --no-same-permissions"
125 EXTRACT_ONLY Set of indices related to distfiles to be extracted
127 EXTRACT_WRKDIR_<#> Directory to extract distfile of same index.
128 Read-only, WRKDIR unless DIRTY_EXTRACT_<#> is defined,
129 then it is ${WRKDIR}/${NAMEBASE}_<#>
131 --------------------------------------------------------------------------
133 --------------------------------------------------------------------------
135 PATCH_WRKSRC Directory to apply patches in
137 PATCH_STRIP How many elements are stripped from port patches
139 PATCH_DIST_STRIP How many elements are stripped from vendor patches
142 --------------------------------------------------------------------------
144 --------------------------------------------------------------------------
146 SCRIPTS_ENV Additional environment vars passed to scripts in
147 ./scripts executed by raven.mk.
148 CONFIGURE_WRKSRC Directory to run configure in
150 HAS_CONFIGURE If set, this port has its own configure script.
151 The configure stage will not do anything if this
153 GNU_CONFIGURE If set, you are using GNU configure (optional).
154 Implies HAS_CONFIGURE.
155 CONFIGURE_SCRIPT Name of configure script, relative to
156 ${CONFIGURE_WRKSRC}. Default: "Makefile.PL"
157 if USES=perl5 and USE_PERL5=configure are set,
158 "configure" otherwise.
159 GNU_CONFIGURE_PREFIX The directory passed as prefix to the configure
160 script if GNU_CONFIGURE is set. Default: ${PREFIX}
161 CONFIGURE_ARGS Pass these arguments to configure script.
162 CONFIGURE_ENV Pass these env (shell-like) to configure script.
163 CONFIGURE_TARGET The name of target to call when GNU_CONFIGURE is
164 defined. Default: ${ARCH}-raven-${OPSYS:tl}${OSREL}
165 CONFIGURE_OUTSOURCE If set, this builds in an empty ${CONFIGURE_WRKSRC}
166 and redefines the default for CONFIGURE_, BUILD_,
167 INSTALL_, and TEST_WRKSRC variables.
169 --------------------------------------------------------------------------
171 --------------------------------------------------------------------------
173 BUILD_WRKSRC Directory to do build in. Default: ${WRKSRC}
174 NO_BUILD Use a dummy (do-nothing) build target
175 MAKEFILE Name of the makefile. Default: Makefile
176 MAKE_ARGS Any extra arguments to sub-make in build and install
177 stages. Default: none
178 MAKE_ENV Additional environment vars passed to sub-make in
179 build and install stages. Default: see below
180 ALL_TARGET Default target for sub-make in build stage.
182 SINGLE_JOB Disallow multiple jobs even when user set a global
183 override. This is a per-port setting.
184 NUMBER_CPUS Equal to ncpu (e.g. sysctl -n hw.ncpu)
185 Must be set in global make.conf (mandatory)
186 DISABLE_MAKE_JOBS Set to disable the multiple jobs feature.
188 MAKE_JOBS_NUMBER Override the number of make jobs to be used.
189 if unset, NUMBER_CPUS is used.
190 MAKE_JOBS_NUMBER_LIMIT Set a limit for maximum number of make jobs allowed
192 DESTDIRNAME Name of variable representing DESTDIR.
193 Port-settable. Default: DESTDIR
194 DESTDIR_VIA_ENV if defined, set ${DESTDIRNAME} in MAKE_ENV instead
195 of MAKE_ARGS. Per-port setting.
197 --------------------------------------------------------------------------
198 -- Flags and other settings that affect building
199 --------------------------------------------------------------------------
201 CFLAGS Additional switches to pass to the C compiler
202 CXXFLAGS Additional switches to pass to the C++ compiler
203 CPPFLAGS Additional switches to pass to C/C++ pre-processor
204 LDFLAGS Additional switches to pass to the linker
206 --------------------------------------------------------------------------
208 --------------------------------------------------------------------------
210 BUILD_WITH_CCACHE When set, enable ccache support globally.
211 CCACHE_DIR Which directory to use for ccache
212 Default: /root/.ccache
213 NO_CCACHE Disable CCACHE support even when BUILD_WITH_CCACHE
214 is defined. Per-port setting.
216 --------------------------------------------------------------------------
218 --------------------------------------------------------------------------
220 NO_INSTALL Use a dummy (do-nothing) install target
222 --------------------------------------------------------------------------
224 --------------------------------------------------------------------------
226 INFO_PATH Path, where all .info files will be installed by your
227 port, relative to ${PREFIX}. Default: share/info
228 INFO_<subpackage> List of .info files (omitting the trailing ".info")
229 in a given subpackage. These files are located in
230 the path relative to ${INFO_PATH}
231 MANPREFIX The directory prefix for ${MAN<sect>} and ${MLINKS}.
232 Default: ${PREFIX}/share
233 MAN<sect>PREFIX If manual pages of some sections install in different
234 locations than others, use these.
235 Default: ${MANPREFIX}
236 RC_SUBR_<subpackage> If set, the ports startup/shutdown script uses the
237 common routines found in /etc/rc.subr. If this is
238 set to a list of files, these files will be
239 automatically added to ${SUB_FILES}, some %%VAR%%'s
240 will automatically be expanded, they will be
241 installed in ${PREFIX}/etc/rc.d if ${PREFIX} is not
242 /usr, otherwise they will be installed in /etc/rc.d/
243 and added to the subpackage manifest.
245 --------------------------------------------------------------------------
247 --------------------------------------------------------------------------
249 ECHO_MSG Used to print the '===>' style comments.
250 Override to turn them off.
252 DO_NADA Command on how to do nothing
254 PATCH_DEBUG If set, print out more information about the
255 patches as it attempts to apply them.
256 WITH_DEBUG If set, debugging flags are added to CFLAGS and the
257 binaries don't get stripped by INSTALL_PROGRAM or
259 DEBUG_FLAGS When WITH_DEBUG defined, additional flags are
260 passed to compiler. Default: -g
262 --------------------------------------------------------------------------
263 -- Keyword Descriptions
264 --------------------------------------------------------------------------
266 accessibility Targeted at disabled users
267 archivers Utilities for archiving and recovering data
268 astro Targeted at users interested in astronomy
269 audio Utilities related to sound
270 benchmarks Utilities for measuring system performance
271 biology Targeted at users interested in biology
272 cad Targeted at users of computer aided design
273 comms Utilities related to communications (e.g. radio)
274 converters Utilities related to conversions
275 databases Data servers, clients, and related tools
276 deskutils Applications for the desktop
277 devel Software development libraries and utilities
278 dns DNS servers, clients, and related tools
280 emulators Tools for emulating other op. systems
281 finance Monetary and financial tools
282 ftp FTP servers, clients, and related tools
283 games self-explanatory
284 geography Geographic information software and tools
285 graphics Graphics libraries and utilities
286 irc Internet Relay Chat servers and clients
287 lang Computer languages and compilers
288 mail email servers, clients and related tools
289 math Mathematical computation software
290 misc Miscellaneous (hard to classify)
291 multimedia self-explanatory
292 net Networking utilities
293 net_im Instant messaging software
294 net_mgmt Network management utilities
295 net_p2p Peer-to-Peer networking software
296 news USENET news support software
297 print Utilities dealing with printing
298 raven Tools related to Ravenports dev. and mgmt.
299 science Software targeted at scientists
300 security System security software
301 shells Command line interpreters
302 sysutils System utilities (often OS-specific)
303 textproc text processing and search utiltiies
304 wayland Software using wayland display server protocol
305 www Web browsers, http servers, and utilities
306 x11 X-Windows system utilities
307 x11_clocks X-Windows clock applications
308 x11_drivers X-Windows drivers (all types)
309 x11_fm X-Windows file managers
310 x11_fonts X-Windows fonts and utilities
311 x11_servers X-Windows servers
312 x11_themes X-Windows system themes
313 x11_toolkits X-Windows development tools
314 x11_wm X-Windows windows managers
316 Computer language subcategories
317 ----------------------------------
331 Language/Region specific categories
332 -----------------------------------