Android: Tell make about sub-makes to speed up build
authorest31 <MTest31@outlook.com>
Wed, 23 Dec 2015 03:51:09 +0000 (04:51 +0100)
committerest31 <MTest31@outlook.com>
Wed, 23 Dec 2015 05:17:42 +0000 (06:17 +0100)
Before, sub-makes called by make were called without make knowing they
were sub-makes. This however led make's jobserver not do its tasks,
and the build process ended up with inefficient parralelisation. This
commit fixes this by applying the two ways the make manual tells
about: putting + to the start of the line (used when ndk-build is
invoked), and exchanging "make" with "$(MAKE)".

Before, make complained with messages like:

make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.

This complaint can now only been seen for openssl. openssl has issues
if make gets exchanged with $(MAKE): if exchanged, above error message
is multiplied for various subdirs of the openssl source tree.

On a 4 core box, "make -j 4" build time from "make clean_all" cleaned
source tree could be improved from 15:34 minutes to 10:45 minutes.
This means a speedup of 45%.

build/android/Makefile

index 42a46254a3a744278740065a49708cb77a465ff6..50164d95f6e99ad53e9e76078a2b47cb7dcb9a96 100644 (file)
@@ -229,7 +229,7 @@ openal_download :
 openal : $(OPENAL_LIB)
 
 $(OPENAL_LIB): $(OPENAL_TIMESTAMP)
-       @REFRESH=0;                                                                \
+       @REFRESH=0;                                                                \
        if [ ! -e ${OPENAL_TIMESTAMP_INT} ] ; then                                 \
                REFRESH=1;                                                             \
        fi;                                                                        \
@@ -274,7 +274,7 @@ ogg_download :
 ogg : $(OGG_LIB)
 
 $(OGG_LIB): $(OGG_TIMESTAMP)
-       @REFRESH=0;                                                                \
+       @REFRESH=0;                                                                \
        if [ ! -e ${OGG_TIMESTAMP_INT} ] ; then                                    \
                echo "${OGG_TIMESTAMP_INT} doesn't exist";                             \
                REFRESH=1;                                                             \
@@ -419,7 +419,7 @@ freetype_download :
 freetype : $(FREETYPE_LIB)
 
 $(FREETYPE_LIB) : $(FREETYPE_TIMESTAMP)
-       @REFRESH=0;                                                                \
+       @REFRESH=0;                                                                \
        if [ ! -e ${FREETYPE_TIMESTAMP_INT} ] ; then                               \
                REFRESH=1;                                                             \
        fi;                                                                        \
@@ -535,7 +535,7 @@ $(IRRLICHT_TIMESTAMP) : irrlicht_download
 irrlicht : $(IRRLICHT_LIB)
 
 $(IRRLICHT_LIB): $(IRRLICHT_TIMESTAMP) $(FREETYPE_LIB)
-       @REFRESH=0;                                                                \
+       @REFRESH=0;                                                                \
        if [ ! -e ${IRRLICHT_TIMESTAMP_INT} ] ; then                               \
                REFRESH=1;                                                             \
        fi;                                                                        \