🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.utils.bug
Article #1323

make 3.63

#1323
From: Rik Faith
Date: Tue, 26 Jan 1993 01:49
50 lines
1838 bytes
I'm working with a set of nested makefiles which depend on variables being
passed in the environment.  So, I put a

.EXPORT_ALL_VARIABLES:

in the top level Makefile, and all seemed to be well.  However, in a
Makefile 3 levels down, a builtin rule is used to convert a .c file into a
.o file, with the following error being generated:

  gcc -DKERNEL -Wall -O6 -fomit-frame-pointer -m486
  "-DMAX_SCSI_HOSTS=(1+0)" -c hosts.c -o

  gcc: argument to `-o' is missing
  make[3]: *** [hosts.o] Error 1


The following builtin rule is being used for this:

%.o: %.c
#  commands to execute (built-in):
        $(COMPILE.c) $< $(OUTPUT_OPTION)

*but*

OUTPUT_OPTION = -o

*instead of*

OUTPUT_OPTION = -o $@



The NEWS file for make 3.63 says:

* The value of a recursively expanded variable is now expanded when putting
  it into the environment for child processes.  This change was made for
  compatibility with Unix make.

which appears to be the reason for the anomaly described above.

Is there any way to make version 3.63 work EXACTLY like version 3.62?  I'd
prefer not to "unexport OUTPUT_OPTION" because the makefile should still be
allowed to work with make 3.62.

This set of changes seem too drastic to make for a minor revision, IMHO,
since they seem to break expected builtin rule behavior in unexpected ways.

-- 
Rik Faith: faith@cs.unc.edu
What I tell you three times is true.  --Dodgson
Technical Details
Message-ID: <1jvifdINNli5@borg.cs.unc.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!cs.unc.edu!faith

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!cs.unc.edu!faith
From: faith@cs.unc.edu (Rik Faith)
Newsgroups: gnu.utils.bug
Subject: make 3.63
Date: 25 Jan 1993 20:49:26 -0500
Organization: The University of North Carolina at Chapel Hill
Lines: 52
Sender: daemon@cis.ohio-state.edu
Approved: bug-gnu-utils@prep.ai.mit.edu
Distribution: gnu
Message-ID: <1jvifdINNli5@borg.cs.unc.edu>