Date: Thu, 21 Jun 2012 17:48:29 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r238101 - soc2012/scher/par_ports/head/Mk Message-ID: <20120621174829.852001065673@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: scher Date: Thu Jun 21 17:48:28 2012 New Revision: 238101 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238101 Log: [bugfix] $$(${ALL-DEPENDS-LIST}) does not reflect changes, that were made my config related targets (in case if some option add dependency port, $$(${ALL-DEPENDS-LIST}) does not show this new ped port). It is necessary to call $$(make all-depends-list) to get actual deps list, after evaluating config-conditional target. [bugfix] if some dependency port(A), while processing config related targets, add new dependecy(Z) then parent port(P) does not reflect this change and will not config this new dependency(Z). It is important to config ALL dependency ports before actual parallel build of main port(P). It is necessary to call "${MAKE} locking-config-recursive" recursively for each of the dependecy ports of main port(P) after this port(P) has already been configured. Above mentioned issues allow us to implement processing of interactive stages for some port and all dependency ports before parallel execution flow, reflecting all dynamic changes (based on options processing) in port's dependency tree. Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Thu Jun 21 16:53:52 2012 (r238100) +++ soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Thu Jun 21 17:48:28 2012 (r238101) @@ -182,7 +182,7 @@ [ $${pid} -eq ${.MAKE.PID} ] && exit 0; \ ps -p $${pid} > /dev/null && status=$$? || status=$$?; \ if [ $${status} -eq 0 ]; then \ - if [ ${_lock_dir} = "LOCK_DIR" ]; then \ + if [ ${_lock_dir} = "LOCK_DIR" ] || [ ${_lock_dir} = "PORT_DBDIR" ]; then \ cur_pid=${.MAKE.PID}; \ while true; do \ ppid=$$( ps -o ppid -p $${cur_pid} | ${AWK} "NR==2" ); \ @@ -362,15 +362,16 @@ # End of Locking variables and tools section ##################################################### + locking-config-recursive: locking-config-message lock-port-dbdir config-conditional config-recursive unlock-port-dbdir locking-config-message: @${ECHO_MSG} "===> Setting user-specified options for ${PKGNAME} and dependencies"; config-recursive: - @for dir in $$(${ALL-DEPENDS-LIST}); do \ + @for dir in $$(${MAKE} all-depends-list); do \ while true; do \ - ( cd $$dir; ${MAKE} config-conditional ) || { \ + ( cd $$dir; ${MAKE} locking-config-recursive ) || { \ status=$$?; \ if [ $${status} -eq ${_parv_MAKE_LOCK_EXIT_STATUS} ]; then \ sleep ${_parv_LOCK_ATTEMPT_TIMEOUT}; \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120621174829.852001065673>