2
0

Makefile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. FORCE_REBUILD ?= 0
  2. JITSI_RELEASE ?= stable
  3. JITSI_BUILD ?= unstable
  4. JITSI_REPO ?= jitsi
  5. NATIVE_ARCH ?= $(shell uname -m)
  6. ifeq ($(NATIVE_ARCH),x86_64)
  7. TARGETPLATFORM := linux/amd64
  8. JITSI_SERVICES := base base-java web prosody jicofo jvb jigasi jibri
  9. else ifeq ($(NATIVE_ARCH),aarch64)
  10. TARGETPLATFORM := linux/arm64
  11. JITSI_SERVICES := base base-java web prosody jicofo jvb
  12. else
  13. TARGETPLATFORM := unsupported
  14. JITSI_SERVICES := dummy
  15. endif
  16. BUILD_ARGS := \
  17. --build-arg JITSI_REPO=$(JITSI_REPO) \
  18. --build-arg JITSI_RELEASE=$(JITSI_RELEASE) \
  19. --build-arg TARGETPLATFORM=$(TARGETPLATFORM)
  20. ifeq ($(FORCE_REBUILD), 1)
  21. BUILD_ARGS := $(BUILD_ARGS) --no-cache
  22. endif
  23. all: build-all
  24. release: tag-all push-all
  25. ifeq ($(TARGETPLATFORM), unsupported)
  26. build:
  27. @echo "Unsupported native architecture"
  28. @exit 1
  29. else
  30. build:
  31. @echo "Building for $(TARGETPLATFORM)"
  32. docker build $(BUILD_ARGS) --progress plain --tag $(JITSI_REPO)/$(JITSI_SERVICE) $(JITSI_SERVICE)/
  33. endif
  34. $(addprefix build_,$(JITSI_SERVICES)):
  35. $(MAKE) --no-print-directory JITSI_SERVICE=$(patsubst build_%,%,$@) build
  36. tag:
  37. docker tag $(JITSI_REPO)/$(JITSI_SERVICE) $(JITSI_REPO)/$(JITSI_SERVICE):$(JITSI_BUILD)
  38. push:
  39. docker push $(JITSI_REPO)/$(JITSI_SERVICE):$(JITSI_BUILD)
  40. %-all:
  41. @$(foreach SERVICE, $(JITSI_SERVICES), $(MAKE) --no-print-directory JITSI_SERVICE=$(SERVICE) $(subst -all,;,$@))
  42. clean:
  43. docker-compose stop
  44. docker-compose rm
  45. docker network prune
  46. prepare:
  47. docker pull debian:bullseye-slim
  48. FORCE_REBUILD=1 $(MAKE)
  49. .PHONY: all build tag push clean prepare release $(addprefix build_,$(JITSI_SERVICES))