6 DIST_DIR
= ${PREFIX}/dist
8 JS_ENGINE ?
= `which node nodejs`
9 COMPILER
= ${JS_ENGINE} ${BUILD_DIR}/uglify.js
--unsafe
10 POST_COMPILER
= ${JS_ENGINE} ${BUILD_DIR}/post-compile.js
12 BASE_FILES
= ${SRC_DIR}/core.js\
13 ${SRC_DIR}/deferred.js\
14 ${SRC_DIR}/support.js\
17 ${SRC_DIR}/attributes.js\
19 ${SRC_DIR}/selector.js\
20 ${SRC_DIR}/traversing.js\
21 ${SRC_DIR}/manipulation.js\
24 ${SRC_DIR}/ajax
/jsonp.js\
25 ${SRC_DIR}/ajax
/script.js\
26 ${SRC_DIR}/ajax
/xhr.js\
27 ${SRC_DIR}/effects.js\
29 ${SRC_DIR}/dimensions.js
31 MODULES
= ${SRC_DIR}/intro.js\
35 JQ
= ${DIST_DIR}/jquery.js
36 JQ_MIN
= ${DIST_DIR}/jquery.min.js
38 SIZZLE_DIR
= ${SRC_DIR}/sizzle
40 JQ_VER
= $(shell cat version.txt
)
41 VER
= sed
"s/@VERSION/${JQ_VER}/"
43 DATE
=$(shell git log
-1 --pretty
=format
:%ad
)
45 all: update_submodules core
48 @@echo
"jQuery build complete."
51 @@mkdir
-p
${DIST_DIR}
55 ${JQ}: ${MODULES} |
${DIST_DIR}
56 @@echo
"Building" ${JQ}
59 sed
's/.function..jQuery...{//' | \
60 sed
's/}...jQuery..;//' | \
61 sed
's/@DATE/'"${DATE}"'/' | \
64 ${SRC_DIR}/selector.js
: ${SIZZLE_DIR}/sizzle.js
65 @@echo
"Building selector code from Sizzle"
66 @@sed
'/EXPOSE/r src/sizzle-jquery.js' ${SIZZLE_DIR}/sizzle.js | grep
-v window.Sizzle
> ${SRC_DIR}/selector.js
69 @@if
test ! -z
${JS_ENGINE}; then \
70 echo
"Checking jQuery against JSLint..."; \
71 ${JS_ENGINE} build
/jslint-check.js
; \
73 echo
"You must have NodeJS installed in order to test jQuery against JSLint."; \
79 @@if
test ! -z
${JS_ENGINE}; then \
80 echo
"Minifying jQuery" ${JQ_MIN}; \
81 ${COMPILER} ${JQ} > ${JQ_MIN}.tmp
; \
82 ${POST_COMPILER} ${JQ_MIN}.tmp
> ${JQ_MIN}; \
83 rm -f
${JQ_MIN}.tmp
; \
85 echo
"You must have NodeJS installed in order to minify jQuery."; \
90 @@echo
"Removing Distribution directory:" ${DIST_DIR}
93 @@echo
"Removing built copy of Sizzle"
94 @@
rm -f src
/selector.js
97 @@echo
"Removing submodules"
98 @@
rm -rf
test/qunit src
/sizzle
100 # change pointers for submodules and update them to what is specified in jQuery
101 # --merge doesn't work when doing an initial clone, thus test if we have non-existing
102 # submodules, then do an real update
104 @@if
[ -d .git
]; then \
105 if git submodule status | grep
-q
-E
'^-'; then \
106 git submodule update
--init
--recursive
; \
108 git submodule update
--init
--recursive
--merge
; \
112 # update the submodules to the latest at the most logical branch
114 @@git submodule
foreach "git pull \$$(git config remote.origin.url)"
115 @@git submodule summary
117 pull
: pull_submodules
118 @@git pull
${REMOTE} ${BRANCH}
120 .PHONY
: all jquery lint min
clean distclean update_submodules pull_submodules pull core