Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 May 2012 18:42:04 +0000
From:      scher@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r236308 - soc2012/scher/par_ports/head/Mk
Message-ID:  <20120524184204.C5E31106566C@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: scher
Date: Thu May 24 18:42:04 2012
New Revision: 236308
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=236308

Log:
  [new_feature] bsd.parallel.mk: default targets evaluation test.
  bsd.port.mk: includes bsd.parallel.mk. Enables locking/unlocking ${.CURDIR}
  [fixed] bsd.parallel.mk: Changes of LOCK file mod. ps instead of pgrep.
  feedBack messages.
  
  bsd.parallel.mk: Is included in bsd.port.mk. Hence PKG_DBDIR is unnecessary.
  include <bsd.commands.mk> is unnecessary either.
  "ps" command is more appropriate for PID searching.
  .lock file mod is changed to 777. To allow open access.
  More clear feedback messages.
  ${_parv_IS_DEFAULT_TARGET} - trigers default targets, specified by
  _parv_DEFAULT_TARGETS.
  ------------------------------------------------
  bsd.port.mk: include of bsd.parallel.mk is triggered by ${WANT_PARALLEL_BUILD} var.
  Locking/unlocking of port's dir for evaluation of deafault targets.
  
  Submitted by:	Alexander Pronin

Modified:
  soc2012/scher/par_ports/head/Mk/bsd.parallel.mk
  soc2012/scher/par_ports/head/Mk/bsd.port.mk

Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk
==============================================================================
--- soc2012/scher/par_ports/head/Mk/bsd.parallel.mk	Thu May 24 17:39:54 2012	(r236307)
+++ soc2012/scher/par_ports/head/Mk/bsd.parallel.mk	Thu May 24 18:42:04 2012	(r236308)
@@ -5,7 +5,6 @@
 #
 # Please view me with 4 column tabs!
 
-.include <bsd.commands.mk>
 
 
 _dparv_=
@@ -19,8 +18,28 @@
 _dparv_END_OUTPUT= ${ECHO_CMD} ${_dparv_END_OUTPUT_MESSAGE}
 # End of Debugging specific tools and variable declarations section 
 #####################################################
+#####################################################
+_parv_DEFAULT_TARGETS= all check-sanity fetch checksum extract patch configure build install
+_parv_IS_DEFAULT_TARGET= 0
 
-
+# e.g. make "WANT_PARALLEL_BUILD="
+# All target will be evaluated. It is in default sequence
+#
+.if !${.TARGETS}
+_parv_IS_DEFAULT_TARGET= 1
+.else
+_dparv_TARGETS:=${.TARGETS}
+
+.for _called_target in ${.TARGETS}
+_tmp_called_target= ${_called_target}
+.	for _def_target in ${_parv_DEFAULT_TARGETS}
+.		if ${_tmp_called_target} == ${_def_target}
+_parv_IS_DEFAULT_TARGET= 1
+.		endif
+.	endfor
+.endfor
+.endif #!{.TARGETS}
+#####################################################
 #####################################################
 # Commands
 _parv_KILL= /bin/kill
@@ -31,7 +50,7 @@
 #####################################################
 #####################################################
 # Locking variables and tools
-PKG_DBDIR?=		/var/db/pkg
+#PKG_DBDIR?=		/var/db/pkg
 _parv_LOCK_FILE= .lock
 
 _parv_WAIT_FOR_LOCK_TIME= 5
@@ -59,20 +78,21 @@
 # _parv_.CURDIR_LOCK_SEQ
 #
 _parv_${_lock_dir}_LOCK_SEQ= \
+	${CHMOD} 777 ${${_lock_dir}}/${_parv_LOCK_FILE}; \
 	pid=$$(${CAT} ${${_lock_dir}}/${_parv_LOCK_FILE}); \
 	if [ $${pid} ]; then \
-		pgrep -P $${pid} > /dev/null; \
+		ps -p $${pid} > /dev/null; \
 		status=$$(${ECHO_CMD} $$?); \
 		if [ $${status} -eq 0 ]; then \
 			${_dparv_START_OUTPUT}; \
 			${ECHO_CMD} Unable to lock ${${_lock_dir}}; \
-			${ECHO_CMD} Dir: ${${_lock_dir}}   is already locked by another working process ...; \
+			${ECHO_CMD} Dir: ${${_lock_dir}}   is already locked by another working process PID=$${pid}...; \
 			${_dparv_END_OUTPUT}; \
 			${_parv_KILL} ${_parv_KILL_FLAGS} -${.MAKE.PID}; \
 		else \
 			${_dparv_START_OUTPUT}; \
 			${ECHO_CMD} Dir: ${${_lock_dir}}   Stalled lock Detected!; \
-			${ECHO_CMD} Deleting stalled lock; \
+			${ECHO_CMD} Deleting stalled lock. PID=$${pid}; \
 			${ECHO_CMD} Locking: ${${_lock_dir}}; \
 			${_dparv_END_OUTPUT}; \
 			${ECHO_CMD} ${.MAKE.PID} >  ${${_lock_dir}}/${_parv_LOCK_FILE}; \

Modified: soc2012/scher/par_ports/head/Mk/bsd.port.mk
==============================================================================
--- soc2012/scher/par_ports/head/Mk/bsd.port.mk	Thu May 24 17:39:54 2012	(r236307)
+++ soc2012/scher/par_ports/head/Mk/bsd.port.mk	Thu May 24 18:42:04 2012	(r236308)
@@ -1128,6 +1128,17 @@
 
 .include "${PORTSDIR}/Mk/bsd.commands.mk"
 
+############### PAR_PORTS SPECIFIC COMMENT LINE ############### 
+# _parv_WANT_PARALLEL_BUILD	- define this variable if port want to enable
+# parallel build/install features
+#
+
+.if defined(WANT_PARALLEL_BUILD)
+.include "${PORTSDIR}/Mk/bsd.parallel.mk"
+.endif
+
+############### ENDF OF PAR_PORTS SPECIFIC COMMENT LINE  ###############
+
 #
 # DESTDIR section to start a chrooted process if invoked with DESTDIR set
 #
@@ -1514,15 +1525,32 @@
 .include "${PORTSDIR}/Mk/bsd.ncurses.mk"
 .endif
 
-# You can force skipping these test by defining IGNORE_PATH_CHECKS
-.if !defined(IGNORE_PATH_CHECKS)
-.if (${PREFIX:C,(^.).*,\1,} != "/")
+############### PAR_PORTS SPECIFIC COMMENT LINE ############### 
+#
+.if defined(WANT_PARALLEL_BUILD) || !defined(IGNORE_PATH_CHECKS)
 .BEGIN:
+.	if defined(WANT_PARALLEL_BUILD)
+.		if ${_parv_IS_DEFAULT_TARGET}
+	@${_parv_.CURDIR_DO_LOCK}
+.		endif
+.	endif
+# You can force skipping these test by defining IGNORE_PATH_CHECKS
+.	if !defined(IGNORE_PATH_CHECKS)
+.		if (${PREFIX:C,(^.).*,\1,} != "/")
 	@${ECHO_MSG} "PREFIX must be defined as an absolute path so that when 'make'"
 	@${ECHO_MSG} "is invoked in the work area PREFIX points to the right place."
 	@${FALSE}
+.		endif
+.	endif
+.endif #defined(WANT_PARALLEL_BUILD) || !defined(IGNORE_PATH_CHECKS)
+
+.if defined(WANT_PARALLEL_BUILD)
+.END:
+.	if ${_parv_IS_DEFAULT_TARGET}
+	@${_parv_.CURDIR_DO_UNLOCK}
+.	endif
 .endif
-.endif
+############### END OF PAR_PORTS SPECIFIC COMMENT LINE  ###############
 
 # Location of mounted CDROM(s) to search for files
 CD_MOUNTPTS?=	/cdrom ${CD_MOUNTPT}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120524184204.C5E31106566C>