meo@rsiatl.UUCP (Miles ONeal) (08/10/90)
I would like to see Imake made more general. Perhaps using the work Paul DuBois has done? Moving the X stuff into a subarea, so that Imake was more generic, yet still used by X, would be great. For all its faults, I still have seen nothing better. And as with X, going ahead with a good standard is better than waiting for the perfect one. As part of this, I would like to see Imake removed from the default X tree (at least as a bootstrap imake & make world option). If the Consortium is willing, but doesn't have time, I'd be happy to jump in. Unless Paul has already beaten me to the trick or really wants to do it... -Miles Miles O'Neal {uunet | emory}!rsiatl!meo (home) meo@sware.com (work) {uunet | emory}!sware!meo (work)
rhl@grendel.Princeton.EDU (Robert Lupton (the Good)) (08/10/90)
The more I learn about Imake the more times I come across admissions that things are made extra-specially-convoluted to avoid unhappy habits of cpp. There are public domain cpp's around (e.g. the decus one on the X11 tape), so why oh why doesn't someone simply hack up the source to do it right -- where right means without the need for /**/'s to insulate Makefile comments, and worries about spaces turning into tabs at the drop of a hat (or back at the drop of another hat). I'd volunteer, except that I'm not that familiar with imake... Maybe another fun project for poor Paul DuBois? L&K, Robert
bin@primate.wisc.edu (Brain in Neutral) (08/11/90)
From article <3534@rsiatl.UUCP>, by meo@rsiatl.UUCP (Miles ONeal): > I would like to see Imake made more general. > ... > Moving the X stuff into a subarea, so that > Imake was more generic, yet still used by > X, would be great. For all its faults, I still > have seen nothing better. And as with X, > going ahead with a good standard is better > than waiting for the perfect one. imake itself is generic. Do you mean the X configuration files? Some of the generic-ness is already there, in the system-description/build-description section of Imake.tmpl. The X-specific stuff is in Project.tmpl. But you no doubt already know that, so what do you have in mind other than this? > As part of this, I would like to see Imake > removed from the default X tree (at least as > a bootstrap imake & make world option). What are the implications of this? Would you require that imake be already compiled on the machine in question, and provide source as an option were that not the case? Or would it be something separate from the X distribution? > If the Consortium is willing, but doesn't have time, > I'd be happy to jump in. Unless Paul has already > beaten me to the trick or really wants to do it... I have, I think, with the modifications to extend the config file architecture to multiple simultaneous projects. Or maybe not. I've never actually tested that against the X config files, but I don't see any obvious problems with doing so. I use my own config file suit on lots of projects, with overlapping but differing requirements, and it seems to do perhaps what you're asking. This stuff is on indri.primate.wisc.edu for ftp, or I can mail it to people... Paul DuBois dubois@primate.wisc.edu
bin@primate.wisc.edu (Brain in Neutral) (08/11/90)
From article <1767@idunno.Princeton.EDU>, by rhl@grendel.Princeton.EDU (Robert Lupton (the Good)): > > The more I learn about Imake the more times I come across admissions > that things are made extra-specially-convoluted to avoid unhappy habits > of cpp. > ... > I'd volunteer, except that I'm not that familiar with imake... Maybe > another fun project for poor Paul DuBois? Well, one of the things cpp is used for in X is to create scripts from template files. It seems that the use of cpp in those instances is mainly to substitute into the template the values of certain make variables, e.g., like a library directory into a shell script. As you've noted, there are certain problems with this. As I would put it, the main ones are: (1) cpp modifies its source besides symbol substitution, e.g., lines beginning with ``#'' are special and comments (``/* ... */'') are deleted. (2) it is necessary to pass a -D flag for every symbol to be substituted. This can make for very long rule invocations in your Imakefile. Hard to read and subject to error. And it's simply a pain to have to explicitly list every symbol you want to substitute. Why not read the Makefile directly, yank out the variable values, look for instances of $(varname) or ${varname) in the template, and substitute the values - and leave everything else alone? That's why I wrote msub. Mail me if you're interested. Paul DuBois dubois@primate.wisc.edu