113 lines
3 KiB
Makefile
113 lines
3 KiB
Makefile
# $NetBSD: bsd.extract-vars.mk,v 1.21 2022/01/06 10:19:11 schmonz Exp $
|
|
#
|
|
# This file configures how a package extracts its distfiles after
|
|
# downloading them.
|
|
#
|
|
# This Makefile fragment is included separately by bsd.pkg.mk and
|
|
# defines some variables which must be defined earlier than where
|
|
# bsd.extract.mk is included, which defines the other variables.
|
|
#
|
|
# Package-settable variables:
|
|
#
|
|
# EXTRACT_SUFX
|
|
# The suffix for the default distfile to be extracted.
|
|
# Defaults to ".tar.gz".
|
|
#
|
|
# EXTRACT_ONLY
|
|
# The list of distfiles relative to ${_DISTDIR} that are
|
|
# extracted. Defaults to ${DISTFILES}.
|
|
#
|
|
# Only few packages need this variable. To extract some of the
|
|
# distfiles into separate directories, see EXTRACT_DIR.
|
|
#
|
|
# EXTRACT_USING
|
|
# The tool used to extract tar/ustar-format archives when using
|
|
# EXTRACT_CMD_DEFAULT. The possible values are "bsdtar", "gtar",
|
|
# "nbtar", and "pax". Defaults to "nbtar", which means the value
|
|
# of ${TOOL_PLATFORM.tar}, which is typically an arbitrary
|
|
# implementation already found on the platform.
|
|
# \todo: Decide if this is package-settable or user-settable or both.
|
|
|
|
_VARGROUPS+= extract
|
|
_PKG_VARS.extract= EXTRACT_DIR EXTRACT_ONLY EXTRACT_SUFX EXTRACT_CMD \
|
|
EXTRACT_OPTS EXTRACT_USING EXTRACT_ELEMENTS
|
|
_SYS_VARS.extract= EXTRACT_CMD_DEFAULT
|
|
_LISTED_VARS.extract= EXTRACT_CMD EXTRACT_CMD_DEFAULT
|
|
|
|
EXTRACT_ONLY?= ${DISTFILES}
|
|
EXTRACT_SUFX?= .tar.gz
|
|
|
|
EXTRACT_USING?= nbtar
|
|
|
|
###
|
|
### Discover which tools we need based on the file extensions of the
|
|
### distfiles.
|
|
###
|
|
.if !empty(EXTRACT_ONLY:M*.tar) || \
|
|
!empty(EXTRACT_ONLY:M*.tar.*) || \
|
|
!empty(EXTRACT_ONLY:M*.tbz) || \
|
|
!empty(EXTRACT_ONLY:M*.tbz2) || \
|
|
!empty(EXTRACT_ONLY:M*.tgz) || \
|
|
!empty(EXTRACT_ONLY:M*-tar.gz) || \
|
|
!empty(EXTRACT_ONLY:M*_tar.gz)
|
|
. if !empty(EXTRACT_USING:Mbsdtar)
|
|
USE_TOOLS+= bsdtar
|
|
. elif !empty(EXTRACT_USING:Mgtar)
|
|
USE_TOOLS+= gtar
|
|
. elif !empty(EXTRACT_USING:Mnbtar)
|
|
USE_TOOLS+= tar
|
|
. elif !empty(EXTRACT_USING:Mpax)
|
|
USE_TOOLS+= pax
|
|
. endif
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.cpio) || \
|
|
!empty(EXTRACT_ONLY:M*.cpio.bz2) || \
|
|
!empty(EXTRACT_ONLY:M*.cpio.gz)
|
|
USE_TOOLS+= pax
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.bz2) || \
|
|
!empty(EXTRACT_ONLY:M*.tbz) || \
|
|
!empty(EXTRACT_ONLY:M*.tbz2)
|
|
USE_TOOLS+= bzcat
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.lz)
|
|
USE_TOOLS+= lzip
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.lzma)
|
|
USE_TOOLS+= xzcat
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.xz) || \
|
|
!empty(EXTRACT_ONLY:M*.txz)
|
|
USE_TOOLS+= xzcat
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.zip)
|
|
USE_TOOLS+= unzip
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.lzh) || \
|
|
!empty(EXTRACT_ONLY:M*.lha)
|
|
USE_TOOLS+= lha
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.gz) || \
|
|
!empty(EXTRACT_ONLY:M*.tgz) || \
|
|
!empty(EXTRACT_ONLY:M*.Z)
|
|
USE_TOOLS+= gzcat
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.zoo)
|
|
USE_TOOLS+= unzoo
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.rar)
|
|
USE_TOOLS+= unrar
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.rpm)
|
|
USE_TOOLS+= rpm2pkg
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.gem)
|
|
USE_TOOLS+= gem
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.7z)
|
|
USE_TOOLS+= 7za
|
|
.endif
|
|
.if !empty(EXTRACT_ONLY:M*.zst)
|
|
USE_TOOLS+= zstd
|
|
.endif
|
|
|