|
Сборка Postgres 7.3.1 под cygwin по исходникам с Tcl - solution!
|
|||
---|---|---|---|
#18+
Доброго времени суток, All! Если кто хочет знать, как побороть сабж, то могу поделиться опытом, чтобы Вы не наступали на те же грабли, что наступал я. Ну , для начала. Вы можете спросить, а так ли нужно вообще собирать Postgres с поддержкой Tcl. Не уверен, что могу дать твердый утвердительный ответ на этот вопрос. Но вот есть например проект pgMail (http://pgmail.sourceforge.net) Это - проект рассылки почты через PostgreSQL ( где-то аналог пакета utl_smtp в Oracle) и он требует чтобы Postgres поддерживал pltcl. Дальнейшие наши действия: п1. Так как архив бинарников Постгрес собран без поддержки pltcl, то скачиваем исходники. п2. Убедитесь, что у Вас установлена под Cygwin последняя версия Tcl/Tk - она должна быть 20021218-1 (вкладка Libs в Setup'e от cygwina). Если установлена, хорошо, если нет - ставим. п3. Помещаем в папку /usr/src/postgresql-7.3.1 следующий файл: -- НАЧАЛО КОПИРОВАНИЯ -- Index: interfaces/libpgtcl/Makefile =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpgtcl/Makefile,v retrieving revision 1.30 diff -u -p -r1.30 Makefile --- interfaces/libpgtcl/Makefile 2002/12/30 17:19:52 1.30 +++ interfaces/libpgtcl/Makefile 2003/01/14 19:40:46 @@ -20,7 +20,7 @@ override CPPFLAGS := -I$(libpq_srcdir) $ OBJS= pgtcl.o pgtclCmds.o pgtclId.o -SHLIB_LINK = $(libpq) +SHLIB_LINK += $(libpq) # If crypt is a separate library, rather than part of libc, it may need # to be referenced separately to keep (broken) linkers happy. (This is Index: makefiles/Makefile.win =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/makefiles/Makefile.win,v retrieving revision 1.18 diff -u -p -r1.18 Makefile.win --- makefiles/Makefile.win 2002/09/05 18:28:46 1.18 +++ makefiles/Makefile.win 2003/01/14 19:40:46 @@ -34,4 +34,8 @@ endif override javadir := '$(shell cygpath -w $(javadir))' +ifneq (,$(findstring interfaces/libpgtcl,$(subdir))) +SHLIB_LINK+= $(TCL_LIB_SPEC) +endif + sqlmansect = 7 Index: pl/tcl/Makefile =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/pl/tcl/Makefile,v retrieving revision 1.39 diff -u -p -r1.39 Makefile --- pl/tcl/Makefile 2002/12/30 17:19:54 1.39 +++ pl/tcl/Makefile 2003/01/14 19:40:46 @@ -43,7 +43,7 @@ ifeq ($(PORTNAME), hpux) SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) -lc else # link command for a shared lib must NOT mention shared libs it uses -SHLIB_LINK = $(TCL_LIB_SPEC) +SHLIB_LINK = $(BE_DLLLIBS) $(TCL_LIB_SPEC) endif endif Index: pl/tcl/pltcl.c =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/pl/tcl/pltcl.c,v retrieving revision 1.68 diff -u -p -r1.68 pltcl.c --- pl/tcl/pltcl.c 2002/12/30 22:10:54 1.68 +++ pl/tcl/pltcl.c 2003/01/14 19:40:49 @@ -35,9 +35,9 @@ * **********************************************************************/ -#include "postgres.h" - #include <tcl.h> + +#include "postgres.h" #include <unistd.h> #include <fcntl.h> -- КОНЕЦ КОПИРОВАНИЯ -- и называем его tcl.patch п4. В командной строке cygwin'a: $ cd /usr/src/postgresql-7.3.1/src $ patch -p0 </usr/src/postgresql-7.3.1/tcl.patch $ cd ../ $ ./configure --with-tcl --with-tclconfig=/lib --with-tkconfig=/lib ( ну и прочие Ваши опции) п5. В командной же строке: $ make Если на этом этапе все проходит гладко - пропустите пп. 6-8 и переходите к п. 9 Если нет - следуйте в п.6! п6. Компилятор gcc на шаге make может обругаться на предмет отсутствия файлов из папки X11 в /usr/include/. Вообще-то там нет не просто файлов, а и самой этой папки нет. Если с вашим cygwin'ом та же беда- идем на http://www.activestate.com и скачиваем ActiveTcl версии 8.3 . ВНИМАНИЕ! НЕ КАЧАЙТЕ ActiveTcl 8.4 - Postgres собирается под 8.3 , и ActiveTcl 8.0 тоже не качайте, бо древний уже. п7. Инсталлируем ActiveTcl8.3 и копируем папку X11 из этой инсталляции в /cygwin/usr/include. После этого ActiveTcl 8.3 можно деинсталлировать. п8. В командной строке cygwin в каталоге /usr/src/postgresql-7.3.1 : $ make clean $ ./configure --with-tcl --with-tclconfig=/lib --with-tkconfig=/lib ( ну и прочие Ваши опции) $ make Теперь все должно быть чисто! п9. В командной строке cygwin в каталоге /usr/src/postgresql-7.3.1 : $ make install Все! Андрей. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2003, 22:58 |
|
|
start [/forum/topic.php?fid=53&fpage=367&tid=2008271]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 355ms |
0 / 0 |