1 - Scaricare Cygwin:
http://cygwin.com/ (testato fino alla 1.5.25-11 del 2008/03/09)
2 - Installare Cygwin. Selezionare almeno le seguenti librerie:
Freetype2
Fontconfig
libpng12 Installare anche il tools devel 'pkg-config'
Chiaramente installare compilatore e make.
Se volete compilare 'anche' per il backend X11 selezionate anche le seguenti librerie:
GTK-2.0
ATK-1.0
PANGO-1.0
GLIB-2.0
CAIRO
4 - Dal pannello di controllo di windows, sistema, avanzate, variabili d'ambiente
verificare che le seguenti variabili siano settate a:
DISPLAY=localhost:0
GTK_BASEPATH=C:\Programmi\FILECO~1\GTK\2.0 (ideale) GTK_BASEPATH=C:\PROGRA~1\FILECO~1\GTK\2.0 (ripiego) GTK_BASEPATH=%CommonProgramFiles%\GTK\2.0 (lo spazio crea problemi) GTK_BASEPATH=C:\Programmi\File comuni\GTK\2.0 (lo spazio crea problemi)
LIB=%GTK_BASEPATH%\LIB; (ideale) LIB=C:\Programmi\File comuni\GTK\2.0\LIB; (lo spazio crea problemi)
5 - Avviare Cygwin Bash e verificare che: pkg-config --version riporti la 0.21 minimo. Infatti Cygwin installa in: /usr/bin C:\Programmi\cygwin\usr\bin la 0.21, mentre GTK+/Win32 Devel installa in: /cygdrive/c/Programmi/FILECO~1/GTK/2.0/bin/pkg-config C:\Programmi\File comuni\GTK\2.0/bin/pkg-config la 0.20, con cui non funziona il --list-all Eventualmente invertire nel path: /usr/bin/ e /cygdrive/c/Programmi/FILECO~1/GTK/2.0/bin/
6 - Perché funzioni pkg-config è necessario inoltre configurare la variabile di ambiente usata per cercare i file *.pc dei pacchetti echo $PKG_CONFIG_PATH Se non già presenti inserirvi: /cygdrive/c/Programmi/FILECO~1/GTK/2.0/lib/pkgconfig/; /cygdrive/c/Programmi/cygwin/lib/pkgconfig/ C:\Programmi\File comuni\GTK\2.0\lib\pkgconfig\ C:\Programmi\cygwin\lib\pkgconfig\
7 - Cambiare come segue tutti i file *.pc contenuti in: $GTK_BASEPATH/lib/pkgconfig /cygdrive/c/Programmi/File comuni/GTK/2.0/lib/pkgconfig In ognuno la prima riga riporta: prefix=/target sostituire con: prefix=/cygdrive/c/PROGRA~1/FILECO~1/GTK/2.0 prefix=$GTK_BASEPATH (usare il valore della variabile e non la variabile stessa). Per fare prima potete usare questo semplice programmino str2str.c
7b - Copiate il seguente file pixman-1.pc in:
/cygdrive/c/Programmi/File comuni/GTK/2.0/lib/pkgconfig
8 - Verificare di avere queste versioni di librerie minimo: PackageName _________________ LastVers Install_ Description____________________
pkg-config __________________ 0.22 0.21
atk _________________________ 1.12.3 1.12.3 Atk - Accessibility Toolkit cairo _______________________ 1.4.10 1.2.6 cairo - Multi-platform 2D graph fontconfig __________________ 2.4.2 2.4.2 Fontconfig - Font configuration freetype2 ___________________ 2.3.5 9.6.3 FreeType 2 - A free, high-quali gdk-2.0 _____________________ 2.10.11 2.10.11 GDK - GIMP Drawing Kit (win32 t gdk-pixbuf-2.0 ______________ 2.10.11 2.10.11 GdkPixbuf - Image loading and s gdk-pixbuf-xlib-2.0 _________ 2.6.10 2.6.10 GdkPixbuf Xlib - GdkPixbuf rend gdk-x11-2.0 _________________ 2.6.10 2.6.10 GDK - GIMP Drawing Kit (x11 tar glib-2.0 ____________________ 2.14.0 2.12.11 GLib - C Utility Library gmodule-2.0 _________________ 2.12.11 2.12.11 GModule - Dynamic module loader gobject-2.0 _________________ 2.12.11 2.12.11 GObject - GLib Type, Object, Pa gthread-2.0 _________________ 2.12.11 2.12.11 GThread - Thread support for GL gtk+-2.0 ____________________ 2.10.14 2.10.11 GTK+ - GIMP Tool Kit (win32 tar gtk+-x11-2.0 ________________ 2.6.10 2.6.10 GTK+ - GIMP Tool Kit (x11 targe gtk-doc _____________________
1.5 1.5
gtk-doc - API documentation gen gtk-engines-2 _______________ 2.2.0 2.2.0 gtk-engines-2 - GTK+ Theme Engi libglade-2.0 ________________ 2.5.1 2.5.1 Libglade - a library for dynami libpng ______________________ 1.2.12 1.2.12 libpng - Loads and saves PNG fi libpng12 ____________________ 1.2.12 1.2.12 libpng - Loads and saves PNG fi librsvg-2.0 _________________ 2.14.4 2.14.4 librsvg - library that renders libxml-2.0 __________________ 2.6.27 2.6.27 libXML - libXML library version pango _______________________ 1.16.4 1.16.1 Pango - Internationalized text pangoft2 ____________________ 1.16.1 1.16.1 Pango FT2 - Freetype 2.0 font s pangox ______________________ 1.8.1 1.8.1 Pango X - X Window System font pangoxft ____________________ 1.8.1 1.8.1 Pango Xft - Xft font support fo xcursor _____________________ 1.1.4 1.1.4 Xcursor - X Cursor Library xft _________________________ 2.1.6 2.1.6 Xft - X FreeType library
9 - provare il package "pkgconfig" con:
pkg-config --cflags --libs gtk+-2.0
Attenzione che se restituisce una cosa del tipo:
le GTK che verranno usate sono le 2.4 di Cygwin e non le 2.10 di GTK+/Win32 Devel.
10 - Teoricamente ora dovrebbe funzionare la compilazione con pkg-config --cflags --libs gtk+-2.0 che genera tutte le opzioni di compilazione e linking delle GTK2. Esempio:
N.B. Nell'esempio si fa uso di 'glib-genmarshal' che a partire da; marshallers.list genera marshallers.h e marshallers.c
Ci sono due versioni di glib-genmarshal: /cygdrive/c/Programmi/FILECO~1/GTK/2.0/bin/glib-genmarshal --version glib-genmarshal version 2.12.11 e /usr/bin/glib-genmarshal --version glib-genmarshal version 2.10.3 usare la più recente.
12 - se volete testare la vostra installazione delle librerie e del compilatore, potete scaricare questo sorgente minimale,
ma che usa le Cairo e quindi le GTK+ 2.8. Se vi compila questo, potete
essere certi che vi si compileranno anche applicativi complessi. Il
comando di compilazione è:
gcc -Wall -O3 -lm cairo.c -o cairo `pkg-config --cflags --libs gtk+-2.0`
Note aggiuntive:
----------------
Per un visual Builder di interfacce a Widget usate Glade (Linux e Win32) Per un ambiente IDE integrato con l'editor usate Anjuta (solo per Linux) Per un ambiente IDE integrato con l'editor usate Dev-C++ (solo per Win32)
Note sulla generazione usando Glade:
------------------------------------
Per compilare usando Glade sono richiesti questi altri tools forniti con Cygwin:
autoconf
intltoolize
xml-i18n-toolize
libtool
glib-gettextize
automake
aclocal
Una volta prodotti i sorgenti con il pulsante Build,
portarsi nel direttorio radice del progetto ed eseguire 'autogen.sh' per produrre i Makefile.
Poi lanciare make
N.B. se nel codice si fa uso di ?printf, in src/Makefile è necessario aggiungere a
<projectname>_LDADD (opzioni di link):
-L/usr/lib/mingw -lmsvcrt
altrimenti non risolve il simbolo '__imp___iob'
Oppure meglio aggiungerlo in Makefile.am alla riga: _LDADD
Per aggiungere delle opzioni di compilazione, aggiungerle in:
Makefile.am una riga AM_CFLAGS =
Note sul contenuto dei files generati da Glade:
-----------------------------------------------
Per aggiungere altri file al progetto, modificare:
Makefile.am nella sezione _SOURCES
From 20/10/1999 - 31/03/2000 the counter showed 770 visits, but it was resetted from the provider (so add 770 ...)
Copyright (C) 2006,2007,2008 Valerio Messina http://users.iol.it/efa
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts
and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License" or
can be downloaded at: http://www.gnu.org/licenses/fdl.html