Aqui está um exemplo de Cygwin
compatible Makefile
:
DESTDIR?=/usr/local/bin
install_path=$(DESTDIR)
USER_ID=$(shell whoami)
GROUP_ID=$(shell id -gn)
script_name_1=encrypt-file-aes256
script_name_2=decrypt-file-aes256
.PHONY: install
.PHONY: uninstall
install:
install -m 0755 -o $(USER_ID) -g $(GROUP_ID) -t $(install_path) $(script_name_1) $(script_name_2)
# with long options together with verbosity turned on it might be better for users
#install --verbose --mode=0755 --owner=$(USER_ID) --group=$(GROUP_ID) --target-directory=$(install_path) $(script_name_1) $(script_name_2)
uninstall:
rm $(install_path)/$(script_name_1) $(install_path)/$(script_name_2)
Quando você quiser instalar em qualquer outro local, poderá substituir a variável DESTDIR
ou fornecer uma na Makefile
.
Quando você executar o script como sudo
em GNU/Linux
, o USER_ID
será definido como raiz.
Observação: foi confirmado em GNU/Linux
.
Notas do editor:
-
Verificado em
Cygwin
. -
Alterou a maneira como
USER_ID
eGROUP_ID
são atribuídos ao padrãoshell
builtin. -
Adicionada versão de opções longas com verbosidade, em um comentário.
-
Se você quiser alterar o destino, pode simplesmente invocar, por exemplo:
DESTDIR=/desired/target/directory/ make install