mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-31 12:42:09 +00:00 
			
		
		
		
	
							
								
								
									
										118
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||
		Reference in New Issue
	
	Block a user
	 Samantaz Fox
					Samantaz Fox