Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Roadplan for world domination (or constructive criticism of ocaml facilities)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Eray Ozkural <exa@k...>
Subject: Re: [Caml-list] Roadplan for world domination (or constructive criticism of ocaml facilities)
On Saturday 26 July 2003 10:36, Stefano Zacchiroli wrote:
> On Thu, Jul 24, 2003 at 07:40:48PM +0300, Eray Ozkural wrote:
> > I have a makefile library called "justmake" that uses some recent
> > features in GNU make. I think it can cope with complex ocaml sources
> > easily as it implements most interesting features you can only have with
> > automake. If I make such a hack, I'll post it here.
>
> Could you briefly list which features implements justmake?
>

Well, I was using a kludge for an eval function in GNU make, then Paul as he 
promised made it into the latest release. That's the method I use in 
implementation of justmake.

What justmake implements is a neat automake like build system in which you 
indicate what you want to build, what sources there are and everything else 
is done automatically including dependency analysis and recursive 
compilation. No nasty preprocessing!

It's basically a makefile library. All you have to do is to include the 
library header and define a few vars. A big advantage over automake is you 
can use make expressions anywhere.

The interface is very similar to automake.
Here is an example entry file

PACKAGE = sma
SUBDIRS = data
VERSION = 0.1.1
BUILDARCH = i686
# valid build configs : dbg, opt, optdbg
BUILD = dbg

include justmake/Makefile.justmake

And here a flavor of file definitions

# Executable files
PROGRAMS = bin2ascii check-session-db sequence-gen ....
# Library files
LIBRARIES = sma sma++ stock-db sequence-c generic
...
bin2ascii_CFILES = $(wildcard src/bin2ascii/*.c)
bin2ascii_INCFILES = $(wildcard src/bin2ascii/*.h)
bin2ascii_LIBS = -lsma
...

The system doesn't enforce recursive makes, which I think sucks most of the 
time but you can still use them (as in SUBDIRS above). You can indicate 
source files anywhere in the source directory.

Also visible above is the build configuration support. Every temporary file is 
created in a build dir, no files are created in the source directory, which I 
think is a great win. Also you get to have as many build configs as you like 
which you can define (well at least I've got debug and optimized configs :P)

It has also a lot of extra functionality that I developed over years, but 
still clean and sensible :)

I've noticed that automake started implementing some features that I had for a 
long time in justmake but it's still superior ;) [I think that's because 
we're working on the same problem]

BTW, it only supports libtool for handling library builds but I guess it's OK 
for the most part.

I'll try to bring together a first release soon. I'll let you know.

Cheers,

-- 
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara  KDE Project: http://www.kde.org
www: http://www.cs.bilkent.edu.tr/~erayo  Malfunction: http://mp3.com/ariza
GPG public key fingerprint: 360C 852F 88B0 A745 F31B  EA0F 7C07 AE16 874D 539C

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners