Compiling libpq with VisualC - Mailing list pgsql-patches
From | Andreas Pflug |
---|---|
Subject | Compiling libpq with VisualC |
Date | |
Msg-id | 40B729D2.4000608@pse-consulting.de Whole thread Raw |
Responses |
Re: Compiling libpq with VisualC
|
List | pgsql-patches |
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 : -@erase "$(INTDIR)\getaddrinfo.obj" -@erase "$(INTDIR)\pgstrcasecmp.obj" -@erase "$(INTDIR)\thread.obj" -@erase "$(INTDIR)\inet_aton.obj" -@erase "$(INTDIR)\crypt.obj" -@erase "$(INTDIR)\noblock.obj" -@erase "$(INTDIR)\dllist.obj" -@erase "$(INTDIR)\md5.obj" -@erase "$(INTDIR)\ip.obj" -@erase "$(INTDIR)\fe-auth.obj" -@erase "$(INTDIR)\fe-protocol2.obj" -@erase "$(INTDIR)\fe-protocol3.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 "$(OUTDIR)\$(OUTFILENAME).lib" -@erase "$(OUTDIR)\$(OUTFILENAME).dll" -@erase "$(OUTDIR)\libpq.res" -@erase "*.pch" -@erase "$(OUTDIR)\libpq.pch" -@erase "$(OUTDIR)\$(OUTFILENAME)dll.exp" -@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib" -@erase "$(INTDIR)\wchar.obj" -@erase "$(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) $< <<
pgsql-patches by date: