error in make

Discussion in 'Mac Programming' started by Soverc, Feb 9, 2006.

  1. macrumors member

    Joined:
    Oct 7, 2005
    #1
    the first example is what should happen the second one I give is what is happening for me. If anyone can shed some light on this please do so.

    Thanks,

    EXAMPLE 1 --

    $ FOOMATIC_RIP=/usr/libexec/cups/filter/foomatic-rip CC=gcc-4.0 ./configure
    checking for gcc... gcc-4.0
    checking for C compiler default output... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc-4.0 accepts -g... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether ln -s works... yes
    checking whether make sets ${MAKE}... yes
    checking for gzip... /usr/bin/gzip
    checking for cups/model/... /usr/share/cups/model
    checking for gs... /usr/local/bin/gs
    testing /usr/local/bin/gs...
    ESP Ghostscript 7.07 (2003-07-12)
    Copyright 2003 artofcode LLC and Easy Software Products, all rights reserved.
    This software comes with NO WARRANTY: see the file PUBLIC for details.
    Version=707
    ok
    checking for foomatic-rip... /usr/libexec/cups/filter/foomatic-rip
    checking for foomatic-ppdfile... no
    checking for foomatic/db/... no
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating m2300w.spec
    config.status: creating src/Makefile
    config.status: creating src/m2300w-wrapper
    config.status: creating ppd/Makefile
    config.status: creating psfiles/Makefile
    config.status: creating foomatic/Makefile

    $ make
    for DIR in src psfiles foomatic ppd; do (cd $DIR; make all); done
    gcc-4.0 -g -O2 -o m2300w m2300w.c
    make[1]: Nothing to be done for `all".
    make[1]: Nothing to be done for `all".
    make[1]: Nothing to be done for `all".


    EXAMPLE2 --What happens for me---Note the error at the MAKE
    FOOMATIC_RIP=/usr/libexec/cups/filter/foomatic-rip CC=gcc-4.0 ./configure
    checking for gcc... gcc-4.0
    checking for C compiler default output... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc-4.0 accepts -g... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether ln -s works... yes
    checking whether make sets ${MAKE}... yes
    checking for floor in -lm... yes
    checking for gzip... /usr/bin/gzip
    checking for cups/model/... /usr/share/cups/model
    checking for gs... /usr/local/bin/gs
    testing /usr/local/bin/gs...
    ESP Ghostscript 7.07 (2003-07-12)
    Copyright 2003 artofcode LLC and Easy Software Products, all rights reserved.
    This software comes with NO WARRANTY: see the file PUBLIC for details.
    Version=707
    ok
    checking for foomatic-rip... /usr/libexec/cups/filter/foomatic-rip
    checking for foomatic-ppdfile... no
    checking for foomatic/db/... no
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating m2300w.spec
    config.status: creating src/Makefile
    config.status: creating src/m2300w-wrapper
    config.status: creating ppd/Makefile
    config.status: creating psfiles/Makefile
    config.status: creating foomatic/Makefile
    mikes-computer:/temp/m2300w-0.51 mike$ make
    for DIR in src psfiles foomatic ppd; do (cd $DIR; make all); done
    make[1]: Nothing to be done for `all'.
    make[1]: Nothing to be done for `all'.
    make[1]: Nothing to be done for `all'.
    make[1]: *** No rule to make target `magicolor_2300W-m2300w.ppd', needed by `all'. Stop.
    make: *** [all] Error 2
     
  2. Administrator

    Doctor Q

    Staff Member

    Joined:
    Sep 19, 2002
    Location:
    Kepler-452b
    #2
    Two thoughts, although I don't know if they will help.

    1. If you add the make -d switch, the make command will tell you why it is making each decision. It might produce a lot of output to go though, but that could let you see what file dependencies are being tested, if you understand the way makefiles work (i.e., targets, dependencies, and date checking).

    2. File foomatic/Makefile, which is being created, has a target named "all" which has a dependency on file magicolor_2300W-m2300w.ppd. But there is no rule to create file magicolor_2300W-m2300w.ppd.

    I'm guessing that ppd is a printer definition file that should have already been present, so no rule is needed to generate it and "make all" is complaining that it can't find the file.
     
  3. thread starter macrumors member

    Joined:
    Oct 7, 2005
    #3
    with make -d

    Below you can see what I am getting when I do a make -d I have only pasted the last 25 or so lines.

    I dont understand what the 'all' is.



    Rejecting impossible implicit prerequisite `all.cc'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.C'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.cpp'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.p'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.f'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.F'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.m'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.r'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.s'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.S'.
    Trying pattern rule with stem `all'.
    Rejecting impossible implicit prerequisite `all.mod'.
    Trying pattern rule with stem `all'.
    Trying implicit prerequisite `all.sh'.
    Looking for a rule with intermediate file `all.sh'.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `all.sh'.
    Trying implicit prerequisite `all.sh,v'.
    Trying pattern rule with stem `all.sh'.
    Trying implicit prerequisite `RCS/all.sh,v'.
    Trying pattern rule with stem `all.sh'.
    Trying implicit prerequisite `RCS/all.sh'.
    Trying pattern rule with stem `all.sh'.
    Trying implicit prerequisite `s.all.sh'.
    Trying pattern rule with stem `all.sh'.
    Trying implicit prerequisite `SCCS/s.all.sh'.
    No implicit rule found for `all'.
    Finished prerequisites of target file `all'.
    Must remake target `all'.
    make[1]: *** No rule to make target `all'. Stop.
    Got a SIGCHLD; 1 unreaped children.
    Reaping losing child 0x0030a800 PID 6574
    make: *** [all] Error 2
    Removing child 0x0030a800 PID 6574 from chain.
     
  4. macrumors 601

    zimv20

    Joined:
    Jul 18, 2002
    Location:
    chicago
    #4
    is there, in fact, an "all" target in the makefile?

    are you calling the makefile correctly?
     
  5. thread starter macrumors member

    Joined:
    Oct 7, 2005
    #5
    This is all that is in the makefile

    # $Header: /cvsroot/m2300w/m2300w/Makefile.in,v 1.5 2004/08/04 14:11:22 gfuer Exp $
    #
    # Copyright (C) 2004 Gerhard Fuernkranz
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    #


    INSTALL = /usr/bin/install -c

    INSTROOT =
    PREFIX = /usr
    NAME = m2300w
    VERSION = 0.51
    RELEASE = 1
    DOCDIR = $(INSTROOT)$(PREFIX)/share/doc/$(NAME)-$(VERSION)

    SUBDIRS = src psfiles foomatic ppd
    DOCFILES = README README.ghostscript INSTALL COPYING

    all:
    for DIR in $(SUBDIRS); do (cd $$DIR; $(MAKE) $@); done

    install:
    rm -rf $(INSTROOT)$(PREFIX)/share/$(NAME)/crd
    for DIR in $(SUBDIRS); do (cd $$DIR; $(MAKE) INSTROOT=$(INSTROOT) $@); done
    $(INSTALL) -c -d -m 755 $(DOCDIR)
    $(INSTALL) -c -m 644 $(DOCFILES) $(DOCDIR)

    ppd: always
    $(MAKE) install
    (cd foomatic; $(MAKE) $@)
    $(MAKE) install

    clean:
    rm -rf INSTROOT
    rm -f $(NAME)-$(VERSION).tar.gz
    rm -f $(NAME)-$(VERSION)-$(RELEASE).spec
    for DIR in $(SUBDIRS); do (cd $$DIR; $(MAKE) $@); done

    distclean: clean
    for DIR in $(SUBDIRS); do (cd $$DIR; $(MAKE) $@); done
    rm -rf config.log autom4te.cache config.status Makefile m2300w.spec

    rpm: all m2300w.spec
    rm -rf INSTROOT
    mkdir -m 755 INSTROOT
    $(MAKE) install INSTROOT=`pwd`/INSTROOT
    M2300W_MAKE=y rpm -bb --buildroot=`pwd`/INSTROOT m2300w.spec
    # rm -rf INSTROOT

    srpm: m2300w.spec
    rm -f $(NAME)-$(VERSION)-$(RELEASE).spec
    ln -s m2300w.spec $(NAME)-$(VERSION)-$(RELEASE).spec
    rpm -bs $(NAME)-$(VERSION)-$(RELEASE).spec

    tarball: distclean
    rm -rf /tmp/$(NAME)-$(VERSION)
    mkdir /tmp/$(NAME)-$(VERSION)
    find . | cpio -pdum /tmp/$(NAME)-$(VERSION)
    find /tmp/$(NAME)-$(VERSION) -name CVS | xargs rm -rf
    HERE=`pwd`; cd /tmp ; \
    tar zcvf $$HERE/$(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)

    always:
     
  6. Administrator

    Doctor Q

    Staff Member

    Joined:
    Sep 19, 2002
    Location:
    Kepler-452b
    #6
    It appears to be treating "all" as the name of a particular source file, and trying to compile or process it, rather than giving "all" the usual meaning in a Makefile, which is to build all other target files.

    I think you are looking at a symptom of something than went wrong earlier in the process.

    If these are files you downloaded, perhaps you need to go back to that source for help, clues, or further information.
     
  7. macrumors 601

    zimv20

    Joined:
    Jul 18, 2002
    Location:
    chicago
    #7
    two things:
    1. do you have write permission for /usr?
    2. for the makefiles in the subdirs, what are their all targets?
     

Share This Page