Thread

  1. Re: [HACKERS] New psql compile problem.

    Keith Parks <emkxp01@mtcc.demon.co.uk> — 1999-11-07T12:56:37Z

    >From: Tom Lane <tgl@sss.pgh.pa.us>
    >
    >Keith Parks <emkxp01@mtcc.demon.co.uk> writes:
    >>>> make[2]: *** No rule to make target `../../../doc/src/sgml/ref/*.sgml', 
    >>>> needed 
    >>>> by `sql_help.h'.  Stop.
    >>>> make[2]: Leaving directory `/export/home/pgsql/src/bin/psql'
    >
    >>> Do you have sgml files in that directory?  You should.
    >
    >> Plenty of them...
    >>
    >> directory. Not the usual sort of thing you see in makefiles.
    >
    >
    >This makefile coding does depend on wildcard expansion in dependency
    >lists, which is a GNU-make ism that probably doesn't get a lot of
    >testing.  What version of make are you running?
    >
    >It might be worth changing the rule to use explicit wildcard expansion,
    >
    >sql_help.h: $(wildcard ../../../doc/src/sgml/ref/*.sgml) create_help.pl
    >
    >in case some versions of make need that extra cue to do the right thing...
    >
    
    My make is :-
    
    bash-2.03$ make --version
    GNU Make version 3.77, by Richard Stallman and Roland McGrath.
    Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98
    
    so it's fairly recent. ( binary dist from the sunfreeware site. ) 
    
    Your suggestion above fixes the problem so it might as well be
    included in the official makefile.
    
    *** src/bin/psql/Makefile.in.orig	Sun Nov  7 10:39:26 1999
    --- src/bin/psql/Makefile.in	Sun Nov  7 10:40:30 1999
    ***************
    *** 46,52 ****
      help.o: sql_help.h
      
      ifneq ($(strip $(PERL)),) 
    ! sql_help.h: ../../../doc/src/sgml/ref/*.sgml create_help.pl
      	$(PERL) create_help.pl sql_help.h 
      else
      sql_help.h:
    --- 46,52 ----
      help.o: sql_help.h
      
      ifneq ($(strip $(PERL)),) 
    ! sql_help.h: $(wildcard ../../../doc/src/sgml/ref/*.sgml) create_help.pl
      	$(PERL) create_help.pl sql_help.h 
      else
      sql_help.h:
    
    
    Further testing shows that make fails in this case but is OK in others.
    
    	bash-2.03$ cat Makefile2
    	tmplist: /tmp/*
            	ls /tmp > tmplist
    	bash-2.03$ make -f Makefile2
    	ls /tmp > tmplist
    
    
    I've just downloaded the source for GNU make 3.78.1 and built myself.
    This version makes the above problem case without problems.
    
    
    Keith.
    
    I'm ccing this to steve@smc.vnet.net for info.
    
    Steve, This was the version I had installed.
    
    % pkginfo -l -d ./make-3.77-sol7-sparc-local
       PKGINST:  SMCmake
          NAME:  make
      CATEGORY:  application
          ARCH:  sparc
       VERSION:  3.77
       BASEDIR:  /usr/local
        VENDOR:  Free Software Foundation
        PSTAMP:  Steve Christensen
         EMAIL:  steve@smc.vnet.net
        STATUS:  spooled
         FILES:     52 spooled pathnames
                     6 directories
                     1 executables
                     2 package information files
                  4633 blocks used (approx)