[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