From: Stephen Gregoratto <dev@sgregoratto.me>
To: bzip2-devel@sourceware.org
Cc: Stephen Gregoratto <dev@sgregoratto.me>
Subject: [PATCH 1/2] Makefile: modernize install rule
Date: Tue, 13 Oct 2020 21:20:36 +1100 [thread overview]
Message-ID: <20201013102037.692071-1-dev@sgregoratto.me> (raw)
- 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
next reply other threads:[~2020-10-13 10:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-13 10:20 Stephen Gregoratto [this message]
2020-10-13 10:20 ` [PATCH 2/2] words3: Add note about DESTDIR Stephen Gregoratto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201013102037.692071-1-dev@sgregoratto.me \
--to=dev@sgregoratto.me \
--cc=bzip2-devel@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).