[gnu.utils.bug] GNU Make and X11R3

karl@yatar.umb.edu ("Karl Berry.") (11/20/88)

GNU Make can't find the target `World' (or `install'), and
possibly others, in the top-level X11R3 Makefile.
That is, the command
% make -n World
produces
make: *** No way to make file `World'.  Stop.

This is GNU Make 3.05.
Following is the (rather large) Makefile.


Karl.   karl@umb.edu

# Makefile generated by imake - do not edit!
# $XConsortium: imake.c,v 1.37 88/10/08 20:08:30 jim Exp $
#
# The cpp used on this machine replaces all newlines and multiple tabs and
# spaces in a macro expansion with a single space.  Imake tries to compensate
# for this, but is not always successful.
#

###########################################################################
# X Window System Makefile generated from template file Imake.tmpl
# $XConsortium: Imake.tmpl,v 1.91 88/10/23 22:37:10 jim Exp $
#
# Do not change the body of the imake template file.  Server-specific
# parameters may be set in the appropriate .macros file; site-specific
# parameters (but shared by all servers) may be set in site.def.  If you
# make any changes, you'll need to rebuild the makefiles using
# "make World" (at best) or "make Makefile; make Makefiles" (at least) in
# the top level directory.
#
# If your C preprocessor doesn't define any unique symbols, you'll need
# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
# "make Makefile", "make Makefiles", or "make World").
#
# If you absolutely can't get imake to work, you'll need to set the
# variables at the top of each Makefile as well as the dependencies at the
# bottom (makedepend will do this automatically).
#

###########################################################################
# platform-specific configuration parameters - edit Sun.macros to change

# platform:  $XConsortium: Sun.macros,v 1.52 88/10/23 11:00:55 jim Exp $
# operating system:   SunOS 3.4

BOOTSTRAPCFLAGS =
             AS = as
             CC = cc
            CPP = /lib/cpp
             LD = ld
           LINT = lint
        INSTALL = install
           TAGS = ctags
             RM = rm -f
             MV = mv
             LN = ln -s
         RANLIB = ranlib
RANLIBINSTFLAGS = -t
             AR = ar clq
             LS = ls
       LINTOPTS = -axz
    LINTLIBFLAG = -C
           MAKE = make
STD_CPP_DEFINES =
    STD_DEFINES =

###########################################################################
# site-specific configuration parameters - edit site.def to change

# site:  $XConsortium: site.def,v 1.16 88/10/12 10:30:24 jim Exp $

###########################################################################
# definitions common to all Makefiles - do not edit

          SHELL =  /bin/sh

        DESTDIR =
      USRLIBDIR = $(DESTDIR)/usr/local/lib
         BINDIR = $(DESTDIR)/usr/local/bin/X11
         INCDIR = $(DESTDIR)/usr/local/include/X11
         ADMDIR = $(DESTDIR)/usr/adm
         LIBDIR = $(USRLIBDIR)/X11
     LINTLIBDIR = $(USRLIBDIR)/lint
        FONTDIR = $(LIBDIR)/fonts
       XINITDIR = $(LIBDIR)/xinit
         XDMDIR = $(LIBDIR)/xdm
         UWMDIR = $(LIBDIR)/uwm
         AWMDIR = $(LIBDIR)/awm
         TWMDIR = $(LIBDIR)/twm
        MANPATH = $(DESTDIR)/usr/man
  MANSOURCEPATH = $(MANPATH)/man
         MANDIR = $(MANSOURCEPATH)n
      LIBMANDIR = $(MANSOURCEPATH)3
    XAPPLOADDIR = $(LIBDIR)/app-defaults

   INSTBINFLAGS = -m 0755
   INSTUIDFLAGS = -m 4755
   INSTLIBFLAGS = -m 0664
   INSTINCFLAGS = -m 0444
   INSTMANFLAGS = -m 0444
   INSTAPPFLAGS = -m 0444
  INSTKMEMFLAGS = -m 4755
        FCFLAGS = -t
    CDEBUGFLAGS = -O

        PATHSEP = /
         DEPEND = $(DEPENDSRC)/makedepend
          IMAKE = $(IMAKESRC)/imake
            RGB = $(RGBSRC)/rgb
             FC = $(BDFTOSNFSRC)/bdftosnf
      MKFONTDIR = $(MKFONTDIRSRC)/mkfontdir
      MKDIRHIER = $(SCRIPTSSRC)/mkdirhier.sh

         CFLAGS = $(CDEBUGFLAGS) $(INCLUDES) $(STD_DEFINES) $(DEFINES)
      LINTFLAGS = $(LINTOPTS) $(INCLUDES) $(STD_DEFINES) $(DEFINES) -DLINT
        LDFLAGS = $(CDEBUGFLAGS) $(SYS_LIBRARIES) $(SYSAUX_LIBRARIES)
            TOP = .
      CLIENTSRC = $(TOP)/clients
        DEMOSRC = $(TOP)/demos
         LIBSRC = $(TOP)/lib
        FONTSRC = $(TOP)/fonts
     INCLUDESRC = $(TOP)/X11
      SERVERSRC = $(TOP)/server
        UTILSRC = $(TOP)/util
     SCRIPTSSRC = $(UTILSRC)/scripts
     EXAMPLESRC = $(TOP)/examples
     CONTRIBSRC = $(TOP)/contrib
         DOCSRC = $(TOP)/doc
         RGBSRC = $(TOP)/rgb
      DEPENDSRC = $(UTILSRC)/makedepend
       IMAKESRC = $(UTILSRC)/imake
       IRULESRC = $(UTILSRC)/imake.includes
        XLIBSRC = $(LIBSRC)/X
         XMUSRC = $(LIBSRC)/Xmu
     TOOLKITSRC = $(LIBSRC)/Xt
     AWIDGETSRC = $(LIBSRC)/Xaw
     OLDXLIBSRC = $(LIBSRC)/oldX
    BDFTOSNFSRC = $(FONTSRC)/bdftosnf
   MKFONTDIRSRC = $(FONTSRC)/mkfontdir
   EXTENSIONSRC = $(TOP)/extensions
   EXTENSIONLIB = $(EXTENSIONSRC)/lib/libXext.a
           XLIB = $(XLIBSRC)/libX11.a
         XMULIB = $(XMUSRC)/libXmu.a
        OLDXLIB = $(OLDXLIBSRC)/liboldX.a
       XTOOLLIB = $(TOOLKITSRC)/libXt.a
         XAWLIB = $(AWIDGETSRC)/libXaw.a
       LINTXLIB = $(XLIBSRC)/llib-lX11.ln
        LINTXMU = $(XMUSRC)/llib-lXmu.ln
      LINTXTOOL = $(TOOLKITSRC)/llib-lXt.ln
        LINTXAW = $(AWIDGETSRC)/llib-lXaw.ln
       INCLUDES = -I$(TOP)
      MACROFILE = Sun.macros
   ICONFIGFILES = $(IRULESRC)/Imake.tmpl \
			$(IRULESRC)/$(MACROFILE) $(IRULESRC)/site.def
  IMAKE_DEFINES =
      IMAKE_CMD = $(NEWTOP)$(IMAKE) -TImake.tmpl -I$(NEWTOP)$(IRULESRC) \
			-s Makefile $(IMAKE_DEFINES)
         RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a \
			.emacs_* tags TAGS make.log MakeOut

###########################################################################
# rules:  $XConsortium: Imake.rules,v 1.71 88/10/23 22:46:34 jim Exp $

###########################################################################
# start of Imakefile

      WORLDOPTS = -k
BOOTSTRAPCFLAGS =
     CHECKFNSRC = $(UTILSRC)/checkfn
        CHECKFN = $(CHECKFNSRC)/checkfn

#
# Preserve this order!
#
  LIBDIRSTOMAKE = \
		$(INCLUDESRC) \
		$(LIBSRC) \
		$(EXTENSIONSRC)

SERVERDIRSTOMAKE = \
		$(SERVERSRC) \
		$(FONTSRC) \
		$(RGBSRC)

CLIENTDIRSTOMAKE = \
		$(CLIENTSRC) \
		$(DEMOSRC) \
		$(EXAMPLESRC)
     DIRSTOMAKE = \
		$(LIBDIRSTOMAKE) \
		$(SERVERDIRSTOMAKE) \
		$(CLIENTDIRSTOMAKE)
        SUBDIRS = \
		$(DIRSTOMAKE) \
		$(UTILSRC) \
		$(DOCSRC)
  LNINSTALLDIRS = \
		$(EXTENSIONSRC) \
		$(LIBSRC)

all::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "making all in $$i"; \
	$(MAKE)  $(MFLAGS)); \
	done

install.ln::
	$(MKDIRHIER)  $(LINTLIBDIR)

install.ln::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(LNINSTALLDIRS) ;\
	do \
	(cd $$i ; echo "making lint subdirs for install.ln and install.ln in $$i"; \
	$(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' \
	LINTOPTS='$(LINTOPTS)' install.ln ); \
	done

external.ln::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(LNINSTALLDIRS) ;\
	do \
	(cd $$i ; echo "making lint subdirs for external.ln and lintlib in $$i"; \
	$(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' \
	LINTOPTS='$(LINTOPTS)' lintlib ); \
	done

#
# before depending, be sure that include has everything in it.
#
depend::
	cd $(INCLUDESRC); $(MAKE)

depend::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "depending in $$i"; \
	$(MAKE) $(MFLAGS) depend ); \
	done

#
# install stuff; create the directories that we're going to need
#

  DIRS_SERVER = $(FONTDIR)

  DIRS_APPDEF = $(XAPPLOADDIR)

 DIRS_CONTRIB =

DIRS_TO_BUILD = $(DIRS_SERVER) \
	$(USRLIBDIR) $(BINDIR) $(INCDIR) $(LIBDIR)  \
	$(DIRS_XINIT) $(DIRS_XDM) $(DIRS_APPDEF) $(DIRS_CONTRIB)

install::
	$(MKDIRHIER)  $(DIRS_TO_BUILD)

install.man::
	$(MKDIRHIER)  $(MANPATH) $(MANDIR) $(LIBMANDIR)

install.man:: X.man
	$(INSTALL) -c $(INSTMANFLAGS) X.man $(MANDIR)/X.n

# don't name your log file make.log when you run this ...
World::
	@echo ""
	@echo "Building Release 3 of the X Window System"
	@echo ""
	@echo "##############################################################"
	@echo "# Did you remember to check the configuration parameters in  #"
	@echo "# the directory util/imake.includes and set BOOTSTRAPCFLAGS? #"
	@echo "##############################################################"
	@echo ""
	@date
	@echo ""
	cd $(IMAKESRC); $(MAKE) clean; $(MAKE) BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"
	-$(MV) Makefile Makefile.bak
	$(MAKE) -f Makefile.bak Makefile
	$(MAKE) Makefiles
	$(MAKE) clean
	$(MAKE) depend
	$(MAKE) $(WORLDOPTS)
	@echo ""
	@date
	@echo ""
	@echo "Build of the X Window System complete."
	@echo ""

Everything::
	cd $(IMAKESRC); $(MAKE) BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"
	-$(MV) Makefile Makefile.bak
	$(MAKE) -f Makefile.bak Makefile
	$(MAKE) Makefiles
	$(MAKE) depend
	$(MAKE) $(WORLDOPTS)

CHANGES.ALL::
	$(RM) $@
	(for i in `find . -name CHANGES -print`; do \
	echo $$i; echo ""; cat $$i; echo ""; \
	echo "==========================================================="; \
	done) >$@

# check all filenames for length, letters, and content
checkfilenames::  $(CHECKFNSRC)/checkfn
	@find . -type d -exec $(CHECKFNSRC)/find.sh $(CHECKFN) {} \;

# clean out link tree looking for stuff that should get checked in
flushlinks::
	make -k clean
	find . -type l -exec rm {} \;
	find . \( \! \( -type d -o -name Makefile \) \) -print

# rebuild the Makefiles in the master source tree
mastermakefiles::
	cd $(IMAKESRC); $(MAKE) clean; $(MAKE) BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"
	-$(MV) Makefile Makefile.bak
	$(MAKE) -f Makefile.bak Makefile
	$(MAKE) Makefiles
	cd $(DEPENDSRC); $(MAKE) clean; $(MAKE) all
	$(MAKE) depend
	cd $(IMAKESRC); $(MAKE) clean
	cd $(DEPENDSRC); $(MAKE) clean

###########################################################################
# Imake.tmpl common rules for all Makefiles - do not edit

emptyrule::

clean::
	$(RM_CMD) \#*

Makefile:: $(IMAKE)

Makefile:: Imakefile \
	$(IRULESRC)/Imake.tmpl \
	$(IRULESRC)/Imake.rules \
	$(IRULESRC)/site.def \
	$(IRULESRC)/$(MACROFILE)
	-@if [ -f Makefile ]; then \
	echo "$(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
	else exit 0; fi
	$(IMAKE_CMD) -DTOPDIR=$(TOP)

$(IMAKE):
	@echo "making $@"; \
	cd $(IMAKESRC); $(MAKE) BOOTSTRAPCFLAGS=$(BOOTSTRAPCFLAGS)

tags::
	$(TAGS) -w *.[ch]
	$(TAGS) -xw *.[ch] > TAGS

###########################################################################
# rules for building in SUBDIRS - do not edit

install::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "installing in $$i"; \
	$(MAKE) $(MFLAGS) \
	DESTDIR='$(DESTDIR)' install ); \
	done

install.man::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "installing man pages in $$i"; \
	$(MAKE) $(MFLAGS) \
	DESTDIR='$(DESTDIR)' install.man ); \
	done

clean::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "cleaning in $$i"; \
	$(MAKE) $(MFLAGS) RM_CMD='$(RM_CMD)' clean ); \
	done

tags::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "tagging in $$i"; \
	$(MAKE) $(MFLAGS) TAGS='$(TAGS)' tags ); \
	done

Makefiles:: $(IMAKE)

Makefiles::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	echo "Making Makefiles in $$i..."; \
	case "$$i" in \
	./?*/?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \
	./?*/?*/?*) newtop=../../../ sub=subsubsub;; \
	./?*/?*) newtop=../../ sub=subsub;; \
	./?*) newtop=../ sub=sub;; \
	*/?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \
	*/?*/?*) newtop=../../../ sub=subsubsub;; \
	*/?*) newtop=../../ sub=subsub;; \
	*) newtop=../ sub=sub;; \
	esac; \
	$(MAKE) $${sub}dirMakefiles NEWTOP=$$newtop \
	MAKEFILE_SUBDIR=$$i;\
	done

subdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \
	echo "$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \
	$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \
	else exit 0; fi
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=../$(TOP); \
	$(MAKE) $(MFLAGS) Makefiles

subsubdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \
	echo "$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \
	$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \
	else exit 0; fi
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=../../$(TOP); \
	$(MAKE) $(MFLAGS) Makefiles

subsubsubdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \
	echo "$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \
	$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \
	else exit 0; fi
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=../../../$(TOP); \
	$(MAKE) $(MFLAGS) Makefiles

subsubsubsubdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \
	echo "$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \
	$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \
	else exit 0; fi
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=../../../../$(TOP); \
	$(MAKE) $(MFLAGS) Makefiles

###########################################################################
# dependencies generated by makedepend