bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #64472] $(CP) is an empty string


From: anonymous
Subject: [bug #64472] $(CP) is an empty string
Date: Wed, 26 Jul 2023 01:37:11 -0400 (EDT)

Follow-up Comment #1, bug #64472 (project make):

https://www.gnu.org/software/make/manual/html_node/Utilities-in-Makefiles.html
says that $(INSTALL) should be used instead of directly invoking install(1)
but says nothing about $(CP).  Indeed, it contrasts cp with install, saying
that cp is OK to invoke directly:

> The configure script and the Makefile rules for building and installation
should not use any utilities directly except these:
> 
> ... cp ... rm ...
>
> The Makefile rules for building and installation can also use compilers and
related programs, but should do so via make variables so that the user can
substitute alternatives. Here are some of the programs we mean:
> 
> ... $(INSTALL)

Looking at somewhat redacted excerpts from the output of:


martind@stormy:~/tmp/make-64472$ cat Makefile
martind@stormy:~/tmp/make-64472$ make -n -p 2>&1 | grep '^[A-Z]* = ' | sort
...
AR = ar
ARFLAGS = -rv
AS = as
...
CC = cc
CO = co
COFLAGS =
...
CPP = $(CC) -E
CTANGLE = ctangle
CWEAVE = cweave
CXX = g++
...
FC = f77
...
GET = get
...
HOME = /home/martind
...
LANG = en_US.UTF-8
LD = ld
LEX = lex
LINT = lint
LOGINPATH = /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
LOGNAME = martind
MAIL = /var/mail/martind
MAKE = $(MAKE_COMMAND)
MAKEFLAGS = np
MAKEINFO = makeinfo
...
MANPATH = ...
...
MFLAGS = -np
...
OBJC = cc
OLDPWD = /home/martind/tmp
PAGER = less
PATH = ...
PC = pc
PWD = /home/martind/tmp/make-64472
RM = rm -f
...
SHELL = /bin/sh
SHLVL = 0
...
TANGLE = tangle
TERM = xterm
TEX = tex
TZ = America/Los_Angeles
USER = martind
WEAVE = weave
...
YACC = yacc
martind@stormy:~/tmp/make-64472$


... I see that rm, which was on the list of directly invokable utilities with
cp, nonetheless has an RM namesake, which contains the very much conventional,
but non-obvious and misleading, -f.  AR is there alright but, had the OP
chosen INSTALL as their example, there'd be more of a case to answer.  A
cross-reference to
https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
might help to explain what can be relied upon without Autotools or such.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64472>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]