On Sun, 2019-12-01 at 11:31 +0100, Marc Espie wrote:
> So dpb has been using MAKE_JOBS for a while, and landry said it would be
> cool to actually have it work with regular builds as well.
> 
> This patch:
> - admits that parallel make is going to be used;
> - renames PARALLEL_BUILD to something that reflects its actual usage
> (and consumers as well): PARALLEL_USES_MAKE
> - adds a PARALLEL_MAKE_JOBS that allows the user to tweak the number
> of MAKE_JOBS used if they want (set to hw.ncpuonline)
> 
> 
> The names are somewhat straightforward, though not particularly inspired,
> so I'm game for suggestions.
> 
> The logic itself is also possibly improvable...
> 

I like where this ended up. Thank you.

okay kurt@

> 
> 
> Index: infrastructure/mk/bsd.port.mk
> ===================================================================
> RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
> retrieving revision 1.1505
> diff -u -p -r1.1505 bsd.port.mk
> --- infrastructure/mk/bsd.port.mk     26 Nov 2019 11:49:02 -0000      1.1505
> +++ infrastructure/mk/bsd.port.mk     1 Dec 2019 10:26:58 -0000
> @@ -454,19 +454,23 @@ ALL_FAKE_FLAGS= ${MAKE_FLAGS:N-j[0-9]*} 
>  _PKG_ADD += -L ${LOCALBASE}
>  .endif
>  
> -# XXX this stuff is not production-ready, because there are too many bugs in
> -# parallel make yet.  MAKE_JOBS>1 is known to work on a few ports and used
> -# sparingly by dpb (DPB_PROPERTIES=parallel) for obvious gains.
> +# XXX there are still many bugs in parallel make.
> +# so MAKE_JOBS is used sparingly by dpb for obvious gains.
>  #
> -PARALLEL_BUILD ?= Yes
> -PARALLEL_INSTALL ?= ${PARALLEL_BUILD}
> +PARALLEL_USES_MAKE ?= Yes
> +
> +.if !defined(MAKE_JOBS) && ${DPB_PROPERTIES:Mparallel})
> +.  if defined(PARALLEL_MAKE_JOBS)
> +MAKE_JOBS = ${PARALLEL_MAKE_JOBS}
> +.  else
> +MAKE_JOBS !!= sysctl -n hw.ncpuonline
> +.  endif
> +.endif
>  MAKE_JOBS ?= 1
>  
>  .if ${MAKE_JOBS} != 1
> -.  if ${PARALLEL_BUILD:L} == "yes"
> +.  if ${PARALLEL_USES_MAKE:L} == "yes"
>  MAKE_FLAGS += -j${MAKE_JOBS}
> -.  endif
> -.  if ${PARALLEL_INSTALL:L} == "yes"
>  ALL_FAKE_FLAGS += -j${MAKE_JOBS}
>  .  endif
>  .endif
> Index: editors/libreoffice/Makefile
> ===================================================================
> RCS file: /cvs/ports/editors/libreoffice/Makefile,v
> retrieving revision 1.221
> diff -u -p -r1.221 Makefile
> --- editors/libreoffice/Makefile      6 Nov 2019 12:21:06 -0000       1.221
> +++ editors/libreoffice/Makefile      1 Dec 2019 10:26:58 -0000
> @@ -354,11 +354,11 @@ CONFIGURE_ARGS+=--without-java
>  .endif
>  
>  # XXX libreoffice has its own way to build things in parallel
> -PARALLEL_BUILD = No
> +PARALLEL_USES_MAKE = No
>  .if defined(MAKE_JOBS)
>  NCPU=                ${MAKE_JOBS}
>  .elif ${FLAVOR:Mparallel}
> -NCPU!=               echo $$((`sysctl -n hw.ncpuonline` + 1))
> +NCPU!!=              echo $$((`sysctl -n hw.ncpuonline` + 1))
>  .else
>  NCPU=                1
>  .endif
> Index: devel/jdk/1.8/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/jdk/1.8/Makefile,v
> retrieving revision 1.48
> diff -u -p -r1.48 Makefile
> --- devel/jdk/1.8/Makefile    21 Nov 2019 17:39:08 -0000      1.48
> +++ devel/jdk/1.8/Makefile    1 Dec 2019 10:26:58 -0000
> @@ -84,7 +84,7 @@ USE_GMAKE=  Yes
>  GMAKE=               ${LOCALBASE}/bin/gmake
>  
>  # Don't call make -jN, instead pass MAKE_JOBS to --with-jobs
> -PARALLEL_BUILD=      No
> +PARALLEL_USES_MAKE=  No
>  
>  CONFIGURE_STYLE=gnu
>  CONFIGURE_ARGS=      --disable-option-checking \
> Index: devel/jdk/11/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/jdk/11/Makefile,v
> retrieving revision 1.11
> diff -u -p -r1.11 Makefile
> --- devel/jdk/11/Makefile     26 Oct 2019 17:04:15 -0000      1.11
> +++ devel/jdk/11/Makefile     1 Dec 2019 10:26:58 -0000
> @@ -84,7 +84,7 @@ USE_GMAKE=  Yes
>  GMAKE=               ${LOCALBASE}/bin/gmake
>  
>  # Don't call make -jN, instead pass MAKE_JOBS to --with-jobs
> -PARALLEL_BUILD=      No
> +PARALLEL_USES_MAKE=  No
>  
>  CONFIGURE_STYLE=gnu
>  CONFIGURE_ENV+= AUTOCONF_VERSION=${AUTOCONF_VERSION} \

Reply via email to