github.com/StackExchange/blackbox/v2@v2.0.1-0.20220331193400-d84e904973ab/Makefile (about) 1 SHELL=/bin/sh 2 PREFIX?=/usr/local 3 PKGNAME=stack_blackbox 4 BASEDIR?=$(HOME) 5 OUTPUTDIR?="$(BASEDIR)/debbuild-${PKGNAME}" 6 7 all: 8 @echo 'Menu:' 9 @echo ' make update Update any generated files' 10 @echo ' make packages-rpm Make RPM packages' 11 @echo ' make packages-deb Make DEB packages' 12 @echo ' make symlinks-install Make symlinks in ${PREFIX}/bin/' 13 @echo ' make copy-install Copy "bin" files to ${PREFIX}/bin/' 14 @echo ' make copy-uninstall Remove blackbox files from ${PREFIX}/bin/' 15 @echo ' make test Run tests' 16 17 install: 18 @echo 'To install, copy the files from bin to somewhere in your PATH.' 19 @echo 'The README.md document gives more details.' 20 @echo 'Or run "make" (with no options) for more info.' 21 22 # The default package type is RPM. 23 packages: packages-rpm 24 25 # 26 # RPM builds 27 # 28 29 # NOTE: mk_rpm_fpmdir.stack_blackbox.txt is the master list of files. All 30 # other packages should generate their list from it. 31 32 packages-rpm: 33 cd tools && PKGRELEASE="$${PKGRELEASE}" PKGDESCRIPTION="Safely store secrets in git/hg/svn repos using GPG encryption" ./mk_rpm_fpmdir stack_blackbox mk_rpm_fpmdir.stack_blackbox.txt 34 35 packages-rpm-debug: 36 @echo BUILD: 37 @PKGRELEASE=99 make packages 38 @echo ITEMS TO BE PACKAGED: 39 find $(BASEDIR)/rpmbuild-$(PKGNAME)/installroot -type f 40 @echo ITEMS ACTUALLY IN PACKAGE: 41 @rpm -qpl $$(cat $(BASEDIR)/rpmbuild-$(PKGNAME)/bin-packages.txt) 42 43 local-rpm: 44 @PKGRELEASE=1 make packages 45 -@sudo rpm -e $(PKGNAME) 46 sudo rpm -i $$(cat $(BASEDIR)/rpmbuild-$(PKGNAME)/bin-packages.txt) 47 48 lock-rpm: 49 sudo yum versionlock add $(PKGNAME) 50 51 unlock-rpm: 52 sudo yum versionlock clear 53 54 # 55 # Manual install 56 # 57 symlinks-install: 58 @echo "Symlinking files from ./bin to ${PREFIX}/bin" 59 @cd bin && for f in `find . -type f -iname "*" ! -iname "Makefile"`; do ln -fs `pwd`/$$f $(PREFIX)/bin/$$f; done 60 @echo 'Done.' 61 62 manual-install: 63 @echo '***************************************************************' 64 @echo '* DEPRECATED *' 65 @echo '* `make manual-install` is now called `make symlinks-install` *' 66 @echo '***************************************************************' 67 $(MAKE) symlinks-install 68 69 copy-install: 70 @echo "Copying files from ./bin to ${PREFIX}/bin" 71 @cd bin && for f in `find . -type f -iname "*" ! -iname "Makefile"`; do cp `pwd`/$$f $(PREFIX)/bin/$$f; done 72 @echo 'Done.' 73 74 copy-uninstall: 75 @echo "Removing blackbox files from ${PREFIX}/bin" 76 @cd bin && for f in `find . -type f -iname "*" ! -iname "Makefile"`; do rm $(PREFIX)/bin/$$f; done 77 @echo 'Done.' 78 79 # 80 # DEB builds 81 # 82 83 packages-deb: tools/mk_deb_fpmdir.stack_blackbox.txt 84 cd tools && OUTPUTDIR=$(OUTPUTDIR) PKGRELEASE="$${PKGRELEASE}" PKGDESCRIPTION="Safely store secrets in git/hg/svn repos using GPG encryption" ./mk_deb_fpmdir stack_blackbox mk_deb_fpmdir.stack_blackbox.txt 85 86 # Make mk_deb_fpmdir.vcs_blackbox.txt from mk_rpm_fpmdir.stack_blackbox.txt: 87 tools/mk_deb_fpmdir.stack_blackbox.txt: tools/mk_rpm_fpmdir.stack_blackbox.txt 88 sed -e '/^#/d' -e 's@/usr/blackbox/bin/@/usr/bin/@g' -e '/profile.d-usrblackbox.sh/d' <tools/mk_rpm_fpmdir.stack_blackbox.txt >$@ 89 90 packages-deb-debug: tools/mk_deb_fpmdir.stack_blackbox.txt 91 @echo BUILD: 92 @PKGRELEASE=99 make packages-deb 93 @echo ITEMS TO BE PACKAGED: 94 find ~/debbuild-$(PKGNAME)/installroot -type f 95 @echo ITEMS ACTUALLY IN PACKAGE: 96 @dpkg --contents $$(cat $(BASEDIR)/debbuild-$(PKGNAME)/bin-packages.txt) 97 98 local-deb: 99 @PKGRELEASE=1 make packages 100 -@sudo dpkg -e $(PKGNAME) 101 sudo dpkg -i $$(cat $(BASEDIR)/rpmbuild-$(PKGNAME)/bin-packages.txt) 102 103 # 104 # MacPorts builds 105 # 106 # To test: 107 # rm -rf /tmp/foo ; mkdir -p /tmp/foo;make packages-macports DESTDIR=/tmp/foo;find /tmp/foo -ls 108 109 # Make mk_macports.vcs_blackbox.txt from mk_rpm_fpmdir.stack_blackbox.txt: 110 tools/mk_macports.vcs_blackbox.txt: tools/mk_rpm_fpmdir.stack_blackbox.txt 111 sed -e '/^#/d' -e 's@/usr/blackbox/bin/@bin/@g' -e '/profile.d-usrblackbox.sh/d' <tools/mk_rpm_fpmdir.stack_blackbox.txt >$@ 112 113 # MacPorts expects to run: make packages-macports DESTDIR=${destroot} 114 packages-macports: tools/mk_macports.vcs_blackbox.txt 115 mkdir -p $(DESTDIR)/bin 116 cd tools && ./mk_macports mk_macports.vcs_blackbox.txt 117 118 # stow is a pretty easy way to manage simple local installs on GNU systems 119 install-stow: 120 mkdir -p /usr/local/stow/blackbox/bin 121 cp bin/* /usr/local/stow/blackbox/bin 122 rm /usr/local/stow/blackbox/bin/Makefile 123 cd /usr/local/stow; stow -R blackbox 124 uninstall-stow: 125 cd /usr/local/stow; stow -D blackbox 126 rm -rf /usr/local/stow/blackbox 127 128 # Add other package types here. 129 130 # 131 # Updates 132 # 133 update: tools/mk_deb_fpmdir.stack_blackbox.txt tools/mk_macports.vcs_blackbox.txt 134 135 clean: 136 rm -f tools/mk_deb_fpmdir.stack_blackbox.txt tools/mk_macports.vcs_blackbox.txt 137 138 # 139 # System Test: 140 # 141 test: confidence 142 confidence: 143 @if [ -e ~/.gnupg ]; then echo ERROR: '~/.gnupg should not exist. If it does, bugs may polute your .gnupg configuration. If the code has no bugs everything will be fine. Do you feel lucky?'; false ; fi 144 @if which >/dev/null gpg-agent ; then pkill gpg-agent ; rm -rf /tmp/tmp.* ; fi 145 @export PATH="$(PWD)/bin:$(PREFIX)/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/local/bin:/usr/local/MacGPG2/bin:/opt/homebrew/bin:$(PATH)" ; tools/auto_system_test 146 @if which >/dev/null gpg-agent ; then pkill gpg-agent ; fi 147 @if [ -e ~/.gnupg ]; then echo ERROR: '~/.gnupg was created which means the scripts might be poluting GnuPG configuration. Fix this bug.'; false ; fi