Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
The official windows installer (built using NSIS) for OCaml
branch: master
Failed to load latest commit information.
flexlink Upgrade to flexdll-0.31.
.gitignore Upgrade to flexdll-0.31.
COPYING Add missing license file.
ReplaceInFile.nsh Refresh the installer, use a newer version of findlib, use a cleaner …
_tags Cleanups.
install.nsi Fix the Cygwin setup.exe URL.
installer-logo.bmp Use the official logo for the installer.
ocaml-icon.ico Works\!
onlinedoc.url Add start menu entries.
side.bmp Pictures. Set the lang properly.
site-start.el Works\!
topfind General refresh.

The OCaml Installer for Windows

These are the source files if you want to rebuild the installer. If you just want to download the installer, see the "website" link near the top of the page.

The installer now uses the "official" toolchain, namely Mingw64 living in a Cygwin environment. The current version of this installer works with OCaml 4.0; if you want to compile an older version of OCaml, you need to switch to and older revision.


  • Cygwin with the mingw64 compiler suite, 32bit version (i686-w64-mingw32).
  • FlexDLL (at least 0.29)
  • NSIS (the special build that uses 8k strings)
  • the NSISunz plugin for NSIS, that lives somewhere on the NSIS wiki

Instructions for building an new version of the installer

The instructions above sometimes use the c:\...-style paths, sometimes the /c/...-style paths. This is significant, and you cannot blindly replace one for another.

  1. Install FlexDLL from Alain's website, and
    • export PATH=/cygdrive/c/path/to/flexdll:$PATH
  2. Refresh the files in the flexlink/ directory of the installer, so that the resulting installer ships the right version of flexdll (optional, recommended).
  3. Grab a copy of ActiveTCL and install it, leave the default path (c:\tcl). Make sure the URL in install.nsi is up-to-date.
  4. Grab a copy of the OCaml sources, and keep the default install path (c:\ocamlmgw), this will make your life easier.
  5. Follow the instructions in README.Win32, section "MinGW/Cygwin". Try to compile OCaml. Swear. Try again. Grab a tea. Succeed. Be happy.
  6. Go into the emacs/ directory.
    • Make sure there's an emacs.exe in your path (install Emacs if you have to).
    • Configure the Makefile so that the output directory is /cygdrive/c/ocamlmgw/emacsfiles.
    • Run make in that directory.
  7. Checkout a copy of OCamlWin from the OCaml forge, edit Makefile.local and make && make install.
  8. Make sure /cygdrive/c/ocamlmgw/bin is in your path.
  9. Grab the latest findlib, configure, make all opt, make install.
  10. Check that install.nsi will generate a correct findlib.conf
  11. Copy findlib's src/findlib/topfind_rd1.p to topfind in the OCaml Installer directory.
  12. Install NSIS, grab nsisunz.dll somewhere on the interwebs and put it NSIS's Plugins directory.
  13. In the ocaml-installer directory (i.e. this repo), run make. This should create a variety of files:
    • version.nsh, a NSIS header file that is generated to contain the freshly compiled OCaml's version number,
    • uninstall_lines.nsi, an OCaml-generated list of files to remove from the install directory.
  14. Make should also launch NSIS with the main script file, and hopefully it should all generate an installer. The installer is quite big (thank you camlp4).

Things to test for

  1. rlwrap ocaml, then #use "topfind";;, then #camlp4r;;
  2. ocamlfind ocamlc -package unix -linkpkg where uses the Unix module, of course.
  3. odb on a sample package (e.g. lwt)
  4. labltktop, ocamlbrowser...

Bugs, issues

All patches should be submitted using GitHub pull requests. All issues should be filed using the GitHub issue tracker.

Something went wrong with that request. Please try again.