plugin_shell.mk 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Shell plugin.
  2. SHELL_TARGETS = $(call list_targets,shell)
  3. .PHONY: shell $(C_SRC_TARGETS)
  4. shell: $(SHELL_TARGETS)
  5. shell-default: build clean
  6. $i "Bootstrap a new OTP library named $(APP)"
  7. $t mkdir $(APP)/
  8. $t cp ../erlang.mk $(APP)/
  9. $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
  10. $i "Run the shell"
  11. $t $(MAKE) -C $(APP) shell SHELL_OPTS="-eval 'halt()'" $v
  12. shell-kjell: build clean
  13. $i "Bootstrap a new OTP library named $(APP)"
  14. $t mkdir $(APP)/
  15. $t cp ../erlang.mk $(APP)/
  16. $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
  17. $i "Add Kjell to the list of shell dependencies and set as default shell"
  18. $t perl -ni.bak -e 'print;if ($$.==1) {print "SHELL_DEPS = kjell\nSHELL_ERL = \$$(DEPS_DIR)/kjell/bin/kjell\n"}' $(APP)/Makefile
  19. $i "Run the shell"
  20. $t $(MAKE) -C $(APP) shell SHELL_OPTS="-eval 'halt()'" $v
  21. shell-test-dir: build clean
  22. $i "Bootstrap a new OTP library named $(APP)"
  23. $t mkdir $(APP)/
  24. $t cp ../erlang.mk $(APP)/
  25. $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
  26. $i "Generate a module in TEST_DIR"
  27. $t mkdir $(APP)/test
  28. $t printf "%s\n" \
  29. "-module(foo)." > $(APP)/test/foo.erl
  30. $i "Check that the module is visible"
  31. $t $(MAKE) -C $(APP) test-build shell SHELL_OPTS="-eval 'foo:module_info()' -eval 'halt()'" $v