Add a makefile
parent
4940759627
commit
19bb26a789
@ -0,0 +1,118 @@
|
|||||||
|
# -----------------------
|
||||||
|
# Compilation options
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
RELEASE := 1
|
||||||
|
STATIC := 0
|
||||||
|
|
||||||
|
DISABLE_LSQUIC := 0
|
||||||
|
NO_DBG_SYMBOLS := 0
|
||||||
|
|
||||||
|
|
||||||
|
FLAGS ?=
|
||||||
|
|
||||||
|
|
||||||
|
ifeq ($(RELEASE), 1)
|
||||||
|
FLAGS += --release
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(STATIC), 1)
|
||||||
|
FLAGS += --static
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
ifeq ($(NO_DBG_SYMBOLS), 1)
|
||||||
|
FLAGS += --no-debug
|
||||||
|
else
|
||||||
|
FLAGS += --debug
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(DISABLE_LSQUIC), 1)
|
||||||
|
FLAGS += -Ddisable_lsquic
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# Main
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
all: invidious
|
||||||
|
|
||||||
|
get-libs:
|
||||||
|
shards install --production
|
||||||
|
|
||||||
|
# TODO: add support for ARM64 via cross-compilation
|
||||||
|
invidious: 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 --no-codegen --progress --stats --error-trace
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# (Un)Install
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
# TODO
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# Cleaning
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm invidious
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -rf libs
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# 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 librariess tatically (Default: 1)"
|
||||||
|
echo ""
|
||||||
|
echo "DISABLE_LSQUIC Don't use lsquic (Default: 0)"
|
||||||
|
echo "NO_DBG_SYMBOLS Strip debug symbols (Default: 0)"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# No targets generates an output named after themselves
|
||||||
|
.PHONY all get-libs build amd64 run
|
||||||
|
.PHONY format test verify clean distclean help
|
Loading…
Reference in New Issue