exa/Makefile
Mattias Andrée 079c36b9f5 Rebulid when the source has been updated
You could use src/*.rs src/*/*.rs src/*/*/*.rs,
but explicit listing is prefered.

Ideally, you should be separate object files that
are rebuilt only when necessary, and then build
the final binary from those. But have not looked
at how to compile rust code so I don't know how
to do that, and since there are no header files
that is also probably suboptimal.

Signed-off-by: Mattias Andrée <maandree@kth.se>
2016-07-05 00:56:37 +02:00

64 lines
1.5 KiB
Makefile

SRC = \
src/info/sources.rs \
src/info/mod.rs \
src/info/filetype.rs \
src/bin/main.rs \
src/term.rs \
src/exa.rs \
src/output/grid_details.rs \
src/output/tree.rs \
src/output/colours.rs \
src/output/grid.rs \
src/output/cell.rs \
src/output/mod.rs \
src/output/details.rs \
src/output/lines.rs \
src/output/column.rs \
src/fs/file.rs \
src/fs/fields.rs \
src/fs/mod.rs \
src/fs/dir.rs \
src/fs/feature/xattr.rs \
src/fs/feature/git.rs \
src/fs/feature/mod.rs \
src/options/misfire.rs \
src/options/filter.rs \
src/options/dir_action.rs \
src/options/view.rs \
src/options/mod.rs \
src/options/help.rs
PREFIX = /usr/local
CARGOFLAGS = --no-default-features
all: target/release/exa
build: CARGOFLAGS=
build: all
build-no-git: all
target/release/exa: $(SRC)
if test -n "$$(echo "$$CC" | cut -d \ -f 1)"; then \
env CC="$$(echo "$$CC" | cut -d \ -f 1)" cargo build --release $(CARGOFLAGS); \
else\
env -u CC cargo build --release $(CARGOFLAGS); \
fi
install: target/release/exa
# BSD and OSX don't have -D to create leading directories
install -dm755 -- "$(DESTDIR)$(PREFIX)/bin/" "$(DESTDIR)$(PREFIX)/share/man/man1/"
install -m755 -- target/release/exa "$(DESTDIR)$(PREFIX)/bin/"
install -m644 -- contrib/man/exa.1 "$(DESTDIR)$(PREFIX)/share/man/man1/"
uninstall:
-rm -- "$(DESTDIR)$(PREFIX)/share/man/man1/exa.1"
-rmdir -- "$(DESTDIR)$(PREFIX)/share/man/man1"
-rm -- "$(DESTDIR)$(PREFIX)/bin/exa"
-rmdir -- "$(DESTDIR)$(PREFIX)/bin"
clean:
-rm -rf target
.PHONY: all build build-no-git install uninstall clean