home *** CD-ROM | disk | FTP | other *** search
- Path: 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>
-
- 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
-
-
-