| --- misc/Python-2.6.1/Include/pyport.h 2008-06-11 16:41:16.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Include/pyport.h 2009-03-29 23:28:13.859000000 +0900 |
| @@ -3,6 +3,30 @@ |
| |
| #include "pyconfig.h" /* include for defines */ |
| |
| +#if defined(__MINGW32__) |
| +#undef HAVE_FORKPTY |
| +#undef HAVE_OPENPTY |
| +#undef HAVE_DEV_PTMX |
| +#undef _POSIX_THREADS |
| +#undef HAVE_PTHREAD_H |
| +#define MS_WINDOWS |
| +#define MS_WIN32 |
| +#define Py_WIN_WIDE_FILENAMES |
| +#ifndef PYTHONPATH |
| +# define PYTHONPATH ".\\lib;.\\lib\\python" VERSION ";.\\lib\\python" VERSION "\\lib-dynload;.\\lib\\python" VERSION "\\plat-winmingw32;.\\lib\\python" VERSION "\\lib-tk" |
| +#endif |
| +#define NT_THREADS |
| +#define WITH_THREAD |
| +#define WINVER 0x0501 |
| +#ifdef socklen_t |
| +#undef socklen_t |
| +#endif |
| +#define HAVE_ADDRINFO |
| +#define HAVE_GETADDRINFO |
| +#define HAVE_GETNAMEINFO |
| +#define HAVE_GETPEERNAME |
| +#endif |
| + |
| #ifdef HAVE_STDINT_H |
| #include <stdint.h> |
| #endif |
| --- misc/Python-2.6.1/Lib/distutils/ccompiler.py 2008-02-22 03:18:37.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/distutils/ccompiler.py 2009-04-04 01:00:37.014250000 +0900 |
| @@ -1058,6 +1058,7 @@ |
| # on a cygwin built python we can use gcc like an ordinary UNIXish |
| # compiler |
| ('cygwin.*', 'unix'), |
| + ('winmingw*', 'unix'), |
| ('os2emx', 'emx'), |
| |
| # OS name mappings |
| --- misc/Python-2.6.1/Lib/distutils/command/build_ext.py 2008-08-17 13:16:04.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/distutils/command/build_ext.py 2009-04-04 01:05:32.311125000 +0900 |
| @@ -223,7 +223,7 @@ |
| |
| # for extensions under Cygwin and AtheOS Python's library directory must be |
| # appended to library_dirs |
| - if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos': |
| + if sys.platform[:6] == 'cygwin' or sys.platform[:8] == 'winmingw' or sys.platform[:6] == 'atheos': |
| if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): |
| # building third party extensions |
| self.library_dirs.append(os.path.join(sys.prefix, "lib", |
| @@ -729,7 +729,7 @@ |
| # don't extend ext.libraries, it may be shared with other |
| # extensions, it is a reference to the original list |
| return ext.libraries + [pythonlib] |
| - elif sys.platform[:6] == "cygwin": |
| + elif sys.platform[:6] == "cygwin" or sys.platform[:8] == "winmingw": |
| template = "python%d.%d" |
| pythonlib = (template % |
| (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) |
| --- misc/Python-2.6.1/Lib/distutils/command/install.py 2008-05-07 07:41:46.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/distutils/command/install.py 2009-04-05 23:15:56.540750000 +0900 |
| @@ -362,9 +362,10 @@ |
| |
| # Convert directories from Unix /-separated syntax to the local |
| # convention. |
| - self.convert_paths('lib', 'purelib', 'platlib', |
| - 'scripts', 'data', 'headers', |
| - 'userbase', 'usersite') |
| + if os.sep != '/': |
| + self.convert_paths('lib', 'purelib', 'platlib', |
| + 'scripts', 'data', 'headers', |
| + 'userbase', 'usersite') |
| |
| # Well, we're not actually fully completely finalized yet: we still |
| # have to deal with 'extra_path', which is the hack for allowing |
| @@ -376,7 +377,7 @@ |
| |
| # If a new root directory was supplied, make all the installation |
| # dirs relative to it. |
| - if self.root is not None: |
| + if self.root is not None and self.root != "": |
| self.change_roots('libbase', 'lib', 'purelib', 'platlib', |
| 'scripts', 'data', 'headers') |
| |
| @@ -515,7 +516,10 @@ |
| def convert_paths (self, *names): |
| for name in names: |
| attr = "install_" + name |
| - setattr(self, attr, convert_path(getattr(self, attr))) |
| + if self.root is None or self.root == "": |
| + setattr(self, attr, getattr(self, attr).replace('/', os.sep)) |
| + else: |
| + setattr(self, attr, convert_path(getattr(self, attr))) |
| |
| |
| def handle_extra_path (self): |
| --- misc/Python-2.6.1/Lib/distutils/spawn.py 2004-11-11 07:23:15.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/distutils/spawn.py 2009-03-22 19:38:32.935625000 +0900 |
| @@ -186,7 +186,7 @@ |
| path = os.environ['PATH'] |
| paths = string.split(path, os.pathsep) |
| (base, ext) = os.path.splitext(executable) |
| - if (sys.platform == 'win32' or os.name == 'os2') and (ext != '.exe'): |
| + if (sys.platform == 'win32' or sys.platform[:8] == "winmingw" or os.name == 'os2') and (ext != '.exe'): |
| executable = executable + '.exe' |
| if not os.path.isfile(executable): |
| for p in paths: |
| --- misc/Python-2.6.1/Lib/distutils/sysconfig.py 2008-06-05 21:58:24.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/distutils/sysconfig.py 2009-03-29 10:56:10.965750000 +0900 |
| @@ -381,6 +381,9 @@ |
| |
| raise DistutilsPlatformError(my_msg) |
| |
| + if sys.platform[:8] == "winmingw": |
| + g['SO'] = '.pyd' |
| + |
| # On MacOSX we need to check the setting of the environment variable |
| # MACOSX_DEPLOYMENT_TARGET: configure bases some choices on it so |
| # it needs to be compatible. |
| @@ -510,6 +513,9 @@ |
| global _config_vars |
| if _config_vars is None: |
| func = globals().get("_init_" + os.name) |
| + if sys.platform[:8] == "winmingw": |
| + func = globals().get("_init_posix") |
| + |
| if func: |
| func() |
| else: |
| --- misc/Python-2.6.1/Lib/distutils/unixccompiler.py 2008-07-16 22:24:06.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/distutils/unixccompiler.py 2009-04-04 01:11:18.420500000 +0900 |
| @@ -139,7 +139,7 @@ |
| shared_lib_extension = ".so" |
| dylib_lib_extension = ".dylib" |
| static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s" |
| - if sys.platform == "cygwin": |
| + if sys.platform == "cygwin" or sys.platform == "winmingw": |
| exe_extension = ".exe" |
| |
| def preprocess(self, source, |
| --- misc/Python-2.6.1/Lib/os.py 2008-09-02 14:36:11.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/os.py 2009-03-22 16:55:18.356375000 +0900 |
| @@ -38,7 +38,21 @@ |
| except AttributeError: |
| return [n for n in dir(module) if n[0] != '_'] |
| |
| -if 'posix' in _names: |
| +if 'winmingw32' in _names: |
| + name = 'nt' |
| + linesep = '\r\n' |
| + from posix import * |
| + try: |
| + from posix import _exit |
| + except ImportError: |
| + pass |
| + import ntpath as path |
| + |
| + import posix |
| + __all__.extend(_get_exports_list(posix)) |
| + del posix |
| + |
| +elif 'posix' in _names: |
| name = 'posix' |
| linesep = '\n' |
| from posix import * |
| --- misc/Python-2.6.1/Lib/socket.py 2008-08-08 13:27:28.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Lib/socket.py 2009-04-02 00:40:46.941750000 +0900 |
| @@ -148,7 +148,7 @@ |
| 'sendall', 'setblocking', |
| 'settimeout', 'gettimeout', 'shutdown') |
| |
| -if os.name == "nt": |
| +if os.name == "nt" and sys.platform[:8] != "winmingw": |
| _socketmethods = _socketmethods + ('ioctl',) |
| |
| if sys.platform == "riscos": |
| --- misc/Python-2.6.1/Makefile.pre.in 2008-10-22 01:48:37.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Makefile.pre.in 2009-04-08 23:38:27.989250000 +0900 |
| @@ -105,6 +105,16 @@ |
| LDSHARED= @LDSHARED@ |
| BLDSHARED= @BLDSHARED@ |
| DESTSHARED= $(BINLIBDEST)/lib-dynload |
| +ifeq (@MACHDEP@,winmingw32) |
| +DESTSHAREDFORRULES= $(shell cd $(DESTSHARED) && pwd || echo DESTSHARED) |
| +LIBPYTHONPATH= $(shell cd $(DESTDIR)$(LIBDEST) && cmd /c cd | sed -e s:\\\\:/:g) |
| +DESTPYTHONPATH= $(LIBPYTHONPATH);$(shell cd $(DESTDIR)$(DESTSHARED) && cmd /c cd | sed -e s:\\\\:/:g) |
| +LIBDESTPARAM= $(shell if test -z "$(DESTDIR)" ; then cd $(LIBDEST) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(LIBDEST) ; fi) |
| +PREFIXPARAM= $(shell if test -z "$(DESTDIR)" ; then cd $(prefix) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(prefix) ; fi) |
| +BINDIRPARAM= $(shell if test -z "$(DESTDIR)" ; then cd $(BINDIR) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(BINDIR) ; fi) |
| +DESTSHAREDPARAM= $(shell if test -z "$(DESTDIR)" ; then cd $(DESTSHARED) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(DESTSHARED) ; fi) |
| +DESTDIRPARAM= $(shell if test ! -z "$(DESTDIR)" ; then cd $(DESTDIR) && cmd /c | sed -e s:\\\\:/:g ; fi) |
| +endif |
| |
| # Executable suffix (.exe on Windows and Mac OS X) |
| EXE= @EXEEXT@ |
| @@ -187,7 +197,7 @@ |
| # Modules |
| MODULE_OBJS= \ |
| Modules/config.o \ |
| - Modules/getpath.o \ |
| + @GETPATH_OBJS@ \ |
| Modules/main.o \ |
| Modules/gcmodule.o |
| |
| @@ -507,6 +517,10 @@ |
| -DVPATH='"$(VPATH)"' \ |
| -o $@ $(srcdir)/Modules/getpath.c |
| |
| +PC/getpathp.o: $(srcdir)/PC/getpathp.c Makefile |
| + $(CC) -c $(PY_CFLAGS) -DVERSION='"$(VERSION)"' \ |
| + -o $@ $(srcdir)/PC/getpathp.c |
| + |
| Modules/python.o: $(srcdir)/Modules/python.c |
| $(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c |
| |
| @@ -544,6 +558,12 @@ |
| Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \ |
| $(srcdir)/Objects/unicodetype_db.h |
| |
| +Objects/exceptions.o: $(srcdir)/Objects/exceptions.c |
| + $(CC) -c $(PY_CFLAGS) -I$(srcdir)/PC -o $@ $(srcdir)/Objects/exceptions.c |
| + |
| +PC/import_nt.o: $(srcdir)/PC/import_nt.c |
| + $(CC) -c $(PY_CFLAGS) -I$(srcdir)/Python -o $@ $(srcdir)/PC/import_nt.c |
| + |
| STRINGLIB_HEADERS= \ |
| $(srcdir)/Include/bytes_methods.h \ |
| $(srcdir)/Objects/stringlib/count.h \ |
| @@ -727,7 +747,11 @@ |
| # Install shared libraries enabled by Setup |
| DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED) |
| |
| +ifeq (@MACHDEP@,winmingw32) |
| +oldsharedinstall: $(DESTSHAREDFORRULES) $(SHAREDMODS) |
| +else |
| oldsharedinstall: $(DESTSHARED) $(SHAREDMODS) |
| +endif |
| @for i in X $(SHAREDMODS); do \ |
| if test $$i != X; then \ |
| echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ |
| @@ -735,7 +759,11 @@ |
| fi; \ |
| done |
| |
| +ifeq (@MACHDEP@,winmingw32) |
| +$(DESTSHAREDFORRULES): |
| +else |
| $(DESTSHARED): |
| +endif |
| @for i in $(DESTDIRS); \ |
| do \ |
| if test ! -d $(DESTDIR)$$i; then \ |
| @@ -822,7 +850,11 @@ |
| multiprocessing multiprocessing/dummy \ |
| lib-old \ |
| curses $(MACHDEPS) |
| +ifeq (@MACHDEP@,winmingw32) |
| +libinstall: build_all $(srcdir)/Lib/$(PLATDIR) sharedinstall |
| +else |
| libinstall: build_all $(srcdir)/Lib/$(PLATDIR) |
| +endif |
| @for i in $(SCRIPTDIR) $(LIBDEST); \ |
| do \ |
| if test ! -d $(DESTDIR)$$i; then \ |
| @@ -878,6 +910,26 @@ |
| done; \ |
| done |
| $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt |
| +ifeq (@MACHDEP@,winmingw32) |
| + PYTHONPATH="$(DESTPYTHONPATH)" $(RUNSHARED) \ |
| + ./$(BUILDPYTHON) -Wi -tt $(LIBPYTHONPATH)/compileall.py \ |
| + -d $(LIBDESTPARAM) -f \ |
| + -x 'bad_coding|badsyntax|site-packages' $(LIBPYTHONPATH) |
| + PYTHONPATH="$(DESTPYTHONPATH)" $(RUNSHARED) \ |
| + ./$(BUILDPYTHON) -Wi -tt -O $(LIBPYTHONPATH)/compileall.py \ |
| + -d $(LIBDESTPARAM) -f \ |
| + -x 'bad_coding|badsyntax|site-packages' $(LIBPYTHONPATH) |
| + -PYTHONPATH="$(DESTPYTHONPATH)" $(RUNSHARED) \ |
| + ./$(BUILDPYTHON) -Wi -t $(LIBPYTHONPATH)/compileall.py \ |
| + -d $(LIBDESTPARAM)/site-packages -f \ |
| + -x badsyntax $(LIBPYTHONPATH)/site-packages |
| + -PYTHONPATH="$(DESTPYTHONPATH)" $(RUNSHARED) \ |
| + ./$(BUILDPYTHON) -Wi -t -O $(LIBPYTHONPATH)/compileall.py \ |
| + -d $(LIBDESTPARAM)/site-packages -f \ |
| + -x badsyntax $(LIBPYTHONPATH)/site-packages |
| + -PYTHONPATH="$(DESTPYTHONPATH)" $(RUNSHARED) \ |
| + ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" |
| +else |
| PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ |
| ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ |
| -d $(LIBDEST) -f \ |
| @@ -896,16 +948,19 @@ |
| -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages |
| -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ |
| ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" |
| +endif |
| |
| # Create the PLATDIR source directory, if one wasn't distributed.. |
| $(srcdir)/Lib/$(PLATDIR): |
| mkdir $(srcdir)/Lib/$(PLATDIR) |
| +ifneq (@MACHDEP@,winmingw32) |
| cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen |
| export PATH; PATH="`pwd`:$$PATH"; \ |
| export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \ |
| export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \ |
| export EXE; EXE="$(BUILDEXE)"; \ |
| cd $(srcdir)/Lib/$(PLATDIR); ./regen |
| +endif |
| |
| # Install the include files |
| INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) |
| @@ -992,12 +1047,21 @@ |
| |
| # Install the dynamically loadable modules |
| # This goes into $(exec_prefix) |
| +ifeq (@MACHDEP@,winmingw32) |
| +sharedinstall: $(DESTSHAREDFORRULES) |
| + $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ |
| + --prefix=$(PREFIXPARAM) \ |
| + --install-scripts=$(BINDIRPARAM) \ |
| + --install-platlib=$(DESTSHAREDPARAM) \ |
| + --root=$(DESTDIRPARAM) |
| +else |
| sharedinstall: |
| $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ |
| --prefix=$(prefix) \ |
| --install-scripts=$(BINDIR) \ |
| --install-platlib=$(DESTSHARED) \ |
| --root=/$(DESTDIR) |
| +endif |
| |
| # Here are a couple of targets for MacOSX again, to install a full |
| # framework-based Python. frameworkinstall installs everything, the |
| --- misc/Python-2.6.1/Modules/Setup.config.in 2002-12-13 02:37:50.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/Setup.config.in 2009-03-21 18:46:57.988875000 +0900 |
| @@ -9,5 +9,9 @@ |
| # The signal module |
| @USE_SIGNAL_MODULE@signal signalmodule.c |
| |
| +# The password module |
| +@USE_PASSWORD_MODULE@pwd pwdmodule.c # this is needed to find out the user's home dir |
| + # if $HOME is not set |
| + |
| # The rest of the modules previously listed in this file are built |
| # by the setup.py script in Python 2.1 and later. |
| --- misc/Python-2.6.1/Modules/Setup.dist 2008-11-27 19:15:12.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/Setup.dist 2009-03-21 18:46:53.785750000 +0900 |
| @@ -114,7 +114,7 @@ |
| |
| posix posixmodule.c # posix (UNIX) system calls |
| errno errnomodule.c # posix (UNIX) errno values |
| -pwd pwdmodule.c # this is needed to find out the user's home dir |
| +#pwd pwdmodule.c # this is needed to find out the user's home dir |
| # if $HOME is not set |
| _sre _sre.c # Fredrik Lundh's new regular expressions |
| _codecs _codecsmodule.c # access to the builtin codecs and codec registry |
| --- misc/Python-2.6.1/Modules/_ctypes/libffi/configure 2008-05-24 00:06:50.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/_ctypes/libffi/configure 2009-04-05 08:30:43.964750000 +0900 |
| @@ -22707,19 +22707,41 @@ |
| multilib_arg= |
| fi |
| |
| +case $host_os in |
| +mingw*) |
| + srcdir=`cd $srcdir && cmd /c cd | sed -e 's:\\\\:/:g'` |
| + ;; |
| +esac |
| + |
| ac_config_commands="$ac_config_commands include" |
| |
| ac_config_commands="$ac_config_commands src" |
| |
| |
| +case $host_os in |
| +mingw*) |
| +ac_config_commands="$ac_config_commands mingw_ffitarget.h" |
| + |
| +;; |
| +*) |
| ac_config_links="$ac_config_links include/ffitarget.h:src/$TARGETDIR/ffitarget.h" |
| |
| +;; |
| +esac |
| |
| ac_config_files="$ac_config_files include/ffi.h" |
| |
| |
| +case $host_os in |
| +mingw*) |
| +ac_config_commands="$ac_config_commands mingw_ffi_common.h" |
| + |
| +;; |
| +*) |
| ac_config_links="$ac_config_links include/ffi_common.h:include/ffi_common.h" |
| |
| +;; |
| +esac |
| |
| ac_config_files="$ac_config_files fficonfig.py" |
| |
| @@ -23506,8 +23528,10 @@ |
| "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; |
| "include") CONFIG_COMMANDS="$CONFIG_COMMANDS include" ;; |
| "src") CONFIG_COMMANDS="$CONFIG_COMMANDS src" ;; |
| + "mingw_ffitarget.h") CONFIG_COMMANDS="$CONFIG_COMMANDS mingw_ffitarget.h" ;; |
| "include/ffitarget.h") CONFIG_LINKS="$CONFIG_LINKS include/ffitarget.h:src/$TARGETDIR/ffitarget.h" ;; |
| "include/ffi.h") CONFIG_FILES="$CONFIG_FILES include/ffi.h" ;; |
| + "mingw_ffi_common.h") CONFIG_COMMANDS="$CONFIG_COMMANDS mingw_ffi_common.h" ;; |
| "include/ffi_common.h") CONFIG_LINKS="$CONFIG_LINKS include/ffi_common.h:include/ffi_common.h" ;; |
| "fficonfig.py") CONFIG_FILES="$CONFIG_FILES fficonfig.py" ;; |
| |
| @@ -24386,6 +24410,16 @@ |
| test -d src || mkdir src |
| test -d src/$TARGETDIR || mkdir src/$TARGETDIR |
| ;; |
| + "mingw_ffitarget.h":C) |
| +{ echo "$as_me:$LINENO: copying $srcdir/src/$TARGETDIR/ffitarget.h to include/ffitarget.h" >&5 |
| +echo "$as_me: copying $srcdir/src/$TARGETDIR/ffitarget.h to include/ffitarget.h" >&6;} |
| +cp -p $srcdir/src/$TARGETDIR/ffitarget.h include/ffitarget.h |
| + ;; |
| + "mingw_ffi_common.h":C) |
| +{ echo "$as_me:$LINENO: copying $srcdir/include/ffi_common.h to include/ffi_common.h" >&5 |
| +echo "$as_me: copying $srcdir/include/ffi_common.h to include/ffi_common.h" >&6;} |
| +cp -p $srcdir/include/ffi_common.h include/ffi_common.h |
| + ;; |
| |
| esac |
| done # for ac_tag |
| --- misc/Python-2.6.1/Modules/_ctypes/libffi/configure.ac 2008-05-24 00:06:50.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/_ctypes/libffi/configure.ac 2009-04-05 08:30:27.527250000 +0900 |
| @@ -358,17 +358,43 @@ |
| multilib_arg= |
| fi |
| |
| +case $host_os in |
| +mingw*) |
| + srcdir=`cd $srcdir && cmd /c cd | sed -e 's:\\\\:/:g'` |
| + ;; |
| +esac |
| + |
| AC_CONFIG_COMMANDS(include, [test -d include || mkdir include]) |
| AC_CONFIG_COMMANDS(src, [ |
| test -d src || mkdir src |
| test -d src/$TARGETDIR || mkdir src/$TARGETDIR |
| ], [TARGETDIR="$TARGETDIR"]) |
| |
| +case $host_os in |
| +mingw*) |
| +AC_CONFIG_COMMANDS(mingw_ffitarget.h, [ |
| +AC_MSG_NOTICE(copying $srcdir/src/$TARGETDIR/ffitarget.h to include/ffitarget.h) |
| +cp -p $srcdir/src/$TARGETDIR/ffitarget.h include/ffitarget.h |
| +]) |
| +;; |
| +*) |
| AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h) |
| +;; |
| +esac |
| |
| AC_CONFIG_FILES(include/ffi.h) |
| |
| +case $host_os in |
| +mingw*) |
| +AC_CONFIG_COMMANDS(mingw_ffi_common.h, [ |
| +AC_MSG_NOTICE(copying $srcdir/include/ffi_common.h to include/ffi_common.h) |
| +cp -p $srcdir/include/ffi_common.h include/ffi_common.h |
| +]) |
| +;; |
| +*) |
| AC_CONFIG_LINKS(include/ffi_common.h:include/ffi_common.h) |
| +;; |
| +esac |
| |
| AC_CONFIG_FILES(fficonfig.py) |
| |
| --- misc/Python-2.6.1/Modules/_ctypes/libffi/include/ffi.h.in 2008-04-05 01:01:54.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/_ctypes/libffi/include/ffi.h.in 2009-03-24 20:53:04.519875000 +0900 |
| @@ -350,7 +350,11 @@ |
| ffi_type *rtype, |
| ffi_type **atypes); |
| |
| +#ifdef MS_WIN32 |
| +int ffi_call(ffi_cif *cif, |
| +#else |
| void ffi_call(ffi_cif *cif, |
| +#endif |
| void (*fn)(void), |
| void *rvalue, |
| void **avalue); |
| --- misc/Python-2.6.1/Modules/config.c.in 2008-09-19 08:20:28.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/config.c.in 2009-03-22 16:28:09.418875000 +0900 |
| @@ -48,6 +48,9 @@ |
| {"__builtin__", NULL}, |
| {"sys", NULL}, |
| {"exceptions", NULL}, |
| +#ifdef __MINGW32__ |
| + {"winmingw32", NULL}, |
| +#endif |
| |
| /* This lives in gcmodule.c */ |
| {"gc", initgc}, |
| --- misc/Python-2.6.1/Modules/posixmodule.c 2008-10-10 03:06:58.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/posixmodule.c 2009-03-22 20:04:01.404375000 +0900 |
| @@ -131,6 +131,15 @@ |
| #define HAVE_FSYNC 1 |
| #define fsync _commit |
| #else |
| +#ifdef __MINGW32__ |
| +#define HAVE_SPAWNV 1 |
| +#define HAVE_EXECV 1 |
| +#define HAVE_GETCWD 1 |
| +#define HAVE_OPENDIR 1 |
| +#define HAVE_PIPE 1 |
| +#define HAVE_POPEN 1 |
| +#define HAVE_SYSTEM 1 |
| +#else |
| #if defined(PYOS_OS2) && defined(PYCC_GCC) || defined(__VMS) |
| /* Everything needed is defined in PC/os2emx/pyconfig.h or vms/pyconfig.h */ |
| #else /* all other compilers */ |
| @@ -156,6 +165,7 @@ |
| #define HAVE_WAIT 1 |
| #define HAVE_TTYNAME 1 |
| #endif /* PYOS_OS2 && PYCC_GCC && __VMS */ |
| +#endif /* __MINGW32__ */ |
| #endif /* _MSC_VER */ |
| #endif /* __BORLANDC__ */ |
| #endif /* ! __WATCOMC__ || __QNX__ */ |
| @@ -275,6 +285,14 @@ |
| #define pclose _pclose |
| #endif /* _MSC_VER */ |
| |
| +#ifdef __MINGW32__ |
| +#include "osdefs.h" |
| +#include <windows.h> |
| +#include <shellapi.h> /* for ShellExecute() */ |
| +#define popen _popen |
| +#define pclose _pclose |
| +#endif |
| + |
| #if defined(PYCC_VACPP) && defined(PYOS_OS2) |
| #include <io.h> |
| #endif /* OS2 */ |
| @@ -350,7 +368,7 @@ |
| */ |
| #include <crt_externs.h> |
| static char **environ; |
| -#elif !defined(_MSC_VER) && ( !defined(__WATCOMC__) || defined(__QNX__) ) |
| +#elif !defined(_MSC_VER) && !defined(__MINGW32__) && ( !defined(__WATCOMC__) || defined(__QNX__) ) |
| extern char **environ; |
| #endif /* !_MSC_VER */ |
| |
| @@ -775,7 +793,7 @@ |
| int st_ctime_nsec; |
| }; |
| |
| -static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */ |
| +static __int64 secs_between_epochs = 11644473600LL; /* Seconds between 1.1.1601 and 1.1.1970 */ |
| |
| static void |
| FILE_TIME_to_time_t_nsec(FILETIME *in_ptr, int *time_out, int* nsec_out) |
| @@ -8189,7 +8207,7 @@ |
| } |
| #endif |
| |
| -#ifdef MS_WINDOWS |
| +#if defined(MS_WINDOWS) && !defined(__MINGW32__) |
| |
| PyDoc_STRVAR(win32_urandom__doc__, |
| "urandom(n) -> str\n\n\ |
| @@ -8605,7 +8623,7 @@ |
| #ifdef HAVE_GETLOADAVG |
| {"getloadavg", posix_getloadavg, METH_NOARGS, posix_getloadavg__doc__}, |
| #endif |
| - #ifdef MS_WINDOWS |
| + #if defined(MS_WINDOWS) && !defined(__MINGW32__) |
| {"urandom", win32_urandom, METH_VARARGS, win32_urandom__doc__}, |
| #endif |
| #ifdef __VMS |
| --- misc/Python-2.6.1/Modules/socketmodule.c 2008-08-12 23:49:50.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Modules/socketmodule.c 2009-03-29 20:55:19.750375000 +0900 |
| @@ -312,7 +312,7 @@ |
| /* Do not include addrinfo.h for MSVC7 or greater. 'addrinfo' and |
| * EAI_* constants are defined in (the already included) ws2tcpip.h. |
| */ |
| -#else |
| +#elif !defined(__MINGW32__) |
| # include "addrinfo.h" |
| #endif |
| |
| --- misc/Python-2.6.1/PC/_winreg.c 2008-06-09 13:58:54.000000000 +0900 |
| +++ misc/build/Python-2.6.1/PC/_winreg.c 2009-04-12 18:25:01.944250000 +0900 |
| @@ -1630,6 +1630,9 @@ |
| } |
| |
| #define ADD_KEY(val) inskey(d, #val, val) |
| +#ifndef REG_LEGAL_CHANGE_FILTER |
| +#define REG_LEGAL_CHANGE_FILTER (REG_NOTIFY_CHANGE_NAME|REG_NOTIFY_CHANGE_ATTRIBUTES|REG_NOTIFY_CHANGE_LAST_SET|REG_NOTIFY_CHANGE_SECURITY) |
| +#endif |
| |
| PyMODINIT_FUNC init_winreg(void) |
| { |
| --- misc/Python-2.6.1/Python/dynload_win.c 2008-01-24 02:15:06.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Python/dynload_win.c 2009-03-21 22:05:59.683125000 +0900 |
| @@ -24,6 +24,7 @@ |
| /* Case insensitive string compare, to avoid any dependencies on particular |
| C RTL implementations */ |
| |
| +#ifndef __MINGW32__ |
| static int strcasecmp (char *string1, char *string2) |
| { |
| int first, second; |
| @@ -37,6 +38,7 @@ |
| |
| return (first - second); |
| } |
| +#endif |
| |
| |
| /* Function to return the name of the "python" DLL that the supplied module |
| --- misc/Python-2.6.1/Python/frozenmain.c 2002-07-01 00:26:10.000000000 +0900 |
| +++ misc/build/Python-2.6.1/Python/frozenmain.c 2009-03-22 15:36:03.993875000 +0900 |
| @@ -3,7 +3,7 @@ |
| |
| #include "Python.h" |
| |
| -#ifdef MS_WINDOWS |
| +#if defined(MS_WINDOWS) && !defined(__MINGW32__) |
| extern void PyWinFreeze_ExeInit(void); |
| extern void PyWinFreeze_ExeTerm(void); |
| extern int PyInitFrozenExtensions(void); |
| @@ -32,12 +32,12 @@ |
| setbuf(stderr, (char *)NULL); |
| } |
| |
| -#ifdef MS_WINDOWS |
| +#if defined(MS_WINDOWS) && !defined(__MINGW32__) |
| PyInitFrozenExtensions(); |
| #endif /* MS_WINDOWS */ |
| Py_SetProgramName(argv[0]); |
| Py_Initialize(); |
| -#ifdef MS_WINDOWS |
| +#if defined(MS_WINDOWS) && !defined(__MINGW32__) |
| PyWinFreeze_ExeInit(); |
| #endif |
| |
| @@ -60,7 +60,7 @@ |
| if (inspect && isatty((int)fileno(stdin))) |
| sts = PyRun_AnyFile(stdin, "<stdin>") != 0; |
| |
| -#ifdef MS_WINDOWS |
| +#if defined(MS_WINDOWS) && !defined(__MINGW32__) |
| PyWinFreeze_ExeTerm(); |
| #endif |
| Py_Finalize(); |
| --- misc/Python-2.6.1/configure 2008-11-17 02:57:10.000000000 +0900 |
| +++ misc/build/Python-2.6.1/configure 2009-04-11 16:57:56.149375000 +0900 |
| @@ -719,8 +719,10 @@ |
| USE_THREAD_MODULE |
| LDLAST |
| THREADOBJ |
| +USE_PASSWORD_MODULE |
| DLINCLDIR |
| DYNLOADFILE |
| +GETPATH_OBJS |
| MACHDEP_OBJS |
| TRUE |
| LIBOBJS |
| @@ -2201,6 +2203,13 @@ |
| LDFLAGS="$SGI_ABI $LDFLAGS" |
| MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'` |
| fi |
| +case $MACHDEP in |
| + *mingw*|*MINGW*|*MinGW*) |
| + MACHDEP="winmingw32" |
| + ac_sys_system=`uname -s` |
| + ac_sys_release=`uname -r` |
| + ;; |
| +esac |
| { echo "$as_me:$LINENO: result: $MACHDEP" >&5 |
| echo "${ECHO_T}$MACHDEP" >&6; } |
| |
| @@ -3995,7 +4004,7 @@ |
| if test -z "$enable_shared" |
| then |
| case $ac_sys_system in |
| - CYGWIN* | atheos*) |
| + CYGWIN* | MINGW* | atheos*) |
| enable_shared="yes";; |
| *) |
| enable_shared="no";; |
| @@ -4096,7 +4105,7 @@ |
| BeOS*) |
| LDLIBRARY='libpython$(VERSION).so' |
| ;; |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| LDLIBRARY='libpython$(VERSION).dll.a' |
| DLLLIBRARY='libpython$(VERSION).dll' |
| ;; |
| @@ -4142,7 +4151,7 @@ |
| esac |
| else # shared is disabled |
| case $ac_sys_system in |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| BLDLIBRARY='$(LIBRARY)' |
| LDLIBRARY='libpython$(VERSION).dll.a' |
| ;; |
| @@ -12645,6 +12654,10 @@ |
| _ACEOF |
| |
| |
| +ac_cv_sizeof_off_t=`echo $ac_cv_sizeof_off_t | tr -d '\015'` |
| +ac_cv_sizeof_long=`echo $ac_cv_sizeof_long | tr -d '\015'` |
| +ac_cv_sizeof_long_long=`echo $ac_cv_sizeof_long_long | tr -d '\015'` |
| +ac_cv_sizeof_short=`echo $ac_cv_sizeof_short | tr -d '\015'` |
| { echo "$as_me:$LINENO: checking whether to enable large file support" >&5 |
| echo $ECHO_N "checking whether to enable large file support... $ECHO_C" >&6; } |
| if test "$have_long_long" = yes -a \ |
| @@ -12985,7 +12998,7 @@ |
| *) SO=.sl;; |
| esac |
| ;; |
| - CYGWIN*) SO=.dll;; |
| + CYGWIN* | MINGW*) SO=.dll;; |
| *) SO=.so;; |
| esac |
| else |
| @@ -13113,7 +13126,7 @@ |
| fi;; |
| SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';; |
| Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";; |
| - CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";; |
| + CYGWIN* | MINGW*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base ${LDFLAGS}";; |
| atheos*) LDSHARED="gcc -shared";; |
| *) LDSHARED="ld";; |
| esac |
| @@ -13205,7 +13218,7 @@ |
| LINKFORSHARED="-Xlinker --export-dynamic" |
| fi;; |
| esac;; |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| if test $enable_shared = "no" |
| then |
| LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)' |
| @@ -13229,7 +13242,7 @@ |
| if test ! "$LIBRARY" = "$LDLIBRARY" |
| then |
| case $ac_sys_system in |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| # Cygwin needs CCSHARED when building extension DLLs |
| # but not when building the interpreter DLL. |
| CFLAGSFORSHARED='';; |
| @@ -15443,7 +15456,7 @@ |
| #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 |
| _ACEOF |
| case $ac_sys_system in |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| |
| cat >>confdefs.h <<\_ACEOF |
| #define HAVE_BROKEN_PTHREAD_SIGMASK 1 |
| @@ -15457,6 +15470,17 @@ |
| fi |
| |
| |
| +case $MACHDEP in |
| +winmingw*) |
| + THREADOBJ="Python/thread.o" |
| + USE_THREAD_MODULE="#" |
| + USE_PASSWORD_MODULE="#" |
| + ;; |
| +*) |
| + USE_PASSWORD_MODULE="" |
| + ;; |
| +esac |
| + |
| # Check for enable-ipv6 |
| |
| |
| @@ -16057,6 +16081,11 @@ |
| # Use dynload_next.c only on 10.2 and below, which don't have native dlopen() |
| Darwin/[0156]\..*) DYNLOADFILE="dynload_next.o";; |
| atheos*) DYNLOADFILE="dynload_atheos.o";; |
| + CYGWIN* | MINGW*) |
| + case $MACHDEP in |
| + winmingw*) DYNLOADFILE="dynload_win.o PC/import_nt.o PC/dl_nt.o";; |
| + esac |
| + ;; |
| *) |
| # use dynload_shlib.c and dlopen() if we have it; otherwise stub |
| # out any dynamic loading |
| @@ -16078,6 +16107,21 @@ |
| |
| fi |
| |
| + |
| +{ echo "$as_me:$LINENO: checking GETPATH_OBJS" >&5 |
| +echo $ECHO_N "checking GETPATH_OBJS... $ECHO_C" >&6; } |
| +if test -z "$GETPATH_OBJS" |
| +then |
| + case $MACHDEP in |
| + winmingw*) |
| + GETPATH_OBJS='PC/getpathp.o';; |
| + *) |
| + GETPATH_OBJS='Modules/getpath.o';; |
| + esac |
| +fi |
| +{ echo "$as_me:$LINENO: result: $GETPATH_OBJS" >&5 |
| +echo "${ECHO_T}$GETPATH_OBJS" >&6; } |
| + |
| # MACHDEP_OBJS can be set to platform-specific object files needed by Python |
| |
| |
| @@ -19952,6 +19996,112 @@ |
| |
| fi |
| |
| +case $MACHDEP in |
| +winmingw*) |
| +{ echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 |
| +echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6; } |
| +if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then |
| + echo $ECHO_N "(cached) $ECHO_C" >&6 |
| +else |
| + cat >conftest.$ac_ext <<_ACEOF |
| +/* confdefs.h. */ |
| +_ACEOF |
| +cat confdefs.h >>conftest.$ac_ext |
| +cat >>conftest.$ac_ext <<_ACEOF |
| +/* end confdefs.h. */ |
| +$ac_includes_default |
| +int |
| +main () |
| +{ |
| +static struct stat ac_aggr; |
| +if (ac_aggr.st_blocks) |
| +return 0; |
| + ; |
| + return 0; |
| +} |
| +_ACEOF |
| +rm -f conftest.$ac_objext |
| +if { (ac_try="$ac_compile" |
| +case "(($ac_try" in |
| + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; |
| + *) ac_try_echo=$ac_try;; |
| +esac |
| +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 |
| + (eval "$ac_compile") 2>conftest.er1 |
| + ac_status=$? |
| + grep -v '^ *+' conftest.er1 >conftest.err |
| + rm -f conftest.er1 |
| + cat conftest.err >&5 |
| + echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
| + (exit $ac_status); } && { |
| + test -z "$ac_c_werror_flag" || |
| + test ! -s conftest.err |
| + } && test -s conftest.$ac_objext; then |
| + ac_cv_member_struct_stat_st_blocks=yes |
| +else |
| + echo "$as_me: failed program was:" >&5 |
| +sed 's/^/| /' conftest.$ac_ext >&5 |
| + |
| + cat >conftest.$ac_ext <<_ACEOF |
| +/* confdefs.h. */ |
| +_ACEOF |
| +cat confdefs.h >>conftest.$ac_ext |
| +cat >>conftest.$ac_ext <<_ACEOF |
| +/* end confdefs.h. */ |
| +$ac_includes_default |
| +int |
| +main () |
| +{ |
| +static struct stat ac_aggr; |
| +if (sizeof ac_aggr.st_blocks) |
| +return 0; |
| + ; |
| + return 0; |
| +} |
| +_ACEOF |
| +rm -f conftest.$ac_objext |
| +if { (ac_try="$ac_compile" |
| +case "(($ac_try" in |
| + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; |
| + *) ac_try_echo=$ac_try;; |
| +esac |
| +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 |
| + (eval "$ac_compile") 2>conftest.er1 |
| + ac_status=$? |
| + grep -v '^ *+' conftest.er1 >conftest.err |
| + rm -f conftest.er1 |
| + cat conftest.err >&5 |
| + echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
| + (exit $ac_status); } && { |
| + test -z "$ac_c_werror_flag" || |
| + test ! -s conftest.err |
| + } && test -s conftest.$ac_objext; then |
| + ac_cv_member_struct_stat_st_blocks=yes |
| +else |
| + echo "$as_me: failed program was:" >&5 |
| +sed 's/^/| /' conftest.$ac_ext >&5 |
| + |
| + ac_cv_member_struct_stat_st_blocks=no |
| +fi |
| + |
| +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| +fi |
| + |
| +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| +fi |
| +{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 |
| +echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6; } |
| +if test $ac_cv_member_struct_stat_st_blocks = yes; then |
| + |
| +cat >>confdefs.h <<_ACEOF |
| +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 |
| +_ACEOF |
| + |
| + |
| +fi |
| + |
| +;; |
| +*) |
| { echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 |
| echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6; } |
| if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then |
| @@ -20066,6 +20216,8 @@ |
| fi |
| |
| |
| +;; |
| +esac |
| |
| { echo "$as_me:$LINENO: checking for time.h that defines altzone" >&5 |
| echo $ECHO_N "checking for time.h that defines altzone... $ECHO_C" >&6; } |
| @@ -22530,6 +22682,7 @@ |
| |
| |
| |
| +ac_cv_sizeof_wchar_t=`echo $ac_cv_sizeof_wchar_t | tr -d '\015'` |
| |
| if test "$enable_unicode" = "no" |
| then |
| @@ -25368,8 +25521,10 @@ |
| USE_THREAD_MODULE!$USE_THREAD_MODULE$ac_delim |
| LDLAST!$LDLAST$ac_delim |
| THREADOBJ!$THREADOBJ$ac_delim |
| +USE_PASSWORD_MODULE!$USE_PASSWORD_MODULE$ac_delim |
| DLINCLDIR!$DLINCLDIR$ac_delim |
| DYNLOADFILE!$DYNLOADFILE$ac_delim |
| +GETPATH_OBJS!$GETPATH_OBJS$ac_delim |
| MACHDEP_OBJS!$MACHDEP_OBJS$ac_delim |
| TRUE!$TRUE$ac_delim |
| LIBOBJS!$LIBOBJS$ac_delim |
| @@ -25386,7 +25541,7 @@ |
| LTLIBOBJS!$LTLIBOBJS$ac_delim |
| _ACEOF |
| |
| - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then |
| + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 24; then |
| break |
| elif $ac_last_try; then |
| { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 |
| --- misc/Python-2.6.1/configure.in 2008-11-16 17:02:56.000000000 +0900 |
| +++ misc/build/Python-2.6.1/configure.in 2009-04-11 16:56:07.258750000 +0900 |
| @@ -359,6 +359,13 @@ |
| LDFLAGS="$SGI_ABI $LDFLAGS" |
| MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'` |
| fi |
| +case $MACHDEP in |
| + *mingw*|*MINGW*|*MinGW*) |
| + MACHDEP="winmingw32" |
| + ac_sys_system=`uname -s` |
| + ac_sys_release=`uname -r` |
| + ;; |
| +esac |
| AC_MSG_RESULT($MACHDEP) |
| |
| # And add extra plat-mac for darwin |
| @@ -643,7 +650,7 @@ |
| if test -z "$enable_shared" |
| then |
| case $ac_sys_system in |
| - CYGWIN* | atheos*) |
| + CYGWIN* | MINGW* | atheos*) |
| enable_shared="yes";; |
| *) |
| enable_shared="no";; |
| @@ -694,7 +701,7 @@ |
| BeOS*) |
| LDLIBRARY='libpython$(VERSION).so' |
| ;; |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| LDLIBRARY='libpython$(VERSION).dll.a' |
| DLLLIBRARY='libpython$(VERSION).dll' |
| ;; |
| @@ -740,7 +747,7 @@ |
| esac |
| else # shared is disabled |
| case $ac_sys_system in |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| BLDLIBRARY='$(LIBRARY)' |
| LDLIBRARY='libpython$(VERSION).dll.a' |
| ;; |
| @@ -1402,6 +1409,10 @@ |
| AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t, |
| [The number of bytes in an off_t.]) |
| |
| +ac_cv_sizeof_off_t=`echo $ac_cv_sizeof_off_t | tr -d '\015'` |
| +ac_cv_sizeof_long=`echo $ac_cv_sizeof_long | tr -d '\015'` |
| +ac_cv_sizeof_long_long=`echo $ac_cv_sizeof_long_long | tr -d '\015'` |
| +ac_cv_sizeof_short=`echo $ac_cv_sizeof_short | tr -d '\015'` |
| AC_MSG_CHECKING(whether to enable large file support) |
| if test "$have_long_long" = yes -a \ |
| "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \ |
| @@ -1581,7 +1592,7 @@ |
| *) SO=.sl;; |
| esac |
| ;; |
| - CYGWIN*) SO=.dll;; |
| + CYGWIN* | MINGW*) SO=.dll;; |
| *) SO=.so;; |
| esac |
| else |
| @@ -1703,7 +1714,7 @@ |
| fi;; |
| SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';; |
| Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";; |
| - CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";; |
| + CYGWIN* | MINGW*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base ${LDFLAGS}";; |
| atheos*) LDSHARED="gcc -shared";; |
| *) LDSHARED="ld";; |
| esac |
| @@ -1791,7 +1802,7 @@ |
| LINKFORSHARED="-Xlinker --export-dynamic" |
| fi;; |
| esac;; |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| if test $enable_shared = "no" |
| then |
| LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)' |
| @@ -1813,7 +1824,7 @@ |
| if test ! "$LIBRARY" = "$LDLIBRARY" |
| then |
| case $ac_sys_system in |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| # Cygwin needs CCSHARED when building extension DLLs |
| # but not when building the interpreter DLL. |
| CFLAGSFORSHARED='';; |
| @@ -2149,13 +2160,24 @@ |
| fi |
| AC_CHECK_FUNCS(pthread_sigmask, |
| [case $ac_sys_system in |
| - CYGWIN*) |
| + CYGWIN* | MINGW*) |
| AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1, |
| [Define if pthread_sigmask() does not work on your system.]) |
| ;; |
| esac]) |
| fi |
| |
| +AC_SUBST(USE_PASSWORD_MODULE) |
| +case $MACHDEP in |
| +winmingw*) |
| + THREADOBJ="Python/thread.o" |
| + USE_THREAD_MODULE="#" |
| + USE_PASSWORD_MODULE="#" |
| + ;; |
| +*) |
| + USE_PASSWORD_MODULE="" |
| + ;; |
| +esac |
| |
| # Check for enable-ipv6 |
| AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) |
| @@ -2415,6 +2437,11 @@ |
| # Use dynload_next.c only on 10.2 and below, which don't have native dlopen() |
| Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";; |
| atheos*) DYNLOADFILE="dynload_atheos.o";; |
| + CYGWIN* | MINGW*) |
| + case $MACHDEP in |
| + winmingw*) DYNLOADFILE="dynload_win.o PC/import_nt.o PC/dl_nt.o";; |
| + esac |
| + ;; |
| *) |
| # use dynload_shlib.c and dlopen() if we have it; otherwise stub |
| # out any dynamic loading |
| @@ -2432,6 +2459,19 @@ |
| [Defined when any dynamic module loading is enabled.]) |
| fi |
| |
| +AC_SUBST(GETPATH_OBJS) |
| +AC_MSG_CHECKING(GETPATH_OBJS) |
| +if test -z "$GETPATH_OBJS" |
| +then |
| + case $MACHDEP in |
| + winmingw*) |
| + GETPATH_OBJS='PC/getpathp.o';; |
| + *) |
| + GETPATH_OBJS='Modules/getpath.o';; |
| + esac |
| +fi |
| +AC_MSG_RESULT($GETPATH_OBJS) |
| + |
| # MACHDEP_OBJS can be set to platform-specific object files needed by Python |
| |
| AC_SUBST(MACHDEP_OBJS) |
| @@ -2862,7 +2902,14 @@ |
| AC_CHECK_MEMBERS([struct stat.st_flags]) |
| AC_CHECK_MEMBERS([struct stat.st_gen]) |
| AC_CHECK_MEMBERS([struct stat.st_birthtime]) |
| +case $MACHDEP in |
| +winmingw*) |
| +AC_CHECK_MEMBERS([struct stat.st_blocks]) |
| +;; |
| +*) |
| AC_STRUCT_ST_BLOCKS |
| +;; |
| +esac |
| |
| AC_MSG_CHECKING(for time.h that defines altzone) |
| AC_CACHE_VAL(ac_cv_header_time_altzone, |
| @@ -3247,6 +3294,7 @@ |
| AH_TEMPLATE(PY_UNICODE_TYPE, |
| [Define as the integral type used for Unicode representation.]) |
| |
| +ac_cv_sizeof_wchar_t=`echo $ac_cv_sizeof_wchar_t | tr -d '\015'` |
| AC_SUBST(UNICODE_OBJS) |
| if test "$enable_unicode" = "no" |
| then |
| --- misc/Python-2.6.1/setup.py 2008-11-05 05:43:31.000000000 +0900 |
| +++ misc/build/Python-2.6.1/setup.py 2009-04-12 16:02:22.654125000 +0900 |
| @@ -234,6 +234,18 @@ |
| if not self.configure_ctypes(ext): |
| return |
| |
| + if self.get_platform() == "winmingw": |
| + if ext.name == '_ctypes_test': |
| + ext.libraries.append('oleaut32') |
| + elif ext.name == 'select': |
| + ext.libraries.append('ws2_32') |
| + elif ext.name == '_socket': |
| + ext.libraries.append('ws2_32') |
| + if ext.name == '_ctypes': |
| + ext.libraries.append('uuid') |
| + ext.libraries.append('oleaut32') |
| + ext.libraries.append('ole32') |
| + |
| try: |
| build_ext.build_extension(self, ext) |
| except (CCompilerError, DistutilsError), why: |
| @@ -263,7 +275,7 @@ |
| |
| # Workaround for Cygwin: Cygwin currently has fork issues when many |
| # modules have been imported |
| - if self.get_platform() == 'cygwin': |
| + if self.get_platform() in ['cygwin', 'winmingw']: |
| self.announce('WARNING: skipping import check for Cygwin-based "%s"' |
| % ext.name) |
| return |
| @@ -303,7 +315,7 @@ |
| |
| def get_platform(self): |
| # Get value of sys.platform |
| - for platform in ['cygwin', 'beos', 'darwin', 'atheos', 'osf1']: |
| + for platform in ['cygwin', 'winmingw', 'beos', 'darwin', 'atheos', 'osf1']: |
| if sys.platform.startswith(platform): |
| return platform |
| return sys.platform |
| @@ -1009,7 +1021,7 @@ |
| missing.append('bsddb185') |
| |
| # The standard Unix dbm module: |
| - if platform not in ['cygwin']: |
| + if platform not in ['cygwin', 'winmingw']: |
| if find_file("ndbm.h", inc_dirs, []) is not None: |
| # Some systems have -lndbm, others don't |
| if self.compiler.find_library_file(lib_dirs, 'ndbm'): |
| @@ -1053,7 +1065,7 @@ |
| missing.append('resource') |
| |
| # Sun yellow pages. Some systems have the functions in libc. |
| - if platform not in ['cygwin', 'atheos', 'qnx6']: |
| + if platform not in ['cygwin', 'winmingw', 'atheos', 'qnx6']: |
| if (self.compiler.find_library_file(lib_dirs, 'nsl')): |
| libs = ['nsl'] |
| else: |
| @@ -1252,14 +1264,14 @@ |
| ) |
| libraries = [] |
| |
| - elif platform == 'cygwin': # Cygwin |
| + elif platform in ['cygwin', 'winmingw']: # Cygwin |
| macros = dict( |
| HAVE_SEM_OPEN=1, |
| HAVE_SEM_TIMEDWAIT=1, |
| HAVE_FD_TRANSFER=0, |
| HAVE_BROKEN_SEM_UNLINK=1 |
| ) |
| - libraries = [] |
| + libraries = ['ws2_32'] |
| |
| elif platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'): |
| # FreeBSD's P1003.1b semaphore support is very experimental |
| @@ -1287,7 +1299,7 @@ |
| ) |
| libraries = ['rt'] |
| |
| - if platform == 'win32': |
| + if platform in ['win32', 'winmingw']: |
| multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', |
| '_multiprocessing/semaphore.c', |
| '_multiprocessing/pipe_connection.c', |
| @@ -1305,6 +1317,7 @@ |
| |
| exts.append ( Extension('_multiprocessing', multiprocessing_srcs, |
| define_macros=macros.items(), |
| + libraries=libraries, |
| include_dirs=["Modules/_multiprocessing"])) |
| # End multiprocessing |
| |
| @@ -1423,6 +1436,10 @@ |
| '-framework', 'Carbon']) ) |
| |
| |
| + if platform == 'winmingw': |
| + exts.append( Extension('_winreg', ['../PC/_winreg.c']) ) |
| + exts.append( Extension('winsound', ['../PC/winsound.c'], libraries = ['winmm']) ) |
| + |
| self.extensions.extend(exts) |
| |
| # Call the method for detecting whether _tkinter can be compiled |
| @@ -1575,7 +1592,7 @@ |
| added_lib_dirs.append('/usr/X11/lib') |
| |
| # If Cygwin, then verify that X is installed before proceeding |
| - if platform == 'cygwin': |
| + if platform in ['cygwin', 'winmingw']: |
| x11_inc = find_file('X11/Xlib.h', [], include_dirs) |
| if x11_inc is None: |
| return |
| @@ -1598,7 +1615,7 @@ |
| libs.append('ld') |
| |
| # Finally, link with the X11 libraries (not appropriate on cygwin) |
| - if platform != "cygwin": |
| + if not platform in ["cygwin", "winmingw"]: |
| libs.append('X11') |
| |
| ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], |
| @@ -1669,6 +1686,8 @@ |
| from distutils.dir_util import mkpath |
| mkpath(ffi_builddir) |
| config_args = [] |
| + if self.get_platform() == "winmingw": |
| + config_args.append(" --build=mingw32") |
| |
| # Pass empty CFLAGS because we'll just append the resulting |
| # CFLAGS to Python's; -g or -O2 is to be avoided. |