]> granicus.if.org Git - postgresql/commitdiff
Make a separate win32 debug DLL along with the non-debug version:
authorBruce Momjian <bruce@momjian.us>
Tue, 9 Mar 2004 04:53:37 +0000 (04:53 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 9 Mar 2004 04:53:37 +0000 (04:53 +0000)
Currently, src/interfaces/libpq/win32.mak builds a statically-linked
library "libpq.lib", a debug dll "libpq.dll", import library for the
debug dll "libpqdll.lib", a release dll "libpq.dll", import library for
the release dll "libpqdll.lib".  To avoid naming clashes, I would make
the debug dll and import libraries "libpqd.dll" and "libpqddll.lib".

Basically, the debug build uses the cl flags: "/MDd /D _DEBUG", and the
release build uses the cl flags "/MD /D NDEBUG".  Usually the debug
build has a "D" suffix on the file name, so for example:

libpqd.dll     libpq, debug build
libpqd.lib     libpq, debug build, import library
libpq.dll      libpq, release build
libpq.lib      libpq, release build, import library

David Turner

src/interfaces/libpq/libpqddll.def [new file with mode: 0644]
src/interfaces/libpq/win32.mak

diff --git a/src/interfaces/libpq/libpqddll.def b/src/interfaces/libpq/libpqddll.def
new file mode 100644 (file)
index 0000000..bd2460d
--- /dev/null
@@ -0,0 +1,115 @@
+; DEF file for MS VC++\r
+LIBRARY LIBPQD\r
+DESCRIPTION "PostgreSQL Client Library"\r
+EXPORTS\r
+    PQconnectdb             @ 1\r
+    PQsetdbLogin            @ 2\r
+    PQconndefaults          @ 3\r
+    PQfinish                @ 4\r
+    PQreset                 @ 5\r
+    PQrequestCancel         @ 6\r
+    PQdb                    @ 7\r
+    PQuser                  @ 8\r
+    PQpass                  @ 9\r
+    PQhost                  @ 10\r
+    PQport                  @ 11\r
+    PQtty                   @ 12\r
+    PQoptions               @ 13\r
+    PQstatus                @ 14\r
+    PQerrorMessage          @ 15\r
+    PQsocket                @ 16\r
+    PQbackendPID            @ 17\r
+    PQtrace                 @ 18\r
+    PQuntrace               @ 19\r
+    PQsetNoticeProcessor    @ 20\r
+    PQexec                  @ 21\r
+    PQnotifies              @ 22\r
+    PQsendQuery             @ 23\r
+    PQgetResult             @ 24\r
+    PQisBusy                @ 25\r
+    PQconsumeInput          @ 26\r
+    PQgetline               @ 27\r
+    PQputline               @ 28\r
+    PQgetlineAsync          @ 29\r
+    PQputnbytes             @ 30\r
+    PQendcopy               @ 31\r
+    PQfn                    @ 32\r
+    PQresultStatus          @ 33\r
+    PQntuples               @ 34\r
+    PQnfields               @ 35\r
+    PQbinaryTuples          @ 36\r
+    PQfname                 @ 37\r
+    PQfnumber               @ 38\r
+    PQftype                 @ 39\r
+    PQfsize                 @ 40\r
+    PQfmod                  @ 41\r
+    PQcmdStatus             @ 42\r
+    PQoidStatus             @ 43\r
+    PQcmdTuples             @ 44\r
+    PQgetvalue              @ 45\r
+    PQgetlength             @ 46\r
+    PQgetisnull             @ 47\r
+    PQclear                 @ 48\r
+    PQmakeEmptyPGresult     @ 49\r
+    PQprint                 @ 50\r
+    PQdisplayTuples         @ 51\r
+    PQprintTuples           @ 52\r
+    lo_open                 @ 53\r
+    lo_close                @ 54\r
+    lo_read                 @ 55\r
+    lo_write                @ 56\r
+    lo_lseek                @ 57\r
+    lo_creat                @ 58\r
+    lo_tell                 @ 59\r
+    lo_unlink               @ 60\r
+    lo_import               @ 61\r
+    lo_export               @ 62\r
+    pgresStatus             @ 63\r
+    PQmblen                 @ 64\r
+    PQresultErrorMessage    @ 65\r
+    PQresStatus             @ 66\r
+    termPQExpBuffer         @ 67\r
+    appendPQExpBufferChar   @ 68\r
+    initPQExpBuffer         @ 69\r
+    resetPQExpBuffer        @ 70\r
+    PQoidValue              @ 71\r
+    PQclientEncoding        @ 72\r
+    PQenv2encoding          @ 73\r
+    appendBinaryPQExpBuffer @ 74\r
+    appendPQExpBufferStr    @ 75\r
+    destroyPQExpBuffer      @ 76\r
+    createPQExpBuffer       @ 77\r
+    PQconninfoFree          @ 78\r
+    PQconnectPoll           @ 79\r
+    PQconnectStart          @ 80\r
+    PQflush                 @ 81\r
+    PQisnonblocking         @ 82\r
+    PQresetPoll             @ 83\r
+    PQresetStart            @ 84\r
+    PQsetClientEncoding     @ 85\r
+    PQsetnonblocking        @ 86\r
+    PQfreeNotify            @ 87\r
+    PQescapeString          @ 88\r
+    PQescapeBytea           @ 89\r
+    printfPQExpBuffer       @ 90\r
+    appendPQExpBuffer       @ 91\r
+    pg_encoding_to_char     @ 92\r
+    pg_utf_mblen            @ 93\r
+    PQunescapeBytea         @ 94\r
+    PQfreemem               @ 95\r
+    PQtransactionStatus     @ 96\r
+    PQparameterStatus       @ 97\r
+    PQprotocolVersion       @ 98\r
+    PQsetErrorVerbosity     @ 99\r
+    PQsetNoticeReceiver     @ 100\r
+    PQexecParams            @ 101\r
+    PQsendQueryParams       @ 102\r
+    PQputCopyData           @ 103\r
+    PQputCopyEnd            @ 104\r
+    PQgetCopyData           @ 105\r
+    PQresultErrorField      @ 106\r
+    PQftable                @ 107\r
+    PQftablecol             @ 108\r
+    PQfformat               @ 109\r
+    PQexecPrepared          @ 110\r
+    PQsendQueryPrepared     @ 111\r
index 436a80fb9bec7e248f2dd84cbdde0dd4c0a7b29d..3623b1fe579ed99eda316ae94bcb0c331d688f28 100644 (file)
@@ -1,7 +1,7 @@
 # Makefile for Microsoft Visual C++ 5.0 (or compat)
 
-# Will build a Win32 static library libpq.lib
-#        and a Win32 dynamic library libpq.dll with import library libpqdll.lib
+# Will build a Win32 static library libpq(d).lib\r
+#        and a Win32 dynamic library libpq(d).dll with import library libpq(d)dll.lib\r
 # USE_SSL=1 will compile with OpenSSL
 # DEBUG=1 compiles with debugging symbols
 
 !MESSAGE
 
 !IFDEF DEBUG
-OPT=/Od /Zi
+OPT=/Od /Zi /MDd\r
 LOPT=/debug
 DEBUGDEF=/D _DEBUG
+OUTFILENAME=libpqd\r
 !ELSE
-OPT=/O2
+OPT=/O2 /MD\r
 LOPT=
 DEBUGDEF=/D NDEBUG
+OUTFILENAME=libpq\r
 !ENDIF
 
 !IF "$(OS)" == "Windows_NT"
@@ -39,7 +41,7 @@ CPP_OBJS=.\Release/
 !ENDIF
 
 
-ALL : "$(OUTDIR)\libpq.lib" "$(OUTDIR)\libpq.dll" 
+ALL : "$(OUTDIR)\$(OUTFILENAME).lib" "$(OUTDIR)\$(OUTFILENAME).dll" \r
 
 CLEAN :
        -@erase "$(INTDIR)\getaddrinfo.obj"
@@ -62,20 +64,20 @@ CLEAN :
        -@erase "$(INTDIR)\pqexpbuffer.obj"
        -@erase "$(OUTDIR)\libpqdll.obj"
        -@erase "$(OUTDIR)\win32.obj"
-       -@erase "$(OUTDIR)\libpq.lib"
-       -@erase "$(OUTDIR)\libpq.dll"
+       -@erase "$(OUTDIR)\$(OUTFILENAME).lib"\r
+       -@erase "$(OUTDIR)\$(OUTFILENAME).dll"\r
        -@erase "$(OUTDIR)\libpq.res"
        -@erase "*.pch"
        -@erase "$(OUTDIR)\libpq.pch"
-       -@erase "$(OUTDIR)\libpqdll.exp"
-       -@erase "$(OUTDIR)\libpqdll.lib"
+       -@erase "$(OUTDIR)\$(OUTFILENAME)dll.exp"\r
+       -@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"\r
        -@erase "$(INTDIR)\wchar.obj"
        -@erase "$(INTDIR)\encnames.obj"
 
 "$(OUTDIR)" :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
-CPP_PROJ=/nologo /MD /W3 /GX $(OPT) /I "..\..\include" /D "FRONTEND" $(DEBUGDEF) /D\
+CPP_PROJ=/nologo /W3 /GX $(OPT) /I "..\..\include" /D "FRONTEND" $(DEBUGDEF) /D\\r
  "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
  /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c  /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP"
 
@@ -87,7 +89,7 @@ SSL_LIBS=ssleay32.lib libeay32.lib gdi32.lib
 CPP_SBRS=.
 
 LIB32=link.exe -lib
-LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\libpq.lib" 
+LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\$(OUTFILENAME).lib" \r
 LIB32_OBJS= \
        "$(INTDIR)\win32.obj" \
        "$(INTDIR)\getaddrinfo.obj" \
@@ -117,15 +119,15 @@ RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
 LINK32=link.exe
 LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib wsock32.lib $(SSL_LIBS)  \
  /nologo /subsystem:windows /dll $(LOPT) /incremental:no\
- /pdb:"$(OUTDIR)\libpqdll.pdb" /machine:I386 /out:"$(OUTDIR)\libpq.dll"\
- /implib:"$(OUTDIR)\libpqdll.lib"  /def:libpqdll.def
+ /pdb:"$(OUTDIR)\libpqdll.pdb" /machine:I386 /out:"$(OUTDIR)\$(OUTFILENAME).dll"\\r
+ /implib:"$(OUTDIR)\$(OUTFILENAME)dll.lib"  /def:$(OUTFILENAME)dll.def\r
 LINK32_OBJS= \
        "$(INTDIR)\libpqdll.obj" \
-       "$(OUTDIR)\libpq.lib" \
+       "$(OUTDIR)\$(OUTFILENAME).lib" \\r
        "$(OUTDIR)\libpq.res"
 
 
-"$(OUTDIR)\libpq.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+"$(OUTDIR)\$(OUTFILENAME).lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)\r
     $(LIB32) @<<
   $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
 <<
@@ -134,7 +136,7 @@ LINK32_OBJS= \
     $(RSC) $(RSC_PROJ) libpq.rc
 
 
-"$(OUTDIR)\libpq.dll" : "$(OUTDIR)" "$(OUTDIR)\libpqdll.obj" "$(INTDIR)\libpqdll.obj" "$(INTDIR)\libpq.res"
+"$(OUTDIR)\$(OUTFILENAME).dll" : "$(OUTDIR)" "$(OUTDIR)\libpqdll.obj" "$(INTDIR)\libpqdll.obj" "$(INTDIR)\libpq.res"\r
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<