diff --git a/config_host.mk.in b/config_host.mk.in index 4b7bf923a4b9..7ce742cf3987 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -383,6 +383,7 @@ export JDK_FOR_BUILD=@JDK_FOR_BUILD@ export JDK_SECURITYMANAGER_DISALLOWED_FOR_BUILD=@JDK_SECURITYMANAGER_DISALLOWED_FOR_BUILD@ export JFREEREPORT_JAR=@JFREEREPORT_JAR@ export JITC_PROCESSOR_TYPE=@JITC_PROCESSOR_TYPE@ +JOM=@JOM@ export JQ=@JQ@ export JVM_ONE_PATH_CHECK=@JVM_ONE_PATH_CHECK@ export KF5_CFLAGS=$(gb_SPACE)@KF5_CFLAGS@ diff --git a/configure.ac b/configure.ac index f3ee46436bdf..3af3e6373b35 100644 --- a/configure.ac +++ b/configure.ac @@ -15646,6 +15646,22 @@ else fi AC_SUBST(KEEP_AWAKE_CMD) +dnl ========================================= +dnl Check for Jom (parallel nmake) +dnl ========================================= +if test "$_os" = "WINNT"; then + AC_MSG_CHECKING([for jom (parallel nmake)]) + AC_PATH_PROG([JOM], [jom.exe]) + if test -z "$JOM"; then + AC_MSG_NOTICE([jom can help accelerate your build, but is completely optional. Get it from https://wiki.qt.io/Jom]) + AC_MSG_NOTICE([and put it in PATH or add JOM=/unix/style/path/to/jom.exe to your autogen.input to use it]) + else + PathFormat "$JOM" + JOM="$formatted_path" + fi + AC_SUBST(JOM) +fi + dnl =================================================================== dnl Setting up the environment. dnl =================================================================== diff --git a/external/openssl/ExternalProject_openssl.mk b/external/openssl/ExternalProject_openssl.mk index 910c957484c4..a31945fab0db 100644 --- a/external/openssl/ExternalProject_openssl.mk +++ b/external/openssl/ExternalProject_openssl.mk @@ -64,11 +64,12 @@ $(eval $(call gb_ExternalProject_use_nmake,openssl,build)) $(call gb_ExternalProject_get_state_target,openssl,build): export PERL:=$(if $(MSYSTEM),$(STRAWBERRY_PERL),$(shell cygpath -m $(PERL))) +# PARALLELISM_OPTION might be -j 16 -l 24, for jom ignore the load limit/only use the job limit $(call gb_ExternalProject_get_state_target,openssl,build): $(call gb_Trace_StartRange,openssl,EXTERNAL) $(call gb_ExternalProject_run,build,\ CONFIGURE_INSIST=1 $(PERL) Configure $(OPENSSL_PLATFORM) no-tests no-multilib \ - && nmake -f makefile \ + && $(if $(JOM),$(JOM) $(wordlist 1,2,$(PARALLELISM_OPTION)),nmake) -f makefile \ $(if $(call gb_Module__symbols_enabled,openssl),DEBUG_FLAGS_VALUE="$(gb_DEBUGINFO_FLAGS)") \ ) $(call gb_Trace_EndRange,openssl,EXTERNAL)