mirror of https://github.com/xvxx/phd
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1008 B
Makefile
49 lines
1008 B
Makefile
# Simple, stupid makefile to make phd
|
|
|
|
TARGET = phd
|
|
RELEASE = target/release/$(TARGET)
|
|
DEBUG = target/debug/$(TARGET)
|
|
SOURCES = $(wildcard src/*.rs src/**/*.rs)
|
|
PREFIX = $(DESTDIR)/usr/local
|
|
BINDIR = $(PREFIX)/bin
|
|
|
|
.PHONY: release debug install uninstall clean
|
|
|
|
# Default target. Build release binary.
|
|
release: $(RELEASE)
|
|
|
|
# Binary with debugging info.
|
|
debug: $(DEBUG)
|
|
|
|
# Install locally.
|
|
install: $(RELEASE)
|
|
install $(RELEASE) $(BINDIR)/$(TARGET)
|
|
|
|
# Uninstall locally.
|
|
uninstall: $(RELEASE)
|
|
-rm $(BINDIR)/$(TARGET)
|
|
|
|
# Remove build directory.
|
|
clean:
|
|
-rm -rf target
|
|
|
|
# Build the release version
|
|
$(RELEASE): $(SOURCES)
|
|
cargo build --release
|
|
|
|
# Build the debug version
|
|
$(DEBUG): $(SOURCES)
|
|
cargo build
|
|
|
|
# Build manual
|
|
.PHONY: manual
|
|
manual: doc/phd.1
|
|
|
|
doc/phd.1: doc/phd.1.md scdoc
|
|
scdoc < doc/phd.1.md > doc/phd.1
|
|
|
|
# Must have scdoc installed to build manual.
|
|
scdoc:
|
|
@which scdoc || (echo "scdoc(1) not found."; \
|
|
echo "please install to build the manual: https://repology.org/project/scdoc"; exit 1)
|