Re: [A-a-p-user] Converting from Imake!
Brought to you by:
vimboss
From: Bram M. <Br...@mo...> - 2005-04-26 19:29:21
|
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 -- Bram@Moolenaar.net -- 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 /// |