diff --git a/scripts/win_compile.sh b/scripts/win_compile.sh
index b7e8132453eebf93600a9d89575c7a535e248a15..8fe2208e70b637fd392739f430e3c569dad42d21 100755
--- a/scripts/win_compile.sh
+++ b/scripts/win_compile.sh
@@ -4,6 +4,8 @@ rootdir=$(pwd)
 HOST=i686-w64-mingw32
 ARCH=32
 CMAKE_TOOLCHAIN_FILE=$rootdir/lrc/cmake/winBuild.cmake
+$CORES=${CORES:=`nproc --all`}
+echo "running compilation on $CORES threads"
 
 while test -n "$1"
 do
@@ -31,14 +33,14 @@ mkdir -p native${ARCH}
 cd native${ARCH}
 ../bootstrap --host=${HOST}
 make fetch || exit 1
-make -j4 || exit 1
+make -j$CORES || exit 1
 cd ../..
 ./autogen.sh || exit 1
 mkdir -p "build${ARCH}"
 cd build${ARCH}
 $rootdir/daemon/configure --host=${HOST} --without-dbus --prefix=$INSTALL_PREFIX
 rsync -a $rootdir/daemon/src/buildinfo.cpp ./src/buildinfo.cpp
-make -j4 install || exit 1
+make -j$CORES install || exit 1
 cd $rootdir
 
 cd lrc
@@ -46,7 +48,7 @@ mkdir -p build${ARCH}
 cd build${ARCH}
 export CMAKE_PREFIX_PATH=/usr/${HOST}/sys-root/mingw/lib/cmake
 cmake -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DRING_BUILD_DIR=$INSTALL_PREFIX -DENABLE_LIBWRAP=true ..
-make -j4 install || exit 1
+make -j$CORES install || exit 1
 cd $rootdir
 
 cd client-windows
@@ -57,7 +59,7 @@ cd winsparkle
 git submodule init && git submodule update
 mkdir -p build${ARCH} && cd build${ARCH}
 cmake -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX ../cmake
-make -j4 || exit 1
+make -j$CORES || exit 1
 make install
 cd ../../
 fi
@@ -67,12 +69,12 @@ cd libqrencode
 ./autogen.sh || exit 1
 mkdir -p build${ARCH} && cd build${ARCH}
 ../configure --host=${HOST} --prefix=$INSTALL_PREFIX
-make -j4 || exit 1
+make -j$CORES || exit 1
 make install
 cd ../..
 fi
 mkdir -p build${ARCH}
 cd build${ARCH}
 ${HOST}-qmake-qt5 ../RingWinClient.pro -r -spec win32-g++ RING=$INSTALL_PREFIX
-make -j4 || exit 1
+make -j$CORES || exit 1
 make install