powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сборка Postgres 7.3.1 под cygwin по исходникам с Tcl - solution!
1 сообщений из 1, страница 1 из 1
Сборка Postgres 7.3.1 под cygwin по исходникам с Tcl - solution!
    #32092195
zipfer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток, 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
Все!

Андрей.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сборка Postgres 7.3.1 под cygwin по исходникам с Tcl - solution!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]