[Midnightbsd-cvs] mports [16216] trunk/Mk: add uses approach to downloads
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat Apr 12 19:41:42 EDT 2014
Revision: 16216
http://svnweb.midnightbsd.org/mports/?rev=16216
Author: laffer1
Date: 2014-04-12 19:41:42 -0400 (Sat, 12 Apr 2014)
Log Message:
-----------
add uses approach to downloads
Modified Paths:
--------------
trunk/Mk/bsd.mport.mk
Added Paths:
-----------
trunk/Mk/extensions/dos2unix.mk
trunk/Mk/extensions/makeself.mk
trunk/Mk/extensions/tar.mk
trunk/Mk/extensions/zip.mk
Modified: trunk/Mk/bsd.mport.mk
===================================================================
--- trunk/Mk/bsd.mport.mk 2014-04-12 23:41:28 UTC (rev 16215)
+++ trunk/Mk/bsd.mport.mk 2014-04-12 23:41:42 UTC (rev 16216)
@@ -38,6 +38,7 @@
INDEXDIR?= ${PORTSDIR}
INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/}
LIB_DIRS?= /lib /usr/lib ${LOCALBASE}/lib
+NOTPHONY?=
TARGETDIR:= ${DESTDIR}${PREFIX}
@@ -55,6 +56,11 @@
# Fake targets override this when they submake.
TRUE_PREFIX?= ${PREFIX}
+# make sure bmake treats -V as expected
+.MAKE.EXPAND_VARIABLES= yes
+# tell bmake we use the old :L :U modifiers
+.MAKE.FreeBSD_UL= yes
+
.include "${MPORTCOMPONENTS}/commands.mk"
# Figure out where the local mtree file is
@@ -73,6 +79,19 @@
MTREE_ARGS?= -U ${MTREE_FOLLOWS_SYMLINKS} -f ${MTREE_FILE} -d -e -p
MTREE_LINUX_ARGS?= -U ${MTREE_FOLLOWS_SYMLINKS} -f ${MTREE_LINUX_FILE} -d -e -p
+.if defined(USE_DOS2UNIX)
+.if ${USE_DOS2UNIX:U}=="YES"
+DOS2UNIX_REGEX?= .*
+.else
+.if ${USE_DOS2UNIX:M*/*}
+DOS2UNIX_FILES+= ${USE_DOS2UNIX}
+.else
+DOS2UNIX_GLOB+= ${USE_DOS2UNIX}
+.endif
+.endif
+EXTENSIONS+= dos2unix
+.endif
+
.if !defined(UID)
UID!= ${ID} -u
.endif
@@ -208,8 +227,6 @@
UNIQUENAME?= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}
.endif
-DOS2UNIX_REGEX?= .*
-
# At least KDE needs TMPDIR for the package building,
# so we're setting it to the known default value.
.if defined(PACKAGE_BUILDING)
@@ -337,10 +354,11 @@
_ALL_EXT= charsetfix pathfix pkgconfig compiler kmod uidfix \
linux_rpm linux_apps xorg fortran \
gcc fmake fpc gmake bison local perl5 openssl \
- apache autotools bdb cmake display efl emacs fuse \
+ apache autotools bdb cmake display dos2unix efl emacs fuse \
gecko gettext gnome gnustep gstreamer iconv imake \
- kde4 ldap libtool lua mysql ncurses ocaml openal \
- pgsql php python java qt ruby scons sdl sqlite tcl wx xfce
+ kde4 ldap libtool lua makeself mysql ncurses ocaml openal \
+ pgsql php python java qt ruby scons sdl sqlite \
+ tar tcl wx xfce zip
.for EXT in ${_ALL_EXT:U}
. if defined(USE_${EXT}) || defined(USE_${EXT}_RUN) || defined(USE_${EXT}_BUILD) || defined(WANT_${EXT}) || defined(_LOAD_${EXT}_EXT)
@@ -367,11 +385,11 @@
.endif
.if defined(USE_BZIP2)
-EXTRACT_SUFX?= .tar.bz2
+USES+=tar:bzip2
.elif defined(USE_ZIP)
-EXTRACT_SUFX?= .zip
+USES+=zip
.elif defined(USE_XZ)
-EXTRACT_SUFX?= .tar.xz
+USES+=tar:xz
.elif defined(USE_MAKESELF)
EXTRACT_SUFX?= .run
.else
@@ -596,12 +614,6 @@
.if defined(USE_LHA)
EXTRACT_DEPENDS+= lha:${PORTSDIR}/archivers/lha
.endif
-.if defined(USE_ZIP)
-EXTRACT_DEPENDS+= ${LOCALBASE}/bin/unzip:${PORTSDIR}/archivers/unzip
-.endif
-.if defined(USE_XZ) && (${OSVERSION} < 4003)
-EXTRACT_DEPENDS+= ${LOCALBASE}/bin/xz:${PORTSDIR}/archivers/xz
-.endif
.if defined(USE_MAKESELF)
EXTRACT_DEPENDS+= unmakeself:${PORTSDIR}/archivers/unmakeself
.endif
@@ -1008,10 +1020,6 @@
EXTRACT_CMD?= ${LHA_CMD}
EXTRACT_BEFORE_ARGS?= xfqw=${WRKDIR}
EXTRACT_AFTER_ARGS?=
-.elif defined(USE_ZIP)
-EXTRACT_CMD?= ${UNZIP_CMD}
-EXTRACT_BEFORE_ARGS?= -qo
-EXTRACT_AFTER_ARGS?= -d ${WRKDIR}
.elif defined(USE_MAKESELF)
EXTRACT_CMD?= ${UNMAKESELF_CMD}
EXTRACT_BEFORE_ARGS?=
@@ -2163,35 +2171,6 @@
.endif
# Patch
-
-.if !target(patch-dos2unix)
-patch-dos2unix:
-.if defined(USE_DOS2UNIX)
-.if ${USE_DOS2UNIX:U}=="YES"
- @${ECHO_MSG} "===> Converting DOS text files to UNIX text files"
- ${FIND} -E ${WRKSRC} -type f -iregex '${DOS2UNIX_REGEX}' -print0 | \
- ${XARGS} -0 ${REINPLACE_CMD} -i '' -e 's/
-$$//'
-.else
- @${ECHO_MSG} "===> Converting DOS text file to UNIX text file: ${f}"
-.if ${USE_DOS2UNIX:M*/*}
-.for f in ${USE_DOS2UNIX}
- @${REINPLACE_CMD} -i '' -e 's/
-$$//' ${WRKSRC}/${f}
-.endfor
-.else
-.for f in ${USE_DOS2UNIX}
- @${FIND} ${WRKSRC} -type f -name '${f}' -print0 | \
- ${XARGS} -0 ${REINPLACE_CMD} -i '' -e 's/
-$$//'
-.endfor
-.endif
-.endif
-.else
- @${DO_NADA}
-.endif
-.endif
-
.if !target(do-patch)
do-patch:
.if defined(PATCHFILES)
@@ -2636,6 +2615,8 @@
# Please note that the order of the following targets is important, and
# should not be modified.
+_TARGETS_STAGES=SANITY FETCH EXTRACT PATCH CONFIGURE BUILD FAKE PACKAGE INSTALL UPDATE
+
_SANITY_SEQ= pre-everything check-makefile check-categories \
check-makevars check-desktop-entries check-depends \
check-deprecated check-vulnerable check-license buildanyway-message \
@@ -2651,8 +2632,11 @@
post-extract post-extract-script
_PATCH_DEP= extract
-_PATCH_SEQ= ask-license patch-message check-license patch-depends patch-dos2unix \
- pre-patch pre-patch-script do-patch post-patch post-patch-script
+_PATCH_SEQ= ask-license patch-message check-license \
+ patch-depends \
+ pre-patch pre-patch-script \
+ do-patch \
+ post-patch post-patch-script
_CONFIGURE_DEP= patch
_CONFIGURE_SEQ= build-depends lib-depends misc-depends configure-message \
@@ -2744,16 +2728,25 @@
# Enforce order for -jN builds
-.ORDER: ${_SANITY_SEQ}
-.ORDER: ${_FETCH_DEP} ${_FETCH_SEQ}
-.ORDER: ${_EXTRACT_DEP} ${_EXTRACT_SEQ}
-.ORDER: ${_PATCH_DEP} ${_PATCH_SEQ}
-.ORDER: ${_CONFIGURE_DEP} ${_CONFIGURE_SEQ}
-.ORDER: ${_BUILD_DEP} ${_BUILD_SEQ}
-.ORDER: ${_FAKE_DEP} ${_FAKE_SEQ}
-.ORDER: ${_PACKAGE_DEP} ${_PACKAGE_SEQ}
-.ORDER: ${_INSTALL_DEP} ${_INSTALL_SEQ}
-.ORDER: ${_UPDATE_DEP} ${_UPDATE_SEQ}
+.for _t in ${_TARGETS_STAGES}
+. for s in ${_${_t}_SEQ}
+. if target(${s})
+. if ! ${NOTPHONY:M${s}}
+_PHONY_TARGETS+= ${s}
+. endif
+_${_t}_REAL_SEQ+= ${s}
+. endif
+. endfor
+. for s in ${_${_t}_SUSEQ}
+. if target(${s})
+. if ! ${NOTPHONY:M${s}}
+_PHONY_TARGETS+= ${s}
+. endif
+_${_t}_REAL_SUSEQ+= ${s}
+. endif
+. endfor
+.ORDER: ${_${_t}_DEP} ${_${_t}_REAL_SEQ}
+.endfor
extract-message:
@${ECHO_MSG} -e "\033[1m===> Extracting for ${PKGNAME}\033[0m"
@@ -4328,6 +4321,8 @@
.endif
.endif
+.PHONY: ${_PHONY_TARGETS}
+
.endif
# End of post-makefile section.
Added: trunk/Mk/extensions/dos2unix.mk
===================================================================
--- trunk/Mk/extensions/dos2unix.mk (rev 0)
+++ trunk/Mk/extensions/dos2unix.mk 2014-04-12 23:41:42 UTC (rev 16216)
@@ -0,0 +1,41 @@
+# $MidnightBSD$
+#
+# Provide support to convert files from dos2unix
+#
+# DOS2UNIX_REGEX a regular expression to match files that needs to be converted
+# DOS2UNIX_FILES list of files of glob pattern relative to ${WRKSRC}
+# DOS2UNIX_GLOB list of glob pattern find(1) will match with
+#
+
+.if !defined(_INCLUDE_USES_DOS2UNIX_MK)
+_INCLUDE_USES_DOS2UNIX_MK= yes
+
+.if !defined(DOS2UNIX_FILES) && !defined(DOS2UNIX_REGEX) && !defined(DOS2UNIX_GLOB)
+_DOS2UNIX_ALL= yes
+.endif
+
+dos2unix:
+ @${ECHO_MSG} "===> Converting DOS text files to UNIX text files"
+.if defined(_DOS2UNIX_ALL)
+ @${FIND} ${WRKSRC} -type f -print0 | \
+ ${XARGS} -0 ${SED} -i '' -e 's/
+$$//'
+.else
+.if defined(DOS2UNIX_FILES)
+ @(cd ${WRKSRC}; \
+ ${ECHO_CMD} ${DOS2UNIX_FILES} | ${XARGS} ${SED} -i '' -e 's/
+$$//' )
+.elif defined(DOS2UNIX_REGEX)
+ @${FIND} -E ${WRKSRC} -type f -iregex '${DOS2UNIX_REGEX}' -print0 | \
+ ${XARGS} -0 ${SED} -i '' -e 's/
+$$//'
+.else
+.for f in ${DOS2UNIX_GLOB}
+ @${FIND} ${WRKSRC} -type f -name '${f}' -print0 | \
+ ${XARGS} -0 ${SED} -i '' -e 's/
+$$//'
+.endfor
+.endif
+.endif
+
+.endif
Added: trunk/Mk/extensions/makeself.mk
===================================================================
--- trunk/Mk/extensions/makeself.mk (rev 0)
+++ trunk/Mk/extensions/makeself.mk 2014-04-12 23:41:42 UTC (rev 16216)
@@ -0,0 +1,22 @@
+# $MidnightBSD$
+#
+# handle makeself archives
+#
+# Feature: makeself
+# Usage: USES=makeself
+#
+
+.if !defined(_INCLUDE_USES_MAKESELF_Mk)
+_INCLUDE_USES_MAKESELF_MK= yes
+
+.if defined(makeself_ARGS)
+IGNORE= Incorrect 'USES+= makeself:${makeself_ARGS}' makeself takes no arguments
+.endif
+
+EXTRACT_DEPENDS+= ${UNMAKESELF_CMD}:${PORTSDIR}/archivers/unmakeself
+
+EXTRACT_CMD= ${UNMAKESELF_CMD}
+EXTRACT_BEFORE_ARGS=
+EXTRACT_AFTER_ARGS=
+
+.endif
Added: trunk/Mk/extensions/tar.mk
===================================================================
--- trunk/Mk/extensions/tar.mk (rev 0)
+++ trunk/Mk/extensions/tar.mk 2014-04-12 23:41:42 UTC (rev 16216)
@@ -0,0 +1,30 @@
+# $MidnightBSD$
+# handle tar archives
+#
+# Feature: tar
+# Usage: USES=tar[:[xz|lzma|Z|bzip2|tgz|tbz]]
+#
+
+.if !defined(_INCLUDE_USES_TAR_MK)
+_INCLUDE_USES_TAR_MK= yes
+
+tar_ARGS?= none
+
+.if ${tar_ARGS} == xz
+EXTRACT_SUFX?= .tar.xz
+.elif ${tar_ARGS} == lzma
+EXTRACT_SUFX?= .tar.lzma
+.elif ${tar_ARGS} == bzip2
+EXTRACT_SUFX?= .tar.bz2
+.elif ${tar_ARGS} == tgz
+EXTRACT_SUFX?= .tgz
+.elif ${tar_ARGS} == tbz
+EXTRACT_SUFX?= .tbz
+.elif ${tar_ARGS} == Z
+EXTRACT_SUFX?= .tar.Z
+.elif ${tar_ARGS} == none
+EXTRACT_SUFX?= .tar
+.else
+IGNORE= Incorrect 'USES+=tar:${tar_ARGS}'
+.endif
+.endif
Added: trunk/Mk/extensions/zip.mk
===================================================================
--- trunk/Mk/extensions/zip.mk (rev 0)
+++ trunk/Mk/extensions/zip.mk 2014-04-12 23:41:42 UTC (rev 16216)
@@ -0,0 +1,24 @@
+# $MidnightBSD$
+#
+# handle zip archives
+#
+# Feature: zip
+# Usage: USES=zip[:infozip]
+
+.if !defined(_INCLUDE_USES_ZIP_Mk)
+_INCLUDE_USES_ZIP_MK= yes
+
+zip_ARGS?= none
+
+EXTRACT_SUFX?= .zip
+
+.if ${zip_ARGS} == infozip
+EXTRACT_DEPENDS+= ${UNZIP_CMD}:${PORTSDIR}/archivers/unzip
+
+EXTRACT_CMD?= ${UNZIP_CMD}
+EXTRACT_BEFORE_ARGS?= -qo
+EXTRACT_AFTER_ARGS?= -d ${WRKDIR}
+.elif ${zip_ARGS} != none
+IGNORE= Incorrect 'USES+=zip:${zip_ARGS}' expecting 'USES+=zip[:infozip]'
+.endif
+.endif
More information about the Midnightbsd-cvs
mailing list