vai alla Homepage di Apogeonline

 



Cos'è OpenPress
Glossario
Linux-FAQ
Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico


Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni


Telematica per la pace

Linux HOWTO: Installazione e configurazione

Linux HOWTO: Networking


Risorse
Feedback
vai alla Homepage di Apogeo Editore

Vai alla homepage di OpenPress

GTK+ / Gnome Sviluppo di Applicazioni


Installazione dei file di supporto

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.

Installare file di dati: documentazione e immagini

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.

Immagini

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:


EXTRA_DIST = gnome-hello-logo.png

pixmapdir = $(datadir)/pixmaps

pixmap_DATA = gnome-hello-logo.png

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 sezione EXTRA_DIST descrive la variabile EXTRA_DIST.

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.

La documentazione

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:


doc/
  Makefile.am
  C/
    Makefile.am
    gnome-hello.sgml
    topic.dat
  es/
    Makefile.am
    gnome-hello.sgml
    topic.dat

Ecco invece il file doc/C/Makefile.am:


gnome_hello_helpdir = $(datadir)/gnome/help/gnome-hello/C

gnome_hello_help_DATA =         \
        gnome-hello.html        \
        topic.dat

SGML_FILES =                    \
        gnome-hello.sgml

EXTRA_DIST = \
        topic.dat               \
        $(SGML_FILES)


all:

gnome-hello.html: gnome-hello/gnome-hello.html
	-cp gnome-hello/gnome-hello.html .

gnome-hello/gnome-hello.html: $(SGML_FILES)
	-db2html gnome-hello.sgml

dist-hook:
	mkdir $(distdir)/gnome-hello
	-cp gnome-hello/*.html gnome-hello/*.css $(distdir)/gnome-hello
	-cp gnome-hello.html $(distdir)

install-data-local: gnome-hello.html
	$(mkinstalldirs) $(gnome_hello_helpdir)/images
	-for file in $(srcdir)/gnome-hello/*.html $(srcdir)/gnome-hello/*.css; do \
	basefile=`basename $$file`; \
	$(INSTALL_DATA) $(srcdir)/$$file $(gnome_hello_helpdir)/$$basefile; \
	done

gnome-hello.ps: gnome-hello.sgml
	-db2ps $<

gnome-hello.rtf: gnome-hello.sgml
	-db2rtf $<



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.

Creare un file .desktop

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:


SUBDIRS = macros po intl src pixmaps doc

EXTRA_DIST = \
        gnome-hello.desktop	\
	autogen.sh

Applicationsdir = $(datadir)/gnome/apps/Applications
Applications_DATA = gnome-hello.desktop

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.

EXTRA_DIST

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.


Copyright © 1995-1999 Apogeo srl, Milano