Просмотр исходного кода

Merge pull request #176 from kballard/makefile

Fix a bunch of issues with the Makefile
Benjamin Sago 8 лет назад
Родитель
Сommit
ff5896aad2
1 измененных файлов с 36 добавлено и 15 удалено
  1. 36 15
      Makefile

+ 36 - 15
Makefile

@@ -1,9 +1,9 @@
 DESTDIR =
 PREFIX  = /usr/local
 
-BASHDIR = /etc/bash_completion.d
+BASHDIR = $(PREFIX)/etc/bash_completion.d
 ZSHDIR  = /usr/share/zsh/vendor-completions
-FISHDIR = /usr/share/fish/completions
+FISHDIR = $(PREFIX)/share/fish/vendor_completions.d
 
 FEATURES ?= default
 
@@ -12,7 +12,7 @@ all: target/release/exa
 build: target/release/exa
 
 target/release/exa:
-	cargo build --release --features "${ENABLE_FEATURES}"
+	cargo build --release --no-default-features --features "$(FEATURES)"
 
 install: install-exa install-man
 
@@ -32,22 +32,43 @@ install-zsh-completions:
 install-fish-completions:
 	install -m644 -- contrib/completions.fish "$(FISHDIR)/exa.fish"
 
-
 uninstall:
-	-rm -- "$(DESTDIR)$(PREFIX)/share/man/man1/exa.1"
-	-rm -- "$(DESTDIR)$(PREFIX)/bin/exa"
-	-rm -- "$(BASHDIR)/exa"
-	-rm -- "$(ZSHDIR)/_exa"
-	-rm -- "$(FISHDIR)/exa.fish"
+	-rm -f -- "$(DESTDIR)$(PREFIX)/share/man/man1/exa.1"
+	-rm -f -- "$(DESTDIR)$(PREFIX)/bin/exa"
+	-rm -f -- "$(BASHDIR)/exa"
+	-rm -f -- "$(ZSHDIR)/_exa"
+	-rm -f -- "$(FISHDIR)/exa.fish"
 
 clean:
 	cargo clean
 
-
 preview-man:
-	nroff -man contrib/man/exa.1 | less
-
-
-.PHONY: all build install-exa install-man preview-man \
+	man contrib/man/exa.1
+
+help:
+	@echo 'Available make targets:'
+	@echo '  all         - build exa (default)'
+	@echo '  build       - build exa'
+	@echo '  clean       - run `cargo clean`'
+	@echo '  install     - build and install exa and manpage'
+	@echo '  install-exa - build and install exa'
+	@echo '  install-man - install the manpage'
+	@echo '  uninstall   - uninstall fish, manpage, and completions'
+	@echo '  preview-man - preview the manpage without installing'
+	@echo '  help        - print this help'
+	@echo
+	@echo '  install-bash-completions - install bash completions into $$BASHDIR'
+	@echo '  install-zsh-completions  - install zsh completions into $$ZSHDIR'
+	@echo '  install-fish-completions - install fish completions into $$FISHDIR'
+	@echo
+	@echo 'Variables:'
+	@echo '  DESTDIR  - A path that'\''s prepended to installation paths (default: "")'
+	@echo '  PREFIX   - The installation prefix for everything except zsh completions (default: /usr/local)'
+	@echo '  BASHDIR  - The directory to install bash completions in (default: $$PREFIX/etc/bash_completion.d)'
+	@echo '  ZSHDIR   - The directory to install zsh completions in (default: /usr/share/zsh/vendor-completions)'
+	@echo '  FISHDIR  - The directory to install fish completions in (default: $$PREFIX/share/fish/vendor_completions.d)'
+	@echo '  FEATURES - The cargo feature flags to use. Set to an empty string to disable git support'
+
+.PHONY: all build target/release/exa install-exa install-man preview-man \
 	install-bash-completions install-zsh-completions install-fish-completions \
-	clean uninstall
+	clean uninstall help