Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0004674OCamlOCaml generalpublic2008-12-17 09:522009-08-19 11:12
Reporterdaweil 
Assigned To 
PrioritynormalSeverityblockReproducibilityalways
StatusclosedResolutionno change required 
PlatformOSOS Version
Product Version3.11.0+beta 
Target VersionFixed in Version 
Summary0004674: cannot compile ocaml3.11 on windows with MSCV
Descriptionwhen I launch "make -f Makefile.nt world", build stop with the message
"win32.c(36) : fatal error C1083: Cannot open include file: 'flexdll.h': No such file or directory".

I have also strange message like "process_begin: CreateProcess((null), flexlink -merge-manifest -where, ...) failed"

I have Microsoft Visual Studio 2005 installed on a 32 bit machine.
TagsNo tags attached.
Attached Fileslog file icon world.log [^] (11,141 bytes) 2008-12-17 09:52
log file icon make_world.log [^] (51,692 bytes) 2009-02-02 09:35
? file icon Makefile.msvc [^] (4,644 bytes) 2009-02-02 09:38

- Relationships

-  Notes
(0004803)
frisch (developer)
2008-12-17 15:50

Is flexdll properly installed?
(0004829)
daweil (reporter)
2009-02-02 08:46
edited on: 2009-02-02 09:36

1) I just noticed that it was required to install flexdll to compile Ocaml3.11 on windows (with MSCV). The issue is that flexdll license is opensource license, not the caml consortium license. It would be problematic for us to include an open source software inside out tool.
How is possible to solve this legal issue?

2) anyway, i cannot compile on Windows. "make -f Makefile.nt world" ends up with the message "File "myocamlbuild_config.ml", line 20, characters 46-55:
Error: Unbound value ocamlhome
e:\users\dwl\R207\AUTDwlINFR207\AUTLciKernel\caml_bin\dosonly\make.exe[1]: *** [myocamlbuild_config.cmo] Error 2", cf the log file make_world.log

(0004906)
db (reporter)
2009-04-06 11:24

What is the contents of your config/Makefile (not config/Makefile.msvc)? Looks like the PREFIX= line is incorrect.
(0005047)
daweil (reporter)
2009-08-17 19:57

I retry today with ocaml3.11.1. It seems to work better. I managed to compile Ocaml until the step "make -f Makefile.nt opt". However, I could not compile the debugger : i had to set variable DEBUGGER to empty in file Makefile.msvc.
If I try to compiler the debugger, "cd debugger && make -f Makefile.nt all", I get the following message : ../ocamlcomp.sh -c -warn-error A -I ../utils -I ../parsing -I ../typing -I ../bytecomp -I ../toplevel -I ../otherlibs/win32unix dynlink.mli
Fatal error: cannot find file /cygdrive/e/users/dwl/dev/R209/AUTdwlINFR209/AUTLciKernel/caml_src/ocaml-3.11.1/ocamlc
It looks like a confusion between DOS and unix pathes.

When I launch "make -f Makefile.nt opt.opt", I get the same kind of error message.

Then I analyzed the issue more precisely, by adding
echo "dir = $topdir"
in file ocamlcomp.sh, I see the absolute path "/cygdrive/e/..." instead of a relative path. So I replaced the content of ocamlcomp.sh by :

#!/bin/sh
#topdir=`dirname $0`
topdir=e:/users/dwl/dev/R209/AUTdwlINFR209/AUTLciKernel/caml_src/ocaml-3.11.1
exec $topdir/boot/ocamlrun $topdir/ocamlc -nostdlib -I $topdir/stdlib "$@"

it works but it is very tedious as the ocamlcomp.sh and ocamlcompopt.sh are overwritten at each build step.

Do you have an idea for a better patch ?
(0005048)
daweil (reporter)
2009-08-18 10:29

I found better patch this morning : it seems that with the version of gnu-make I have, relative path are transformed in absolute cygwin pathes. So I changed some Makefile by adding double quotes around relatives pathes.
In the debugger/Makefile.shared, I changed the line
CAMLC=../ocamlcomp.sh
into
CAMLC="../ocamlcomp.sh"

and did the same in some otehr makefiles.
(0005049)
daweil (reporter)
2009-08-18 17:33
edited on: 2009-08-18 17:34

You can close the issue : I just understand that all my trouble was coming from the fact that I was using the mingw version of gnu-make instead of the cygwin-version!!!

PS : it used to work with 3.10 but not anymore with 3.11


- Issue History
Date Modified Username Field Change
2008-12-17 09:52 daweil New Issue
2008-12-17 09:52 daweil File Added: world.log
2008-12-17 15:50 frisch Note Added: 0004803
2009-02-02 08:46 daweil Note Added: 0004829
2009-02-02 09:34 daweil Note Edited: 0004829
2009-02-02 09:35 daweil File Added: make_world.log
2009-02-02 09:36 daweil Note Edited: 0004829
2009-02-02 09:38 daweil File Added: Makefile.msvc
2009-04-06 11:24 db Note Added: 0004906
2009-04-29 15:48 doligez Status new => feedback
2009-08-17 19:57 daweil Note Added: 0005047
2009-08-18 10:29 daweil Note Added: 0005048
2009-08-18 17:33 daweil Note Added: 0005049
2009-08-18 17:34 daweil Note Edited: 0005049
2009-08-18 17:37 frisch Status feedback => closed
2009-08-18 17:37 frisch Resolution open => fixed
2009-08-19 11:12 doligez Resolution fixed => no change required


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker