2006-08-13 15:26:26 +00:00
|
|
|
SRC_DIR = src
|
2010-08-06 22:21:08 +00:00
|
|
|
TEST_DIR = test
|
2006-08-13 15:26:26 +00:00
|
|
|
BUILD_DIR = build
|
2006-08-13 18:38:51 +00:00
|
|
|
|
2006-08-13 18:58:58 +00:00
|
|
|
PREFIX = .
|
|
|
|
DIST_DIR = ${PREFIX}/dist
|
2006-08-13 15:26:26 +00:00
|
|
|
|
2011-11-06 19:45:35 +00:00
|
|
|
JS_ENGINE ?= `which node nodejs 2>/dev/null`
|
2011-01-18 00:49:24 +00:00
|
|
|
COMPILER = ${JS_ENGINE} ${BUILD_DIR}/uglify.js --unsafe
|
2011-02-12 02:35:41 +00:00
|
|
|
POST_COMPILER = ${JS_ENGINE} ${BUILD_DIR}/post-compile.js
|
2010-08-06 22:21:08 +00:00
|
|
|
|
2007-09-08 12:42:32 +00:00
|
|
|
BASE_FILES = ${SRC_DIR}/core.js\
|
2011-09-12 15:37:41 +00:00
|
|
|
${SRC_DIR}/callbacks.js\
|
2011-03-03 18:38:06 +00:00
|
|
|
${SRC_DIR}/deferred.js\
|
2009-12-07 15:45:20 +00:00
|
|
|
${SRC_DIR}/support.js\
|
2008-12-30 02:31:26 +00:00
|
|
|
${SRC_DIR}/data.js\
|
2009-12-06 22:19:33 +00:00
|
|
|
${SRC_DIR}/queue.js\
|
2010-01-13 02:54:06 +00:00
|
|
|
${SRC_DIR}/attributes.js\
|
2009-09-07 20:55:36 +00:00
|
|
|
${SRC_DIR}/event.js\
|
2007-09-08 12:42:32 +00:00
|
|
|
${SRC_DIR}/selector.js\
|
2009-03-18 21:15:38 +00:00
|
|
|
${SRC_DIR}/traversing.js\
|
|
|
|
${SRC_DIR}/manipulation.js\
|
2009-03-22 23:25:03 +00:00
|
|
|
${SRC_DIR}/css.js\
|
2010-12-10 01:55:43 +00:00
|
|
|
${SRC_DIR}/ajax.js\
|
2011-01-06 00:17:31 +00:00
|
|
|
${SRC_DIR}/ajax/jsonp.js\
|
|
|
|
${SRC_DIR}/ajax/script.js\
|
|
|
|
${SRC_DIR}/ajax/xhr.js\
|
2009-12-18 16:01:19 +00:00
|
|
|
${SRC_DIR}/effects.js\
|
2008-04-29 03:26:06 +00:00
|
|
|
${SRC_DIR}/offset.js\
|
|
|
|
${SRC_DIR}/dimensions.js
|
2006-10-26 23:11:34 +00:00
|
|
|
|
|
|
|
MODULES = ${SRC_DIR}/intro.js\
|
|
|
|
${BASE_FILES}\
|
|
|
|
${SRC_DIR}/outro.js
|
|
|
|
|
2006-08-13 18:38:51 +00:00
|
|
|
JQ = ${DIST_DIR}/jquery.js
|
2007-02-15 15:19:07 +00:00
|
|
|
JQ_MIN = ${DIST_DIR}/jquery.min.js
|
2006-08-13 18:38:51 +00:00
|
|
|
|
2010-08-06 22:21:08 +00:00
|
|
|
SIZZLE_DIR = ${SRC_DIR}/sizzle
|
2006-10-10 00:23:18 +00:00
|
|
|
|
2010-08-06 22:21:08 +00:00
|
|
|
JQ_VER = $(shell cat version.txt)
|
2010-10-23 04:35:09 +00:00
|
|
|
VER = sed "s/@VERSION/${JQ_VER}/"
|
2006-08-13 20:01:26 +00:00
|
|
|
|
2010-08-06 22:21:08 +00:00
|
|
|
DATE=$(shell git log -1 --pretty=format:%ad)
|
2009-01-04 23:34:18 +00:00
|
|
|
|
2011-03-17 19:26:45 +00:00
|
|
|
all: update_submodules core
|
|
|
|
|
2011-09-19 19:27:43 +00:00
|
|
|
core: jquery min lint size
|
2006-08-13 18:58:58 +00:00
|
|
|
@@echo "jQuery build complete."
|
2006-08-13 18:38:51 +00:00
|
|
|
|
|
|
|
${DIST_DIR}:
|
2006-08-13 18:58:58 +00:00
|
|
|
@@mkdir -p ${DIST_DIR}
|
2006-08-13 15:26:26 +00:00
|
|
|
|
2011-03-17 19:14:15 +00:00
|
|
|
jquery: ${JQ}
|
2006-08-13 15:26:26 +00:00
|
|
|
|
2010-12-30 07:38:28 +00:00
|
|
|
${JQ}: ${MODULES} | ${DIST_DIR}
|
2006-08-13 18:58:58 +00:00
|
|
|
@@echo "Building" ${JQ}
|
2006-08-13 15:26:26 +00:00
|
|
|
|
2009-01-04 23:34:18 +00:00
|
|
|
@@cat ${MODULES} | \
|
2010-09-09 14:34:21 +00:00
|
|
|
sed 's/.function..jQuery...{//' | \
|
|
|
|
sed 's/}...jQuery..;//' | \
|
2010-12-30 06:34:48 +00:00
|
|
|
sed 's/@DATE/'"${DATE}"'/' | \
|
2009-01-04 23:34:18 +00:00
|
|
|
${VER} > ${JQ};
|
2006-08-13 15:26:26 +00:00
|
|
|
|
2010-08-06 22:21:08 +00:00
|
|
|
${SRC_DIR}/selector.js: ${SIZZLE_DIR}/sizzle.js
|
2009-10-26 22:23:31 +00:00
|
|
|
@@echo "Building selector code from Sizzle"
|
2010-08-06 22:21:08 +00:00
|
|
|
@@sed '/EXPOSE/r src/sizzle-jquery.js' ${SIZZLE_DIR}/sizzle.js | grep -v window.Sizzle > ${SRC_DIR}/selector.js
|
2009-10-26 22:23:31 +00:00
|
|
|
|
2011-01-26 21:36:33 +00:00
|
|
|
lint: jquery
|
|
|
|
@@if test ! -z ${JS_ENGINE}; then \
|
|
|
|
echo "Checking jQuery against JSLint..."; \
|
|
|
|
${JS_ENGINE} build/jslint-check.js; \
|
|
|
|
else \
|
|
|
|
echo "You must have NodeJS installed in order to test jQuery against JSLint."; \
|
|
|
|
fi
|
2010-03-02 02:51:44 +00:00
|
|
|
|
2011-09-19 19:27:43 +00:00
|
|
|
size: jquery min
|
|
|
|
@@if test ! -z ${JS_ENGINE}; then \
|
|
|
|
gzip -c ${JQ_MIN} > ${JQ_MIN}.gz; \
|
|
|
|
wc -c ${JQ} ${JQ_MIN} ${JQ_MIN}.gz | ${JS_ENGINE} ${BUILD_DIR}/sizer.js; \
|
|
|
|
rm ${JQ_MIN}.gz; \
|
|
|
|
else \
|
|
|
|
echo "You must have NodeJS installed in order to size jQuery."; \
|
|
|
|
fi
|
|
|
|
|
2011-10-01 20:58:01 +00:00
|
|
|
freq: jquery min
|
|
|
|
@@if test ! -z ${JS_ENGINE}; then \
|
|
|
|
${JS_ENGINE} ${BUILD_DIR}/freq.js; \
|
|
|
|
else \
|
|
|
|
echo "You must have NodeJS installed to report the character frequency of minified jQuery."; \
|
|
|
|
fi
|
|
|
|
|
2011-03-04 22:33:20 +00:00
|
|
|
min: jquery ${JQ_MIN}
|
2007-02-15 15:19:07 +00:00
|
|
|
|
2011-03-04 22:33:20 +00:00
|
|
|
${JQ_MIN}: ${JQ}
|
2011-01-26 21:36:33 +00:00
|
|
|
@@if test ! -z ${JS_ENGINE}; then \
|
|
|
|
echo "Minifying jQuery" ${JQ_MIN}; \
|
|
|
|
${COMPILER} ${JQ} > ${JQ_MIN}.tmp; \
|
2011-02-12 02:35:41 +00:00
|
|
|
${POST_COMPILER} ${JQ_MIN}.tmp > ${JQ_MIN}; \
|
|
|
|
rm -f ${JQ_MIN}.tmp; \
|
2011-01-26 21:36:33 +00:00
|
|
|
else \
|
|
|
|
echo "You must have NodeJS installed in order to minify jQuery."; \
|
|
|
|
fi
|
2007-02-15 15:19:07 +00:00
|
|
|
|
2006-08-13 15:26:26 +00:00
|
|
|
clean:
|
2006-08-13 20:01:26 +00:00
|
|
|
@@echo "Removing Distribution directory:" ${DIST_DIR}
|
2006-08-13 18:58:58 +00:00
|
|
|
@@rm -rf ${DIST_DIR}
|
2009-10-26 22:23:31 +00:00
|
|
|
|
|
|
|
@@echo "Removing built copy of Sizzle"
|
2010-04-08 01:10:07 +00:00
|
|
|
@@rm -f src/selector.js
|
2009-11-30 20:54:14 +00:00
|
|
|
|
2011-03-15 19:16:09 +00:00
|
|
|
distclean: clean
|
|
|
|
@@echo "Removing submodules"
|
2009-11-30 20:54:14 +00:00
|
|
|
@@rm -rf test/qunit src/sizzle
|
2010-08-06 22:21:08 +00:00
|
|
|
|
2011-03-17 19:14:15 +00:00
|
|
|
# change pointers for submodules and update them to what is specified in jQuery
|
2011-03-17 19:40:07 +00:00
|
|
|
# --merge doesn't work when doing an initial clone, thus test if we have non-existing
|
|
|
|
# submodules, then do an real update
|
2011-03-17 19:14:15 +00:00
|
|
|
update_submodules:
|
2011-03-17 19:40:07 +00:00
|
|
|
@@if [ -d .git ]; then \
|
|
|
|
if git submodule status | grep -q -E '^-'; then \
|
|
|
|
git submodule update --init --recursive; \
|
|
|
|
else \
|
|
|
|
git submodule update --init --recursive --merge; \
|
|
|
|
fi; \
|
|
|
|
fi;
|
2011-03-17 19:14:15 +00:00
|
|
|
|
2011-03-15 20:25:51 +00:00
|
|
|
# update the submodules to the latest at the most logical branch
|
|
|
|
pull_submodules:
|
2011-03-22 22:18:15 +00:00
|
|
|
@@git submodule foreach "git pull \$$(git config remote.origin.url)"
|
2011-03-15 20:25:51 +00:00
|
|
|
@@git submodule summary
|
|
|
|
|
2011-03-15 20:42:58 +00:00
|
|
|
pull: pull_submodules
|
|
|
|
@@git pull ${REMOTE} ${BRANCH}
|
|
|
|
|
2011-03-17 19:26:45 +00:00
|
|
|
.PHONY: all jquery lint min clean distclean update_submodules pull_submodules pull core
|