[btls] Compile btls using ninja if available. (#5333)
authorZoltan Varga <vargaz@gmail.com>
Tue, 8 Aug 2017 23:54:51 +0000 (19:54 -0400)
committerGitHub <noreply@github.com>
Tue, 8 Aug 2017 23:54:51 +0000 (19:54 -0400)
configure.ac
mono/btls/Makefile.am

index 2d4c6059a0e25d3197e74ab57e505a7bd223508b..4933db5a93437e172511a6944f6f9d6648fd3cf6 100644 (file)
@@ -686,6 +686,9 @@ AC_ARG_WITH(crosspkgdir, [  --with-crosspkgdir=/path/to/pkg-config/dir      Chan
        fi
 )
 
+AC_CHECK_PROG(ninja, ninja, yes, no)
+AM_CONDITIONAL(NINJA, test x$ninja != xno)
+
 AC_ARG_ENABLE(werror, [  --enable-werror Pass -Werror to the C compiler], werror_flag=$enableval, werror_flag=no)
 if test x$werror_flag = xyes; then
        WERROR_CFLAGS="-Werror"
index 33bfb1f6f73e8934d5e0f8f294c3b74e001cc3b8..713826839958b8dfb9d57f717b50dc6039e8e814 100644 (file)
@@ -40,17 +40,30 @@ EXTRA_DIST = $(MONO_BTLS_SOURCES_FILES)
 
 CMAKE_VERBOSE=$(if $(V),VERBOSE=1,)
 
+if NINJA
+NINJA_ARGS = -G Ninja
+BUILDFILE = build.ninja
+else
+NINJA_ARGS =
+BUILDFILE = Makefile
+endif
+
 CMAKE_ARGS = -D CMAKE_INSTALL_PREFIX:PATH=$(prefix) -D BTLS_ROOT:PATH=$(BTLS_ROOT) \
-       -D SRC_DIR:PATH=$(abs_top_srcdir)/mono/btls -D BTLS_CFLAGS:STRING="$(BTLS_CFLAGS)"
+       -D SRC_DIR:PATH=$(abs_top_srcdir)/mono/btls -D BTLS_CFLAGS:STRING="$(BTLS_CFLAGS)" $(NINJA_ARGS)
 
 all-local: build-shared/libmono-btls-shared$(libsuffix)
 
-build-shared/Makefile:
+build-shared/$(BUILDFILE):
        -mkdir -p build-shared
        (cd build-shared && CC="$(CC)" CXX="$(CXX)" $(CMAKE) $(CMAKE_ARGS) $(BTLS_CMAKE_ARGS) -DBUILD_SHARED_LIBS=1 $(abs_top_srcdir)/mono/btls)
 
-build-shared/libmono-btls-shared$(libsuffix): build-shared/Makefile $(MONO_BTLS_SOURCES_FILES)
+if NINJA
+build-shared/libmono-btls-shared$(libsuffix): build-shared/$(BUILDFILE) $(MONO_BTLS_SOURCES_FILES)
+       ninja -C build-shared $(CMAKE_VERBOSE)
+else
+build-shared/libmono-btls-shared$(libsuffix): build-shared/$(BUILDFILE) $(MONO_BTLS_SOURCES_FILES)
        $(MAKE) -C build-shared $(CMAKE_VERBOSE)
+endif
 
 clean-local:
        -rm -rf build-shared