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>