BOOTSTRAP ?= ./dist/css/bootstrap.css BOOTSTRAP_MIN ?= ./dist/css/bootstrap.min.css BOOTSTRAP_LESS ?= ./less/bootstrap.less DATE=$(shell date +%I:%M%p) CHECK=\033[32m✔ Done\033[39m HR=\033[37m--------------------------------------------------\033[39m PATH := ./node_modules/.bin:$(PATH) # # BUILD DOCS # build: @echo "\n\n" @echo "\033[36mBuilding Bootstrap...\033[39m" @echo "${HR}" @printf "Running JSHint on JavaScript..." @jshint js/*.js --config js/.jshintrc @jshint js/tests/unit/*.js --config js/.jshintrc @echo " ${CHECK}" @printf "Compiling LESS with Recess..." @recess --compile ${BOOTSTRAP_LESS} > ${BOOTSTRAP} @recess --compress ${BOOTSTRAP_LESS} > ${BOOTSTRAP_MIN} @echo " ${CHECK}" @printf "Prepping documentation assets..." @cp js/tests/vendor/jquery.js assets/js/ @echo " ${CHECK}" @printf "Compiling and minifying JavaScript..." @echo "if (!jQuery) throw new Error(\"Bootstrap requires jQuery\")\n" | cat - js/transition.js js/alert.js js/button.js js/carousel.js js/collapse.js js/dropdown.js js/modal.js js/tooltip.js js/popover.js js/scrollspy.js js/tab.js js/affix.js > dist/js/bootstrap.js @uglifyjs -nc dist/js/bootstrap.js > dist/js/bootstrap.min.tmp.js @echo "/**\n* Bootstrap.js v3.0.0 by @fat & @mdo\n* Copyright 2013 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > dist/js/copyright.js @cat dist/js/copyright.js dist/js/bootstrap.min.tmp.js > dist/js/bootstrap.min.js @rm dist/js/copyright.js dist/js/bootstrap.min.tmp.js @echo " ${CHECK}" @echo "${HR}" @echo "\033[36mSuccess!\n\033[39m" @echo "\033[37mThanks for using Bootstrap," @echo "<3 @mdo and @fat\n\033[39m" # # RUN JSHINT & QUNIT TESTS IN PHANTOMJS # test: jshint js/*.js --config js/.jshintrc jshint js/tests/unit/*.js --config js/.jshintrc node js/tests/server.js & phantomjs js/tests/phantom.js "http://localhost:3000/js/tests" kill -9 `cat js/tests/pid.txt` rm js/tests/pid.txt # # CLEANS THE ROOT DIRECTORY OF PRIOR BUILDS # clean: rm -r bootstrap # # BUILD SIMPLE BOOTSTRAP DIRECTORY # recess & uglifyjs are required # bootstrap: bootstrap-css bootstrap-js # # JS COMPILE # bootstrap-js: bootstrap/js/*.js bootstrap/js/*.js: js/*.js mkdir -p bootstrap/js cat js/transition.js js/alert.js js/button.js js/carousel.js js/collapse.js js/dropdown.js js/modal.js js/tooltip.js js/popover.js js/scrollspy.js js/tab.js js/affix.js > bootstrap/js/bootstrap.js uglifyjs -nc bootstrap/js/bootstrap.js > bootstrap/js/bootstrap.min.tmp.js echo "/*!\n* Bootstrap.js by @fat & @mdo\n* Copyright 2013 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > bootstrap/js/copyright.js cat bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js > bootstrap/js/bootstrap.min.js rm bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js # # CSS COMPILE # bootstrap-css: bootstrap/css/*.css bootstrap/css/*.css: less/*.less mkdir -p bootstrap/css recess --compile ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.css recess --compress ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.min.css # # WATCH LESS FILES # watch: echo "Watching less files..."; \ watchr -e "watch('less/.*\.less') { system 'make' }" # # BUILD AND START SERVER # run: build jekyll build && jekyll server .PHONY: docs watch gh-pages bootstrap-css bootstrap-js