Makefile.module 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. MODULE_NAME := $(notdir $(shell pwd))
  2. MODULE_DIR := modules/$(MODULE_NAME)
  3. COFFEE := ../../node_modules/.bin/coffee
  4. BABEL := ../../node_modules/.bin/babel
  5. APP_COFFEE_FILES := $(shell [ -e app/coffee ] && find app/coffee -name '*.coffee') \
  6. $(shell [ -e test/unit/coffee ] && find test/unit/coffee -name '*.coffee') \
  7. $(shell [ -e test/acceptance/coffee ] && find test/acceptance/coffee -name '*.coffee')
  8. APP_JS_FILES := $(subst coffee,js,$(APP_COFFEE_FILES))
  9. IDE_SRC_FILES := $(shell [ -e public/src/ide ] && find public/src/ide -name '*.js')
  10. IDE_OUTPUT_FILES := $(subst public/src/ide,../../public/js/ide/$(MODULE_NAME),$(IDE_SRC_FILES))
  11. IDE_TEST_SRC_FILES := $(shell [ -e test/unit_frontend/src/ide ] && find test/unit_frontend/src/ide -name '*.js')
  12. IDE_TEST_OUTPUT_FILES := $(subst test/unit_frontend/src/ide,../../test/unit_frontend/js/ide/$(MODULE_NAME),$(IDE_TEST_SRC_FILES))
  13. MAIN_SRC_FILES := $(shell [ -e public/src/main ] && find public/src/main -name '*.js')
  14. MAIN_OUTPUT_FILES := $(subst public/src/main,../../public/js/main/$(MODULE_NAME),$(MAIN_SRC_FILES))
  15. DOCKER_COMPOSE_FLAGS := -f $(MODULE_DIR)/docker-compose.yml
  16. DOCKER_COMPOSE := cd ../../ && MODULE_DIR=$(MODULE_DIR) docker-compose -f docker-compose.yml ${DOCKER_COMPOSE_FLAGS}
  17. app/js/%.js: app/coffee/%.coffee
  18. @mkdir -p $(dir $@)
  19. $(COFFEE) --compile --print $< > $@
  20. test/unit/js/%.js: test/unit/coffee/%.coffee
  21. @mkdir -p $(dir $@)
  22. $(COFFEE) --compile --print $< > $@
  23. test/acceptance/js/%.js: test/acceptance/coffee/%.coffee
  24. @mkdir -p $(dir $@)
  25. $(COFFEE) --compile --print $< > $@
  26. ../../test/unit_frontend/js/ide/$(MODULE_NAME)/%.js: test/unit_frontend/src/ide/%.js
  27. @mkdir -p $(dir $@)
  28. $(BABEL) $< --out-file $@
  29. ../../public/js/ide/$(MODULE_NAME)/%.js: public/src/ide/%.js
  30. @mkdir -p $(dir $@)
  31. $(BABEL) $< --out-file $@
  32. ../../public/js/main/$(MODULE_NAME)/%.js: public/src/main/%.js
  33. @mkdir -p $(dir $@)
  34. $(BABEL) $< --out-file $@
  35. index.js: index.coffee
  36. $(COFFEE) --compile --print $< > $@
  37. compile: $(APP_JS_FILES) $(IDE_OUTPUT_FILES) $(MAIN_OUTPUT_FILES) $(IDE_TEST_OUTPUT_FILES) index.js
  38. @echo > /dev/null
  39. compile_full:
  40. if [ -e app/coffee ]; then $(COFFEE) -o app/js -c app/coffee; fi
  41. if [ -e test/unit/coffee ]; then $(COFFEE) -o test/unit/js -c test/unit/coffee; fi
  42. if [ -e test/acceptance/coffee ]; then $(COFFEE) -o test/acceptance/js -c test/acceptance/coffee; fi
  43. if [ -e public/src/ide ]; then $(BABEL) public/src/ide --out-dir ../../public/js/ide/$(MODULE_NAME); fi
  44. if [ -e public/src/main ]; then $(BABEL) public/src/main --out-dir ../../public/js/main/$(MODULE_NAME); fi
  45. if [ -e test/unit_frontend/src/ide ]; then $(BABEL) test/unit_frontend/src/ide --out-dir ../../test/unit_frontend/js/ide/$(MODULE_NAME); fi
  46. @$(MAKE) compile
  47. test_acceptance: test_acceptance_start_service test_acceptance_run
  48. $(MAKE) test_acceptance_stop_service
  49. test_acceptance_start_service: test_acceptance_stop_service
  50. $(DOCKER_COMPOSE) up -d test_acceptance
  51. test_acceptance_stop_service:
  52. $(DOCKER_COMPOSE) stop -t 0 test_acceptance redis mongo
  53. test_acceptance_run:
  54. $(DOCKER_COMPOSE) exec -T test_acceptance npm -q run test:acceptance:dir -- ${MOCHA_ARGS} $(MODULE_DIR)/test/acceptance/js