public inbox for bzip2-devel@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 1/2] Makefile: modernize install rule
@ 2020-10-13 10:20 Stephen Gregoratto
  2020-10-13 10:20 ` [PATCH 2/2] words3: Add note about DESTDIR Stephen Gregoratto
  0 siblings, 1 reply; 2+ messages in thread
From: Stephen Gregoratto @ 2020-10-13 10:20 UTC (permalink / raw)
  To: bzip2-devel; +Cc: Stephen Gregoratto

- The global value DESTDIR is used to prepend a path for each file
  installed. This is used by every package manager out there. See [1].
- The commands have been reordered to follow a pattern of mkdir, copy,
  chmod, link.

[1] https://www.gnu.org/prep/standards/html_node/DESTDIR.html
---
Note that while I've retained the same pattern, I much prefer using the
install(1) utility to do this. It's available on any modern *NIXen out
there, with the only snag being that some don't have a certain flag
"-D", but this can be easily worked around.

Thus the improved version would along the lines of:

  install -Dm755 bzip2 $(DESTDIR)$(PREFIX)/usr/bin/bzip2
  ...
  install -Dm644 bzip2.1 $(DESTDIR)$(PREFIX)/usr/share/man/man1/bzip2.1

 Makefile | 74 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 37 insertions(+), 37 deletions(-)

diff --git a/Makefile b/Makefile
index b0fef95..d98e09b 100644
--- a/Makefile
+++ b/Makefile
@@ -70,43 +70,43 @@ test: bzip2
 	@cat words3
 
 install: bzip2 bzip2recover
-	if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
-	if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi
-	if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
-	if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
-	if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
-	cp -f bzip2 $(PREFIX)/bin/bzip2
-	cp -f bzip2 $(PREFIX)/bin/bunzip2
-	cp -f bzip2 $(PREFIX)/bin/bzcat
-	cp -f bzip2recover $(PREFIX)/bin/bzip2recover
-	chmod a+x $(PREFIX)/bin/bzip2
-	chmod a+x $(PREFIX)/bin/bunzip2
-	chmod a+x $(PREFIX)/bin/bzcat
-	chmod a+x $(PREFIX)/bin/bzip2recover
-	cp -f bzip2.1 $(PREFIX)/man/man1
-	chmod a+r $(PREFIX)/man/man1/bzip2.1
-	cp -f bzlib.h $(PREFIX)/include
-	chmod a+r $(PREFIX)/include/bzlib.h
-	cp -f libbz2.a $(PREFIX)/lib
-	chmod a+r $(PREFIX)/lib/libbz2.a
-	cp -f bzgrep $(PREFIX)/bin/bzgrep
-	ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
-	ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
-	chmod a+x $(PREFIX)/bin/bzgrep
-	cp -f bzmore $(PREFIX)/bin/bzmore
-	ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
-	chmod a+x $(PREFIX)/bin/bzmore
-	cp -f bzdiff $(PREFIX)/bin/bzdiff
-	ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
-	chmod a+x $(PREFIX)/bin/bzdiff
-	cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
-	chmod a+r $(PREFIX)/man/man1/bzgrep.1
-	chmod a+r $(PREFIX)/man/man1/bzmore.1
-	chmod a+r $(PREFIX)/man/man1/bzdiff.1
-	echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1
-	echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1
-	echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1
-	echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	mkdir -p $(DESTDIR)$(PREFIX)/lib
+	mkdir -p $(DESTDIR)$(PREFIX)/man/man1
+	mkdir -p $(DESTDIR)$(PREFIX)/include
+	cp -f bzip2 $(DESTDIR)$(PREFIX)/bin/bzip2
+	cp -f bzip2 $(DESTDIR)$(PREFIX)/bin/bunzip2
+	cp -f bzip2 $(DESTDIR)$(PREFIX)/bin/bzcat
+	cp -f bzip2recover $(DESTDIR)$(PREFIX)/bin/bzip2recover
+	cp -f bzgrep $(DESTDIR)$(PREFIX)/bin/bzgrep
+	cp -f bzmore $(DESTDIR)$(PREFIX)/bin/bzmore
+	cp -f bzdiff $(DESTDIR)$(PREFIX)/bin/bzdiff
+	chmod a+x $(DESTDIR)$(PREFIX)/bin/bzip2
+	chmod a+x $(DESTDIR)$(PREFIX)/bin/bunzip2
+	chmod a+x $(DESTDIR)$(PREFIX)/bin/bzcat
+	chmod a+x $(DESTDIR)$(PREFIX)/bin/bzip2recover
+	chmod a+x $(DESTDIR)$(PREFIX)/bin/bzgrep
+	chmod a+x $(DESTDIR)$(PREFIX)/bin/bzmore
+	chmod a+x $(DESTDIR)$(PREFIX)/bin/bzdiff
+	ln -sf $(PREFIX)/bin/bzgrep $(DESTDIR)$(PREFIX)/bin/bzegrep
+	ln -sf $(PREFIX)/bin/bzgrep $(DESTDIR)$(PREFIX)/bin/bzfgrep
+	ln -sf $(PREFIX)/bin/bzmore $(DESTDIR)$(PREFIX)/bin/bzless
+	ln -sf $(PREFIX)/bin/bzdiff $(DESTDIR)$(PREFIX)/bin/bzcmp
+	cp -f bzlib.h $(DESTDIR)$(PREFIX)/include
+	cp -f libbz2.a $(DESTDIR)$(PREFIX)/lib
+	chmod a+r $(DESTDIR)$(PREFIX)/include/bzlib.h
+	chmod a+r $(DESTDIR)$(PREFIX)/lib/libbz2.a
+	cp -f bzip2.1 $(DESTDIR)$(PREFIX)/man/man1
+	cp -f bzgrep.1 bzmore.1 bzdiff.1 $(DESTDIR)$(PREFIX)/man/man1
+	chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzip2.1
+	chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzgrep.1
+	chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzmore.1
+	chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzdiff.1
+	umask a+r
+	echo ".so man1/bzgrep.1" > $(DESTDIR)$(PREFIX)/man/man1/bzegrep.1
+	echo ".so man1/bzgrep.1" > $(DESTDIR)$(PREFIX)/man/man1/bzfgrep.1
+	echo ".so man1/bzmore.1" > $(DESTDIR)$(PREFIX)/man/man1/bzless.1
+	echo ".so man1/bzdiff.1" > $(DESTDIR)$(PREFIX)/man/man1/bzcmp.1
 
 clean: 
 	rm -f *.o libbz2.a bzip2 bzip2recover \
-- 
2.28.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 2/2] words3: Add note about DESTDIR
  2020-10-13 10:20 [PATCH 1/2] Makefile: modernize install rule Stephen Gregoratto
@ 2020-10-13 10:20 ` Stephen Gregoratto
  0 siblings, 0 replies; 2+ messages in thread
From: Stephen Gregoratto @ 2020-10-13 10:20 UTC (permalink / raw)
  To: bzip2-devel; +Cc: Stephen Gregoratto

---
 words3 | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/words3 b/words3
index 6972669..79251c1 100644
--- a/words3
+++ b/words3
@@ -20,6 +20,10 @@ is going to do, you can first do
 The -n instructs make to show the commands it would execute, but
 not actually execute them.
 
+If you want to make a staged install (for package managers), type
+
+   make install DESTDIR=/path/to/dir PREFIX=/xxx/yyy
+
 Instructions for use are in the preformatted manual page, in the file
 bzip2.txt.  For more detailed documentation, read the full manual.  
 It is available in Postscript form (manual.ps), PDF form (manual.pdf),
-- 
2.28.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-10-13 10:20 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-13 10:20 [PATCH 1/2] Makefile: modernize install rule Stephen Gregoratto
2020-10-13 10:20 ` [PATCH 2/2] words3: Add note about DESTDIR Stephen Gregoratto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).