121 lines · 2.5 KB · Makefile
RawDownload
# -----------------------#  Compilation options# ----------------------- RELEASE  := 1STATIC   := 0 NO_DBG_SYMBOLS := 0SKIP_VERSION_CHECK := 0 FLAGS ?= ifeq ($(RELEASE), 1)  FLAGS += --releaseendif ifeq ($(STATIC), 1)  FLAGS += --staticendif ifeq ($(NO_DBG_SYMBOLS), 1)  FLAGS += --no-debugelse  FLAGS += --debugendif ifeq ($(API_ONLY), 1)  FLAGS += -Dapi_onlyendif ifeq ($(SKIP_VERSION_CHECK), 1)  FLAGS += -Dskip_version_checkendif # -----------------------#  Main# ----------------------- all: invidious get-libs:	shards install --production # TODO: add support for ARM64 via cross-compilationinvidious: get-libs	crystal build src/invidious.cr $(FLAGS) --progress --stats --error-trace  run: invidious	./invidious  # -----------------------#  Development# -----------------------  format:	crystal tool format test:	crystal spec verify:	crystal build src/invidious.cr -Dskip_videojs_download \	  --no-codegen --progress --stats --error-trace  # -----------------------#  (Un)Install# ----------------------- # TODO  # -----------------------#  Cleaning# ----------------------- clean:	rm invidious distclean: clean	rm -rf libs	rm -rf ~/.cache/{crystal,shards}  # -----------------------#  Help page# ----------------------- help:	@echo "Targets available in this Makefile:"	@echo ""	@echo "  get-libs         Fetch Crystal libraries"	@echo "  invidious        Build Invidious"	@echo "  run              Launch Invidious"	@echo ""	@echo "  format           Run the Crystal formatter"	@echo "  test             Run tests"	@echo "  verify           Just make sure that the code compiles, but without"	@echo "                   generating any binaries. Useful to search for errors"	@echo ""	@echo "  clean            Remove build artifacts"	@echo "  distclean        Remove build artifacts and libraries"	@echo ""	@echo ""	@echo "Build options available for this Makefile:"	@echo ""	@echo "  RELEASE              Make a release build                     (Default: 1)"	@echo "  STATIC               Link libraries statically                (Default: 0)"	@echo ""	@echo "  API_ONLY             Build invidious without a GUI            (Default: 0)"	@echo "  NO_DBG_SYMBOLS       Strip debug symbols                      (Default: 0)"	@echo "  SKIP_VERSION_CHECK   Skips the Crystal compiler version check (Default: 0)"   # No targets generates an output named after themselves.PHONY: all get-libs build amd64 run.PHONY: format test verify clean distclean help