diff options
author | pavet | 2004-09-09 15:33:37 +0000 |
---|---|---|
committer | pavet | 2004-09-09 15:33:37 +0000 |
commit | a5803c3a3e49d5d10e017a70c9e94d0545d59a09 (patch) | |
tree | 62fb7a35ca46bbefa2eb1a9e4266315ed1ba76de /martin.m4 | |
parent | 23abb4b87c7e40ed259dd02f653516f60e55ade4 (diff) | |
download | ivycpy-vinit-a5803c3a3e49d5d10e017a70c9e94d0545d59a09.zip ivycpy-vinit-a5803c3a3e49d5d10e017a70c9e94d0545d59a09.tar.gz ivycpy-vinit-a5803c3a3e49d5d10e017a70c9e94d0545d59a09.tar.bz2 ivycpy-vinit-a5803c3a3e49d5d10e017a70c9e94d0545d59a09.tar.xz |
Initial revision
Diffstat (limited to 'martin.m4')
-rw-r--r-- | martin.m4 | 1863 |
1 files changed, 1863 insertions, 0 deletions
diff --git a/martin.m4 b/martin.m4 new file mode 100644 index 0000000..470fc6b --- /dev/null +++ b/martin.m4 @@ -0,0 +1,1863 @@ +dnl # -*- shell-script -*- +dnl ########################################################################### +dnl # +dnl # LAYER-SYSTEM -- tool for configuring, building, and installing software +dnl # Copyright (C) 1996-2001, Martin Vicente +dnl # Copyright (C) 2002-2004, Centre d'Etudes de la Navigation Aérienne +dnl # +dnl # This software 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 2 of the License, or +dnl # (at your option) any later version. +dnl # +dnl # This software 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. +dnl # See the GNU General Public License for more details. +dnl # +dnl # You should have received a copy of the GNU General Public License +dnl # along with this software (see the file COPYING). +dnl # If not, write to the Free Software Foundation, Inc., +dnl # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +dnl # +dnl ########################################################################### +dnl # +dnl # LAYER-SYSTEM -- TOOL FOR CONFIGURING, BUILDING, AND INSTALLING SOFTWARE +dnl # © Martin Vicente, 1996-2001 +dnl # © Centre d'Etudes de la Navigation Aérienne, 2002-2004 +dnl # +dnl # MY LOCAL ADDITIONS TO AUTOCONF MACROS +dnl # +dnl # Project: LAYER-SYSTEM +dnl # Purpose: Tool for configuring, building, and installing software +dnl # Version: 1.0 (first official release) +dnl # ------------------------------------------------------------------------ +dnl # File : martin.m4 +dnl # Purpose: My local additions to Autoconf macros +dnl # Version: 1.0.5 +dnl # Dialect: Autoconf (m4 and Bourne shell) +dnl # Creator: Martin Vicente +dnl # Created: 20 juin 2002 +dnl # Remarks: From XCLIB - "Les outils de Martin" +dnl # Contact: vicente@cena.fr +dnl # +dnl # Last Modified On: 24 janvier 2004 +dnl # Last Modified By: Martin Vicente +dnl # +dnl # DESCRIPTION: +dnl # LAYER-SYSTEM est une évolution du système de fabrication de XCLIB. +dnl # XCLIB est une bibliothèque de fonctions à usage général. +dnl # La bibliothèque "mini XCLIB" en est une mouture allégée destinée en +dnl # particulier à une application locale au CENA (Centre d'Etudes de la +dnl # Navigation Aérienne). +dnl # +dnl # Ce fichier apporte quelques macros supplémentaires pour Autoconf. +dnl # Certaines offrent des fonctionnalités génériques, et ont pour ambition +dnl # d'intégrer un jour la distribution Autoconf; et d'autres sont ici +dnl # essentiellement pour alléger l'écriture du fichier «configure.in». +dnl # Afin de les distinguer sans ambiguïté des macros standards Autoconf, +dnl # elles sont préfixées par «MV_». +dnl # +dnl # REMARKS: +dnl # +dnl # ENVIRONMENT/PARAMETERS/OPTIONS: +dnl # +dnl # PROBLEMS: +dnl # +dnl # TODO: +dnl # +dnl # REVISION HISTORY: +dnl # ## 21 novembre 2003 - Martin Vicente +dnl # - Renommage de ce fichier en «martin.m4» pour tenir compte d'autres +dnl # jeux de macros et éviter un conflit possible. +dnl # ## 20 juin 2002 - Martin Vicente +dnl # - Création du fichier «aclocal.m4» à partir de celui de XCLIB. +dnl # +dnl # MAINTAINERS: +dnl # Martin Vicente <vicente@cena.fr> +dnl ########################################################################### + +dnl #++ +dnl # LISTE DES MACROS: +dnl # ================= +dnl # +dnl # MV_AUTOCONF_ERROR(TEXT) +dnl # MV_LOWER +dnl # MV_UPPER +dnl # MV_DEL_ACCENT +dnl # MV_CONCAT(VAR, N, STR) +dnl # MV_SET_BRACKETS +dnl # MV_PROG_ECHO_E +dnl # MV_PROG_ECHO_N +dnl # MV_PROG_ECHO +dnl # MV_PROG_ECHO_ESCAPE +dnl # MV_DEF_SET_COLORS +dnl # MV_DEF_UNSET_COLORS +dnl # MV_SET_COLORS +dnl # MV_UNSET_COLORS +dnl # MV_CONFIG_FD_IS_CHAR_DEVICE +dnl # MV_SETUP_COLORS(FD) +dnl # MV_COLOR_ON(FOREGROUND, BACKGROUND) +dnl # MV_COLOR_OFF +dnl # MV_TERM_SIZE +dnl # MV_MSG(TEXT [, COLOR-ATTRIBUTS ]) +dnl # MV_MSG_N(TEXT [, COLOR-ATTRIBUTS ]) +dnl # MV_ERR_MSG(PREFIX, TEXT [, COLOR ]) +dnl # MV_WARNING(TEXT [, COLOR ]) +dnl # MV_ERROR(TEXT [, COLOR ]) +dnl # MV_MSG_RESULT +dnl # MV_ARG_ENABLE +dnl # MV_FILL_COLUMNS(VAR, CH) +dnl # MV_FILL_BACKGROUND(VAR, CH) +dnl # MV_PROG_AUTOCONF +dnl # MV_PROG_ACLOCAL +dnl # MV_PROG_CTRACE +dnl # MV_TOPDIR +dnl # MV_STANDARD +dnl # MV_TRANSFORM_MODULES(SRC-DIRS, LNK-DIR, &MODULES) +dnl # MV_CONFIG_RULES(CONFIG-FILES, PRE-COMMAND, FILENAME) +dnl # MV_OUTPUT(CONFIG-FILES, EXTRA-CMDS, INIT-CMDS) +dnl # MV_MKLOG +dnl # MV_MK_STANDARD +dnl # MV_MK_OUTPUT(MAKEFILE-NAME, SUBDIRS, CONFIG-FILES, EXTRA-CMDS, INIT-CMDS) +dnl # MV_SET_GCC_OPTIONS +dnl # MV_SET_GXX_OPTIONS +dnl # MV_PROG_GCC(-pipe -ansi -pedantic ...) +dnl # MV_PROG_GXX(-pipe -ansi -pedantic ...) +dnl # MV_PROG_CC +dnl # MV_PROG_CXX +dnl # +dnl # -- A REVOIR -- +dnl # +dnl # MV_PREFIX_PROGRAM +dnl # MV_PROG_MKDIRHIER +dnl # MV_PROG_RMDIRHIER +dnl # MV_PROG_LD +dnl # MV_PROG_PERL(MIN-VERSION) +dnl # MV_AUTOCONF_DIRS +dnl # MV_DO_MICO +dnl # MV_DO_OMNIORB +dnl # MV_DO_OMNIORB2 +dnl # MV_CHECK_XCLIB +dnl # MV_CHECK_DPKG_VERSION +dnl # MV_CHECK_CONFIG_FILES +dnl #-- + +dnl ########################################################################### +dnl # forloop(I, MIN, MAX, CMD) +dnl # +dnl # Extension M4. +dnl # +define([forloop], [pushdef([$1], [$2])_forloop([$1], [$2], [$3], [$4])popdef([$1])]) +define([_forloop], [$4[]ifelse($1, [$3], , [define([$1], incr($1))_forloop([$1], [$2], [$3], [$4])])]) + +dnl ########################################################################### +dnl # MV_AUTOCONF_ERROR(TEXT) +dnl # +dnl # Fonction d'erreur interne souvent utilisée pour, par exemple, tester +dnl # l'invocation correcte d'une macro Autoconf. +dnl # +define(MV_AUTOCONF_ERROR, [dnl +errprint([autoconf: *** Error: $1 - File "]__file__[" at line ]__line__[ +])dnl +m4exit(1)]) + +dnl ########################################################################### +dnl # MV_TOLOWER +dnl # +dnl # Transposition des caractères en minuscules. +dnl # +AC_DEFUN(MV_TOLOWER, [dnl +TOLOWER="tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'" +AC_SUBST(TOLOWER)]) + +dnl ########################################################################### +dnl # MV_TOUPPER +dnl # +dnl # Transposition des caractères en majuscules. +dnl # +AC_DEFUN(MV_TOUPPER, [dnl +TOUPPER="tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" +AC_SUBST(TOUPPER)]) + +dnl ########################################################################### +dnl # MV_DEL_ACCENT +dnl # +dnl # Elimination des accents. +dnl # +define(MV_DEL_ACCENT, [dnl +tr 'àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ' 'aceeeeiioouuACEEEEIIOOUU']) + +dnl ########################################################################### +dnl # MV_CONCAT(VAR, N, STR) +dnl # +dnl # Concatène «N» fois la chaîne «STR». L'ajoute à «VAR». +dnl # +define(MV_CONCAT, [dnl +ifelse($#,3,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +{ +mv_v="$[]$1" +mv_i=$2 +while >/dev/null expr $mv_i; do + mv_v="${mv_v}$3" + mv_i=`expr $mv_i - 1` +done +$1=$mv_v +}]) + +dnl ########################################################################### +dnl # MV_SET_BRACKETS +dnl # +dnl # Pour utiliser le caractère «[», en évitant de jongler avec les +dnl # «changequote». +dnl # +AC_DEFUN(MV_SET_BRACKETS, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +dnl +changequote(«,»)dnl +mv_LB=[ +mv_RB=]«»dnl +changequote([,])]) + +dnl ########################################################################### +dnl # MV_PROG_ECHO_E +dnl # +dnl # Recherche une commande «echo» qui supporte la représentation +dnl # "backslash-escaped" («\n», «\a», etc); et donc aussi la notation octale +dnl # (ex: «\033»). +dnl # Si une telle command est trouvée, la variable «ECHO_E» sera renseignée +dnl # en conséquence, sinon elle sera vide. +dnl # +dnl # Le test canonique: +define(mv_prog_echo_e__try, [dnl +dnl # - la commande doit d'abord fonctionner sans retourner de statut d'erreur, +>/dev/null 2>&1 $1 dnl +dnl # - la notation "backslash-escaped" doit être interprétée, +&& test -z "`$1 '\a'|fgrep a`" dnl # alert character +&& test -z "`$1 '\b'|fgrep b`" dnl # backspace +&& test -z "`$1 '\c'|fgrep c`" dnl # print line without new-line +&& test -z "`$1 '\f'|fgrep f`" dnl # form-feed +&& test -z "`$1 '\n'|fgrep n`" dnl # new-line +&& test -z "`$1 '\r'|fgrep r`" dnl # carriage return +&& test -z "`$1 '\t'|fgrep t`" dnl # tab +&& test -z "`$1 '\v'|fgrep v`" dnl # vertical tab +dnl # - et aussi la représentation octale. +&& test -z "`$1 '\033'|fgrep 33`"]) +dnl # +dnl # +AC_DEFUN(MV_PROG_ECHO_E, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_MSG_CHECKING([if «echo» support backslash-escaped characters]) +AC_CACHE_VAL(mv_cv_prog_ECHO_E, [dnl +if mv_prog_echo_e__try(echo); then + ECHO_E='echo' +elif mv_prog_echo_e__try(echo -e); then + ECHO_E='echo -e' +elif mv_prog_echo_e__try(/bin/echo); then + ECHO_E='/bin/echo' +elif mv_prog_echo_e__try(/bin/echo -e); then + ECHO_E='/bin/echo -e' +else + ECHO_E= +fi +mv_cv_prog_ECHO_E=$ECHO_E])dnl +ECHO_E=$mv_cv_prog_ECHO_E +if test -n "$ECHO_E"; then + AC_MSG_RESULT([yes ($ECHO_E)]) +else + AC_MSG_RESULT([no]) +fi[]dnl +AC_SUBST(ECHO_E)]) + +dnl ########################################################################### +dnl # MV_PROG_ECHO_N +dnl # +dnl # Si je trouve une commande «echo» qui permet de supprimer le passage à +dnl # la ligne suivante, j'affecte les variables «ECHO_N», «_N», et «_C» en +dnl # conséquence; et sinon, ces variable seront vides. +dnl # Et si cette commande peut supporter également les séquences +dnl # "backslash-escaped" (et la notation octale), c'est pas plus mal. +dnl # +dnl # Exemple d'utilisation: @ECHO_N@ @_N@ "Hello World!@_C@" +dnl # +dnl # Comme pour «MV_PROG_ECHO_E», le test se déroule en 2 phases: +dnl # - vérifier que la commande ne renvoie pas un statut d'erreur; +dnl # - vérifier que l'option «-n» ou la séquence «\c» est interprété. +dnl # +dnl # Test avec «-n»: +define(mv_prog_echo_n__try_n, [dnl +>/dev/null 2>&1 $1 && test -z "`$1 -n ''|fgrep n`"]) +dnl # +dnl # Test avec «\c»: +define(mv_prog_echo_n__try_c, [dnl +>/dev/null 2>&1 $1 && test -z "`$1 '\c'|fgrep c`"]) +dnl # +dnl # +AC_DEFUN(MV_PROG_ECHO_N, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_PROG_ECHO_E])dnl +AC_MSG_CHECKING([if «echo» can suppress trailing newline]) +AC_CACHE_VAL(mv_cv_prog_ECHO_N, [dnl +if test -n "$ECHO_E" && mv_prog_echo_n__try_n([$ECHO_E]); then + ECHO_N=$ECHO_E; _N=-n; _C= +elif test -n "$ECHO_E" && mv_prog_echo_n__try_c([$ECHO_E]); then + ECHO_N=$ECHO_E; _N=; _C=\\c +elif mv_prog_echo_n__try_n([echo]); then + ECHO_N=echo; _N=-n; _C= +elif mv_prog_echo_n__try_c([echo]); then + ECHO_N=echo; _N=; _C=\\c +elif mv_prog_echo_n__try_n([/bin/echo]); then + ECHO_N=/bin/echo; _N=-n; _C= +elif mv_prog_echo_n__try_c([/bin/echo]); then + ECHO_N=/bin/echo; _N=; _C=\\c +else + ECHO_N=; _N=; _C= +fi +mv_cv_prog_ECHO_N=$ECHO_N; mv_cv_prog_ECHO_N_N=$_N; mv_cv_prog_ECHO_N_C=$_C])dnl +ECHO_N=$mv_cv_prog_ECHO_N; _N=$mv_cv_prog_ECHO_N_N; _C=$mv_cv_prog_ECHO_N_C +if test -n "$ECHO_N"; then + AC_MSG_RESULT([yes (\$ECHO_N \$_N \"...\$_C\")]) +else + AC_MSG_RESULT([no]) +fi[]dnl +AC_SUBST(ECHO_N)AC_SUBST(_N)AC_SUBST(_C)]) + +dnl ########################################################################### +dnl # MV_PROG_ECHO +dnl # +dnl # Recherche la "meilleur" commande pour la fonction «echo». +dnl # La variable «ECHO» est renseignée en conséquence, ainsi que: +dnl # «ECHO_E», «ECHO_N», «_N» et «_C». +dnl # +AC_DEFUN(MV_PROG_ECHO, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_PROG_ECHO_N])dnl +AC_REQUIRE([MV_PROG_ECHO_E])dnl +AC_MSG_CHECKING([the \"best\" «echo» command]) +AC_CACHE_VAL(mv_cv_prog_ECHO, [dnl +if test -n "$ECHO_N"; then + ECHO=$ECHO_N +elif test -n "$ECHO_E"; then + ECHO=$ECHO_E +else + ECHO=echo +fi +mv_cv_prog_ECHO=$ECHO])dnl +ECHO=$mv_cv_prog_ECHO +if test -n "$ECHO"; then + AC_MSG_RESULT([$ECHO]) +else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([NO ECHO COMMAND!!!]) +fi[]dnl +AC_SUBST(ECHO)]) + +dnl ########################################################################### +dnl # MV_PROG_ECHO_ESCAPE +dnl # +dnl # Si «echo» supporte les séquences d'échappement, j'affecte la variable +dnl # «ESC» avec la notation à utiliser; et sinon, cette dernière sera vide. +dnl # Dans la foulée, on recherche aussi la meilleur commande «echo». +dnl # Les variables remplacées sont: +dnl # +dnl # «ECHO», «ECHO_E», «ECHO_N», «_N», «_C» et «ESC». +dnl # +AC_DEFUN(MV_PROG_ECHO_ESCAPE, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_PROG_ECHO])dnl +AC_MSG_CHECKING([if «$ECHO» support the escape character]) +AC_CACHE_VAL(mv_cv_prog_ECHO_ESC, [dnl +if >/dev/null 2>&1 $ECHO '\e' && test -z "`$ECHO '\e'|fgrep e`"; then + ESC=\\e +elif >/dev/null 2>&1 $ECHO '\033' && test -z "`$ECHO '\033'|fgrep 33`"; then + ESC=\\033 +else + ESC= +fi +mv_cv_prog_ECHO_ESC=$ESC])dnl +ESC=$mv_cv_prog_ECHO_ESC +if test -n "$ESC"; then + AC_MSG_RESULT([yes (\$ESC)]) +else + AC_MSG_RESULT([no]) +fi[]dnl +AC_SUBST(ESC)]) + +dnl ########################################################################### +dnl # MV_DEF_SET_COLORS +dnl # +dnl # Définit la fonction «mv_set_colors» qui (ré-)active l'utilisation de la +dnl # couleur et des attributs graphiques. +dnl # +AC_DEFUN(MV_DEF_SET_COLORS, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_SET_BRACKETS])dnl +AC_REQUIRE([MV_PROG_ECHO_ESCAPE])dnl +AC_REQUIRE([MV_DEF_UNSET_COLORS])dnl +mv_set_colors() { + if test -n "$ESC"; then + RESET=${ESC}${mv_LB}0m + # video attributes + BOLD=${ESC}${mv_LB}1m + BOLD_OFF=${ESC}${mv_LB}22m + UNDERLINE=${ESC}${mv_LB}4m + UNDERLINE_OFF=${ESC}${mv_LB}24m + BLINK=${ESC}${mv_LB}5m + BLINK_OFF=${ESC}${mv_LB}25m + REVERSE=${ESC}${mv_LB}7m + REVERSE_OFF=${ESC}${mv_LB}27m + # foreground colors + BLACK=${ESC}${mv_LB}30m + RED=${ESC}${mv_LB}31m + GREEN=${ESC}${mv_LB}32m + YELLOW=${ESC}${mv_LB}33m + BLUE=${ESC}${mv_LB}34m + MAGENTA=${ESC}${mv_LB}35m + CYAN=${ESC}${mv_LB}36m + WHITE=${ESC}${mv_LB}37m + DEFAULT=${ESC}${mv_LB}39m + # background colors + BG_BLACK=${ESC}${mv_LB}40m + BG_RED=${ESC}${mv_LB}41m + BG_GREEN=${ESC}${mv_LB}42m + BG_YELLOW=${ESC}${mv_LB}43m + BG_BLUE=${ESC}${mv_LB}44m + BG_MAGENTA=${ESC}${mv_LB}45m + BG_CYAN=${ESC}${mv_LB}46m + BG_WHITE=${ESC}${mv_LB}47m + BG_DEFAULT=${ESC}${mv_LB}49m + # abreviations + B=$BOLD + b=$BOLD_OFF + U=$UNDERLINE + u=$UNDERLINE_OFF + else + mv_unset_colors + fi +}]) + +dnl ########################################################################### +dnl # MV_DEF_UNSET_COLORS +dnl # +dnl # Définit la fonction «mv_unset_colors» qui supprime l'utilisation de la +dnl # couleur et des attributs graphiques. +dnl # +AC_DEFUN(MV_DEF_UNSET_COLORS, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +mv_unset_colors() { + RESET= + # video attributes + BOLD= + BOLD_OFF= + UNDERLINE= + UNDERLINE_OFF= + BLINK= + BLINK_OFF= + REVERSE= + REVERSE_OFF= + # foreground colors + BLACK= + RED= + GREEN= + YELLOW= + BLUE= + MAGENTA= + CYAN= + WHITE= + DEFAULT= + # background colors + BG_BLACK= + BG_RED= + BG_GREEN= + BG_YELLOW= + BG_BLUE= + BG_MAGENTA= + BG_CYAN= + BG_WHITE= + BG_DEFAULT= + # abreviations + B= + b= + U= + u= +}]) + +dnl ########################################################################### +dnl # MV_SET_COLORS +dnl # +dnl # (Ré-)active l'utilisation de la couleur, et du rendu en général. +dnl # La réactivation sera effective, seulement si elle est possible. +dnl # +AC_DEFUN(MV_SET_COLORS, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_DEF_SET_COLORS])dnl +mv_set_colors]) + +dnl ########################################################################### +dnl # MV_UNSET_COLORS +dnl # +dnl # Supprime l'utilisation de la couleur, et du rendu en général. +dnl # +AC_DEFUN(MV_UNSET_COLORS, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_DEF_UNSET_COLORS])dnl +mv_unset_colors]) + +dnl ########################################################################### +dnl # MV_CONFIG_FD_IS_CHAR_DEVICE +dnl # +dnl # *** A REVOIR POUR DES ENVIRONNEMENTS NON GNU *** +dnl # Les séquences d'échappement propre au rendu des terminaux, ne seront +dnl # interprétées que si le périphérique est effectivement un terminal. +dnl # Evident, mais encore fallait-il l'écrire :-) +dnl # Cette macro permet donc de lever un peu le doute sur la nature du +dnl # périphérique. «MV_CONFIG_FD_IS_CHAR_DEVICE» va générer le programme +dnl # «config.fd_is_char_device». Il suffira de lui fournir en paramètre le +dnl # descripteur de fichier utilisé pour accéder au périphérique en +dnl # question. +dnl # +AC_DEFUN(MV_CONFIG_FD_IS_CHAR_DEVICE, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +{ +if test -z "$CC"; then + >&2 echo "__file__:__line__: *** FATAL ERROR: NO C COMPILER DEFINED" + exit 1 +fi + +pgm=config.fd_is_char_device + +if test ! -f $pgm; then + + changequote(«,»)dnl + cat >$pgm.c <<EOT +#include <sys/types.h> +#include <sys/stat.h> + +#include <unistd.h> + +#include <stdlib.h> + +int main(int argc, char *argv[]) +{ + int fd; + struct stat stat; + + if (argc != 2) return -1; + + fd = atoi(argv[1]); + + if (fstat(fd, &stat) == -1) return -1; + + return S_ISCHR(stat.st_mode) == 0; +} +EOT + changequote([,])dnl + + $CC -o $pgm $pgm.c + rm $pgm.c + +elif test ! -x $pgm; then + + chmod +x $pgm + +fi + +CONFIGURE_FILES="$pgm $CONFIGURE_FILES" + +unset pgm +}]) + +dnl ########################################################################### +dnl # MV_SETUP_COLORS(FD) +dnl # +AC_DEFUN(MV_SETUP_COLORS, [dnl +ifelse($#,0,mv_fd=1,ifelse($#,1,mv_fd=$1,[[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])]])) +AC_REQUIRE([MV_PROG_ECHO_ESCAPE])dnl +AC_REQUIRE([MV_DEF_SET_COLORS])dnl +AC_REQUIRE([MV_DEF_UNSET_COLORS])dnl +if test -n "$ESC" && test -t $mv_fd; then + MV_SET_COLORS + mv_colors_on_fd_$1=yes +else + MV_UNSET_COLORS + mv_colors_on_fd_$1=no +fi]) + +dnl ########################################################################### +dnl # MV_COLOR_ON(FOREGROUND, BACKGROUND) +dnl # +AC_DEFUN(MV_COLOR_ON, [dnl +ifelse($#,2,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +if test "$silent" != yes; then + MV_SETUP_COLORS(1) + if test "$mv_colors_on_fd_1" = yes; then + FOREGROUND=$[$1] + BACKGROUND=$BG_[$2] + $ECHO "COLOR ON${FOREGROUND}${BACKGROUND}" + fi +fi]) + +dnl ########################################################################### +dnl # MV_COLOR_OFF +dnl # +AC_DEFUN(MV_COLOR_OFF, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +if test "$silent" != yes; then + MV_SETUP_COLORS(1) + if test "$mv_colors_on_fd_1" = yes; then + $ECHO "COLOR OFF${RESET}" + fi +fi]) + +dnl ########################################################################### +dnl # MV_TERM_SIZE +dnl # +dnl # Récupère les dimensions du terminal. +dnl # Substitue «LINES» et «COLUMNS». +dnl # +dnl # o Pas portable entre U*ix: améliorer la portabilité. +dnl # o Je préfère ne pas "cacher" ces valeurs afin de permettre une +dnl # reconfiguration rapide par l'utilisateur. +dnl # +AC_DEFUN(MV_TERM_SIZE, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +dnl +AC_MSG_CHECKING(terminal size) +case `uname` in +Linux) + mv_term_spec=`stty size` + LINES=`echo $mv_term_spec|awk '{ print $[]1 }'` + COLUMNS=`echo $mv_term_spec|awk '{ print $[]2 }'` + unset mv_term_spec + ;; +SunOS) + mv_term_spec=`stty` +changequote(,)dnl + LINES=`echo $mv_term_spec|fgrep 'rows ='|sed 's/.*rows = \([0-9]*\).*/\1/'` + COLUMNS=`echo $mv_term_spec|fgrep 'rows ='|sed 's/.*columns = \([0-9]*\).*/\1/'` +changequote([, ])dnl + unset mv_term_spec + ;; +*) + LINES=0 + COLUMNS=0 + ;; +esac +AC_MSG_RESULT($COLUMNS x $LINES) +AC_SUBST(LINES)dnl +AC_SUBST(COLUMNS)]) + +dnl ########################################################################### +dnl # MV_MSG(TEXT [, COLOR-ATTRIBUTS ]) +dnl # +dnl # Affiche un message. +dnl # +AC_DEFUN(MV_MSG, [dnl +ifelse($#,1,,[ifelse($#,2,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])])dnl +dnl +if test "$silent" != yes; then + MV_SETUP_COLORS(1) + $ECHO "ifelse($#,2,[$2],${FOREGROUND})""$1""${RESET}${FOREGROUND-$DEFAULT}${BACKGROUND-$BG_DEFAULT}" +fi]) + +dnl ########################################################################### +dnl # MV_MSG_N(TEXT [, COLOR-ATTRIBUTS ]) +dnl # +dnl # Affiche un message sans passage à la ligne suivante. +dnl # +AC_DEFUN(MV_MSG_N, [dnl +ifelse($#,1,,[ifelse($#,2,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])])dnl +dnl +if test "$silent" != yes; then + MV_SETUP_COLORS(1) + $ECHO_N $_N "ifelse($#,2,[$2],${FOREGROUND})""$1$_C""${RESET}${FOREGROUND-$DEFAULT}${BACKGROUND-$BG_DEFAULT}" +fi]) + +dnl ########################################################################### +dnl # MV_ERR_MSG(PREFIX, TEXT [, COLOR ]) +dnl # +dnl # Affiche un message d'erreur bien visible. +dnl # +AC_DEFUN(MV_ERR_MSG, [dnl +ifelse($#,2,,[ifelse($#,3,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])])dnl +AC_REQUIRE([MV_TERM_SIZE])dnl +dnl +{ +MV_SETUP_COLORS(2) +dnl +mv_prefix=`basename ${0}` +mv_n=`expr length $mv_prefix` +mv_n=`expr $mv_n + 2` # ": " +mv_n=`expr $COLUMNS - $mv_n` + +mv_decor= +mv_i=$mv_n +while >/dev/null expr $mv_i; do + mv_i=`expr $mv_i - 1` + mv_decor="*$mv_decor" +done +unset mv_i +unset mv_n + +if test -n "$1"; then + mv_severity="${BOLD}$1${BOLD_OFF}: " +else + mv_severity= +fi + +>&2 $ECHO "ifelse($#,3,${$3},${RED})${mv_prefix}: ${mv_decor}" + +>&2 $ECHO "ifelse($#,3,${$3},${RED})${mv_prefix}: *** ${mv_severity}patsubst([$2], [ +], [" +>&2 $ECHO "ifelse($#,3,${$3},${RED})${mv_prefix}: *** ${mv_severity}])" +>&2 $ECHO "ifelse($#,3,${$3},${RED})${mv_prefix}: ${mv_decor}${FOREGROUND-$RESET}" +unset mv_prefix +unset mv_decor + +if test "$silent" = yes; then $ECHO $_N "$RESET$_C"; fi + +}]) + +dnl ########################################################################### +dnl # MV_WARNING(TEXT [, COLOR ]) +dnl # +dnl # Le texte du message sera affiché avec l'attribut "bold". +dnl # Exemple d'utilisation: +dnl # +dnl # MV_WARNING([dnl +dnl # Ligne 1 +dnl # Ligne 2]) +dnl # +AC_DEFUN(MV_WARNING, [dnl +ifelse($#,1,,[ifelse($#,2,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])])dnl +dnl +MV_ERR_MSG(Warning,${BOLD}patsubst([$1], [ +], [${BOLD_OFF} +${BOLD}])${BOLD_OFF})]) + +dnl ########################################################################### +dnl # MV_ERROR(TEXT [, COLOR ]) +dnl # +dnl # Le texte du message sera affiché avec l'attribut "bold". +dnl # Exemple d'utilisation: +dnl # +dnl # MV_ERROR([dnl +dnl # Ligne 1 +dnl # Ligne 2]) +dnl # +AC_DEFUN(MV_ERROR, [dnl +ifelse($#,1,,[ifelse($#,2,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])])dnl +dnl +{ MV_ERR_MSG(Error,${BOLD}patsubst([$1], [ +], [${BOLD_OFF} +${BOLD}])${BOLD_OFF}); exit 1; }]) + +dnl ########################################################################### +dnl # MV_MSG_RESULT +dnl # +define(MV_MSG_RESULT, [dnl +AC_REQUIRE([MV_PROG_ECHO])dnl +$ECHO $_N "${CYAN}${_C}" +AC_MSG_RESULT([$1]) +$ECHO $_N "${FOREGROUND-$DEFAULT}$_C"]) + +dnl ########################################################################### +dnl # MV_ARG_ENABLE +dnl # +AC_DEFUN(MV_ARG_ENABLE, [dnl +{ +AC_ARG_ENABLE([$1],, [dnl + +enable_$1=`echo "$enableval"|MV_LOWER` +if test "$enable_$1" != yes; then enable_$1=no; fi], [enable_$1=yes]) +MV_MSG_RESULT([$3: $enable_$1]) + +dnl # Présentation de l'aide: +AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl +mv_len=`expr length "$2"` +n=`expr 24 - $mv_len` +v="$2" +i=$n +while >/dev/null expr $i; do + v="$v " + i=`expr $i - 1` +done +ac_help="$ac_help ${v}$3 (default=yes)" +AC_DIVERT_POP() + +if test "$enable_$1" = yes; then + : + $4 +else + : + $5 +fi +}dnl +AC_SUBST(enable_$1)]) + +dnl ########################################################################### +dnl # MV_FILL_COLUMNS(VAR, CH) +dnl # +dnl # Remplit la chaîne «VAR» avec (le caractère) «CH», autant de fois que la +dnl # largeur du teminal. +dnl # +AC_DEFUN(MV_FILL_COLUMNS, [dnl +ifelse($#,2,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_TERM_SIZE])dnl +MV_CONCAT($1, $COLUMNS, $2)]) + +dnl ########################################################################### +dnl # MV_FILL_BACKGROUND(VAR, CH) +dnl # +dnl # Remplit la chaîne «VAR» avec (le caractère) «CH», autant de fois que la +dnl # largeur du teminal, et ajoute le caractère «\r». +dnl # +AC_DEFUN(MV_FILL_BACKGROUND, [dnl +ifelse($#,2,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +MV_FILL_COLUMNS($1, $2); $1="$[]$1\r"]) + +dnl ########################################################################### +dnl # MV_PROG_AUTOCONF +dnl # +AC_DEFUN(MV_PROG_AUTOCONF, [AC_CHECK_PROGS(AUTOCONF, autoconf, :)]) + +dnl ########################################################################### +dnl # MV_PROG_ACLOCAL +dnl # +AC_DEFUN(MV_PROG_ACLOCAL, [AC_CHECK_PROGS(ACLOCAL, aclocal, :)]) + +dnl ########################################################################### +dnl # MV_PROG_CTRACE +dnl # +AC_DEFUN(MV_PROG_CTRACE, [AC_CHECK_PROGS(CTRACE, ctrace, cat)]) + +AC_DEFUN(MV_PROG_CTRACE2, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +dnl +{ +if test "$CTRACE" = yes; then + PATH_saved=$PATH + if test "$with_xc_libraries" = yes; then + PATH=.:$PATH + AC_PATH_PROG(CTRACE, ctrace) + elif test -n "$with_xc_libraries" -a "$with_xc_libraries" != no; then + CTRACE="LD_LIBRARY_PATH=$with_xc_libraries:$LD_LIBRARY_PATH `cd $with_xc_libraries && pwd`/ctrace" + AC_MSG_RESULT(ctrace path set to $with_xc_libraries/ctrace) + else + PATH=.:$PATH + LD_LIBRARY_PATH_saved=$LD_LIBRARY_PATH + LD_LIBRARY_PATH=$with_xc_libraries:$LD_LIBRARY_PATH + AC_PATH_PROG(CTRACE, ctrace) + LD_LIBRARY_PATH=$LD_LIBRARY_PATH_saved + fi + PATH=$PATH_saved +else + CTRACE=cat +fi + +AC_SUBST(CTRACE) + +}]) + +dnl ########################################################################### +dnl # MV_TOPDIR +dnl # +AC_DEFUN(MV_TOPDIR, [dnl + +topdir=`/bin/pwd` + +AC_SUBST(topdir)]) + +dnl ########################################################################### +dnl # MV_STANDARD +dnl # +AC_DEFUN(MV_STANDARD, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([MV_PROG_ECHO_ESCAPE])dnl +AC_REQUIRE([MV_DEF_SET_COLORS])dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([MV_PROG_AUTOCONF])dnl +AC_REQUIRE([MV_PROG_ACLOCAL])dnl +AC_REQUIRE([MV_PROG_CTRACE])dnl +AC_REQUIRE([AC_PROG_RANLIB])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +AC_REQUIRE([MV_TOPDIR])dnl +]) + +dnl ########################################################################### +dnl # MV_TRANSFORM_MODULES(SRC-DIRS, LNK-DIR, &MODULES) +dnl # +AC_DEFUN(MV_TRANSFORM_MODULES, [dnl +ifelse($#,3,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +{ +AC_MSG_RESULT(transforming module's names) + +mv_SRC_DIRS=$1 +mv_LNK_DIR=$2 +mv_MODULES=$$3 + +for mv_dir in $mv_SRC_DIRS; do + if test ! -d $mv_dir; then + MV_WARNING([dnl +No «`basename $mv_dir`» directory +in `dirname $mv_dir`]) + fi +done + +if test ! -d $mv_LNK_DIR; then mkdir -p $mv_LNK_DIR; fi + +TRANSFORM_MODULES= + +for m in $mv_MODULES; do + m=`echo $m|sed 's/\.o$//'` + ok=no + for d in $mv_SRC_DIRS; do + fs=$d/$m.cc + if test -f $fs; then + ok=yes + fl=$mv_LNK_DIR/`echo $m.cc|sed 's/\//__/g'` + TRANSFORM_MODULES="$TRANSFORM_MODULES $fl" + if test ! -L $fl; then + MV_MSG_RESULT([ ]- `basename $fl`) + ( cd `dirname $fl` && $LN_S $fs `basename $fl` ) + fi + else + fs=$d/$m.c + if test -f $fs; then + ok=yes + fl=$mv_LNK_DIR/`echo $m.c|sed 's/\//__/g'` + TRANSFORM_MODULES="$TRANSFORM_MODULES $fl" + if test ! -L $fl; then + MV_MSG_RESULT([ ]- `basename $fl`) + ( cd `dirname $fl` && $LN_S $fs `basename $fl` ) + fi + fi + fi + if test $ok = no; then MV_ERROR(Le fichier «$fs» n'existe pas); fi + done +done + +mv_modules= +for mv_mod in $mv_MODULES; do + mv_modules="$mv_modules `echo $mv_mod|sed 's/\//__/g'`" +done + +$3=$mv_modules + +AC_SUBST(TRANSFORM_MODULES)dnl + +}]) + +dnl ########################################################################### +dnl # MV_CONFIG_RULES(CONFIG-FILES, PRE-COMMAND, FILENAME) +dnl # +dnl # Génère le fichier, dont le nom sera par défaut «config.rules», +dnl # contenant les règles destinées à la mise-à-jour des fichiers FILES. +dnl # +define(MV_CONFIG_RULES, [dnl +AC_REQUIRE([MV_TOPDIR])dnl + +mv_config_files="$1" + +ifelse($#,3,[CONFIG_RULES=$3],[CONFIG_RULES=config.rules]) + +if test ! -f $CONFIG_RULES; then + echo "creating $CONFIG_RULES" + touch $CONFIG_RULES + >>$CONFIG_RULES echo '## -*- makefile -*-' + >>$CONFIG_RULES echo '## Generated automatically by configure.' + >>$CONFIG_RULES echo '' + >>$CONFIG_RULES echo '##--------------------------------------------------' + >>$CONFIG_RULES echo '## Inclure ce fichier dans un makefile pour gérer la' + >>$CONFIG_RULES echo '## mise-à-jour des fichiers configurés.' + >>$CONFIG_RULES echo '##--------------------------------------------------' + >>$CONFIG_RULES echo '' +else + echo "updating $CONFIG_RULES" +fi + +for mv_cf in $mv_config_files; do + case $mv_cf in + *:*) + mv_of=`echo $mv_cf|sed 's%:.*$%%'` + mv_cf=`echo $mv_cf|sed 's%^.*:%%'` + ;; + *) + mv_of=$mv_cf + mv_cf=$mv_cf.in + ;; + esac + mv_string1='$(topdir)/'$mv_of': $(top_srcdir)/'$mv_cf + mv_string2=' cd $(topdir) && CONFIG_FILES='$mv_of':'$mv_cf' ./config.status' + if >/dev/null grep -Fx "$mv_string1" $CONFIG_RULES; then + continue + fi + >>$CONFIG_RULES echo "$mv_string1" +ifelse($#,2,[dnl + >>$CONFIG_RULES echo ' ]$2[' +], ifelse($#,3,[dnl + >>$CONFIG_RULES echo ' ]$2[' +])) + >>$CONFIG_RULES echo "$mv_string2" + >>$CONFIG_RULES echo '' +done + +dnl # Il faudra que je trouve la technique M4 (et non shell) pour que le +dnl # traitement final effectif de MV_CONFIG_RULES, se fasse lors du dernier +dnl # appel de la macro (voir AC_DIVERSION...). +>>$CONFIG_RULES echo '## [END OF FILE]' + +CONFIGURE_FILES="`echo $CONFIG_RULES $CONFIGURE_FILES`" + +AC_SUBST(CONFIG_RULES)]) + +dnl ########################################################################### +dnl # MV_OUTPUT(CONFIG-FILES, EXTRA-CMDS, INIT-CMDS) +dnl # +dnl # Idem que «AC_OUTPUT», et substitue «OUTPUT_FILES» et «CONFIGURE_FILES». +dnl # Ces deux variables sont utiles pour nettoyer la distribution. Exemple: +dnl # +dnl # distclean:: ; $(RM) @OUTPUT_FILES@ @CONFIGURE_FILES@ +dnl # +AC_DEFUN(MV_OUTPUT, [dnl + +mv_config_files="$1" + +OUTPUT_FILES= +for mv_cf in $mv_config_files; do + case $mv_cf in + *:*) OUTPUT_FILES="$OUTPUT_FILES `echo $mv_cf|sed 's%:.*$%%'`";; + *) OUTPUT_FILES="$OUTPUT_FILES $mv_cf";; + esac +done + +OUTPUT_FILES=`echo $OUTPUT_FILES` + +CONFIGURE_FILES="`echo $CONFIGURE_FILES config.log config.status config.cache`" + +AC_SUBST(OUTPUT_FILES)dnl +AC_SUBST(CONFIGURE_FILES)dnl + +AC_OUTPUT($mv_config_files, $2, $3)]) + +dnl ########################################################################### +dnl # MV_MKLOG +dnl # +dnl # Macro très spécialisée destinée à l'affichage dans LAYER-SYSTEM. +dnl # Substitue «MK_MKLOG» et «MK_BG_SPACES». +dnl # Remis à jour à chaque appel de configure. +dnl # +AC_DEFUN(MV_MKLOG, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +MV_FILL_BACKGROUND(MK_MKLOG, [.]) +MV_CONCAT(MK_MKLOG,`expr $COLUMNS / 8`,\\t) +MV_FILL_BACKGROUND(MK_BG_SPACES, [[[ ]]]) +AC_SUBST(MK_MKLOG)dnl +AC_SUBST(MK_BG_SPACES)]) + +dnl ########################################################################### +dnl # MV_MK_STANDARD +dnl # +AC_DEFUN(MV_MK_STANDARD, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl + +AC_CONFIG_AUX_DIR(mk) +MV_STANDARD +MV_TOLOWER +MV_TOUPPER +MV_MKLOG + +PACKAGE=${PACKAGE-PACKAGE} +VERSION=${VERSION-0.0.0} +SOMAJOR=${SOMAJOR-`echo $VERSION|sed 's/\..*//'`} + +pkgdatadir=$datadir/$PACKAGE +pkgsysconfdir=$sysconfdir/$PACKAGE +pkglocalstatedir=$localstatedir/$PACKAGE +pkgsharedstatedir=$sharedstatedir/$PACKAGE +package_data=$pkgdatadir/data + +dnl # Obligatoires: +AC_SUBST(PACKAGE)dnl +AC_SUBST(VERSION)dnl +dnl # Ici car très communément utilisés: +AC_SUBST(PROGRAMS)dnl +AC_SUBST(INCNAME)dnl +AC_SUBST(LIBNAME)dnl +AC_SUBST(ARCHIVE)dnl +AC_SUBST(LIBRARY)dnl +AC_SUBST(SOMAJOR)dnl +AC_SUBST(LIBSONAME)dnl +AC_SUBST(MODULES)dnl +AC_SUBST(PLUGINS)dnl +AC_SUBST(HEADERS)dnl +AC_SUBST(MANUALS)dnl +AC_SUBST(SUBDIRS)dnl +dnl # Diverses variables employées par LAYER-SYSTEM: +AC_SUBST(LAYERS)dnl +AC_SUBST(DEPINCS)dnl +AC_SUBST(DEPLIBS)dnl +AC_SUBST(DEFINES)dnl +AC_SUBST(INCLUDES)dnl +AC_SUBST(LIBRARIES)dnl +AC_SUBST(RPATH)dnl +AC_SUBST(LOCAL_LNK_DIR)dnl +AC_SUBST(LOCAL_SRC_DIRS)dnl +AC_SUBST(LOCAL_INC_DIRS)dnl +AC_SUBST(LOCAL_MAN_DIRS)dnl + +AC_SUBST(pkgdatadir)dnl +AC_SUBST(pkgsysconfdir)dnl +AC_SUBST(pkglocalstatedir)dnl +AC_SUBST(pkgsharedstatedir)dnl +AC_SUBST(package_data)dnl + +dnl ## +dnl # PERL PART +AC_SUBST(PERL)dnl +dnl ## +dnl # PYTHON PART +AC_SUBST(PYTHON)dnl +AC_SUBST(PYTHON_VERSION)dnl +AC_SUBST(PYTHON_LIBDIR)dnl +dnl ## +dnl # C PART +AC_SUBST(CC)dnl +AC_SUBST(CPP)dnl +dnl ## +dnl # C++ PART +AC_SUBST(CXX)dnl +AC_SUBST(CXXCPP)dnl +]) + +dnl ########################################################################### +dnl # MV_MK_OUTPUT(MAKEFILE-NAME, SUBDIRS, CONFIG-FILES, EXTRA-CMDS, INIT-CMDS) +dnl # +dnl # Idem que «MV_OUTPUT», mais gère en plus les fichiers pour LAYER-SYSTEM +dnl # grâce au fichier «system.rules» qui sera généré. +dnl # Prend 2 paramètres supplémentaires afin d'indiquer les makefile à créer +dnl # à l'aide de la liste des répertoires fournis. +dnl # Substitue les variables «topdir» et «makefile». +dnl # Appel également MV_TRANSFORM_MODULES. +dnl # +AC_DEFUN(MV_MK_OUTPUT, [dnl + +MV_MK_STANDARD + +dnl # Cette partie est certainement à isoler dans une macro à part... + +abssrcdir=`cd $srcdir && /bin/pwd` + +LOCAL_INC_DIRS=`for d in $LOCAL_INC_DIRS; do echo -n " $abssrcdir/$d"; done` +LOCAL_SRC_DIRS=`for d in $LOCAL_SRC_DIRS; do echo -n " $abssrcdir/$d"; done` +LOCAL_MAN_DIRS=`for d in $LOCAL_MAN_DIRS; do echo -n " $abssrcdir/$d"; done` + +if test -n "$LOCAL_LNK_DIR"; then + LOCAL_LNK_DIR=$topdir/$LOCAL_LNK_DIR + MV_TRANSFORM_MODULES($LOCAL_SRC_DIRS, $LOCAL_LNK_DIR, MODULES) +fi + +dnl # + +makefile=$1 +mv_subdirs="$2" + +if test ! -d $srcdir/mk; then + MV_ERROR([dnl +No «mk» (LAYER-SYSTEM) directory +in «$srcdir»]) +fi + +if test ! -f $srcdir/mk/private.mk.in; then + MV_ERROR([dnl +No «mk/private.mk.in» (LAYER-SYSTEM) file +in «$srcdir»]) +fi + +# Prise en compte automatique des fichiers de LAYER-SYSTEM +mv_system_files=`cd $srcdir && 2>/dev/null ls mk/*.in|fgrep -xv mk/private.mk.in|sed 's/\.in$//g'` + +if test -z "$mv_system_files"; then + MV_WARNING([dnl +No LAYER-SYSTEM files +in «$srcdir/mk/»]) +fi + +MV_CONFIG_RULES($mv_system_files, [@ $(~autoconf)], system.rules) + +mv_config_files=$mv_system_files + +if test -n "$makefile" -a -n "$mv_subdirs"; then + for mv_subdir in $mv_subdirs; do + if test ! -d $srcdir/$mv_subdir; then + MV_ERROR([No «$mv_subdir» directory!]) + fi + if test ! -f $srcdir/$mv_subdir/$makefile.in; then + MV_ERROR([No $makefile in «$mv_subdir» source directory!]) + fi + mv_config_files="$mv_config_files $mv_subdir/.private.mk:mk/private.mk.in" + mv_config_files="$mv_config_files $mv_subdir/$makefile" + done +fi + +AC_SUBST(makefile)dnl + +MV_OUTPUT($mv_config_files $3, $4, $5)]) + +dnl ########################################################################### +dnl # MV_SET_GCC_OPTIONS +dnl # +AC_DEFUN(MV_SET_GCC_OPTIONS, [dnl +dnl +GCC_OVERALL_OPTIONS=" -pipe" +GCC_WARNING_OPTIONS=" -Wall -W -Wmissing-prototypes -Wshadow -Wwrite-strings\ + -Wcast-qual -Winline" +GCC_DEBUG_OPTIONS=" -fno-builtin -g" +## +# OPTIMIZE: Attention «-fshort-enums» est très délicat à utiliser. Il impose +# que tous les composants d'une application aient été générés de cette manière. +GCC_OPTIMIZE_OPTIONS=" -O2 -ffast-math -fomit-frame-pointer" +GCC_PIC_OPTIONS=" -fPIC" +GNU_LINKER_OPTIONS=" -warn-once -warn-common" + +if test -n "`echo $GNU_LINKER_OPTIONS`"; then + GCC_LINKER_OPTIONS="\ + $GCC_LINKER_OPTIONS -Wl,`echo $GNU_LINKER_OPTIONS|sed 's/ /,/g'`" +fi + +GCC_SHARED_OPTIONS=" -shared" +dnl +AC_SUBST(GCC_WARNING_OPTIONS)dnl +AC_SUBST(GCC_DEBUG_OPTIONS)dnl +AC_SUBST(GCC_OPTIMIZE_OPTIONS)dnl +AC_SUBST(GCC_PIC_OPTIONS)dnl +AC_SUBST(GCC_LINKER_OPTIONS)dnl +AC_SUBST(GCC_SHARED_OPTIONS)]) + +dnl ########################################################################### +dnl # MV_SET_GXX_OPTIONS +dnl # +AC_DEFUN(MV_SET_GXX_OPTIONS, [dnl +dnl +GXX_OVERALL_OPTIONS=" -pipe" +GXX_WARNING_OPTIONS=" -Wall -W -Wmissing-prototypes -Wshadow -Wwrite-strings\ + -Wcast-qual -Winline" +GXX_DEBUG_OPTIONS=" -fno-builtin -g" +## +# OPTIMIZE: Attention «-fshort-enums» est très délicat à utiliser. Il impose +# que tous les composants d'une application aient été générés de cette manière. +GXX_OPTIMIZE_OPTIONS=" -O2 -ffast-math -fomit-frame-pointer" +GXX_PIC_OPTIONS=" -fPIC" +GNU_LINKER_OPTIONS=" -warn-once -warn-common" + +if test -n "`echo $GNU_LINKER_OPTIONS`"; then + GXX_LINKER_OPTIONS="\ + $GXX_LINKER_OPTIONS -Wl,`echo $GNU_LINKER_OPTIONS|sed 's/ /,/g'`" +fi + +GXX_SHARED_OPTIONS=" -shared" +dnl +AC_SUBST(GXX_WARNING_OPTIONS)dnl +AC_SUBST(GXX_DEBUG_OPTIONS)dnl +AC_SUBST(GXX_OPTIMIZE_OPTIONS)dnl +AC_SUBST(GXX_PIC_OPTIONS)dnl +AC_SUBST(GXX_LINKER_OPTIONS)dnl +AC_SUBST(GXX_SHARED_OPTIONS)]) + +dnl ########################################################################### +dnl # MV_PROG_GCC(-pipe -ansi -pedantic ...) +dnl # +dnl # Vite fait, bien fait ;-) +dnl # Impose gcc comme compilateur C. +dnl # Définit CC et CPP, ainsi que d'autres variables à utiliser dans un +dnl # makefile. +dnl # +AC_DEFUN(MV_PROG_GCC, [dnl +AC_BEFORE([$0], MV_CONFIG_FD_IS_CHAR_DEVICE)dnl +AC_REQUIRE([MV_SET_GCC_OPTIONS])dnl +MV_MSG_RESULT([GNU C compiler set]) +AC_CACHE_VAL(ac_cv_prog_CC, [ac_cv_prog_CC=`echo gcc $1`]) +CC=$ac_cv_prog_CC +AC_PROG_CC_WORKS +AC_PROG_CC_GNU +AC_PROG_CC_G +if test $ac_cv_prog_gcc = yes; then GCC=yes; else GCC=; fi +AC_CACHE_VAL(ac_cv_prog_CPP, [ac_cv_prog_CPP="$CC -E"]) +CPP=$ac_cv_prog_CPP +CC_WARNING_OPTIONS='$(GCC_WARNING_OPTIONS)' +CC_DEBUG_OPTIONS='$(GCC_DEBUG_OPTIONS)' +CC_OPTIMIZE_OPTIONS='$(GCC_OPTIMIZE_OPTIONS)' +CC_PIC_OPTIONS='$(GCC_PIC_OPTIONS)' +CC_LINKER_OPTIONS='$(GCC_LINKER_OPTIONS)' +CC_SHARED_OPTIONS='$(GCC_SHARED_OPTIONS)' +AC_SUBST(GCC)dnl +AC_SUBST(CC)dnl +AC_SUBST(CPP)dnl +AC_SUBST(CC_WARNING_OPTIONS)dnl +AC_SUBST(CC_DEBUG_OPTIONS)dnl +AC_SUBST(CC_OPTIMIZE_OPTIONS)dnl +AC_SUBST(CC_PIC_OPTIONS)dnl +AC_SUBST(CC_LINKER_OPTIONS)dnl +AC_SUBST(CC_SHARED_OPTIONS)]) + +dnl ########################################################################### +dnl # MV_PROG_GXX(-pipe -ansi -pedantic ...) +dnl # +dnl # Vite fait, bien fait ;-) +dnl # Impose g++ comme compilateur C++. +dnl # Définit CXX et CXXCPP, ainsi que d'autres variables à utiliser dans un +dnl # makefile. +dnl # +AC_DEFUN(MV_PROG_GXX, [dnl +AC_BEFORE([$0], MV_CONFIG_FD_IS_CHAR_DEVICE)dnl +AC_REQUIRE([MV_SET_GXX_OPTIONS])dnl +MV_MSG_RESULT([GNU C++ compiler set]) +AC_CACHE_VAL(ac_cv_prog_CXX, [ac_cv_prog_CXX=`echo g++ $1`]) +CXX=$ac_cv_prog_CXX +AC_PROG_CXX_WORKS +AC_PROG_CXX_GNU +AC_PROG_CXX_G +if test $ac_cv_prog_gxx = yes; then GXX=yes; else GXX=; fi +AC_CACHE_VAL(ac_cv_prog_CXXCPP, [ac_cv_prog_CXXCPP="$CXX -E"]) +CXXCPP=$ac_cv_prog_CXXCPP +CXX_WARNING_OPTIONS='$(GXX_WARNING_OPTIONS)' +CXX_DEBUG_OPTIONS='$(GXX_DEBUG_OPTIONS)' +CXX_OPTIMIZE_OPTIONS='$(GXX_OPTIMIZE_OPTIONS)' +CXX_PIC_OPTIONS='$(GXX_PIC_OPTIONS)' +CXX_LINKER_OPTIONS='$(GXX_LINKER_OPTIONS)' +CXX_SHARED_OPTIONS='$(GXX_SHARED_OPTIONS)' +AC_SUBST(GXX)dnl +AC_SUBST(CXX)dnl +AC_SUBST(CXXCPP)dnl +AC_SUBST(CXX_WARNING_OPTIONS)dnl +AC_SUBST(CXX_DEBUG_OPTIONS)dnl +AC_SUBST(CXX_OPTIMIZE_OPTIONS)dnl +AC_SUBST(CXX_PIC_OPTIONS)dnl +AC_SUBST(CXX_LINKER_OPTIONS)dnl +AC_SUBST(CXX_SHARED_OPTIONS)]) + +dnl ########################################################################### +dnl # MV_PROG_CC +dnl # +dnl # Comme AC_PROG_CC, avec AC_PROG_CPP, et quelques trucs en plus. +dnl # Définit également des options qui seront choisies en appelant make. +dnl # +AC_DEFUN(MV_PROG_CC, [dnl +AC_BEFORE([$0], MV_CONFIG_FD_IS_CHAR_DEVICE)dnl +AC_REQUIRE([MV_SET_GCC_OPTIONS])dnl +{ +dnl # If the user did not set CFLAGS, set it now to keep +dnl # the AC_PROG_CC macro from adding "-g -O2". +if test "${CFLAGS+set}" != set; then CFLAGS=; fi +AC_PROG_CC +if test "$GCC" = yes; then + MV_MSG_RESULT([Congratulations: You are using GNU CC ($CC). The best!]) + CC_OVERALL_OPTIONS=$GCC_OVERALL_OPTIONS + CC_WARNING_OPTIONS='$(GCC_WARNING_OPTIONS)' + CC_DEBUG_OPTIONS='$(GCC_DEBUG_OPTIONS)' + CC_OPTIMIZE_OPTIONS='$(GCC_OPTIMIZE_OPTIONS)' + CC_PIC_OPTIONS='$(GCC_PIC_OPTIONS)' + CC_SHARED_OPTIONS='$(GCC_SHARED_OPTIONS)' + CC_LINKER_OPTIONS='$(GCC_LINKER_OPTIONS)' +else + AC_MSG_RESULT([Why don't use GNU CC?]) +fi +CC=`echo $CC $CC_OVERALL_OPTIONS` +AC_PROG_CPP +} +AC_SUBST(GCC)dnl +AC_SUBST(CC_WARNING_OPTIONS)dnl +AC_SUBST(CC_DEBUG_OPTIONS)dnl +AC_SUBST(CC_OPTIMIZE_OPTIONS)dnl +AC_SUBST(CC_PIC_OPTIONS)dnl +AC_SUBST(CC_LINKER_OPTIONS)dnl +AC_SUBST(CC_SHARED_OPTIONS)dnl +]) + +dnl ########################################################################### +dnl # MV_PROG_CXX +dnl # +dnl # Comme AC_PROG_CXX, avec AC_PROG_CXXCPP, et quelques trucs en plus. +dnl # Définit également des options qui seront choisies en appelant make. +dnl # +AC_DEFUN(MV_PROG_CXX, [dnl +AC_BEFORE([$0], MV_CONFIG_FD_IS_CHAR_DEVICE)dnl +AC_REQUIRE([MV_SET_GXX_OPTIONS])dnl +{ +dnl # If the user did not set CFLAGS, set it now to keep +dnl # the AC_PROG_CXX macro from adding "-g -O2". +if test "${CFLAGS+set}" != set; then CFLAGS=; fi +AC_PROG_CXX +if test "$GXX" = yes; then + MV_MSG_RESULT([Congratulations: You are using GNU CXX ($CXX). The best!]) + CXX_OVERALL_OPTIONS=$GXX_OVERALL_OPTIONS + CXX_WARNING_OPTIONS='$(GXX_WARNING_OPTIONS)' + CXX_DEBUG_OPTIONS='$(GXX_DEBUG_OPTIONS)' + CXX_OPTIMIZE_OPTIONS='$(GXX_OPTIMIZE_OPTIONS)' + CXX_PIC_OPTIONS='$(GXX_PIC_OPTIONS)' + CXX_SHARED_OPTIONS='$(GXX_SHARED_OPTIONS)' + CXX_LINKER_OPTIONS='$(GXX_LINKER_OPTIONS)' +else + AC_MSG_RESULT([Why don't use GNU C++?]) +fi +CXX=`echo $CXX $CXX_OVERALL_OPTIONS` +AC_PROG_CXXCPP +} +AC_SUBST(GXX)dnl +AC_SUBST(CXX_WARNING_OPTIONS)dnl +AC_SUBST(CXX_DEBUG_OPTIONS)dnl +AC_SUBST(CXX_OPTIMIZE_OPTIONS)dnl +AC_SUBST(CXX_PIC_OPTIONS)dnl +AC_SUBST(CXX_LINKER_OPTIONS)dnl +AC_SUBST(CXX_SHARED_OPTIONS)dnl +]) + +dnl ########################################################################### +dnl # A REVOIR/A RELIRE +dnl ########################################################################### + +dnl ########################################################################### +dnl # MV_PREFIX_PROGRAM +dnl # +dnl # Une simple ré-écriture de «AC_PREFIX_PROGRAM» juste pour autoriser le +dnl # caractère «-» dans le nom du programme. +dnl # +AC_DEFUN(MV_PREFIX_PROGRAM, [dnl +if test "x$prefix" = xNONE; then +changequote(«, »)dnl +define(«AC_VAR_NAME», translit($1, -[a-z], _[A-Z]))dnl +changequote([,])dnl +dnl We reimplement AC_MSG_CHECKING (mostly) to avoid the ... in the middle. +echo $ac_n "checking for prefix by $ac_c" 1>&AC_FD_MSG +AC_PATH_PROG(AC_VAR_NAME, $1) +changequote(«,»)dnl + if test -n "$ac_cv_path_«»AC_VAR_NAME"; then + prefix=`echo $ac_cv_path_«»AC_VAR_NAME|sed 's%/[^/][^/]*//*[^/][^/]*$%%'` +changequote([,])dnl + fi +fi +undefine([AC_VAR_NAME])]) + +dnl ########################################################################### +dnl # MV_PROG_MKDIRHIER +dnl # +AC_DEFUN(MV_PROG_MKDIRHIER, [dnl +if test `uname` = Linux; then + AC_PATH_PROGS(MKDIRHIER, mkinstalldirs mkdirhier, install -d, $PATH:$srcdir) +else + AC_PATH_PROGS(MKDIRHIER, mkinstalldirs mkdirhier, mkdir -p, $PATH:$srcdir) +fi]) + +dnl ########################################################################### +dnl # MV_PROG_RMDIRHIER +dnl # +AC_DEFUN(MV_PROG_RMDIRHIER, [dnl +if test `uname` = Linux; then + AC_PATH_PROG(RMDIRHIER, rmdirhier, rmdir -p, $PATH:$srcdir) +else + RMDIRHIER="rmdir -p" +fi]) + +dnl ########################################################################### +dnl # MV_PROG_LD +dnl # +AC_DEFUN(MV_PROG_LD, [dnl +AC_MSG_CHECKING(for the \"front-end\" linker to use) +ifelse(AC_LANG, C, [ + LD=$CC + AC_MSG_RESULT($LD)], + ifelse(AC_LANG, CPLUSPLUS, [ + LD=$CXX + AC_MSG_RESULT($LD)], + LD=${CC:-cc} + AC_MSG_RESULT($LD))) +AC_SUBST(LD)]) + +dnl ########################################################################### +dnl # MV_PROG_PERL(MIN-VERSION) +dnl # +AC_DEFUN(MV_PROG_PERL, [{dnl + +mv_requested_version=$1 + +changequote(,) +mv_requested_major_version=`echo $mv_requested_version|sed -n 's/^\([^.]*\).*$/\1/p'` +mv_requested_version=`echo $mv_requested_version|sed -n "s/^$mv_requested_major_version\.\(.*$\)/\1/p"` +mv_requested_minor_version=`echo $mv_requested_version|sed -n 's/^\([^.]*\).*$/\1/p'` +mv_requested_version=`echo $mv_requested_version|sed -n "s/^$mv_requested_minor_version\.\(.*$\)/\1/p"` +mv_requested_micro_version=`echo $mv_requested_version|sed -n 's/^\([^.]*\).*$/\1/p'` +mv_requested_version=`echo $mv_requested_version|sed -n "s/^$mv_requested_micro_version\.\(.*$\)/\1/p"` +changequote([,]) + +if test -z "$mv_requested_major_version"\ + -o -z "$mv_requested_minor_version"\ + -o -z "$mv_requested_micro_version"\ + -o -n "$mv_requested_version"; then + test "$silent" != yes && MV_WARNING(Un problème d'analyse de la version demandée de Perl) +fi + +mv_requested_major_version=`echo $mv_requested_major_version|sed 's/^0*//'` +mv_requested_minor_version=`echo $mv_requested_minor_version|sed 's/^0*//'` +mv_requested_micro_version=`echo $mv_requested_micro_version|sed 's/^0*//'` + +mv_requested_version=$mv_requested_major_version.$mv_requested_minor_version.$mv_requested_micro_version + +MV_MSG(You want Perl version \"$mv_requested_version\":, $CYAN) + +AC_CHECK_PROGS(PERL, perl) + +if test -z "$PERL"; then MV_ERROR(No PERL interpreter found!!!); fi + +AC_REQUIRE([MV_SET_BRACKETS])dnl +mv_string='print $'"${mv_RB};" +PERL_VERSION=`$PERL -e "$mv_string;"` +MV_MSG_N(Perl version found is \"$PERL_VERSION\"..., $CYAN) + +changequote(,) +PERL_MAJOR_VERSION=`echo $PERL_VERSION|sed -n 's/^\([^.]*\).*$/\1/p'` +PERL_VERSION=`echo $PERL_VERSION|sed -n "s/^$PERL_MAJOR_VERSION\.\(.*$\)/\1/p"` +PERL_MINOR_VERSION=`echo $PERL_VERSION|sed -n 's/^\(...\).*$/\1/p'` +PERL_VERSION=`echo $PERL_VERSION|sed -n "s/^$PERL_MINOR_VERSION\(.*$\)/\1/p"` +dnl # Un doute ici: 03 doit-il correspondre à 3 ou 30? +PERL_MICRO_VERSION=$PERL_VERSION +changequote([,]) + +if test -z "$PERL_MAJOR_VERSION"\ + -o -z "$PERL_MINOR_VERSION"\ + -o -z "$PERL_MICRO_VERSION"; then + test "$silent" != yes && MV_MSG(); MV_WARNING(Un problème d'analyse de la version trouvée de Perl) +fi + +PERL_MAJOR_VERSION=`echo $PERL_MAJOR_VERSION|sed 's/^0*//'` +PERL_MINOR_VERSION=`echo $PERL_MINOR_VERSION|sed 's/^0*//'` +PERL_MICRO_VERSION=`echo $PERL_MICRO_VERSION|sed 's/^0*//'` + +AC_SUBST(PERL_MAJOR_VERSION)dnl +AC_SUBST(PERL_MINOR_VERSION)dnl +AC_SUBST(PERL_MICRO_VERSION)dnl + +PERL_VERSION=$PERL_MAJOR_VERSION.$PERL_MINOR_VERSION.$PERL_MICRO_VERSION + +AC_SUBST(PERL_VERSION)dnl + +MV_MSG([ ]and standardized version is \"$PERL_VERSION\", $CYAN) + +if test $PERL_MAJOR_VERSION -lt $mv_requested_major_version\ + -o $PERL_MINOR_VERSION -lt $mv_requested_minor_version\ + -o $PERL_MICRO_VERSION -lt $mv_requested_micro_version; then + test "$silent" != yes && MV_WARNING(La version demandée de Perl n'a pas été trouvée) +else + MV_MSG(Fine: Version of Perl requested is found, $CYAN) +fi + +}]) + +dnl ########################################################################### +dnl # MV_AUTOCONF_DIRS +dnl # +AC_DEFUN(MV_AUTOCONF_DIRS, [dnl +dnl # +test "$prefix" = NONE && prefix=$ac_default_prefix +test "$exec_prefix" = NONE && exec_prefix=$prefix +dnl # +test "$libdir" = '${exec_prefix}/lib' && libdir=${exec_prefix}/lib +test "$libexecdir" = '${exec_prefix}/libexec' && libexecdir=${exec_prefix}/libexec +test "$sbindir" = '${exec_prefix}/sbin' && sbindir=${exec_prefix}/sbin +test "$bindir" = '${exec_prefix}/bin' && bindir=${exec_prefix}/bin +test "$datadir" = '${prefix}/share' && datadir=${prefix}/share +test "$sysconfdir" = '${prefix}/etc' && sysconfdir=${prefix}/etc +test "$localstatedir" = '${prefix}/var' && localstatedir=${prefix}/var +test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=${prefix}/com +test "$mandir" = '${prefix}/man' && mandir=${prefix}/man +test "$infodir" = '${prefix}/info' && infodir=${prefix}/info +test "$includedir" = '${prefix}/include' && includedir=${prefix}/include]) + +dnl ########################################################################### +dnl # MV_CHECK_CONFIG_FILES +dnl # +AC_DEFUN(MV_CHECK_CONFIG_FILES, [dnl +for i in $CONFIG_FILES; do + case $i in + *:*) + t=`echo $i | sed 's/^.*://'` + ;; + *) + t=$i.in + ;; + esac + if test ! -f $srcdir/$t; then + dir=`dirname $srcdir/$t` + if test ! -d $dir; then + MV_ERROR([Le répertoire «$dir» n'existe pas]) + fi + MV_ERROR([Le fichier «$srcdir/$t» n'existe pas]) + fi +done]) + +dnl ########################################################################### +dnl # MV_DO_MICO +dnl # +AC_DEFUN(MV_DO_MICO, [dnl +AC_CHECK_PROGS(IDL, idl) +if test -n "$IDL"; then + version_string=`$IDL --version` + if test "`echo $version_string | awk '{ print [$]1 }'`" = MICO; then + AC_DEFINE(__MICO__) + MICO_VERSION=`echo $version_string | awk '{ print [$]3 }'` + echo "MICO Version $MICO_VERSION found" + IDL='idl --c++-suffix=$(strip $''1) --hh-suffix=$(strip $''2)' + AC_SUBST(IDL) + IDL_BOA="$IDL --boa --no-poa" + IDL_POA="$IDL --poa --no-boa" + IDL_BOA_POA="$IDL --boa --poa" + IDL_POA_BOA="$IDL --poa --boa" + AC_SUBST(IDL_BOA) + AC_SUBST(IDL_POA) + AC_SUBST(IDL_BOA_POA) + AC_SUBST(IDL_POA_BOA) + AC_CHECK_LIB(mico$MICO_VERSION, main) + fi +fi]) + +dnl ########################################################################### +dnl # MV_DO_OMNIORB +dnl # +AC_DEFUN(MV_DO_OMNIORB, [dnl +AC_CHECK_PROGS(IDL, omniidl) +if test -n "$IDL"; then + version_string=`2>&1 omniidl -V | head -1` + if test "`echo $version_string | awk '{ print [$]1 }'`" = Omniidl; then + AC_DEFINE(__OMNIORB__) + OMNIORB_VERSION=`echo $version_string | awk '{ print [$]2 }'` + echo "omniORB Version $OMNIORB_VERSION found" + IDL='idl -s $(strip $''1) -h $(strip $''2)' + AC_SUBST(IDL) + IDL_BOA="$IDL" + IDL_POA="$IDL" + IDL_BOA_POA="$IDL" + IDL_POA_BOA="$IDL" + AC_SUBST(IDL_BOA) + AC_SUBST(IDL_POA) + AC_SUBST(IDL_BOA_POA) + AC_SUBST(IDL_POA_BOA) + AC_CHECK_LIB(omniGK_alone, main) + AC_CHECK_LIB(omniORB, main) + fi +fi]) + +dnl ########################################################################### +dnl # MV_DO_OMNIORB2 +dnl # +AC_DEFUN(MV_DO_OMNIORB2, [dnl +AC_CHECK_PROGS(IDL, omniidl2) +if test -n "$IDL"; then + version_string=`2>&1 omniidl2 -V | head -1` + if test "`echo $version_string | awk '{ print [$]1 }'`" = Omniidl; then + AC_DEFINE(__OMNIORB__) + OMNIORB_VERSION=`echo $version_string | awk '{ print [$]2 }'` + echo "omniORB Version $OMNIORB_VERSION found" + IDL='idl -s $(strip $''1) -h $(strip $''2)' + AC_SUBST(IDL) + IDL_BOA="$IDL" + IDL_POA="$IDL" + IDL_BOA_POA="$IDL" + IDL_POA_BOA="$IDL" + AC_SUBST(IDL_BOA) + AC_SUBST(IDL_POA) + AC_SUBST(IDL_BOA_POA) + AC_SUBST(IDL_POA_BOA) + AC_CHECK_LIB(omniGK_alone, main) + AC_CHECK_LIB(omniORB2, main) + fi +fi]) + +dnl ########################################################################### +dnl # MV_CHECK_OMLIB +dnl # +AC_DEFUN(MV_CHECK_OMLIB, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])]) + +{ + +AC_ARG_WITH(om_includes, +[] --with-om-includes=DIR OMLIB include files are in DIR) +AC_ARG_WITH(om_libraries, +[] --with-om-libraries=DIR OMLIB library files are in DIR) + +if test -z "$with_om_includes" -o "$with_om_includes" = yes; then + found=false + if test -n "$subdirs"; then + for dir in $subdirs; do + if test -f "$dir/OverlapMan2.h"; then + found=true + AC_MSG_RESULT(omlib: include file \"OverlapMan2.h\" found in $dir/include) + depinc="`cd $dir && /bin/pwd`/OverlapMan2.h" + DEPINCS="$depinc $DEPINCS" + AC_MSG_RESULT(omlib: $depinc add to DEPINCS) + break + fi + done + fi + if ! $found; then + AC_CHECK_HEADER(OverlapMan2.h,, AC_ERROR(Overlap Manger Library required)) + fi +elif test "$with_om_includes" != no; then + if test -f "$srcdir/$with_om_includes/OverlapMan2.h"; then + AC_MSG_RESULT(omlib: include file \"OverlapMan2.h\" found in $srcdir/$with_om_includes) + DEPINCS="`cd $srcdir/$with_om_includes && /bin/pwd`/OverlapMan2.h $DEPINCS" + else + AC_ERROR(OverlapMan2.h not found in $srcdir/$with_om_includes) + fi +fi + +if test -z "$with_om_libraries" -o "$with_om_libraries" = yes; then + found=false + if test -n "$subdirs"; then + for dir in $subdirs; do + if test -f "$dir/OverlapMan2.h"; then + found=true + dir="`cd $dir && /bin/pwd`" + RPATH="$dir $RPATH" + deplib=$dir/libom.so + DEPLIBS="$deplib $DEPLIBS" + AC_MSG_RESULT(omlib: $deplib add to DEPLIBS) + break + fi + done + fi + if ! $found; then + if test "$with_om_libraries" = yes; then + AC_CHECK_LIB(om, puterrmsg,, AC_ERROR(Overlap Manger required)) + else + AC_CHECK_LIB(om, puterrmsg) + fi + fi +elif test "$with_om_libraries" != no; then + if test -f "$srcdir/$with_om_libraries/configure"; then + AC_CONFIG_SUBDIRS($with_om_libraries) + AC_MSG_RESULT(omlib: $with_om_libraries added to directories to configure) + LDFLAGS="-L`cd $with_om_libraries && /bin/pwd` $LDFLAGS" + LIBS="-lom $LIBS" + elif test -f "$srcdir/$with_om_libraries/libom.so"; then + AC_MSG_RESULT(omlib: library file \"libom.so\" found in $srcdir/$with_om_libraries) + DEPLIBS="`cd $srcdir/$with_om_libraries && /bin/pwd`/libom.so $DEPLIBS" + elif test -f "$srcdir/$with_om_libraries/libom.a"; then + AC_MSG_RESULT(omlib: library file \"libom.a\" found in $srcdir/$with_om_libraries) + DEPLIBS="`cd $srcdir/$with_om_libraries && /bin/pwd`/libom.a $DEPLIBS" + else + AC_ERROR(no Overlap Manger library found and don't know how to built it) + fi +fi + +AC_SUBST(RPATH) + +}]) + +dnl ########################################################################### +dnl # MV_CHECK_XCLIB +dnl # +AC_DEFUN(MV_CHECK_XCLIB, [dnl +ifelse($#,0,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])]) + +{ + +AC_ARG_WITH(xc_includes, +[] --with-xc-includes=DIR XCLIB include files are in DIR) +AC_ARG_WITH(xc_libraries, +[] --with-xc-libraries=DIR XCLIB library files are in DIR) + +if test -z "$with_xc_includes" -o "$with_xc_includes" = yes; then + found=false + if test -n "$subdirs"; then + for dir in $subdirs; do + if test -f "$dir/include/xclib.h"; then + found=true + AC_MSG_RESULT(xclib: include file \"xclib.h\" found in $dir/include) + depinc="`cd $dir/include && /bin/pwd`/xclib.h" + DEPINCS="$depinc $DEPINCS" + AC_MSG_RESULT(xclib: $depinc add to DEPINCS) + break + fi + done + fi + if ! $found; then + AC_CHECK_HEADER(xclib.h,, AC_ERROR(eXtended C Library required)) + fi +elif test "$with_xc_includes" != no; then + if test -f "$srcdir/$with_xc_includes/xclib.h"; then + AC_MSG_RESULT(xclib: include file \"xclib.h\" found in $srcdir/$with_xc_includes) + DEPINCS="`cd $srcdir/$with_xc_includes && /bin/pwd`/xclib.h $DEPINCS" + else + AC_ERROR(xclib.h not found in $srcdir/$with_xc_includes) + fi +fi + +if test -z "$with_xc_libraries" -o "$with_xc_libraries" = yes; then + found=false + if test -n "$subdirs"; then + for dir in $subdirs; do + if test -f "$dir/include/xclib.h"; then + found=true + dir="`cd $dir && /bin/pwd`" + RPATH="$dir $RPATH" + deplib=$dir/libxc.so + DEPLIBS="$deplib $DEPLIBS" + AC_MSG_RESULT(xclib: $deplib add to DEPLIBS) + break + fi + done + fi + if ! $found; then + if test "$with_xc_libraries" = yes; then + AC_CHECK_LIB(xc, puterrmsg,, AC_ERROR(eXtended C Library required)) + else + AC_CHECK_LIB(xc, puterrmsg) + fi + fi +elif test "$with_xc_libraries" != no; then + if test -f "$srcdir/$with_xc_libraries/configure"; then + AC_CONFIG_SUBDIRS($with_xc_libraries) + AC_MSG_RESULT(xclib: $with_xc_libraries added to directories to configure) + LDFLAGS="-L`cd $with_xc_libraries && /bin/pwd` $LDFLAGS" + LIBS="-lxc $LIBS" + elif test -f "$srcdir/$with_xc_libraries/libxc.so"; then + AC_MSG_RESULT(xclib: library file \"libxc.so\" found in $srcdir/$with_xc_libraries) + DEPLIBS="`cd $srcdir/$with_xc_libraries && /bin/pwd`/libxc.so $DEPLIBS" + elif test -f "$srcdir/$with_xc_libraries/libxc.a"; then + AC_MSG_RESULT(xclib: library file \"libxc.a\" found in $srcdir/$with_xc_libraries) + DEPLIBS="`cd $srcdir/$with_xc_libraries && /bin/pwd`/libxc.a $DEPLIBS" + else + AC_ERROR(no \"eXtended C\" library found and don't know how to built it) + fi +fi + +AC_SUBST(RPATH) + +}]) + +dnl ########################################################################### +dnl # MV_CHECK_DPKG_VERSION +dnl # +AC_DEFUN(MV_CHECK_DPKG_VERSION, [dnl +ifelse($#,1,,[MV_AUTOCONF_ERROR([Invalid invocation of «$0»])])dnl +dnl +mv_version="$1" +dnl +AC_CHECK_PROG(PARSECHANGELOG, dpkg-parsechangelog, dpkg-parsechangelog)dnl +dnl +if test -n "$PARSECHANGELOG"; then +changequote(«,»)dnl + DPKG_VERSION=`$PARSECHANGELOG -l$srcdir/debian/changelog|sed -n 's/^Version: \([^-]*\).*$/\1/p'` +changequote([,])dnl + if test "$DPKG_VERSION" != "$mv_version"; then + AC_ERROR(Version in debian/changelog is different +------------------------------------------------------------------------------ +`$PARSECHANGELOG` +------------------------------------------------------------------------------) + fi +fi]) + +dnl ########################################################################### +dnl # [END OF FILE] +dnl ########################################################################### |