X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Makefile;h=ec2a1fa45bc03f1fcc3d4845779da7eb226784b1;hb=refs%2Fheads%2Faccepted%2Ftizen%2Fivi;hp=45f7d472ab91d7b4372c2e820989b46e48a7086d;hpb=1ebd5ca39c5801e5c53b0d339223713e898d0b10;p=platform%2Fframework%2Fweb%2Fweb-ui-fw.git diff --git a/Makefile b/Makefile index 45f7d47..ec2a1fa 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,19 @@ +SHELL := /bin/bash + ## Project setting DEBUG ?= yes PROJECT_NAME = tizen-web-ui-fw -VERSION = 0.1 +VERSION = 0.2 VERSION_COMPAT = +PKG_VERSION = $(shell cat packaging/web-ui-fw.spec | grep Version: | sed -e "s@Version:\s*@@" ) THEME_NAME = default PATH := $(CURDIR)/build-tools/bin:$(PATH) +NODE = /usr/bin/node JSLINT_LEVEL = 1 -JSLINT = jslint --sloppy --eqeq --bitwise --forin --nomen --predef jQuery --color --plusplus --browser --jqmspace +JSLINT = jslint --sloppy --eqeq --bitwise --forin --nomen --predef jQuery --color --plusplus --browser --jqmspace --regexp --continue +COMMON_WIDGET = common INLINE_PROTO = 1 OUTPUT_ROOT = $(CURDIR)/build FRAMEWORK_ROOT = ${OUTPUT_ROOT}/${PROJECT_NAME}/${VERSION} @@ -16,14 +21,15 @@ FRAMEWORK_ROOT = ${OUTPUT_ROOT}/${PROJECT_NAME}/${VERSION} LATEST_ROOT = ${OUTPUT_ROOT}/${PROJECT_NAME}/latest JS_OUTPUT_ROOT = ${FRAMEWORK_ROOT}/js +JS_LIB_OUTPUT_DIR = ${JS_OUTPUT_ROOT}/src export THEME_OUTPUT_ROOT = ${FRAMEWORK_ROOT}/themes CSS_OUTPUT_ROOT = ${FRAMEWORK_ROOT}/themes/${THEME_NAME} CSS_IMAGES_OUTPUT_DIR = ${CSS_OUTPUT_ROOT}/images WIDGET_CSS_OUTPUT_ROOT = ${FRAMEWORK_ROOT}/widget-css PROTOTYPE_HTML_OUTPUT_DIR = proto-html -WIDGETS_DIR = $(CURDIR)/src/widgets - +JS_DIR = $(CURDIR)/src/js +WIDGETS_DIR = ${JS_DIR}/widgets THEMES_DIR = $(CURDIR)/src/themes LIBS_DIR = $(CURDIR)/libs @@ -45,47 +51,25 @@ 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 = jlayout/jquery.sizes.js \ - jlayout/jlayout.border.js \ - jlayout/jlayout.grid.js \ - jlayout/jlayout.flexgrid.js \ - jlayout/jlayout.flow.js \ - jlayout/jquery.jlayout.js \ - $(NULL) +LIBS_JS_FILES = jquery.easing.1.3.js \ + jquery.tmpl.js \ + jquery.mobile.js \ + globalize/lib/globalize.js \ + gl-matrix.js \ + $(NULL) 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.2.0 JQM_LIB_PATH = $(CURDIR)/libs/js/${JQM_VERSION} -ifeq (${DEBUG},yes) -LIBS_JS_FILES +=\ - jquery.mobile.js \ - $(NULL) -JQUERY = jquery-1.6.4.js -else -LIBS_JS_FILES +=\ - jquery.mobile.min.js \ - $(NULL) -JQUERY = jquery-1.6.4.min.js -endif - -LIBS_CSS_FILES = -ifeq (${DEBUG},yes) -LIBS_CSS_FILES +=\ - $(CURDIR)/src/jqm/compiled/jquery.mobile-1.0rc2pre.css \ - $(NULL) -else -LIBS_CSS_FILES +=\ - $(CURDIR)/src/jqm/compiled/jquery.mobile-1.0rc2pre.min.css \ - $(NULL) -endif - - -all: libs_prepare third_party widgets libs_cleanup loader themes version_compat compress +JQUERY = jquery-1.8.2.js +JQUERY_MIN = $(subst .js,.min.js,$(JQUERY)) + +all: libs_prepare third_party js libs_cleanup themes version version_compat compress libs_prepare: # Prepare libs/ build... @@ -103,39 +87,63 @@ libs_cleanup: jqm: init # Building jQuery Mobile... - cd ${JQM_LIB_PATH} && make all-but-min || exit 1; \ + 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 +third_party: init jqm globalize # 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 - @@cd ${LIBS_DIR}/css; \ - for f in ${LIBS_CSS_FILES}; do \ - cat $$f >> ${FW_CSS}; \ - done; \ - cp -r images/* ${CSS_IMAGES_OUTPUT_DIR} - - #@@cp -a ${LIBS_DIR}/images ${FRAMEWORK_ROOT}/ - + cp ${LIBS_DIR}/js/${JQUERY_MIN} ${JS_OUTPUT_ROOT}/jquery.min.js + +js: init third_party + # Building JS files... + mkdir -p ${JS_LIB_OUTPUT_DIR}; \ + cp -a ${JS_DIR}/* ${JS_LIB_OUTPUT_DIR}/; \ + ${NODE} $(CURDIR)/tools/moduledep.js -c ${JS_LIB_OUTPUT_DIR} > ${JS_LIB_OUTPUT_DIR}/../depData.json; \ + find ${JS_LIB_OUTPUT_DIR} -iname '*.js' | sort | \ + while read JSFILE; do \ + echo " # Building $$JSFILE"; \ + sed -i -e '/^\/\/>>excludeStart\(.*\);/,/^\/\/>>excludeEnd\(.*\);/d' $$JSFILE; \ + if test ${JSLINT_LEVEL} -ge 1; then \ + ${JSLINT} $$JSFILE; \ + if test ${JSLINT_LEVEL} -ge 2 -a $$? -ne 0; then \ + exit 1; \ + fi; \ + fi; \ + if test "x${INLINE_PROTO}x" = "x1x"; then \ + echo " $$f (include inline-proto if exists)"; \ + ./tools/inline-protos.sh $$JSFILE > $$JSFILE.compiled; \ + rm -f $$JSFILE; \ + mv $$JSFILE.compiled $$JSFILE; \ + else \ + echo " $$f"; \ + fi; \ + done; \ + ${NODE} $(CURDIR)/tools/moduledep.js -d ${JS_LIB_OUTPUT_DIR} ${JS_LIB_OUTPUT_DIR}/../depData.json >> ${FW_JS}; \ + cp -a ${JS_DIR}/* ${JQM_LIB_PATH}/js/* ${JS_LIB_OUTPUT_DIR}/; \ + ${NODE} $(CURDIR)/tools/moduledep.js -c ${JS_LIB_OUTPUT_DIR} > ${JS_LIB_OUTPUT_DIR}/../depData.json; \ + find ${JS_LIB_OUTPUT_DIR} -iname '*.js' | xargs sed -i -e '/^\/\/>>excludeStart\(.*\);/,/^\/\/>>excludeEnd\(.*\);/d'; -widgets: init third_party +widgets: init third_party globalize # Building widgets... @@ls -l ${WIDGETS_DIR} | grep '^d' | awk '{print $$NF;}' | \ while read REPLY; do \ echo " # Building widget $$REPLY"; \ if test ${JSLINT_LEVEL} -ge 1; 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; \ + 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; \ @@ -170,27 +178,30 @@ widgets: init third_party fi; \ done - -loader: widgets globalize - cat 'src/loader/loader.js' >> ${FW_JS} - - -globalize: widgets - cat 'libs/js/globalize/lib/globalize.js' >> ${FW_JS} +globalize: # copy globalize libs... cp -a libs/js/globalize/lib/cultures ${FRAMEWORK_ROOT}/js/ - 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} +version: js themes + echo '(function($$){$$.tizen.frameworkData.pkgVersion="$(PKG_VERSION)";}(jQuery));' >> ${FW_JS} + echo "$(PKG_VERSION)" > ${FRAMEWORK_ROOT}/../VERSION + +compress: third_party js 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 @@ -211,23 +222,24 @@ docs: init cat docs/index.footer >> docs/index.html -version_compat: third_party widgets +version_compat: third_party js # Creating compatible version dirs... for v_compat in ${VERSION_COMPAT}; do \ ln -sf ${VERSION} ${FRAMEWORK_ROOT}/../$$v_compat; \ done; + ln -sf ${VERSION} ${FRAMEWORK_ROOT}/../latest -demo: widgets +demo: js mkdir -p ${OUTPUT_ROOT}/demos cp -av demos/* ${OUTPUT_ROOT}/demos/ cp -f src/template/bootstrap.js ${OUTPUT_ROOT}/demos/gallery/ 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 @@ -285,5 +297,4 @@ init: clean @@mkdir -p ${CSS_OUTPUT_ROOT} @@mkdir -p ${CSS_IMAGES_OUTPUT_DIR} @@mkdir -p ${PROTOTYPE_HTML_OUTPUT_DIR} - @@test -h ${LATEST_ROOT} || ln -s ${FRAMEWORK_ROOT} ${LATEST_ROOT} @@rm -f docs/*.html