Re: [PATCH] make: add install-strip target

2 messages, 2 authors, 2021-08-24 · open the first message on its own page

Re: [PATCH] make: add install-strip target

From: Junio C Hamano <hidden>
Date: 2021-08-19 19:54:43

Johannes Schindelin [off-list ref] writes:
-install: all
+install: all | strip
 	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
 	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
 	$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
-- snap --

I am not quite certain that this is compatible with other `make`
implementations we still might support (if there are any, I remember that
we often have to rely on `gmake` because the native `make` does not
understand our `Makefile`?), so that might need to be conditional on GNU
Make.
I think we are pretty-much dependent on GNU make already (it is
possible to raise a weather balloon to confirm by renaming Makefile
to GNUmakefile and observing if anybody complains, I think).

But I am not sure what such a rule does for a .PHONY target like
'strip'.  Does it do the right thing, i.e. "install recipe is run
after 'strip' recipe has run, iff 'strip' is also asked for"?

Thanks.

Re: [PATCH] make: add install-strip target

From: Johannes Schindelin <hidden>
Date: 2021-08-24 13:16:07

Hi Junio,

On Thu, 19 Aug 2021, Junio C Hamano wrote:
Johannes Schindelin [off-list ref] writes:
quoted
-install: all
+install: all | strip
 	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
 	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
 	$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
-- snap --

I am not quite certain that this is compatible with other `make`
implementations we still might support (if there are any, I remember that
we often have to rely on `gmake` because the native `make` does not
understand our `Makefile`?), so that might need to be conditional on GNU
Make.
I think we are pretty-much dependent on GNU make already (it is
possible to raise a weather balloon to confirm by renaming Makefile
to GNUmakefile and observing if anybody complains, I think).

But I am not sure what such a rule does for a .PHONY target like
'strip'.  Does it do the right thing, i.e. "install recipe is run
after 'strip' recipe has run, iff 'strip' is also asked for"?
My reading of the documentation is that just as with regular dependencies,
it does not matter whether order-only dependencies are .PHONY or not.

The only difference between order-only vs regular dependencies seems to be
that order-only dependencies are not necessarily built. But if they are,
they are guaranteed to be built before the order-only dependencee.

Granted, I did not have time to test it, but from an implementation point
of view, I would be surprised if there was any more to it.

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help