[PATCH] make: add INSTALL_STRIP variable

Subsystems: kernel build + files below scripts/ (unless maintained elsewhere), the rest

STALE1817d

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

[PATCH] make: add INSTALL_STRIP variable

From: Bagas Sanjaya <hidden>
Date: 2021-08-20 10:54:11

In some environments (most notably embedded systems and small production
servers), it is often desirable to have stripped Git binaries due to
tight disk space constraint.

Until now stripped Git can be built wih `make strip install`. Add
INSTALL_STRIP make variable so that they can install stripped Git
binaries with `make INSTALL_STRIP=yes install`.

Also document stripping and using INSTALL_STRIP in INSTALL.

Signed-off-by: Bagas Sanjaya <redacted>
---
 Junio suggested me to have INSTALL_STRIP make variable [1] when
 reviewing the install-strip target patch.

 [1]:
https://lore.kernel.org/git/xmqq1r6p1ark.fsf@gitster.g/T/#mc3b8017448bdafedf9250ba407f5de767c20ad67

 INSTALL  | 8 ++++++++
 Makefile | 5 +++++
 2 files changed, 13 insertions(+)
diff --git a/INSTALL b/INSTALL
index 66389ce059..98e541ee4d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -58,6 +58,14 @@ suite has to be run using only a single CPU.  In addition, the profile
 feedback build stage currently generates a lot of additional compiler
 warnings.
 
+You can also strip debug info from built binaries by:
+
+	$ make strip
+
+or for stripping and installing together:
+
+	$ make INSTALL_STRIP=yes install
+
 Issues of note:
 
  - Ancient versions of GNU Interactive Tools (pre-4.9.2) installed a
diff --git a/Makefile b/Makefile
index 9573190f1d..e486f3ab75 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,8 @@ all::
 # Define SANE_TOOL_PATH to a colon-separated list of paths to prepend
 # to PATH if your tools in /usr/bin are broken.
 #
+# Define INSTALL_STRIP if you want to install with stripped binaries.
+#
 # Define SOCKLEN_T to a suitable type (such as 'size_t') if your
 # system headers do not define a socklen_t type.
 #
@@ -3005,6 +3007,9 @@ profile-fast-install: profile-fast
 	$(MAKE) install
 
 install: all
+ifdef INSTALL_STRIP
+	$(MAKE) strip
+endif
 	$(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)'
base-commit: 225bc32a989d7a22fa6addafd4ce7dcd04675dbf
-- 
2.25.1

Re: [PATCH] make: add INSTALL_STRIP variable

From: Đoàn Trần Công Danh <hidden>
Date: 2021-08-20 11:36:15

On 2021-08-20 17:50:53+0700, Bagas Sanjaya [off-list ref] wrote:
quoted hunk
In some environments (most notably embedded systems and small production
servers), it is often desirable to have stripped Git binaries due to
tight disk space constraint.

Until now stripped Git can be built wih `make strip install`. Add
INSTALL_STRIP make variable so that they can install stripped Git
binaries with `make INSTALL_STRIP=yes install`.

Also document stripping and using INSTALL_STRIP in INSTALL.

Signed-off-by: Bagas Sanjaya <redacted>
---
 Junio suggested me to have INSTALL_STRIP make variable [1] when
 reviewing the install-strip target patch.

 [1]:
https://lore.kernel.org/git/xmqq1r6p1ark.fsf@gitster.g/T/#mc3b8017448bdafedf9250ba407f5de767c20ad67

 INSTALL  | 8 ++++++++
 Makefile | 5 +++++
 2 files changed, 13 insertions(+)
diff --git a/INSTALL b/INSTALL
index 66389ce059..98e541ee4d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -58,6 +58,14 @@ suite has to be run using only a single CPU.  In addition, the profile
 feedback build stage currently generates a lot of additional compiler
 warnings.
 
+You can also strip debug info from built binaries by:
+
+	$ make strip
+
+or for stripping and installing together:
+
+	$ make INSTALL_STRIP=yes install
+
 Issues of note:
 
  - Ancient versions of GNU Interactive Tools (pre-4.9.2) installed a
diff --git a/Makefile b/Makefile
index 9573190f1d..e486f3ab75 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,8 @@ all::
 # Define SANE_TOOL_PATH to a colon-separated list of paths to prepend
 # to PATH if your tools in /usr/bin are broken.
 #
+# Define INSTALL_STRIP if you want to install with stripped binaries.
+#
 # Define SOCKLEN_T to a suitable type (such as 'size_t') if your
 # system headers do not define a socklen_t type.
 #
@@ -3005,6 +3007,9 @@ profile-fast-install: profile-fast
 	$(MAKE) install
 
 install: all
+ifdef INSTALL_STRIP
+	$(MAKE) strip
+endif
I believe it's better to write like this:

----- 8< ------
ifdef INSTALL_STRIP
install: strip
endif

install: all
	....
---- >8-------

IOW, install depends on strip, not install invoke strip.
I think it would work better for:

	make install 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)'

base-commit: 225bc32a989d7a22fa6addafd4ce7dcd04675dbf
-- 
2.25.1
-- 
Danh

Re: [PATCH] make: add INSTALL_STRIP variable

From: Bagas Sanjaya <hidden>
Date: 2021-08-21 08:24:31

On 20/08/21 18.36, Đoàn Trần Công Danh wrote:
I believe it's better to write like this:

----- 8< ------
ifdef INSTALL_STRIP
install: strip
endif

install: all
	....
---- >8-------

IOW, install depends on strip, not install invoke strip.
Oh, I missed that.
I think it would work better for:

	make install strip
Wouldn't it install unstripped binaries to the prefix then stripping 
them in the build directory?

-- 
An old man doll... just what I always wanted! - Clara

Re: [PATCH] make: add INSTALL_STRIP variable

From: Đoàn Trần Công Danh <hidden>
Date: 2021-08-21 10:35:32

On 2021-08-21 15:24:22+0700, Bagas Sanjaya [off-list ref] wrote:
On 20/08/21 18.36, Đoàn Trần Công Danh wrote:
quoted
I believe it's better to write like this:

----- 8< ------
ifdef INSTALL_STRIP
install: strip
endif

install: all
	....
---- >8-------

IOW, install depends on strip, not install invoke strip.
Oh, I missed that.
quoted
I think it would work better for:

	make install strip
Wouldn't it install unstripped binaries to the prefix then stripping them in
the build directory?
No, with:

	install: strip

strip is one of install's dependencies, then strip will be executed
before install.

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