]> granicus.if.org Git - postgresql/commitdiff
Attached is a patch to provide makefiles, etc. to allow the compilation
authorBruce Momjian <bruce@momjian.us>
Mon, 30 Dec 2002 21:07:26 +0000 (21:07 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 30 Dec 2002 21:07:26 +0000 (21:07 +0000)
of the libpq interface static and dynamic libraries with the freely
downloadable Borland C++ compiler version 5.5 and/or C++ Builder.

Lester Godwin

src/bcc32.mak [new file with mode: 0644]
src/bin/psql/bcc32.mak [new file with mode: 0644]
src/interfaces/libpq/bcc32.mak [new file with mode: 0644]
src/interfaces/libpq/blibpqdll.def [new file with mode: 0644]
src/interfaces/libpq/win32.h

diff --git a/src/bcc32.mak b/src/bcc32.mak
new file mode 100644 (file)
index 0000000..87df2c0
--- /dev/null
@@ -0,0 +1,51 @@
+# $Header: /cvsroot/pgsql/src/bcc32.mak,v 1.1 2002/12/30 21:07:21 momjian Exp $
+
+# Makefile for Borland C++ 5.5 (or compat)
+# Top-file makefile for Win32 parts of postgresql.
+# Note that most parts are not ported to Win32!
+
+!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running MAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE make  -DCFG=[Release | Debug] /f bcc32.mak
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Release" (Win32 Release )
+!MESSAGE "Debug" (Win32 Debug)
+!MESSAGE
+!ENDIF
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+ALL: 
+   cd include
+   if not exist pg_config.h copy pg_config.h.win32 pg_config.h
+   cd ..
+   cd interfaces\libpq
+   make -DCFG=$(CFG) /f bcc32.mak 
+   cd ..\..\bin\psql
+   make -DCFG=$(CFG) /f bcc32.mak
+   cd ..\..
+   echo All Win32 parts have been built!
+
+CLEAN:
+   cd interfaces\libpq
+   make -DCFG=Release /f bcc32.mak CLEAN
+   make -DCFG=Debug /f bcc32.mak CLEAN
+   cd ..\..\bin\psql
+   make -DCFG=Release /f bcc32.mak CLEAN
+   make -DCFG=Debug /f bcc32.mak CLEAN
+   cd ..\..
+   echo All Win32 parts have been cleaned!
+
+DISTCLEAN: CLEAN
+   cd include
+   del config.h
+   cd ..
diff --git a/src/bin/psql/bcc32.mak b/src/bin/psql/bcc32.mak
new file mode 100644 (file)
index 0000000..1eeb591
--- /dev/null
@@ -0,0 +1,136 @@
+# Makefile for Borland C++ 5.5
+# Borland C++ base install directory goes here
+BCB=d:\Borland\Bcc55
+
+!MESSAGE Building PSQL.EXE ...
+!MESSAGE
+!IF "$(CFG)" == ""
+CFG=Release
+!MESSAGE No configuration specified. Defaulting to Release with STATIC libraries.
+!MESSAGE To use dynamic link libraries add -DDLL_LIBS to make command line.
+!MESSAGE
+!ELSE
+!MESSAGE Configuration "$(CFG)"
+!MESSAGE
+!ENDIF
+
+!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running MAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE make  -DCFG=[Release | Debug] /f bcc32.mak
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Release" (Win32 Release EXE)
+!MESSAGE "Debug" (Win32 Debug EXE)
+!MESSAGE
+!ERROR An invalid configuration was specified.
+!ENDIF
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+CPP=bcc32.exe
+
+!IF "$(CFG)" == "Debug"
+DEBUG=1
+OUTDIR=.\Debug
+INTDIR=.\Debug
+!else
+OUTDIR=.\Release
+INTDIR=.\Release
+!endif
+
+.path.obj = $(INTDIR)
+
+.c.obj:
+       $(CPP) -o"$(INTDIR)\$&" $(CPP_PROJ) $<
+
+ALL : "$(OUTDIR)\psql.exe"
+
+CLEAN :
+       -@erase "$(INTDIR)\command.obj"
+       -@erase "$(INTDIR)\common.obj"
+       -@erase "$(INTDIR)\help.obj"
+       -@erase "$(INTDIR)\input.obj"
+       -@erase "$(INTDIR)\stringutils.obj"
+       -@erase "$(INTDIR)\mainloop.obj"
+       -@erase "$(INTDIR)\copy.obj"
+       -@erase "$(INTDIR)\startup.obj"
+       -@erase "$(INTDIR)\prompt.obj"
+       -@erase "$(INTDIR)\sprompt.obj"
+       -@erase "$(INTDIR)\variables.obj"
+       -@erase "$(INTDIR)\large_obj.obj"
+       -@erase "$(INTDIR)\print.obj"
+       -@erase "$(INTDIR)\describe.obj"
+       -@erase "$(INTDIR)\tab-complete.obj"
+       -@erase "$(INTDIR)\getopt.obj"
+       -@erase "$(INTDIR)\mbprint.obj"
+       -@erase "$(INTDIR)\psql.ilc"
+       -@erase "$(INTDIR)\psql.ild"
+       -@erase "$(INTDIR)\psql.tds"
+       -@erase "$(INTDIR)\psql.ils"
+       -@erase "$(INTDIR)\psql.ilf"
+       -@erase "$(OUTDIR)\psql.exe"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+USERDEFINES = WIN32;_CONSOLE;_MBCS;HAVE_STRDUP
+
+# ---------------------------------------------------------------------------
+CPP_PROJ = -I$(BCB)\include;..\..\include;..\..\interfaces\libpq -c -D$(USERDEFINES) -tWM -tWC \
+               -q -5 -a8 -pc -X -w-use -w-par -w-pia -w-csu -w-aus -w-ccc
+
+!IFDEF DEBUG
+CPP_PROJ       = $(CPP_PROJ) -Od -r- -k -v -y -vi- -D_DEBUG
+LIBPG_DIR      = Debug
+!ELSE
+CPP_PROJ       = $(CPP_PROJ) -O -Oi -OS -DNDEBUG
+LIBPG_DIR      = Release
+!ENDIF
+
+!IFDEF DLL_LIBS
+CPP_PROJ       = $(CPP_PROJ) -D_RTLDLL
+LIBRARIES      = cw32mti.lib ..\..\interfaces\libpq\$(LIBPG_DIR)\blibpqdll.lib
+!ELSE
+CPP_PROJ       = $(CPP_PROJ) -DBCC32_STATIC
+LIBRARIES      = cw32mt.lib ..\..\interfaces\libpq\$(LIBPG_DIR)\blibpq.lib
+!ENDIF
+
+LINK32=ilink32.exe
+LINK32_FLAGS=-L$(BCB)\lib;.\$(LIBPG_DIR) -x -v 
+LINK32_OBJS= \
+       command.obj \
+       common.obj \
+       help.obj \
+       input.obj \
+       stringutils.obj \
+       mainloop.obj \
+       copy.obj \
+       startup.obj \
+       prompt.obj \
+       sprompt.obj \
+       variables.obj \
+       large_obj.obj \
+       print.obj \
+       describe.obj \
+       tab-complete.obj \
+       getopt.obj \
+       mbprint.obj
+       
+
+"$(OUTDIR)\psql.exe" : "$(OUTDIR)" $(LINK32_OBJS)
+       $(LINK32) @&&!
+       $(LINK32_FLAGS) +
+       c0x32.obj $(LINK32_OBJS), +
+       $@,, +
+       import32.lib $(LIBRARIES),,
+!
+
+getopt.obj : "$(OUTDIR)" ..\..\port\getopt.c
diff --git a/src/interfaces/libpq/bcc32.mak b/src/interfaces/libpq/bcc32.mak
new file mode 100644 (file)
index 0000000..985143a
--- /dev/null
@@ -0,0 +1,141 @@
+# Makefile for Borland C++ 5.5
+
+# Will build a Win32 static library libpq.lib
+#        and a Win32 dynamic library libpq.dll with import library libpqdll.lib
+
+# Borland C++ base install directory goes here
+BCB=d:\Borland\Bcc55
+
+!MESSAGE Building the Win32 DLL and Static Library...
+!MESSAGE
+!IF "$(CFG)" == ""
+CFG=Release
+!MESSAGE No configuration specified. Defaulting to Release.
+!MESSAGE
+!ELSE
+!MESSAGE Configuration "$(CFG)"
+!MESSAGE
+!ENDIF
+
+!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running MAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE make  -DCFG=[Release | Debug] /f bcc32.mak
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Release" (Win32 Release DLL and Static Library)
+!MESSAGE "Debug" (Win32 Debug DLL and Static Library)
+!MESSAGE
+!ERROR An invalid configuration was specified.
+!ENDIF
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF "$(CFG)" == "Debug"
+DEBUG=1
+OUTDIR=.\Debug
+INTDIR=.\Debug
+!else
+OUTDIR=.\Release
+INTDIR=.\Release
+!endif
+
+USERDEFINES=FRONTEND;NDEBUG;WIN32;_WINDOWS;HAVE_VSNPRINTF;HAVE_STRDUP;
+
+CPP=bcc32.exe
+CPP_PROJ = -I$(BCB)\include;..\..\include -WD -c -D$(USERDEFINES) -tWM \
+               -a8 -X -w-use -w-par -w-pia -w-csu -w-aus -w-ccc
+
+!IFDEF DEBUG
+CPP_PROJ       = $(CPP_PROJ) -Od -r- -k -v -y -vi- -D_DEBUG
+!else
+CPP_PROJ       = $(CPP_PROJ) -O -Oi -OS -DNDEBUG
+!endif
+
+LIB32=tlib.exe
+LIB32_FLAGS= 
+LIB32_OBJS= \
+       "$(OUTDIR)\win32.obj" \
+       "$(INTDIR)\dllist.obj" \
+       "$(INTDIR)\md5.obj" \
+       "$(INTDIR)\fe-auth.obj" \
+       "$(INTDIR)\fe-connect.obj" \
+       "$(INTDIR)\fe-exec.obj" \
+       "$(INTDIR)\fe-lobj.obj" \
+       "$(INTDIR)\fe-misc.obj" \
+       "$(INTDIR)\fe-print.obj" \
+       "$(INTDIR)\fe-secure.obj" \
+       "$(INTDIR)\pqexpbuffer.obj" \
+       "$(INTDIR)\wchar.obj" \
+       "$(INTDIR)\encnames.obj"
+
+RSC=brcc32.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
+
+LINK32=ilink32.exe
+LINK32_FLAGS = -Gn -L$(BCB)\lib;$(INTDIR); -x -Tpd -v
+LINK32_OBJS= "$(INTDIR)\libpqdll.obj"
+       
+# ---------------------------------------------------------------------------
+
+.path.obj = $(INTDIR)
+.path.c = .;..\..\backend\libpq;..\..\backend\lib;..\..\backend\utils\mb
+
+# ---------------------------------------------------------------------------
+
+ALL: "$(OUTDIR)" "$(OUTDIR)\blibpq.dll" "$(OUTDIR)\blibpq.lib"
+
+CLEAN :
+       -@erase "$(INTDIR)\dllist.obj"
+       -@erase "$(INTDIR)\md5.obj"
+       -@erase "$(INTDIR)\fe-auth.obj"
+       -@erase "$(INTDIR)\fe-connect.obj"
+       -@erase "$(INTDIR)\fe-exec.obj"
+       -@erase "$(INTDIR)\fe-lobj.obj"
+       -@erase "$(INTDIR)\fe-misc.obj"
+       -@erase "$(INTDIR)\fe-print.obj"
+       -@erase "$(INTDIR)\fe-secure.obj"
+       -@erase "$(INTDIR)\pqexpbuffer.obj"
+       -@erase "$(OUTDIR)\libpqdll.obj"
+       -@erase "$(OUTDIR)\win32.obj"
+       -@erase "$(INTDIR)\wchar.obj"
+       -@erase "$(INTDIR)\encnames.obj"
+       -@erase "$(OUTDIR)\libpq.res"
+       -@erase "$(OUTDIR)\blibpq.lib"
+       -@erase "$(OUTDIR)\blibpqdll.lib"
+       -@erase "$(OUTDIR)\blibpq.dll"
+       -@erase "$(OUTDIR)\blibpq.tds"
+
+
+"$(OUTDIR)" :
+       @if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(OUTDIR)\blibpq.dll": "$(OUTDIR)\blibpq.lib" $(LINK32_OBJS) "$(INTDIR)\libpq.res" blibpqdll.def 
+       $(LINK32) @&&!
+       $(LINK32_FLAGS) +
+       c0d32.obj $(LINK32_OBJS), +
+       $@,, +
+       "$(OUTDIR)\blibpq.lib" import32.lib cw32mti.lib, +
+       blibpqdll.def,"$(INTDIR)\libpq.res"
+!
+       implib -a "$(OUTDIR)\blibpqdll.lib" blibpqdll.def $@
+
+"$(INTDIR)\libpq.res" : "$(INTDIR)" libpq.rc
+    $(RSC) $(RSC_PROJ) libpq.rc
+
+"$(OUTDIR)\blibpq.lib": $(LIB32_OBJS)
+       $(LIB32) $@ @&&!
++-"$(**: =" &^
++-")"
+!
+
+.c.obj:
+       $(CPP) -o"$(INTDIR)\$&" $(CPP_PROJ) $<
+
diff --git a/src/interfaces/libpq/blibpqdll.def b/src/interfaces/libpq/blibpqdll.def
new file mode 100644 (file)
index 0000000..fa2eb7c
--- /dev/null
@@ -0,0 +1,95 @@
+LIBRARY BLIBPQ
+EXPORTS
+       _PQconnectdb            @ 1
+       _PQsetdbLogin           @ 2
+       _PQconndefaults         @ 3
+       _PQfinish               @ 4
+       _PQreset                @ 5
+       _PQrequestCancel        @ 6
+       _PQdb                   @ 7
+       _PQuser                 @ 8
+       _PQpass                 @ 9
+       _PQhost                 @ 10
+       _PQport                 @ 11
+       _PQtty                  @ 12
+       _PQoptions              @ 13
+       _PQstatus               @ 14
+       _PQerrorMessage         @ 15
+       _PQsocket               @ 16
+       _PQbackendPID           @ 17
+       _PQtrace                @ 18
+       _PQuntrace              @ 19
+       _PQsetNoticeProcessor   @ 20
+       _PQexec                 @ 21
+       _PQnotifies             @ 22
+       _PQsendQuery            @ 23
+       _PQgetResult            @ 24
+       _PQisBusy               @ 25
+       _PQconsumeInput         @ 26
+       _PQgetline              @ 27
+       _PQputline              @ 28
+       _PQgetlineAsync         @ 29
+       _PQputnbytes            @ 30
+       _PQendcopy              @ 31
+       _PQfn                   @ 32
+       _PQresultStatus         @ 33
+       _PQntuples              @ 34
+       _PQnfields              @ 35
+       _PQbinaryTuples         @ 36
+       _PQfname                @ 37
+       _PQfnumber              @ 38
+       _PQftype                @ 39
+       _PQfsize                @ 40
+       _PQfmod                 @ 41
+       _PQcmdStatus            @ 42
+       _PQoidStatus            @ 43
+       _PQcmdTuples            @ 44
+       _PQgetvalue             @ 45
+       _PQgetlength            @ 46
+       _PQgetisnull            @ 47
+       _PQclear                @ 48
+       _PQmakeEmptyPGresult    @ 49
+       _PQprint                @ 50
+       _PQdisplayTuples        @ 51
+       _PQprintTuples          @ 52
+       _lo_open                @ 53
+       _lo_close               @ 54
+       _lo_read                @ 55
+       _lo_write               @ 56
+       _lo_lseek               @ 57
+       _lo_creat               @ 58
+       _lo_tell                @ 59
+       _lo_unlink              @ 60
+       _lo_import              @ 61
+       _lo_export              @ 62
+       _pgresStatus            @ 63
+       _PQmblen                @ 64
+       _PQresultErrorMessage   @ 65
+       _PQresStatus            @ 66
+       _termPQExpBuffer        @ 67
+       _appendPQExpBufferChar  @ 68
+       _initPQExpBuffer        @ 69
+       _resetPQExpBuffer       @ 70
+       _PQoidValue             @ 71
+       _PQclientEncoding       @ 72
+       _PQenv2encoding         @ 73
+       _appendBinaryPQExpBuffer    @ 74
+       _appendPQExpBufferStr   @ 75
+       _destroyPQExpBuffer     @ 76
+       _createPQExpBuffer      @ 77
+       _PQconninfoFree         @ 78
+       _PQconnectPoll          @ 79
+       _PQconnectStart         @ 80
+       _PQflush                @ 81
+       _PQisnonblocking        @ 82
+       _PQresetPoll            @ 83
+       _PQresetStart           @ 84
+       _PQsetClientEncoding    @ 85
+       _PQsetnonblocking       @ 86
+       _PQfreeNotify           @ 87
+       _PQescapeString         @ 88
+       _PQescapeBytea          @ 89
+       _printfPQExpBuffer      @ 90
+       _appendPQExpBuffer      @ 91
+       _pg_encoding_to_char    @ 92
+       _pg_utf_mblen           @ 93
index 4e8a2141d5324a13c99b67c5de769f0644af45cd..e0abd87678d06c45b0ea12595aa68f477f79f692 100644 (file)
 /*
  * Some other compat functions
  */
+#ifdef __BORLANDC__
+#define _timeb timeb
+#define _ftime(a) ftime(a)
+#define _strnicmp(a,b,c) strnicmp(a,b,c)
+#define _errno errno
+#else
 #define open(a,b,c) _open(a,b,c)
 #define close(a) _close(a)
 #define read(a,b,c) _read(a,b,c)
 #define write(a,b,c) _write(a,b,c)
+#endif
+
 #define popen(a,b) _popen(a,b)
 #define pclose(a) _pclose(a)
 #define vsnprintf(a,b,c,d) _vsnprintf(a,b,c,d)