This directory contains the makefile logic for the Ravenports universal package builder system. The individual port makefiles are generated and thus should conform to the definitions documented below. Please ensure editor is set to 8-column hard tabs before modification. -------------------------------------------------------------------------- -- System definitions -------------------------------------------------------------------------- RAVENBASE Ravenports base for hierarchy Default: /raven WRKDIRPREFIX Root of the temporary working directory hierarchy Default: /usr/obj/raven DISTDIR Directory to store original distribution sources Default: ${RAVENBASE}/distfiles -------------------------------------------------------------------------- -- Operating System Definitions (overridable) -------------------------------------------------------------------------- ARCH The architecture of the target machine, such as would be returned by "uname -p". ARCH_STANDARD All variations of ia64 are called "x86_64" and all variations of ia64 are called "i386". This may differ from ARCH definition. OPSYS The name of the operating system, such as would be returned by "uname -s". OSVERSION An OS-specific kernel version. FreeBSD can return with "uname -K" OSREL The version of the release/dev branch of the operating system using two points. MAJOR The release of operating system. It is not simply OSREL:R (it may be same as OSREL) -------------------------------------------------------------------------- -- Port identifiers and directories -------------------------------------------------------------------------- NAMEBASE The unique first segment of the package origin triplet. It must be defined by the generated port makefile. VERSION Version of the port, usually identical to the version designated by the vendor REVISION Iteration of port at the defined version Default: 0 EPOCH Whenever versions numerically regress, the epoch must be incremented to show the older version is actually the newest. The epoch can never regress. Default: 0 KEYWORDS At least one keyword from the list below must be used to describe the functionality of the port. There are no limits to how many keywords are used. VARIANT Specified by ravenadm tool as part of build command Must conform to options listed in buildsheet. Default: standard (but always override) PKGNAME_ Name of generated package minus extension. It is always defined as: ${NB}__${VAR}__${SPKG}-${VER} where NB=NAMEBASE, VAR=VARIANT, SPKG=subpackage, VER=VERSION TWO_PART_ID Port reference, always defined as: ${NAMEBASE}-${VARIANT} DISTNAME Used for default definition of WRKSRC and github distributions. Default: ${NAMEBASE}-${VERSION} WRKDIR Temporary working directory to build the port Defined as ${WRKDIRPREFIX}/${NAMEBASE} (no override) WRKSRC Subdirectory to where distribution extracts Defined as ${WRKDIR}/${DISTNAME} (no override) see DIRTY_EXTRACT_<#> as well. DIRTY_EXTRACT_<#> Define to indicate that dist. file does not extract into a directory, so create ${WRKDIR}/${NAMEBASE}_<#> and unpack to there. if DIRTY_EXTRACT_1 set, WRKSRC gets defined to ${WRKDIR}/${NAMEBASE}_1 DIST_SUBDIR Optional private subdirectory of ${DISTDIR}. Used for tidiness and reroll disambiguity. STD_DOCDIR The only location for non-man page documentation Defined: ${PREFIX}/share/doc/${NAMEBASE} (no override) DESKTOPDIR Directory to install desktop entries in Default: ${PREFIX}/share/applications ./patches Port subdirectory containing common additional patches made by port maintainer. ./opsys Port subdirectory containing OS-specific patches and files. ravenadm dynamically selects the right ones. ./files Port subdirectory containing additional common non-patch files. ./scripts Port subdirectory containing auxilliary scripts. -------------------------------------------------------------------------- -- Related to distribution -------------------------------------------------------------------------- DF_INDEX List of integers corresponding to complete set of distfiles to used in the current configuration. May be empty string if there are no distfiles DISTFILE_<#> Full filename plus mandatory group identifier. .e.g. mysql-5.6.35.tar.gz:main -------------------------------------------------------------------------- -- Fetching -------------------------------------------------------------------------- FORCE_FETCH_LIST Used by scripts to specify which distfiles to unconditionally refetch. Not used by humans. DL_SITE_BACKUP Backup locations(s) for distribution and patch files if not locally cached and attempts to fetch from DL_SITES and PATCH_SITES fail. Default: TBD (currently unset) DL_SITE_OVERRIDE If set, prepend DL_SITES* with this value DL_SITE_DISABLE Exclusively use official backup site for downloads FETCH_REGET Times to retry fetching after checksum errors. Default: 1 SKIP_CHECKSUM If defined, allows fetching a file that is not listed in the distinfo file. This can never be present the port makefile -------------------------------------------------------------------------- -- Extraction -------------------------------------------------------------------------- EXTRACT_HEAD_<#> Extract command and leading arguments for distfile <#>. Default: "${TAR} -xf" EXTRACT_TAIL_<#> Trailing arguments for extract command for distfile <#>. Default: "--no-same-owner --no-same-permissions" EXTRACT_ONLY Set of indices related to distfiles to be extracted Default: ${DF_INDEX} EXTRACT_WRKDIR_<#> Directory to extract distfile of same index. Read-only, WRKDIR unless DIRTY_EXTRACT_<#> is defined, then it is ${WRKDIR}/${NAMEBASE}_<#> -------------------------------------------------------------------------- -- Patching -------------------------------------------------------------------------- PATCH_WRKSRC Directory to apply patches in Default: ${WRKSRC} PATCH_STRIP How many elements are stripped from port patches Default: -p0 PATCH_DIST_STRIP How many elements are stripped from vendor patches Default: -p0 -------------------------------------------------------------------------- -- Configuration -------------------------------------------------------------------------- SCRIPTS_ENV Additional environment vars passed to scripts in ./scripts executed by raven.mk. CONFIGURE_WRKSRC Directory to run configure in Default: ${WRKSRC} HAS_CONFIGURE If set, this port has its own configure script. The configure stage will not do anything if this is not set. GNU_CONFIGURE If set, you are using GNU configure (optional). Implies HAS_CONFIGURE. CONFIGURE_SCRIPT Name of configure script, relative to ${CONFIGURE_WRKSRC}. Default: "Makefile.PL" if USES=perl5 and USE_PERL5=configure are set, "configure" otherwise. GNU_CONFIGURE_PREFIX The directory passed as prefix to the configure script if GNU_CONFIGURE is set. Default: ${PREFIX} CONFIGURE_ARGS Pass these arguments to configure script. CONFIGURE_ENV Pass these env (shell-like) to configure script. CONFIGURE_TARGET The name of target to call when GNU_CONFIGURE is defined. Default: ${ARCH}-raven-${OPSYS:tl}${OSREL} CONFIGURE_OUTSOURCE If set, this builds in an empty ${CONFIGURE_WRKSRC} and redefines the default for CONFIGURE_, BUILD_, INSTALL_, and TEST_WRKSRC variables. -------------------------------------------------------------------------- -- Building -------------------------------------------------------------------------- BUILD_WRKSRC Directory to do build in. Default: ${WRKSRC} NO_BUILD Use a dummy (do-nothing) build target MAKEFILE Name of the makefile. Default: Makefile MAKE_ARGS Any extra arguments to sub-make in build and install stages. Default: none MAKE_ENV Additional environment vars passed to sub-make in build and install stages. Default: see below ALL_TARGET Default target for sub-make in build stage. Default: all SINGLE_JOB Disallow multiple jobs even when user set a global override. This is a per-port setting. NUMBER_CPUS Equal to ncpu (e.g. sysctl -n hw.ncpu) Must be set in global make.conf (mandatory) DISABLE_MAKE_JOBS Set to disable the multiple jobs feature. Global setting. MAKE_JOBS_NUMBER Override the number of make jobs to be used. if unset, NUMBER_CPUS is used. MAKE_JOBS_NUMBER_LIMIT Set a limit for maximum number of make jobs allowed to be used. DESTDIRNAME Name of variable representing DESTDIR. Port-settable. Default: DESTDIR DESTDIR_VIA_ENV if defined, set ${DESTDIRNAME} in MAKE_ENV instead of MAKE_ARGS. Per-port setting. -------------------------------------------------------------------------- -- Flags and other settings that affect building -------------------------------------------------------------------------- CFLAGS Additional switches to pass to the C compiler CXXFLAGS Additional switches to pass to the C++ compiler CPPFLAGS Additional switches to pass to C/C++ pre-processor LDFLAGS Additional switches to pass to the linker -------------------------------------------------------------------------- -- Compiler cache -------------------------------------------------------------------------- BUILD_WITH_CCACHE When set, enable ccache support globally. CCACHE_DIR Which directory to use for ccache Default: /root/.ccache NO_CCACHE Disable CCACHE support even when BUILD_WITH_CCACHE is defined. Per-port setting. -------------------------------------------------------------------------- -- Staging -------------------------------------------------------------------------- NO_INSTALL Use a dummy (do-nothing) install target -------------------------------------------------------------------------- -- Package manifests -------------------------------------------------------------------------- INFO_PATH Path, where all .info files will be installed by your port, relative to ${PREFIX}. Default: share/info INFO_ List of .info files (omitting the trailing ".info") in a given subpackage. These files are located in the path relative to ${INFO_PATH} MANPREFIX The directory prefix for ${MAN} and ${MLINKS}. Default: ${PREFIX}/share MANPREFIX If manual pages of some sections install in different locations than others, use these. Default: ${MANPREFIX} RC_SUBR_ If set, the ports startup/shutdown script uses the common routines found in /etc/rc.subr. If this is set to a list of files, these files will be automatically added to ${SUB_FILES}, some %%VAR%%'s will automatically be expanded, they will be installed in ${PREFIX}/etc/rc.d if ${PREFIX} is not /usr, otherwise they will be installed in /etc/rc.d/ and added to the subpackage manifest. -------------------------------------------------------------------------- -- Debugging -------------------------------------------------------------------------- ECHO_MSG Used to print the '===>' style comments. Override to turn them off. Default: ${ECHO_CMD} DO_NADA Command on how to do nothing Default: ${TRUE} PATCH_DEBUG If set, print out more information about the patches as it attempts to apply them. WITH_DEBUG If set, debugging flags are added to CFLAGS and the binaries don't get stripped by INSTALL_PROGRAM or INSTALL_LIB. DEBUG_FLAGS When WITH_DEBUG defined, additional flags are passed to compiler. Default: -g -------------------------------------------------------------------------- -- Keyword Descriptions -------------------------------------------------------------------------- accessibility Targeted at disabled users archivers Utilities for archiving and recovering data astro Targeted at users interested in astronomy audio Utilities related to sound benchmarks Utilities for measuring system performance biology Targeted at users interested in biology cad Targeted at users of computer aided design comms Utilities related to communications (e.g. radio) converters Utilities related to conversions databases Data servers, clients, and related tools deskutils Applications for the desktop devel Software development libraries and utilities dns DNS servers, clients, and related tools editors Text editors emulators Tools for emulating other op. systems finance Monetary and financial tools ftp FTP servers, clients, and related tools games self-explanatory geography Geographic information software and tools graphics Graphics libraries and utilities irc Internet Relay Chat servers and clients lang Computer languages and compilers mail email servers, clients and related tools math Mathematical computation software misc Miscellaneous (hard to classify) multimedia self-explanatory net Networking utilities net_im Instant messaging software net_mgmt Network management utilities net_p2p Peer-to-Peer networking software news USENET news support software print Utilities dealing with printing raven Tools related to Ravenports dev. and mgmt. science Software targeted at scientists security System security software shells Command line interpreters sysutils System utilities (often OS-specific) textproc text processing and search utiltiies wayland Software using wayland display server protocol www Web browsers, http servers, and utilities x11 X-Windows system utilities x11_clocks X-Windows clock applications x11_drivers X-Windows drivers (all types) x11_fm X-Windows file managers x11_fonts X-Windows fonts and utilities x11_servers X-Windows servers x11_themes X-Windows system themes x11_toolkits X-Windows development tools x11_wm X-Windows windows managers Computer language subcategories ---------------------------------- ada c++ csharp java javascript lisp perl php python ruby rust scheme Language/Region specific categories ----------------------------------- arabic chinese french german italian japanese korean portuguese russian spanish vietnamese