mirror of https://github.com/postgres/postgres
Through some minor changes, I have been able to compile the libpq client libraries on the Win32 platform. Since the libpq communications part has been rewritten, this has become much easier. Enclosed is a patch that will allow at least Microsoft Visual C++ to compile libpq into both a static and a dynamic library. I will take a look at porting the psql frontend as well, but I figured it was a good idea to send in these patches first - so no major changes are done to the files before it gets applied (if it does). Regards, Magnus HaganderREL6_4
parent
d5283ccd3e
commit
c765b4b052
@ -0,0 +1,6 @@ |
||||
#define WIN32_LEAN_AND_MEAN |
||||
#include <windows.h> |
||||
BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, |
||||
LPVOID lpReserved ){ |
||||
return (TRUE); |
||||
} |
@ -0,0 +1,73 @@ |
||||
LIBRARY LIBPQ |
||||
DESCRIPTION "Postgres Client Access Library" |
||||
EXPORTS |
||||
PQconnectdb @ 1 |
||||
PQconndefaults @ 2 |
||||
PQsetdbLogin @ 3 |
||||
PQfinish @ 4 |
||||
PQreset @ 5 |
||||
PQdb @ 6 |
||||
PQuser @ 7 |
||||
PQhost @ 8 |
||||
PQoptions @ 9 |
||||
PQport @ 10 |
||||
PQtty @ 11 |
||||
PQstatus @ 12 |
||||
PQerrorMessage @ 13 |
||||
PQsocket @ 14 |
||||
PQtrace @ 15 |
||||
PQuntrace @ 16 |
||||
PQexec @ 17 |
||||
PQnotifies @ 18 |
||||
PQsendQuery @ 19 |
||||
PQgetResult @ 20 |
||||
PQisBusy @ 21 |
||||
PQconsumeInput @ 22 |
||||
PQrequestCancel @ 23 |
||||
PQgetline @ 24 |
||||
PQputline @ 25 |
||||
PQendcopy @ 26 |
||||
PQfn @ 27 |
||||
PQclearAsyncResult @ 28 |
||||
PQresultStatus @ 29 |
||||
PQntuples @ 30 |
||||
PQnfields @ 31 |
||||
PQfname @ 32 |
||||
PQfnumber @ 33 |
||||
PQftype @ 34 |
||||
PQfsize @ 35 |
||||
PQfmod @ 36 |
||||
PQcmdStatus @ 37 |
||||
PQoidStatus @ 38 |
||||
PQcmdTuples @ 39 |
||||
PQgetvalue @ 40 |
||||
PQgetlength @ 41 |
||||
PQgetisnull @ 42 |
||||
PQclear @ 43 |
||||
PQprint @ 44 |
||||
PQdisplayTuples @ 45 |
||||
PQprintTuples @ 46 |
||||
fe_getauthsvc @ 47 |
||||
fe_setauthsvc @ 48 |
||||
fe_getauthname @ 49 |
||||
pqGetc @ 50 |
||||
pqGets @ 51 |
||||
pqPuts @ 52 |
||||
pqGetnchar @ 53 |
||||
pqPutnchar @ 54 |
||||
pqGetInt @ 55 |
||||
pqPutInt @ 56 |
||||
pqReadData @ 57 |
||||
pqFlush @ 58 |
||||
pqWait @ 59 |
||||
lo_open @ 60 |
||||
lo_close @ 61 |
||||
lo_read @ 62 |
||||
lo_write @ 63 |
||||
lo_lseek @ 64 |
||||
lo_creat @ 65 |
||||
lo_tell @ 66 |
||||
lo_unlink @ 67 |
||||
lo_import @ 68 |
||||
lo_export @ 69 |
||||
|
@ -0,0 +1,35 @@ |
||||
#include <winsock.h> |
||||
|
||||
/*
|
||||
* strcasecmp() is not in Windows, stricmp is, though |
||||
*/ |
||||
#define strcasecmp(a,b) stricmp(a,b) |
||||
|
||||
|
||||
|
||||
#define NO_UNISTD_H |
||||
|
||||
|
||||
/*
|
||||
* Some compat functions
|
||||
*/ |
||||
#define open(a,b,c) _open(a,b,c) |
||||
#define read(a,b,c) _read(a,b,c) |
||||
#define write(a,b,c) _write(a,b,c) |
||||
|
||||
|
||||
/*
|
||||
* crypt not available (yet) |
||||
*/ |
||||
#define crypt(a,b) a |
||||
|
||||
|
||||
|
||||
/*
|
||||
* Parts of config.h that you get with autoconf on other systems |
||||
*/ |
||||
|
||||
/*
|
||||
* Default port to connect to |
||||
*/ |
||||
#define DEF_PGPORT "5432" |
@ -0,0 +1,112 @@ |
||||
# Makefile for Microsoft Visual C++ 5.0 (or compat)
|
||||
|
||||
# Will build a Win32 static library (non-debug) libpq.lib
|
||||
# and a Win32 dynamic library (non-debug) libpq.dll with import library libpqdll.lib
|
||||
|
||||
|
||||
!IF "$(OS)" == "Windows_NT" |
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
CPP=cl.exe
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Release
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "$(OUTDIR)\libpq.lib" "$(OUTDIR)\libpq.dll" |
||||
|
||||
CLEAN : |
||||
-@erase "$(INTDIR)\dllist.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 "$(OUTDIR)\libpqdll.obj"
|
||||
-@erase "$(INTDIR)\vc50.idb"
|
||||
-@erase "$(OUTDIR)\libpq.lib"
|
||||
-@erase "$(OUTDIR)\libpq.dll"
|
||||
|
||||
"$(OUTDIR)" : |
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP_PROJ=/nologo /ML /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D\
|
||||
"WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
|
||||
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
CPP_OBJS=.\Release/
|
||||
CPP_SBRS=.
|
||||
|
||||
LIB32=link.exe -lib
|
||||
LIB32_FLAGS=/nologo /out:"$(OUTDIR)\libpq.lib"
|
||||
LIB32_OBJS= \
|
||||
"$(INTDIR)\dllist.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"
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib wsock32.lib\
|
||||
odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
|
||||
/pdb:"$(OUTDIR)\libpqdll.pdb" /machine:I386 /out:"$(OUTDIR)\libpq.dll"\
|
||||
/implib:"$(OUTDIR)\libpqdll.lib" /def:libpqdll.def
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\libpqdll.obj" \
|
||||
"$(OUTDIR)\libpq.lib"
|
||||
|
||||
|
||||
"$(OUTDIR)\libpq.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) |
||||
$(LIB32) @<<
|
||||
$(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
|
||||
<< |
||||
|
||||
"$(OUTDIR)\libpq.dll" : "$(OUTDIR)" "$(OUTDIR)\libpqdll.obj" "$(INTDIR)\libpqdll.obj" |
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<< |
||||
|
||||
|
||||
"$(OUTDIR)\dllist.obj" : ..\..\backend\lib\dllist.c |
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) ..\..\backend\lib\dllist.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) $<
|
||||
<< |
@ -0,0 +1,17 @@ |
||||
# Makefile for Microsoft Visual C++ 5.0 (or compat)
|
||||
|
||||
# Top-file makefile for Win32 parts of postgresql.
|
||||
|
||||
# Note that most parts are not ported to Win32!
|
||||
|
||||
!IF "$(OS)" == "Windows_NT" |
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
ALL: |
||||
cd interfaces\libpq
|
||||
nmake /f win32.mak
|
||||
cd ..\..
|
||||
echo All Win32 parts have been built!
|
Loading…
Reference in new issue