Date: Sun, 23 Aug 1998 22:55:24 -0700 (PDT) From: asami@FreeBSD.ORG (Satoshi Asami) To: ac199@hwcn.org Cc: ac199@hwcn.org, vanilla@FreeBSD.ORG, ports@FreeBSD.ORG Subject: Re: manpages (Re: cvs commit: ports/devel/p5-Term-Query p5-Term-Query-2.0.tgz) Message-ID: <199808240555.WAA02341@silvia.hip.berkeley.edu> In-Reply-To: <Pine.BSF.3.96.980824010704.1308A-100000@localhost> (message from Tim Vanderhoek on Mon, 24 Aug 1998 01:41:15 -0400 (EDT))
next in thread | previous in thread | raw e-mail | index | archive | help
* The same as they are in the last proposed bsd.port.mk. The * USE_IMAKE default seems particularly important to minimize * breakage if trying to install ports under a different OS. Does it really? Anyway, here's another diff. I took out the NO_INSTALL_MANPAGES clause, if it doesn't install manpages I don't know what to assume for the default anyway so might as well make the logic (and documentation) simple. I see two "MANCOMPRESSED=YES" Makefiles there, others are "yes" so I'm just going to fix the "YES" ones. Satoshi ------- Index: bsd.port.mk =================================================================== RCS file: /home/ncvs/src/share/mk/bsd.port.mk,v retrieving revision 1.227.2.46 diff -u -r1.227.2.46 bsd.port.mk --- bsd.port.mk 1998/08/15 17:37:46 1.227.2.46 +++ bsd.port.mk 1998/08/24 05:50:21 @@ -11,185 +11,187 @@ # There are two different types of "maintainers" in the whole ports # framework concept. Maintainers of the bsd.port*.mk files -# are listed below in the ${OSNAME}_MAINTAINER entries (this file +# are listed below in the ${OPSYS}_MAINTAINER entries (this file # is used by multiple *BSD flavors). You should consult them directly # if you have any questions/suggestions regarding this file since only # they are allowed to modify the master copies in the CVS repository! +FreeBSD_MAINTAINER= asami@FreeBSD.ORG +OpenBSD_MAINTAINER= imp@OpenBSD.ORG + # For each port, the MAINTAINER variable is what you should consult for # contact information on the person(s) to contact if you have questions/ # suggestions about that specific port. By default (if no MAINTAINER # is listed), a port is maintained by the subscribers of the ports@freebsd.org # mailing list, and any correspondece should be directed there. # -FreeBSD_MAINTAINER= asami@FreeBSD.ORG -OpenBSD_MAINTAINER= imp@OpenBSD.ORG - -# Supported Variables and their behaviors: +# MAINTAINER - The e-mail address of the contact person for this port +# (default: ports@FreeBSD.ORG). # -# Variables that typically apply to all ports: +# These are meta-variables that are automatically set to the system +# you are running on. # # ARCH - The architecture, as returned by "uname -m". # OPSYS - Portability clause. This is the operating system the # makefile is being used on. Automatically set to # "FreeBSD," "NetBSD," or "OpenBSD" as appropriate. # OSREL - The release version (numeric) of the operating system. -# PORTSDIR - The root of the ports tree. Defaults: -# FreeBSD/OpenBSD: /usr/ports -# NetBSD: /usr/opt -# DISTDIR - Where to get gzip'd, tarballed copies of original sources -# (default: ${PORTSDIR}/distfiles). -# PREFIX - Where to install things in general (default: /usr/local). -# MASTER_SITES - Primary location(s) for distribution files if not found -# locally. -# PATCH_SITES - Primary location(s) for distribution patch files -# (see PATCHFILES below) if not found locally. # -# MASTER_SITE_BACKUP - Backup location(s) for distribution files and patch -# files if not found locally and ${MASTER_SITES}/${PATCH_SITES} -# (default: -# ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/) -# MASTER_SITE_OVERRIDE - If set, override the MASTER_SITES setting with this -# value. -# MASTER_SITE_FREEBSD - If set, only use ${MASTER_SITE_BACKUP} for -# MASTER_SITES. -# PACKAGES - A top level directory where all packages go (rather than -# going locally to each port). (default: ${PORTSDIR}/packages). -# GMAKE - Set to path of GNU make if not in $PATH (default: gmake). -# AUTOCONF - Set to path of GNU autoconf if not in $PATH (default: autoconf). -# XMKMF - Set to path of `xmkmf' if not in $PATH (default: xmkmf -a ). -# MAINTAINER - The e-mail address of the contact person for this port -# (default: ports@FreeBSD.ORG). +# These variables are used to identify your port. +# +# DISTNAME - Name of port or distribution. +# PKGNAME - Name of the package file to create if the DISTNAME +# isn't really relevant for the port/package +# (default: ${DISTNAME}). # CATEGORIES - A list of descriptive categories into which this port falls. # -# Variables that typically apply to an individual port. Non-Boolean -# variables without defaults are *mandatory*. +# These variable describe how to fetch files required for building the port. # -# WRKDIR - A temporary working directory that gets *clobbered* on clean -# (default: ${.CURDIR}/work). -# WRKSRC - A subdirectory of ${WRKDIR} where the distribution actually -# unpacks to. (Default: ${WRKDIR}/${DISTNAME} unless -# NO_WRKSUBDIR is set, in which case simply ${WRKDIR}). -# DISTNAME - Name of port or distribution. # DISTFILES - Name(s) of archive file(s) containing distribution -# (default: ${DISTNAME}${EXTRACT_SUFX}). +# (default: ${DISTNAME}${EXTRACT_SUFX}). Set this to +# an empty string if the port doesn't require it. +# EXTRACT_SUFX - Suffix for archive names (default: .tar.gz). You +# never have to set both DISTFILES and EXTRACT_SUFX. +# MASTER_SITES - Primary location(s) for distribution files if not found +# locally. # PATCHFILES - Name(s) of additional files that contain distribution # patches (default: none). make will look for them at -# PATCH_SITES (see above). They will automatically be +# PATCH_SITES (see below). They will automatically be # uncompressed before patching if the names end with # ".gz" or ".Z". +# PATCH_SITES - Primary location(s) for distribution patch files +# if not found locally. # DIST_SUBDIR - Suffix to ${DISTDIR}. If set, all ${DISTFILES} # and ${PATCHFILES} will be put in this subdirectory of -# ${DISTDIR}. Also they will be fetched in this subdirectory -# from FreeBSD mirror sites. +# ${DISTDIR} (see below). Also they will be fetched in +# this subdirectory from FreeBSD mirror sites. # ALLFILES - All of ${DISTFILES} and ${PATCHFILES}. # IGNOREFILES - If some of the ${ALLFILES} are not checksum-able, set # this variable to their names. -# PKGNAME - Name of the package file to create if the DISTNAME -# isn't really relevant for the port/package -# (default: ${DISTNAME}). # EXTRACT_ONLY - If defined, a subset of ${DISTFILES} you want to # actually extract. -# PATCHDIR - A directory containing any additional patches you made -# to port this software to FreeBSD (default: -# ${.CURDIR}/patches) -# SCRIPTDIR - A directory containing any auxiliary scripts -# (default: ${.CURDIR}/scripts) -# FILESDIR - A directory containing any miscellaneous additional files. -# (default: ${.CURDIR}/files) -# PKGDIR - A direction containing any package creation files. -# (default: ${.CURDIR}/pkg) -# PKG_DBDIR - Where package installation is recorded (default: /var/db/pkg) -# FORCE_PKG_REGISTER - If set, it will overwrite any existing package -# registration information in ${PKG_DBDIR}/${PKGNAME}. -# NO_MTREE - If set, will not invoke mtree from bsd.port.mk from -# the "install" target. -# MTREE_FILE - The name of the mtree file (default: /etc/mtree/BSD.x11.dist -# if USE_X_PREFIX is set, /etc/mtree/BSD.local.dist -# otherwise.) # -# NO_BUILD - Use a dummy (do-nothing) build target. -# NO_CDROM - Port may not go on CDROM. Set this string to reason. -# NO_DESCRIBE - Use a dummy (do-nothing) describe target. -# NO_EXTRACT - Use a dummy (do-nothing) extract target. -# NO_INSTALL - Use a dummy (do-nothing) install target. -# NO_PACKAGE - Use a dummy (do-nothing) package target. -# NO_LATEST_LINK - Do not install the "Latest" link for package. Define this -# if this port is a beta version of another stable port -# which is also in the tree. -# NO_PKG_REGISTER - Don't register a port install as a package. -# NO_WRKSUBDIR - Assume port unpacks directly into ${WRKDIR}. -# NO_WRKDIR - There's no work directory at all; port does this someplace -# else. -# NO_DEPENDS - Don't verify build of dependencies. -# BROKEN - Port is broken. Set this string to the reason why. -# RESTRICTED - Port is restricted. Set this string to the reason why. +# These three variables are typically set in /etc/make.conf to indicate +# the user's preferred location to fetch files from. +# +# MASTER_SITE_BACKUP - Backup location(s) for distribution files and patch +# files if not found locally and ${MASTER_SITES}/${PATCH_SITES} +# (default: +# ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/) +# MASTER_SITE_OVERRIDE - If set, override the MASTER_SITES setting with this +# value. +# MASTER_SITE_FREEBSD - If set, only use ${MASTER_SITE_BACKUP} for +# MASTER_SITES. +# +# Set these if your port should not be built under certain circumstances. +# These are string variables; you should set them to the reason why +# they are restricted. +# +# RESTRICTED - Port is restricted (e.g., contains cryptography, etc.). +# NO_CDROM - Port may not go on CDROM. +# NO_PACKAGE - Port should not be packaged but distfiles can be put on +# ftp sites and CDROMs. +# BROKEN - Port is broken. +# +# This variable is a boolean, so you don't need to set it to the reason. +# +# IS_INTERACTIVE - Set this if your port needs to interact with the user +# during a build. User can then decide to skip this port by +# setting ${BATCH}, or compiling only the interactive ports +# by setting ${INTERACTIVE}. +# +# Use these if your port uses some of the common software packages. +# # USE_GMAKE - Says that the port uses gmake. +# GMAKE - Set to path of GNU make if not in $PATH (default: gmake). # USE_AUTOCONF - Says that the port uses autoconf. Implies GNU_CONFIGURE. +# AUTOCONF - Set to path of GNU autoconf if not in $PATH (default: +# autoconf). # USE_PERL5 - Says that the port uses perl5 for building and running. +# PERL_VERSION - Full version of perl5 (see below for current value). +# PERL_VER - Short version of perl5 (see below for current value). # USE_IMAKE - Says that the port uses imake. Implies USE_X_PREFIX. -# USE_X_PREFIX - Says that the port installs in ${X11BASE}. Implies USE_XLIB. -# USE_XLIB - Says that the port uses X libraries. +# XMKMF - Set to path of `xmkmf' if not in $PATH (default: xmkmf -a ). # NO_INSTALL_MANPAGES - For imake ports that don't like the install.man # target. -# HAS_CONFIGURE - Says that the port has its own configure script. -# GNU_CONFIGURE - Set if you are using GNU configure (optional). -# CONFIGURE_SCRIPT - Name of configure script, defaults to 'configure'. -# CONFIGURE_ARGS - Pass these args to configure if ${HAS_CONFIGURE} is set. -# CONFIGURE_ENV - Pass these env (shell-like) to configure if -# ${HAS_CONFIGURE} is set. -# SCRIPTS_ENV - Additional environment vars passed to scripts in -# ${SCRIPTDIR} executed by bsd.port.mk. -# MAKE_ENV - Additional environment vars passed to sub-make in build -# stage. -# IS_INTERACTIVE - Set this if your port needs to interact with the user -# during a build. User can then decide to skip this port by -# setting ${BATCH}, or compiling only the interactive ports -# by setting ${INTERACTIVE}. -# FETCH_DEPENDS - A list of "path:dir" pairs of other ports this +# USE_X_PREFIX - Says that the port installs in ${X11BASE}. Implies USE_XLIB. +# USE_XLIB - Says that the port uses X libraries. +# USE_QT - Says that the port uses the latest version of qt toolkit. +# +# Dependency checking. Use these if your port requires another port +# not in the list above. +# +# FETCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends in the "fetch" stage. "path" is the # name of a file if it starts with a slash (/), an # executable otherwise. make will test for the # existence (if it is a full pathname) or search for # it in your $PATH (if it is an executable) and go # into "dir" to do a "make all install" if it's not -# found. -# BUILD_DEPENDS - A list of "path:dir" pairs of other ports this +# found. If the third field ("target") exists, it will +# be used instead of ${DEPENDS_TARGET}. +# BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends to build (between the "extract" and # "build" stages, inclusive). The test done to # determine the existence of the dependency is the -# same as FETCH_DEPENDS. -# RUN_DEPENDS - A list of "path:dir" pairs of other ports this +# same as FETCH_DEPENDS. If the third field ("target") +# exists, it will be used instead of ${DEPENDS_TARGET}. +# RUN_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends to run. The test done to determine # the existence of the dependency is the same as # FETCH_DEPENDS. This will be checked during the # "install" stage and the name of the dependency will -# be put into the package as well. -# LIB_DEPENDS - A list of "lib:dir" pairs of other ports this package -# depends on. "lib" is the name of a shared library. +# be put into the package as well. If the third field +# ("target") exists, it will be used instead of +# ${DEPENDS_TARGET}. +# LIB_DEPENDS - A list of "lib:dir[:target]" tuples of other ports this +# package depends on. "lib" is the name of a shared library. # make will use "ldconfig -r" to search for the # library. Note that lib can be any regular expression, # and you need two backslashes in front of dots (.) to # supress its special meaning (e.g., use # "foo\\.2\\.:${PORTSDIR}/utils/foo" to match "libfoo.2.*"). -# DEPENDS - A list of other ports this package depends on being -# made first. Use this for things that don't fall into -# the above two categories. -# EXTRACT_CMD - Command for extracting archive (default: tar). -# EXTRACT_SUFX - Suffix for archive names (default: .tar.gz). -# EXTRACT_BEFORE_ARGS - -# Arguments to ${EXTRACT_CMD} before filename -# (default: -xzf). -# EXTRACT_AFTER_ARGS - -# Arguments to ${EXTRACT_CMD} following filename -# (default: none). +# If the third field ("target") exists, it will be used +# instead of ${DEPENDS_TARGET}. +# DEPENDS - A list of "dir[:target]" tuples of other ports this +# package depends on being made first. Use this only for +# things that don't fall into the above four categories. +# If the second field ("target") exists, it will be used +# instead of ${DEPENDS_TARGET}. +# DEPENDS_TARGET - The default target to execute when a port is calling a +# dependency (default: "install"). # -# FETCH_CMD - Full path to ftp/http fetch command if not in $PATH -# (default: /usr/bin/fetch). -# FETCH_BEFORE_ARGS - -# Arguments to ${FETCH_CMD} before filename (default: none). -# FETCH_AFTER_ARGS - -# Arguments to ${FETCH_CMD} following filename (default: none). +# Various directory definitions and variables to control them. +# You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR. +# +# X11BASE - Where X11 ports install things (default: /usr/X11R6). +# LOCALBASE - Where non-X11 ports install things (default: /usr/local). +# PREFIX - Where *this* port installs its files (default: ${X11BASE} +# if USE_X_PREFIX is set, otherwise ${LOCALBASE}). +# PORTSDIR - The root of the ports tree. Defaults: +# FreeBSD/OpenBSD: /usr/ports +# NetBSD: /usr/opt +# DISTDIR - Where to get gzip'd, tarballed copies of original sources +# (default: ${PORTSDIR}/distfiles). +# PACKAGES - A top level directory where all packages go (rather than +# going locally to each port). (default: ${PORTSDIR}/packages). +# WRKDIR - A temporary working directory that gets *clobbered* on clean +# (default: ${.CURDIR}/work). +# WRKSRC - A subdirectory of ${WRKDIR} where the distribution actually +# unpacks to. (Default: ${WRKDIR}/${DISTNAME} unless +# NO_WRKSUBDIR is set, in which case simply ${WRKDIR}). +# NO_WRKSUBDIR - Assume port unpacks directly into ${WRKDIR}. +# NO_WRKDIR - There's no work directory at all; port does this someplace +# else. +# PATCHDIR - A directory containing any additional patches you made +# to port this software to FreeBSD (default: +# ${.CURDIR}/patches) +# SCRIPTDIR - A directory containing any auxiliary scripts +# (default: ${.CURDIR}/scripts) +# FILESDIR - A directory containing any miscellaneous additional files. +# (default: ${.CURDIR}/files) +# PKGDIR - A direction containing any package creation files. +# (default: ${.CURDIR}/pkg) # # Motif support: # @@ -205,15 +207,6 @@ # MOTIF_ONLY - If set, build Motif ports only. (Not much use except for # building packages.) # -# Variables to change if you want a special behavior: -# -# ECHO_MSG - Used to print all the '===>' style prompts - override this -# to turn them off (default: /bin/echo). -# DEPENDS_TARGET - The target to execute when a port is calling a -# dependency (default: "install"). -# PATCH_DEBUG - If set, print out more information about the patches as -# it attempts to apply them. -# # Variables that serve as convenient "aliases" for your *-install targets. # Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin". # @@ -222,15 +215,24 @@ # INSTALL_DATA - A command to install sharable data. # INSTALL_MAN - A command to install manpages (doesn't compress). # -# If your port doesn't automatically compress manpages, set the following. -# Depending on the setting of NOMANCOMPRESS, the make rules will compress -# the manpages for you. +# Set the following to specify all manpages that your port installs. +# These manpages will be automatically listed in ${PLIST}. Depending +# on the setting of NOMANCOMPRESS, the make rules will compress the +# manpages for you. # # MAN<sect> - A list of manpages, categorized by section. For # example, if your port has "man/man1/foo.1" and # "man/mann/bar.n", set "MAN1=foo.1" and "MANN=bar.n". # The available sections chars are "123456789LN". # MANPREFIX - The directory prefix for ${MAN<sect>} (default: ${PREFIX}). +# MAN<sect>PREFIX - If manual pages of some sections install in different +# locations than others, use these (default: ${MANPREFIX}). +# MANCOMPRESSED - This variable can take values "yes", "no" or +# "maybe". "yes" means manpages are installed +# compressed; "no" means they are not; "maybe" means +# it changes depending on the value of +# NOMANCOMPRESS. The default is "yes" if USE_IMAKE +# is set and "no" if not. # # Default targets and their behaviors: # @@ -264,6 +266,106 @@ # # NEVER override the "regular" targets unless you want to open # a major can of worms. +# +# Set these variables if your port doesn't need some of the steps. +# Note that there are no NO_PATCH or NO_CONFIGURE variables becuase +# those steps are empty by default. Also, NO_CHECKSUM is a user variable +# and is not to be set in a port's Makefile. See above for NO_PACKAGE. +# +# NO_EXTRACT - Use a dummy (do-nothing) extract target. +# NO_BUILD - Use a dummy (do-nothing) build target. +# NO_INSTALL - Use a dummy (do-nothing) install target. +# +# Here are some variables used in various stages. +# +# For fetch: +# +# FETCH_CMD - Full path to ftp/http fetch command if not in $PATH +# (default: /usr/bin/fetch). +# FETCH_BEFORE_ARGS - +# Arguments to ${FETCH_CMD} before filename (default: none). +# FETCH_AFTER_ARGS - +# Arguments to ${FETCH_CMD} following filename (default: none). +# +# For extract: +# +# EXTRACT_CMD - Command for extracting archive (default: tar). +# EXTRACT_BEFORE_ARGS - +# Arguments to ${EXTRACT_CMD} before filename +# (default: -xzf). +# EXTRACT_AFTER_ARGS - +# Arguments to ${EXTRACT_CMD} following filename +# (default: none). +# +# For configure: +# +# HAS_CONFIGURE - Says that the port has its own configure script. The +# configure stage will not do anything if this is not set. +# GNU_CONFIGURE - Set if you are using GNU configure (optional). Implies +# HAS_CONFIGURE. +# CONFIGURE_SCRIPT - Name of configure script (defaults: configure). +# CONFIGURE_ARGS - Pass these args to configure if ${HAS_CONFIGURE} is set. +# CONFIGURE_ENV - Pass these env (shell-like) to configure if +# ${HAS_CONFIGURE} is set. +# +# For build and install: +# +# MAKE_ENV - Additional environment vars passed to sub-make in build +# and install stages (default: see below). +# +# For install: +# +# NO_MTREE - If set, will not invoke mtree from bsd.port.mk from +# the "install" target. +# MTREE_FILE - The name of the mtree file (default: /etc/mtree/BSD.x11.dist +# if USE_X_PREFIX is set, /etc/mtree/BSD.local.dist +# otherwise.) +# PLIST - Name of the `packing list' file (default: ${PKGDIR}/PLIST). +# Change this to ${WRKDIR}/PLIST or something if you +# need to write to it. (It is not a good idea for a port +# to write to any file outside ${WRKDIR} during a normal +# build.) +# TMPPLIST - Name of the `packing list' file after processing +# (default: ${WRKDIR}/.PLIST.mktmp). +# PLIST_SUB - List of "variable=value" pair for substitution in ${PLIST} +# (default: see below). +# +# Note that the install target will automatically add manpages (see +# above) and also substitute special sequence of characters (delimited +# by "%%") as defined in PLIST_SUB to generate ${TMPPLIST}. For +# instance, "OSREL=${OSREL}" in PLIST_SUB causes all occurrences of +# "%%OSREL%%" in ${PLIST} to be substituted by the value of OSREL. +# ${TMPPLIST} is generated between the do-install and post-install +# stages. If you are generating the packing list on-the-fly, make +# sure it's generated by the end of do-install! +# +# For package: +# +# NO_LATEST_LINK - Do not install the "Latest" link for package. Define this +# if this port is a beta version of another stable port +# which is also in the tree. +# +# This is used in all stages: +# +# SCRIPTS_ENV - Additional environment vars passed to scripts in +# ${SCRIPTDIR} executed by bsd.port.mk (default: see below). +# +# Finally, variables to change if you want a special behavior. These +# are for debugging purposes. Don't set them in your Makefile. +# +# ECHO_MSG - Used to print all the '===>' style prompts - override this +# to turn them off (default: /bin/echo). +# PATCH_DEBUG - If set, print out more information about the patches as +# it attempts to apply them. +# PKG_DBDIR - Where package installation is recorded (default: /var/db/pkg) +# NO_PKG_REGISTER - Don't register a port install as a package. +# FORCE_PKG_REGISTER - If set, it will overwrite any existing package +# registration information in ${PKG_DBDIR}/${PKGNAME}. +# NO_DEPENDS - Don't verify build of dependencies. +# NO_CHECKSUM - Don't verify the checksum. Typically used when +# when you noticed the distfile you just fetched has +# a different checksum and you intend to verify if +# the port still works with it. # Get the architecture ARCH!= uname -m @@ -352,8 +454,23 @@ PKGDIR?= ${.CURDIR}/pkg .endif +.if defined(MANCOMPRESSED) +.if ${MANCOMPRESSED} != yes && ${MANCOMPRESSED} != no && \ + ${MANCOMPRESSED} != maybe +.BEGIN: + @${ECHO_MSG} "Error: Value of MANCOMPRESSED (is \"${MANCOMPRESSED}\") can only be \"yes\", \"no\" or \"maybe\"" + @${FALSE} +.endif +.endif + +.if defined(USE_IMAKE) && ${OPSYS} != OpenBSD +MANCOMPRESSED?= yes +.else +MANCOMPRESSED?= no +.endif + .if defined(USE_IMAKE) -USE_X_PREFIX= yes +USE_X_PREFIX= yes .endif .if defined(USE_X_PREFIX) USE_XLIB= yes @@ -424,7 +541,7 @@ MAKE_FLAGS?= -f MAKEFILE?= Makefile -MAKE_ENV+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} MOTIFLIB="${MOTIFLIB}" CFLAGS="${CFLAGS}" +MAKE_ENV+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} MOTIFLIB="${MOTIFLIB}" CFLAGS="${CFLAGS}" LIBDIR="${LIBDIR}" .if exists(/usr/bin/fetch) FETCH_CMD?= /usr/bin/fetch @@ -507,7 +624,7 @@ COMMENT?= ${PKGDIR}/COMMENT DESCR?= ${PKGDIR}/DESCR PLIST?= ${PKGDIR}/PLIST -TMPPLIST?= ${WRKDIR}/PLIST.mktmp +TMPPLIST?= ${WRKDIR}/.PLIST.mktmp PKG_CMD?= /usr/sbin/pkg_create .if !defined(PKG_ARGS) @@ -767,7 +884,7 @@ __MANPAGES:= ${_MANPAGES:S^${PREFIX}/^^:S/""//:S^//^/^g:S/$/.gz/} .endif -.if defined(_MANPAGES) && defined(MANCOMPRESSED) +.if defined(_MANPAGES) && ${MANCOMPRESSED} == "yes" _MANPAGES:= ${_MANPAGES:S/$/.gz/} .endif @@ -1121,7 +1238,7 @@ .if !target(do-package) do-package: - @if [ -e ${PLIST} ]; then \ + @if [ -e ${TMPPLIST} ]; then \ ${ECHO_MSG} "===> Building package for ${PKGNAME}"; \ if [ -d ${PACKAGES} ]; then \ if [ ! -d ${PKGREPOSITORY} ]; then \ @@ -1229,31 +1346,28 @@ fi .endif .endif -.if (make(real-install) || make(real-package)) && exists(${PLIST}) - @>${TMPPLIST} -.for man in ${__MANPAGES} - @${ECHO} ${man} >> ${TMPPLIST} -.endfor - @${SED} ${_sedsubplist} ${PLIST} >> ${TMPPLIST} -.endif @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} ${.TARGET:S/^real-/pre-/} @if [ -f ${SCRIPTDIR}/${.TARGET:S/^real-/pre-/} ]; then \ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/${.TARGET:S/^real-/pre-/}; \ fi @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} ${.TARGET:S/^real-/do-/} +# put here so ports can change the contents of ${TMPPLIST} if necessary +.if make(real-install) + @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} generate-plist +.endif @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} ${.TARGET:S/^real-/post-/} @if [ -f ${SCRIPTDIR}/${.TARGET:S/^real-/post-/} ]; then \ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/${.TARGET:S/^real-/post-/}; \ fi .if make(real-install) && defined(_MANPAGES) -.if defined(MANCOMPRESSED) && defined(NOMANCOMPRESS) +.if ${MANCOMPRESSED} == yes && defined(NOMANCOMPRESS) @${ECHO_MSG} "===> Uncompressing manual pages for ${PKGNAME}" .for manpage in ${_MANPAGES} @${GUNZIP_CMD} ${manpage} .endfor -.elif !defined(MANCOMPRESSED) && !defined(NOMANCOMPRESS) +.elif ${MANCOMPRESSED} == no && !defined(NOMANCOMPRESS) @${ECHO_MSG} "===> Compressing manual pages for ${PKGNAME}" .for manpage in ${_MANPAGES} @${GZIP_CMD} ${manpage} @@ -1536,7 +1650,7 @@ if [ -d $$dir ]; then \ (cd $$dir ; ${MAKE} package-name package-depends); \ else \ - ${ECHO_MSG} "Warning: \"$$dir\" non-existent -- @pkgdep registration incomplete" >&2; \ + ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ fi; \ done .endif @@ -1706,7 +1820,11 @@ .if !target(depends-list) depends-list: @for dir in `${ECHO} "${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u` `${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | sort -u`; do \ - (cd $$dir; ${MAKE} package-name depends-list); \ + if [ -d $$dir ]; then \ + (cd $$dir ; ${MAKE} package-name depends-list); \ + else \ + ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ + fi; \ done .endif @@ -1788,13 +1906,25 @@ .endif .endif +# Generate packing list. Also tests to make sure all required package +# files exist. + +.if !target(generate-plist) +generate-plist: + @if [ ! -f ${PLIST} -o ! -f ${COMMENT} -o ! -f ${DESCR} ]; then ${ECHO} "** Missing package files for ${PKGNAME}."; exit 1; fi + @>${TMPPLIST} +.for man in ${__MANPAGES} + @${ECHO} ${man} >> ${TMPPLIST} +.endfor + @${SED} ${_sedsubplist} ${PLIST} >> ${TMPPLIST} +.endif + # Fake installation of package so that user can pkg_delete it later. # Also, make sure that an installed port is recognized correctly in # accordance to the @pkgdep directive in the packing lists .if !target(fake-pkg) fake-pkg: - @if [ ! -f ${TMPPLIST} -o ! -f ${COMMENT} -o ! -f ${DESCR} ]; then ${ECHO} "** Missing package files for ${PKGNAME} - installation not recorded."; exit 1; fi @if [ ! -d ${PKG_DBDIR} ]; then ${RM} -f ${PKG_DBDIR}; ${MKDIR} ${PKG_DBDIR}; fi .if defined(FORCE_PKG_REGISTER) @${RM} -rf ${PKG_DBDIR}/${PKGNAME} To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808240555.WAA02341>