/Makefile

https://code.google.com/p/zotonic/ · Makefile · 55 lines · 42 code · 13 blank · 0 comment · 17 complexity · 614f064cfca0cf5e21354dcc180c5a5f MD5 · raw file

  1. ERL ?= erl
  2. ERLC ?= $(ERL)c
  3. EBIN_DIRS := $(wildcard deps/*/ebin)
  4. APP := zotonic
  5. PARSER =src/erlydtl/erlydtl_parser
  6. all: gen_smtp iconv z_logger mochiweb webmachine module-deps $(PARSER).erl erl ebin/$(APP).app
  7. erl:
  8. @$(ERL) -pa $(EBIN_DIRS) -pa ebin -noinput +B \
  9. -eval 'case make:all() of up_to_date -> halt(0); error -> halt(1) end.'
  10. $(PARSER).erl: $(PARSER).yrl
  11. $(ERLC) -o src/erlydtl $(PARSER).yrl
  12. gen_smtp:
  13. cd deps/gen_smtp && $(MAKE)
  14. iconv:
  15. cd deps/iconv && ./rebar compile
  16. z_logger:
  17. cd deps/z_logger && $(MAKE)
  18. mochiweb:
  19. cd deps/mochiweb && $(MAKE)
  20. webmachine:
  21. cd deps/webmachine && $(MAKE)
  22. module-deps:
  23. @if [ "`find modules/ -name Makefile`" != "" ]; then for f in modules/*/Makefile; do echo $$f; $(MAKE) -C `dirname $$f`; done; fi
  24. @if [ "`find priv/modules/ -name Makefile`" != "" ]; then for f in priv/modules/*/Makefile; do echo $$f; $(MAKE) -C `dirname $$f`; done; fi
  25. @if [ "`find priv/sites/*/modules/ -name Makefile`" != "" ]; then for f in priv/sites/*/modules/*/Makefile; do echo $$f; $(MAKE) -C `dirname $$f`; done; fi
  26. docs:
  27. @erl -noshell -run edoc_run application '$(APP)' '"."' '[]'
  28. clean:
  29. @echo "removing:"
  30. (cd deps/gen_smtp; $(MAKE) clean)
  31. (cd deps/z_logger; $(MAKE) clean)
  32. (cd deps/mochiweb; $(MAKE) clean)
  33. (cd deps/webmachine; $(MAKE) clean)
  34. (cd deps/iconv; ./rebar clean)
  35. @if [ "`find modules/ -name Makefile`" != "" ]; then for f in modules/*/Makefile; do echo $$f; $(MAKE) -C `dirname $$f` clean; done; fi
  36. @if [ "`find priv/modules/ -name Makefile`" != "" ]; then for f in priv/modules/*/Makefile; do echo $$f; $(MAKE) -C `dirname $$f` clean; done; fi
  37. @if [ "`find priv/sites/*/modules/ -name Makefile`" != "" ]; then for f in priv/sites/*/modules/*/Makefile; do echo $$f; $(MAKE) -C `dirname $$f` clean; done; fi
  38. rm -f ebin/*.beam ebin/*.app
  39. rm -f erl_crash.dump $(PARSER).erl
  40. rm -f priv/log/*
  41. ebin/$(APP).app:
  42. cp src/$(APP).app $@