Re: [HACKERS] New psql compile problem.

Keith Parks <emkxp01@mtcc.demon.co.uk>

From: Keith Parks <emkxp01@mtcc.demon.co.uk>
To: tgl@sss.pgh.pa.us
Cc: maillist@candle.pha.pa.us, hackers@postgresql.org
Date: 1999-11-07T12:56:37Z
Lists: pgsql-hackers
>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)