9e0c502480
Build depends are target packages that are needed at build-time for, e.g., static libraries to link against, header files to include, &c. Tool depends are native packages that are needed at build-time for, e.g., compilers/linkers/&c. to run. ok agc
110 lines
2.9 KiB
Makefile
110 lines
2.9 KiB
Makefile
# $NetBSD: pkg-rpm.mk,v 1.5 2013/05/09 23:37:26 riastradh Exp $
|
|
#
|
|
# RPM package format
|
|
#
|
|
# Package-settable variables:
|
|
#
|
|
# RPM2PKG_PLIST
|
|
# This is the path to the PLIST created by rpm2pkg(8) which will
|
|
# list the files and directories extracted from the RPMs. If
|
|
# this is empty, then no PLIST is created.
|
|
#
|
|
# Default value: ${WRKDIR}/.PLIST.rpm2pkg
|
|
#
|
|
# RPM2PKG_PREFIX
|
|
# This is the directory under which the contents of the RPMs will
|
|
# be extracted. This directory is stripped from the paths which
|
|
# are stored in ${RPM2PKG_PLIST}.
|
|
#
|
|
# Default value: ${WRKDIR}
|
|
#
|
|
# RPM2PKG_SUBPREFIX
|
|
# This is the subdirectory under ${RPM2PKG_PREFIX} within which
|
|
# the RPMs are directly extracted. If this is empty, then the
|
|
# RPMs are extracted directly into ${RPM2PKG_PREFIX}.
|
|
#
|
|
# Default value: empty
|
|
#
|
|
# RPM2PKG_STRIP
|
|
# This is the number of path components to strip from the head
|
|
# of paths of files and directories stored in the RPMs during
|
|
# extraction. RPMs usually store all paths with a leading path
|
|
# component of ``./''.
|
|
#
|
|
# Default value: 1
|
|
#
|
|
# RPM2PKG_STAGE
|
|
# Stage at which to run the ``extract-rpm'' target.
|
|
#
|
|
# Default value: do-extract
|
|
#
|
|
# RPMFILES
|
|
# The list of paths to RPMs to extract using rpm2pkg(8).
|
|
#
|
|
# Default value: all *.rpm files in DISTFILES located in ${_DISTDIR}
|
|
#
|
|
# RPMIGNOREPATH
|
|
# The list of files or paths to skip during extraction of the RPMs.
|
|
#
|
|
# Default value: undefined
|
|
#
|
|
# Public targets:
|
|
#
|
|
# extract-rpm
|
|
# Runs rpm2pkg(8) with the appropriate arguments based on the
|
|
# RPM* variables set in the package Makefile to extract the
|
|
# files listed in RPMFILES.
|
|
#
|
|
|
|
TOOL_DEPENDS+= rpm2pkg>=3.1.4:../../pkgtools/rpm2pkg
|
|
EVAL_PREFIX+= _RPM2PKG_PREFIX=rpm2pkg
|
|
RPM2PKG= ${_RPM2PKG_PREFIX}/sbin/rpm2pkg
|
|
|
|
RPMFILES?= ${DISTFILES:M*.rpm:S/^/${_DISTDIR}\//}
|
|
BUILD_DEFS+= RPMFILES
|
|
.if defined(RPMIGNOREPATH)
|
|
BUILD_DEFS+= RPMIGNOREPATH
|
|
.endif
|
|
|
|
RPM2PKGSTRIP?= ${RPM2PKG_STRIP}
|
|
|
|
RPM2PKG_STRIP?= 1
|
|
RPM2PKG_PREFIX?= ${WRKDIR}
|
|
RPM2PKG_SUBPREFIX?= # empty
|
|
RPM2PKG_PLIST?= ${WRKDIR}/.PLIST.rpm2pkg
|
|
|
|
# By default, extract the RPMs during the do-extract step.
|
|
RPM2PKG_STAGE?= do-extract
|
|
|
|
RPM2PKG_ARGS_DFLT= -d ${RPM2PKG_PREFIX:Q}
|
|
.if !empty(RPM2PKG_SUBPREFIX)
|
|
RPM2PKG_ARGS_DFLT+= -p ${RPM2PKG_SUBPREFIX:Q}
|
|
.endif
|
|
.if !empty(RPM2PKG_PLIST)
|
|
RPM2PKG_ARGS_DFLT+= -f ${RPM2PKG_PLIST:Q}
|
|
.endif
|
|
.if empty(RPM2PKG_STRIP:M0)
|
|
RPM2PKG_ARGS_DFLT+= -s ${RPM2PKG_STRIP}
|
|
.endif
|
|
.for _ignoredir_ in ${RPMIGNOREPATH}
|
|
RPM2PKG_ARGS_DFLT+= -i ${_ignoredir_}
|
|
.endfor
|
|
RPM2PKG_ARGS?= ${RPM2PKG_ARGS_DFLT}
|
|
|
|
PLIST_SRC_DFLT+= ${RPM2PKG_PLIST}
|
|
|
|
# We handle the extraction of the RPMs in the extract-rpm target below.
|
|
EXTRACT_ONLY?= # empty
|
|
|
|
# Usually, packages we install via RPMs also install shared libraries.
|
|
_EMUL_RUN_LDCONFIG= yes
|
|
|
|
.PHONY: extract-rpm
|
|
extract-rpm:
|
|
@${STEP_MSG} "Extracting RPM files"
|
|
.if !empty(RPM2PKG_PLIST)
|
|
${RUN} ${RM} -f ${RPM2PKG_PLIST}
|
|
.endif
|
|
${RUN} ${RPM2PKG} ${RPM2PKG_ARGS} ${RPMFILES}
|
|
|
|
${RPM2PKG_STAGE}: extract-rpm
|