Un'applicazione Gnome completa consiste in ben oltre il semplice codice
sorgente. Deve essere disponibile un aiuto in linea, deve essere elencata nel
menu del pannello di Gnome, deve essere tradotta, e deve avere una icona per
il desktop. Possono ovviamente essere incluse anche delle immagini: un logo
per la finestra di informazioni oppure delle piccole icone per aiutare l'utente a distinguere rapidamente le voci dei menu. Questa sezione mostra come distribuire alcuni di questi file.
La documentazione e le immagini vengono installate praticamente allo stesso modo. automake vi permette di installare i file di dati in posizioni arbitrarie, ed è possibile utilizzare le variabili definite in configure per decidere dove posizionare i file.
Per installare file di dati attraverso il file Makefile.am è sufficiente fornite il target dell'installazione (pixmaps suona bene, voi che dite?), quindi creare una variabile per la directory e una corrispondente per i file da installare. Ad esempio:
La stringa "pixmap" collega la
variabile pixmapdir con la variabile
pixmap_DATA. automake interpreta il suffisso _DATA e genera una regola appropriata in Makefile.in. Questa sezione di Makefile.am installa i file gnome-hello-logo.png all'interno della directory $(datadir)/pixmaps. $(datadir) è una variabile generata da configure. Tipicamente $(datadir) corrisponde a /usr/local/share (più precisamente a $(prefix)/share, che è la locazione standard per i file di dati indipendenti dalla piattaforma (cioè che possono essere condivisi fra vari sistemi con formati binari differenti).
La locazione standard per le immagini di Gnome è $(datadir)/pixmaps, per questo è stata utilizzata nel nostro esempio. Il Progetto Gnome incoraggia all'uso del formato PNG per tutte le immagini: questo formato è supportato da gdk_imlib, la libreria di Gnome per il caricamento delle immagini. È inoltre compresso, veloce e libero da vincoli di brevetto.
Per l'installzione della documentazione vengono applicati gli stessi principi, ma con una piccola complicazione. La documentazione di Gnome è solitamente scritta in DocBook. DocBook è un DTD ("Document Type Definition") SGML così come HTML. DocBook però è stato progettato per la documentazione tecnica (questo libro è stato scritto utilizzando DocBook). La documentazione scritta con DocBook può essere convertita in svariati formati, tra cui PostScript e HTML. All'interno di Gnome viene installata la documentazione nel formato HTML, in modo che gli utenti possano leggerla con il proprio browser Web oppure con il Gnome Help Browser.
Le librerie di Gnome e l'help browser interpretano un file chiamato topic.data, che consiste in una semplice lista di indici con gli URL corrispondenti. Questo viene utilizzato per indicizzare la guida della vostra applicazione. Ecco un esempio, con due soli indici:
gnome-hello.html Manuale di GnomeHello
advanced.html Argomenti avanzati
Gli URL sono relativi alla directory in cui sono installati i file di documentazione.
Dovete considere che la vostra documentazione verrà tradotta in altre lingue. Dovreste quindi creare delle sotto-directory per ciascuna lingua di traduzione. Ad esempio, il locale di default C oppure quello in Spagnolo, es. In questo modo non si crea confusione fra le varie traduzioni. Ecco un altro esempio tratto da GnomeHello:
In particolare notate la directory di installazione per i file HTML che
vengono generati: $(datadir)/gnome/help/gnome-hello/C. Le librerie di Gnome cercheranno i file in questa directory. La documentazione di ciascuna applicazione risiede in una propria directory all'interno di $(datadir)/gnome/help. La documentazione tradotta viene installata in una sotto-directory ulteriore. Le altre istruzioni in Makefile.am avviano il convertitore DocBook-HTML, includono i file HTML nel pacchetto della distribuzione e creano i target per la creazione di documenti in formato PostScript oppure Rich Text Format (RTF). Gli utenti possono così generare il file PostScript digitando semplicemente make gnome-hello.ps.
Gli applicativi Gnome forniscono uno o più file ".desktop", che descrivono come l'applicazione viene mostrata nei menu del pannello di Gnome. Installare un file .desktop causa la visualizzazione dell'applicativo nel Menu Principale del pannello di Gnome. Ecco il file gnome-hello.desktop:
[Desktop Entry] NAME=Gnome Hello NAME[es]=Gnome Hola NAME[fi]=GNOME-hei NAME[gl]=Ola GNOME NAME[no]=Gnome hallo NAME[sv]=Gnome Hej NAME[pl]=Halo GNOME NAME[it]=Salve GNOME
Comment=Hello World
Comment[es]=Hola Mundo
Comment[fi]=Hei, maailma
Comment[gl]=Ola Mundo
Comment[sv]=Hej Världen
Comment[no]=Hallo verden
Comment[pl]=Witaj ¶wiecie
Comment[it]=Salve Mondo per Gnome
Exec=gnome-hello
Icon=gnome-hello-logo.png
Terminal=0
Type=Application
Il file consiste in coppie chiave-valore. La chiave Name specifica il nome della vostra applicazione nel locale di default C. Qualunque chiave può avere una traduzione, indicata dalle parentesi quadre, come ad esempio Name[it]. La chiave Comment contiente la stringa che verrà mostrata come suggerimento, che descrive l'applicazione in dettaglio. Exec è il comando da esguire per avviare il programma. Terminal è un valore booleano: se diverso da zero, il programma verrà eseguito all'interno di una finestra di emulazione di terminale. Type deve, in questo contesto, essere sempre uguale a "Application".
Installare un file .desktop è
veramente semplice. Ecco il principale Makefile.am, ancora una volta da GnomeHello:
Notate che è mostrato un percorso in $(datadir)/gnome/apps/ con sotto-directory che dispongono i programmi in categorie. GnomeHello si installa all'interno della categoria "Applications". Altri programmi possono installarsi sotto "Games", "Graphics", "Internet" oppure ciò che si ritiene più appropriato. Cercate di utilizzare una categoria preesistente, invece di aggiungerne una nuova.
La variabile EXTRA_DIST presente in Makefile.am elenca i file da includere all'interno del pacchetto .tar.gz. I file più importanti vengono inclusi automaticamente, come ad esempio tutti quelli elencati come sorgenti per generari i binari o le librerie. Ad ogni modo, automake non sa come comportarsi di fronte a file .desktop, oppure con la documentazione SGML. Quindi tutti questi file devono essere elencati in EXTRA_DIST. make distcheck, quando tenta di creare il pacchetto per la distribuzione, fallirà il suo compito se lasciate dei file fuori da EXTRA_DIST.