mirror of
https://github.com/iv-org/invidious.git
synced 2025-02-02 09:35:28 -05:00
update Makefile
- add uninstall target - restructure and rename targets and vars
This commit is contained in:
parent
9892604758
commit
affae6f5ef
66
Makefile
66
Makefile
@ -14,8 +14,10 @@ MT := 0
|
|||||||
|
|
||||||
|
|
||||||
FLAGS ?=
|
FLAGS ?=
|
||||||
|
CRYSTAL_BIN ?= crystal
|
||||||
|
SHARDS_BIN ?= shards
|
||||||
|
|
||||||
|
# Build flags configuration
|
||||||
ifeq ($(RELEASE), 1)
|
ifeq ($(RELEASE), 1)
|
||||||
FLAGS += --release
|
FLAGS += --release
|
||||||
endif
|
endif
|
||||||
@ -28,7 +30,6 @@ ifeq ($(MT), 1)
|
|||||||
FLAGS += -Dpreview_mt
|
FLAGS += -Dpreview_mt
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(NO_DBG_SYMBOLS), 1)
|
ifeq ($(NO_DBG_SYMBOLS), 1)
|
||||||
FLAGS += --no-debug
|
FLAGS += --no-debug
|
||||||
else
|
else
|
||||||
@ -39,60 +40,77 @@ ifeq ($(API_ONLY), 1)
|
|||||||
FLAGS += -Dapi_only
|
FLAGS += -Dapi_only
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Development flags
|
||||||
|
DEVFLAGS := --progress --stats --time
|
||||||
|
|
||||||
|
# Output binary name
|
||||||
|
BINARY_NAME := invidious
|
||||||
|
BINARY_DEV := $(BINARY_NAME)-dev
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# Main
|
# Main
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|
||||||
all: invidious
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
|
all: $(BINARY_NAME)
|
||||||
|
|
||||||
get-libs:
|
get-libs:
|
||||||
shards install --production
|
$(SHARDS_BIN) install --production
|
||||||
|
|
||||||
# TODO: add support for ARM64 via cross-compilation
|
# TODO: add support for ARM64 via cross-compilation
|
||||||
invidious: get-libs
|
$(BINARY_NAME): get-libs
|
||||||
crystal build src/invidious.cr $(FLAGS) --progress --stats --error-trace
|
$(CRYSTAL_BIN) build src/$(BINARY_NAME).cr $(FLAGS) --progress --stats --error-trace
|
||||||
|
|
||||||
|
run: $(BINARY_NAME)
|
||||||
run: invidious
|
./$(BINARY_NAME)
|
||||||
./invidious
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# Development
|
# Development
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|
||||||
|
|
||||||
format:
|
format:
|
||||||
crystal tool format
|
$(CRYSTAL_BIN) tool format --check
|
||||||
|
|
||||||
test:
|
test:
|
||||||
crystal spec
|
$(CRYSTAL_BIN) spec
|
||||||
|
|
||||||
verify:
|
verify:
|
||||||
crystal build src/invidious.cr -Dskip_videojs_download \
|
$(CRYSTAL_BIN) build src/$(BINARY_NAME).cr -Dskip_videojs_download \
|
||||||
--no-codegen --progress --stats --error-trace
|
--no-codegen --progress --stats --error-trace
|
||||||
|
|
||||||
|
dev-build: get-libs
|
||||||
|
$(CRYSTAL_BIN) build src/$(BINARY_NAME).cr $(DEVFLAGS) -o $(BINARY_DEV)
|
||||||
|
|
||||||
|
dev-run: dev-build
|
||||||
|
INVIDIOUS_CONFIG_FILE=config/config-dev.yml ./$(BINARY_DEV)
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# (Un)Install
|
# (Un)Install
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|
||||||
# TODO
|
PREFIX ?= /usr/local
|
||||||
|
DESTDIR ?=
|
||||||
|
|
||||||
|
install: $(BINARY_NAME)
|
||||||
|
install -d $(DESTDIR)$(PREFIX)/bin
|
||||||
|
install -m 755 $(BINARY_NAME) $(DESTDIR)$(PREFIX)/bin/
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
rm -f $(DESTDIR)$(PREFIX)/bin/$(BINARY_NAME)
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# Cleaning
|
# Cleaning
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm invidious
|
rm -f $(BINARY_NAME) $(BINARY_DEV)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -rf libs
|
rm -rf libs
|
||||||
rm -rf ~/.cache/{crystal,shards}
|
rm -rf ~/.cache/{crystal,shards}
|
||||||
|
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# Help page
|
# Help page
|
||||||
# -----------------------
|
# -----------------------
|
||||||
@ -101,7 +119,7 @@ help:
|
|||||||
@echo "Targets available in this Makefile:"
|
@echo "Targets available in this Makefile:"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo " get-libs Fetch Crystal libraries"
|
@echo " get-libs Fetch Crystal libraries"
|
||||||
@echo " invidious Build Invidious"
|
@echo " $(BINARY_NAME) Build Invidious"
|
||||||
@echo " run Launch Invidious"
|
@echo " run Launch Invidious"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo " format Run the Crystal formatter"
|
@echo " format Run the Crystal formatter"
|
||||||
@ -109,6 +127,9 @@ help:
|
|||||||
@echo " verify Just make sure that the code compiles, but without"
|
@echo " verify Just make sure that the code compiles, but without"
|
||||||
@echo " generating any binaries. Useful to search for errors"
|
@echo " generating any binaries. Useful to search for errors"
|
||||||
@echo ""
|
@echo ""
|
||||||
|
@echo " install Install Invidious to system"
|
||||||
|
@echo " uninstall Remove Invidious from system"
|
||||||
|
@echo ""
|
||||||
@echo " clean Remove build artifacts"
|
@echo " clean Remove build artifacts"
|
||||||
@echo " distclean Remove build artifacts and libraries"
|
@echo " distclean Remove build artifacts and libraries"
|
||||||
@echo ""
|
@echo ""
|
||||||
@ -120,9 +141,12 @@ help:
|
|||||||
@echo ""
|
@echo ""
|
||||||
@echo " API_ONLY Build invidious without a GUI (Default: 0)"
|
@echo " API_ONLY Build invidious without a GUI (Default: 0)"
|
||||||
@echo " NO_DBG_SYMBOLS Strip debug symbols (Default: 0)"
|
@echo " NO_DBG_SYMBOLS Strip debug symbols (Default: 0)"
|
||||||
|
@echo ""
|
||||||
|
@echo "Installation options:"
|
||||||
|
@echo " PREFIX Installation prefix (Default: /usr/local)"
|
||||||
|
@echo " DESTDIR Destination directory (Default: empty)"
|
||||||
|
|
||||||
# No targets generates an output named after themselves
|
# No targets generates an output named after themselves
|
||||||
.PHONY: all get-libs build amd64 run
|
.PHONY: all get-libs build run
|
||||||
.PHONY: format test verify clean distclean help
|
.PHONY: format test verify dev-build dev-run
|
||||||
|
.PHONY: install uninstall clean distclean help
|
||||||
|
Loading…
x
Reference in New Issue
Block a user