You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 3.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. NPM = npm
  2. BROWSERIFY = ./node_modules/.bin/browserify
  3. NODE_SASS = ./node_modules/.bin/node-sass
  4. UGLIFYJS = ./node_modules/.bin/uglifyjs
  5. EXORCIST = ./node_modules/.bin/exorcist
  6. CLEANCSS = ./node_modules/.bin/cleancss
  7. STYLES_MAIN = css/main.scss
  8. STYLES_UNSUPPORTED_BROWSER = css/unsupported_browser.scss
  9. STYLES_BUNDLE = css/all.bundle.css
  10. STYLES_DESTINATION = css/all.css
  11. DEPLOY_DIR = libs
  12. BROWSERIFY_FLAGS = -d
  13. OUTPUT_DIR = .
  14. LIBJITSIMEET_DIR = node_modules/lib-jitsi-meet/
  15. IFRAME_API_DIR = ./modules/API/external
  16. all: update-deps compile compile-iframe-api uglify uglify-iframe-api deploy clean
  17. # FIXME: there is a problem with node-sass not correctly installed (compiled)
  18. # a quick fix to make sure it is installed on every update
  19. # the problem appears on linux and not on macosx
  20. update-deps:
  21. $(NPM) update && $(NPM) install node-sass
  22. compile:
  23. $(BROWSERIFY) $(BROWSERIFY_FLAGS) -e app.js -s APP | $(EXORCIST) $(OUTPUT_DIR)/app.bundle.js.map > $(OUTPUT_DIR)/app.bundle.js
  24. compile-iframe-api:
  25. $(BROWSERIFY) $(BROWSERIFY_FLAGS) -e $(IFRAME_API_DIR)/external_api.js -s JitsiMeetExternalAPI | $(EXORCIST) $(OUTPUT_DIR)/external_api.js.map > $(OUTPUT_DIR)/external_api.js
  26. clean:
  27. rm -f $(OUTPUT_DIR)/app.bundle.* $(OUTPUT_DIR)/external_api.*
  28. deploy: deploy-init deploy-appbundle deploy-lib-jitsi-meet deploy-css deploy-local
  29. deploy-init:
  30. mkdir -p $(DEPLOY_DIR)
  31. deploy-appbundle:
  32. cp $(OUTPUT_DIR)/app.bundle.min.js $(OUTPUT_DIR)/app.bundle.min.map \
  33. $(OUTPUT_DIR)/app.bundle.js $(OUTPUT_DIR)/app.bundle.js.map \
  34. $(OUTPUT_DIR)/external_api.js.map $(OUTPUT_DIR)/external_api.js \
  35. $(OUTPUT_DIR)/external_api.min.map $(OUTPUT_DIR)/external_api.min.js \
  36. $(OUTPUT_DIR)/analytics.js \
  37. $(DEPLOY_DIR)
  38. deploy-lib-jitsi-meet:
  39. cp $(LIBJITSIMEET_DIR)/lib-jitsi-meet.min.js \
  40. $(LIBJITSIMEET_DIR)/lib-jitsi-meet.min.map \
  41. $(LIBJITSIMEET_DIR)/lib-jitsi-meet.js \
  42. $(LIBJITSIMEET_DIR)/lib-jitsi-meet.js.map \
  43. $(LIBJITSIMEET_DIR)/connection_optimization/external_connect.js \
  44. $(DEPLOY_DIR)
  45. deploy-css:
  46. $(NODE_SASS) css/unsupported_browser.scss css/unsupported_browser.css ; \
  47. $(NODE_SASS) $(STYLES_MAIN) $(STYLES_BUNDLE) && \
  48. $(CLEANCSS) $(STYLES_BUNDLE) > $(STYLES_DESTINATION) ; \
  49. rm $(STYLES_BUNDLE)
  50. deploy-local:
  51. ([ ! -x deploy-local.sh ] || ./deploy-local.sh)
  52. uglify:
  53. $(UGLIFYJS) -p relative $(OUTPUT_DIR)/app.bundle.js -o $(OUTPUT_DIR)/app.bundle.min.js --source-map $(OUTPUT_DIR)/app.bundle.min.map --in-source-map $(OUTPUT_DIR)/app.bundle.js.map
  54. uglify-iframe-api:
  55. $(UGLIFYJS) -p relative $(OUTPUT_DIR)/external_api.js -o $(OUTPUT_DIR)/external_api.min.js --source-map $(OUTPUT_DIR)/external_api.min.map --in-source-map $(OUTPUT_DIR)/external_api.js.map
  56. source-package:
  57. mkdir -p source_package/jitsi-meet/css && \
  58. cp -r *.js *.html connection_optimization favicon.ico fonts images libs sounds LICENSE lang source_package/jitsi-meet && \
  59. cp css/all.css source_package/jitsi-meet/css && \
  60. cp css/unsupported_browser.css source_package/jitsi-meet/css && \
  61. (cd source_package ; tar cjf ../jitsi-meet.tar.bz2 jitsi-meet) && \
  62. rm -rf source_package