Add WIN32 support.
authorD'Arcy J.M. Cain
Thu, 15 Mar 2001 11:26:22 +0000 (11:26 +0000)
committerD'Arcy J.M. Cain
Thu, 15 Mar 2001 11:26:22 +0000 (11:26 +0000)
src/interfaces/python/pgmodule.c
src/interfaces/python/setup.py

index 99911a97f6acbbe8e14a9f1ea76d9d3c761c1a84..70f8c02f10e5e7f3a2eb5c2cdb22c74432c7d352 100644 (file)
@@ -91,6 +91,10 @@ const char *__movename[5] =
 #define DEFAULT_VARS   1       /* enables default variables use */
 #endif                         /* NO_DEF_VAR */
 
+#ifdef MS_WIN32
+#define NO_SNPRINTF 1
+#endif
+
 /* --------------------------------------------------------------------- */
 
 /* MODULE GLOBAL VARIABLES */
@@ -937,7 +941,12 @@ pgsource_print(pgsourceobject * self, FILE *fp, int flags)
 
 /* query type definition */
 staticforward PyTypeObject PgSourceType = {
+#ifndef MS_WIN32
    PyObject_HEAD_INIT(&PyType_Type)
+#else
+   PyObject_HEAD_INIT(NULL)
+#endif
+
    0,                              /* ob_size */
    "pgsourceobject",               /* tp_name */
    sizeof(pgsourceobject),         /* tp_basicsize */
@@ -3075,8 +3084,7 @@ static struct PyMethodDef pg_methods[] = {
 static char pg__doc__[] = "Python interface to PostgreSQL DB";
 
 /* Initialization function for the module */
-void init_pg(void);        /* Python doesn't prototype this */
-void
+DL_EXPORT(void)
 init_pg(void)
 {
    PyObject    *mod, *dict, *v;
index 76c6cd1101f4f3ebe51e6f4d4b276ccc4be2fdde..d1f15c6755936a3fdfdc0b0a73bff9f679105a18 100755 (executable)
@@ -1,12 +1,9 @@
 #!/usr/bin/env python
 
-include_dirs=['/usr/include/pgsql']
-library_dirs=['usr/lib/pgsql']
-optional_libs=['pq']
-
 # Setup script for the PyGreSQL version 3
 # created 2000/04 Mark Alexander 
 # tweaked 2000/05 Jeremy Hylton 
+# win32 support 2001/01 Gerhard Haering 
 
 # requires distutils; standard in Python 1.6, otherwise download from
 # http://www.python.org/sigs/distutils-sig/download.html
@@ -22,6 +19,20 @@ optional_libs=['pq']
 # on using distutils to install Python programs.
 
 from distutils.core import setup
+import sys
+
+if sys.platform == "win32":
+   # If you want to build from source; you must have built a win32 native libpq    # before and copied libpq.dll into the PyGreSQL root directory.
+   win_pg_build_root = 'd:/dev/pg/postgresql-7.0.2/'
+   include_dirs=[ win_pg_build_root + 'src/include', win_pg_build_root + '/src/include/libpq', win_pg_build_root + 'src', win_pg_build_root + 'src/interfaces/libpq' ]
+   library_dirs=[ win_pg_build_root + 'src/interfaces/libpq/Release' ]
+   optional_libs=[ 'libpqdll', 'wsock32', 'advapi32' ]
+   data_files = [ 'libpq.dll' ]
+else:
+   include_dirs=['/usr/include/pgsql']
+   library_dirs=['usr/lib/pgsql']
+   optional_libs=['pq']
+   data_files = []
 
 setup (name = "PyGreSQL",
     version = "3.1",
@@ -32,12 +43,13 @@ setup (name = "PyGreSQL",
     licence = "Python",
 
    py_modules = ['pg', 'pgdb'],
-    ext_modules = [ ('_pgmodule', {
+    ext_modules = [ Extension(
+       name='_pg',
         'sources': ['pgmodule.c'],
         'include_dirs': include_dirs,
         'library_dirs': library_dirs,
         'libraries': optional_libs
-        }
     )]
+   data_files = data_files
 )