Forum Programmation.c autotools et gtk

Posté par (page perso) .
Tags : aucun
0
3
oct.
2005
Bonjour,

J'essaie de me mettre un peu au dev GTK, et j'ai un petit problème depuis que j'ai passé mon projet sous autotools...

A la compilation, au moment du "make", il ne trouve pas les chemins des headers GTK+... y a t'il quelque chose à à rajouter, l'équivalent d'un appel à "pkg-config --cflags --libs gtk+-2.0" afin qu'il retrouve son chemin ?

Merci de votre aide
  • # meuh

    Posté par (page perso) . Évalué à 1.

    pars d'un (petit) logiciel existant qui fait ça et regarde comment il le fait.
    • [^] # Re: meuh

      Posté par (page perso) . Évalué à 2.

      bin c'et ce que j'ai fait, mais difficile de trouver la syntaxe quand on débute en autotools... Et sur le cvs de gnome, sur les petites applis d'exemple, y avait pas de configure.ac...

      La seule solution de contournement que j'ai trouvé pour l'instant, c'est de compiler avec make CFLAGS="$(pkg-config --cflags --libs gtk+-2.0)", mais c'est pas tip-top...
      • [^] # Re: meuh

        Posté par (page perso) . Évalué à 2.

        Je viens de regarde leafpad, qui est un petit projet: http://tarot.freeshell.org/leafpad/(...)


        AC_INIT(Leafpad, 0.8.4, tarot@sdf.lonestar.org)
        AM_INIT_AUTOMAKE($PACKAGE_TARNAME, $PACKAGE_VERSION)
        AM_CONFIG_HEADER(config.h)

        AC_PROG_INTLTOOL(, no-xml) # require >= 0.31 for autoreconf
        AC_PROG_CC
        if test "$GCC" = "yes"; then
        CFLAGS="$CFLAGS -Wall"
        fi

        AM_PATH_GTK_2_0

        AC_ARG_ENABLE(chooser,
        AC_HELP_STRING([--enable-chooser], [use GtkFileChooser instead of GtkFileSelector]),
        AC_DEFINE(ENABLE_CHOOSER, 1, [Define if GtkFileChooser is enabled.])
        )
        #AC_ARG_ENABLE(gnomeprint,
        # AC_HELP_STRING([--enable-gnomeprint], [use GnomePrint for printing]),
        # AC_DEFINE(ENABLE_GNOMEPRINT, 1, [Define if GnomePrint is enabled.])
        #)
        AC_ARG_ENABLE(print,
        AC_HELP_STRING([--disable-print], [do not include print feature]),
        AC_DEFINE(DISABLE_PRINT, 1, [Define if printing feature is disabled.])
        )
        if test "$enable_print" != "no"; then
        if test "$enable_gnomeprint" = "yes"; then
        PKG_CHECK_MODULES(GNOMEPRINT, libgnomeprintui-2.2)
        AC_SUBST(GNOMEPRINT_CFLAGS)
        AC_SUBST(GNOMEPRINT_LIBS)
        fi
        fi

        ALL_LINGUAS="bg ca cs de el es fr he hu it ja lt pl pt ru sk sv ta tr vi zh_CN zh_TW"
        GETTEXT_PACKAGE="$PACKAGE"
        AC_SUBST(GETTEXT_PACKAGE)
        AM_GLIB_GNU_GETTEXT
        AM_GLIB_DEFINE_LOCALEDIR(LOCALEDIR)

        AC_CONFIG_FILES([Makefile src/Makefile po/Makefile.in])
        AC_OUTPUT


        La seule signe intéressante que je vois, c'est AM_PATH_GTK_2_0, il va vérifier la version de GTK2.0 que j'utilise, donc la trouve mais le make n'a toujours pas le chemin intégré...

        J'ai pourtant remis à jour toute le chaine avec:
        aclocal && autoconf && automake && ./configure && make... où est mon erreur ?
        • [^] # Re: meuh

          Posté par (page perso) . Évalué à 2.

          faut peut-être renseigner un peu plus PKG_CHECK_MODULES (c'est ce que fait anjuta).

          J'avoue que moi aussi, j'ai un peu de mal à me plonger dans les autotools et dans les autotools + gtk. En attendant les bon articles de GLMF sur le sujet :)
          • [^] # Re: meuh

            Posté par (page perso) . Évalué à 2.

            Bin non, c'est pas ça, parce que là, c'est celui de leafpad et il marche.
            De mon côté, ça marche pas... Je me suis basé sur l'article de GLMF pour les fichiers, ça marche pour un projet normal, sans GTK, mais avec GTK, il ajoute pas les chemins de GTK dans le "-I " dans l'appel à gcc. Mais je vois pas dans le fichier le configure.ac de leafpad ce qui entraine l'inclusion des chemins des includes de gtk... Je ne vois pas de ligne particulière...
            • [^] # Re: meuh

              Posté par . Évalué à 1.

              PKG_CHECK_MODULES(RHYTHMBOX, gtk+-2.0)

              AC_SUBST(RHYTHMBOX_CFLAGS)
              AC_SUBST(RHYTHMBOX_LIBS)

              et dans ton Makefile.am tu utilises $(RHYTHMBOX_CFLAGS) dans ta variable INCLUDES et RHYTHMBOX_LIBS dans ta variable tonprog_LDADD
              • [^] # Re: meuh

                Posté par (page perso) . Évalué à 2.

                yes, merci ça marche avec tes indications (le INCLUDES et les MONPROG_CFLAGS et MONPROG_LIBS). Ce n'était pas encore abordé dans le dernier GLMF... merci encore

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.