What about using jam http://www.perforce.com/jam/jam.html?
Jeff

-----Original Message-----
From: Paul Kinnucan [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 19, 2001 5:37 PM
To: Nascif Abousalh-Neto; Schewe, Jon (MN65)
Cc: [EMAIL PROTECTED]
Subject: RE: PROPOSAL: New Java Build Feature


At 05:02 PM 3/19/01 -0500, Nascif Abousalh-Neto wrote:

>
> I use Jikes to generate the dependency files for my Java Makefiles. Yes it
is
> true that I have to massage the output (basically to create just one file
> grouping the dependencies, and to add the output directory for the class
> files) but once you have the script (I use awk, but I guess it would be
very
> easy to do in emacs lisp as well) working, there is no more trouble. I
> actually use a makefile target to call jikes to generate the dependencies
> *and* call the script to create the include file for the project makefile,
so
> everything is very self-contained.
>
> Combining that with the use of "find" to automatically find out the source
> files for your project (assuming they are under go down a directory tree
to
> find all the files that need to be examined and you have a very generic
> makefile. Today the only thing I need to change from one project makefile
to
> the next is the classpath for the compilation - and JDE has that already
in
> its customizations.
>
> I think the main advantage is that your end result is a makefile, that
once
> generated is independent from Emacs and the JDE. In my organization a lot
of
> designers do not use Emacs, so makefiles are the common ground. In the
> current proposal a user would need to use Emacs to update the compile
master
> files, so non-Emacs users would not benefit from the solution so much
(once
> the compile master gets out of date).
>
> I like the compile master idea, but I'd rather have JDE creating a generic
> makefile (using information from internal variables like where the output
> classes should go, which compiler to use, and the classpath).



As ONE of the build options for the JDE (the others being make and perhaps
ant), I want to create an efficient build method that relies only on Emacs
and
javac. This would provide a build option for people who do not have make or
ant, e.g., students running on Windows, or who want to do a build without
bothering to create a makefile.

I had hoped that the CompileMaster would provide this option. However,
thanks
to the discussion today, I went back and retested my assumption that the
compile master assures a valid build and I quickly convinced myself that it
did
not. I have therefore withdrawn my proposal.

I'll probably create a build option that simply generates a list of all the
files in a project and passes this list to javac. This will rebuild a
project
with one invocation of the compiler.

As for generating a makefile, David Ponce's JMaker (available on the JDE
website) does exactly what you request. I suggest you give it a try if you
haven't already.

Regards,

Paul

>
> Regards,
>         Nascif
>
> PS: If you guys want I can provide more info on my setup for a generic
> makefile. It is quite tied to our setup, but I think it could be made
> generic.
>
> > -----Original Message-----
> > From: Schewe, Jon (MN65)
> [<mailto:[EMAIL PROTECTED]>mailto:[EMAIL PROTECTED]]
> > Sent: Monday, March 19, 2001 12:26 PM
> > To: 'Paul Kinnucan'
> > Cc: [EMAIL PROTECTED]
> > Subject: RE: PROPOSAL: New Java Build Feature
> >
> >
> > > From: Paul Kinnucan
> [<mailto:[EMAIL PROTECTED]>mailto:[EMAIL PROTECTED]]
> > > Sent: Monday, March 19, 2001 11:21 AM
> > > To: Schewe, Jon (MN65)
> > > Cc: [EMAIL PROTECTED]
> > > Subject: RE: PROPOSAL: New Java Build Feature
> > >
> > >
> > > At 10:57 AM 3/19/01 -0600, you wrote:
> > > >Have you thought about using jikes for dependancy checking?
> > > Or even just
> > > >taking the dependancy checking code out of it and using that
> > > separatly?  It
> > > >is open source and I've found it's dependancy checking to be
> > > most excellent.
> > >
> > > Yes, I have and rejected it for the following reasons:
> > >
> > > 1. It does not produce JPDA compatible classes and so the
> > > classes that
> > >     it produces cannot be debugged with JDEbug or (new)jdb).
> >
> > I realize that and do not suggest using jikes for the actual
> > compiling, just
> > grab the dependancy engine.
> >
> > > 2. I have encountered other obscure compile problems with
> > jikes that
> > >     have destroyed any confidence that I had in the classes
> > > that it creates.
> >
> > I'm sorry to hear that, I've found it to adhear to the Java
> > Language Spec
> > better, but never seen problems.
> >
> > > 3. I tried using the dependency files that it produced in a
> > > make file and
> > >     I could never get them to work correctly with make. Yes,
> > > all the class
> > >     files that needed to be rebuilt would be
> > > rebuilt--sometimes many times
> > >     because both jikes and make were doing dependency
> > >     checking on the same file set, totally unaware of each
> > > other. Further,
> > >     the dependency files would not work for projects that
> > > maintain source
> > >     and class files in separate directories, which is the
> > > organization that
> > > I favor.
> >
> > Yes, I've seen this as well, however the +F flag works well,
> > I am suggesting
> > we take the logic from this and encapsulate this in some library or
> > something useful for JDE.
> >
> > > 4. Another JDE user has told me that he uses dependency files
> > > generated
> > >     by jikes but that he has to massage them with a script
> > to get them
> > >     to work in a makefile. I don't think a user should have
> > > to work that
> > > hard to get
> > >     an automatic build system working.
> >
> > I agree.
> >
> > > 5. Supposing that jikes dependency files worked, using them
> > > still would entail
> > >     starting a fresh instance of javac for each class
> > > (remember, I don't
> > > trust jikes
> > >     for compiling).  With compile masters, only one
> > > invocation of javac is
> > > required
> > >     to build an entire project. I'm inclined to believe that
> > > building a
> > > project with one invocation
> > >     of javac would be faster than building the same project
> > > with multiple
> > > invocations
> > >     of jikes.
> >
> > I tried doing a compile master back with JDK 1.1.x and it
> > didn't work for
> > me.  My test cases was to just do imports of all classes, I
> > realize that
> > import * won't work either and did try listing them
> > explicitly with an empty
> > body and didn't get much success.
> >


Reply via email to