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