X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Makefile;h=f7f0ccbd4a85731832bd5bcc588ca04de91409b4;hb=refs%2Fheads%2Fmaster;hp=1422fca06691d8efc47e486ddbbcfe4ea32bfca8;hpb=5304d4c62a76f7517fedcc510afbebe2239173a5;p=framework%2Fweb%2Fweb-ui-fw.git diff --git a/Makefile b/Makefile index 1422fca..f7f0ccb 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +SHELL := /bin/bash + ## Project setting DEBUG ?= yes PROJECT_NAME = tizen-web-ui-fw @@ -7,6 +9,9 @@ THEME_NAME = default PATH := $(CURDIR)/build-tools/bin:$(PATH) +JSLINT_LEVEL = 1 +JSLINT = jslint --sloppy --eqeq --bitwise --forin --nomen --predef jQuery --color --plusplus --browser --jqmspace +COMMON_WIDGET = common INLINE_PROTO = 1 OUTPUT_ROOT = $(CURDIR)/build FRAMEWORK_ROOT = ${OUTPUT_ROOT}/${PROJECT_NAME}/${VERSION} @@ -37,45 +42,47 @@ FW_MIN = $(subst .js,.min.js,$(FW_JS)) FW_LIB_JS = ${JS_OUTPUT_ROOT}/${PROJECT_NAME}-libs.js FW_LIB_MIN = $(subst .js,.min.js,$(FW_LIB_JS)) - - FW_JS_THEME = ${JS_OUTPUT_ROOT}/${PROJECT_NAME}-${THEME_NAME}-theme.js FW_CSS = ${CSS_OUTPUT_ROOT}/${PROJECT_NAME}-theme.css FW_LIBS_JS = ${JS_OUTPUT_ROOT}/${PROJECT_NAME}-libs.js FW_THEME_CSS_FILE = ${PROJECT_NAME}-theme.css FW_WIDGET_CSS_FILE = ${WIDGET_CSS_OUTPUT_ROOT}/${PROJECT_NAME}-widget.css -LIBS_JS_FILES = underscore.js \ - jlayout/jquery.sizes.js \ - jlayout/jlayout.border.js \ - jlayout/jlayout.grid.js \ - jlayout/jlayout.flexgrid.js \ - jlayout/jlayout.flow.js \ - jlayout/jquery.jlayout.js \ - domready.js \ +GEO_VERSION = jquery-geo-1.0a4 + +LIBS_JS_FILES = jlayout/jquery.sizes.js \ + jlayout/jlayout.border.js \ + jlayout/jlayout.grid.js \ + jlayout/jlayout.flexgrid.js \ + jlayout/jlayout.flow.js \ + jlayout/jquery.jlayout.js \ + jquery.easing.1.3.js \ + jquery.tmpl.js \ + jquery.mobile.js \ + ${GEO_VERSION}/js/jquery.geo.head.js \ + ${GEO_VERSION}/js/jquery.mousewheel.js \ + ${GEO_VERSION}/js/jquery.geo.core.js \ + ${GEO_VERSION}/js/jquery.geo.geographics.js \ + ${GEO_VERSION}/js/jquery.geo.geomap.js \ + ${GEO_VERSION}/js/jquery.geo.tiled.js \ + ${GEO_VERSION}/js/jquery.geo.shingled.js \ $(NULL) -JQUERY_MOBILE = submodules/jquery-mobile/compiled/jquery.mobile.js JQUERY_MOBILE_CSS = submodules/jquery-mobile/compiled/jquery.mobile.structure.css \ submodules/jquery-mobile/compiled/jquery.mobile.css \ $(NULL) JQUERY_MOBILE_IMAGES = submodules/jquery-mobile/css/themes/default/images -JQM_VERSION = jquery-mobile-1.0.1pre +JQM_VERSION = jquery-mobile-1.1.0 JQM_LIB_PATH = $(CURDIR)/libs/js/${JQM_VERSION} ifeq (${DEBUG},yes) -LIBS_JS_FILES +=\ - jquery.mobile.js \ - jquery.ui.position.git+dfe75e1.js \ - $(NULL) -JQUERY = jquery-1.6.4.js +JQUERY = jquery-1.7.1.js else LIBS_JS_FILES +=\ jquery.mobile.min.js \ - jquery.ui.position.git+dfe75e1.min.js \ $(NULL) -JQUERY = jquery-1.6.4.min.js +JQUERY = jquery-1.7.1.min.js endif LIBS_CSS_FILES = @@ -90,30 +97,33 @@ LIBS_CSS_FILES +=\ endif -all: third_party widgets loader themes version_compat compress - +all: libs_prepare third_party widgets libs_cleanup loader themes version_compat compress -jqm: init - # Building jQuery Mobile... - @@test -d ${JQM_LIB_PATH}.bak && rm -f ${JQM_LIB_PATH} && mv ${JQM_LIB_PATH}.bak ${JQM_LIB_PATH}; \ - cp -a ${JQM_LIB_PATH} ${JQM_LIB_PATH}.bak; \ - for f in `ls $(CURDIR)/libs/patch/*.patch`; do \ +libs_prepare: + # Prepare libs/ build... + @@test -d ${LIBS_DIR}.bak && rm -rf ${LIBS_DIR} && mv ${LIBS_DIR}.bak ${LIBS_DIR}; \ + cp -a ${LIBS_DIR} ${LIBS_DIR}.bak + for f in `ls ${LIBS_DIR}/patch/*.patch`; do \ cd $(CURDIR); \ echo "Apply patch: $$f"; \ cat $$f | patch -p1 -N; \ done; \ - cd ${JQM_LIB_PATH} && make all-but-min || exit 1; \ - cp -f ${JQM_LIB_PATH}/compiled/*.js ${JQM_LIB_PATH}/../; \ - rm -rf ${JQM_LIB_PATH}; mv ${JQM_LIB_PATH}.bak ${JQM_LIB_PATH}; +libs_cleanup: + # Cleanup libs/ directory... + @@rm -rf ${LIBS_DIR} && mv ${LIBS_DIR}.bak ${LIBS_DIR} +jqm: init + # Building jQuery Mobile... + cd ${JQM_LIB_PATH} && make js NODE=/usr/bin/node || exit 1; \ + cp -f ${JQM_LIB_PATH}/compiled/*.js ${JQM_LIB_PATH}/../; \ third_party: init jqm # Building third party components... @@cd ${LIBS_DIR}/js; \ for f in ${LIBS_JS_FILES}; do \ cat $$f >> ${FW_LIB_JS}; \ - uglifyjs $$f >> ${FW_LIB_MIN}; \ + uglifyjs --ascii $$f >> ${FW_LIB_MIN}; \ echo "" >> ${FW_LIB_MIN}; \ done; \ cp ${LIBS_DIR}/js/${JQUERY} ${JS_OUTPUT_ROOT}/jquery.js @@ -131,15 +141,25 @@ widgets: init third_party @@ls -l ${WIDGETS_DIR} | grep '^d' | awk '{print $$NF;}' | \ while read REPLY; do \ echo " # Building widget $$REPLY"; \ - if test "x${INLINE_PROTO}x" = "x1x"; then \ - ./tools/inline-protos.sh ${WIDGETS_DIR}/$$REPLY >> ${WIDGETS_DIR}/$$REPLY/js/$$REPLY.js.compiled; \ - cat ${WIDGETS_DIR}/$$REPLY/js/$$REPLY.js.compiled >> ${FW_JS}; \ - else \ - for f in `find ${WIDGETS_DIR}/$$REPLY -iname 'js/*.js' | sort`; do \ - echo " $$f"; \ - cat $$f >> ${FW_JS}; \ - done; \ - fi; \ + if test ${JSLINT_LEVEL} -ge 1; then \ + if test $$REPLY != ${COMMON_WIDGET}; then \ + for FNAME in ${WIDGETS_DIR}/$$REPLY/js/*.js; do \ + ${JSLINT} $$FNAME; \ + if test ${JSLINT_LEVEL} -ge 2 -a $$? -ne 0; then \ + exit 1; \ + fi; \ + done; \ + fi; \ + fi; \ + if test "x${INLINE_PROTO}x" = "x1x"; then \ + ./tools/inline-protos.sh ${WIDGETS_DIR}/$$REPLY >> ${WIDGETS_DIR}/$$REPLY/js/$$REPLY.js.compiled; \ + cat ${WIDGETS_DIR}/$$REPLY/js/$$REPLY.js.compiled >> ${FW_JS}; \ + else \ + for f in `find ${WIDGETS_DIR}/$$REPLY -iname 'js/*.js' | sort`; do \ + echo " $$f"; \ + cat $$f >> ${FW_JS}; \ + done; \ + fi; \ for f in `find ${WIDGETS_DIR}/$$REPLY -iname '*.js.theme' | sort`; do \ echo " $$f"; \ cat $$f >> ${FW_JS_THEME}; \ @@ -179,12 +199,19 @@ themes: make -C src/themes || exit $? -compress: widgets loader - @@echo " # Compressing...."; - echo '/*' > ${FW_MIN} - cat ${COPYING_FILE} >> ${FW_MIN} - echo '*/' >> ${FW_MIN} - uglifyjs -nc ${FW_JS} >> ${FW_MIN} +compress: widgets loader themes + # Javacript code compressing + @@echo " # Compressing...."; \ + echo '/*' > ${FW_MIN}; \ + cat ${COPYING_FILE} >> ${FW_MIN}; \ + echo '*/' >> ${FW_MIN}; \ + uglifyjs --ascii -nc ${FW_JS} >> ${FW_MIN}; \ + # CSS compressing + @@cd ${THEME_OUTPUT_ROOT}; \ + for csspath in */*.css; do \ + echo "Compressing $$csspath"; \ + cleancss -o $${csspath/%.css/.min.css} $$csspath; \ + done docs: init @@ -210,6 +237,7 @@ version_compat: third_party widgets for v_compat in ${VERSION_COMPAT}; do \ ln -sf ${VERSION} ${FRAMEWORK_ROOT}/../$$v_compat; \ done; + ln -sf ${VERSION} ${FRAMEWORK_ROOT}/../latest demo: widgets mkdir -p ${OUTPUT_ROOT}/demos @@ -218,10 +246,10 @@ demo: widgets install: all - mkdir -p ${INSTALL_DIR}/lib/tizen-web-ui-fw ${INSTALL_DIR}/bin ${INSTALL_DIR}/share/tizen-web-ui-fw/demos/ - cp -av ${OUTPUT_ROOT}/tizen-web-ui-fw/* src/template ${INSTALL_DIR}/lib/tizen-web-ui-fw/ - cp -av tools/* ${INSTALL_DIR}/bin/ - cp -av demos/tizen-gray ${INSTALL_DIR}/share/tizen-web-ui-fw/demos/ && cd ${INSTALL_DIR}/share/tizen-web-ui-fw/demos/tizen-gray && sed -i -e "s#../../build#../../../../lib#g" *.html + mkdir -p ${INSTALL_DIR}/bin ${INSTALL_DIR}/share/tizen-web-ui-fw/demos/ ${INSTALL_DIR}/share/tizen-web-ui-fw/bin/ + cp -av ${OUTPUT_ROOT}/tizen-web-ui-fw/* src/template ${INSTALL_DIR}/share/tizen-web-ui-fw/ + cp -av tools/* ${INSTALL_DIR}/share/tizen-web-ui-fw/bin/ + cp -av demos/tizen-winsets ${INSTALL_DIR}/share/tizen-web-ui-fw/demos/ && cd ${INSTALL_DIR}/share/tizen-web-ui-fw/demos/tizen-winsets && sed -i -e "s#../../build#../../..#g" *.html coverage: clean all