Outils pour utilisateurs

Outils du site


autotools:configure.ac

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
autotools:configure.ac [2015/08/05 15:33] – ↷ Page déplacée et renommée de autotools_configure.ac à autotools:configure.ac rootautotools:configure.ac [2020/04/27 07:56] (Version actuelle) – Conversion de <note> vers <WRAP> root
Ligne 1: Ligne 1:
-I“&¬yyyáááaíÍqHÊÅ"µG¹XDD¤4eO‘Ú£ì)"Ruš ëT•%R9ªÊ±,ν xzzçސZ´haí&Š8³ÙÌɓ'+,XËÎΦQ£Fåfì¢ÇM7ÝdíͱiÊÅ"¶G¹XDD•²§ˆíQö)¡ ²JUY"µGUY"""¶ãôéÓ$$$ÀæääZüèСƒµ›("UpæÌ™r3vÑrƒ +[[https://www.gnu.org/software/autoconf/manual/autoconf.pdf|Manuel 2.69]]{{ :autotools:configure.ac:autoconf_2_69.pdf |Archive}} 
-*,XkÛ¶-7ß|³µ7IDD¤N(‹8åb±eʞ"ŽEÙSD&È:Ue‰ØUe‰ˆˆX^nn._ýuq1Øþýûéׯ_q1˜ŸŸŸµ›("uàüùó¬eeeQPPPnÆ.ZnÖ¬™µ7IDD¤J”‹E”‹ED¤n({Š({ŠˆýÒY;¥ª,Ç¢ª,±*s©[#‰^ý‰›÷²}Wyùàêꂿ_ ‚ﻋðG^$ðî:ošÉdbÛ¶mŹwǎƒõîÝWW×:o—ˆØ‡œœœ + 
-3vVVyyyxyyUX°Ö²eK\\\¬½YŽÇœGê–H¢?ý€Ä-{ٞvå<Tßÿ;[|ï]„¶ÎyHDœŒr±ˆ8(åb;¡\,â\”=EÄA){Ú eOq"š k'T•%ª,±¼ôÔw˜:õÒ3s™0 +====Détection des options de compilation compatible avec CXX==== 
-‚zA`ðp‡¼|HÝIÛaE´^íº°+Défini le langage du compilateur : g++ donc le compilateur défini par ''CXX''
 + 
 +Activation automatique des ''-Wwarnings'' supportés. 
 +<code autoconf> 
 +AC_LANG(C++) 
 + 
 +for NEW_FLAG in \ 
 +  -Wall \ 
 +  -Wcast-align 
 +do 
 +  AC_MSG_CHECKING([if $CXX accepts $NEW_FLAG]) 
 +  OLD_CXXFLAGS="$CXXFLAGS" 
 +  CXXFLAGS="$CXXFLAGS $NEW_FLAG -Werror" 
 +  #AC_COMPILE_IFELSE utilise CXXFLAGS pas AM_CXXFLAGS 
 +  AC_COMPILE_IFELSE([AC_LANG_SOURCE( 
 +    [void foo(void); void foo(void) { }])], [ 
 +    AM_CXXFLAGS="$AM_CXXFLAGS $NEW_FLAG
 +    AC_MSG_RESULT([yes]) 
 +  ]
 +    AC_MSG_RESULT([no]) 
 +  ]) 
 +  CXXFLAGS="$OLD_CXXFLAGS" 
 +done 
 +</code> 
 + 
 +<WRAP center round info 60%> 
 +[[https://github.com/gcc-mirror/gcc/blob/master/config/warnings.m4|warnings.m4]], {{:autotools:configure.ac:warnings.m4|Archive}} : gcc ne crée pas d'avertissement dans le cas de ''-Wno-*'' non supporté. Il est donc nécessaire de tester la version ''-W*''
 +</WRAP> 
 + 
 +Activation automatique des ''-Wno-warnings'' supportés. On teste les ''-Warnings'' mais on ajoute ''-Wno-warnings'' 
 + 
 +<code autoconf> 
 +AC_LANG(C++) 
 + 
 +for NEW_FLAG in \ 
 +  c++98-compat \ 
 +  c++98-compat-pedantic 
 +do 
 +  AC_MSG_CHECKING([if $CXX accepts -Wno-$NEW_FLAG]) 
 +  OLD_CXXFLAGS="$CXXFLAGS" 
 +  CXXFLAGS="$CXXFLAGS -W$NEW_FLAG -Werror -Wno-unused-macros" 
 +  AC_COMPILE_IFELSE([AC_LANG_SOURCE( 
 +    [void foo(void)void foo(void) { }])]
 +    AM_CXXFLAGS="$AM_CXXFLAGS -Wno-$NEW_FLAG" 
 +    AC_MSG_RESULT([yes]) 
 +  ], [ 
 +    AC_MSG_RESULT([no]) 
 +  ]) 
 +  CXXFLAGS="$OLD_CXXFLAGS" 
 +done 
 +</code> 
 + 
 +====Le cas clang==== 
 +clang préfère avoir ''-fno-use-cxa-atexit'' pour éviter des erreurs de type "hidden symbol `atexit'
 + 
 +Il suffit d'ajouter la fonction suivante 
 +<code autoconf> 
 +AC_TRY_LINK([ 
 +              #include <stdio.h> 
 +            ], 
 +            [ 
 +              #ifndef __clang__ 
 +                This is not clang! 
 +              #endif 
 +            ], 
 +            [AM_CXXFLAGS="$AM_CXXFLAGS -fno-use-cxa-atexit"], 
 +            []) 
 +</code> 
 + 
 +====Forcer du code dans le config.h==== 
 +<code autoconf> 
 +AH_BOTTOM([ 
 +#ifdef _MSC_VER 
 +#define CHK _Check_return_ 
 + 
 +#ifndef ssize_t 
 +#include <BaseTsd.h> 
 +typedef SSIZE_T ssize_t; 
 +#endif // !ssize_t 
 + 
 +#else // !_MSC_VER 
 +#define CHK __attribute__ ((__warn_unused_result__)) 
 +#endif 
 + 
 +#if defined(_MSC_VER) 
 +#define SSCANF sscanf_s 
 +#define DllExport __declspec(dllexport) 
 +#else 
 +#define SSCANF sscanf 
 +#define DllExport 
 +#endif 
 +]) 
 +</code> 
 + 
 +====Ajout d'une option --with-…==== 
 +<code autoconf> 
 +# Vérification de la possibilité de compiler la documentation via doxygen 
 +AC_ARG_WITH(doc, 
 +            AS_HELP_STRING([--with-doc]
 +                           [build with doc support])) 
 +if test "$with_doc" != "yes"; then 
 +  withdoc=false 
 +else 
 +  withdoc=true 
 +fi 
 +AC_MSG_RESULT([with-doc $withdoc]) 
 +AC_CHECK_PROGS([DOXYGEN], [doxygen]) 
 +if test -z "$DOXYGEN"; 
 +  then AC_MSG_WARN([Doxygen introuvable - documentation non compilable]) 
 +fi 
 +AM_CONDITIONAL(HAVE_DOXYGENtest x$withdoc xtrue && test -n "$DOXYGEN"
 +if test x$withdoc = xtrue; then 
 +AC_DEFINE(ENABLE_DOC1, [Défini si la doc doit être générée]) 
 +fi 
 +</code>
autotools/configure.ac.1438781614.txt.gz · Dernière modification : 2015/08/05 15:33 de root