Thread View: pl.comp.lang.tcl
3 messages
3 total messages
Started by Mateusz Loskot
Tue, 30 May 2006 05:56
Wykrycie Tcl/Tk przez Autoconf
Author: Mateusz Loskot
Date: Tue, 30 May 2006 05:56
Date: Tue, 30 May 2006 05:56
48 lines
2024 bytes
2024 bytes
Witam, Nie jestem pewien czy to odpowiednie miejsce, więc w razie co przepraszam za OT. Czy ktoś mógłby mi powiedzieć, w jaki sposób użyć w configure.in makr zdefiniowanych w tcl.m4? Co chcę osiągnąć? 1. Sprawdzić czy obecne sa Tcl i Tk w systemie, w odp. wersji. 2. Otrzymać ścieżkę do tcl.h i tk.h 3. Otrzymać CFLAGS dla kompilatora 4. -//- LDFLAGS dla linkera Pierwsze dwa cele potrafię zrealizować: dnl configure.in SC_PATH_TCLCONFIG(configsh) SC_PATH_TKCONFIG SC_LOAD_TCLCONFIG SC_LOAD_TKCONFIG i teraz dostaję takie zmienne i wartości na moim Linuksie: TCL_VERSION = 8.4 TL_VERSION = 8.4 TCL_BIN_DIR = /usr/lib/tcl8.4 TCL_INC_DIR = /usr/include/tcl8.4/tcl-private/generic TCL_LIB_DIR = TK_BIN_DIR = /usr/lib/tk8.4 TK_LIB_DIR = Nie wiem tylko dlaczego TCL_INC_DIR nie wskazuje do /usr/include/tcl8.4 a głębiej. Może nie powinienem używać tej zmiennej przy kompilacji swojego programu z obsługą libtcl? Wczoraj kopałem ze 2 godziny w poszukiwaniu rozwiązania niestety, musze się poddać lub napisać własne makra. Wolałbym jednak użyć standardowych jeśli są. Czy ktoś może mi pomóc z punktami 3. i 4.? Dzięki i pozdrawiam -- Mateusz Loskot http://mateusz.loskot.net
Re: Wykrycie Tcl/Tk przez Autoconf
Author: Artur
Date: Tue, 30 May 2006 06:32
Date: Tue, 30 May 2006 06:32
63 lines
3378 bytes
3378 bytes
Mateusz Loskot schrieb:
> Witam,
>
> Nie jestem pewien czy to odpowiednie miejsce, więc w razie co
> przepraszam za OT.
>
> Czy ktoś mógłby mi powiedzieć, w jaki sposób użyć w configure.in makr
> zdefiniowanych w tcl.m4?
>
> Co chcę osiągnąć?
>
> 1. Sprawdzić czy obecne sa Tcl i Tk w systemie, w odp. wersji.
> 2. Otrzymać ścieżkę do tcl.h i tk.h
> 3. Otrzymać CFLAGS dla kompilatora
> 4. -//- LDFLAGS dla linkera
>
> Pierwsze dwa cele potrafię zrealizować:
>
> dnl configure.in
> SC_PATH_TCLCONFIG(configsh)
> SC_PATH_TKCONFIG
> SC_LOAD_TCLCONFIG
> SC_LOAD_TKCONFIG
>
> i teraz dostaję takie zmienne i wartości na moim Linuksie:
>
> TCL_VERSION = 8.4
> TL_VERSION = 8.4
> TCL_BIN_DIR = /usr/lib/tcl8.4
> TCL_INC_DIR = /usr/include/tcl8.4/tcl-private/generic
> TCL_LIB_DIR =
> TK_BIN_DIR = /usr/lib/tk8.4
> TK_LIB_DIR =
>
> Nie wiem tylko dlaczego TCL_INC_DIR nie wskazuje do
> /usr/include/tcl8.4 a głębiej.
> Może nie powinienem używać tej zmiennej przy kompilacji swojego
> programu z obsługą libtcl?
>
Nigdy tak gleboko nie kopalem w tych skriptach. Ale moze
kilka informacji ktore moga sie przydac
1) Wszystkie wazne zmienne instalacje Tcl sa przechowywane w
tclConfig.sh (Normalnie w katalogu lib). configure normalnie
evaluuje ten plik aby otrzymac wszystkie zmienne (to opcja --with-tcl)
2) configuracja Tcl bazuje na tzw. TEA (Tcl extension architecture juz
w wersji 3). Szablon do tej to nazywa sie simpleextension.
http://www.tcl.tk/doc/tea/
Istnieje tez dokumentacje (czesto nie aktualna dla macors tcl.m4)
W standartowych przypadkach wystarczy dopasowac
configure.in in wywolac autoconf (moze niekiedy tez Makefile.in)
3) CFLAGS sa standartowo ustawiane przez TEA (uzytkowniek zawsze moze
ale zdefiniowac swoje ustawiajac zmienna CFLAGS)
4) To gdzie znajduje sie tclConfig.sh charakteruzuje opcja --witch-tcl
z TEA. Na systemie moze byc wiele instalacji Tcl. Standartowo jest
brana ta ktora jest pod PATH.
Najbezbieczniej jest ale uzywac tclConfig.sh
5) Czytaj takze http://www.beedub.com/book/
Ktorys z rozdzialow zajmuje sie takze TEA
Artur
Re: Wykrycie Tcl/Tk przez Autoconf
Author: Mateusz Loskot
Date: Tue, 30 May 2006 09:17
Date: Tue, 30 May 2006 09:17
62 lines
3216 bytes
3216 bytes
Witam,
Artur wrote:
> Mateusz Loskot schrieb:
>>
>>Nie jestem pewien czy to odpowiednie miejsce, więc w razie co
>>przepraszam za OT.
>>
>>Czy ktoś mógłby mi powiedzieć, w jaki sposób użyć w configure.in makr
>>zdefiniowanych w tcl.m4?
>>
>>Co chcę osiągnąć?
>>
>>1. Sprawdzić czy obecne sa Tcl i Tk w systemie, w odp. wersji.
>>2. Otrzymać ścieżkę do tcl.h i tk.h
>>3. Otrzymać CFLAGS dla kompilatora
>>4. -//- LDFLAGS dla linkera
>>
>> [...]
>>
>>Nie wiem tylko dlaczego TCL_INC_DIR nie wskazuje do
>>/usr/include/tcl8.4 a głębiej.
>>Może nie powinienem używać tej zmiennej przy kompilacji swojego
>>programu z obsługą libtcl?
>
>
> Nigdy tak gleboko nie kopalem w tych skriptach. Ale moze
> kilka informacji ktore moga sie przydac
> 1) Wszystkie wazne zmienne instalacje Tcl sa przechowywane w
> tclConfig.sh (Normalnie w katalogu lib). configure normalnie
> evaluuje ten plik aby otrzymac wszystkie zmienne (to opcja --with-tcl)
> 2) configuracja Tcl bazuje na tzw. TEA (Tcl extension architecture juz
> w wersji 3). Szablon do tej to nazywa sie simpleextension.
> http://www.tcl.tk/doc/tea/
Tak, tylko ja nie tworzę rozszerzenia Tcl.
Z tego co się wyczytałem, chcąc używać bibliotek Tcl we własnym
programie, nie powinienem używać skryptów z TEA, bo to służy jestynie do
tworzenia rozszerzeń,
W moim przypadku należy użyć tcl.m4 i {tcl|tk}Config.sh ze standardowego
pakietu tcl-dev.
> Istnieje tez dokumentacje (czesto nie aktualna dla macors tcl.m4)
> W standartowych przypadkach wystarczy dopasowac
> configure.in in wywolac autoconf (moze niekiedy tez Makefile.in)
> 3) CFLAGS sa standartowo ustawiane przez TEA (uzytkowniek zawsze moze
> ale zdefiniowac swoje ustawiajac zmienna CFLAGS)
> 4) To gdzie znajduje sie tclConfig.sh charakteruzuje opcja --witch-tcl
> z TEA. Na systemie moze byc wiele instalacji Tcl. Standartowo jest
> brana ta ktora jest pod PATH.
> Najbezbieczniej jest ale uzywac tclConfig.sh
> 5) Czytaj takze http://www.beedub.com/book/
> Ktorys z rozdzialow zajmuje sie takze TEA
A może jestem w błędzie i powinienem użyć TEA?
Dzięki, spróbuję coś pogrzebać o tym jeszcze.
Pozdrawiam
--
Mateusz Loskot
http://mateusz.loskot.net
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads