[gnu.utils.bug] make 3.54

allen@UXC.CSO.UIUC.EDU (Michael Allen) (07/21/89)

I am running on a sun 4/260, sunos 4.0.3.  the makefiles of InterViews
version 2.5 and GNU make ver3.54 seem to be incompatible.  When using
GNU make, imake is called over and over until at some point the
message "ctr0: no /dev/zero" is printed.  I have also sent this to
Mark Linton (the principal author of InterViews).  I compiled GNU make
using gcc ver. 1.35.
The Makefile is appended to this message.

Using /usr/bin/make (sun distribution), make -n bootstrap results in:

echo "##############################################################"
echo "Did you remember to check the configuration parameters in the"
echo "the directory config/InterViews and set BOOTSTRAPCFLAGS?"
echo "##############################################################"
echo ""
CPU=`/bin/sh ./src/bin/scripts/cpu.sh ./config/InterViews` make X=X11 createdirs
./src/bin/scripts/cpu.sh: ./src/bin/scripts/cpu.sh: No such file or directory
*** Error code 1
make: Fatal error: Command failed for target `bootstrap'



Using GNU make, ver 3.54, gnumake -n bootstrap results in:

imake -T "IVImake.tmpl" -I./config/InterViews -I./config  -DTOPDIR=.
imake: No such file or directory: No description file.  Stop.
gnumake: *** [Makefile] Error 1

In addition, the Makefile has been removed, even though I used the
'-n' flag.

===================Makefile========================
# Makefile generated by imake - do not edit!
# $XConsortium: imake.c,v 1.41 89/02/21 11:42:35 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.
#

#
# "IVImake.tmpl" - generic imake template customized for InterViews
#
# You may change platform-specific parameters in the appropriate .cf
# configuration files.  You may set site-wide parameters in the file
# IVsite.def.  You may need a full rebuild if you change any parameters.
#

# architecture:  SUN4

# platform:  $XConsortium: sun.cf,v 1.7 89/03/02 13:28:18 jim Exp $
# operating system:  SunOS 4.0

#
# Generic make variables
#

            SHELL = /bin/sh

              TOP = .

               AR = ar cq
  BOOTSTRAPCFLAGS =
  BOOTSTRAPCPUCMD = /bin/sh $(SCRIPTSRC)/cpu.sh $(IVCONFIGSRC)
  BOOTSTRAPMACROS = BOOTSTRAPCFLAGS='$(BOOTSTRAPCFLAGS)' DESTDIR='$(DESTDIR)' \
			EXTRA_CFLAGS='$(EXTRA_CFLAGS)'
               CC = /home/gnu/bin/gcc
         COMPRESS = compress
              CPP = /lib/cpp $(STD_CPP_DEFINES)
    PREPROCESSCMD = /home/gnu/bin/gcc -E $(STD_CPP_DEFINES)
           DEPEND = makedepend
         GENCLASS = genclass
            IMAKE = imake
          INSTALL = install
               LD = ld
             LINT = lint
      LINTLIBFLAG = -C
         LINTOPTS = -axz
               LN = ln -s
             MAKE = make X=$X
        MKDIRHIER = /bin/sh $(SCRIPTSRC)/mkdirhier.sh
               MV = mv
               CP = cp
           RANLIB = ranlib
  RANLIBINSTFLAGS =
               RM = rm -f
             TAGS = ctags
            TROFF = psroff
  STD_CPP_DEFINES =
      STD_DEFINES =
 EXTRA_LOAD_FLAGS =
  EXTRA_LIBRARIES =

     INSTBINFLAGS = -m 0755
     INSTUIDFLAGS = -m 4755
     INSTLIBFLAGS = -m 0664
     INSTINCFLAGS = -m 0444
     INSTMANFLAGS = -m 0444
     INSTDATFLAGS = -m 0444
    INSTKMEMFLAGS = -m 4755

      CDEBUGFLAGS =
           CFLAGS = $(CDEBUGFLAGS) $(EXTRA_CFLAGS) \
			$(INCLUDES) $(STD_DEFINES) $(DEFINES)
        LINTFLAGS = $(LINTOPTS) $(INCLUDES) $(STD_DEFINES) $(DEFINES) -DLINT
          LDFLAGS = $(CDEBUGFLAGS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)

        MACROFILE = sun.cf
        IMAKE_CMD = $(IMAKE) $(IMAKEOPTS) $(EXTRA_IMAKEOPTS)
           RM_CMD = $(RM) .emacs_* *.CKP *.ln *.BAK *.bak *.a *.o *..c ,* *~ \
			a.out core errs tags TAGS make.log make.out

#
# Project.tmpl - project-specific configuration file
#

          DESTDIR =

        USRLIBDIR = $(TOP)/lib/$$CPU
           BINDIR = $(TOP)/bin/$$CPU.$X
      LOCALBINDIR = $(TOP)/bin/$$CPU
          INCROOT = $(TOP)/include

           INCDIR = $(INCROOT)/InterViews
     TEMPLATESDIR = $(INCDIR)/Templates
           LIBDIR = $(DESTDIR)/usr/lib/X11
        CONFIGDIR = $(LIBDIR)/config
      IVCONFIGDIR = $(CONFIGDIR)/InterViews
          MANPATH = $(DESTDIR)/usr/man
    MANSOURCEPATH = $(MANPATH)/man
           MANDIR = $(MANSOURCEPATH)n
        LIBMANDIR = $(MANSOURCEPATH)n

        CONFIGSRC = $(TOP)/config
      IVCONFIGSRC = $(CONFIGSRC)/InterViews
            IVSRC = $(TOP)/src
       INCLUDESRC = $(IVSRC)/InterViews
     TEMPLATESSRC = $(INCLUDESRC)/Templates
           BINSRC = $(IVSRC)/bin
         IMAKESRC = $(BINSRC)/imake
        SCRIPTSRC = $(BINSRC)/scripts
 LIBINTERVIEWSSRC = $(IVSRC)/libInterViews
    LIBGRAPHICSRC = $(IVSRC)/libgraphic
       LIBTEXTSRC = $(IVSRC)/libtext
           MANSRC = $(TOP)/man

        IMAKETMPL = "IVImake.tmpl"

        IMAKEOPTS = -T $(IMAKETMPL) -I$(IVCONFIGSRC) -I$(CONFIGSRC)

               CC = /home/gnu/bin/g++
               LD = /home/gnu/bin/g++
     DEPENDCFLAGS = $(CFLAGS) -I/home/gnu/include/g++-include
     INSTPGMFLAGS = -s
     AFTERINSTALL = $(RM)

         INCLUDES = -I$(SRC) -I$(GEN) -I$(IVSRC) -I$(INCLUDESRC)/Std
        TEMPLATES = $(TEMPLATESSRC)

    LIBINTERVIEWS = $(LIBINTERVIEWSSRC)/$M/libInterViews$X.a
       LIBGRAPHIC = $(LIBGRAPHICSRC)/$M/libgraphic.a
          LIBTEXT = $(LIBTEXTSRC)/$M/libtext.a

             AOUT = a.out
              SRC = .
              GEN = Generated
                M = SUN4
                X = X11

#
# iv - root of the InterViews directory tree
#
# "make bootstrap" installs executables needed by "make World".
# "make World" builds InterViews for the first time.
# "make install" installs the binaries and libraries relative to $(TOP).
# "make install.config" installs the config files into /usr.
# "make install.include" installs the include files relative to $(TOP).
# "make install.man" installs the man pages into /usr.
# "make format" formats the InterViews manual.
# "make print" formats and sends the InterViews manual to the printer.
# "make clean" removes the current platform's binaries and libraries.
#

SUBDIRS	= src

all::
	-@for i in $(SUBDIRS); \
	do \
	if [ -d $$i ]; then \
	echo "making all in $$i"; \
	(cd $$i; $(MAKE) EXTRA_CFLAGS='$(EXTRA_CFLAGS)' all); \
	else continue; fi; \
	done

depend::
	-@for i in $(SUBDIRS); \
	do \
	if [ -d $$i ]; then \
	echo "depending in $$i"; \
	(cd $$i; $(MAKE) EXTRA_CFLAGS='$(EXTRA_CFLAGS)' depend); \
	else continue; fi; \
	done
install:: createdirs

install.config::
	-@for i in config; \
	do \
	if [ -d $$i ]; then \
	echo "installing config files in $$i"; \
	(cd $$i; $(MAKE) DESTDIR='$(DESTDIR)' install.config); \
	else continue; fi; \
	done

install.include::
	-@for i in $(SUBDIRS); \
	do \
	if [ -d $$i ]; then \
	echo "installing include files in $$i"; \
	(cd $$i; $(MAKE) DESTDIR='$(DESTDIR)' install.include); \
	else continue; fi; \
	done

install.man::
	-@for i in man; \
	do \
	if [ -d $$i ]; then \
	echo "installing man pages in $$i"; \
	(cd $$i; $(MAKE) DESTDIR='$(DESTDIR)' install.man); \
	else continue; fi; \
	done

format::
	-@for i in man; \
	do \
	if [ -d $$i ]; then \
	echo "formatting in $$i"; \
	(cd $$i; $(MAKE)  format); \
	else continue; fi; \
	done

print::
	-@for i in man; \
	do \
	if [ -d $$i ]; then \
	echo "printing in $$i"; \
	(cd $$i; $(MAKE)  print); \
	else continue; fi; \
	done

Makefiles::
	-@for i in config; \
	do \
	if [ -d $$i ]; then \
	echo "Making Makefiles in $$i"; \
	if [ -f $$i/Makefile ]; then \
	$(RM) $$i/Makefile.bak; \
	$(MV) $$i/Makefile $$i/Makefile.bak; \
	fi; \
	$(IMAKE_CMD) -DTOPDIR=../$(TOP) -f $$i/Imake.file \
	-s $$i/Makefile; \
	(cd $$i; $(MAKE) Makefiles); \
	else continue; fi; \
	done

Makefiles::
	-@for i in man $(SUBDIRS); \
	do \
	if [ -d $$i ]; then \
	echo "Making Makefiles in $$i"; \
	if [ -f $$i/Makefile ]; then \
	$(RM) $$i/Makefile.bak; \
	$(MV) $$i/Makefile $$i/Makefile.bak; \
	fi; \
	$(IMAKE_CMD) -DTOPDIR=../$(TOP) -f $$i/Imakefile \
	-s $$i/Makefile; \
	(cd $$i; $(MAKE) Makefiles); \
	else continue; fi; \
	done

clean_maybe::

#
# Bootstrap executables that must be installed before InterViews
# can be built.
#

bootstrap::
	@echo "##############################################################"
	@echo "Did you remember to check the configuration parameters in the"
	@echo "the directory config/InterViews and set BOOTSTRAPCFLAGS?"
	@echo "##############################################################"
	@echo ""
	@CPU=`$(BOOTSTRAPCPUCMD)` $(MAKE) createdirs

bootstrap::
	-@for i in $(SUBDIRS); \
	do \
	if [ -d $$i ]; then \
	echo "bootstrapping in $$i"; \
	(cd $$i; $(MAKE) $(BOOTSTRAPMACROS) bootstrap); \
	else continue; fi; \
	done

bootstrap::
	@echo ""
	@echo "##############################################################"
	@echo "Extend your PATH if necessary and put CPU in your environment"
	@echo "before continuing with the rest of the build process."
	@echo "##############################################################"

#
# Build InterViews for the first time.  Warning: clean removes
# make.log and make.out.
#

WORLDOPTS = -k

World::
	@echo ""
	@echo "Building InterViews 2.5"
	@echo ""
	@echo "##############################################################"
	@echo "Did you remember to extend your PATH to include imake et al"
	@echo "and put CPU in your environment?"
	@echo "##############################################################"
	@echo ""
	@date
	@echo ""
	@$(MAKE) Makefile
	@$(MAKE) Makefiles
	@$(MAKE) clean_maybe
	@$(MAKE) depend
	@$(MAKE) $(WORLDOPTS)
	@echo ""
	@date
	@echo ""
	@echo "Build of InterViews 2.5 complete."
	@echo ""

#
# Create the directories in which to install files if necessary.
#

DIRS_TO_CREATE = \
	$(USRLIBDIR) \
	$(BINDIR) \
	$(LOCALBINDIR)

createdirs::
	$(MKDIRHIER) $(DIRS_TO_CREATE)

#
# Common rules for all Makefiles from "IVImake.tmpl" - do not edit.
#

clean::
	$(RM_CMD) \#*

Makefile::
	-@if [ -f Makefile ]; then \
	$(RM) Makefile.bak; \
	$(MV) Makefile Makefile.bak; \
	else exit 0; fi
	$(IMAKE_CMD) -DTOPDIR=$(TOP)

install::
	-@for i in $(SUBDIRS); \
	do \
	if [ -d $$i ]; then \
	echo "installing in $$i"; \
	(cd $$i; $(MAKE) DESTDIR='$(DESTDIR)' install); \
	else continue; fi; \
	done

clean::
	-@for i in $(SUBDIRS); \
	do \
	if [ -d $$i ]; then \
	echo "cleaning in $$i"; \
	(cd $$i; $(MAKE) RM_CMD='$(RM_CMD)' clean); \
	else continue; fi; \
	done

#
# dependencies generated by makedepend
#