Skip to content
Snippets Groups Projects
Makefile 3.12 KiB
Newer Older
  • Learn to ignore specific revisions
  • -include build/base.Makefile
    -include build/docker.Makefile
    
    -include build/audio.Makefile
    
    	@echo "$(APP_NAME) targets:"
    
    	@echo "    init.app        	- init application environment"
    	@echo "    init.dev        	- init development environment"
    	@echo "    lint            	- verify code style"
    	@echo "    spell           	- check spelling of text"
    	@echo "    test            	- run test suite"
    	@echo "    log             	- tail log file"
    	@echo "    tns             	- connect to telnet server"
    	@echo "    run             	- start app"
    	@echo "    run.debug       	- start app in debug mode"
    
    	@echo "    release         	- tag and push release with current version"
    
    	@echo "    docker.init     	- create docker volume for engine socket"
    
    	$(call docker_help)
    
    	$(call audio_help)
    
    	@echo "    audio.lqs.test  	- test audio device using liquidsoap"
    
    AURA_ENGINE_CORE_ALSA_CONFIG := ${CURDIR}/config/asound.conf
    
    AURA_ENGINE_CORE_SOCKET := "aura_engine_socket"
    
    AURA_ENGINE_CORE_CONFIG := ${CURDIR}/config/engine-core.docker.ini
    
    AURA_AUDIO_STORE_SOURCE := ${CURDIR}/audio/source
    AURA_AUDIO_STORE_PLAYLIST := ${CURDIR}/audio/playlist
    AURA_AUDIO_STORE_FALLBACK := ${CURDIR}/audio/fallback
    AURA_LOGS := ${CURDIR}/logs
    
    AURA_UID := 2872
    AURA_GID := 2872
    
    DOCKER_RUN = @docker run \
    
    		--name $(APP_NAME) \
    		--network="host" \
    		--mount type=tmpfs,destination=/tmp \
    		--device /dev/snd \
    		--group-add audio \
    
    		--ulimit rtprio=95 --ulimit memlock=-1 --shm-size=512m \
    
    		--env-file docker.env \
    
    		-v "$(AURA_ENGINE_CORE_ALSA_CONFIG)":"/etc/asound.conf" \
    
    		-v "$(AURA_ENGINE_CORE_SOCKET)":"/srv/socket" \
    
    		-v "$(AURA_ENGINE_CORE_CONFIG)":"/etc/aura/engine-core.ini":ro \
    
    		-v "$(AURA_AUDIO_STORE_SOURCE)":"/var/audio/source":ro \
    		-v "$(AURA_AUDIO_STORE_PLAYLIST)":"/var/audio/playlist":ro \
    		-v "$(AURA_AUDIO_STORE_FALLBACK)":"/var/audio/fallback":ro \
    
    		-v "$(AURA_LOGS)":"/srv/logs" \
    
    		-p 1234:1234 \
    
    		-u $(AURA_UID):$(AURA_GID) \
    
    		$(DOCKER_ENTRY_POINT) \
    		autoradio/$(APP_NAME)
    
    # Targets
    
    
    	liquidsoap --check src/engine.liq
    
    	codespell $(wildcard *.md) docs src tests config contrib
    
    init.app::
    
    	cp -n config/sample.engine-core.ini config/engine-core.ini || true
    
    	mkdir -p audio/fallback
    	mkdir -p audio/playlist
    	mkdir -p audio/source
    
    init.dev:: init.app
    	sudo apt install -y codespell
    
    	sudo apt install -y pre-commit
    	pre-commit autoupdate
    	pre-commit install
    
    	(cd tests && pw-jack liquidsoap engine_test_suite.liq)
    
    	tail -f logs/$(APP_NAME).log
    
    
    tns::
    	telnet 0.0.0.0 1234
    
    
    	(cd src && pw-jack liquidsoap ./engine.liq)
    
    	(cd src && pw-jack liquidsoap --verbose --debug ./engine.liq)
    
    docker.init::
    	@echo "Creating Docker Volume for Engine Socket at '$(AURA_ENGINE_CORE_SOCKET)'"
    	docker volume create aura_engine_socket
    
    compose.build::
    	docker compose build
    
    compose.up::
    	docker compose up
    
    compose.up.detached::
    	docker compose up -d
    
    compose.down::
    	docker compose down
    
    
    audio.lqs.test::
    
    	pw-jack liquidsoap tests/device/alsa_device_aura_engine.liq
    
    
    release:: VERSION = $$(cat ${CURDIR}/VERSION)
    release::
    	git tag $(VERSION)
    	git push origin $(VERSION)
    	@echo "Release '$(VERSION)' tagged and pushed successfully."