diff options
-rw-r--r-- | Makefile.nt | 4 | ||||
-rw-r--r-- | README.win32 | 49 | ||||
-rw-r--r-- | config/Makefile.mingw | 18 | ||||
-rw-r--r-- | win32caml/Makefile | 2 |
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 |