mirror of
git://git.gnu.org.ua/imprimatur.git
synced 2025-04-26 00:29:54 +03:00

The bug was reported by Eray Aslan <eray.aslan@caf.com.tr>. Special thanks to Jordi Mallach <jordi@gnu.org> for convincing me to look into it. * imprimatur.m4 [IMPRIMATUR_COND_MAKEDOC]: Do not include Makedoc to AC_CONFIG_FILES, as this cheats autoconf to always require it. Inssue a notice instead. * imprimatur.texi: Document the new behavior.
104 lines
4.7 KiB
Text
104 lines
4.7 KiB
Text
# imprimatur.m4 serial 1
|
|
dnl This file is part of Imprimatur.
|
|
dnl Copyright (C) 2011 Sergey Poznyakoff
|
|
dnl
|
|
dnl Imprimatur is free software; you can redistribute it and/or modify
|
|
dnl it under the terms of the GNU General Public License as published by
|
|
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
dnl any later version.
|
|
dnl
|
|
dnl Imprimatur is distributed in the hope that it will be useful,
|
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
dnl GNU General Public License for more details.
|
|
dnl
|
|
dnl You should have received a copy of the GNU General Public License
|
|
dnl along with Imprimatur. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
dnl The option stuff below is based on the similar code from Automake
|
|
|
|
# _IMPRIMATUR_MANGLE_OPTION(NAME)
|
|
# -------------------------------
|
|
# Convert NAME to a valid m4 identifier, by replacing invalid characters
|
|
# with underscores, and prepend the _IMPRIMATUR_OPTION_ suffix to it.
|
|
AC_DEFUN([_IMPRIMATUR_MANGLE_OPTION],
|
|
[[_IMPRIMATUR_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
|
|
|
# _IMPRIMATUR_SET_OPTION(NAME)
|
|
# ----------------------------
|
|
# Set option NAME. If NAME begins with a digit, treat it as a requested
|
|
# Guile version number, and define _IMPRIMATUR_GUILE_VERSION to that number.
|
|
# Otherwise, define the option using _IMPRIMATUR_MANGLE_OPTION.
|
|
AC_DEFUN([_IMPRIMATUR_SET_OPTION],
|
|
[m4_if(m4_bpatsubst($1,^[[0-9]].*,[]),,[m4_define([_IMPRIMATUR_GUILE_VERSION],[$1])],[m4_define(_IMPRIMATUR_MANGLE_OPTION([$1]), 1)])])
|
|
|
|
# _IMPRIMATUR_IF_OPTION_SET(NAME,IF-SET,IF-NOT-SET)
|
|
# -------------------------------------------------
|
|
# Check if option NAME is set.
|
|
AC_DEFUN([_IMPRIMATUR_IF_OPTION_SET],
|
|
[m4_ifset(_IMPRIMATUR_MANGLE_OPTION([$1]),[$2],[$3])])
|
|
|
|
# _IMPRIMATUR_OPTION_SWITCH(NAME1,IF-SET1,[NAME2,IF-SET2,[...]],[IF-NOT-SET])
|
|
# ---------------------------------------------------------------------------
|
|
# If NAME1 is set, run IF-SET1. Otherwise, if NAME2 is set, run IF-SET2.
|
|
# Continue the process for all name-if-set pairs within [...]. If none
|
|
# of the options is set, run IF-NOT-SET.
|
|
AC_DEFUN([_IMPRIMATUR_OPTION_SWITCH],
|
|
[m4_if([$4],,[_IMPRIMATUR_IF_OPTION_SET($@)],dnl
|
|
[$3],,[_IMPRIMATUR_IF_OPTION_SET($@)],dnl
|
|
[_IMPRIMATUR_IF_OPTION_SET([$1],[$2],[_IMPRIMATUR_OPTION_SWITCH(m4_shift(m4_shift($@)))])])])
|
|
|
|
# _IMPRIMATUR_SET_OPTIONS(OPTIONS)
|
|
# --------------------------------
|
|
# OPTIONS is a space-separated list of IMPRIMATUR options.
|
|
AC_DEFUN([_IMPRIMATUR_SET_OPTIONS],
|
|
[m4_foreach_w([_IMPRIMATUR_Option], [$1], [_IMPRIMATUR_SET_OPTION(_IMPRIMATUR_Option)])])
|
|
|
|
# IMPRIMATUR_INIT([DIR],[OPTIONS])
|
|
# DIR - Directory in the source tree where imprimatur has been cloned.
|
|
# Default is "imptimatur".
|
|
# OPTIONS - A whitespace-separated list of options. Valid options are:
|
|
# (1) any one of PROOF, DISTRIB or PUBLISH to set the default
|
|
# rendition, (2) frenchspacing to declare that French sentence
|
|
# spacing should be assumed, (3) makedoc to enable rules for
|
|
# building imprimatur documentation, and (4) dist-info to
|
|
# build and distribute imprimatur.info file (requires makedoc).
|
|
AC_DEFUN([IMPRIMATUR_INIT],[
|
|
m4_pushdef([imprimaturdir],[m4_if([$1],,[imprimatur],[$1])])
|
|
AC_SUBST([IMPRIMATUR_MODULE_DIR],imprimaturdir)
|
|
_IMPRIMATUR_SET_OPTIONS([$2])
|
|
AC_SUBST(RENDITION)
|
|
_IMPRIMATUR_OPTION_SWITCH([PROOF],[RENDITION=PROOF],
|
|
[DISTRIB],[RENDITION=DISTRIB],
|
|
[PUBLISH],[RENDITION=PUBLISH],
|
|
[
|
|
# Doc hints.
|
|
# Select a rendition level:
|
|
# DISTRIB for stable releases (at most one dot in the version number)
|
|
# and maintenance releases (two dots, patchlevel < 50)
|
|
# PROOF for alpha releases.
|
|
# PUBLISH can only be required manually when running make in doc/
|
|
case `echo $VERSION|sed 's/[[^.]]//g'` in
|
|
""|".") RENDITION=DISTRIB;;
|
|
"..") if test `echo $VERSION | sed 's/.*\.//'` -lt 50; then
|
|
RENDITION=DISTRIB
|
|
else
|
|
RENDITION=PROOF
|
|
fi;;
|
|
*) RENDITION=PROOF;;
|
|
esac
|
|
])
|
|
AC_SUBST([IMPRIMATUR_MAKEINFOFLAGS],
|
|
['-I $(top_srcdir)/imprimaturdir -D $(RENDITION)'])
|
|
AM_CONDITIONAL([IMPRIMATUR_COND_MAKEDOC],dnl
|
|
[_IMPRIMATUR_IF_OPTION_SET([makedoc],[true],[false])])
|
|
AM_CONDITIONAL([IMPRIMATUR_COND_FRENCHSPACING],
|
|
[_IMPRIMATUR_IF_OPTION_SET([frenchspacing],[true],[false])])
|
|
AM_CONDITIONAL([IMPRIMATUR_COND_DIST_INFO],
|
|
[_IMPRIMATUR_IF_OPTION_SET([dist-info],[true],[false])])
|
|
AC_CONFIG_FILES(imprimaturdir[/Makefile])
|
|
AM_COND_IF([IMPRIMATUR_COND_MAKEDOC],dnl
|
|
[AC_MSG_NOTICE([Add imprimaturdir[/Makedoc] to your config files])])
|
|
|
|
m4_popdef([imprimaturdir])
|
|
])
|