caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Ocaml, Objective-c, and XCode
@ 2010-02-11  1:28 Andrew Webb
  2010-02-11 11:16 ` [Caml-list] " John Whitington
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Webb @ 2010-02-11  1:28 UTC (permalink / raw)
  To: caml-list

Hi there,

I have a few questions relating to using Ocaml with objective-c for anyone who programs on a Mac. I am aware that there aren't any real bindings between ocaml and objective-c/cocoa, so I am investigating rolling my own. So:

1) Does anyone have experience in interfacing ocaml and objc? Is it difficult?
2) Does anyone have a small example project that does mix these two languages? I have looked at unison, but it is too big for me to get my head around. I am thinking more on the scale of the ubiquitous Currency Converter...
3) Does anyone who is mixing these languages use Xcode to do so? If so, what steps do you need to go through to set that up?

A big thanks to anyone who can answer (some of) these questions. I am trying to decide whether to use haskell or ocaml for my next cocoa application, as these are the two languages I am most comfortable. I have recently found an excellent description of how to do this using haskell (http://tscheff.blogspot.com/2010/02/currync-converter-using-haskell-with.html) and was wondering if there were such resources for ocaml.

Thanks,
Andrew


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Caml-list] Ocaml, Objective-c, and XCode
  2010-02-11  1:28 Ocaml, Objective-c, and XCode Andrew Webb
@ 2010-02-11 11:16 ` John Whitington
  0 siblings, 0 replies; 2+ messages in thread
From: John Whitington @ 2010-02-11 11:16 UTC (permalink / raw)
  To: caml-list

Hi Andrew,

On 11/02/2010 01:28, Andrew Webb wrote:
> Hi there,
>
> I have a few questions relating to using Ocaml with objective-c for anyone who programs on a Mac. I am aware that there aren't any real bindings between ocaml and objective-c/cocoa, so I am investigating rolling my own. So:
>
> 1) Does anyone have experience in interfacing ocaml and objc? Is it difficult?
> 2) Does anyone have a small example project that does mix these two languages? I have looked at unison, but it is too big for me to get my head around. I am thinking more on the scale of the ubiquitous Currency Converter...
> 3) Does anyone who is mixing these languages use Xcode to do so? If so, what steps do you need to go through to set that up?
>
> A big thanks to anyone who can answer (some of) these questions. I am trying to decide whether to use haskell or ocaml for my next cocoa application, as these are the two languages I am most comfortable. I have recently found an excellent description of how to do this using haskell (http://tscheff.blogspot.com/2010/02/currync-converter-using-haskell-with.html) and was wondering if there were such resources for ocaml.

I've just released a product written in this way:

http://www.coherentpdf.com/proview.html

I just have a normal makefile which builds a .a library from the ocaml 
code and its C wrapper as per the instructions in the ocaml manual.

The xcode project then uses the .a and the .h of the wrapper and a few 
extra compilation and linking flags. Doubtless with a little bit more 
effort, Xcode could be made to call the ocaml makefile.

Here's the OCaml makefile:



mklib:
         ocamlc cpdf.mli;
         ocamlopt -c -I . unix.cmxa str.cmxa bigarray.cmxa cgutil.cmxa 
camlpdf.cmxa cpdf.ml;
         ocamlc cpdflib.mli;
         ocamlopt -c -I . unix.cmxa str.cmxa bigarray.cmxa cgutil.cmxa 
camlpdf.cmxa cpdf.cmx cpdflib.ml;
         ocamlc cpdflibc.mli;
         ocamlopt -c -I . unix.cmxa str.cmxa bigarray.cmxa cgutil.cmxa 
camlpdf.cmxa cpdf.cmx cpdflib.cmx cpdflibc.ml;
         ocamlc cpdflibwrapper.c;
         ocamlopt -output-obj -o cpdflibc.o unix.cmxa str.cmxa 
bigarray.cmxa cgutil.cmxa camlpdf.cmxa cpdf.cmx cpdflib.cmx cpdflibc.cmx;
         cp /usr/local/lib/ocaml/libasmrun.a cpdflib.a;
         ar r cpdflib.a cpdflibc.o cpdflibwrapper.o

test:   zlibstubs.o cpdflib.a
         cc -m32 -c cpdflibc-test.c -o cpdflibc-test.o; \
         cc -m32 -L'/usr/local/lib/ocaml' -lunix -lbigarray -lstr -lz -o 
test cpdflibc-test.o zlibstubs.o cpdflib.a



(The 'test' target shows you the kind of compiler and linker flags you'd 
need to put into XCode).

Basically, once you've got the usual ocaml/c interface done, the Xcode 
part is no problem.

Cheers,

-- 
John Whitington
Director, Coherent Graphics Ltd
http://www.coherentpdf.com/


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-02-11 11:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-11  1:28 Ocaml, Objective-c, and XCode Andrew Webb
2010-02-11 11:16 ` [Caml-list] " John Whitington

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).