summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.nt4
-rw-r--r--README.win3249
-rw-r--r--config/Makefile.mingw18
-rw-r--r--win32caml/Makefile2
4 files changed, 48 insertions, 25 deletions
diff --git a/Makefile.nt b/Makefile.nt
index cf9a4bb28..870374566 100644
--- a/Makefile.nt
+++ b/Makefile.nt
@@ -110,9 +110,9 @@ OPTOBJS=$(OPTUTILS) $(PARSING) $(TYPING) $(COMP) $(ASMCOMP) $(OPTDRIVER)
EXPUNGEOBJS=utils/misc.cmo utils/tbl.cmo \
utils/config.cmo utils/clflags.cmo \
typing/ident.cmo typing/path.cmo typing/types.cmo typing/btype.cmo \
+ utils/warnings.cmo parsing/location.cmo \
typing/predef.cmo bytecomp/runtimedef.cmo bytecomp/bytesections.cmo \
- bytecomp/dll.cmo \
- bytecomp/symtable.cmo toplevel/expunge.cmo
+ bytecomp/dll.cmo bytecomp/meta.cmo bytecomp/symtable.cmo toplevel/expunge.cmo
PERVASIVES=$(STDLIB_MODULES) topdirs toploop outcometree
diff --git a/README.win32 b/README.win32
index 9a493d96a..c15492b63 100644
--- a/README.win32
+++ b/README.win32
@@ -3,7 +3,9 @@
There are no less than four ports of OCaml for MS Windows available:
- a native Win32 port, built with the Microsoft development tools;
- - a native Win32 port, built with the Cygwin/MinGW development tools;
+ - a native Win32 port, built with the 32-bit version of the gcc
+ compiler from the mingw-w64 project, packaged in Cygwin
+ (under the name mingw64-i686);
- a port consisting of the Unix sources compiled under the Cygwin
Unix-like environment for Windows;
- a native Win64 port (64-bit Windows), built with the Microsoft
@@ -183,10 +185,6 @@ by Jacob Navia, then significantly improved by Christopher A. Watford.
The native Win32 port built with Mingw
--------------------------------------
-NOTE: Due to changes in cygwin's compilers, this port is not available
-in OCaml 3.12.1. A patch will be made available soon after the release
-of 3.12.1.
-
REQUIREMENTS:
This port runs under MS Windows Vista, XP, and 2000.
@@ -202,11 +200,27 @@ and the flexdll tool, available at
http://alain.frisch.fr/flexdll.html
You will need to install at least the following Cygwin packages (use
the Setup tool from Cygwin):
-binutils, gcc-core, gcc-mingw-core, mingw-runtime, w32api.
-Do *not* install the Mingw/MSYS development tools from www.mingw.org:
-these are not compatible with this Caml port (@responsefile not
-recognized on the command line).
+ mingw64-i686-binutils
+ mingw64-i686-gcc
+ mingw64-i686-runtime
+
+
+NOTE:
+ - There is another 32-bit gcc compiler, from the MinGW.org
+ project, packaged in Cygwin under the name mingw-gcc.
+ It is not currently supported by flexdll and OCaml.
+
+ - The standard gcc compiler shipped with Cygwin used to
+ support a "-mno-cygwin" option, which turned the compiler
+ into a mingw compiler. This option was used
+ by previous versions of flexdll and OCaml, but it is no
+ longer available in recent version, hence the switch
+ to another toolchain packaged in Cygwin.
+
+ - The standalone mingw toolchain from the MinGW-w64 project
+ (http://mingw-w64.sourceforge.net/) is not supported.
+ Please use the version packaged in Cygwin instead.
The LablTk GUI requires Tcl/Tk 8.5. Windows binaries are available
as part of the ActiveTCL distribution at
@@ -235,14 +249,19 @@ RECOMPILATION FROM THE SOURCES:
You will need the following software components to perform the recompilation:
- Windows NT, 2000, XP, or Vista.
- Cygwin: http://sourceware.cygnus.com/cygwin/
- Install at least the following packages: binutils, diffutils,
- gcc-core, gcc-mingw-core, make, mingw-runtime, ncurses, w32api.
+ Install at least the following packages:
+ mingw64-i686-binutils
+ mingw64-i686-gcc
+ mingw64-i686-runtime
+ diffutils
+ make
+ ncurses
- TCL/TK version 8.5 (see above).
- The flexdll tool (see above).
-Do *not* install the standalone distribution of MinGW, nor the
-companion MSYS tools: these have problems with long command lines.
-Instead, use the version of MinGW provided by Cygwin.
+The standalone mingw toolchain from the MinGW-w64 project
+(http://mingw-w64.sourceforge.net/) is not supported. Please use the
+version packaged in Cygwin instead.
Start a Cygwin shell and unpack the source distribution
(ocaml-X.YY.Z.tar.gz) with "tar xzf". Change to the top-level
@@ -345,7 +364,7 @@ THIRD-PARTY SOFTWARE:
http://www.microsoft.com/downloads/en/default.aspx
under the name "Microsoft Windows 7 SDK".
-[2] flexdll version 0.23 or later.
+[2] flexdll version 0.27 or later.
Can be downloaded from http://alain.frisch.fr/flexdll.html
diff --git a/config/Makefile.mingw b/config/Makefile.mingw
index 9e79bc954..22da3c16b 100644
--- a/config/Makefile.mingw
+++ b/config/Makefile.mingw
@@ -37,6 +37,10 @@ MANDIR=$(PREFIX)/man
########## Toolchain and OS dependencies
TOOLCHAIN=mingw
+
+### Toolchain prefix
+TOOLPREF=i686-w64-mingw32-
+
CCOMPTYPE=cc
O=o
A=a
@@ -61,7 +65,7 @@ SHAREDCCCOMPOPTS=
MKSHAREDLIBRPATH=
NATIVECCPROFOPTS=
NATIVECCRPATH=
-ASM=as
+ASM=$(TOOLPREF)as
ASPP=gcc
ASPPPROFFLAGS=
PROFILING=noprof
@@ -77,7 +81,7 @@ CMXS=cmxs
########## Configuration for the bytecode compiler
### Which C compiler to use for the bytecode interpreter.
-BYTECC=gcc -mno-cygwin
+BYTECC=$(TOOLPREF)gcc
### Additional compile-time options for $(BYTECC). (For static linking.)
BYTECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused
@@ -104,16 +108,16 @@ MKEXE=$(FLEXLINK) -exe
MKMAINDLL=$(FLEXLINK) -maindll
### How to build a static library
-MKLIB=rm -f $(1); ar rcs $(1) $(2)
-#ml let mklib out files opts = Printf.sprintf "rm -f %s && ar rcs %s %s %s" out opts out files;;
+MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1)
+#ml let mklib out files opts = Printf.sprintf "rm -f %s && %sar rcs %s %s %s" out toolpref opts out files;;
### Canonicalize the name of a system library
SYSLIB=-l$(1)
#ml let syslib x = "-l"^x;;
### The ranlib command
-RANLIB=ranlib
-RANLIBCMD=ranlib
+RANLIB=$(TOOLPREF)ranlib
+RANLIBCMD=$(TOOLPREF)ranlib
############# Configuration for the native-code compiler
@@ -136,7 +140,7 @@ NATIVECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused
NATIVECCLINKOPTS=
### Build partially-linked object file
-PACKLD=ld -r $(NATIVECCLINKOPTS) -o #there must be a space after this '-o'
+PACKLD=$(TOOLPREF)ld -r $(NATIVECCLINKOPTS) -o #there must be a space after this '-o'
############# Configuration for the contributed libraries
diff --git a/win32caml/Makefile b/win32caml/Makefile
index 153c9a068..01f0a41cf 100644
--- a/win32caml/Makefile
+++ b/win32caml/Makefile
@@ -40,7 +40,7 @@ endif
rm -f ocaml.res
endif
ifeq ($(TOOLCHAIN),mingw)
- windres -i ocaml.rc -o $@
+ $(TOOLPREF)windres -i ocaml.rc -o $@
endif
$(OBJS): inria.h inriares.h history.h editbuffer.h