This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Re: Build process for Kawa projects
- From: Chris Dean <ctdean at sokitomi dot com>
- To: <dominique dot boucher at nuecho dot com>
- Cc: <kawa at sources dot redhat dot com>
- Date: Wed, 19 Jan 2005 11:58:38 -0800
- Subject: Re: Build process for Kawa projects
- References: <200501191558.j0JFwC0X003579@bergman.nuecho.ad>
"Dominique Boucher" <dominique.boucher@nuecho.com> writes:
> In order to meet the needs of other developers like you, I would like to
> know (if possible) how your Kawa projects are structured and want kind of
> build process you (would like to) have.
Ours is similar to NuEcho's. We have a mix of .scm and .java files
(and a few .jj files). It is common for the Scheme code to call the
Java code and for the Java code to call the Scheme code.
Every .scm file starts with a (module-name ...) form and a
(module-static #t) form. The module name does not necessarily match
the .scm file name.
(module-export ...) forms are optional. (require ...) forms are often
at the top of the file, but not always.
Our build process is:
0. Different projects are divided into different "top-level"
directories and we build each directory as follows.
1. Scan all the .java and .scm files and create a dependency graph.
The scanner is smart enough to notice (define-namespace ...) and
<SomeClass> tokens and use those when creating the dependency
graph.
2. Compile all modified files and all dependencies in the proper
order.
3. Create a single .jar file with all the .class files created.
There are some bugs, but that's how it works when it's working.
Regards,
Chris Dean