[comp.windows.x] IMAKE

fischer@netmbx.UUCP (Axel Fischer) (08/16/89)

Hello,
I have some problems with imake.
I have compiled it without problems on my Xenix 386 R2.3.2 box and I also
have created the i386.macros as well as the site.def files.

But what did I do know ? 
When I invoke imake in a SourcenDirectory (for example in makedepend or 
xterm) imake tells me that here are no descriptions for a makefile.
Hmm.
I have thought it should create a new Makefile now ?

Please reply via e-mail.

Thanks,
	Axel
-- 
Domain:        fischer@netmbx.UUCP
Europe:        ...!tmpmbx!netmbx!fischer
Rest of world: ...!uunet!pyramid!tmpmbx!netmbx!fischer

frederit@boulder.Colorado.EDU (FREDERICKS THOMAS M) (03/02/90)

	It seems that most of the xsources come with Imakefiles instead 
	of makefile.  What is imake and where can I get it?
		Thanks,
			Tom...

jody@shell.COM (Jody Winston) (06/12/90)

Please reply to oldham@shell.com

	In mit/config/Project.tmpl, there is imake rule BandAid-
LibraryMake().  This rule should be in mit/config/Imake.rules with
every other default imake rule.

	The following comments in mit/config/Imake.tmpl are incorrect.
Line 32:  The symbols are to be added to mit/config/imakemdep.h, not
		mit/util/imake/imake.c.
Line 37:  The symbols are to be added to mit/config/imakemdep.h, not
		mit/util/makedepend/main.c.

	The following comments in mit/config/imakemdep.h are incorrect.
Line 135:  The definition of struct symtab is in
		mit/util/makedepend/def.h, not
		mit/util/makedepend/main.c.

	The authors of the default imake(1) rules should not make
assumptions about filename suffixes.  For example, for sgi (Silicon
Graphics), object file names end in .os, not .o.  A similar problem
occurs for a hypercube computer.
	Instead of specifying bith SRCS and OBJS in an Imakefile,
specify the sources and then add a line
	OBJS=$(SRCS:$(SRC_SUFFIX)=$(OBJ_SUFFIX))
Less generally, you could use, OBJS=$(SRCS:.c=.o).  This would reduce
the number of parameters and would allow having non-standard suffixes.

	The parameters configuring the X Window System should have a
section for parameters only dealing with the server.  These would not
need to be set if servers were not being made.  Currently, BuildServer
is set to NO if a client-only build is desired (see mit/config/README).
However, those parameters which are only used when compiling servers,
such as AdmDir found in Project.tmpl, are not specified.  Another
section could be for xdm parameters, containing DefaultSystemPath,
DefaultSystemShell, ....

	There is no clean separation among the parameters to allow easy
cross-compialtion.

From: oldham@shell.com

siyt@cbnewsl.att.com (p.jayne) (07/19/90)

I've been maintaining AT&T/USL's imake since X11R3.  In R2, we
rewrote it as a shell script and a C program.  Much of
the template and rules set were discarded to simplify things.
In R4, I put back most of the discarded stuff so that we
could use contributed Imakefiles w/o hacking.  (And besides,
some people were unhappy with the changes we made.)
The shell script does mostly what imake.c from the tape does,
i.e. it runs cpp through the source tree's Imakefiles.  The
C program handles the @@ stuff and additionally strips out
redundant and unreferenced Makefile variables and tosses extra
blank lines.  This means you get readable Makefiles out of the deal.

To keep my own sanity in dealing with the included files, I spent
a little time using vi, ed, usort, grep and whatever to produce an
index of what variables and defines get set where.  Finally, I made
a diagram of which included files override which others for defines
and for variables (in fish-eats-successively-smaller-fish form).
The index and the fish let me figure out what to set/change and
where to do it, which may be the hardest part of coping with imake
anxiety.  (The readable Makefiles are also invaluable.)

Has anyone else developed a home-brewed version of imake?

bin@primate.wisc.edu (Brain in Neutral) (07/19/90)

From article <1990Jul18.213435.7284@cbnewsl.att.com>, by siyt@cbnewsl.att.com (p.jayne):
> I've been maintaining AT&T/USL's imake since X11R3.  In R2, we
> rewrote it as a shell script and a C program.  Much of
> the template and rules set were discarded to simplify things.
> In R4, I put back most of the discarded stuff so that we
> could use contributed Imakefiles w/o hacking.  (And besides,
> some people were unhappy with the changes we made.)
> The shell script does mostly what imake.c from the tape does,
> i.e. it runs cpp through the source tree's Imakefiles.  The
> C program handles the @@ stuff and additionally strips out
> redundant and unreferenced Makefile variables and tosses extra
> blank lines.  This means you get readable Makefiles out of the deal.

Stripping out "unreferenced" Makefile variables may not be such a good
idea in certain contexts.

A lot of the X stuff creates target files from templates by running
them through cpp (using the CppScriptTarget() rule).  That rule
explicitly requires a -D for each variable you want substituted
in the template to create the target, so you *do* know which Makefile
variables are referenced in creating it.

But that's not the only way to do it.  The CppScriptTarget() is unwieldy
if you want to use 10 or 20 of the Makefile variables, say.  For that
reason (among others) I use a thing called msub (substitute from
Makefile) that looks through a Makefile, grabs all the variable
definitions, expands them (so there are no $(other-makefile-variable)
constructions in them), and then replaces any occurrances of any of
those variables in the target file with the value.  It works well
enough that I rarely use CppScriptTarget() any more.

But the implication for this discussion is:
The rule for creating targets from msub templates doesn't name any of the
Makefile variables to be substituted (doesn't have to, since any of them
can be used in the template without prior arrangment).  This means that
you can't tell, by looking at the Makefile, which variables are
referenced and which aren't!

Paul DuBois
dubois@primate.wisc.edu

jeff@cjsa.wa.com (Jeffery Small) (07/31/90)

I recently installed Open Windows on my Sun and was surprised to find that
the Imake utility was not provided as part of the distribution.  I would
appreciate it if someone could give me instructions on how/where I could
obtain the necessary program(s) and documentation without having to acquire
the entire X11 distribution.

Thanks.
--
Jeff Small                     C. Jeffery Small & Associates    (206) 485-5596
uunet!nwnexus!cjsa!jeff        19112 152nd Avenue NE, Woodinville, WA    98072

jeff@cjsa.UUCP (Jeffery Small) (08/09/90)

I have just begun using X-windows (Open Windows on a Sun 3/60) and I find
that the Imake utility was not included in the distribution from Sun.

Could anyone offer some pointers where I could obtain just the Imake program(s)
and related documentation without having to acquire the entire X11 distribution.
Unfortunately, I do not have internet/ftp access so a mail-based server or an
archive site offering uucp access would be needed.

Thanks for any help you may be able to offer.
-- 
Jeff Small                     C. Jeffery Small & Associates    (206) 485-5596
uunet!nwnexus!cjsa!jeff        19112 152nd Avenue NE, Woodinville, WA    98072

dbld@oz.plymouth.edu (d^2) (05/05/91)

We have been experimenting with X-programs out here and was wondering if
someone could point us to an ftp location where we could get the sources for
Imake.  All the X-stuff that we download have an Imake file included with
them, but we can not use it to build the program.  We have to go in and
tweak the Makefile.

Please respond via e-mail.  If there is sufficent interest, I will post
a list of locations.  Thanks in advance.

\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\
             _          ___     /-\     Plymouth State College in scenic
            //   /\    ////\    \-/           upstate New Hampshire.
           ##/  # /   #####/    /-\        `We earned our reputation.'
     ___  ##/  # #   ##  ##/    \-/        
    //// ##/            ##/     /-\   E-Mail : dbld@oz.plymouth.edu
   #### ##/            ##/__    \-/
  #    ##/\_          ##////    /-\   `Sure alcohol kills brain cells,     
   #### ###/         #######/   \-/         but only the weak ones.'
/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/
d^2

jburnes@swbatl.sbc.com (Jim Burnes - 235-7444) (05/07/91)

Hey Anyone:

Could somebody please send me docs for imake.  I'm trying to compile
an X application and man'd all over the place for it but with no
luck.  I also looked in the X system users guide.

       Thanx

       Newbie!

-- 
------------------------------------------+-----------------------------
Jim Burnes - System Engineer              ! When the world is
SouthWestern Bell Advanced Technology Labs! running down...
Internet: jburnes@swbatl.swbell.com       ! Make the best of what's

exs@aristotle.JPL.NASA.gov (Eric Slimko) (05/23/91)

Hi,

Is there any decent instructions for the X-Windows Imake stuff around?
I'd like a better description of all the macros you can use, variables
you can set, etc.  Up to this point, I've just been sifting through the
imake.rules and generated makefiles.  The man page for imake doesn't
detail any of that.

Thanks in advance,
-- 
Eric Slimko                |  Jet Propulsion Laboratories
exs@aristotle.jpl.nasa.gov |  NASA/CalTech