Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| autotools [2021/05/18 20:13] – [Changer le compilateur] precise setting cflags phsw | autotools [2023/04/11 11:06] (Version actuelle) – Add --with-foo phsw | ||
|---|---|---|---|
| Ligne 34: | Ligne 34: | ||
| AC_PROG_CC # cherche un compilateur C | AC_PROG_CC # cherche un compilateur C | ||
| + | AM_PROG_CC_C_O # enable per-target flags, required for automake < 1.14 | ||
| AC_CONFIG_FILES([Makefile src/ | AC_CONFIG_FILES([Makefile src/ | ||
| Ligne 62: | Ligne 63: | ||
| Placer le fichier source de la macro dans un dossier '' | Placer le fichier source de la macro dans un dossier '' | ||
| + | |||
| + | A priori il faut aussi placer | ||
| + | <code autoconf> | ||
| + | m4_include([m4/ | ||
| + | </ | ||
| + | en haut du configure (sinon '' | ||
| + | |||
| + | Une autre solution semble être: | ||
| + | <code autoconf> | ||
| + | AC_CONFIG_MACRO_DIR([m4]) | ||
| + | </ | ||
| + | dans le configure ([[https:// | ||
| Ligne 101: | Ligne 114: | ||
| <code autoconf> | <code autoconf> | ||
| + | have_mpi=no | ||
| AC_PATH_PROG(mpicc_path, | AC_PATH_PROG(mpicc_path, | ||
| + | AM_CONDITIONAL([HAVE_MPI], | ||
| + | if test x$mpicc_path != xno; then | ||
| + | CC=$mpicc_path | ||
| + | have_mpi=yes | ||
| + | fi | ||
| </ | </ | ||
| Paramètres: | Paramètres: | ||
| - Variable qui contiendra le chemin du programme | - Variable qui contiendra le chemin du programme | ||
| - Programme à chercher | - Programme à chercher | ||
| - | - Optionnel: valeur par défaut si le programme n'est pas trouvé | + | - Optionnel: valeur par défaut si le programme n'est pas trouvé. Par défaut, renvoie une chaîne de caractères vide si le programme n'est pas trouvé. |
| - Il est aussi possible de préciser le '' | - Il est aussi possible de préciser le '' | ||
| Ligne 153: | Ligne 172: | ||
| endif | endif | ||
| </ | </ | ||
| + | |||
| + | Il est possible de définir les flags pour toutes les cibles, en mettant en haut d'un '' | ||
| + | <code make> | ||
| + | LDADD = $(HWLOC_LIBS) | ||
| + | AM_CFLAGS = $(HWLOC_CFLAGS) | ||
| + | </ | ||
| + | |||
| + | Il est possible de chercher une bibliothèque et utiliser les flags requis, depuis le fichier '' | ||
| + | <code autoconf> | ||
| + | AC_SEARCH_LIBS([hwloc_free], | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Chercher une fonction dans une bibliothèque ==== | ||
| + | |||
| + | Il est nécessaire de mettre à jour les flags pour que le compilateur puisse linker la bibliothèque où la fonction est supposée être: | ||
| + | <code autoconf> | ||
| + | PKG_CHECK_MODULES([STARPU], | ||
| + | AM_CONDITIONAL(HAVE_STARPU, | ||
| + | if test x$have_starpu = xyes; then | ||
| + | save_LIBS=" | ||
| + | save_CFLAGS=" | ||
| + | CFLAGS=" | ||
| + | LIBS=" | ||
| + | AC_CHECK_FUNCS([starpu_free_noflag]) | ||
| + | CFLAGS=" | ||
| + | LIBS=" | ||
| + | fi | ||
| + | </ | ||
| + | Cela va définir une constante de préprocesseur '' | ||
| + | |||
| + | Il est possible de chercher des fonctions en précisant dans quel fichier d' | ||
| + | <code autoconf> | ||
| + | AC_CHECK_DECLS([_mm_stream_si32], | ||
| + | </ | ||
| + | Cela va définir une constante de préprocesseur '' | ||
| Ligne 208: | Ligne 264: | ||
| foo | foo | ||
| ]) | ]) | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Enable option ==== | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | <code autoconf> | ||
| + | AC_MSG_CHECKING(whether debug mode should be enabled) | ||
| + | AC_ARG_ENABLE(debug, | ||
| + | enable_debug=$enableval, | ||
| + | AC_MSG_RESULT($enable_debug) | ||
| + | |||
| + | if test x$enable_debug = xyes; then | ||
| + | CFLAGS=" | ||
| + | else | ||
| + | CFLAGS=" | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | On peut ensuite appeler: | ||
| + | <code bash> | ||
| + | ../ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Composants externes ==== | ||
| + | |||
| + | <code autoconf> | ||
| + | mpicc_name=mpicc | ||
| + | AC_ARG_WITH(mpicc, | ||
| </ | </ | ||