OCaml Forge

Detail: [#422] ocamlmklib doesn't work as accepted on cygwin

Bugs: Browse | Download .csv | Monitor

[#422] ocamlmklib doesn't work as accepted on cygwin

Date:
2009-11-23 13:28
Priority:
3
State:
Open
Submitted by:
Sylvain Le Gall (gildor-admin)
Assigned to:
Sylvain Le Gall (gildor-admin)
Resolution:
None
Severity:
normal
Version:
None
Component:
None
Operating System:
None
 
Summary:
ocamlmklib doesn't work as accepted on cygwin

Detailed description
OCaml doesn't produce .so file.

Date: Wed, 04 Oct 2006 19:58:45 +0200
From: GISQUET Christophe <christophe.gisquet at-smtp free.fr>

Ceci affecte libgettext-ocaml en version 0.2.

La version de ocamlmklib disponible avec cygwin est celle d'ocaml 3.08.x. Celle-ci ne peut produire de librairie partagées (.so). Le makefile échoue donc car il ne peut trouver la librairie partagée attendue.

De plus, sous cet environnement, les librairies partagées se terminent par ".dll".

Une manière de contourner ce probléme serait de:
- dans configure.in (et par extension configure) faire un case sur $host et gérer le cas *cygwin*|*mingw* en réglant un conditional automake (par exemple WIN32_PLATFORM) à yes
- pour chaque makefile affecté, modifier dans le Makefile.am correspondant la valeur de INSTALLIB en fonction de WIN32_PLATFORM:
if WIN32_PLATFORM
INSTALLIB=...
else
INSTALLIB=... file.so
endif

Je ne connais pas suffisament ocaml/ocamlmklib pour savoir s'il est possible de générer librairie statique et dynamique/partagée à la fois, mais il serait bon de disposer des classiques options de configure --enable-{static,shared}. Il faudrait dans le cas WIN32_PLATFORM rejeter "--enable-shared" et forcer "--enable-static", ce qui est hélas une complexité supplémentaire.

Je pourrais envoyer un patch, mais j'aurais préféré au moins disposer d'un accés anonyme à un repository cvs/svn pour me faciliter la génération du patch avant de considérer cette option.

Cordialement,
Christophe GISQUET

Followup

No Followups Have Been Posted

Attached Files:

Changes:

No Changes Have Been Made to This Item