Makefile 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. FORCE_REBUILD ?= 0
  2. JITSI_RELEASE ?= stable
  3. JITSI_BUILD ?= latest
  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):latest $(JITSI_REPO)/$(JITSI_SERVICE):$(JITSI_BUILD)
  38. push:
  39. docker push $(JITSI_REPO)/$(JITSI_SERVICE):latest
  40. docker push $(JITSI_REPO)/$(JITSI_SERVICE):$(JITSI_BUILD)
  41. %-all:
  42. @$(foreach SERVICE, $(JITSI_SERVICES), $(MAKE) --no-print-directory JITSI_SERVICE=$(SERVICE) $(subst -all,;,$@))
  43. clean:
  44. docker-compose stop
  45. docker-compose rm
  46. docker network prune
  47. prepare:
  48. docker pull debian:bullseye-slim
  49. FORCE_REBUILD=1 $(MAKE)
  50. .PHONY: all build tag push clean prepare release $(addprefix build_,$(JITSI_SERVICES))