autotools:configure.ac
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
autotools:configure.ac [2015/08/05 15:36] – Typo root | autotools:configure.ac [2020/04/27 07:56] (Version actuelle) – Conversion de <note> vers <WRAP> root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | =====Les scripts===== | + | [[https:// |
====Détection des options de compilation compatible avec CXX==== | ====Détection des options de compilation compatible avec CXX==== | ||
Défini le langage du compilateur : g++ donc le compilateur défini par '' | Défini le langage du compilateur : g++ donc le compilateur défini par '' | ||
+ | |||
+ | Activation automatique des '' | ||
<code autoconf> | <code autoconf> | ||
AC_LANG(C++) | AC_LANG(C++) | ||
Ligne 24: | Ligne 27: | ||
</ | </ | ||
- | <note> | + | <WRAP center round info 60%> |
+ | [[https:// | ||
+ | </ | ||
+ | |||
+ | Activation automatique des '' | ||
+ | |||
+ | <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=" | ||
+ | AC_COMPILE_IFELSE([AC_LANG_SOURCE( | ||
+ | [void foo(void); void foo(void) { }])], [ | ||
+ | AM_CXXFLAGS=" | ||
+ | AC_MSG_RESULT([yes]) | ||
+ | ], [ | ||
+ | AC_MSG_RESULT([no]) | ||
+ | ]) | ||
+ | CXXFLAGS=" | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | ====Le cas clang==== | ||
+ | clang préfère avoir '' | ||
+ | |||
+ | Il suffit d' | ||
+ | <code autoconf> | ||
+ | AC_TRY_LINK([ | ||
+ | #include < | ||
+ | ], | ||
+ | [ | ||
+ | #ifndef __clang__ | ||
+ | This is not clang! | ||
+ | #endif | ||
+ | ], | ||
+ | [AM_CXXFLAGS=" | ||
+ | []) | ||
+ | </ | ||
+ | |||
+ | ====Forcer du code dans le config.h==== | ||
+ | <code autoconf> | ||
+ | AH_BOTTOM([ | ||
+ | #ifdef _MSC_VER | ||
+ | #define CHK _Check_return_ | ||
+ | |||
+ | #ifndef ssize_t | ||
+ | #include < | ||
+ | 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 | ||
+ | ]) | ||
+ | </ | ||
+ | |||
+ | ====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], | ||
+ | | ||
+ | if test " | ||
+ | withdoc=false | ||
+ | else | ||
+ | withdoc=true | ||
+ | fi | ||
+ | AC_MSG_RESULT([with-doc $withdoc]) | ||
+ | AC_CHECK_PROGS([DOXYGEN], | ||
+ | if test -z " | ||
+ | then AC_MSG_WARN([Doxygen introuvable - documentation non compilable]) | ||
+ | fi | ||
+ | AM_CONDITIONAL(HAVE_DOXYGEN, | ||
+ | if test x$withdoc = xtrue; then | ||
+ | AC_DEFINE(ENABLE_DOC, | ||
+ | fi | ||
+ | </code> |
autotools/configure.ac.1438781764.txt.gz · Dernière modification : 2015/08/05 15:36 de root