Re: Converting from Imake!
Bram Moolenaar <[email protected]> Tue, 26 Apr 2005 21:37:08 +0200
| Newsgroups | gmane.comp.tools.aap.user |
|---|---|
| Message-ID | <[email protected]> |
Joey -
> I am currently comparing aap, SCons, and others trying to convert from
> our dated Imake system. According to the aap webpage, everything Imake
> can do, aap can do and I'm trying to put it to the test!
>
> Anyway, here's a list of my needs:
>
> 1) Define our own targets. We currently do a "make release", "make
> testing", etc... which we would like to preserve the functionality of
> even if unportable. I just need these to work on Solaris.
Use a virtual target:
release {virtual}:
<commands>
> 2) Build shared/static libraries, preferably simulataneously or without
> having to change a whole lot)
Use ":lib" and ":dll".
> 3) Work across Unix, Windows, Mac
Yep.
> 4) Generate native programs in all environments
Yep.
> 5) Or generate X11 programs in all environments
Well, yes, but you need to define how yourself.
> 6) Lets me change one file (we had a special .rules file with Imake)
> and have all the changes propagated down
Sure.
> 7) Support Qt
There is a tool for that.
> 8) Supports lex and yacc
Yep.
> 9) Let me define how I build a Tcl program
No problem.
> 10) Multiple targets, one file, one directory.
Don't know what you mean but you can have lots of dependencies.
> 11) Hierarchical build from top down, or from any of the subdirs
> without issue (preferably without strange command line args).
You don't need to worry about this, just define what depends on what and
Aap will figure out in what order they need to be build.
> Can aap do all of this? I think it can, but if someone knows where I
> might run into problems, I'd love to hear it!
There might be a few things where you have to either specify things
explicitly (e.g., libraries to be linked with) or add a new module or
tool.
> I've been trying and I've got a special aap file that I include in all
> files so that (6) seems to work. I've also got it building
> shared/static libs (2) pretty nicely. What I can't get is 11! I
> thought that would be the easiest, but either I can't grok the docs or
> it really can't do this! My main.aap at the top level is:
>
> :include SDDAS.aap
>
> :child libant/main.aap
> :child libPromote/main.aap
>
> I just want it to go into all the subdirectories and do an aap! I feel
> like there is something I'm missing somewhere that makes this easy. If
> you are familiar with qmake, it has a subdirs keyword. With Imake, it
> was IHaveSubdirs. What is it with aap?
You should not need to do anything, just define the dependencies.
If you are not using ":program" commands, perhaps you are missing a rule
for the "all" target? Something like:
all: libant/thetarget libPromote/thetarget
> Also, is there a way to force the build/output dir to something? Turn
> off logfiles?
Not for the log dir, because it would mess up storing the signatures.
You can specify the target directory in the targets of the dependencies.
What is being printed can be changed with the $MESSAGE variable.
Everything goes into the log.
- Bram
--
DINGO: And after the spanking ... the oral sex.
GALAHAD: Oh, dear! Well, I...
GIRLS: The oral sex ... The oral sex.
GALAHAD: Well, I suppose I could stay a BIT longer.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
\\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
-------------------------------------------------------
SF.Net email is sponsored by: Tell us your software development plans!
Take this survey and enter to win a one-year sub to SourceForge.net
Plus IDC's 2005 look-ahead and a copy of this survey
Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix