caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Eray Ozkural <exa@kablonet.com.tr>
To: Stefano Zacchiroli <zack@bononia.it>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Roadplan for world domination (or constructive criticism of ocaml facilities)
Date: Sun, 27 Jul 2003 18:36:08 +0300	[thread overview]
Message-ID: <200307271836.08601.exa@kablonet.com.tr> (raw)
In-Reply-To: <20030726073628.GA5387@fistandantilus.takhisis.org>

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


  reply	other threads:[~2003-07-27 17:23 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-18 21:21 Chris Clearwater
2003-07-19 12:32 ` Sylvain LE GALL
2003-07-19 15:38 ` Richard Jones
2003-07-21 15:18 ` William Lovas
2003-07-24 16:40   ` Eray Ozkural
2003-07-26  7:36     ` Stefano Zacchiroli
2003-07-27 15:36       ` Eray Ozkural [this message]
2003-07-26 20:14 ` [Caml-list] Roadplan for world domination Warren Harris
2003-07-28 14:39   ` Guillaume Marceau
2003-07-29 12:38   ` Damien Doligez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200307271836.08601.exa@kablonet.com.tr \
    --to=exa@kablonet.com.tr \
    --cc=caml-list@inria.fr \
    --cc=erayo@cs.bilkent.edu.tr \
    --cc=zack@bononia.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).