bin@primate.wisc.edu (Brain in Neutral) (08/03/90)
[also posted to xbugs. Anyone care to comment?]
VERSION:
R4
CLIENT MACHINE and OPERATING SYSTEM:
Irrelevant
DISPLAY TYPE:
Irrelevant
WINDOW MANAGER:
Irrelevant
AREA:
Configuration
SYNOPSIS:
mit/config/Imakefile doesn't rebuild imake properly if BOOTSTRAPCFLAGS
is non-empty.
DESCRIPTION:
``make World'' does a ``make clean'' after making all the Makefiles.
In particular, this cleans out mit/config and throws away imake.
If at a later time you do ``make Makefile'' anywhere in the source
tree, imake needs to be rebuilt. The ImakeDependency() rule is clever
enough to check whether imake exists and to rebuild it if necessary,
BUT if imake is rebuilt using config/Makefile there can be a problem,
viz., BOOTSTRAPCFLAGS needs to be specified (if it has a non-empty
value) when imake.c is compiled, but is not passed to the cc command.
This means you end up with a bad imake, and generically-configured
Makefiles. ``make Makefile BOOTSTRAPCFLAGS=whatever'' does not fix
the problem either.
The fix is simply to add BOOTSTRAPCFLAGS to DEFINES.
REPEAT BY:
(Only works if BOOTSTRAPCFLAGS isn't empty)
in ${TOP}:
make World BOOTSTRAPCFLAGS=whatever
in any directory in source tree (${TOP} is good enough):
make Makefile
You now have a generically-configured Makefile.
Patch follows:
------------------------------------------------------------------------------
*** Imakefile~ Tue Dec 12 11:37:30 1989
--- Imakefile Thu Aug 2 13:38:23 1990
***************
*** 8,14 ****
DEPLIBS =
HEADERS = imakemdep.h
CFFILES = $(HEADERS) Imake.rules Imake.tmpl Project.tmpl site.def *.bac *.cf
! DEFINES = $(SIGNAL_DEFINES)
#undef ImakeDependency
#define ImakeDependency(dummy) @@\
--- 8,14 ----
DEPLIBS =
HEADERS = imakemdep.h
CFFILES = $(HEADERS) Imake.rules Imake.tmpl Project.tmpl site.def *.bac *.cf
! DEFINES = $(SIGNAL_DEFINES) $(BOOTSTRAPCFLAGS)
#undef ImakeDependency
#define ImakeDependency(dummy) @@\