[mm-common] Make downloading tags optional.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mm-common] Make downloading tags optional.
- Date: Fri, 7 Oct 2011 12:02:55 +0000 (UTC)
commit 1553ebe1d99082dea2512dcb10aebd237ed53432
Author: Krzesimir Nowak <qdlacz gmail com>
Date: Tue Sep 13 13:09:30 2011 +0200
Make downloading tags optional.
Allow networking to be disabled - may be useful for developers with
no connection to Internet. By default networking is paired with
maintainer mode, that is - it is enabled/disabled when maintainer mode
is enabled/disabled.
* configure.ac: Check for networking. Check for wget and curl if
networking is enabled.
* Makefile.am: Use NETWORK_ENABLED condition.
Makefile.am | 19 +++++++++++++++----
configure.ac | 33 +++++++++++++++++++++++++++++----
2 files changed, 44 insertions(+), 8 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 6e5ba02..50d11c1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -123,13 +123,18 @@ download_wget = $(WGET) -N -nd -T 300 -t 5 -P $(dir $@)
subst_manpage = $(SED) 's|[ ]PACKAGE_STRING[@]|$(PACKAGE_STRING)|g;s|[ ]docdir[@]|$(docdir)|g'
srctar_stdout = cd $(top_srcdir) >/dev/null && $(TAR) chof -
-# If maintainer mode is enabled, always check the remote locations
-# of the tag files for updates when building the default target.
+# If maintainer mode is enabled and network is enabled then always
+# check the remote locations of the tag files for updates when
+# building the default target.
if MAINTAINER_MODE
+if NETWORK_ENABLED
check_updates = $(if $(filter all%,$(or $(MAKECMDGOALS),all)),$(dist_doctags_DATA))
else
check_updates =
endif
+else
+check_updates =
+endif
.PHONY: $(check_updates) postinst-acdir-notice
@@ -138,9 +143,15 @@ endif
# Download the libstdc++ tag file from the GCC website.
doctags/libstdc++.tag:
- $(AM_V_GEN)$(if\
+ $(AM_V_GEN)$(if $(filter no,$(USE_NETWORK)),\
+ echo 'Error: $@ does not exist.';\
+ echo 'Downloading it is not possible because network is disabled.';\
+ echo 'Please run configure script with --enable-network flag.';\
+ echo 'Bailing out.' >&2;\
+ exit 1;,\
+ $(if\
$(CURL),$(download_curl) '$(libstdcxx_tag_url)',$(if\
- $(WGET),$(download_wget) '$(libstdcxx_tag_url)',test -f $@))
+ $(WGET),$(download_wget) '$(libstdcxx_tag_url)',test -f $@)))
# Build the mm-common-prepare(1) manual page.
util/mm-common-prepare.1: $(srcdir)/util/mm-common-prepare.1.in Makefile
diff --git a/configure.ac b/configure.ac
index 10f2320..d437cc2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,11 +32,36 @@ AC_PROG_SED
dnl list of tar execs is taken from the generated ./missing script.
AC_CHECK_PROGS([TAR], [tar gnutar gtar], [no])
AS_VAR_IF([TAR], [no], [AC_MSG_ERROR([tar utility not found])])
-AC_CHECK_PROG([CURL], [curl], [curl])
-AC_CHECK_PROG([WGET], [wget], [wget])
-AS_IF([test "x$USE_MAINTAINER_MODE" != xno && test "x$CURL$WGET" = x],
- [AC_MSG_FAILURE([[Either curl or wget is required for building mm-common.]])])
+AC_MSG_CHECKING([whether to enable network])
+AC_ARG_ENABLE([network],
+ [AS_HELP_STRING([--enable-network],
+ [use network to download tags if needed @<:@default=same as maintainer mode@:>@])],
+ [AS_VAR_IF([enableval], ['yes'],,
+ [AS_VAR_IF([enableval], ['no'],,
+ [AC_MSG_ERROR([[Pass either `yes', `no' or nothing to --enable-network.]])]
+ )
+ ]
+ )
+ AS_VAR_SET([enable_network], ["$enableval"])
+ ],
+ [AS_VAR_SET([enable_network], ["$USE_MAINTAINER_MODE"])]
+ )
+AC_SUBST([USE_NETWORK], ["$enable_network"])
+AM_CONDITIONAL(NETWORK_ENABLED, [test "x$enable_network" = 'xyes'])
+AC_MSG_RESULT([$USE_NETWORK])
+
+AS_VAR_IF([USE_NETWORK], ['yes'],
+ [AC_CHECK_PROG([CURL], [curl], [curl])
+ AC_CHECK_PROG([WGET], [wget], [wget])
+ AS_VAR_IF([CURL], [],
+ [AS_VAR_IF([WGET], [],
+ [AC_MSG_FAILURE([[Network is enabled so either curl or wget is required for building mm-common.]])]
+ )
+ ]
+ )
+ ]
+ )
AC_CONFIG_FILES([Makefile
doctags/mm-common-libstdc++.pc
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]