#5179: the 'official' 32-bit mingw compiler is now the one from the mingw-w64 project, packaged in Cygwin (as supported by flexdll 0.27).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11300 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
master
Alain Frisch 2011-12-12 11:38:06 +00:00
parent e707c41543
commit 5f8ff42f10
4 changed files with 48 additions and 25 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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