pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk Separate out the variables and targets for the "ext...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/47d94d90a562
branches:  trunk
changeset: 493644:47d94d90a562
user:      jlam <jlam%pkgsrc.org@localhost>
date:      Wed May 11 04:01:49 2005 +0000

description:
Separate out the variables and targets for the "extract" phase into a
separate file pkgsrc/mk/bsd.pkg.extract.mk.  Also, include this file
ahead of the inclusion of bsd.tools.mk so that tools required to
extract are created by the tools framework.

diffstat:

 mk/bsd.pkg.extract.mk |  174 ++++++++++++++++++++++++++++++++++++++++++++++++++
 mk/bsd.pkg.mk         |  145 +----------------------------------------
 2 files changed, 178 insertions(+), 141 deletions(-)

diffs (truncated from 351 to 300 lines):

diff -r 522bd18d0ada -r 47d94d90a562 mk/bsd.pkg.extract.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mk/bsd.pkg.extract.mk     Wed May 11 04:01:49 2005 +0000
@@ -0,0 +1,174 @@
+# $NetBSD: bsd.pkg.extract.mk,v 1.1 2005/05/11 04:01:49 jlam Exp $
+#
+# This Makefile fragment is included to bsd.pkg.mk and defines the
+# relevant variables and targets for the "extract" phase.
+#
+# The following variables may be set by the package Makefile and
+# specify how extraction happens:
+#
+#    EXTRACT_ONLY is a list of distfiles relative to ${_DISTDIR} to
+#      extract and defaults to ${DISTFILES}.
+#
+#    EXTRACT_SUFX is the suffix for the default distfile to be
+#      extracted.  The default suffix is ".tar.gz".
+#
+#    EXTRACT_CMD is a shell command list that extracts the contents of
+#      an archive named by the shell variable "extract_file" based on
+#      the extension of the archive.  The extensions understood by
+#      EXTRACT_CMD are listed in _EXTRACT_SUFFIXES.
+#
+#    EXTRACT_CMD.<sufx> is a shell command list that extracts the
+#      contents of an archive named by the shell variable "extract_file"
+#      that ends in <sufx>.
+#
+#    EXTRACT_ELEMENTS is a list of files within the distfile to extract.
+#      This variable only takes effect for distfiles that are tarballs.
+#      By default, this is empty, which causes all files within the
+#      tarball to be extracted.
+#
+# The following targets are defined by bsd.pkg.extract.mk:
+#
+#    do-extract is the target that causes the actual extraction of
+#      the distfiles to occur during the "extract" phase.
+#
+
+EXTRACT_ONLY?=         ${DISTFILES}
+EXTRACT_SUFX?=         .tar.gz
+
+_EXTRACT_SUFFIXES=     .tar.gz .tgz .tar.bz2 .tbz .tar.Z .tar _tar.gz
+_EXTRACT_SUFFIXES+=    .shar.gz .shar.bz2 .shar.Z .shar
+_EXTRACT_SUFFIXES+=    .zip
+_EXTRACT_SUFFIXES+=    .lha .lzh
+_EXTRACT_SUFFIXES+=    .Z .bz2 .gz
+_EXTRACT_SUFFIXES+=    .zoo
+_EXTRACT_SUFFIXES+=    .bin
+_EXTRACT_SUFFIXES+=    .rar
+
+# If the distfile has a tar.bz2 suffix, use bzcat in preference to gzcat,
+# pulling in the "bzip2" package if necessary.  [Note: this is only for
+# the benefit of pre-1.5 NetBSD systems. "gzcat" on newer systems happily
+# decodes bzip2.]  Do likewise for ".zip" and ".lha" distfiles.
+#
+.if !empty(EXTRACT_ONLY:M*.bz2) || !empty(EXTRACT_ONLY:M*.tbz) || \
+    !empty(EXTRACT_SUFX:M*.bz2) || !empty(EXTRACT_SUFX:M*.tbz)
+.  if !empty(_USE_NEW_TOOLS:M[yY][eE][sS])
+PKGSRC_USE_TOOLS+=     bzcat
+.  elif exists(/usr/bin/bzcat)
+BZCAT=                 /usr/bin/bzcat <
+.  else
+BUILD_DEPENDS+=                bzip2>=0.9.0b:../../archivers/bzip2
+BZCAT=                 ${LOCALBASE}/bin/bzcat
+.  endif
+.endif
+.if !empty(EXTRACT_ONLY:M*.zip) || !empty(EXTRACT_SUFX:M*.zip)
+BUILD_DEPENDS+=                unzip-[0-9]*:../../archivers/unzip
+.endif
+.if !empty(EXTRACT_ONLY:M*.lzh) || !empty(EXTRACT_ONLY:M*.lha) || \
+    !empty(EXTRACT_SUFX:M*.lzh) || !empty(EXTRACT_SUFX:M*.lha)
+BUILD_DEPENDS+=                lha>=114.9:../../archivers/lha
+.endif
+.if !empty(EXTRACT_ONLY:M*.gz) || !empty(EXTRACT_ONLY:M*.tgz) || \
+    !empty(EXTRACT_SUFX:M*.gz) || !empty(EXTRACT_SUFX:M*.tgz)
+.  if !empty(_USE_NEW_TOOLS:M[yY][eE][sS])
+PKGSRC_USE_TOOLS+=     gzcat
+.  elif !defined(GZCAT)
+BUILD_DEPENDS+=         gzip-base>=1.2.4b:../../archivers/gzip-base
+GZCAT=                  ${LOCALBASE}/bin/zcat
+.  endif
+.endif
+.if !empty(EXTRACT_ONLY:M*.zoo) || !empty(EXTRACT_SUFX:M*.zoo)
+BUILD_DEPENDS+=                unzoo-[0-9]*:../../archivers/unzoo
+.endif
+.if !empty(EXTRACT_ONLY:M*.rar) || !empty(EXTRACT_SUFX:M*.rar)
+BUILD_DEPENDS+=                unrar>=3.3.4:../../archivers/unrar
+.endif
+
+DECOMPRESS_CMD.tar.gz?=                ${GZCAT}
+DECOMPRESS_CMD.tgz?=           ${DECOMPRESS_CMD.tar.gz}
+DECOMPRESS_CMD.tar.bz2?=       ${BZCAT}
+DECOMPRESS_CMD.tbz?=           ${DECOMPRESS_CMD.tar.bz2}
+DECOMPRESS_CMD.tar.Z?=         ${GZCAT}
+DECOMPRESS_CMD.tar?=           ${CAT}
+
+DECOMPRESS_CMD.shar.gz?=       ${GZCAT}
+DECOMPRESS_CMD.shar.bz2?=      ${BZCAT}
+DECOMPRESS_CMD.shar.Z?=                ${GZCAT}
+DECOMPRESS_CMD.shar?=          ${CAT}
+
+DECOMPRESS_CMD.Z?=             ${GZCAT}
+DECOMPRESS_CMD.bz2?=           ${BZCAT}
+DECOMPRESS_CMD.gz?=            ${GZCAT}
+
+DECOMPRESS_CMD?=               ${GZCAT}
+.for __suffix__ in ${_EXTRACT_SUFFIXES}
+.  if !defined(DECOMPRESS_CMD${__suffix__})
+DECOMPRESS_CMD${__suffix__}?=  ${DECOMPRESS_CMD}
+.  endif
+.endfor
+
+# If this is empty, then everything gets extracted.
+EXTRACT_ELEMENTS?=     # empty
+
+DOWNLOADED_DISTFILE=   $${extract_file}
+
+EXTRACT_CMD.zip?=      ${LOCALBASE}/bin/unzip ${EXTRACT_CMD_OPTS.zip} $${extract_file}
+EXTRACT_CMD_OPTS.zip?= -Laqo
+EXTRACT_CMD.lha?=      ${LOCALBASE}/bin/lha ${EXTRACT_CMD_OPTS.lha} $${extract_file}
+EXTRACT_CMD_OPTS.lha?= xq
+EXTRACT_CMD.lzh?=      ${EXTRACT_CMD.lha}
+EXTRACT_CMD_OPTS.lzh?= ${EXTRACT_CMD_OPTS.lha}
+EXTRACT_CMD.zoo?=      ${LOCALBASE}/bin/unzoo ${EXTRACT_CMD_OPTS.zoo} $${extract_file}
+EXTRACT_CMD_OPTS.zoo?= -x
+EXTRACT_CMD.rar?=      ${LOCALBASE}/bin/unrar ${EXTRACT_CMD_OPTS.rar} $${extract_file}
+EXTRACT_CMD_OPTS.rar?= x -inul
+EXTRACT_ENV.bin?=      # empty
+EXTRACT_CMD.bin?=      ${ECHO} yes | ${SETENV} ${EXTRACT_ENV.bin} $${extract_file} ${EXTRACT_CMD_OPTS.bin} >/dev/null
+
+.for __suffix__ in .gz .bz2 .Z
+EXTRACT_CMD${__suffix__}?=     ${DECOMPRESS_CMD${__suffix__}} $${extract_file} > `${BASENAME} $${extract_file} ${__suffix__}`
+.endfor
+
+.for __suffix__ in .shar.gz .shar.bz2 .shar.Z .shar
+EXTRACT_CMD${__suffix__}?=     ${DECOMPRESS_CMD${__suffix__}} $${extract_file} | ${SH}
+.endfor
+
+# If EXTRACT_USING_PAX is defined, use pax in preference to (GNU) tar.
+#
+.if defined(EXTRACT_USING_PAX)
+_DFLT_EXTRACT_CMD?=    ${DECOMPRESS_CMD} $${extract_file} | ${PAX} -O -r ${EXTRACT_ELEMENTS}
+.else
+_DFLT_EXTRACT_CMD?=    ${DECOMPRESS_CMD} $${extract_file} | ${GTAR} -xf - ${EXTRACT_ELEMENTS}
+.endif
+
+.for __suffix__ in ${_EXTRACT_SUFFIXES}
+.  if !defined(EXTRACT_CMD${__suffix__})
+.    if defined(EXTRACT_USING_PAX)
+EXTRACT_CMD${__suffix__}?=     ${DECOMPRESS_CMD${__suffix__}} $${extract_file} | ${PAX} -O -r ${EXTRACT_ELEMENTS}
+.  else
+EXTRACT_CMD${__suffix__}?=     ${DECOMPRESS_CMD${__suffix__}} $${extract_file} | ${GTAR} -xf - ${EXTRACT_ELEMENTS}
+.    endif
+.  endif
+.endfor
+
+# _SHELL_EXTRACT is a "subroutine" for extracting an archive.  It extracts
+# the contents of archive named by the shell variable "extract_file" based
+# on the file extension of the archive.
+#
+_SHELL_EXTRACT=                case $${extract_file} in
+.for __suffix__ in ${_EXTRACT_SUFFIXES}
+_SHELL_EXTRACT+=       *${__suffix__}) ${EXTRACT_CMD${__suffix__}} ;;
+.endfor
+_SHELL_EXTRACT+=       *)              ${_DFLT_EXTRACT_CMD} ;;
+_SHELL_EXTRACT+=       esac
+
+EXTRACT_CMD?=          ${_SHELL_EXTRACT}
+
+.PHONY: do-extract
+.if !target(do-extract)
+do-extract: ${WRKDIR}
+.  for __file__ in ${EXTRACT_ONLY}
+       ${_PKG_SILENT}${_PKG_DEBUG}                                     \
+       extract_file="${_DISTDIR}/${__file__}"; export extract_file;    \
+       cd ${WRKDIR}; ${EXTRACT_CMD}
+.  endfor
+.endif
diff -r 522bd18d0ada -r 47d94d90a562 mk/bsd.pkg.mk
--- a/mk/bsd.pkg.mk     Wed May 11 02:07:37 2005 +0000
+++ b/mk/bsd.pkg.mk     Wed May 11 04:01:49 2005 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.pkg.mk,v 1.1636 2005/05/11 02:07:37 jlam Exp $
+#      $NetBSD: bsd.pkg.mk,v 1.1637 2005/05/11 04:01:49 jlam Exp $
 #
 # This file is in the public domain.
 #
@@ -156,8 +156,6 @@
 DIGEST_ALGORITHMS?=    SHA1 RMD160
 DISTFILES?=            ${DISTNAME}${EXTRACT_SUFX}
 DISTINFO_FILE?=                ${PKGDIR}/distinfo
-EXTRACT_ONLY?=         ${DISTFILES}
-EXTRACT_SUFX?=         .tar.gz
 INSTALL_DIRS?=         ${BUILD_DIRS}
 INSTALL_MAKE_FLAGS?=   ${MAKE_FLAGS}
 INSTALL_TARGET?=       install
@@ -974,6 +972,9 @@
 PKGSRC_USE_TOOLS+=     mail
 .endif
 
+# Extract
+.include "../../mk/bsd.pkg.extract.mk"
+
 .if !empty(_USE_NEW_TOOLS:M[yY][eE][sS])
 .include "../../mk/tools/bsd.tools.mk"
 .else
@@ -1752,144 +1753,6 @@
 .endif # WRKOBJDIR
 
 
-_EXTRACT_SUFFIXES=     .tar.gz .tgz .tar.bz2 .tbz .tar.Z .tar _tar.gz
-_EXTRACT_SUFFIXES+=    .shar.gz .shar.bz2 .shar.Z .shar
-_EXTRACT_SUFFIXES+=    .zip
-_EXTRACT_SUFFIXES+=    .lha .lzh
-_EXTRACT_SUFFIXES+=    .Z .bz2 .gz
-_EXTRACT_SUFFIXES+=    .zoo
-_EXTRACT_SUFFIXES+=    .bin
-_EXTRACT_SUFFIXES+=    .rar
-
-# If the distfile has a tar.bz2 suffix, use bzcat in preference to gzcat,
-# pulling in the "bzip2" package if necessary.  [Note: this is only for
-# the benefit of pre-1.5 NetBSD systems. "gzcat" on newer systems happily
-# decodes bzip2.]  Do likewise for ".zip" and ".lha" distfiles.
-#
-.if !empty(EXTRACT_ONLY:M*.bz2) || !empty(EXTRACT_ONLY:M*.tbz) || \
-    !empty(EXTRACT_SUFX:M*.bz2) || !empty(EXTRACT_SUFX:M*.tbz)
-.  if !empty(_USE_NEW_TOOLS:M[yY][eE][sS])
-PKGSRC_USE_TOOLS+=     bzcat
-.  elif exists(/usr/bin/bzcat)
-BZCAT=                 /usr/bin/bzcat <
-.  else
-BUILD_DEPENDS+=                bzip2>=0.9.0b:../../archivers/bzip2
-BZCAT=                 ${LOCALBASE}/bin/bzcat
-.  endif
-.endif
-.if !empty(EXTRACT_ONLY:M*.zip) || !empty(EXTRACT_SUFX:M*.zip)
-BUILD_DEPENDS+=                unzip-[0-9]*:../../archivers/unzip
-.endif
-.if !empty(EXTRACT_ONLY:M*.lzh) || !empty(EXTRACT_ONLY:M*.lha) || \
-    !empty(EXTRACT_SUFX:M*.lzh) || !empty(EXTRACT_SUFX:M*.lha)
-BUILD_DEPENDS+=                lha>=114.9:../../archivers/lha
-.endif
-.if !empty(EXTRACT_ONLY:M*.gz) || !empty(EXTRACT_ONLY:M*.tgz) || \
-    !empty(EXTRACT_SUFX:M*.gz) || !empty(EXTRACT_SUFX:M*.tgz)
-.  if !empty(_USE_NEW_TOOLS:M[yY][eE][sS])
-PKGSRC_USE_TOOLS+=     gzcat
-.  elif !defined(GZCAT)
-BUILD_DEPENDS+=         gzip-base>=1.2.4b:../../archivers/gzip-base
-GZCAT=                  ${LOCALBASE}/bin/zcat
-.  endif
-.endif
-.if !empty(EXTRACT_ONLY:M*.zoo) || !empty(EXTRACT_SUFX:M*.zoo)
-BUILD_DEPENDS+=                unzoo-[0-9]*:../../archivers/unzoo
-.endif
-.if !empty(EXTRACT_ONLY:M*.rar) || !empty(EXTRACT_SUFX:M*.rar)
-BUILD_DEPENDS+=                unrar>=3.3.4:../../archivers/unrar
-.endif
-
-DECOMPRESS_CMD.tar.gz?=                ${GZCAT}
-DECOMPRESS_CMD.tgz?=           ${DECOMPRESS_CMD.tar.gz}
-DECOMPRESS_CMD.tar.bz2?=       ${BZCAT}
-DECOMPRESS_CMD.tbz?=           ${DECOMPRESS_CMD.tar.bz2}
-DECOMPRESS_CMD.tar.Z?=         ${GZCAT}
-DECOMPRESS_CMD.tar?=           ${CAT}
-
-DECOMPRESS_CMD.shar.gz?=       ${GZCAT}
-DECOMPRESS_CMD.shar.bz2?=      ${BZCAT}
-DECOMPRESS_CMD.shar.Z?=                ${GZCAT}
-DECOMPRESS_CMD.shar?=          ${CAT}
-
-DECOMPRESS_CMD.Z?=             ${GZCAT}
-DECOMPRESS_CMD.bz2?=           ${BZCAT}
-DECOMPRESS_CMD.gz?=            ${GZCAT}
-
-DECOMPRESS_CMD?=               ${GZCAT}
-.for __suffix__ in ${_EXTRACT_SUFFIXES}
-.  if !defined(DECOMPRESS_CMD${__suffix__})
-DECOMPRESS_CMD${__suffix__}?=  ${DECOMPRESS_CMD}
-.  endif
-.endfor
-
-# If this is empty, then everything gets extracted.
-EXTRACT_ELEMENTS?=     # empty
-
-DOWNLOADED_DISTFILE=   $${extract_file}
-
-EXTRACT_CMD.zip?=      ${LOCALBASE}/bin/unzip ${EXTRACT_CMD_OPTS.zip} $${extract_file}
-EXTRACT_CMD_OPTS.zip?= -Laqo
-EXTRACT_CMD.lha?=      ${LOCALBASE}/bin/lha ${EXTRACT_CMD_OPTS.lha} $${extract_file}
-EXTRACT_CMD_OPTS.lha?= xq
-EXTRACT_CMD.lzh?=      ${EXTRACT_CMD.lha}
-EXTRACT_CMD_OPTS.lzh?= ${EXTRACT_CMD_OPTS.lha}
-EXTRACT_CMD.zoo?=      ${LOCALBASE}/bin/unzoo ${EXTRACT_CMD_OPTS.zoo} $${extract_file}
-EXTRACT_CMD_OPTS.zoo?= -x
-EXTRACT_CMD.rar?=      ${LOCALBASE}/bin/unrar ${EXTRACT_CMD_OPTS.rar} $${extract_file}
-EXTRACT_CMD_OPTS.rar?= x -inul
-EXTRACT_ENV.bin?=      # empty
-EXTRACT_CMD.bin?=      ${ECHO} yes | ${SETENV} ${EXTRACT_ENV.bin} $${extract_file} ${EXTRACT_CMD_OPTS.bin} >/dev/null
-
-.for __suffix__ in .gz .bz2 .Z



Home | Main Index | Thread Index | Old Index