socsvn commit: r236308 - soc2012/scher/par_ports/head/Mk
scher at FreeBSD.org
scher at FreeBSD.org
Thu May 24 18:42:06 UTC 2012
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}
More information about the svn-soc-all
mailing list