1 BUILD_DIR = build 2 CLEANCSS = ./node_modules/.bin/cleancss 3 DEPLOY_DIR = libs 4 LIBJITSIMEET_DIR = node_modules/lib-jitsi-meet 5 OLM_DIR = node_modules/@matrix-org/olm 6 TF_WASM_DIR = node_modules/@tensorflow/tfjs-backend-wasm/dist/ 7 RNNOISE_WASM_DIR = node_modules/@jitsi/rnnoise-wasm/dist 8 EXCALIDRAW_DIR = node_modules/@jitsi/excalidraw/dist/excalidraw-assets 9 EXCALIDRAW_DIR_DEV = node_modules/@jitsi/excalidraw/dist/excalidraw-assets-dev 10 TFLITE_WASM = react/features/stream-effects/virtual-background/vendor/tflite 11 MEET_MODELS_DIR = react/features/stream-effects/virtual-background/vendor/models 12 FACE_MODELS_DIR = node_modules/@vladmandic/human-models/models 13 NODE_SASS = ./node_modules/.bin/sass 14 NPM = npm 15 OUTPUT_DIR = . 16 STYLES_BUNDLE = css/all.bundle.css 17 STYLES_DESTINATION = css/all.css 18 STYLES_MAIN = css/main.scss 19 ifeq ($(OS),Windows_NT) 20 WEBPACK = .\node_modules\.bin\webpack 21 WEBPACK_DEV_SERVER = .\node_modules\.bin\webpack serve --mode development 22 else 23 WEBPACK = ./node_modules/.bin/webpack 24 WEBPACK_DEV_SERVER = ./node_modules/.bin/webpack serve --mode development 25 endif 26 27 all: compile deploy clean 28 29 compile: 30 NODE_OPTIONS=--max-old-space-size=8192 \ 31 $(WEBPACK) 32 33 clean: 34 rm -fr $(BUILD_DIR) 35 36 .NOTPARALLEL: 37 deploy: deploy-init deploy-appbundle deploy-rnnoise-binary deploy-excalidraw deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-olm deploy-tf-wasm deploy-css deploy-local deploy-face-landmarks 38 39 deploy-init: 40 rm -fr $(DEPLOY_DIR) 41 mkdir -p $(DEPLOY_DIR) 42 43 deploy-appbundle: 44 cp \ 45 $(BUILD_DIR)/app.bundle.min.js \ 46 $(BUILD_DIR)/app.bundle.min.js.map \ 47 $(BUILD_DIR)/external_api.min.js \ 48 $(BUILD_DIR)/external_api.min.js.map \ 49 $(BUILD_DIR)/alwaysontop.min.js \ 50 $(BUILD_DIR)/alwaysontop.min.js.map \ 51 $(OUTPUT_DIR)/analytics-ga.js \ 52 $(BUILD_DIR)/analytics-ga.min.js \ 53 $(BUILD_DIR)/analytics-ga.min.js.map \ 54 $(BUILD_DIR)/face-landmarks-worker.min.js \ 55 $(BUILD_DIR)/face-landmarks-worker.min.js.map \ 56 $(BUILD_DIR)/noise-suppressor-worklet.min.js \ 57 $(BUILD_DIR)/noise-suppressor-worklet.min.js.map \ 58 $(DEPLOY_DIR) 59 cp \ 60 $(BUILD_DIR)/close3.min.js \ 61 $(BUILD_DIR)/close3.min.js.map \ 62 $(DEPLOY_DIR) || true 63 64 deploy-lib-jitsi-meet: 65 cp \ 66 $(LIBJITSIMEET_DIR)/dist/umd/lib-jitsi-meet.* \ 67 $(DEPLOY_DIR) 68 69 deploy-olm: 70 cp \ 71 $(OLM_DIR)/olm.wasm \ 72 $(DEPLOY_DIR) 73 74 deploy-tf-wasm: 75 cp \ 76 $(TF_WASM_DIR)/*.wasm \ 77 $(DEPLOY_DIR) 78 79 deploy-rnnoise-binary: 80 cp \ 81 $(RNNOISE_WASM_DIR)/rnnoise.wasm \ 82 $(DEPLOY_DIR) 83 84 deploy-tflite: 85 cp \ 86 $(TFLITE_WASM)/*.wasm \ 87 $(DEPLOY_DIR) 88 89 deploy-excalidraw: 90 cp -R \ 91 $(EXCALIDRAW_DIR) \ 92 $(DEPLOY_DIR)/ 93 94 deploy-excalidraw-dev: 95 cp -R \ 96 $(EXCALIDRAW_DIR_DEV) \ 97 $(DEPLOY_DIR)/ 98 99 deploy-meet-models: 100 cp \ 101 $(MEET_MODELS_DIR)/*.tflite \ 102 $(DEPLOY_DIR) 103 104 deploy-face-landmarks: 105 cp \ 106 $(FACE_MODELS_DIR)/blazeface-front.bin \ 107 $(FACE_MODELS_DIR)/blazeface-front.json \ 108 $(FACE_MODELS_DIR)/emotion.bin \ 109 $(FACE_MODELS_DIR)/emotion.json \ 110 $(DEPLOY_DIR) 111 112 deploy-css: 113 $(NODE_SASS) $(STYLES_MAIN) $(STYLES_BUNDLE) && \ 114 $(CLEANCSS) --skip-rebase $(STYLES_BUNDLE) > $(STYLES_DESTINATION) && \ 115 rm $(STYLES_BUNDLE) 116 117 deploy-local: 118 ([ ! -x deploy-local.sh ] || ./deploy-local.sh) 119 120 .NOTPARALLEL: 121 dev: deploy-init deploy-css deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-olm deploy-tf-wasm deploy-excalidraw-dev deploy-face-landmarks 122 $(WEBPACK_DEV_SERVER) 123 124 source-package: 125 mkdir -p source_package/jitsi-meet/css && \ 126 cp -r *.js *.html resources/*.txt favicon.ico fonts images libs static sounds LICENSE lang source_package/jitsi-meet && \ 127 cp css/all.css source_package/jitsi-meet/css && \ 128 (cd source_package ; tar cjf ../jitsi-meet.tar.bz2 jitsi-meet) && \ 129 rm -rf source_package