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

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).