summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2006-02-12 06:11:51 +0000
committerBruce Momjian2006-02-12 06:11:51 +0000
commiteb40d18236c94cce6b6b878f92752e40bfe8b6a4 (patch)
tree5e55dcf7f053663e1127fb25a49ce1020f14ddad
parent5e5b0578e6fa88a72216274e1f622481c49d7a1c (diff)
Add MSVC support for utility commands and pg_dump.
Hiroshi Saito
-rw-r--r--doc/src/sgml/install-win32.sgml16
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c3
-rw-r--r--src/bin/pg_dump/pg_backup_db.c3
-rw-r--r--src/bin/pg_dump/pg_backup_null.c2
-rw-r--r--src/bin/pg_dump/pg_backup_tar.c3
-rw-r--r--src/bin/pg_dump/pg_dump.c3
-rw-r--r--src/bin/pg_dump/pg_dumpall.c4
-rw-r--r--src/bin/pg_dump/pg_restore.c2
-rw-r--r--src/bin/pg_dump/win32.mak186
-rw-r--r--src/include/pg_config.h.win323
-rw-r--r--src/win32.mak8
11 files changed, 232 insertions, 1 deletions
diff --git a/doc/src/sgml/install-win32.sgml b/doc/src/sgml/install-win32.sgml
index d606280126..232d6d7bf8 100644
--- a/doc/src/sgml/install-win32.sgml
+++ b/doc/src/sgml/install-win32.sgml
@@ -83,13 +83,27 @@ $PostgreSQL$
</varlistentry>
<varlistentry>
+ <term><filename>bin\pg_config\Release\pg_config.exe</filename></term>
<term><filename>bin\psql\Release\psql.exe</filename></term>
+ <term><filename>bin\pg_dump\Release\pg_dump.exe</filename></term>
+ <term><filename>bin\pg_dump\Release\pg_dumpall.exe</filename></term>
+ <term><filename>bin\pg_dump\Release\pg_restore.exe</filename></term>
+ <term><filename>bin\scripts\Release\clusterdb.exe</filename></term>
+ <term><filename>bin\scripts\Release\createdb.exe</filename></term>
+ <term><filename>bin\scripts\Release\createuser.exe</filename></term>
+ <term><filename>bin\scripts\Release\createlang.exe</filename></term>
+ <term><filename>bin\scripts\Release\dropdb.exe</filename></term>
+ <term><filename>bin\scripts\Release\dropuser.exe</filename></term>
+ <term><filename>bin\scripts\Release\droplang.exe</filename></term>
+ <term><filename>bin\scripts\Release\vacuumdb.exe</filename></term>
+ <term><filename>bin\scripts\Release\reindexdb.exe</filename></term>
<listitem>
<para>
- The <productname>PostgreSQL</productname> interactive terminal
+ The <productname>PostgreSQL</productname> client applications and utilities.
</para>
</listitem>
</varlistentry>
+
</variablelist>
</para>
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 3ca70a977b..a95d8f695d 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -27,7 +27,10 @@
#include "dumputils.h"
#include <ctype.h>
+
+#ifndef WIN32_CLIENT_ONLY
#include <unistd.h>
+#endif
#ifdef WIN32
#include <io.h>
diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c
index 1b4f484bc2..b4b43ed9c9 100644
--- a/src/bin/pg_dump/pg_backup_db.c
+++ b/src/bin/pg_dump/pg_backup_db.c
@@ -15,7 +15,10 @@
#include "pg_backup_db.h"
#include "dumputils.h"
+#ifndef WIN32_CLIENT_ONLY
#include <unistd.h>
+#endif
+
#include <ctype.h>
#ifdef HAVE_TERMIOS_H
diff --git a/src/bin/pg_dump/pg_backup_null.c b/src/bin/pg_dump/pg_backup_null.c
index e90ab6c829..7044d514ac 100644
--- a/src/bin/pg_dump/pg_backup_null.c
+++ b/src/bin/pg_dump/pg_backup_null.c
@@ -25,7 +25,9 @@
#include "pg_backup.h"
#include "pg_backup_archiver.h"
+#ifndef WIN32_CLIENT_ONLY
#include <unistd.h> /* for dup */
+#endif
#include "libpq/libpq-fs.h"
diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c
index 59808f3cae..cec195f89d 100644
--- a/src/bin/pg_dump/pg_backup_tar.c
+++ b/src/bin/pg_dump/pg_backup_tar.c
@@ -27,7 +27,10 @@
#include <ctype.h>
#include <limits.h>
+
+#ifndef WIN32_CLIENT_ONLY
#include <unistd.h>
+#endif
static void _ArchiveEntry(ArchiveHandle *AH, TocEntry *te);
static void _StartData(ArchiveHandle *AH, TocEntry *te);
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 951e15b55b..f567914b4b 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -24,7 +24,10 @@
*/
#include "postgres.h"
+#ifndef WIN32_CLIENT_ONLY
#include <unistd.h>
+#endif
+
#include <ctype.h>
#ifdef ENABLE_NLS
#include <locale.h>
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index 267faeb750..c150f790d9 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -14,7 +14,11 @@
#include "postgres_fe.h"
#include <time.h>
+
+#ifndef WIN32_CLIENT_ONLY
#include <unistd.h>
+#endif
+
#ifdef ENABLE_NLS
#include <locale.h>
#endif
diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c
index 1304ec0814..8ac02ad441 100644
--- a/src/bin/pg_dump/pg_restore.c
+++ b/src/bin/pg_dump/pg_restore.c
@@ -53,7 +53,9 @@
#include <termios.h>
#endif
+#ifndef WIN32_CLIENT_ONLY
#include <unistd.h>
+#endif
#include "getopt_long.h"
diff --git a/src/bin/pg_dump/win32.mak b/src/bin/pg_dump/win32.mak
new file mode 100644
index 0000000000..653fefe32c
--- /dev/null
+++ b/src/bin/pg_dump/win32.mak
@@ -0,0 +1,186 @@
+# Makefile for Microsoft Visual C++ 5.0 (or compat)
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+CPP=cl.exe
+PERL=perl.exe
+FLEX=flex.exe
+YACC=bison.exe
+MV=move
+
+!IFDEF DEBUG
+OPT=/Od /Zi /MDd
+LOPT=/DEBUG
+DEBUGDEF=/D _DEBUG
+OUTDIR=.\Debug
+INTDIR=.\Debug
+!ELSE
+OPT=/O2 /MD
+LOPT=
+DEBUGDEF=/D NDEBUG
+OUTDIR=.\Release
+INTDIR=.\Release
+!ENDIF
+
+REFDOCDIR= ../../../doc/src/sgml/ref
+
+CPP_PROJ=/nologo $(OPT) /W3 /GX /D "WIN32" $(DEBUGDEF) /D "_CONSOLE" /D\
+ "_MBCS" /Fp"$(INTDIR)\pg_dump.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \
+ /I ..\..\include /I ..\..\interfaces\libpq /I ..\..\include\port\win32 /I ..\..\backend \
+ /D "HAVE_STRDUP" /D "FRONTEND"
+
+CPP_OBJS=$(INTDIR)/
+CPP_SBRS=.
+
+ALL : ..\..\backend\parser\parse.h "..\..\port\pg_config_paths.h" \
+ "$(OUTDIR)\pg_dump.exe" "$(OUTDIR)\pg_dumpall.exe" "$(OUTDIR)\pg_restore.exe"
+
+CLEAN :
+ -@erase "$(INTDIR)\pg_backup_archiver.obj"
+ -@erase "$(INTDIR)\pg_backup_db.obj"
+ -@erase "$(INTDIR)\pg_backup_custom.obj"
+ -@erase "$(INTDIR)\pg_backup_files.obj"
+ -@erase "$(INTDIR)\pg_backup_null.obj"
+ -@erase "$(INTDIR)\pg_backup_tar.obj"
+ -@erase "$(INTDIR)\dumputils.obj"
+ -@erase "$(INTDIR)\common.obj"
+ -@erase "$(INTDIR)\pg_dump_sort.obj"
+ -@erase "$(INTDIR)\keywords.obj"
+ -@erase "$(INTDIR)\exec.obj"
+ -@erase "$(INTDIR)\getopt.obj"
+ -@erase "$(INTDIR)\getopt_long.obj"
+ -@erase "$(INTDIR)\path.obj"
+ -@erase "$(INTDIR)\pgstrcasecmp.obj"
+ -@erase "$(INTDIR)\sprompt.obj"
+ -@erase "$(INTDIR)\pg_dump.pch"
+ -@erase "$(OUTDIR)\pg_dump.obj"
+ -@erase "$(OUTDIR)\pg_dump.exe"
+ -@erase "$(INTDIR)\pg_dumpall.obj"
+ -@erase "$(OUTDIR)\pg_dumpall.exe"
+ -@erase "$(INTDIR)\pg_restore.obj"
+ -@erase "$(OUTDIR)\pg_restore.exe"
+# -@erase "$(INTDIR)\..\..\port\pg_config_paths.h"
+# -@erase "$(INTDIR)\..\..\backend\parser\parse.h"
+# -@erase "$(INTDIR)\..\..\backend\parser\gram.c"
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shfolder.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:no
+LINK32_FLAGS_DMP= \
+ /pdb:"$(OUTDIR)\pg_dump.pdb" /machine:I386 $(LOPT) /out:"$(OUTDIR)\pg_dump.exe"
+LINK32_FLAGS_ALL= \
+ /pdb:"$(OUTDIR)\pg_dumpall.pdb" /machine:I386 $(LOPT) /out:"$(OUTDIR)\pg_dumpall.exe"
+LINK32_FLAGS_RES= \
+ /pdb:"$(OUTDIR)\pg_restore.pdb" /machine:I386 $(LOPT) /out:"$(OUTDIR)\pg_restore.exe"
+
+LINK32_OBJS= \
+ "$(INTDIR)\pg_backup_archiver.obj" \
+ "$(INTDIR)\pg_backup_db.obj" \
+ "$(INTDIR)\pg_backup_custom.obj" \
+ "$(INTDIR)\pg_backup_files.obj" \
+ "$(INTDIR)\pg_backup_null.obj" \
+ "$(INTDIR)\pg_backup_tar.obj" \
+ "$(INTDIR)\dumputils.obj" \
+ "$(INTDIR)\keywords.obj" \
+ "$(INTDIR)\exec.obj" \
+ "$(INTDIR)\getopt.obj" \
+ "$(INTDIR)\getopt_long.obj" \
+ "$(INTDIR)\path.obj" \
+ "$(INTDIR)\pgstrcasecmp.obj" \
+ "$(INTDIR)\sprompt.obj"
+
+LINK32_OBJS_DMP= \
+ "$(INTDIR)\common.obj" \
+ "$(INTDIR)\pg_dump_sort.obj" \
+ "$(INTDIR)\pg_dump.obj"
+LINK32_OBJS_RES= "$(INTDIR)\pg_restore.obj"
+LINK32_OBJS_ALL= "$(INTDIR)\pg_dumpall.obj"
+
+!IFDEF DEBUG
+LINK32_OBJS = $(LINK32_OBJS) "..\..\interfaces\libpq\Debug\libpqddll.lib"
+!ELSE
+LINK32_OBJS = $(LINK32_OBJS) "..\..\interfaces\libpq\Release\libpqdll.lib"
+!ENDIF
+
+"..\..\port\pg_config_paths.h":
+ echo #define PGBINDIR "" >$@
+ echo #define PGSHAREDIR "" >>$@
+ echo #define SYSCONFDIR "" >>$@
+ echo #define INCLUDEDIR "" >>$@
+ echo #define PKGINCLUDEDIR "" >>$@
+ echo #define INCLUDEDIRSERVER "" >>$@
+ echo #define LIBDIR "" >>$@
+ echo #define PKGLIBDIR "" >>$@
+ echo #define LOCALEDIR "" >>$@
+ echo #define DOCDIR "" >>$@
+ echo #define MANDIR "" >>$@
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(OUTDIR)\pg_dump.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32_OBJS_DMP)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_FLAGS_DMP) $(LINK32_OBJS) $(LINK32_OBJS_DMP)
+<<
+
+"$(OUTDIR)\pg_dumpall.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32_OBJS_ALL)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_FLAGS_ALL) $(LINK32_OBJS) $(LINK32_OBJS_ALL)
+<<
+
+"$(OUTDIR)\pg_restore.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32_OBJS_RES)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_FLAGS_RES) $(LINK32_OBJS) $(LINK32_OBJS_RES)
+<<
+
+"$(INTDIR)\keywords.obj" : ..\..\backend\parser\keywords.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\backend\parser\keywords.c
+<<
+
+"$(INTDIR)\exec.obj" : ..\..\port\exec.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\exec.c
+<<
+
+"$(INTDIR)\getopt.obj" : "$(INTDIR)" ..\..\port\getopt.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\getopt.c
+<<
+
+"$(INTDIR)\getopt_long.obj" : "$(INTDIR)" ..\..\port\getopt_long.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\getopt_long.c
+<<
+
+"$(INTDIR)\path.obj" : "$(INTDIR)" ..\..\port\path.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\path.c
+<<
+
+"$(INTDIR)\pgstrcasecmp.obj" : ..\..\port\pgstrcasecmp.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\pgstrcasecmp.c
+<<
+
+"$(INTDIR)\sprompt.obj" : "$(INTDIR)" ..\..\port\sprompt.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\sprompt.c
+<<
+
+..\..\backend\parser\parse.h : ..\..\backend\parser\gram.y
+ $(YACC) -y -d ..\..\backend\parser\gram.y
+ $(MV) ..\..\backend\parser\y.tab.h ..\..\backend\parser\parse.h
+ $(MV) ..\..\backend\parser\y.tab.c ..\..\backend\parser\gram.c
+
+.c{$(CPP_OBJS)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index ffa386c992..db578af374 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -23,6 +23,9 @@
#define HAVE_RANDOM
#endif
+#define INT64_FORMAT "%I64d"
+#define HAVE_DECL_VSNPRINTF 1
+
/* use _snprintf and _vsnprintf */
#define HAVE_DECL_SNPRINTF 1
#define snprintf _snprintf
diff --git a/src/win32.mak b/src/win32.mak
index 10ff63f33a..cdae352b86 100644
--- a/src/win32.mak
+++ b/src/win32.mak
@@ -18,6 +18,10 @@ ALL:
nmake /f win32.mak $(MAKEMACRO)
cd ..\..\bin\psql
nmake /f win32.mak $(MAKEMACRO)
+ cd ..\..\bin\pg_dump
+ nmake /f win32.mak $(MAKEMACRO)
+ cd ..\..\bin\scripts
+ nmake /f win32.mak $(MAKEMACRO)
cd ..\..\bin\pg_config
nmake /f win32.mak $(MAKEMACRO)
cd ..\..
@@ -28,6 +32,10 @@ CLEAN:
nmake /f win32.mak CLEAN
cd ..\..\bin\psql
nmake /f win32.mak CLEAN
+ cd ..\..\bin\pg_dump
+ nmake /f win32.mak CLEAN
+ cd ..\..\bin\scripts
+ nmake /f win32.mak CLEAN
cd ..\..\bin\pg_config
nmake /f win32.mak CLEAN
cd ..\..