1# 2# Copyright 2015-2016 Nest Labs Inc. All Rights Reserved. 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17# 18# Description: 19# This file defines a GNU autoconf M4-style macro that adds an 20# --disable-docs configuration option to the package and controls 21# whether the package will be built with or without documentation. 22# 23 24# 25# NL_ENABLE_DOCS(default, dot_default) 26# 27# default - Whether the option should be automatic (auto), enabled 28# (yes), disabled (no) by default. 29# dot_default - Whether Doxygen should use (YES) or not use (NO) 30# GraphViz dot. 31# 32# Adds an --disable-docs configuration option to the package with a 33# default value of 'default' (should be 'auto', 'no' or 'yes') and 34# controls whether the package will be built with or without Doxygen-based 35# documentation. 36# 37# The value 'nl_cv_build_docs' will be set to the result. In addition: 38# 39# DOXYGEN - Will be set to the path of the Doxygen executable. 40# DOT - Will be set to the path of the GraphViz dot 41# executable. 42# DOXYGEN_USE_DOT - Will be set to 'NO' or 'YES' depending on whether 43# GraphViz dot is available. 44# 45#------------------------------------------------------------------------------ 46AC_DEFUN([NL_ENABLE_DOCS], 47[ 48 # Check whether or not the 'default' value is sane. 49 50 m4_case([$1], 51 [auto],[], 52 [yes],[], 53 [no],[], 54 [m4_fatal([$0: invalid default value '$1'; must be 'auto', 'yes' or 'no'])]) 55 56 # Check whether or not the 'dot_default' value is sane. 57 58 m4_case([$2], 59 [YES],[], 60 [NO],[], 61 [m4_fatal([$0: invalid default value '$2'; must be 'YES' or 'NO'])]) 62 63 DOXYGEN_USE_DOT=$2 64 65 AC_ARG_VAR(DOXYGEN, [Doxygen executable]) 66 AC_ARG_VAR(DOT, [GraphViz 'dot' executable, which may be used, when present, to generate Doxygen class graphs]) 67 68 AC_PATH_PROG(DOXYGEN, doxygen) 69 AC_PATH_PROG(DOT, dot) 70 71 AC_CACHE_CHECK([whether to build documentation], 72 nl_cv_build_docs, 73 [ 74 AC_ARG_ENABLE(docs, 75 [AS_HELP_STRING([--disable-docs],[Enable building documentation (requires Doxygen) @<:@default=$1@:>@.])], 76 [ 77 case "${enableval}" in 78 79 auto|no|yes) 80 nl_cv_build_docs=${enableval} 81 ;; 82 83 *) 84 AC_MSG_ERROR([Invalid value ${enableval} for --disable-docs]) 85 ;; 86 87 esac 88 ], 89 [nl_cv_build_docs=$1]) 90 91 if test "x${DOXYGEN}" != "x"; then 92 nl_cv_have_doxygen=yes 93 else 94 nl_cv_have_doxygen=no 95 fi 96 97 if test "${nl_cv_build_docs}" = "auto"; then 98 if test "${nl_cv_have_doxygen}" = "no"; then 99 nl_cv_build_docs=no 100 else 101 nl_cv_build_docs=yes 102 fi 103 fi 104 105 if test "${nl_cv_build_docs}" = "yes"; then 106 if test "${nl_cv_have_doxygen}" = "no"; then 107 AC_MSG_ERROR([Building docs was explicitly requested but Doxygen cannot be found]) 108 elif test "${nl_cv_have_doxygen}" = "yes"; then 109 if test "x${DOT}" != "x"; then 110 DOXYGEN_USE_DOT=YES 111 fi 112 fi 113 fi 114 ]) 115 116 AC_SUBST(DOXYGEN_USE_DOT) 117]) 118