Makefile 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. SRC_DIR = src
  2. BUILD_DIR = build
  3. DIST_DIR = dist
  4. DEMOS_DIR = demos
  5. OTHER_FILES = \
  6. changelog.txt \
  7. MIT-LICENSE.txt \
  8. GPL-LICENSE.txt
  9. VER = $$(cat version.txt)
  10. VER_SED = sed s/@VERSION/"${VER}"/
  11. DATE = $$(git log -1 --pretty=format:%ad)
  12. DATE_SED = sed s/@DATE/"${DATE}"/
  13. JQ = $$(sed -n "s/.*JQUERY\s*=\s*[\"']\(.*\)[\"'].*/\1/p" "${SRC_DIR}/_loader.js")
  14. JQUI = $$(sed -n "s/.*JQUERY_UI\s*=\s*[\"']\(.*\)[\"'].*/\1/p" "${SRC_DIR}/_loader.js")
  15. DEMO_FILES = $$(cd ${DEMOS_DIR}; find . -mindepth 1 -maxdepth 1 -type f)
  16. DEMO_SUBDIRS = $$(cd ${DEMOS_DIR}; find . -mindepth 1 -maxdepth 1 -type d)
  17. DEMO_RE = \(<script[^>]*_loader\.js[^>]*><\/script>\|<!--\[\[\|\]\]-->\)\s*
  18. DEMO_SED = sed -n "1h;1!H;\$${;g;s/${DEMO_RE}//g;p;}"
  19. JS_SED = sed -n "s/\s*js([\"']\(.*\)[\"']).*/\1/p"
  20. CSS_SED = sed -n "s/\s*css([\"']\(.*\)[\"']).*/\1/p"
  21. concat_js = \
  22. files=$$(cat "$(1)/_loader.js" | ${JS_SED}); \
  23. if [ -f "$(1)/intro.js" ]; then \
  24. files="intro.js $$files"; \
  25. fi; \
  26. if [ -f "$(1)/outro.js" ]; then \
  27. files="$$files outro.js"; \
  28. fi; \
  29. old=$$PWD; \
  30. (cd "$(1)"; cat $$files; cd "$$old") \
  31. | ${VER_SED} \
  32. | ${DATE_SED} \
  33. > "$(2)"
  34. concat_css = \
  35. files=$$(cat "$(1)/_loader.js" | ${CSS_SED}); \
  36. if [ "$$files" ]; then \
  37. old=$$PWD; \
  38. (cd "$(1)"; cat $$files; cd "$$old") \
  39. | ${VER_SED} \
  40. | ${DATE_SED} \
  41. > "$(2)"; \
  42. fi
  43. zip:
  44. @rm -rf ${BUILD_DIR}/fullcalendar
  45. @rm -rf ${BUILD_DIR}/fullcalendar-*
  46. @mkdir -p ${BUILD_DIR}/fullcalendar/fullcalendar/
  47. @echo "building core..."
  48. @$(call concat_js,${SRC_DIR},"${BUILD_DIR}/fullcalendar/fullcalendar/fullcalendar.js")
  49. @$(call concat_css,${SRC_DIR},"${BUILD_DIR}/fullcalendar/fullcalendar/fullcalendar.css")
  50. @echo "compressing core js..."
  51. @java -jar ${BUILD_DIR}/compiler.jar --warning_level VERBOSE --jscomp_off checkTypes --externs build/externs.js \
  52. --js ${BUILD_DIR}/fullcalendar/fullcalendar/fullcalendar.js \
  53. > ${BUILD_DIR}/fullcalendar/fullcalendar/fullcalendar.min.js; \
  54. @echo "building plugins..."
  55. @for loader in ${SRC_DIR}/*/_loader.js; do \
  56. dir=`dirname $$loader`; \
  57. name=`basename $$dir`; \
  58. $(call concat_js,$$dir,"${BUILD_DIR}/fullcalendar/fullcalendar/$$name.js"); \
  59. done
  60. @echo "copying jquery..."
  61. @mkdir -p ${BUILD_DIR}/fullcalendar/jquery
  62. @cp lib/${JQ} ${BUILD_DIR}/fullcalendar/jquery
  63. @cp lib/${JQUI} ${BUILD_DIR}/fullcalendar/jquery
  64. @echo "building demos..."
  65. @mkdir -p ${BUILD_DIR}/fullcalendar/demos
  66. @for f in ${DEMO_FILES}; do \
  67. cat ${DEMOS_DIR}/$$f \
  68. | ${DEMO_SED} \
  69. | sed "s/jquery\.js/${JQ}/" \
  70. | sed "s/jquery-ui\.js/${JQUI}/" \
  71. > ${BUILD_DIR}/fullcalendar/demos/$$f; \
  72. done
  73. @for d in ${DEMO_SUBDIRS}; do \
  74. cp -r ${DEMOS_DIR}/$$d ${BUILD_DIR}/fullcalendar/demos/$$d; \
  75. done
  76. @echo "copying other files..."
  77. @cp -r ${OTHER_FILES} ${BUILD_DIR}/fullcalendar
  78. @echo "zipping..."
  79. @mv ${BUILD_DIR}/fullcalendar ${BUILD_DIR}/fullcalendar-${VER}
  80. @cd ${BUILD_DIR}; for f in fullcalendar-*; do \
  81. zip -q -r $$f.zip $$f; \
  82. done
  83. @mv ${BUILD_DIR}/fullcalendar-${VER} ${BUILD_DIR}/fullcalendar
  84. @mkdir -p ${DIST_DIR}
  85. @mv ${BUILD_DIR}/fullcalendar-${VER}.zip ${DIST_DIR}
  86. @echo "done."
  87. clean:
  88. @rm -rf ${BUILD_DIR}/fullcalendar
  89. @rm -rf ${BUILD_DIR}/fullcalendar-*
  90. @rm -rf ${DIST_DIR}/*