|
Tcl/Tk -
Cookit
|
|
Środa, 29 Wrzesień 2010 20:10 |
W niniejszym artykule opiszę krok po kroku proces budowania ze źródeł cookit'a.
Wymagania
- Zanim przystapimy do budowania, musimy zainstalować interpreter Tcl'a (nie powinno być to dla nikogo zaskoczeniem jako że Cookit/Cookfs sÄ… Å›ciÅ›le zwiÄ…zane z tym jÄ™zykiem). PosÅ‚uży on nam do uruchomienia skryptu budujÄ…cego.Â
- Poniższe przykłady opisane są przy uzyciu systemu MS Windows jednak nic nie stoi na przeszkodzie by użyć np linuxa (w tym przypadku musimy zadbać o zainstalowanie sprawnie działającego kompilatora gcc oraz polecenia cvs).
- Skrypt budujący pobiera z internetu spora ilośc danych - kody źródłowe oraz środowisko z kompilatorem (w przypadku Windowsa), potrzebne jest też w miarę szybkie łącze.
Budowanie
- ze strony http://sourceforge.net/projects/cookit/ pobieramy w pełni zautomatyzowane środowisko buildowe. W momencie pisania tego tekstu dostępna jest wersja cookit-buildsystem-1.0.zip. Pobrany plik nalezy rozpakować np do C:\cookit_bs\. Dla bardziej zaawansowanych istnieje również możliwość pobrania nanowszej wersji prosto z svn:
svn co https://cookit.svn.sourceforge.net/svnroot/cookit cookit_bs
- W rozpakowanym katalogu najistotniejszym plikiem jest build.tcl. Skrypt ten potrafi wykonać różne akcje w zależności od przekazanych poleceń. Dodatkowo, w przypadku systemu Windows pobierze port kompilatora gcc w formie Msys/Mingw. Pierwszym poleceniem będzie pobranie źródeł Tcl'a, Tk, pakietu Tclvfs oraz cookfs'a:
c:\cookit_bs>tclsh85 build.tcl -usemingw retrievesource tcl tk vfs cookfs
Downloading win32 build tools; this will take a few minutes
Â
[ 1/ 4] Retrieve source code for cookfs
  [12:31:41] Retrieving
  [12:31:45] Success
Â
[ 2/ 4] Retrieve source code for tcl
  [12:31:45] Retrieving
  [12:38:49] Success
Â
[ 3/ 4] Retrieve source code for tk
  [12:38:49] Retrieving
  [12:42:08] Success
Â
[ 4/ 4] Retrieve source code for vfs
  [12:42:08] Retrieving
  [12:42:24] Success
Â
Â
[12:42:24] Command completed successfully
skrypt budujący nie wypisuje żadnych informacji na temat postępu samego pobierania, przez co może sprawiać wrażenie 'wiszącego' szczególnie w przypadku wolniejszego łącza. Warto przy okazji pamiętać że skrypt pobiera najnowszą wersję kodu Tcl 8.6, który w chwili pisania tego artykułu nie jest jeszcze oficjalnie opublikowany. Może zdarzyć się więc że pojawią się jakieś błędy kompilacji.
- W tym momencie możemy przystąpić do wydania komendy która spowoduje zbudowanie pliku cookit.exe, zawierającego m. in. interpreter Tcl. Plik wynikowy nie jest szczególnie duzy, jednak dla uzyskania maksymalnego efektu możemy dodatkowo uzyć darmowego programu kompresującego UPX - w tym celu to katalogu zawierającego skrypt budujący dogrywamy plik upx.exe (ewentualnei dbamy o to by był dostepny w ścieżce systemowej) - dodajemy do uruchomiena flagę -upx best. Cała komenda budująca wygląda nastepująco:
c:\cookit_bs> tclsh85 build.tcl -usemingw -upx best build-cookit
Â
[ 1/ 7] Build tcl 8.6b1.2
  [13:39:29] Initializing
  [13:39:29] Configuring
  [13:40:26] Compiling
  [13:49:39] Installing
  [13:50:08] Finalizing
Â
[ 2/ 7] Build cookfs 1.0
  [13:50:08] Initializing
  [13:50:10] Configuring
  [13:51:17] Compiling
  [13:51:21] Installing
  [13:51:21] Finalizing
Â
[ 3/ 7] Build resources 1.0
  [13:51:21] Initializing
  [13:51:21] Configuring
  [13:51:21] Compiling
  [13:51:22] Installing
  [13:51:22] Finalizing
Â
[ 4/ 7] Build vfs 1.4.1
  [13:51:22] Initializing
  [13:51:22] Configuring
  [13:52:36] Compiling
  [13:52:38] Installing
  [13:52:46] Finalizing
Â
[ 5/ 7] Build cookit 1.0
  [13:52:46] Initializing
  [13:52:46] Configuring
  [13:52:46] Compiling
  [13:52:47] Installing
  [13:52:47] Finalizing
Â
[ 6/ 7] Link binary
  [13:52:47] Initializing
  [13:52:47] Linking
  [13:52:48] Stripping
  [13:52:49] Compressing
Â
[ 7/ 7] Add CookFS layer
  [13:52:57] Initializing
  [13:52:57] Adding temporary VFS
  [13:53:00] Re-compressing VFS
  [13:53:07] Finalizing
Â
Â
[13:53:09] Command completed successfully
Plik wynikowy cookit.exe znajdziemy w podkatalogu output/_win32_x86.
- Cookit zbudowany w poprzednim punkcie nie zawiera dodatku Tk, przez co nie będzie obsługiwał GUI. Chcąc zbudować Cookita zawierającego Tk, wydajemy nastepującą komendę:
c:\cookit_bs>tclsh85 build.tcl -usemingw -upx best -binarysuffix ui -tk latest build-cookit
Â
[ 1/ 8] Build tcl 8.6b1.2
  [14:17:39] Initializing
  [14:17:39] Configuring
  [14:17:39] Compiling
  [14:20:11] Installing
  [14:20:39] Finalizing
Â
[ 2/ 8] Build tk 8.6b1.2
  [14:20:39] Initializing
  [14:20:39] Configuring
  [14:21:54] Compiling
  [14:25:49] Installing
  [14:25:59] Finalizing
Â
[ 3/ 8] Build cookfs 1.0
  [14:25:59] Initializing
  [14:25:59] Configuring
  [14:25:59] Compiling
  [14:26:00] Installing
  [14:26:00] Finalizing
Â
[ 4/ 8] Build resources 1.0
  [14:26:00] Initializing
  [14:26:00] Configuring
  [14:26:00] Compiling
  [14:26:01] Installing
  [14:26:01] Finalizing
Â
[ 5/ 8] Build vfs 1.4.1
  [14:26:01] Initializing
  [14:26:01] Configuring
  [14:26:01] Compiling
  [14:26:01] Installing
  [14:26:10] Finalizing
Â
[ 6/ 8] Build cookit 1.0
  [14:26:10] Initializing
  [14:26:10] Configuring
  [14:26:10] Compiling
  [14:26:11] Installing
  [14:26:11] Finalizing
Â
[ 7/ 8] Link binary
  [14:26:11] Initializing
  [14:26:11] Linking
  [14:26:14] Stripping
  [14:26:15] Compressing
Â
[ 8/ 8] Add CookFS layer
  [14:26:27] Initializing
  [14:26:28] Adding temporary VFS
  [14:26:31] Re-compressing VFS
  [14:26:43] Finalizing
Â
Â
[14:26:44] Command completed successfully
Użycie opcji -binarysufix ui spowoduje że wynikowy plik ma nazwę cookit-ui.exe.
- W tym momencie możemy cieszyć się gotowym do użycia Cookitem:
c:\cookit_bs>dir _output\win32-x86
Â
2010-10-02 Â 22:26 Â Â Â Â 1Â 778Â 005 cookit-ui.exe
2010-10-02 Â 22:12 Â Â Â Â 1Â 057Â 102 cookit.exe
Â
Aby upewnić się że został poprawnie zbudowany wystarczy go uruchomić - domyślnie powinno ukazać się okienko konsoli Tclowej:

O tym do czego praktycznie wykorzystać tak zbudowaną binarkę dowiecie się z nastepnych artykułów :) |
|
Poprawiony: Åšroda, 09 Marzec 2011 12:20 |