Some modifications are needed to compile libpq with vc6:

fe-connect.c:
- pg_config_paths.h isn't available. SYSCONFDIR is already defined so fe-connect.c doesn't need to include that.
patch appended


win32.mak:
- pg_config.h must be generated
- port/pgstrcasecmp.c is needed
- port/path.c is not needed
- the current cvs version includes some bogus cr characters, when checking out with wincvs the file will contain several cr cr lf lines which will confuse nmake.


Because the last problem might be difficult to handle as diff, I attached win32.mak as complete file, with all cr stripped so it may be committed safely with any cvs client.

Regards,
Andreas
Index: fe-connect.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-connect.c,v
retrieving revision 1.271
diff -u -r1.271 fe-connect.c
--- fe-connect.c        26 May 2004 18:35:51 -0000      1.271
+++ fe-connect.c        28 May 2004 11:48:56 -0000
@@ -29,7 +29,10 @@
 #include "libpq-fe.h"
 #include "libpq-int.h"
 #include "fe-auth.h"
+
+#ifndef SYSCONFDIR
 #include "pg_config_paths.h"
+#endif
 
 #ifdef WIN32
 #include "win32.h"

# Makefile for Microsoft Visual C++ 5.0 (or compat)

# Will build a Win32 static library libpq(d).lib
#        and a Win32 dynamic library libpq(d).dll with import library libpq(d)dll.lib
# USE_SSL=1 will compile with OpenSSL
# DEBUG=1 compiles with debugging symbols


!MESSAGE Building the Win32 static library...
!MESSAGE

!IFDEF DEBUG
OPT=/Od /Zi /MDd
LOPT=/DEBUG
DEBUGDEF=/D _DEBUG
OUTFILENAME=libpqd
!ELSE
OPT=/O2 /MD
LOPT=
DEBUGDEF=/D NDEBUG
OUTFILENAME=libpq
!ENDIF

!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE 
NULL=nul
!ENDIF 

CPP=cl.exe
RSC=rc.exe

!IFDEF DEBUG
OUTDIR=.\Debug
INTDIR=.\Debug
CPP_OBJS=.\Debug/
!ELSE
OUTDIR=.\Release
INTDIR=.\Release
CPP_OBJS=.\Release/
!ENDIF


ALL : config "$(OUTDIR)\$(OUTFILENAME).lib" "$(OUTDIR)\$(OUTFILENAME).dll" 

CLEAN :
        [EMAIL PROTECTED] "$(INTDIR)\getaddrinfo.obj"
        [EMAIL PROTECTED] "$(INTDIR)\pgstrcasecmp.obj"
        [EMAIL PROTECTED] "$(INTDIR)\thread.obj"
        [EMAIL PROTECTED] "$(INTDIR)\inet_aton.obj"
        [EMAIL PROTECTED] "$(INTDIR)\crypt.obj"
        [EMAIL PROTECTED] "$(INTDIR)\noblock.obj"
        [EMAIL PROTECTED] "$(INTDIR)\dllist.obj"
        [EMAIL PROTECTED] "$(INTDIR)\md5.obj"
        [EMAIL PROTECTED] "$(INTDIR)\ip.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-auth.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-protocol2.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-protocol3.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-connect.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-exec.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-lobj.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-misc.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-print.obj"
        [EMAIL PROTECTED] "$(INTDIR)\fe-secure.obj"
        [EMAIL PROTECTED] "$(INTDIR)\pqexpbuffer.obj"
        [EMAIL PROTECTED] "$(OUTDIR)\libpqdll.obj"
        [EMAIL PROTECTED] "$(OUTDIR)\win32.obj"
        [EMAIL PROTECTED] "$(OUTDIR)\$(OUTFILENAME).lib"
        [EMAIL PROTECTED] "$(OUTDIR)\$(OUTFILENAME).dll"
        [EMAIL PROTECTED] "$(OUTDIR)\libpq.res"
        [EMAIL PROTECTED] "*.pch"
        [EMAIL PROTECTED] "$(OUTDIR)\libpq.pch"
        [EMAIL PROTECTED] "$(OUTDIR)\$(OUTFILENAME)dll.exp"
        [EMAIL PROTECTED] "$(OUTDIR)\$(OUTFILENAME)dll.lib"
        [EMAIL PROTECTED] "$(INTDIR)\wchar.obj"
        [EMAIL PROTECTED] "$(INTDIR)\encnames.obj"



config: ..\..\include\pg_config.h

..\..\include\pg_config.h: ..\..\include\pg_config.h.win32
        copy ..\..\include\pg_config.h.win32 ..\..\include\pg_config.h


"$(OUTDIR)" :
    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

CPP_PROJ=/nologo /W3 /GX $(OPT) /I "..\..\include" /D "FRONTEND" $(DEBUGDEF) /D\
 "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
 /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c  /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP"

!IFDEF USE_SSL
CPP_PROJ=$(CPP_PROJ) /D USE_SSL
SSL_LIBS=ssleay32.lib libeay32.lib gdi32.lib
!ENDIF

CPP_SBRS=.

LIB32=link.exe -lib
LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\$(OUTFILENAME).lib" 
LIB32_OBJS= \
        "$(INTDIR)\win32.obj" \
        "$(INTDIR)\getaddrinfo.obj" \
        "$(INTDIR)\pgstrcasecmp.obj" \
        "$(INTDIR)\thread.obj" \
        "$(INTDIR)\inet_aton.obj" \
        "$(INTDIR)\crypt.obj" \
        "$(INTDIR)\noblock.obj" \
        "$(INTDIR)\dllist.obj" \
        "$(INTDIR)\md5.obj" \
        "$(INTDIR)\ip.obj" \
        "$(INTDIR)\fe-auth.obj" \
        "$(INTDIR)\fe-protocol2.obj" \
        "$(INTDIR)\fe-protocol3.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_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)\$(OUTFILENAME).dll"\
 /implib:"$(OUTDIR)\$(OUTFILENAME)dll.lib"  /def:$(OUTFILENAME)dll.def
LINK32_OBJS= \
        "$(INTDIR)\libpqdll.obj" \
        "$(OUTDIR)\$(OUTFILENAME).lib" \
        "$(OUTDIR)\libpq.res"


"$(OUTDIR)\$(OUTFILENAME).lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
    $(LIB32) @<<
  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
<<

"$(INTDIR)\libpq.res" : "$(INTDIR)" libpq.rc
    $(RSC) $(RSC_PROJ) libpq.rc


"$(OUTDIR)\$(OUTFILENAME).dll" : "$(OUTDIR)" "$(OUTDIR)\libpqdll.obj" 
"$(INTDIR)\libpqdll.obj" "$(INTDIR)\libpq.res"
    $(LINK32) @<<
  $(LINK32_FLAGS) $(LINK32_OBJS)
<<

"$(INTDIR)\getaddrinfo.obj" : ..\..\port\getaddrinfo.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\port\getaddrinfo.c
<<

"$(INTDIR)\pgstrcasecmp.obj" : ..\..\port\pgstrcasecmp.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\port\pgstrcasecmp.c
<<

"$(INTDIR)\thread.obj" : ..\..\port\thread.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\port\thread.c
<<

"$(INTDIR)\inet_aton.obj" : ..\..\port\inet_aton.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\port\inet_aton.c
<<

"$(INTDIR)\crypt.obj" : ..\..\port\crypt.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\port\crypt.c
<<

"$(INTDIR)\noblock.obj" : ..\..\port\noblock.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\port\noblock.c
<<

"$(INTDIR)\dllist.obj" : ..\..\backend\lib\dllist.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\backend\lib\dllist.c
<<


"$(INTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\backend\libpq\md5.c
<<

"$(INTDIR)\ip.obj" : ..\..\backend\libpq\ip.c
    $(CPP) @<<
    $(CPP_PROJ) ..\..\backend\libpq\ip.c
<<

"$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c
    $(CPP) @<<
    $(CPP_PROJ) /I "." ..\..\backend\utils\mb\wchar.c
<<


"$(INTDIR)\encnames.obj" : ..\..\backend\utils\mb\encnames.c
    $(CPP) @<<
    $(CPP_PROJ) /I "." ..\..\backend\utils\mb\encnames.c
<<


.c{$(CPP_OBJS)}.obj::
   $(CPP) @<<
   $(CPP_PROJ) $<
<<

.cpp{$(CPP_OBJS)}.obj::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<

.cxx{$(CPP_OBJS)}.obj::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<

.c{$(CPP_SBRS)}.sbr::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<

.cpp{$(CPP_SBRS)}.sbr::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<

.cxx{$(CPP_SBRS)}.sbr::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to