autoconf con GTKmm

  1. nella directory radice, creare almeno la directory “src”, in cui inserire i file .cc e .h
  2. dalla radice, lanciare il comando autoscan, dopodichè rinominare configure.scan in configure.ac: sarà la base della configurazione
  3. editare il nome del pacchetto, l’ autore, la versione ecc….
  4. lanciare il comando autoreconf -vi: ci fornirà degli “errori” che ci diranno cosa fare, oltre a creare alcuni file necessari.
  5. un paio di errori saranno: libtools e automake.
    Per attivare automake bisogna aggiungere AM_INIT_AUTOMAKE([foreign]) (il “foreign” serve per sopprimere alcuni errori dovuti alla mancanza di file quali README ecc….) e AC_CONFIG_FILES([Makefile src/Makefile]), mentre i libtools non sono necessari.
    Aggiungere anche AC_CONFIG_MACRO_DIR([m4]) per creare la directory m4.
    Se necessario, rilanciare autoreconf -v
  6. creare manualmente i file ./Makefile.am e src/Makefile.am.
    Il primo dovrà contere:

    SUBDIRS = src
    ACLOCAL_AMFLAGS = -I m4 // verificare se necessario

    mentre il secondo:

    ACLOCAL_AMFLAGS = -I m4 // verificare se necessario
    bin_PROGRAMS = helloworld
    helloworld_SOURCES = main.cc helloworld.cc
    helloworld_CPPFLAGS = $(GTKMM_CFLAGS) $(CAIRO_CFLAGS)
    helloworld_LDADD = $(GTKMM_LIBS) $(CAIRO_LIBS)

    notare sia *_CPPFLAGS che *_LDADD: sono l’ equivalente di pkg-config gtkmm-3.0 –cflags –libs da linea di comando, solo che in questo caso bisogna specificare che si usa pkg-config nel file configure.ac: PKG_CHECK_MODULES([GTKMM], [gtkmm-3.0]), questa macro inizializza le variabili GTKMM_CPPFLAGS e GTKMM_LDADD che andremo a passare (tramite $(..) ) alla riga di comando del compilatore CPP e al linker LDADD. Stessa cosa per la libreria cairomm.
    Riferimento: https://developer.gnome.org/gtkmm/stable/

  7. ora con ./configure e make dovrebbe funzionare la compilazione

Un pensiero su “autoconf con GTKmm”

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...