[MLton] Support for link options in ML Basis files
Matthew Fluet
fluet@cs.cornell.edu
Fri, 14 Jan 2005 14:12:16 -0500 (EST)
> Are there any plans to support link options in ML Basis files? For
> example, I have written bindings to some SDL functions neccesary to use
> in place of GLUT with OpenGL. It would be nice for applications which
> used the SDL and OpenGL bindings to simply add "sdl/sdl-lib.mlb" and
> "gl/gl-lib.mlb" to their .mlb files and have MLton automaticaly use the
> supplied link options when compiling the final executable.
See
http://mlton.org/pipermail/mlton/2004-July/025553.html
for a similar proposal and
http://mlton.org/pipermail/mlton/2004-July/025554.html
for a reply.
I believe that the reply still applies.
> Also, is
> their a way to have MLton tell you where it keeps SML libraries (for
> example, /usr/lib/mlton/sml/ on my Debian machine) so you could have a
> makefile target install the library in the appropriate place?
I don't think we have a simple way of doing it, but there are a couple of
hacks that would get you that functionality. If you give mlton a
nonexistent .mlb file, it will print out the path with all MLB path
variables expanded:
-bash-2.05b$ mlton '$(SML_LIB)/z.mlb'
Error: <string> 1.1.
File /usr/lib/mlton/sml/z.mlb does not exist.
compilation aborted: parseAndElaborate reported errors
Alternatively, compiling a .mlb file with -stop f will yield a list of
files (suitable for a Makefile dependency), again with all path variables
expanded:
-bash-2.05b$ mlton -stop f '$(SML_LIB)/basis/basis.mlb'
/usr/lib/mlton/sml/basis/misc/primitive.sml
/usr/lib/mlton/sml/basis/posix/primitive.sml
...
/usr/lib/mlton/sml/basis/libs/basis-2002/top-level/overloads.sml
>From either of these, a little grep and sed hackery could should yield the
path you are looking for.